最近终于轻松下来了。带了两年新人,实实在在的体验到了做为项目经理+技术经理+测试经理+技术支持工程师同时兼任程序员得酸甜苦辣。或许我这个人就是个劳碌的命,一旦闲下来,反而觉得很别扭。当然了,或者这是程序员的通病吧,呵呵~。在律所工作的三年中,先后接触了几个企业邮箱系统,大的小的,知名的不知名的,每个都让律所不太满意,趁着闲下来的这段时间,打算编写个这方面的程序,把以前遇到的系统中不满意的地方尽可能解决掉,同时因为企业邮箱程序的特殊性,它既包含B/S的内容,也包含单机软件的内容,同时包含一些系统底层的知识,所以也很合适作为新人培训的案例教程,等把这个系列写完,再好好整理整理,就可以作为律所内部培训使用了。好了,废话不多说了,下面介绍下关于程序的一些想法。
程序本身要作为案例教学,而且面对的对象是初入行的新人,所以在程序注释和解释方面会尽可能详细。企业邮箱基本上可以算是个大型项目了。所以程序考虑分层架构,这样方便扩展。程序本身包含了单机软件和B/S结构的内容,对于B/S方面,程序会严格遵守Web标准。对于单机软件方面,程序会考虑多语言配置。程序会融入自定义标签调用、xslt、xml、模板、静态化等应用,并提供完整例子。因为程序本身属于大型项目,所以对可维护性和性能会有着重考虑。但是,我个人信奉一句话:程序首先是写给人看,其次才是写给机器看!所以程序会在性能与易读性方面做出综合取舍。下面介绍一下程序的基本框架:
图一、程序框架结构
程序命名为《易迅企业邮箱系统》,取意简单容易、迅捷高效。程序基于.NET4.0 Framework, 开发工具及辅助数据库为:VS2010+SQLServer2008,下面详细介绍程序各个层的目的:
- EasyFastMail.BLL——业务逻辑层。主要负责程序的业务逻辑判断。注意:业务逻辑不是程序逻辑,尽管他们在很多时候很相似,甚至于融为一体。程序逻辑是指一个操作是否成功,例如,删除一条数据,根据数据库的返回值判断删除是否成功,这个属于程序逻辑,他判断的是程序的某项具体操作是否成功。但是在复杂环境下,删除数据的同时需要考虑很多问题,而不仅仅是删除数据这么简单。以删除用户这个常用功能为例:在企业OA中,入职即增加用户,离职即删除用户是难以满足企业的需要的,在企业中,离职人员管理也是人力资源部的一项重要工作。(例如领导层正在讨论一个项目说明,大家认为整体上是可行的,有利润前景,但是一些细节上的东西,书面报告记载的不是很清楚,这时就需要联系报告的撰写人或者项目的负责人来做说明,假如该人已离职,在绝大数情况下,因为遗忘或者其他原因,他不可能会给他的继任者把每一项工作都交代的十分详尽清楚,所以这时就需要联系该人,如果程序中设置,离职即删除用户,那么很可能就无法再次联系上该人,这样会造成项目搁置或者其他的损失)离职操作应该删除用户表中的数据,同时将该数据保存到离职人员表中,并且这两项操作应该置于一个事物中,保证同时成功,否则回滚事物并且提示操作者。这样看起来,删除用户这个操作应该包含两步:1、删除用户表中的数据;2、将该数据插入到离职人员表中。这两个操作合起来即程序的业务逻辑。概括来说,程序的业务逻辑有时候和程序逻辑完全重合,有时候会同时包含几个程序逻辑。
好,本章内容就先到这里,从下章开始我们正式进入编码过程。另:该系列文章是本人业余时间编写,本人没精力做大量前期准备工作,所以难免有疏漏之处,欢迎朋友们批评指正,我会根据朋友们的意见与建议修改对应章节。我曾经看过张孝祥先生的Java系列视频,我个人非常欢迎,但是无法确定对新人是否很有意义,所以在犹豫做还是不做,也欢迎大家对这个多提建议。