极限编程中的简单设计,其实不简单

2021-01-19 09:22:00
LuLu
原创
4734
摘要:简单设计是极限编程中的重要原则,它强调保持代码简洁、最小化,并用最少的元素表达需求。Unix哲学也体现了简单设计的原则,如清晰、简洁、组合和模块化。简单设计的核心价值在于降低复杂性成本,使软件易开发、测试、调试和维护。Kent Beck提出了四条优先级排列的原则:通过所有测试、清晰表达意图、消除重复和减少代码元素。

简单设计是说只编写必要的代码,用最简洁的代码来实现当前的需求,来让程序结构保持最简单、最小、最富表现力。"保持简单、保持笨拙",这也是著名的KISS(keep it simple, stupid)原则。


很多软件设计很 好地践行了这一原则,例如知名的Unix。Unix 哲学中的很多原则也都体现了简单设计:

1.清晰原则:代码要清晰,避免晦涩难懂,清晰的代码不容易崩溃且容易理解和维护。同时也要重视注释,避免日后阅读、维护艰难;

2.简洁原则:复杂的软件出Bug的概率会更高,所以代码设计要尽可能简洁,从而降低维护成本;

3.组合原则:不同程序之间通过接口相连,而接口之间则用文本格式进行通信,因为文本格式是最易处理,也最通用的格式;

4. 模块原则:每个程序只做一件事,不要试图在单个程序中完成多个任务。例如Unix中的管道文件,管道是一个程序的输出,也是另外一个程序的输入,每个程序只专注在某一个方向;

5. 优化原则:在功能实现之前,不要考虑对它进行优化。毕竟"先求运行,再求正确,最后求快。"

Unix程序员追求简单设计,源于一个注重实效的事实:复杂度就是成本。复杂的软件更难以开发、测试、调试和维护。

如何才能做到简单设计?

Kent Beck 在《解析极限编程——拥抱变化》中,为简单设计制定了按优先级排列的4条原则:

  • 通过所有测试:代码可通过在项目中所编写的各种测试,且最终能被客户验收;
  • 尽可能清晰表达:所有代码都明确表达作者意图,简单说就是要尽可能增加代码的可读性;
  • 尽可能消除重复:重复,意味着低内聚、高耦合。消除重复,才会有助于提升软件的响应力;
  • 更少代码元素:尽可能减少代码元素,保持简洁,来降低代码的复杂度。

极限编程核心价值中的简单和勇气,在简单设计中得到了充分的体现。在实际项目研发过程中,简单设计并不是不为将来考虑,而是面对系统变更时,团队要有足够的勇气和信心,相信我们有能力通过重构,来应对新的挑战和变化。那么,团队该如何重构,我们下个视频见。

    最后编辑:程一凡 于 2024-04-02 17:25:12

    关键字:禅道,项目管理软件,敏捷开发,项目开发,现场客户,极限编程,简单设计