优秀的代码是反复修改后创造出来的

简介:

近些年来,越来越多的人开始转向敏捷开发,而且这些敏捷开发的技术已不再新鲜,大多都是在80和90年代设计形成的。但是,最近几年,程序员,特别是一些商业顾问,架构师和客户开始喜欢上了敏捷开发。

不断进化的需求

现如今,有一个普遍的认识就是在你开始项目编程之前,你不可能写下所有的需求,这些需求的确定需要一个不断进化的过程。在较短的开发周期中,我们不断的完 善程序,多次迭代从而满足客户提出的最新需求。这些都是基于进化的原则,就像我们的生活,你是一步一步的向前从而做得更好。

不断进化的代码

这就可以了吗?现在的大多数程序员都已经认识到了需求是不断进化和完善的。但还不够,他们依旧认为项目使用的框架和架构应该在项目开始的时候就确定了,而且代码一旦完成,就一切都OK了。

错。根据我的经验,所有优秀的代码都至少要写两遍。第一遍写代码时,你通常会很匆忙,不能很好的理解并实现需求。当然,如果你看过一些设计模式,知道一些方法,你最终的代码可能会写得不错,但它绝不是最优秀的。少写一些无谓的代码,多一些思考

\

在我们现在的项目中,几乎所有重要的功能都要从零开始写,并且重复修改很多次。这虽然很慢,但确定的是写出的代码越来越好了。当你修改某一部分的代码已经 三到四次,或又修补了这里的一个bug,你就开始有点想躲避这部分代码,如果不再处理它你就会很高兴。当有了这样的想法后,你肯定会删了这些代码。那就又 要一切从头开始了吗?

再一次错。确实,IDE里空了,代码没了,或许只有一些测试程序还在。但是,你已经对你写的这些代码有了深刻的认识,你知道它是什么样的,你也知道它的问 题出在哪。在此基础上,你现在可以写出更好,甚至是优秀的代码。当然了,我们也可以保留之前的代码,进行一些重构等等,但都不如从头开始,更好的做出它。 这和生活中的道理依然是一样的,要想把一件事做到极致,就要多次的重复和进化。你的需求是这样,你的代码和架构也要这样。

写两遍代码会花费两倍的时间?

当我告诉人们所有的程序都要至少写两遍时,他们担心这样会使完成整个项目的时间加倍。但事实不是这样的,我来告诉你原因:

1.第二次写代码,只会花费你第一次写代码时的部分时间;

2.重写之后的代码在质量上会有显著提高,而且维护性和可扩展性都会更好,你的编程速度也会越来越快。 所以,坚持重写你的代码,不断优化它吧!


来源:51CTO     

相关文章
|
6月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
174 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
3月前
|
算法 测试技术 持续交付
技术感悟:代码之外的智慧
【8月更文挑战第14天】在技术的海洋中,我们常常沉浸于代码的编写和调试,追求着更高效的算法和更优雅的解决方案。然而,技术的世界远不止于此。它还包括了对问题的理解、对工具的运用、以及与他人的协作等多个方面。这些看似与代码无关的技能,实际上对我们的技术成长有着深远的影响。本文将分享一些在代码之外的技术感悟,希望能够为大家提供一些新的视角和思考。
|
4月前
|
敏捷开发 测试技术 持续交付
编码过程中有效地管理时间和精力,避免陷入无休止的调试循环
编码过程中有效地管理时间和精力,避免陷入无休止的调试循环
|
6月前
|
算法 程序员
为何程序员在编写程序时难以一次性将所有代码完美无瑕地完成,而是需要经历反复修改Bug的过程?
为何程序员在编写程序时难以一次性将所有代码完美无瑕地完成,而是需要经历反复修改Bug的过程?
67 7
|
小程序
如何做一个俄罗斯方块7:消除判断和处理
嗨!大家好,我是小蚂蚁。今天我们继续来了解下一个环节:消除判断和处理。因为消除判断和消除处理都比较简单,所以,这里我们就将这两个环节合并在一起讲解。
173 0
|
Web App开发 人工智能 自然语言处理
ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?
ChatGPT会对我们日常生活带来什么影响?这些技术会改变我们学习阅读工作方式吗?
|
Java C语言
看似无害的代码如何搞垮系统
编程就像魔法。最近遇到一个诡异的问题:添加一段看似无害的简单代码后,系统原有功能不可用了。 ## 复现演示 jdk 8 可使用如下演示代码复现这个问题。 `TaskCenter` 是一个任务框架,可添加多个任务,随后框架将执行这些任务。 `First` 任务是新增代码,看起来简单无害,且看不出对原有任务 `Count` 有何影响,但添加 `First` 任务后,其自身执行正常,原本正常的 `C
128 0
|
设计模式 缓存 前端开发
可否举例说明你在工作中是如何优化前端代码的?
可否举例说明你在工作中是如何优化前端代码的?
181 0
|
设计模式 缓存 JavaScript
90%的人会遇到性能问题,如何用1行代码快速定位?
今天,齐光将会基于之前列举的众多指标,给出一些常见的调优分析思路,即:如何在众多异常性能指标中,找出最核心的那一个,进而定位性能瓶颈点,最后进行性能调优。整篇文章会按照代码、CPU、内存、网络、磁盘等方向进行组织,针对对某一各优化点,会有系统的「套路」总结,便于思路的迁移实践。
2321 0