网络营销学院
服务器托管
企业自助建站
IDC数据中心
分类目录
网众网络学院
网站地图
友情连接
网众时代是致力于提供完整互联网服务,网站建设的专业服务商。面向政府及企、事业单位网站建设服务,为其提供全方位的网络综合信息化服务及多层次电子商务,网站建设解决方案。协助企业创建完备出色的互联网信息平台,利用现代科技手段把握机遇,并创造更高价值,成功迈向国际商务领域。
客服专线:
010-51268550
(中继线)
010-82428550
010-82428551
010-82428552
010-82420527
节假日咨询专线
010-51268550(王先生)
13911516042(王先生)
域名主机专线:
010-51268550转817
售后技术支持:
010-51268550转813
010-51268550转801
传 真 :
010-51268550转802
投诉监督:13911516042
高新技术认证
企业法人营业执照
税务登记证
组织机构代码证
电信与信息服务业务
经营许可证
网众时代 -
网站建设
专家
架构师心目中的关键词
前些日子,在闲聊中,一位媒体朋友问我:软件架构师(SoftwareArchitect)究竟与普通程序员有什么区别,软件架构师平时都在想些什么?这一问,倒提醒了我。想来自己从事软件架构设计这个行当也有十多年了,现在确实有必要以文字的形式,把自己这些年来对于软件架构设计这项充满魅力、极其有趣的工作的所思所想、经验所得,好好整理一下。
软件架构设计是一门建立在科学、工程基础之上的艺术。根据我本人的体会,以下术语和词汇大概就是那些让一位软件架构师在其职业生涯中时刻萦绕于心、挥之不去的核心关键词:
权衡与平衡(BalancingtheTradeoffs)
软件架构师必须学会的第一件事情是:懂得如何进行权衡,在各个相互矛盾的设计要素、限制和约束条件之间巧妙地取得平衡。
与人类所从事的其他工程活动一样,软件开发、软件工程本质上也是一种平衡的艺术。如何才能把握软件开发艺术的平衡之道?在现实的软件开发中,一名架构师必须首先掌握科学的、工程的思维方式和方法,也就是客观的、系统的、符合逻辑的思维。错乱的逻辑必然导致错误的结论,基于错乱逻辑设计出来的软件也必然会破坏软件架构内在的和谐之美,因而是丑陋的。
抽象、建模与设计(DesignwithAbstractionandModeling)
一位软件架构师必须主动地选择工作在合适的抽象层次上。在必要的情况下,他/她必须能够脱离具象的编程语言(如Java、C 、VB.Net、JavaScript、Ruby等等)进行思考,能够透过现象看本质,准确抓住事物的本质。
如果一位“架构师”只会工作在代码实现(Implementation)层,遇到任何问题就忍不住要写上几行代码、砌上几块砖头,摆摆看,否则就无法顺利思考,却不知道、不会利用图形、符号、公式等抽象的、敏捷的手段来描述自己的思考和设计,那么这位“架构师”的能力是有严重缺陷的。
预见性和前瞻性(PredictionandAnticipation)
一位软件架构师必须比团队中的普通程序员、初级程序员看的更远。
如果一位开发“能手”和“高手”,经验丰富却目光短浅,只知道解决眼前的现实问题,不知道在有限的可用时间内往前多看几步,考虑一下面向未来问题和潜在风险的应对之道,他是不足以享有“架构师”头衔的。
简化之美(TheBeautyofSimplification)
简化是这个世界上任何科学、工程技术——逻辑艺术——的本质要求。
E=mc^2告诉我们,我们人类身处的这个宇宙存在着永恒的简单真理。作为被科学家和工程师利用电子技术构造出来的虚拟世界——软件,这个空间、小宇宙自然也不例外。在软件工程界,我们笃信:只有简单而有效,才是真正的软件之美。
为什么我们要白白耗费资源,开发出冗余的、重复的、七绕八拐的低效程序?软件架构师必须带领他/她的程序员团队,始终坚持对软件架构艺术之美——简化的追求。
模式与重用(PatternsandReuse)
软件架构师必然首先是一名聪明的程序员,他/她知道何时、何处省力,如何省力:运用巧力来轻松完成原本繁重的开发工作。
节省工作量的最好一个办法就是重用。如果软件开发的10倍率银弹存在的话(张恂一直认为谈论布氏银弹的存在与否并无多大的实际意义),软件重用无疑是一颗最有效的银弹。重用自己的或别人的代码、程序、构件、模块、子系统乃至整个系统,可以让过去需要10天完成的工作在1天之内完成,让过去需要1年完成的工作在1个月之内完成,这样的例子遍地都是,有什么办不到的呢?
软件模式的应用本质上是对软件设计思想、设计知识的重用。毋庸置疑,世界上任何一位软件架构师,都知道而且应当知道软件设计模式存在的宝贵价值和重要意义。
质量、效率与资源(Quality,EfficiencyandResources)
如何在有限的,甚至往往是“窘迫”的时间进度、经费和人力资源等重重压力之下,带领团队开发出真正符合客户需要的、高质量的,同时又具有长久生命力的软件产品或系统,能够不断为企业和客户创造价值,这是所有软件架构师必须担当的一项首要职责、艰巨任务。当然,这又是一个相当复杂的、涉及到科学、工程、艺术、社会人际关系和公司政治等多方面因素的权衡问题。
敏捷、迭代与演进(AgileIterativeEvolution)
高质量的、好的软件架构从来都不是一蹴而就的。把一个项目切分成5个连续阶段,通过需求阶段完成需求分析,设计阶段完成概要设计和详细设计,实现阶段完成程序编码,测试阶段完成系统测试,部署阶段完成安装部署,这种传统的、错误的线性开发思维违背了软件开发的复杂现实,成为导致国内外大量软件开发项目失败的主要杀手。
我们应该避免采用这种高风险的传统瀑布式开发流程,转为采用迭代递增、演进的方式来设计和发展软件架构,这是过去30多年来世界软件工程界以及软件架构师们学到的最宝贵经验之一。
开发出敏捷、灵活、柔性,易于适应变化,能够不断地满足客户需求,不断地为企业创造利润,以及便于维护、扩展和升级的软件架构,需要优良、合理、高效的软件开发工艺流程的支撑。实现这一目标并非超乎现实的幻想,过去20年来世界上的领导企业和软件开发机构已经为我们提供了大量系统、架构、框架和平台的成功开发案例。
软件架构师应该与项目经理、团队成员们一道为自己的团队挑选、定制一种适用的软件开发过程。敏捷迭代开发要求软件架构师通过软件开发的迭代、演进周期,把握好前馈与反馈、前构与重构的平衡,不断地利用编码、集成、运行、测试以及与用户、客户的沟通等活动来验证软件架构的设计思路、解决方案的正确性和有效性,从而最大限度地降低架构开发风险。
无锡金属网
泊头市长城齿轮泵厂
韩国古代女子头饰
融通基金管理
卡地亚手袋
魔化灵纹布包的材料
神刚挖掘机
led电子灯箱
沙参玉竹老鸭汤
铁丝拉丝机
潜水排污泵
磁力传动
导电性最好的金属
手术室无菌技术
劳动仲裁申请书范文
google左侧排名
铁帽子王
品牌头饰
假发图片
计算机基础考试卷
工会法试题
矮人dos工具
真空金属软管
文体学
干燥过滤器
皮革的分类
长城导热油
飞利浦电动牙刷
通风管
天津纸制品
标记哨塔坐标
空瓶验瓶机皮带
复议法实施条例
水泥人才
日用品公司
尚村皮毛
筛焦 除尘
上海冷轧带钢
围巾方法
可调电阻 3362
扬州电力设备修造
义乌手袋厂
羽毛球多少根羽毛
北京镀膜玻璃厂
塑料匙扣
工会文体活动计划
标记骷髅宏
镜面处理
发电电焊机
oec管理法
网页代理
经编花边
澳门回归纪念章
金属软管机
广告位描述
手术室护理工作计划
水刺无纺布
净化空气的植物
上海订机票
蒸陈村粉
杭州广告公司
最新个人所得税法
个性餐具
海天之恋
卡通漫画
大口径望远镜
双波纹管
盒装纸巾
森林小木屋
北京民办教育协会
针织背心
上海木工机械
长沙化工机械厂
北大法律信息
劳动调解仲裁法全文
u型电热管
地热 装修
二手印刷机
平板拉丝机价格
烤盘机
镜面不锈钢价格
珠宝加工图纸掉落
循环泵
数控车床视频
婚姻法改了吗
门窗焊接机
小型塑钢焊接机
远升设计标语
日本豆腐纸巾套
隆冬穿背心
苏州美容美发学校
泉阳泉矿泉水
等离子电视维修
中国刺绣
cnn主持人污蔑中国
非主流彩色日志
义乌皮带
新款手袋
寿光塑编集装袋
中国皮革信息网
上一篇:
长尾理论:钓鱼启示录
下一篇:
专业的网站策划方案写法、演示标准
+
站内导航:
首 页
|
网站建设
|
网站推广
|
虚拟主机
|
网众产品
|
作品展示
|
自助建站
|
联系我们
|
网站地图
|
友情连接
京ICP证060474号
+
Copyright © 2003-2007 Bjwzsd.net Inc. All rights reserved. 网众时代