架构(Architecture)随想
架构(Architecture)的意义:
先不要看什么是架构,先看下architect是什么,没有错,它是建筑师,在一块空地上build高楼大厦的人,它是一个designer,设计好整个大楼,也是一个superviser,监督好整个项目不偏离设计。切换到computing的小宇宙,它就是架构设计者,设计出整个软件的主体结构,同时确保整个软件项目按照设计完成。略有不同的是,一个大楼更倾向于静态的设计,可以用结构力学和数学公式解决;而computing的世界是动态的世界,是一个充满了communication和interaction的世界,我们的软件是在用静态的代码应付动态的变化,不能用结构力学来解决,相对于建筑行业来说,软件的架构非常不成熟,还需要不断地探索,因为软件本身就在不断地飞快地演进。
建筑的形态是钢筋、水泥、砖头组合而成的一种稳定的有序的物理存在的结构,这个结构决定了建筑的寿命,决定了它能抵抗多大的风雨,几级的地震,往小了说,决定了装修方便不方便,局部修改方便不方便等。我们会对经历了几百年风雨的建筑赞叹,也会对楼塌塌鄙视和声讨。软件系统的静态形态是各种代码和资源组合而成的稳定的结构,不过它更加重要的是它的动态形态,唯有其动态形态是有价值的,它的动态形态是nothing impossible,因为它soft,如水,可以无孔不入。软件的动态形态依赖于静态形态,也就是各种代码和资源组合而成的结构,这个结构决定了这个软件的功能实现的方便,性能,以及修改的便利性等。这个为了动态形态而设计的静态形态的主要逻辑结构可以理解为架构,它需要精心设计。架构决定了这个软件的功能是否容易实现,性能,以及修改是否便利等。
架构的意义在于我们可以忽略一些细枝末节,而将注意力集中在整个软件系统的主要逻辑组成和结构上。
架构(Architecture)随想的更多相关文章
- 【架构】Linux的架构(architecture)
最内层是硬件,最外层是用户常用的应用,比如说firefox浏览器,evolution查看邮件,一个计算流体模型等等.硬件是物质基础,而应用提供服务.但在两者之间,还要经过一番周折. 还记得Linux启 ...
- Linux 架构
(转)作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! http://www.cnblogs.com/vamei/archive/2 ...
- Linux架构
Linux架构 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我以下图为基础,说明Linux的架构(architecture ...
- 几种CPU架构
原文链接:http://blog.csdn.net/wyzxg/article/details/5027738 这几天在下载RPM包的时候,总会看见x86,x86-64,IA64,i386,i586等 ...
- (转载)图解Linux系统的系统架构
我以下图为基础,说明Linux的架构(architecture).(该图参考<Advanced Programming in Unix Environment>) 最内层是硬件,最外层是用 ...
- cpu有哪些架构
原文:http://blog.csdn.net/wyzxg/article/details/5027738 author:skatetime:2009/12/17 这几天在下载RPM包的时候,总会看见 ...
- 解读IEEE 7417的软件体系架构描述的概念模型
本文将解读标准IEEE Std 1471-2000(密集型软件的体系结构描述推荐实施规程)的概念模型图部分,从中一窥作为软件架构师的进行架构设计的思考角度与策略.如果我们把世界当做一场游戏,现在要玩的 ...
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)
ARM架构: 由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7: 一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...
- OpenStack IceHouse 部署 - 1 - 架构说明
参考架构 Architecture from OpenStack Install Guide Reference Architecture Network Isolation 在本次部署中,我们采用了 ...
随机推荐
- Oracle imp exp命令具体解释
怎样在oracle中导入dmp数据库文件? oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令能够把数据从远程数据库server导出到本地的dmp文件,imp命令能够 ...
- HDU 5274 Dylans loves tree 树链剖分+线段树
Dylans loves tree Problem Description Dylans is given a tree with N nodes. All nodes have a value A[ ...
- go 泛型 Go中不包含的特性
人Andrei Alexandrescu:“Go所走的路线在一些问题上持有极其强硬和死板态度,这些问题有大有小.在比较大的方面,泛型编程被严格控制,甚至贬低到只有"N"个字:有关泛 ...
- appche配置访问限制
1. 禁止访问某些文件/目录增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:<Files ~ "\.inc$"> Order a ...
- LeetCode 1.两数之和(JS)
Given an array of integers, return indices of the two numbers such that they add up to a specific ta ...
- Delphi XE10调用WebService服务获取图片验证码
最近做了一个程序,需要使用图片验证码,百度一下,网上一大把免费的WebService服务,随意找一个用用,效果还可以.WebService地址:http://www.webxml.com.cn/Web ...
- myeclipse 8.6安装SVN插件
方法二: 安装subclipse, SVN 插件 1.从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org, 2.从中解压出features与plug ...
- POJ - 3352 Road Construction(边双连通分支)
1.给定一个连通的无向图G,至少要添加几条边,才能使其变为双连通图. 2.POJ - 3177 Redundant Paths(边双连通分支)(模板) 与这道题一模一样.代码就改了下范围,其他都没动 ...
- 超线程技术——超线程技术让(P4)处理器增加5%的裸晶面积,就可以换来15%~30%的效能提升,本质单核模拟双核!和异步编程的思想无异。
超线程是Intel 所研发的一种技术,于2002年发布.超线程的英文是HT技术,全名为Hyper-Threading,中文又名超线程.超线程技术原先只应用于Intel Xeon处理器中,当时称为Sup ...
- Maven运行测试
原文:http://tianya23.blog.51cto.com/1081650/292315/ Maven运行用于测试中的最佳实践(个人认为,呵呵) 1.创建maven工程 mvn arche ...