Let’s keep going
8 要有一个持续的改进项目的方案(CIP)。后台界面长什么模样,前台的业务操作界面什么样子,要有模板可供拷贝。此外,你要进行持续的改善和修订,直到它变得很成熟。
做一个新项目,直接从里面拷贝模板,后台和前台都可以拷贝,如果有改进,可以把这些模板升个级,有利于以后做新的项目。
模板里面还要提供基础框架,像部门编辑器,员工信息编辑器这些基础的功能,你要有准备,不必开始一个新项目时,要从头开始建立用户,建立部门,那样没有效率。直接打开现有系统,建立一个新的应用,添加部门,用户,角色,权限关系也分配好,做起项目来又快又稳。
9 要有一套稳定的公共类库,用于一些常用的功能的直接调用,每次有新的功能需求,不必到网上找,而且以前用过的代码,稳定。 这套代码涵盖的功能有访问数据,记日志,发送提醒邮件,字符串操作,客户端代码验证,操作PDF文件,生成EXCEL报表,比较常用的功能都放到这个类库中,不断完善。
如下图,还有一个更完善的版本
有时候,这个东东的产生,是对现有的.NET BCL不熟悉导致的,有时候是因为类库提供的接口不方便直接用,还要写样板代码,所以,弄个基础框架库,有利也有弊。
10 要有一套稳定的数据访问层。有自己写过的SqlHelper,有Application Block,还有DbHelpSQL, NHibernate,NBear,这么多组件,以前做项目都折腾过,现在变老实了,把Enterprise Library用熟练,用会,必要的时候去做扩展,坚决不再用别的类库,不再折腾自己。
尝试过Enterprise Library3.0,4.0,有些问题不好解决。有时候可以装上,运行时有异常,痛苦了几个晚上后,强迫自己坚决不升级,不折腾,只用2006 Jan.的企业库。
以前去富士康面试的时候,人家问我,企业库中的里面的工厂模式之类的问题,是怎么设计的,我的回答令人家很失望。我的观点是务实,把项目做稳定,做好,客户满意,老板满意就行。要是你有时间去折腾里面的模式,那是你的本事,我没有心思去折腾,我只会用,用的很稳定的,估计我这个水平,下次还会还被他cut.
之前提到过,我用代码生成器生成代码,运行的时候,还得有类库支持。建立一个新的项目时,添加引用到ASP.NET Factory Runtime,项目就可以跑起来,不必去找很多依赖类库。
虽然为Data Access项目弄过很多公共实用程序,但现在都不用了。专心用好Enterprise Library 2.0
11 需要一批文档模板,打上公司的banner和logo,有support的联系方式,方便沟通。
有需求变动,需要做过记录,系统有bug,也要有人follow,下一个版本要做那些事情,都有凭有据。
把每个人的工作写出来,文档化,可以改善沟通的效率.
因为是公司内部项目,我发现,越是Title比较高的职务,越是不愿意做这件事。可能是怕说的,写的,做的有出入,不好对上司交代;也可能是怕对以后的career有影响;我的Title不低,倾向于做这个。
12 需要有一些常见的问题的解决方案,遇到问题了,直接拿来就用 这里面的内容比较多,只举几个常见的例子
1) 多语言项目的解决方案。到目前为止,有几个方案:用XML文件(zh-cn.xml,zh-tw.xml,en-us.xml); 用资源文件,配合StringResourceTool2生成类库;用ASP.NET自带的方案,生成网站资源;
这些方案的样板代码都要写好,可以直接拷贝,或者封装成库,直接调用。
2) 日志。一般分为系统日志,业务日志,审计日志;有稳定的封装好的方法直接调用,也要方便扩展
最好还要弄个日志管理器,查看系统日志;日志的格式也要可扩展的,数据库中用ntext格式,如果是SQL 2005,直接用XML类型;程序中把日志消息序列化成XML字符串,这样扩展性好一点,不必为多加一个日志项而去改动表结构。
3 )常见的javascript脚本要准备好,打开一个新窗口,父子窗口传值,窗体提交前的数据验证,这些脚本很常用,要提前准备好,用的时候直接拷贝;你也可以学会熟练用JQuery之类的JavaScript类库,实现代码复用。
4)项目的验证方式,要提前配置好,到用的时候直接拷贝;你用Form验证,还是有一队样板代码和配置要弄,提前准备好可以运行的代码和配置文件,用Windows验证,提前弄好IIS的配置,最好截个图放在那里,下次不至于在IIS中找不到option在哪里;用Windows验证时,最好也弄个域用户管理的小工具,操作AD,读取用户信息,直接导入到系统的当前用户表中;
5)常见的一些特效控件,也要准备好例子; PageMethod怎么用,UpdatePanel里面不能放哪几个ASP.NET控件,ComboBox,DropDownList绑定XML数据源或SQL数据源;好看好用的GridView样式,也要准备好,不能总是从头开始
13 做数据库类的软件,数据库设计工具要准备好。小项目,十几个表的,用SQL企业管理器可以应付,再大一点,要弄个Power Designer,E/R Win之类的工具,从整理上了解自己设计的表,而且这个工具可以帮忙你快速查看别人的数据库的表结构设计。
常见的表结构也要准备好,员工表(Employee),用户表(User), 配置表(Param)都可以提前准备好,这些表的变化不大,都是与系统基础功能相关的;最好把金蝶用友的数据库也保存到自己的本机中,弄个架构图,自己设计数据库的时候好参考一下,人家的系统是经过数次的更新换代修订而成的,一定有他的优势和道理;最近用Power Designer看一个系统的表结构图,发现数据库的字段直接用中文,这样好,减少维护的痛苦,还有一个系统,在字段名字加i,f,c之类的表示字段类型,这样也很不错。
看看这个图,直接用中文,简单易懂,减少误会,我们的英语水平都不怎么样,Name,UserName, Last name, First name,Family name,Login ID,这些名字,一定会把人弄晕的,你相信吧。
14 有空的时候,常整理一些技术笔记和文档,用的时候可以很快的完成任务。
常见的文档,你的电脑里都要有,《GridView 72般绝技.doc》,《JavaScript应用技巧集合.doc》,《Net编程规范.doc》,《RDLC报表开发.doc》,这些文档,有空的时候多整理一下。
还有常见的技巧,如下图,我不会写,我就整理别人分享的知识,
手里一份打印版,装订的像一本书一样,电脑里一份电子版,平时没事就看看,用到的时候再仔细看。
这些技巧网上都有,只在于平时你是否有积累。文档积累多了,又有个问题,不好找,在硬盘里面找,还不如到google中找的快,于是硬盘搜索工具要派上用处
这样找东东要快很多,积累久了,定期把它们整理成有目录的电子文档,如CHM,PDF,现在自动生成帮助文档的工具多,制作电子书相对容易。
我一直想把博客园里的文章整理成PDF文档,有些成系列的文章很好,于是找个爬虫工具,把文章自动下载放到本地,然后用批量数据转换工具,转换成DOC格式,根据需要取舍,制作成PDF格式的文件。
后来由于工作忙,这个计划没有持续多久;一方面这是借口,另一方面有很多知识文章是很好,但是用不上,整理起来要花时间,但是用不上,还不如等用的时候再去折腾。