要 开发 某个项目里某个模块,通常都遵循一个指导,并有一个一般化的流程,在做任何事情之前,有个规划和原则是明智的,无论是核心代码基础设计,还是界" name="description" />
MILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">要开发某个项目里某个模块,通常都遵循一个指导,并有一个一般化的流程,在做任何事情之前,有个规划和原则是明智的,无论是核心代码基础设计,还是界面基础设计,以及遍布整个开发生命周期各个阶段的各种约定,规则,这些都是基础。
建立核心代码基础架构是一些细小而相关的任务的集合,它提供一些整个模块都需要基础服务,全局变量配置服务,安全基础服务,数据访问服务,调试跟踪服务,日志记录服务,错误处理服务,以及其它一些通用的服务,之所以把这些功能称为服务是因为你在写以后的业务编码的时候可以以松散耦合的方式来使用这些服务,你在设计基础架构的时候要尽量做到这一点,这使你的架构变的灵活,在以后修改架构的时候不至于过多的牵连到其它层次的代码,并且这些写出的架构有很好的可扩展性,在你的架构不支持某项新业务的时候可以在基础架构里添加一个服务来支持它。架构不易写的过于细致,造成过渡设计,也不应该写的过于简单,没有什么实际作用,不要走这两个极端,关于这方面的争论足可以写一篇长篇大论的文章。在ASP里主要就是写一个通用的函数,放在某个固定的文件夹里,在使用某项架构服务的时候把它包含进去,然后调用里面的函数。在ASP.NET里就是写一个或几个独立的类库,供使用的时候调用。关于建立架构大家可以参考一些其它的书籍,推荐看一下《asp.net电子商务高级编程》里使用的那个基础架构和《.net企业应用高级编程》里的那个架构,它们会给你相当多的指导,这两个架构一个适用于小型的电子商务平台,一个适用于中等规模企业的应用平台,后者使用了很多企业应用技术(比如说remoting,性能计数器等)来支持企业级应用的开发。
界面基础设计,提供一些界面显示的重复元素(导航,脚注等),以及提供软件界面一致性的功能。Web开发里常用css来保持整个站点风格的一致性,然后写一个HTML模板或者输出HTML代码的函数以供多个页的重复调用,在ASP.NET里可以有更多的选择,用户控件,服务器控件等,总之,这些都是一些客户端的技术,需要对xml,xslt,css,javascript,html等技术有个了解。关于如何提高软件的用户体验可以参考其它一些文章,推荐微软出的《windows用户体验》(《windows user experience》)一书。如果你开发的是WinForm程序,建议看看office 2003系列软件的界面和易用性设计,如果你是开发WebForm程序建议看看微软的官方网站,并思考一些东西。
各种约定和规则包含的方面有很多,有编码约定,命名规则,文件夹设置,命名空间约定,以及各种文档约定等。在设计开发之前尽量确定它们,几乎各种语言都有自己的编码和命名约定,比如说在表示常量的时候都用大写字母,私有变量用下划线开头(类c的语言,如果使vb的话,私有变量可以用下划线结束)。也许你公司内部的各种约定和厂商和标准组织提供的约定有所冲突,但是建议还是使用你的开发小组已经习惯了的命名规则,因为强制学习另外一种规则需要时间。尽量保持这些规则在同一个项目的各个模块里遵循一种原则,保持一致性。文件夹设置也有一套规则,比如说Control目录里放置用户控件,Style目录里放置样式表文件,一个项目分配一个子目录等。类库命名空间用 “公司名.产品名.项目名开头”,为每个项目分配有意义的名字空间可以增强程序的可维护性。
开发流程也非常重要,它来保证你在开发中有条不紊并提高开发效率,避免走弯路。在做完需求后,我们按一下流程来完成开发。首先使目标陈述和问题描述,这包括罗列要实现的功能,权限描述,画用例图,写用例描述等。这个过程的结果为后面的工作提供指导,在开发过程中要经常看看你在这个过程写的东西,并在必要的时候修改更新,因为客户的需求常常也会更新增加的。因为我做的一般都是小工程,我们的项目也不可能遵循大型项目开发流程,不必画完整的UML图,也不遵循RUP,XP,FDD里面的过多规则,一切出自于一种经验。
描述完功能后开始设计数据库,设计完数据库后设计界面,设计完界面后根据界面知道来确定需要的编码,接下来编码,最后测试运行程序。我认为一个能让客户满意的程序最少要满足以下几点:完成主要的功能;安全;界面友好,易用性强;这也是衡量一个软件是否成功的最低标准。
这一切是一个简化的过程,我无法把他写的过于细致,也没有必要,每个人都有自己的开发习惯,而且这个流程和指导也会随着个人的经验而改动更新。
下面是我写的一个OA里的一个模块的开发过程,我试图使用我写的以上这些经验。
工作计划搜索模块
问题陈述
1. 按部门查看工作计划,指定部门名称;
2. 按人员查看工作计划,指定人员名称;
3. 查看日工作计划,指定起始日和终止日;
4. 查看周工作计划,指定起始周和终止周;
5. 查看月工作计划,指定起始月和终止月;
6. 查看年工作计划,指定起始年和终止年;
权限描述:
1. 管理员,总经理,董事长可以查看所有部门员工已提交的工作计划;
2. 各部门经理,主管可以查看本部门所有员工已提交的工作计划;
3. 每个员工可以查看自己的工作计划,包括已提交和未提交的;
角色设置:
1. 管理员
2. 董事长
3. 总经理
4. 部门经理
5. 员工
部门设置:
1. 市场部
2. 技术部
工作计划表【log】
【ID】 编号
【UserName】 添加用户
【Title】 标题
【Content】 内容
【AddDay】 填写时间
【Dept】 添加用户所在部门
【Class】工作计划类型,day,week,moth,year分表表示日计划,周计划,月计划,年计划
【State】计划状态,0为默认值,表示计划未提交,1表示计划已提交
工作日志搜索流程