Web 技术研究所

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

粒化程度与中庸之道

  最近在改的一坨别人的程序里,各种销魂的订阅发布模式滥用,要不是因为程序太大真想直接重构了。订阅发布者模式应该是用于一个生态圈的底层,然后让圈内的多个可单独执行的模块互相通信。甚至是多个进程之间通过 Socket 封装出一套订阅发布模式。
  把一个复杂的程序转换成多个简单程序的组合是很好的做法,因为当一个程序非常大时维护成本就会增加。但粒度大小也应该有个限度吧?并不是粒度越小越好,如果把每个基本功能都抽取成可独立运行的服务,这些服务之间用订阅发布者模式通信,实际上最终得到的程序就和使用大堆全局变量写的程序一样难维护。
  这让我想起了 Windows 下的系统服务。简直就是一坨嘛!而且那一大坨服务中总是有一部分服务总是成堆出现的,这就是在自虐。当我们发现一些服务总是一起出现而且没有单独存的必要时就应该考虑合并。拆成一坨服务虽然让每个服务内的逻辑更简化,但这一坨服务之间的依赖关系也是回随着服务的增加而变得难以管理的。
  所谓「最佳实践」应该处于某一个适当的粒化程度点上。

  其实上面这张图也很操蛋,因为都是主观的东西。比如「维护成本」,明明是同一件事,有些人觉得这是在挖坑,有些人则觉得这是在优化。对同一个项目,大家心中「最佳实践」点的位置也都是不同的。但其实可以不纠结这些细节,「中庸」才是我国文化的精髓。所以只要不走极端就不会有人觉得程序无法忍受,慢慢适应都能做好开发。
网名:
54.226.58.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^