`
ender
  • 浏览: 42806 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代码腐化之路

阅读更多

11年刚进入一个新部门,接手一个老项目,典型的legacy code , 一个jsp 好几千行,那叫一个乱。

但是细细瞧瞧, 还有不少代码是不错的,依稀能看到漂亮代码的影子,可以想象,当初的架构应该还是优美的,只不过经过了若干程序员之手以后,代码慢慢的腐化了。

 

07 年做的一个项目也是这样,刚开始的时候设计了一个漂亮的架构,大家都严格遵循规则写代码,很注意维护架构的完整性和一致性,也做Code Review,坚决杜绝 dirty code。 随着时间的推移,项目的进度压力加大,什么原则了,纪律了都抛弃了,实现功能是第一要务, 最后系统变成了一个难于理清的大怪物, 现在大家都盼望着它赶紧退休,推倒重写。

 

联想到我2010年做的咨询项目,客户是行业的领导者,软件和产品运行在世界各地,原以为代码质量会很不错,进入项目组一看,好家伙,代码够乱的,项目组成员在实现新特性的时候,好多copy&paste , 然后就忙着fix bug 。

我深入的看了它的代码结构, 隐隐约约的看到最初的一些好的原则,模式隐藏在代码的背后,对照现在的代码,让人无限感慨。

 

代码腐化之路

 

新项目来了,大家很happy,有机会从头开始构建一个东西,是很难得地,于是仔细小心的设计架构,定下规矩和原则,约定大家都要遵守,刚开始时运转正常,平安无事。

 

渐渐的出现了一些新情况,需求变动,时间很紧张, 程序员发现有一个非常直接的办法,可以快速的实现客户的要求, 几天就可以搞定, 但是违背了架构的原则或最初的项目的编码约定, 如果想遵循的话,可能需要花费好几倍的工作量,可能需要几周才能完成,更要命的是,为了实现这个新需求,可能需要对整个架构进行调整, 真的调整了,测试跟不上,风险太大, 怎么办?

大多数情况下,程序员都经不起诱惑,也扛不住进度的压力, 会用最直接的办法进行快速修改,“管他呢,先实现再说,反正我还记得细节”  ,实际上,改完以后我们又忙着干别的事情去了,过上几个月,自己都看不懂了。久而久之,这些脏代码没有人知道是怎么回事了, 后面接手的程序员就会骂前面的程序员 “这么烂的代码,谁写的!!!???” 

 

代码就是这么腐化的......

 

 

 

 

31
2
分享到:
评论
6 楼 dracularking 2011-04-06  
不是说没有clean code,我觉得一是侧重点,很少需要维护的,那可能价值是不大,但换言之也是个死程序,二也是更重要的,如果连你们老板都不在乎,程序员又有什么办法去在乎
5 楼 ender 2011-04-06  
3 楼说的很对,不断的重构时解决腐化问题的出路,可惜啊, 我所经历的项目中还没有一个能够做到持续的重构, 保持清洁的代码。

我自己也有些怀疑了,到底有没有项目是能够保持Clean Code ?
4 楼 DOCDOC 2011-04-06  
重构这个词儿,说起来很轻巧,事实上呢?
跑得好的程序,远比写得好的程序,来得有价值
3 楼 Mybeautiful 2011-04-06  
同意楼主的观点。但是如果是需要长久维护一个项目,就必须要不断的重构,不只是代码,甚至是框架。我经常对大伙说的就是“你埋下的任何一个坑,将来都会被踩到,为了将来更Happy,现在多花点时间”;维护一个产品5年,其间不断的有新功能增加,终于把它从被放弃的边缘到现在开心的继续维护着。
不断的重构是解决腐化问题的唯一出路。这需要维护者(各个相关角色,主要是开发人员)有足够的勇气,自信,专业知识,以及最求完美的精神。
2 楼 nighty 2011-04-06  
在项目进步的催促下,都会慢慢变成这种情况
1 楼 brook.realize 2011-04-06  
过度复杂的框架要求的通病. 在一开始的时候,就需要考虑到这样的设计方案如何应对高压,如果连高压下的人情都未考虑到,这个方案只不过是温室里的花朵,玩玩而已

相关推荐

    微服务架构治理 - 架构腐化之谜-Thoughtworks

    微服务架构治理 - 架构腐化之谜-Thoughtworks 微服务架构治理是指在微服务架构中,通过合理的设计、实施和管理来确保架构的健康度和可维护性。本文将讨论微服务架构治理的重要性、架构腐化的原因、保持架构健康度的...

    重构改善现有代码的设计

    1. **重构的意义**:重构的主要目的是使代码更容易理解和修改,避免软件腐化,提高代码的可测试性,并降低未来添加新功能或修复错误的成本。 2. **重构的基本原则**:保持重构过程小而频繁,每次只做微小的改动,...

    修改代码的艺术(2)共 5

    开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地...

    修改代码的艺术(3)共 5

    开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地...

    代码重构思想

    通过持续重构,我们可以保持代码的活力,防止代码腐化,从而支持软件的长期健康演进。同时,良好的重构实践也需要配合版本控制系统,以便在出现问题时能够快速回滚。 总结起来,代码重构是一种主动优化代码的策略,...

    ThoughtWorks_持续集成之腐化与涅槃重生.rar

    《ThoughtWorks_持续集成之腐化与涅槃重生》是一个深度探讨IT行业实践案例的资料,特别是关注运维领域的持续集成过程。在这个文档中,作者详细分析了持续集成从理想到现实过程中可能出现的问题,以及如何通过改进...

    <<重构>>的进阶版,修改代码的艺术

    2. **重构的重要性**:重构能够帮助我们避免代码腐化,保持代码的清晰和整洁,提高软件的可测试性,从而降低维护成本,增强团队的生产力。 3. **重构的原则**:始终保持代码可运行,每次重构的步骤都应小到可以立即...

    Q5.7OpenCV249图像腐化

    【描述】提到的"It1995"是在CSDN(中国软件开发网络)上的一篇博客,可能提供了关于如何在Qt环境下使用OpenCV进行图像腐化的详细步骤和示例代码。Qt是一个跨平台的应用程序开发框架,常用于创建图形用户界面。结合...

    修改代码的艺术(英文版)

    开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地...

    重构,改善既有代码的设计

    在项目开发过程中,适时地进行重构可以避免代码腐化,使得软件能够适应未来的需求变化。因此,重构成为了持续集成、持续交付等现代软件开发方法中的核心实践之一。 《重构:改善既有代码的设计》这本书还强调了测试...

    重构_改善既有代码的设计(中文版)

    1. **代码重构的重要性**:重构可以避免代码腐化,保持代码的整洁,提高软件的灵活性和可扩展性。当项目随着时间推移变得庞大复杂时,良好的代码结构显得尤为重要,能够降低维护成本,减少错误。 2. **重构的步骤**...

    编写高质量代码之Java.epub

    怎样辨别一个项目代码写得好还是坏?优秀的代码和腐化的代码区别在哪里?怎么让自己写的代码既漂亮又有生命力?接下来将对代码质量的问题进行一些粗略的介绍。也请有过代码质量相关经验的朋友提出宝贵的意见。

    重构:改善既有代码的设计(英文版) pdf 文字版

    它旨在提高代码的可读性、可维护性和可扩展性,同时减少软件腐化。随着面向对象技术,尤其是Java编程语言的广泛应用,由经验不足的开发者编写的低质量代码数量显著增加,这导致应用程序变得效率低下且难以维护和扩展...

    修改代码的艺术(1)共 5

    开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地...

    修改代码的艺术(5)共 5

    开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地...

    修改代码的艺术(4)共 5

    开发人员常常面对的现实是,即便是最训练有素的开发团队也会写出混乱的代码,而且系统的腐化程度也会日积月累。本书是一部里程碑式的著作,针对大型的、无测试的遗留代码基,提供了从头到尾的方案,让你能够更有效地...

    重构-改善既有代码设计

    通过持续不断地重构,可以避免代码腐化,提高团队的生产力,降低项目的维护成本。因此,《重构-改善既有代码设计》这本书不仅是Java开发者,也是所有程序员都应该深入学习的经典之作。 总结来说,"重构"这一概念是...

    Refactoring Improving the Design of Existing Code.pdf 代码重构

    本书首先介绍了重构的基本概念,解释了为何在软件开发中需要进行重构,以及重构如何帮助避免代码腐化,保持代码库的健康。作者强调,重构不仅仅是个人技能的体现,更是团队协作的重要组成部分,能够促进代码的共享和...

    重构-改善即有代码的设计

    持续、适时的重构能够保持代码库的健康,防止代码腐化。 总结来说,《重构-改善既有代码的设计》是一本指导开发者如何通过系统化的方法改进代码结构的权威指南,对于任何希望提升软件质量和开发效率的人来说,都是...

Global site tag (gtag.js) - Google Analytics