系统开发前言导读
工作这么久以来,总结过不少知识点,记录过很多工作中犯下的错,这些都是一个个点,时间长了,都忘了这些知识点是在什么时候遇到,犯错的原因在哪里,于是就想利用工作空闲的时候写一个系列性的文章,把点串成面,把面构成体,把这工作几年的知识积累串成一个系统的知识。
本系列文章计划分成三个部份,分别是项目管理与设计、项目技术架构、以及性能调优。
假设现在是这样一种情况,公司要开发一个网站项目,项目组成员5个人,一个项目经理,一个系统架构师,一个资深程序员,两个普通程序员,预计项目开发约需3个月,一切从零开始。此时如果你是这个项目经理,你需要做什么呢,如果你是这个项目组的资深程序员,你又需要做哪些工作,本系列文章打算从站在这个项目经理、资深程序员角度来看待这个网站项目从无到有的过程。
本来是想把项目管理和项目设计分开来写,后来想想还是合成一个,一来是我还是偏重于系统设计,二来是想只有懂得设计过程才会懂得管理,只有你知道一个项目要做哪些事情,需求工作完成,需要完成什么样的工作,概要设计,详细设计,编码,这些过程当中需要哪些工作成果需要交付,作为项目经理只有俱备这些预见性才能把工作做好,再加上不定期的总结才能,所以我还是觉得作为这些项目组不大的项目当中,项目经理还是需要懂得设计才行。不过再小的项目,再小的项目组也需要规范,适当的规范可以改善混乱的管理局面。
在项目需求雏形出来以后,作为资深程序员凭借着自己的经验就需要为这些项目做技术准备了,采用什么样的数据访问、异常处理机制、系统日志记录等等,一些项目非业务需求的框架就应当提前搭建出来
项目运行时间长了,数据库保存的数据越来越多,系统越来越慢了,这时候提高系统的性能就是件必须解决的事情。平常在看一些技术文章,如提高SQL SERVER性能,构建高性能ASP.NET网站,看过之后,似乎是记得了什么,平常的工作中或者因为项目紧急,或是由于懒还是没有应用,时间长了,看过的文章也忘了,像这些东西都需要把它当成经验积累记录下来,并且放在这样一个系列的文章下面,以后可以经常回过头来看看。这样下来,整个知识就成为一个系统化的了,以后遇到问题,首先会把问题定位在项目过程的哪一个点上,这样容易分析问题前因后果,并且让知识得以长久记在脑子里。
在一个网站项目开发过程中,可能涉及到的工具会很多,如建模工具Powerdesigner;原代码管理工具VSS;网站性能测试工具Microsoft Web Application Stress Tool;如果想剖析别人DLL文件的原代码,还需要使用Reflectork;如果你想测试第三方Web Service,就需要使用到SOAPUI,以测试这个Service是否工作正常;如果要用Nhibernate,就需要借助一些代码生成工具,如MyGeneration,CodeSmith;
这个系列的文章会比较多,打算先从项目技术架构开始,然后是性能调优,最后再回过头来看设计与项目管理。