一个软件系统的架构到底应该包含些什么?
2014-07-10 17:26
841 查看
从事企业信息化系统开发已经3年,回顾这3年的历程,深刻体会到的一点是:软件的架构设计,不是越全面越好,而是越简单越好。简单到对开发者透明最好。
那么,一个架构设计,到底需要提供什么呢?个人认为,只需要提供三种机制:
一、客户端和服务器的通信机制,缺少通信机制的支撑,只好做个单机版;
二、包含功能权限和数据权限的全面权限机制,这里其实并不包括权限管理功能,我认为权限管理功能是一项业务。而机制,则如同自然规则一样,虽然看不见摸不着,但却无处不在。
三、业务模块的动态加载机制,如果不能动态加载业务模块,则开发新模块和发布新功能都会很麻烦。
如果你的系统是C/S模式,那么还需要客户端的自动升级机制。
除此以外,做得越多,约束越多。开发到后面,就会发现系统不重构不行,而重构也是困难重重。用“积重难返”来形容,实在是没法再贴切了。而一个轻便的,甚至是透明的架构设计,则可以做到和业务完全无关。无论今后需要开发什么样的功能,都不需要变更架构的设计。在技术升级换代后,升级架构也非常容易。
那么,一个架构设计,到底需要提供什么呢?个人认为,只需要提供三种机制:
一、客户端和服务器的通信机制,缺少通信机制的支撑,只好做个单机版;
二、包含功能权限和数据权限的全面权限机制,这里其实并不包括权限管理功能,我认为权限管理功能是一项业务。而机制,则如同自然规则一样,虽然看不见摸不着,但却无处不在。
三、业务模块的动态加载机制,如果不能动态加载业务模块,则开发新模块和发布新功能都会很麻烦。
如果你的系统是C/S模式,那么还需要客户端的自动升级机制。
除此以外,做得越多,约束越多。开发到后面,就会发现系统不重构不行,而重构也是困难重重。用“积重难返”来形容,实在是没法再贴切了。而一个轻便的,甚至是透明的架构设计,则可以做到和业务完全无关。无论今后需要开发什么样的功能,都不需要变更架构的设计。在技术升级换代后,升级架构也非常容易。
相关文章推荐
- K8 系统中省市县数据表的设计可以反映出什么? 通过一个基础业务表的设计品味软件系统的整体架构
- 什么是系统架构?什么软件架构?
- 一个软件研发人员应该关心什么
- 高性能并发系统架构应该如何设计?关键是什么?12306
- 什么是软件系统的架构(Architecture)?
- 高性能并发系统架构应该如何设计?关键是什么?12306
- 系统镜像中应该包含的一些基本软件
- 一个软件系统应该具备的最基本的功能
- 一个软件系统应该具备的最基本的功能
- 作为一个软件开发爱好者,应该学点,练点什么呢?
- 在一个多线程系统中,主进程应该写什么?
- 今天着重介绍ERP软件,到底什么是ERP系统
- 部门网站到底应该是一种什么样的系统架构?
- 政府或部门网站到底应该是一种什么样的系统架构?(转)
- 【转载】GIS系统与一个好的软件架构,Why not and how?
- [原]一个软件研发人员应该关心什么
- 什么是软件系统的架构(Architecture)?
- 管理软件商在云上到底应该卖什么
- 一个灵活、好用、扩展性好的WCM系统应该包含哪些功能
- 什么是软件系统架构设计