项目总结
1、在开发一个新项目时一定要把框架搭好。搭个鸡窝你也要考虑选址,材料,大小等。如果你不想浪费你的时间,一定要把框架搭好,
举个例子,由于这个系统是旧系统的改版,很多实现方式都不同,所有的代码都重写,有一个地方是比较要命的,就是这个系统现在就要连接40多个数据库,以后数据库的个数还会增加,以前的代码里面到处都是数据库连接字符串相关的代码,看起来真是要命啊,我总不能让我的代码里面到处都是这样的东东吧,经理要是看到我这样的设计会怎么想,隔壁邻居小明知道了会怎么想,旧系统的实现方式在新系统根本就行不通,因为很多功能都要整合,突然觉得这个问题好难解决啊,很有压力,最后用了两个多小时把这个问题解决,开心的感觉大家应该都有过,(此时此刻突然想到这种实现方式跟某个设计模式很像),因为数据库问题没有解决其他的开发工作根本不能进行,后来想一想发现其实还是蛮简单很容易想到的。
2、功能模块化,一个方法实现一个功能,当然这个方法会调用其他的辅助方法,特别是写底层方法的人,你的方法都是写出来让大家调用的,别人实现一个功能还要调你N个方法,你说别人爽不爽,让别人爽了,才是真的爽,一个功能一个方法,看起来也清晰,总之百利无一害,当然要达到这个程度还是要一定的积累的,把事情做得更好当然也需要更多时间,但我们开发中最缺的就是时间。
千万不要把多个功能写在一个方法里,代码看起来比较混乱,不仅别人不容易看出作者的意图,过几天之后可能作者都不相信是自己写的代码,自己不好好看也不知道是用来干嘛的,这种代码维护和升级都是很麻烦的,重写这种代码是相当痛苦的。
3、尽量减少硬编码,如果我看到代码中存在大量硬编码,第一感觉就是作者的水平不怎么样,感觉这样的代码就是用浆糊粘起来的,一动就破,这样的代码改起来是相当麻烦的(你不觉得修改一两处就能达到想要的效果是件很爽的事情吗),你要到处寻找并修改掉,还会担心自己是否有漏掉。
4、不要急着下手写代码,有人说一拿到需求就开始写代码的人是加班最多的人,有时候我们一看到需求就大致知道代码怎么写,就情不自禁的想写下来,但我们必须克制,等框架搭好了,整体思路清晰了在写吧,如果你有灵感的火花闪过,可以先写下思路,如果是因为太简单了就不用理它了,因为你是一个程序员,你必须有能力能很快的搞定一些事情。把框架搭好在做开发是一个成熟稳重的表现,在开发过程中也是要想清楚在动手,乔峰在用降龙十八掌的时候是要先运功的,先动脑,在动手表现出你是一个老手,资深***,不是一个新手。
5、先把一个功能做到极致,尽量考虑得更周全,其他类似的功能开发起来就很快了,因为思路你已经有了,还有实例,在实现这个功能的过程你肯定也攻克了一些技术难题,当然一些技术难题应该是在设计构架的时候就应该考虑的,如果你的代码写得比较好的话,方法写得比较灵活,没有硬编码,那么这样的方法直接Copy过来不需要做任何改动,同时也说明硬编码是一无是处,当然可能有时候在某些地方他的效率会好点,但绝对是微乎其微的。但是如果你对多个功能四处开火的话,你会发现你在单位时间内做了很多事,但都是半成品,说不定连半成品都不是,一个功能还没有做好你就去做类似的功能,开发到后面如果发现一个很重要的问题你没有考虑,你发现你以前的假设是不合理的,你可能要推翻你以前的思路重来,你会在心里大喊天啊,就像我经理开玩笑的说:“太汉,你完蛋了”。
举个例子,数据的显示我本来用都是用Repeater加自己写的分页控件,但是我自己写的分页控件只能获取Get参数不能获取Post参数,我想就算我自己的分页控件不能获取Post参数,也可以用AspNetPager,我就一直这样开发着,分页到最后实现,到最后才发现,AspNetPager也不能获取Post参数,我也没有时间去研究AspNetPager是否可以获取Post参数,我只好把这个事实告诉经理,他开玩笑的说:“太汉,你完蛋了”。最后所有的Repeater全部改成DataGrid,用它自带的分页控件,当然这个综合考虑的结果。
6、开发是一个智力的工作,如果你还没有感觉到,那你以肯定走了弯路,以前晚上加班的时候问题解决不了了,我还在那里死磕,弄到很晚,现在遇到问题了,八点多了,大脑感觉累了,我一般都会选择回去,好多次问题都是在公交上解决的,大家都是用脑的人嘛,别信那些说自己以前是多么的疯狂,弄到几点几点的,很牛X的牛也是要合理的休息的,会利用自己时间的人总是让我很敬佩,刘未鹏有本书叫《暗时间》,我只看了目录,结合书名和目录我想他就是将怎么充分利用自己的时间的,不用总是对着电脑在那里敲,反复的敲,我还是比较赞成文思涌泉,闭目养神什么的,渴望一个自由的空间,而不是感觉有一双双眼在看着你的工作环境,程序是一个创作性的工作,不是苦力,我们会经常看到什么离开你的电脑,远离你的电脑去做开发这样的文章。不就让我们多动脑,多思考吗,古人总结很多的,现在越来越觉得古人总结的一些道理真是太好,太神奇了,让我感触最深的一句就是“温故而知新”,因为N年前发生的很多事情我还记得很清楚,离题了。
作为一个程序员,我不太赞成长时间的工作,就算是项目很忙,也不需要加班到晚上九点多吧,我考虑到四点:
1:长时间工作效率不高
2:程序员也是要有自己的私生活的
3:业余时间学自己想学的知识,充电啊
4:做开发不一定要坐在电脑面前,文思涌泉大家听过吧,就是你在WC的时候啊,听说吴克群就喜欢在WC里面搞创作(其实程序员也是很八卦的)
点题:这就是我的第一次项目总结,谢谢大家的观看,天天开心哦。