蓝色的孔雀开屏的视频:技术架构两三语 UGC广播站

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 06:05:14
技术架构两三语By UGC.FM 2009年12月20日 | 9 comments 生产力电台

作者:人人网架构师 王志亮  人人网UGC团队博客首发

小的不才,斗胆发言

多角度定义架构

定义架构的最短形式是:“架构是一种结构”,太棒了,这是一种正确的理解,但世界还没太平。若做一个比喻,架构就像一个操作系统,不同的角度有不同的理解,不同的关切者有各自的着重点,多视点的不同理解都是架构需要的,也只有通过多视点来考察才能演化出一个有效的架构。

从静态的角度,架构要回答一个系统在技术上如何组织;从变化的角度,架构要回答如何支持系统不断产生的新功能、新变化以及适时的重构;从服务质量的角度,架构要平衡各种和用户体验有关的指标;从运维的角度,架构要回答如何充分利用计算机或网络资源及其扩展策略;从经济的角度,架构要回答如何在可行的基础上降低实现成本等等。

没有架构策略的系统,让我诅咒它散掉: 人们不知道如何简单一致地理解,不知道如何加入一个新功能,如何调高或调低某个服务质量指标,如何应付增大的访问,如何提高系统的容错能力或稳定性,如何充分省钱。没有良好架构支持的系统,出来混的迟早要还!我们诅咒他散掉。

如何得到一个良好的架构?
只言片语

像妈妈那样优生

架构所要做的是一个“细节还未完全落实的技术决策,这个决策是一个框架、是一种权衡、是一个路线图”,这个决策规定了整个系统的技术“风格”和后续技术发展方向。

系统的开发是一个从无到有的过程,需要不断地迭代:功能上不断地丰富,技术上不断地完善。如果把一个系统比喻一个人,怎么让这个人不断地往健康、完备的方向成长就是我们的目的了。一开始,这个人并不完善,包括很多器官并不成熟,甚至没有,通过营养的摄入,时间的沉淀,不断地重构最终成功。人也需要重构?!不是吗?血液的60天一变换,牙齿的两次生长等等(注1),有一个专业术语“新陈代谢”! 当一个人新陈代谢的能力下降的时候,也就是老了。

在系统从无到有的过程,架构要着眼于未来,落实于现在,规划迭代、优化的路径。这个架构要支持目前最紧迫的任务:“生出来”,也要支持以后能不断地新陈代谢的可能性,两者缺一不可。

像理想那样追求

系统的每个阶段都很重要,一个好的起点并不意味着一直会好下去,制定了各种策略后,贯彻、执行是最重要的课题。没有人一开始就想把一件事情做糟糕,但这个世界就是这样,很多事情都会变坏,越来越不可控。导致如此境地的主观原因就是自己没有设法去维护、坚持、贯彻原先的理想。作为一个程序员或架构员,要不断审视自己开发的系统,主动维护系统的架构,如若发现有对架构产生破坏的地方,应该适时纠正,坚持零容忍。如果不零容忍会怎样?千里之堤溃于蚁穴,我们诅咒他散掉。

谁来做架构?

架构师这样的一个帽子,很多人会闪闪躲躲。

国外多少年的工作经验才可能成就一个架构师,而国内3、5年工作经验的小毛头就说自己是个架构师了。通常认为,架构师理应无所不能,一旦有人被称为架构师,他就应该接受重重的检验。总之,那些自称是架构师的人在冒着道德风险。但,同学们不要胆却,所谓时势造英雄。有人称你是一个英雄,那是因为你被需要,要勇敢地站出来,扮演好自己的角色是对岗位的敬畏。当我把你看成是一位架构师的时候,我需要你不断地给自己暗示,不断地以理想的架构师来要求自己,和同学们在工作中学习,一项一项地突破自己,把工作做好。

一个组织可能会明确地任命一些人为架构师,但大部分的组织可能不会。但在一个项目团队中总有需要有人完成类似的工作,这可能是一个人,也可能是整个团队在商量的气氛中完成。

我的意见是:如果你愿意,你就是架构师!

架构模式

当一个问题、一个系统可以采用很多解决方式来设计时,我们采用什么方式并且以一致的思想、方式解决这个问题时,这就是风格了,当这种风格具有可复用性那就是一种模式了。在编程上,我们有“设计模式”的指导,在架构上,我们也应该总结一些良好的模式出来,应用在不同的情况。关于这方面的资料,目前并不难找。

小的不才,发言结束。请多指教。

注1:周期数字没有核实准确性,但意思已到。