Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

软件架构的分与合

  即便是天下,它也是「分久必合,合久必分」,更何况软件架构呢?就我自己的态度也是飘忽不定的。当遇到一个糟糕的服务化结构就会想着它们要是没分开该有多好;当遇到一个完全耦合在一起的混乱结构又会想它们要是分开多好。到底怎样才能解决软件架构的分与合的问题呢?
  这里的分与合讨论的是服务级别的分与合,并不是单个程序本身内部的结构如何。其实即便程序完成耦合成一大坨,它内部也是有层次结构的。就像我们这样大一统的国家也会有省、市等单位的划分。但是服务级别的东西就完全不同,因为服务级的依赖总是存在的。就像这个世界,好像总是有很多国家、种族,从来没有完全统一过。用最直白的话说吧,一直以来我纠结的事情是拆服务的粒度。
  经常会看到这样的事情,一个软件开发的初期由于功能单一且时间紧迫,把所有东西都放在一起,完全没有服务化。后来由于需求越来越多,原来的架构难以维护,然后将功能抽取成一个个的服务。再后来,负载上来了,细粒度的服务化无法满足性能的需求,于是再次统一成最初的单一体系。然后进入二周目的循环,这便是大自然的规律。
  无论架构师的能力有多牛逼,都敌不过产品经理奇葩需求的摧残。一个产品从创业阶段到成熟阶段总是需要不断地重构、服务拆分、服务合并。如果我们只是站在服务拆分的层面看问题,是永远解决不了问题的。也许需要一种比「服务化」更高的层次,从另一个维度来看才能解决这些问题。
网名:
54.156.92.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^