本文来自Totango的联合创始人兼CEO盖伊•尼尔帕兹(Guy Nirpaz),他在本文中列出了优秀的开发者和差的(或还需努力的)开发者之间的区别。
如果你认为使用“优秀”和“差”来区分开发者不妥的话,也可以将这些看作是初级开发者和资深开发者之间的区别。但无论如何,多看看其他的优秀开发者(或资深开发者)是如何做的,对于自身技能、工作方式的提升有很大的帮助。
文章内容如下:
优秀的开发者是一个艺术家,一个享受创作过程的工匠。差的开发者只将自己当作负责产生代码的码农。
优秀的开发者了解客户的问题。差的开发者只了解手头的技术问题。优秀的开发者会不断努力去理解“为什么”,然后去实现,同时能够把握大局。差的开发者专注于构建类、方法和配置文件,而不理会大局。
优秀的开发者了解产品的完整架构。差的开发者只知道他写的组件。优秀的开发人员充分理解在产品中使用的技术,了解它们的用途,以及它们在内部如何工作。
优秀的开发者不害怕新技术,并能够很快掌握。差的开发者只坚持他目前掌握的技术,对于任何技术变化持否定态度。
优秀的开发者通过不断学习来提高自己的技能,他们经常阅读技术文章和书籍。差的开发者没有时间来学习,他们总是太忙了,以致于不能干其他事情。
优秀的开发者关心产品的质量,同时也非常关注过程质量,他们努力创造无缺陷的代码。差的开发者将bug留给QA去发现,然后再修复。
优秀的开发者为客户开发能够创造价值的功能,差的开发者只是想完成任务。优秀的开发者不会声称需求描述是不完整的,并确保充分理解这些特性。差的开发者会等到需求细节完善后才开始工作。优秀的开发者总是确保拥有产品功能的相关信息,一旦信息丢失,他会想办法再得到它。
优秀的开发者不害怕在产品中加入其他人的代码,而差的开发者会担心别人使用他的代码。优秀的开发者认为不应该花费过多的时间来写不言自明(self-explanatory)和显而易见(well-documented)的代码。差的开发者总是需要分配额外的时间来记录和简化代码。
优秀的开发者永远不会觉得自己的代码已经足够好,相反会持续不断地整理和修复。他们始终致力于创造优雅的解决方案,认为他的工作是向客户提供价值。差的开发者只考虑自己代码是否优雅,将创造价值的工作留给别人。
原文:Good Developer, Bad Developer
分享到:
相关推荐
为了适应不同设备,jQuery Mobile 提供了分级支持,分别标记为 A(优秀)、B(良好)和 C(基础)等级别。 要开始使用 jQuery Mobile,开发者需要在 HTML 页面的 `<head>` 标签内引入相关的 CSS 和 JavaScript 文件...
在这个项目中,学生或开发者可以深入理解嵌入式系统的实际应用和开发流程。 首先,我们要了解STM32的核心特性。STM32基于ARM Cortex-M3或M4内核,具有浮点运算单元(FPU),支持高速运算。它集成了多种外设,如...
为了提升用户的浏览体验,开发者们不断探索新的技术手段,其中,滚动惯性和视觉差特效就是两种极具吸引力的设计元素。Luxy.js是一款专门用于实现这两种效果的JavaScript插件,它将流畅的滚动体验与独特的视觉差特效...
6. 可扩展性:优秀的ParallaxSwipeBack实现应该允许开发者轻松地在自己的项目中集成,并自定义视觉差效果。这可能包括提供回调接口、属性动画支持以及可配置的滑动阈值等。 在"ParallaxSwipeBack带视觉差的侧滑返回...
然而,随着软件规模的增大,这种方法的局限性显现出来,如数据安全问题、可维护性和可重用性较差。面向对象程序设计方法应运而生,它将数据和操作数据的方法封装在一起,形成了对象,使得数据和操作数据的逻辑紧密...
总的来说,Mpx是一款强大的跨端小程序框架,它通过优秀的开发体验、深度的性能优化以及多平台适配能力,极大地提高了开发者的生产力,降低了小程序开发的门槛。如果你是小程序开发者,或者想要进入这个领域,Mpx绝对...
"认识python优秀文档" Python是一种高级的、解释性的编程语言,具有强大的标准库和灵活的语法结构。Python的作者是Guido van Rossum,荷兰人,毕业于阿姆斯特丹大学,拥有数学和计算机硕士学位。Guido在设计Python...
8. **优化与改进**:尽管bsdiff表现优秀,但仍有改进空间。例如,可以研究更高效的差分算法,或者结合其他技术如增量压缩和多线程处理,以进一步提升性能和用户体验。 总之,bsdiff-4.3.tar.gz 提供了一个经过修正...
在描述中,提问者希望有更优秀的打印程序,这可能意味着他们对性能、用户体验或功能有更高的要求。为了改进,可以从以下几个方面着手: 1. **优化性能**:减少内存占用,优化图像处理,避免不必要的计算。 2. **...
尽管现代前端框架(如React, Angular, Vue)已经逐渐取代了jQuery在某些场景下的地位,但其设计理念和优秀实践仍对现代前端开发有着深远的影响。对于初学者或希望提升效率的开发者来说,理解并熟练运用jQuery仍然是...
3. **优化实践**:通过对源码的理解,开发者可以针对特定设备或场景进行优化,比如针对低内存设备进行内存管理优化,或者针对网络环境差的情况优化缓冲策略。 四、总结 RkVideoPlayer 7.1作为一款优秀的Android...
使用这个资源包,开发者和研究者可以深入了解这些数值方法的实现细节,对比不同方法的优缺点,并根据实际需求选择合适的解算策略。此外,通过修改和扩展这些代码,他们还可以进一步研究更复杂的问题或优化算法性能。...
《jQuery 3.2.1:轻量级的JavaScript库》 jQuery,作为一款功能强大的JavaScript库,自2006年发布以来,一直深受开发者喜爱。...通过熟练掌握jQuery,开发者可以大大提高工作效率,创造出更加优秀的Web应用。
"JCar.cs"是一个专门为Unity设计的优秀车辆脚本,它提供了丰富的功能,使得开发者可以快速创建出具有真实感的汽车模拟。本文将深入探讨这个脚本的核心知识点,以及如何在实际项目中应用。 一、JCar.cs脚本概述 ...
这个C++实现的资源提供了方便的接口,使得开发者可以直接在自己的项目中应用差分进化算法。 在"DEbest.h"这个头文件中,我们可以预期会找到差分进化算法的核心结构和函数声明。这些函数可能包括初始化种群、选择...
- LinkedList类:通过双向链表实现,插入和删除元素速度快,但随机访问性能较差。适用于经常需要在列表头尾添加或移除元素的场景。 13.3.1 ArrayList类 ArrayList是List接口的一个具体实现,它维护了一个动态增长的...
学习和理解这个代码库可以帮助开发者深入理解差分进化算法的工作原理,以及如何在C++中实现和优化。此外,通过修改代码,可以应用于各种实际问题,如工程设计、机器学习模型参数调优、经济建模等。对于想要提升算法...
这些类提供了一些方法,用于处理日期和时间相关的操作,如获取当前日期、计算日期差、格式化日期等。 7.6 集合框架 Java提供了一些集合框架,如ArrayList、LinkedList、HashSet等。这些类提供了一些方法,用于存储...
通常,差分进化在处理高维问题和有约束条件的问题上表现优秀,而PSO则适合处理目标函数连续且平滑的问题。 在比较这两种算法时,开发者可能关注以下几个方面: 1. 计算效率:观察算法运行时间和资源消耗,以评估其...