要高效,必须把最常用的工具修炼到极致:
-
操作系统,尽量选择苹果、Ubuntu,window次之,当你用命令行爽呆的时候就明白了。当然如果用windows,尽量使用快捷键操作。
-
开发工具,eclipse 快捷键,统一的格式,重构功能 ,findbug,checkstyle
-
自动化编译发布,使用hudson进行定时自动化打包发布
-
其他工具,xmind 快捷键
-
时间管理,番茄工作法 控制时间
-
好的框架,定义好一个好的框架,可以节省大量开发时间。具体内容详见我前面讲到的框架。
-
代码生成器,输入uml设计的类图,自动生成相关的类,对于需要持久化的对象,可以实现从前到后的增删改查的代码。
实战
产品获得了一个用户需求给到我,我通常是这样做的:
-
分析需求的合理性,并不是所有需求都是合理的,需要积极发现其中问题。发现的问题跟产品讨论,如果所有问题都解决掉,才进行下一步。如果后面的开发建立在一个错误的需求上,所有开发都是然并卵。
-
进行分析设计,至少形成uml的用例图和类图。对于关键复杂逻辑,确定是否可以通过设计模式解决。复杂流程需要画出流程图,如果状态变化较多,还需要画出状态图。在uml设计时,仍然会发现需求的问题,此时仍需要跟产品确定,直至所有问题解决掉,才进行一步。
-
编码实现,根据类图自动生成相关代码,省去了自己一个个再敲一遍的时间,前后端增删改查等重复逻辑都已经有了,只需要写具体的业务就ok了。
-
编写单元测试,对于自定义代码,必须编写单元测试。这样后期修改代码或者进行集成测试时,才会比较顺畅。
-
进行findbug,checkstyle自动检查,系统自动化发布,如果出现问题邮件通知。
-
自测,自己实现功能后,先按照需求自测一般,保证正确性。
-
提交测试,发现bug及时修改,基本做到日结。
-
自动化发布上线。
当然中间会尽量节省各种时间:
-
快捷键操作
-
番茄工作法,设置不被打扰时间,全神贯注的投入编码
-
3次以上重复的事情,就考虑实现自动化,比如 发布,代码检查,代码生成
-
代码规范严格遵守,最优实践严格遵守
团队高效
其实编码不是一个人的事情,团队协作是必不可少的。团队尽量采用如下管理方式:
-
需求、设计集体参与,不需要再每人讲解
-
设计后进行分工,如果有新人就采取新老结合的结对编程,对复杂的代码也采取结对编程。
-
推行结果导向,从产品,需求,设计,开发等,不要白白浪费时间做无结果的事情
-
代码规范严格遵守,最优实践严格遵守
-
规范流程,不断磨合各个环节人员,达到丝般顺滑
-
人员互备,不会出现单点
原文链接:http://developer.51cto.com/art/201508/488149.htm