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

简介:

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

不断进化的需求

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

不断进化的代码

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

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

\

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

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

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

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

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

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


来源:51CTO     

相关文章
|
运维 JavaScript 前端开发
Neo4j 企业版和系统运维企业版特性概览
Neo4j 企业版和系统运维企业版特性概览
1688 0
Neo4j 企业版和系统运维企业版特性概览
|
3月前
|
机器学习/深度学习 人工智能 监控
143_成本优化:Spot实例与预留实例云资源节省计算详解与最佳实践
在云原生时代,成本优化已成为企业IT基础设施管理的核心挑战之一。随着AI和机器学习工作负载的激增,云资源成本占企业IT预算的比例持续上升,如何在保证服务质量的同时实现显著的成本节约,成为技术团队面临的紧迫问题。根据最新的Datadog云成本报告显示,截至2025年,平均有83%的容器支出被闲置资源浪费,而GPU实例支出在过去一年中增长了40%,已占计算成本的14%。在这样的背景下,深入理解和应用Spot实例和预留实例等成本优化策略,对于任何使用云服务的组织都具有重大的经济意义。
|
传感器 虚拟化
故障案例-ESXI6.5主机无法发生重启,并有发生网卡无故UP DOWN的事件
VSAN环境下的一台ESXI6.5主机无法发生重启,并发生网卡无故UP DOWN的事件.以下是故障分析过程和解决方法
3506 0
|
4月前
|
存储 人工智能 安全
2025云栖大会数据智能论坛|门票申领
2025云栖大会数据智能论坛将于9月25日09:30-12:20 云栖小镇国际会展中举办,汇聚阿里云数据库、计算平台、存储及安全产品线的多位技术专家及客户代表,共同探讨数据技术如何加速AI创新与发展。
|
29天前
|
机器学习/深度学习 人工智能 算法
奥维:AI技术赋能水利工程 “人工智能+”展现巨大潜力
奥维数字科技凭借对AI技术的深耕与水利场景的深刻理解,打造出奥维水利算法云这一核心解决方案,将AI能力渗透到大坝安全、洪水预报、淹没分析等关键环节,以“精准、实时、可进化”的服务特性,为水利行业智能化升级提供了可落地的技术范式。奥维通过“AI+水利”的实践证明,人工智能并非简单的“技术叠加”,而是能从“数据处理、模型优化、决策支撑”三个核心环节重构水利工程的运行模式:它让大坝监测更精准、洪水预报更及时、应急响应更科学,也让水利决策从“经验驱动”转向“数据驱动”。
230 5
|
2月前
|
JSON API 数据格式
京东平台获取商品券后价API接口详解与实战
本文介绍如何通过京东开放平台API获取商品实时券后价。涵盖接口功能、参数说明、签名生成、Python调用示例及常见问题,助开发者高效实现价格查询与数据分析。
134 0
|
开发框架 自然语言处理 算法
OneDiff 1.0 发布!生产环境稳定加速 SD/SVD 模型
【6月更文挑战第8天】针对 SD/SVD 模型的加速工具,提升运行效率和稳定性。采用先进算法,减少训练推理时间,增强生产环境稳定性,兼容多种开发框架。示例代码显示明显加速效果,助力企业提升业务速度,简化用户使用体验。OneDiff 1.0,为模型加速领域树立新标杆,驱动行业进步!
303 2
|
存储 数据采集 监控
Telegraf 使用小结
Telegraf 使用小结
350 1
|
设计模式 安全 Java
老系统重构系列--如何用一套流程接入所有业务线
**摘要:** 本文介绍了老系统改造的过程,作者提出,ToB业务的挑战在于需要支持多种差异化的业务需求,而模板模式在处理这种需求时可能会导致继承关系复杂和粒度过粗。为了解决这些问题,文章提出了以下步骤: 1. **梳理流程差异点**:识别不同业务流程的差异,以便确定扩展点。 2. **领域模型梳理**:区分核心域和支撑域,确保核心域的稳定性。 3. **二次抽象隔离层**:创建隔离层,避免核心域因新业务接入而变得不稳定。 4. **基于SPI的扩展体系建设**:选择了COLA-SPI实现扩展点,允许业务域定义接口并实现差异化的流程逻辑。
645 0