这是一个急三火四的年代,人们很不得一口吃下一个胖子,做软件开发的恨不得一下子就完成一个软件,然后就在家里数钞票。
心急火燎的结果呢?下面的情景是否会让你有种似曾相识的感觉:
* 费了半天努力修改的bug,仔细想来,其实已经在需求明明白白写好了,只是开发时未曾注意到。
* 好容易写好的一段代码,还没来得及向别人炫耀,却发现原来一个好好的功能出了问题,更糟糕的是,根本看不出这两段代码有什么联系。
* 这个bug让你想骂人,因为它居然是其他人修改另一个bug引入的。
* 这个地方有人改过,不过,修改的代码解决的根本不是真正的问题。
* 客户要的是一个小功能,但是对我们来说,加入它无异于重写整个系统。
……
已经有无数人用无数的事实告诉我们,在软件开发中,要付出就趁早,越晚代价越大。当然,我们能看到的大多数例子是在开发的不同阶段,比如需求比开发便宜,开发比测试便宜,测试比维护便宜等等。其实,在开发之中,也是如此,新鲜出炉的代码绝对比那些陈年旧帐更容易修改,不信的话,找一段自己几个月前写的代码理解一下试试。
前面那些似曾相识的场景,多半都是“急”出来的。可现实是,我们需要在后期用更大的精力为前面的“急”买单,所以,为了不给未来的自己挖坑,我们不妨慢一些:
* 仔细了解一下需求,分析需求是不是合理,而不要低着头就开始堆代码。
* 给出一个解决方案时,考虑一下会对已有的代码造成怎样的影响,打破窗户容易,修补难。
* 多花点时间重构,代码上的臭味越到后期显得越刺激。
* 修改bug时,停下来想想什么才是真正的问题,治标不治本的方案只会让人重回梦境。
* 写测试吧!貌似的浪费会让你在后期遇到bug时感激涕零。
……
软件开发其实是一个跟复杂度做斗争的过程,从某种程度来说,复杂度会一直在增长,我们所能做的就是尽可能降低复杂度增长的速度。我曾经和一些朋友说过,前期所做的一切是让我们在后面有更大空间挥霍。慢下来,让我们有时间思考自己的每一步是否迈得是否稳当,稳当的行进,心里才踏实。
这里的慢,实际上,还是为了快,殊途同归。
分享到:
相关推荐
base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz base zz zz zz zz zz
[房地产开发]北京ZZ房地产开发有限公司员工手册(DOC 37页).doc
北京ZZ房地产开发有限公司经历了多次演变,从1988年的ZZ集团公司与银联房地产公司的合并,到1993年改组为北京住宅开发建设集团总公司的房地产开发部,再到1997年的项目管理模式,最终在2001年转型为有限责任公司。...
北京ZZ房地产开发有限公司员工考核管理办法(doc 63页).doc
ZZ561401.CAB ZZ561401.CAB ZZ561401.CAB
wincc SIMATIC WinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。 从面市伊始,用户就对SIMATIC WinCC印象深刻。
### zz市医保接口开发文档知识点概述 #### 一、引言 - **文档编制目的**:此文档的主要目的是为了详细阐述zz市医保项目的接口设计方案,包括医保接口的部署方案及软件接口设计等内容。该文档旨在为软件开发人员、...
在CAD中想要快速测量长度,在CAD工具栏找到加载应用程序,再点击加载 加载成功后在输入栏输入“zz”(不分大小写)在选择你需要测量的线段即可。
ZZ房地产开发有限公司的员工考核管理办法是一份详尽的文档,旨在规范公司内部的绩效评估流程,确保公正、公平地衡量员工的工作表现,并为员工提供反馈和成长机会。这份专题资料涵盖了多个方面,以下是对其中主要知识...
在使用EndNote的过程中,用户可以将“ZZ_MODIFIED_GEEBINF.ENS”这个样式文件导入到EndNote软件中,然后在撰写论文时选择这个样式,EndNote会自动按照预设的格式生成参考文献列表。这样极大地提高了论文写作的效率,...
我们研究了四轻子最终状态ℓ+ℓ-ℓ+ℓ-的产生,这些状态主要由一对弱电Z玻色子ZZ产生。 使用LoopSim方法,我们合并ZZ和ZZ + jet的NLO QCD结果,并获得ZZ产生的近似NNLO预测。 还包括对ZZ过程的精确胶子融合环平方的...
总的来说,“zz-doctor”作为一个中医信息化的Android应用,其背后涵盖了Android应用开发的全貌,包括基本组件的使用、UI设计、数据管理、网络通信等多个方面。对于想要学习或提升Android开发技能的人员来说,深入...
根据给定文件的信息,我们可以提炼出与“2024嵌入式面试资料蔚来2021嵌入式软件开发”相关的几个核心知识点,并围绕这些知识点进行深入探讨。 ### 一、嵌入式系统概述 嵌入式系统是指用于执行特定功能的计算机系统...
cad标高归零,好用的
博途V16授权 博途V16授权 博途V16授权 博途V16授权 TIA V16 AX NF ZZ TIA V16 AX NF ZZ TIA V16 AX NF ZZ TIA V16 AX NF ZZ TIA V16 AX NF ZZ
ZZ地产开发公司样板房管理手册.doc
MQL5是MetaQuotes公司开发的一种编程语言,专用于创建MT5平台的EA、脚本和指标。通过阅读和理解这段代码,交易者可以定制EA参数,以适应不同的交易风格和市场条件。 在实际操作中,ZZ Fibo Trader EA会监控市场动态...
总的来说,《zz809.com留言本》不仅是一个实际的网络应用,也是学习Web开发,尤其是PHP或相关技术的一个实例教程。对于初学者而言,这是一个宝贵的资源,可以帮助他们在实践中提高技能;对于有经验的开发者,它则...
ZZ-2021030 网络搭建与应用赛项赛卷《网络环境》.pdf
,主图指标,顶底信号,突破,转折信号,都很明显