在上一篇 �大刘谈项目管理(一) | 如何�细分项目需求:第一弹 中,大刘主要跟大伙分享了关于如何对项目需求进行细化分类,以便有的放矢的分派资源和进行开发。这一弹就跟大家聊聊如何构建属于自己的代码库吧。
1.建立代码标识库
还记得高中的时候,每个人基本上都有一个错题本么?每次作业或者考试中经常出现的错题,易错题,都被分门别类的记录到错题本里。尤其是英语,很多易混淆的短语,句式,通过标记语法记录,下次考试的时候再遇到时,就能很快分辨出来哪个是正确答案。没错,对于IT攻城师的我们,开发项目模块和考试别无二致,也是一道道难题进行攻关的过程。你有没有遇到过经常写着写着,突然记不清要用哪个类的哪个方法或函数能解决你的问题?或者同样是字符串截取函数,substring和substr到底有什么区别,在不同语言PHP,JS,SQL当中的用法又是不是一样呢?虽然这些都是很小的例子,但是在我们真正在代码编写过程中,一定会经常遇到这种情况。对于大刘我来说,是在为知笔记上新建了一个文件夹,名字就叫 常用代码标识库 ,子分类就是各类语言,分类下的常用,易错,相似的方法函数,我都通过Tag标签来关联。例如下图:内部通过Tag标签进行关联
如此,通过为知笔记的剪藏插件,和自己平时总结的方法函数汇总,基本上属于你自己的代码标识库就建立起来了,要做的就是不断往里填充内容,建立号标签关联性即可。
2.建立适用的项目脚手架
项目脚手架(Project scaffolding),实际上就是你或者团队在开发项目时候用到的项目架构。随着项目数量的增多,和功能模块的扩展,项目架构会随着框架的演进和业务流程的融合愈发成熟,对应的通用处理库,比如网络通用处理库,字符串通用库,ORM通用库等都会慢慢建立起来。我们平时所说的项目经验,实际上就是从这么一点一滴的完善项目架构上培养起来的。大刘所在的项目团队,针对不同的项目类型,已经搭建了2-3个项目脚手架了,平时只要需求一来,UI设计完成,后端组的小伙伴们就能依赖现有的项目脚手架,分分钟搭建一个空业务或者轻业务逻辑的项目出来,后续要做的只是做个性化开发扩展了。项目组内部通过这种方式,不断的完善、优化现有项目架构,实际上是为下次需求承接做准备,这样就形成了良性循环,也为快速敏捷开发打下坚实的基础。
对于有些朋友不知道如何建立属于自己项目团队的第一版脚手架,大刘在这里给出的建议就是:
站在巨人的肩膀上,会看的更远。
什么意思呢?就是参考现在市面上好的开源框架,比如PHP可以参考ThinkPHP,Laravel,Symfony这些比较成熟的开源框架,每个框架都各有特色,比如ThinkPHP是国人写的,文档比较详细,功能扩展也比较多,适合新人和小型团队进行开发,大刘所在的团队就是用的TP3.2的框架作为基础,一步步扩展起来的。Laravel,Symfony是国外大佬写的,学习曲线稍陡峭,不过国内公司团队使用者也不乏少数,这个就看如何做技术选型了。Java端可以考虑的就更多了,国内比较火的有JFinal,Spring,SSH自己整合的。其他的就不赘述了,因为大刘自己也在不断学习中,期望与大家共同进步。^_^
3.不断总结
是的,你没看错。为什么要强调不断总结呢?其实编程和学习是一个道理,有可能今天你在这个项目中写了几行逻辑清晰,架构合理的代码,很好解决了项目中的业务逻辑,但是如果过了半年,一年,甚至没几个月时间,再遇到类似业务场景的时候,说不定你就会抓耳挠腮的思考,这个场景貌似上次遇到了,我记得用的什么方法解决来着?好吧,这个例子肯定每个人都会遇到,出现这个问题的原因就是:你没有及时认真总结。
那么应该怎样优雅的实现你的总结呢?这里不能再像错题本那样整理个纸质记录了,还是依靠为知笔记或者印象笔记把,每次把遇到的问题和解决的方式,如果时间允许,把解决思路最好也记录上,上传到云端,随时随地都能通过PC或者手机查阅。爱迪生研究灯丝材料时,曾经进行了共一千六百种不同的试验,结果都失败了。但这时他和他的助手们已取得了很大进展,至少他们知道了�这一千多种材料不能做灯丝!大刘给大家列举一个记录解决方法的记录模板,如果有更好的,欢迎告知:
问题日期:
问题描述:
解决方案:
解决思路:
小结备注:
OK,第二弹分享完毕,第三弹开始准备ing!