一个人的项目—-第一天
作者:yinwm
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
现在在给一个自己的网站 http://www.yes7080.com 写一个类似于百度贴吧的功能。当前合作者出去和老婆Happy了,暂时项目只有我自己一个人。想想,也不能瞎写,就使用一些东西把自己管理起来吧。
刚刚看完Scrum,发现和我平常期望的,理想的,使用的方法很像很像(看来我有慧根)。所以打算自己一个人试试看。并结合TDD等方法,把自己管起来。
毕竟,刚刚入门,而且一个人,难免有东施效颦,丢三落四的情况出现。
第一天,也就是今天凌晨
1,项目初创
开始新项目,使用bzr开启一个新的repository,开工。
采用TDD,构建一个最简单的,最土鳖的测试用例,不要求很完整,只是一个对大多数常用功能的简单使用,目的是为了尽快的搭建出项目原型和框架。
遵照Uncle Bob的谆谆教诲,在完成一个土鳖测试用例之后,成功的让Eclipse画出来一坨坨的小红线(编译不过嘛)。然后撰写真正的Interface,还有Abstract Class,真不错,终于编译成功。
收获:这个过程并不是一个浪费时间的过程,而是结合了思考,设计,具体请参见我的《初涉敏捷编程》。这过程中出现了很多的对API的推敲,对类的职能的思考。
而且,在写真正的接口的时候,可以不用过多的考虑用不到的方法,也就是我总说的,关注一个类的职能。Duty Oriented.
2,开始功能实现
有了用例和接口,就可以写实现了。因为项目的特性,一个只读的数据存储结构是最合适的。但是无奈项目时间紧迫,所以我没有这么充裕的时间去选型,甚至设计实现一个适合这个场景的存储结构。所以我把实现分成了多个部分,第一部分,也就是使用传统的数据库作为存储,这样可以最快的实现功能,并且满足现在访问量并不大的情况。以后随着访问量的增加以及时间的充裕,可以继续完善甚至更改存储体系。
醒目的目录结构是这样的
./src
./src/com/yes7080/saybar (存放所有的接口,并且这是使用时候的统一入口)
./src/com/yes7080/saybar/impl (存放实现)
./src/com/yes7080/saybar/impl/datamodel (存放使用datamodel,亦即使用数据库的实现)
./test
./test/src
./test/src/com/yes7080/test/saybar (测试代码)
实现使用了二级目录结构,也就是使用impl/datamodel,这样的目的就是因为以后可能出现其他的存储方式。而且,正因为这样从目录解耦,就可以更好的进行设计了(具体的设计思想,我以后会撰文解说的)。
很爽的写了很多,很土鳖的没有采用任何的项目管理。工具使用Trac,但是更多的是一个用于文档和Ticket跟踪。
所以我决定对自己采用Scrum进行管理。也对自己有一个监控。
最开始,实话实说,我真的忘记了Scrum具体应该怎么开始了,但是非常简单,用户故事(是这样么说么)只有一个,就是实现一个用数据库的存储。我给自己两天的时间,也就是后天天亮之前完成,大约是还有10-16小时的工作时间。然后在看情况进行修改吧。嘿嘿~
暂时给自己定一个时间,然后,继续工作鸟~~