
10倍的开发人员如何产生10倍的价值

成为10倍开发人员有捷径吗?如果您只知道一个神奇的秘密,它将为您打开一个全新的软件开发精通和生产力世界?
怀疑者就是在这里思考的:"没有捷径可走!每个人都需要练习才能变得更好!" 的确如此,但是软件生产力实践的专家是什么?有没有一件可以产生巨大变化的关键事情?
是! 有!
但是,即使我与您分享它-即使我将它赠送给您并详细为您详细说明-可能也要花10年才能成长为您并完全欣赏它的简单性。
至少,这就是我发生的事情。我的高中程序设计老师用通俗易懂的英语给我讲了一下。我使用一些示例代码逐步介绍了应用它的过程。直到十年后,它才真正陷入。但是,现在,借助经验,我深深地体会到了这堂课,即使我知道这是一堂课,您乍看之下也无法真正体会到—我将与您分享。
这个秘密是平均生产率和10倍生产率之间的关键区别。利用此秘密提供的杠杆作用,您可以提高效率几个数量级。
当引入新的需求并且周围代码发生变化时,您可以编写更可重用且不太可能损坏的代码。
使生产力提高10倍的秘诀是精通抽象。许多开发人员将"抽象"视为一个脏话。您会听到(否则很好的)建议,例如"不要过早抽象"或Python著名的Zen中的"显式优于隐式",这意味着具体要比抽象好。所有这些都是很好的建议-视情况而定。
但是现代应用程序使用大量代码。如果您打印出现代十大应用程序的源代码,那么这些纸叠将与摩天大楼的高度竞争,并且软件维护成本很高。您创建的代码越多,成本就越高。
抽象是简单代码的关键
正确的抽象可以隐藏对当前上下文不重要的细节,并减少执行相同工作所需的代码量(通常减少几个数量级),从而使代码更具可读性,适应性和可维护性。
"简单性就是要减去明显的东西并增加有意义的东西。"
〜约翰前田(John Maeda):简单法则
抽象不是一条单向路。它实际上是由两个互补的概念构成的:
· 泛化—删除重复的部分(显而易见的部分)并将其隐藏在抽象后面。
· 专业化-将抽象应用于特定用例,仅添加需要不同的内容(有意义的内容)。
考虑以下代码:
代码天生没有错,但其中包含许多细节,对于该特定应用而言可能并不重要。
· 它包含正在使用的容器/传输数据结构(数组)的详细信息,这意味着它仅适用于数组。它包含状态形状依赖性。
· 它包含迭代逻辑,这意味着,如果您需要其他操作也需要访问数据结构中的每个元素,则还需要在该代码中重复非常相似的迭代逻辑。它会强制重复,这可能违反DRY(请勿重复自己)。
· 它包括一个显式分配,而不是以声明方式描述要执行的操作。太冗长了。
这些都没有必要。所有这些都可以隐藏在抽象的后面。在这种情况下,这种通用性很强的方法改变了现代应用程序的构建方式,并减少了我们需要编写的显式for循环的数量。
"如果您以深刻的意识触摸一件事,您就会触摸一切。"
〜Thich Nhat Hanh
通过使用map操作,我们可以通过删除明显的代码(我们可能会在相似的代码中重复的部分)并将代码集中在有意义的代码上(只是需要与我们使用的代码有所不同的代码),从而将代码简化为单一代码 案件:
初级开发人员认为他们必须编写很多代码才能产生很多价值。
高级开发人员了解无需编写任何代码的价值。
想象一下,作为一名编码员,他在像JavaScript这样的编程语言中广泛使用了map操作。Map提取了详细信息,例如您要映射的数据类型,包含该数据的数据结构的类型以及枚举数据结构中每个数据节点所需的迭代逻辑。过去十年来,它提高了我开发的每个应用程序的效率。
杰里米·阿什肯纳斯(Jeremy Ashkenas)使此类操作在JavaScript中变得很流行,并通过开拓在CoffeeScript中的使用,为我们现在在JavaScript中理所当然的许多重要语法快捷方式铺平了道路。他制作了Underscore和Backbone,Backscore产生了Lodash(仍然是JavaScript中最受欢迎的功能编程实用程序带),Backbone则使JavaScript中的MVC架构得以普及,并为Angular和React奠定了基础。
约翰·雷西格(John Resig)制作了非常流行和有影响力的jQuery,它形成了可重用的,封装的JavaScript模块(jQuery插件)的最大集合,直到几年后出现了标准的Node模块和ES6模块。jQuery的选择器API如此有影响力,它构成了当今DOM选择API的基础。当我对React组件进行单元测试时,我仍然几乎每天都会从jQuery的选择API中受益。
正确的抽象是可以极大地影响生产力的强大杠杆。抽象不是一个脏话。模块,函数,变量,类-所有这些都是抽象的形式,它们存在的全部原因是为了简化抽象和抽象的构成。
没有抽象就无法构建复杂的软件。甚至汇编语言也使用抽象-指令名称,内存地址变量,子例程(如函数调用)跳转到的代码点等。现代软件是有用抽象的分层蛋糕,这些层为您提供了杠杆作用。
"给我足够长的杠杆和支点,让我感动世界。"
〜阿基米德
简化的关键:我们追求的秘密-如何减少我们正在生产的代码的数量-如何以更少的钱完成更多的工作。掌握了这一点之后,您将成为10倍的程序员。我保证
埃里克·埃利奥特(Eric Elliott)是《撰写软件》的作者。作为EricElliottJS.com和DevAnywhere.io的共同创始人,他教开发人员基本的软件开发技能。他建立并为加密项目的开发团队提供建议,并为Adobe系统,Zumba Fitness,《华尔街日报》,ESPN,BBC和包括Usher,Frank Ocean,Metallica等顶级唱片艺术家的软件经验做出了贡献。
他与世界上最美丽的女人一起过着偏僻的生活方式。
(本文翻译自Eric Elliott的文章《The Secret of Simple Code》,参考:https://medium.com/javascript-scene/the-secret-of-simple-code-a2cacd8004dd)
来源:
https://www.toutiao.com/a6844264886629827076/
“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

IT大咖说 | 关于版权
由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!
感谢您对IT大咖说的热心支持!
相关推荐
推荐文章




