`
javatgo
  • 浏览: 1189499 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

进化中项目进展

 
阅读更多

最近这些年,越来越多的人开始转向敏捷开发。各种敏捷开发技术并不新鲜,大多是在80和90年代发展形成。但只是在最近这些年,程序员和(更重要的是)一些商业顾问,架构师,客户开始变得喜欢和拥抱敏捷开发。

进化中的需求

现在的一种普遍的认识是,在开始编码前,你不可能把所有的需求都写完备。这些需求的确定是一个逐渐发展进化的过程。使用短开发周期/springts,我们一步步的开发程序,使用多次迭代的方式完成从客户方得到的最新需求。这些都是基于一个进化的思想。就像生活中,我们总是通过一步步的改进来达到最好一样。

进化中的代码!

可是,这就完事了吗?如今大部分的程序员都认识到了需求必定是一步步的挖掘出来的。但他们却忘了自己的工作!?他们仍然认为他们的框架和架构在项目开始之初就定型了。同样,代码一旦写成,程序就完成了…不是吗?

错。以我的经验,所有好的程序都至少要写两遍。第一编是你过于仓促,不能很好的理解需求、实现需求。不错,当看到了某种业务模式,我们知道要提炼出方法,围绕着它实现业务职责。你最终写成的代码是非常好的,但,它不是优秀的。

在我们目前的项目中,几乎所有的重要功能模块都从头重写过数次。慢慢的但明显的,代码变得越来越好。一旦你对某段程序做了第三或第四次增补,或又找到了一个bug,你能感觉到这程序什么地方有异味。你开始躲避触碰这段程序,你为不需要在处理这段程序而高兴。当有了这样的感觉后我会怎么做?我会删了这些代码。

可是…可是…这样你就要完全从头开始了!?

你又错了!当然,IDE里空了,代码全没了,也许一些测试程序会存留下来。但你却对你的代码应该做什么有了扎实的认识。你也知道以前这段代码是什么样的,你知道它以前的内伤和异味在哪里!有了这些认识,你能写出更好,甚至是非常优秀的代码!不错,我们也可以保留这些代码,使用一些重构措施…但你可能再也找不到这样好的从头开始、更好的编写它的机会了。

再次,就像生活中的所有事情:要让事情变的完美,你需要经过多次的进化迭代。对你的需求是这样,对你的架构和代码也是如此。

写两遍,就意味着两倍的时间吗?

当告诉人们我的观点是所有的程序都至少写两遍时,他们担心花费两倍的项目时间。但事实远非如此。下面是原因:

  • 第二次写代码只是用去你初次写代码的很少一部分的时间。
  • 重写之后,代码的质量会有明显的提高,可维护性,可扩展性都有改善,包括编程的速度。

祝你好运,坚持重新改进你的代码!

1
2
分享到:
评论

相关推荐

    差分进化混合粒子群算法求解项目调度问题.pdf

    本文所进行的系统研究,不仅在理论上证明了差分进化与粒子群优化混合策略的有效性,更为实际工程应用中的项目管理提供了新的工具。它的提出和应用,可以极大地提升项目调度的科学性和精确度,有助于提升项目管理的...

    敏捷项目管理,敏捷项目管理

    - **团队协作**:强调跨职能团队的合作,每个成员都有明确的角色和责任,共同推动项目进展。 - **持续集成与测试驱动开发**:持续集成有助于早期发现并解决问题,而测试驱动开发则确保了代码的质量。 #### 软件项目...

    Matlab实现基于DE差分进化算法的数据生成的详细项目实例(含完整的程序,GUI设计和代码详解)

    2. 推进差分进化算法及相关领域(例如生成对抗网络)的研究进展。3. 辅助教学培训,为学生和其他学习者演示先进的数学优化技术和实际编码练习。4. 加快科研项目进程,提供成熟的技术路线图和技术储备。 其他说明:...

    软件项目管理系统开发

    此外,该模块还可以帮助项目经理实时掌握项目的进展情况。 - **Bug管理:** Bug管理是软件项目管理中的一个重要组成部分。该模块主要用于记录、追踪和解决软件开发过程中出现的各种问题或缺陷。通过这种方式,可以...

    论文研究-在线社会网络社区划分及进化机理研究 .pdf

    在线社会网络社区划分及进化机理研究是当前社交网络分析的一个重要课题,涉及到...通过这些项目的支持,研究团队可以利用先进的理论模型和实验手段,深入探索在线社会网络社区划分及进化机理,并取得新的突破和进展。

    地理信息系统进展

    地理信息系统(GIS)是一种集成了多种学科和技术的综合性系统,它自20世纪60年代初在加拿大的CGIS项目中诞生以来,已经历了四十多年的快速发展。GIS的核心在于利用地理空间数据库,结合计算机硬件和软件,处理、分析...

    论信息系统项目风险管理

    随着项目管理实践的不断发展,风险管理的方法和工具也在不断进化,项目团队应该积极学习和掌握先进的风险管理理念和技术,以应对更为复杂的项目挑战。最终,通过系统性的风险管理,项目能够更好地应对不确定性,提升...

    IT软件项目风险管理三维结构研究.pdf

    《IT软件项目风险管理三维结构研究》一文深入探讨了IT软件项目风险管理的重要性和具体...未来,随着大数据、人工智能等新技术的应用,风险管理的方法和工具也将不断进化,为IT软件项目的顺利进行提供更加精准的支持。

    周伯生教授谈软件研发项目管理

    在软件项目管理中,需求定义、工作量估计、项目规划、进展控制、需求变化和风险管理等都是与项目管理直接相关的因素。软件项目管理的实施可以确保软件项目的质量和进度,降低项目的风险和成本。 在软件项目管理中,...

    苏州供电公司业务流程优化设计项目第一阶段项目领导委员会.pptx

    委员会将继续监督项目进展,以确保项目可以顺利过渡到下一阶段。 苏州供电公司业务流程优化设计项目的成功实施,将会对公司在电力行业中的竞争地位产生积极影响。通过系统性的业务改革,公司不仅提升了运营效率,也...

    项目计划、进度与控制(詹姆斯•刘易斯)1

    进度控制利用挣值分析(EVA)等工具监测项目的实际进展,并对偏差进行调整,确保项目按计划进行。风险管理涉及识别、分析、优先级排序和应对策略的制定,以降低潜在的负面影响。 【执行和控制】 项目执行阶段涉及...

    微软MSF框架 项目管理

    此外,MSF提倡敏捷方法的应用,允许团队根据项目进展和市场反馈快速调整策略,以提高响应速度和适应性。 ### MSF的风险管理准则 风险管理是MSF框架中的一个核心要素,它倡导早期识别和评估潜在风险,制定应对策略...

    51.【乡村文旅】 [2016年]杭州市萧山区进化镇欢潭美丽乡村示范点创建规划-98页.pdf

    欢潭村作为萧山区进化镇的一个乡村,被选为美丽乡村建设的重点项目。其潜在的价值在于它能成为萧山乃至浙江乡村旅游的新亮点,并可作为乡村文旅升级的示范点。该规划强调欢潭村要融合整个萧山区的发展目标,实现与...

    Linux NUMA 进化

    Linux NUMA技术的进化涉及到操作系统如何更好地理解和优化内存访问模式,使得在多节点系统中,应用程序能够取得更好的性能。 随着多核处理器和多节点系统的普及,Linux内核不得不进化来更好地处理NUMA。早期的系统...

    AI用进化算法画出海绵宝宝_python_代码_下载

    标题中的“AI用进化算法画出海绵宝宝”指的是利用人工智能技术,特别是遗传算法,来生成类似于海绵宝宝的图像。遗传算法是一种模拟自然选择和遗传学原理的优化方法,它通过迭代过程来寻找问题的最佳解决方案。在这个...

    中国生物多样性科学研究进展评述.docx

    通过对化石记录的研究,科学家们揭示了许多关键物种的进化历史,这对于理解地球生命的多样性及其变迁过程具有重要意义。同时,分子生物学技术的应用,尤其是高通量测序技术的发展,极大地促进了对物种遗传多样性的...

    蛛形纲生物缝感受器的研究进展

    蛛形纲生物的这种感知能力源于数千万年的进化,其中缝感受器及其他感官的发展与完善,在自然界中帮助它们适应并生存下来。 缝感受器的研究不仅对于理解这些生物的生存技能有重要意义,同时也为工程仿生学提供了宝贵...

    清华新闻与传播学院元宇宙文化实验室AIGC研究进展及应用案例

    实验室主任沈阳教授带领团队,开展了一系列涉及元宇宙、虚拟数字人、大数据和AI的研究项目。实验室推出了多项成果,包括‘仙翁’大模型、虚拟数字人应用、网络舆论分析平台等,并发布了多个元宇宙相关的研究报告。...

Global site tag (gtag.js) - Google Analytics