个人对架构设计理解
今天的文章不涉及到代码方面的东西,只是说说思想方面的东西,当然,我说的这些其实很简单,毕竟我也只是做了2年的程序而已,但未必每个团队都是这么做的。
首先就是如何分层,分几层。很多情况下,三层架构是最常用的思想。的确,数据库访问,业务,页面。
但有了服务,接口,对象的概念以后,很多人并不只是简单的在三层上实现。当然视项目大小而言,如果是个小功能,把所有代码也一个页面上也未必不可。
分层的优势就是在于提高可维护性。
我认为一个完善的架构,我不得不说的就是规范性的东西,我认为规范是个很重要的东西,当然,规范不只是说大家统一用某种形式命名变量,方法等等,这只是对程序员而言的规范,如果这个划做横向规范的话,那么纵向规范就是面对客户的规范。对程序员的规范,我不想多说了,注释,变量,方法,文档。当然未必每个人都做到了这些。我想说的是对客户的规范问题。
对客户的规范有很多中,比如小细节CS系统中的Anchor怎么设置,Dock怎么设置,如何让页面看起来更加让用户舒心,如何做焦点设置。大到如何给客户做培训,如何防止用户看到不友好页面,如何简化用户操作等等,这些都是属于规范性范畴。对于焦点设置,我有深刻体会,前段时间找工作,某网站输入搜索条件以后,按钮回车老是达不到焦点上去,非要我去移下鼠标点击,很不爽。
第二点,对于一个完善的架构,日志处理机制是必须做好的,日志处理不只是简单的说输出完成这么简单。首先,必须要通过配置控制在什么时候输出,在什么地方输出,如何输出,怎么记录,是记录数据库还是日志文件中。如何灵活让用户控制日志输出方式。
第三点,对于一个完善的架构,异常处理机制也是一个重点。异常怎么处理,如何记录,是记录到系统中,还是异常文件,还是数据库异常表,或者发给技术部邮件等等,如何做异常记录,在产生异常以后更容易让用户,技术人员看到异常产生的原因,这个是一个比较重要的模块。
第四点,对于一个完善的架构,配置文件是必须的,有些项目只是简单的对web.confg里加些配置,我认为这根本不够完善,对于配置而言,有很多需要配置的内容,比如系统连接哪种数据库,客户信息,再比如是否记录日志,异常等,是否允许用户注册等等灵活功能的控制完全可以在配置中实现。
第五点,对于一个完善的架构,如何做好权限是很重要的一块内容,比如权限如何控制,怎么处理用户,组,模块,部门等等之间的关系,工作流如何做,如何让权限与工作流做良好匹配,比如某审批人员出差了,如何处理其审批流程等等,虽然这点,我自己也在不断研究,但我想这一块非常重要。
第六点,对于一个完善的架构,流水号生成功能也相当重要,任何一种系统,不管是信息管理系统还是电子商务平台,一定都会要求按一定格式生成某套流水号,流水号也必须有灵活性,这点非常重要。
第七点,对于一个完善的架构,必须要有代码生成功能,比如基础业务类生成,实体类生成,最好可以控制数据库主外键关系等等,这样能减少程序员的很多无趣的工作量。
这是我目前总结的几个重要点,另外当然包括多语言,多皮肤等等,我想这些目前来说还未必非常重要。