这篇文章貌似是JavaEye里网名QieQie的文章,他是分词器paoding的作者,是人人网的架构师,也是Rose web框架的架构师,文中观点很给力和到位,所以转到这里,呵呵,以便以后翻阅。
原文地址 http://ugc.renren.com/2009/12/20/technical-architecture/
多角度定义架构
定义架构的最短形式是:“架构是一种结构”,太棒了,这是一种正确的理解,但世界还没太平。若做一个比喻,架构就像一个操作系统,不同的角度有不同的理解,不同的关切者有各自的着重点,多视点的不同理解都是架构需要的,也只有通过多视点来考察才能演化出一个有效的架构。
从静态的角度,架构要回答一个系统在技术上如何组织;从变化的角度,架构要回答如何支持系统不断产生的新功能、新变化以及适时的重构;从服务质量的角度,架构要平衡各种和用户体验有关的指标;从运维的角度,架构要回答如何充分利用计算机或网络资源及其扩展策略;从经济的角度,架构要回答如何在可行的基础上降低实现成本等等。
没有架构策略的系统,让我诅咒它散掉: 人们不知道如何简单一致地理解,不知道如何加入一个新功能,如何调高或调低某个服务质量指标,如何应付增大的访问,如何提高系统的容错能力或稳定性,如何充分省钱。没有良好架构支持的系统,出来混的迟早要还!我们诅咒他散掉。
如何得到一个良好的架构?
只言片语
像妈妈那样优生
架构所要做的是一个“细节还未完全落实的技术决策,这个决策是一个框架、是一种权衡、是一个路线图”,这个决策规定了整个系统的技术“风格”和后续技术发展方向。
系统的开发是一个从无到有的过程,需要不断地迭代:功能上不断地丰富,技术上不断地完善。如果把一个系统比喻一个人,怎么让这个人不断地往健康、完备的方向成长就是我们的目的了。一开始,这个人并不完善,包括很多器官并不成熟,甚至没有,通过营养的摄入,时间的沉淀,不断地重构最终成功。人也需要重构?!不是吗?血液的60天一变换,牙齿的两次生长等等(注1),有一个专业术语“新陈代谢”! 当一个人新陈代谢的能力下降的时候,也就是老了。
在系统从无到有的过程,架构要着眼于未来,落实于现在,规划迭代、优化的路径。这个架构要支持目前最紧迫的任务:“生出来”,也要支持以后能不断地新陈代谢的可能性,两者缺一不可。
像理想那样追求
系统的每个阶段都很重要,一个好的起点并不意味着一直会好下去,制定了各种策略后,贯彻、执行是最重要的课题。没有人一开始就想把一件事情做糟糕,但这个世界就是这样,很多事情都会变坏,越来越不可控。导致如此境地的主观原因就是自己没有设法去维护、坚持、贯彻原先的理想。作为一个程序员或架构员,要不断审视自己开发的系统,主动维护系统的架构,如若发现有对架构产生破坏的地方,应该适时纠正,坚持零容忍。如果不零容忍会怎样?千里之堤溃于蚁穴,我们诅咒他散掉。
谁来做架构?
架构师这样的一个帽子,很多人会闪闪躲躲。
国外多少年的工作经验才可能成就一个架构师,而国内3、5年工作经验的小毛头就说自己是个架构师了。通常认为,架构师理应无所不能,一旦有人被称为架构师,他就应该接受重重的检验。总之,那些自称是架构师的人在冒着道德风险。但,同学们不要胆却,所谓时势造英雄。有人称你是一个英雄,那是因为你被需要,要勇敢地站出来,扮演好自己的角色是对岗位的敬畏。当我把你看成是一位架构师的时候,我需要你不断地给自己暗示,不断地以理想的架构师来要求自己,和同学们在工作中学习,一项一项地突破自己,把工作做好。
一个组织可能会明确地任命一些人为架构师,但大部分的组织可能不会。但在一个项目团队中总有需要有人完成类似的工作,这可能是一个人,也可能是整个团队在商量的气氛中完成。
我的意见是:如果你愿意,你就是架构师!
架构模式
当一个问题、一个系统可以采用很多解决方式来设计时,我们采用什么方式并且以一致的思想、方式解决这个问题时,这就是风格了,当这种风格具有可复用性那就是一种模式了。在编程上,我们有“设计模式”的指导,在架构上,我们也应该总结一些良好的模式出来,应用在不同的情况。关于这方面的资料,目前并不难找。
分享到:
相关推荐
本文档旨在深入探讨第三层交换机技术的核心概念及其在网络架构中的重要作用。第三层交换机是一种结合了传统路由器的功能与高速交换能力的网络设备,它不仅能够提供快速的数据包转发,还能根据IP地址进行路由选择。...
- 配套专享的数据云平台,方便远程数据管理和分析。 ##### 3. 地铁沉降监测方案 **特点:** - 采用徕卡最新的算法和技术,如铟瓦尺解码技术,实现更高的精度。 - 图像测量功能简化了对焦过程。 - 电子气泡技术提高...
华为云混合云灾备解决方案的技术架构包括: * 全栈专属云 * DCC * DSS * DESS * 计算存储网络数据 * BMS * OBS * RDS * 计算、存储资源专属同城/异地专属容灾中心 * 两地三中心专属容灾极速 华为云混合云灾备解决...
总的来说,局域网基础与组网技术的学习涵盖了网络设备选择、传输介质理解、网络协议标准、介质访问控制策略、网络架构设计以及实际操作技能,这些都是构建和维护高效、稳定局域网不可或缺的知识点。通过深入学习和...
私有云,顾名思义,是指为单个组织单独构建和使用的云服务环境,它可以部署在企业内部或者第三方服务提供商处,为用户提供数据和资源的专享控制。公有云则是由云服务提供商对外提供服务的云,这种云服务可以是免费的...
私有云则为企业内部专享,确保数据安全;混合云则是两者的结合,兼顾灵活性和可控性。 接下来,我们要关注运维。运维是确保系统持续运行、优化性能、解决故障的过程。在云计算环境中,运维工作变得更加复杂,涵盖了...
例如,报告中提到舜宇光学科技和京东方A两个企业可能会因为三摄和折叠屏的流行而受益,这显示了对供应链上相关企业的关注和分析。 总而言之,文件涵盖了中国智能手机市场的季节性变化、品牌市场份额、促销活动的...
- **会员用户功能需求**:除普通用户功能外,会员还可以享受更多优惠,如积分兑换、会员专享活动等。 **5. 系统设计与实现** 系统设计应注重用户体验,采用响应式布局适应不同设备。数据库设计包括用户表、商品表、...
在5G行业虚拟专网的背景下,运营商网络建设模式主要有三种:基于公网提供服务、复用部分公网资源并使行业用户独享部分网络资源、以及采用行业专用频率建立的行业专网。其中,后两种模式综合和增强后,形成了5G行业...
视频网站可能包含付费内容或会员专享服务,因此需要实现用户认证系统。此外,根据用户角色分配不同的访问权限,如管理员、普通用户、付费用户等。 十、性能优化 为了提供良好的用户体验,性能优化是必不可少的。这...
同时,系统可实现会员管理,通过积分兑换、会员专享活动等方式,增强顾客粘性,促进复购。 七、技术实现 餐饮管理系统的开发通常基于Web技术,如HTML、CSS、JavaScript等,后端采用Java、Python或.NET等语言,...
基于SQL 2000的汽车配件信息管理系统的设计涉及了多个关键IT知识领域,包括数据库技术、数据处理、软件...它不仅介绍了系统架构、核心功能和实现方法,还涉及了与系统相关的一些网络技术和其他关键技术的选择和应用。
页面效果通过JavaScript脚本和AJAX技术实现局部刷新,采用了三层架构(UI层、业务逻辑层、数据层)来确保系统的稳定性和可维护性。网站后台设有两种进入方式:管理员和普通用户。管理员拥有最高权限,可分配权限给...
在超融合架构中,虚拟存储的双链路聚合方式允许两条链路同时传输数据,而设备集群的操作允许拆分。如果虚拟存储使用的服务器没有jbod模式,那么这些服务器就可能不支持虚拟存储技术。授权管理是超融合系统中的一环,...
欧盟对数据产权的界定强调了设备所有者或长期用户对非个人数据的使用权和防止他人未经授权使用数据的权利,同时指出了公共利益影响下数据生产者不能专享数据的情况。由于不同国家法律框架和权力责任的差异,数据产权...
在计算机网络中,交换式以太网是一种通过网络交换机连接多个设备,提供独立的数据传输路径的网络架构。相比于传统的共享式以太网(如Hub),交换式以太网能显著提高网络性能,因为每个设备都独享其到交换机的连接,...
这类内容平台通过与电商平台的合作,使得平台上的网红或达人能够通过直播带货等形式促进销售,同时平台还能为品牌商和服务商带来利益,如跨店满减、限时特卖、专享商品等多样化的销售策略。 直播电商的兴起,在双...
- **享元模式**:使用共享技术有效地支持大量细粒度的对象。 - **代理模式**:提供一个替代品或占位符,以便控制对一个对象的访问。 - **命令模式**:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行...
申万的公用事业指数总体呈现下跌趋势,但环保工程及服务和水务两个子行业却表现出了不同的特点。环保工程及服务出现了小幅度的下跌,而水务行业则实现了微小的涨幅,显示了公用事业整体稳中有升的态势。在个股方面,...