coordinator's planet

叶子 是不会飞翔的翅膀

翅膀 是落在天上的叶子

posts - 89,comments - 251,trackbacks - 5

链接:个人记帐软件0.1版发布

首先说说失败的地方吧(因为和别人的代码比较起来,写的确实比较烂):

1设计没有文档化。虽然前期设计也有个十天,但一直都是比较零碎的想法,而且都记到纸上没有敲到电脑上文档化。导致有的想法比较潦草的记到纸上后,下次再看又不知所以然了,更有几次纸都不知道扔哪去了,所以周期才拖的比较长。下次开发的时候,应该强迫自己每天记开发日志,把想到的问题、新的思路、浏览的资源都记下来。

2过于关注细节,没有重视整体。这几天一直在看《设计模式精解》,作者认为以前的开发模式是探索需求的名词与动词,然后把它们分别转换成类与方法,结果导致整体结构的不合理。而更合理的开发模式要求我们不能过早的把眼光放在细节上,要多考虑细节所处的上下文,也就是整体环境。拿到这个问题之后,我就凭直觉把它分割成数据访问类、几个WinForm类,没太考虑设计模式方面的东西,代码显得很不优雅,具体说就是违背了“一次设计,多处使用”(把重复的地方封装起来)的原则。比如对结点的处理,很多地方都对日、月、年、账本结点作了重复的处理,在选择、删除、添加的事件响应里面都有switch case这样的烂代码。其实设计个树结点类,然后日、月、年、账本分别继承,用多态处理的话效果应该更好些。

    以前用Java作开发的时候,习惯是先考虑程序架构,到.NET之后,常常是不自觉的先想有什么控件可以用,没了大局观^_^

3没用UML。以前总觉得作个小软件没必要用UML,其实UML不仅对大项目,个人项目也挺有用的。在开发到后期之后,类多起来,有时候自己都糊涂了,不知道该用哪个类的哪个功能,如果这时候有个类图就好了。而在开发前期,如果画了用例图,时序图,类图指导后面的开发工作,后面的开发也就不会像打补丁一样,哪缺往哪补。当然这也建立在充分设计的基础上,我的两个数据访问接口就设计的比较粗糙,结果到后期老是缺功能就往接口里添方法声明,然后再改实现类。在开发完后作第二版时,没有这些图可能自己都会忘哪个模块是作什么的,也不便于与别人交流。等有时间了,一定好好把UML学一下。

4没有规划。虽然不至于用到Office里面Project这样的大家伙,但用个软件记录一下步骤总是不错的。我总是写了一个功能之后,忘了下面该作什么,然后想老半天(我比较健忘)。后来发现VS.NET 2003下面的任务列表是个不错的东西,就用这个记任务。不过我觉得它还是不够强大,推荐一个ToDoListhttp://www.abstractspoon.com/),免费,而且强大实用。

5MainForm里面代码过多。虽然平时说MVC感觉就是作网站才用到,但就个人软件而言,界面和功能也不该太耦合。我对树结点的操作很多都放到MainForm里面,等下一版的时候,一定好好精简一下。

至于其他的版本控制、NANTBug记录、日志等等还不会,慢慢的去学了。

 

失败的地方不少,但能让我觉得好的地方还是有的。

1迭代化开发。我给自己定的目标就是先把它作出来再说,功能上能用就行,麻烦的地方留着下一版再实现。如果想第一版就作的很好的话,估计等下一版出来之前我就没斗志了。过长的周期与过高的开发难度容易使人产生挫败感,把目标分解,一个个去完成更好一些。

2勤查资料。多查MSDN自然是老生常谈,我习惯是直接看实例代码,文字多了我头晕,还好MSDN里面的代码写的还不错。另外CodeProject也是必须上的,它让我很快就了解了XMLADO.NET方面的知识,例子也很深入浅出,慢慢翻书会急死我的。博客园里面的好文章也很多,用站内检索也能查出不少好东西。

    3资料分类。资料多了,就必须分个类。我把图片、参考文章、参考源代码与程序目录放在一起,同时对资源写了一个索引(记录这个资源对开发有什么用),找起来就比较方便。

4把开发过程中学到的技巧记下来,这样下一次作同样的事情就快多了。我把诸如MessageBoxTreeViewDataGrid等控件的使用技巧记了下来,有些自己又写了示例,如果下次用这些控件的时候就会很容易上手。

 

以上就是我的感想,可能比较初级吧。如果觉得放首页不合适,我就移到新手区里。欢迎大家讲讲自己在开发个人软件时的经验。

posted on 2005-08-29 22:59 coordinator 阅读(3174) 评论(14) 编辑 收藏