《敏捷技能修炼》之意图导向编程

我们曾用的意图导向编程

写程序时,我们常会这么做:先定义主方法框架:在方法中定义几个空的子方法1、子方法2、汇总方法等,然后分别实现它们。对我来说,这是个屡试不爽办法。

先关注整体,得到框架;再关注局部,实现细节。这种编程方法,就是敏捷技能中“意图导向编程”的雏形。

 

通过拜读敏捷大师们的总结,可以提升我们实践的效率和对问题理解的深度。以后,子方法和汇总方法的命名我会仔细斟酌,尽量做到不用注释也可以清晰明了。

 

“意图导向编程”的主体思想

1. 首先将问题分解为一系列的功能性步骤,以需求条目的形式依次列出。(在写代码的过程中,我们会按照一定的顺序,有意识的去完成每一点要求。)

2. 在意图导向编程中,先假设当前这个对象中,已经有了一个理想的方法,它可以准确无误的完成你想做的事情,而不是直接盯着每一点要求来编写代码。

  先问问自己:“假如这个理想的方法已经存在,它应该具有什么样的参数,返回什么值?还有,对我来说,什么样的名字最符合它的意义?”

   因为这个方法并没有实际存在,所以除了你自己的最终意图之外,没有任何其他东西的约束(因此,你是“意图在主导编程”)。

3. 试试写出解决问题的方法代码,然后依次实现其中假设的一个个理想方法。

 

“意图导向编程”实践的优点

1. 方法的内聚:更加内聚(单一指责)。

2. 可读性和表达性:更加可读和清晰。

3. 调试:更易于调试。

4. 重构和增强:更易于重构和优化,所以只做最少的设计,满足当前需求;同样易于修改和扩展。

5. 测试:更易于单元测试。

6. 易于在代码中发现模式。

7. 方法易迁移,代码易维护。

posted on 2013-05-28 21:52  marshal-m  阅读(824)  评论(0编辑  收藏  举报

导航