日历

September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

可维护性和敏捷设计

Home Forums 《冒号课堂》讨论区 可维护性和敏捷设计

  • This topic is empty.
Viewing 2 reply threads
  • Author
    Posts
    • #1062
      Todd
      Member

      《冒号课堂》中特别强调软件质量因素中的可维护性,我觉得这与现在业界流行的敏捷设计是一致的。在我看来,所谓敏捷,就是软件适应变化的能力很强,即可维护性很好。如果能够以书中重点强调的几个设计原则为指导(还包括其他一些原则),自然就会成为敏捷设计。

      不少人对于敏捷的理解就是“simple design”,即满足当前的需求就行,不要过度设计。我觉得从这个角度理解敏捷是不对的。敏捷强调迭代增量开发频繁重构,这自然要求软件可维护性高,否则重构就会举步维艰,牵一发动全身。最近项目中有个反例:开始为了方便到处使用单例模式(理由是simple design),结果后来不得不重构的时候导致大规模的源码和测试代码改动。

    • #1222
      hui
      Keymaster

      敏捷设计的推行是基于一个前提:软件的需求是变幻莫测的,随时随地在变化。否则,直线式的一步开发到位显然比多次迭代更“敏捷”。如果软件的可维护性不高而需求的变化又频繁,那么采用敏捷设计将导致程序员疲于refactoring和testing,很可能得不偿失。

      不过度设计是对的,迭代增量开发也是可取的,但这并不意味着只需要考虑当前的需求。如果程序员缺乏足够的预见变化的能力,那么他设计的代码也会缺乏足够的适应变化的能力。

    • #1223
      Todd
      Member

      >>软件的需求是变幻莫测的,随时随地在变化。

      我所接触的项目中都还是比较接近于这个前提的。有的属于没有需求规范,只有口头或很简单的文档;有的虽然有规范,但是也会变化。

Viewing 2 reply threads
  • You must be logged in to reply to this topic.
 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)