编程思考路径 2 条
梳理一条思考路径:
数据类型+函数的方式,函数中处理有相同逻辑的类型,是通过在函数中 switch 的方式;
考虑到数据类型相对稳定,函数随业务多变,所以 switch 导致业务变更成本增加;
对象提供了一致的接口,让业务逻辑的函数能消除 switch,从而变得简洁,同时适配新数据类型的修改成本也很低;
但为对象增加新的接口,还是不低,需要为每个对象都增加;
接口的默认实现就很有必要,兼顾了业务逻辑/函数的变更和对象动作/接口的变更;
当然接口默认实现满足不了的情况下,还可退回到每个对象单独实现/重载。
路径 2:
编程要素的顺序--Prelude、Types、Datas、Functions
源文件考虑的是存储顺序,Prelude、Types、Datas、Functions,为的是方便人阅读时检索;
阅读源文件的顺序:Types 和 Functions 为先,具体哪个先看你阅读源码的目的,Prelude 和 Datas 是辅助信息;
编写源码的顺序:Functions,Types,Datas,Prelude。
TDD 是编写源码的最佳实践,也基本是这个顺序,尤其在 IDE 的辅助下,尤为高效:
函数是骨架,同时也实现价值,所以从 backlog 取一个 user story,写下第一条 AC/一个测试函数,
函数内写下一条语句,如:Programer jim = new Programer(); 其中包含了 Type,可以是 class 也可以是 struct;
然后借助 IDE 把自动创建 class Programer;
接着写下第二条语句,如 done = jim.coding();其中包含了一个对象动作/函数;
然后借助 IDE 自动创建新方法 coding;
然后写下第三条语句,assertTrue(done);其中包含了 coding 方法的预期结果;
然后实现 coding 方法内容。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/f5fa7a0d398da9ba72209a869】。文章转载请联系作者。
评论