构师:我们需要顶层设计
2012-04-28 12:05
197 查看
构师:我们需要顶层设计
分类: 架构设计2012-04-1810:24 6591人阅读 评论(21) 收藏 举报
架构师:我们需要顶层设计
背景:
某公司,建立的程序又被推倒,外人觉得很奇怪,这个程序的主管非常敬业,关注到了程序每一个细节,甚至包括每一个按钮的文字和位置。
这个主管很委屈,他说,他完全是按照客户需求***的,客户怎么说的,他就怎么做了,难道有错?!
但是,这个程序还是被推倒了,当然也有其公司派系斗争的因素在里面。但是,不得不引起我们的注意,这个程序败就败在了太拘泥于细节,而忽略了顶层设计被客户牵着鼻子走,想知道客户自己说什么吗?
|
|
|
|
客户说:<我说的就一定对吗?>
顶层设计——规划。
当提到这个词的时候,很多程序员很不屑,规划?不就是需求吗?和架构设计有啥区别?就写写PPT有那么重要吗?
我们说一个好的程序开发的设计应该包含如下层次,如下图所示:
一、设计分为三个层次
1、第一层次,信息系统规划(项目或产品规划)
我们称之为规划,这个层次是对整个系统在宏观中的地位的把握。如果从一个大型企业的高度看,应该包含整个企业的时间与空间的集合体。
什么是空间?
空间就是涵盖到企业中的各个数据环节以及保证关键的数据流走向的合理,并确保调度优化。顶层模块设计需要研究需要关注的各个业务块之间的结构关系,研究业务框架的整合模式。
行业内比较有名的业务框架,如:eTom业务框架,ITIL等。
什么是时间?
时间就是,企业未来发展以及企业所处行业的整体发展的预期,要兼顾发展才可以从规划的角度使应用系统不过时。
只有从时间和空间的三维角度进行思考,才可以得出合理的规划。
2、第二个层次,是架构设计
架构设计是从程序架构的设计方式角度出发,建立一种合理的程序逻辑的构架方式,也是时间与空间的集合体。
空间:
满足设计会话,利用架构设计适应各个模块的构建方法,使程序逻辑运行于程序的各个模块中而游刃有余,尽可能避免超出架构设计模块无法构建的应用需求。
时间:
满足顶层设计规划,同时兼顾程序未来发展,好的架构设计构造出的程序可能会用很多年不会变。
3、第三层,是微观设计
这个是程序员在处理具体应用程序编写程序时的创新与设计,当然其首要前提是满足上面两个层次的设计。
二、架构设计与规划的区别
架构设计是程序框架构建方式作为其关注点,更多的探讨的是该程序如何满足规划需求的结构健壮性。
而作为顶层设计的规划,更多的是从产品、系统、业务,整体宏观的角度考虑整体的模块地位与框架,并不关注其具体实现方法。
比如,业务逻辑分为几个层次这个问题是规划,这几个层次或模块之间的数据关联方式用EAI还是EDI还是WebService还是什么方式的问题就是架构设计。
三、忽略架构设计和规划设计的危害
业内相当一部分人都认为,找几个会编程序的程序员,就可以做出产品,就可以接活儿了。
可能可以,然而,如果是一个需要若干年持续进行的产品或系统,没有架构设计是短视的,其前期很快搭建后期捉襟见肘。
还有想当一部分人认为,有了架构设计和几个会编程的程序员就可以做出产品和搭建应用系统了。
这也确实可以,但是如果面对一个更复杂的系统,缺乏顶层设计就会陷入关注细节关注需求,被需求牵着鼻子走的路上去。
我的微博:http://weibo.com/useway
钟声,《Java程序员,上班那点事儿》作者
2012-4-18
相关文章推荐
- 我们需要顶层设计
- 架构师:我们需要顶层设计 推荐
- 架构师:我们需要顶层设计
- 架构师:我们需要顶层设计
- 我们为什么需要动效设计
- 在表单设计中,我们需要注意哪些内容呢?
- 设计一个界面动效的时候,我们需要考虑什么?
- UI设计中我们为什么需要设计动效
- 马续田:理财市场需要顶层设计
- 我们需要.NET framework3.0的流程设计器吗
- 企业进行信息化顶层设计的核心方法 随着企业信息化建设的深入,应用层次和水平不断地提高,企业迫切需要集成化、自动化的信息管理系统来支撑企业业务的迅速发展需要,然而由于信息化建设的阶段性决定,企
- JS的流程设计器,我们需要什么
- 我们为什么需要设计模式?
- 测试设计技术 - 我们需要吗?
- 我们为什么需要动效设计
- JS的流程设计器,我们需要什么
- 我们为什么需要动效设计
- 做网页设计,我们需要了解客户的东西:
- SpringBoot 统一时区的方案 96 Devid 关注 2018.01.11 20:22 字数 262 阅读 91评论 0喜欢 0 系统采用多时区设计的时候,往往我们需要统一时区,需要统一的地
- UI设计中我们需要了解的知识