谈谈代码重构

        有时候,当一个重要的项目进展不顺利时,就有了从新开始的愿望。有时这来自管理层,但一般来自开发人员本身。他们说,若是他们只有第二次机会,而且能够从新开始,那么他们能够创建正确的系统。程序员

        但这几乎从未发生过。从我这拿走。我见过公司屡次尝试,我能够毫无例外地说,当一个团队开始用基本相同的方法重建相同的系统时,他们最终会获得大体相同的系统,包括一样的问题只有这个他们必须维持两个系统的时间。编程

      传统代码获得了糟糕的说唱。人们惧怕接触它,但它体现了通过时间考验的业务规则和程序,即便最棘手的遗留代码在用于重构系统时仍然具备价值。安全

        重构也很糟糕,由于开发人员和管理人员都不熟悉它。他们不知道有一种安全的方法来重组他们的“泥球”,他们的软件已变成更易于管理的块,这些块能够独立验证,所以维护和扩展的成本更低。架构

        重构遗留代码一般是打破它的过程。它可能已通过程编写而且工做良好多年,可是,为了改进构建并支持持续集成,代码须要分解为可独立验证的部分。负载均衡

        别担忧。困难的部分结束了。该软件作了它须要作的事情,因此重构它实际上只是重组它的问题。这并不意味着它不容易或没有风险,但有办法解决出现的问题,并且这些变化带来的好处每每能给公司带来竞争优点。模块化

        能够这样想,大多数软件都是程序性编写的,而且采用全局视角。这对于简单的程序来讲很好,但随着系统的复杂性不断增长,咱们须要一种方法来管理这种复杂性。测试

        面向对象编程为咱们提供了一种管理复杂性的方法,它经过采用咱们想要建立的行为并将其放在一个“对象”集合中,这些对象能够交互以建立该行为。大数据

        经过这样作,咱们将系统的不一样部分彼此隐藏起来。面向对象程序不是具备一个全局视角,而是由一组对象组成,这些对象相互做用以建立所需的行为。3d

      经过将行为封装到正确的对象中的额外步骤,咱们容许咱们的系统经过自动化变得更加模块化和独立可测试,这下降了咱们生产的软件的变动成本。orm

        在大多数状况下,这毫不是一件容易的事。你的遗留代码从多年的疏忽中获得了这种方式,它可能须要一些努力来清理它,但若是它已经作了正确的事情那么一般是重组和重组代码的问题因此它在不一样的地方但功能仍然存在相同。从新组织代码一般比从头重写代码更直接。

————————————————————

推荐阅读:

老王讲架构:负载均衡

支付宝系统架构内部剖析

大数据Spark与Storm技术选型

【赞】用Python实现Zabbix-API 监控

程序员怎么留住健康?

大数据智慧平台技术方案

大数据聚合平台解决方案

相关文章
相关标签/搜索