共计 1704 个字符,预计需要花费 5 分钟才能阅读完成。
作者 | feenk 整顿 | 梦依丹 \
出品 | CSDN(ID:CSDNnews)
面对凉飕飕的机器、代码、工具,程序员的首要工作是知其然并知其所以然,方能动手去敲打出美好的代码。
近日,一篇《Developers spend most of their time figuring the system out》的文章在 HacekerNews 上引起了不少开发者的共鸣,作者示意,程序员大部分工夫都在摸索零碎之上,而非构建零碎。
对于这一话题,最早可追溯到 1979 年 Zelkowitz、Shaw 和 Gannon 出版的《软件工程和设计原理》一书,书中形容到,程序员把大部分的工夫(67%)都花在了开发保护上。
诚然,这本书并没有告知这一数字的背地,那么在 40 年后的明天,又是怎么的情景呢?
在 CSDN 举办的 2022 开发者生态汇上,出名程序员,MegaEase CEO 左耳朵耗子(陈皓)在演讲中提到,在国内没有一家软件公司有降级部门,常常是老到 20 年的零碎仍然在应用。可想而知,对于这样的零碎,程序员入职的第一件事或者就是弄清楚这些老“玩意”后进行着修修补补的工作。
对此,原文作者提到,论文《Measuring Program Comprehension: A Large-Scale Field Study with Professionals》中指出了程序员在一个我的项目上的工夫调配,其中约 58% 的工夫来了解零碎,并论述这一数字是如何得来的。
即便在 40 年后的明天,花在摸索零碎上的工夫并没有变少。只管这是一个十分大的我的项目老本,但人们在日常更多的是探讨如何构建零碎,而不是如何弄清楚一个零碎。
开发者是如何搞清楚零碎的呢?开发者更多是通过浏览代码来摸清零碎的架构与分支,这一论断也在论文《Measuring Program Comprehension》失去了验证。
那有没有什么其它更高效的形式呢?程序员为什么要浏览源码呢?其实对于程序员来说,如果只知其然而不知所以然,是很难进行下一步的代码搭建,因而摸清零碎,最次要的是为了做出更好的编程决策。
浏览只是从数据中收集信息的一种伎俩,也恰好可能是最手动的形式,这就为优化提供了重要的机会。
在做一件重要的事件之前,人们往往会进行命名,否则就会像伏地魔一样。在多年以前,把弄清楚零碎而后再做下一步称之为评估,并且还提出应该围绕评估来优化开发。
通过浏览来提取数据是最机械的一种形式,无奈规模化,还会带来信息不残缺和不确定性。在还未摸清零碎全貌之前,决策不应该建设在信念的根底之上。数据迷信通知咱们,应该以问题为导向去匹配相应的工具进行推理。
软件不是一座孤岛,而是由有数关联项组成,因而人们无奈预测具体的问题,但能够预测出问题类别。建立可塑开发思维,在摸清问题之后,构建自定义工具流程,从而疾速解决上下文中的重要内容。在将来十年,人们无需通过浏览源码来掂量是否“弄清了零碎”,取代它的应该是解决理论的问题。
针对这个话题,HackerNews 不少人都提到了结对编程,一位 gleenn 网友则提出了结对编程模式:人们往往会防止或者纠结结对编程,认为结对编程所破费的工夫和老本是非结对的 2 倍,这齐全是谬误的了解。当他在一个每天轮流做结对编程的中央工作时,在一个相熟零碎并能即时答复你提出的问题人背后写代码,一个新开发者的效率能够一飞冲天,比一个人做要疾速好几百万倍。
ID 为 kayodelycaon 的用户示意,在一个 100% 进行结对编程的中央工作,意味着无奈结对的人就会被过滤,而是否进行结对编程,与当事人的方方面面都有着关系,比方本人有多动症、短期记忆方面的问题等。但本人却能编写出十分好的代码,会思考代码的可读性、算法复杂性、副作用、可测试性等多个小细节。
原文链接:https://lepiter.io/feenk/deve…
近期热文举荐:
1.1,000+ 道 Java 面试题及答案整顿 (2022 最新版)
2. 劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4. 别再写满屏的爆爆爆炸类了,试试装璜器模式,这才是优雅的形式!!
5.《Java 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!