之前买了一本书,叫《架构探险—从零开始写Java Web框架 》(不推荐购买~),一本标题党书籍!但是我很推崇作者写代码的方式,就是基于TODO的方式进行开发!
个人认为以基于TODO的方式进行开发,至少有如下几点优势:
有助于理解需求
有助于梳理业务流程
有助于任务拆解和代码封装
TODO即注释
更易于进入心流体验
同时还能避免如下两种情况:
下面我以Blog的创建流程为例,来演示基于TODO的开发方式,并说明为何基于TODO的开发方式有如上优势!
后端的开发框架请见
Web开发框架推导
!
流程演示
后端开发流程
基于上面的开发框架,整体流程就是Controller->Service->Mapper->Database!
就Blog创建流程来说,我们会有BlogController->BlogService->BlogMapper->Database的流程!
那我们的开发流程如下:
Step1:
Step2:
Step3:
Step4:
Step5:
Step6:
Step7:
Step8:
Step9:
Step10:
前端开发流程
前端的开发除了需要处理代码逻辑,还需要处理页面流程!依然可以以TODO的方式来处理,借助于a标签和按钮,可以把页面流给串起来!
接着上面的Blog的CRUD逻辑,这里仅列出示例,不再演示流程,开发流程和上面的流程一致!
list.html:
new.html:
view.html:
edit.html:
优势
首先问一个问题,对于你接收到的信息,你是以什么样的标准来评判你理解了或学会了?我认为是能用你自己的话再说一遍!
基于TODO的开发方法就是以此为基础:
首先基于需求,以TODO文字的形式将业务流程写下来。写下来以后,可以和需求去确认,修正偏差,既有助于理解需求也有助于梳理业务流程
同时,可以看出,每个TODO的工作量都比较小,实际上也起到了任务拆解和代码封装的作用。既然任务拆解了,编写的代码也就相应的被拆解为一个个的功能代码了。当然对于逻辑较复杂的代码,还是需要使用重构手段,来进一步的对代码进行封装
代码编写完后,不需要将TODO完全删除,只需要把TODO字样去除,TODO就变成了注释了!
由于每个TODO的实现时间都较短(主要看拆解得如何),你开发的每个小功能,实际上都是在解决一个TODO,就像游戏里的打怪一样,能得到准即时反馈,心理得到满足!这是进入心流体验的一个必要条件!
关于心流体验:
心流英文叫”flow”,我第一次见到这个词是在《人件》这本书上!这是两年前写的读书笔记《我的管理实践—-《人件》读后感》!
心流的解释有很多,有兴趣的可以去搜索一下
相信很多人都经历过,比如你做某件事时很专注(写代码、玩游戏等等),当做完后,你以为没多长时间,但是回过神来一看,好几个小时已经过去了!
写在最后
本文只是演示了一种个人比较推崇的写代码的方式,并解释了为什么推崇这种方式!当然,仅供参考!毕竟适合自己的才是最好的!
《我的管理实践---《人件》读后感》:http://www.cnblogs.com/ivaneye/p/5224921.html
领取专属 10元无门槛券
私享最新 技术干货