本文来自 Totango 的联合创始人兼 CEO 盖伊·尼尔帕兹(Guy Nirpaz),他在本文中列出了优秀的开发者和差的(或还需努力的)开发者之间的区别。
如果你认为使用“优秀”和“差”来区分开发者不妥的话,也可以将这些看作是初级开发者和资深开发者之间的区别。但无论如何,多看看其他的优秀开发者(或资深开发者)是如何做的,对于自身技能、工作方式的提升有很大的帮助。
文章内容如下:
优秀的开发者是一个艺术家,一个享受创作过程的工匠。差的开发者只将自己当作负责产生代码的码农。
优秀的开发者了解客户的问题。差的开发者只了解手头的技术问题。优秀的开发者会不断努力去理解“为什么”,然后去实现,同时能够把握大局。差的开发者专注于构建类、方法和配置文件,而不理会大局。
优秀的开发者了解产品的完整架构。差的开发者只知道他写的组件。优秀的开发人员充分理解在产品中使用的技术,了解它们的用途,以及它们在内部如何工作。
优秀的开发者不害怕新技术,并能够很快掌握。差的开发者只坚持他目前掌握的技术,对于任何技术变化持否定态度。
优秀的开发者通过不断学习来提高自己的技能,他们经常阅读技术文章和书籍。差的开发者没有时间来学习,他们总是太忙了,以致于不能干其他事情。
优秀的开发者关心产品的质量,同时也非常关注过程质量,他们努力创造无缺陷的代码。差的开发者将 bug 留给 QA 去发现,然后再修复。
优秀的开发者为客户开发能够创造价值的功能,差的开发者只是想完成任务。优秀的开发者不会声称需求描述是不完整的,并确保充分理解这些特性。差的开发者会等到需求细节完善后才开始工作。优秀的开发者总是确保拥有产品功能的相关信息,一旦信息丢失,他会想办法再得到它。
优秀的开发者不害怕在产品中加入其他人的代码,而差的开发者会担心别人使用他的代码。优秀的开发者认为不应该花费过多的时间来写不言自明 (self-explanatory)和显而易见(well-documented)的代码。差的开发者总是需要分配额外的时间来记录和简化代码。
优秀的开发者永远不会觉得自己的代码已经足够好,相反会持续不断地整理和修复。他们始终致力于创造优雅的解决方案,认为他的工作是向客户提供价值。差的开发者只考虑自己代码是否优雅,将创造价值的工作留给别人。
原文:Good Developer, Bad Developer
分享到:
相关推荐
这不仅提高了调试效率,也使得开发者能够更好地模拟真实环境下的小程序运行情况,从而打造出更优秀的微信小程序产品。所以,下次遇到类似需求时,不妨尝试一下这种方法,相信它会成为你开发过程中的得力助手。
华为开发者学堂试题答案.zip,HarmonyOS NEXT 开发者预览版 Beta 招募开启,一个实名账号具有 5 次机会,通过要求为 100 分(即满分)。 IT之家注: HarmonyOS NEXT 开发者预览版是在正式版本发布前,为更全面地验证...
书中详细解释了VBA与***代码之间的关键概念和用法的差异,并且提供了丰富的示例代码,使得VBA开发者能够平滑过渡,理解并应用.NET开发的优越性和可维护性。 本书作者Kathleen McGrath和Paul Stubbs拥有丰富的技术...
用友开发者中心提供了开发者社区服务,为开发者提供了解、学习、互动沟通的服务环境,与开发者共建产业生态联盟。 四、开发者经营服务 用友云平台对开发者推出"有参与、可收益、共推广"的保障性服务模式。为合作...
Chrome开发者工具是Google Chrome浏览器内置的一套强大的网页开发和调试工具,它为前端开发者提供了丰富的功能,包括元素检查、网络监控、源代码编辑、性能分析等。这份“Chrome开发者工具中文手册”旨在帮助用户...
8. 与硬件交互:Cocoa开发者手册会指导开发者如何利用框架提供的API与硬件设备进行交互,如触摸板、摄像头、麦克风等。 9. 应用程序生命周期管理:掌握应用程序的启动、运行和关闭过程,确保应用程序能够正确地响应...
3. 对象模型交互:开发者可以直接调用Office对象模型中的类和方法,实现与Office应用深度集成。 五、部署和安全 VSTO解决方案可以通过ClickOnce技术进行部署,提供简单的安装过程和自动更新。安全性方面,VSTO解决...
1. **嵌入式软件**:在嵌入式系统领域,赛灵思提供了基于Zynq系列的SoC解决方案,集成了高性能的ARM处理器与可编程逻辑,使得开发者能够在同一平台上进行硬件加速和软件处理。大会可能深入讨论了如何利用Vivado HLS...
Firefox开发者版是一款专为网页开发者和设计师打造的高级浏览器版本,它提供了丰富的工具和功能,以便于进行网页调试、性能分析以及代码编辑。这款浏览器基于开源的Gecko引擎,具有高度可定制性和强大的扩展能力,...
Vue DevTools 是一个浏览器扩展,它为Vue应用程序提供了一个方便的开发环境,帮助开发者深入理解应用程序的状态和生命周期。 Vue DevTools 有针对Vue2和Vue3两个版本,因为Vue3引入了一些重大变化。`vue_dev_tools....
Steam平台开发者游戏上传指南 Steam平台是全球最大的数字发行平台之一,对于游戏开发者来说,上传游戏到Steam平台是非常重要的一步骤。本文将指导开发者如何上传游戏到Steam平台,并对应标签进行详细的解释。 一、...
从提供的文件信息来看,标题是“中国开发者调查报告”,而描述中提及了“云栖社区”,这是阿里巴巴集团旗下的一个技术社区平台。根据这些信息,我们可以推断这份报告应该是关于中国开发者在中国云技术领域的使用情况...
为了促进Django社区的交流与成长,出现了一个名为"Django优秀项目收录与开发者指引仓库"的资源平台,它旨在为广大Django开发者提供一个学习、交流和分享的集中地。 该仓库的核心内容包含了以下几个重要部分: 首先...
以下将详细介绍"开发者必须掌握的基础"这一主题,包括与Java相关的基础知识。 首先,我们需要了解计算机基础。"computer-basic.pdf"这个文件很可能包含了计算机系统的基本构成,如硬件(CPU、内存、硬盘等)和软件...
本篇文章将详细介绍苹果开发者账号的种类、申请流程以及遇到的问题与解决方案。 首先,苹果开发者账号分为四种类型:个人账号(Individual)、团体账号(Company)、企业账号(Enterprise)和教育账号(University...
CompactRIO是NI推出的一款工业级实时可重配置I/O平台,它将实时处理器、可重配置FPGA硬件和模块化I/O相结合,适用于复杂、高可靠性要求的控制与监测任务。 文档的前言部分说明了该指南的目的是为了让用户能够快速...
6. **API文档与示例**:微信开发者工具提供了完整的微信小程序API文档和示例代码,开发者可以随时查阅和学习,快速上手小程序的各种功能,如地图、支付、用户授权等。 7. **发布与提交审核**:完成开发后,开发者...
为了帮助开发者简单和高效地开发和调试微信小程序,我们在原有的公众号网页调试工具的基础上,推出了全新的 微信开发者工具,集成了公众号网页调试和小程序调试两种开发模式。版本号:1.02.1808080
8. **社区资源与最佳实践**:与会者可能分享了他们在开发过程中的经验教训,推荐了一些优秀的Qt开源项目、教程和工具,以帮助开发者更好地学习和使用Qt。 通过这样的大会,开发者不仅可以提升自己的Qt技能,还能...
HDC 2021年华为开发者大会技术分论坛PPT合集(52份),包含7个主题:Harmony OS测试技术与实战、HarmonyOS Connect智能硬件开发、HarmonyOS架构演进与关键技术、HarmonyOS面向超级终端UX设计、HarmonyOS学生、...