Web 技术研究所

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

组件、服务与生态

  突然觉得组件化是一个很低的层次,比如 npm 已经有足够的组件了,但是如果没有一套体系将这些组件黏起来也没法达到项目的水平。服务与组件不同,服务可以单独跑,每个服务需要有人负责维护。所以即便组件化做得足够好,对于项目而言还需要服务的开发者来将这些组件拼成服务。
  每个服务都有负责人可以持续维护这个服务,并为事故背锅。服务需要负责的不仅是服务的代码本身,即便是服务使用的组件出了 Bug 或服务的依赖的上游服务挂了,作为服务的负责人也需要背锅。因为选择一个有 Bug 的组件和选择一个不可靠的上游服务确实是服务负责人的决策造成的。
  如果只是为了组件化而做组件化,那只会造成一个僵尸生态圈。就像以前的 Grunt,各种插件都有,就是质量太差。Bug 多不说,连最基本的文档都不全。不读代码根本不知道是在干什么,读了代码更是完全无法理解原作者的思想。由于开发者通常只是为自己的业务写组件,很多 Bug 不会暴露出来,而且即便发现 Bug 也未必有人会去修,就算有人去修好这个 Bug,说不定反而让已经正常工作的东西挂掉。
  如果一个组件只是某个业务觉得它可以通用就直接抽象化,那必定会有大量根本用不了的三无(无测试、无文档、无示例)组件诞生。一个组件只有提升到服务的高度才可以存活并推广,如果做得足够好还可以有主页,有社区。这才是走可持续发展的道路。
  这些年前端一直在解决组件化的问题,从 Web Components 与 Polymer,到 React、Vue,大家都在做组件化。我只是给这股组件化热泼一泼凉水而已。虽然组件化是一个技术上的进步,也给我们带来了很多好处。但如果开发者自己不能好好维护起一个可持续发展的生态圈,那就是在糟蹋组件化这个词,最终的产出也不会比 jQuery 特效代码的复制粘贴强多少。
  最后值得一提的是,我觉得党的十八大提出要大力推进生态文明建设是非常有道理的!
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^