Web 技术研究所

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

视图上写你妹的逻辑

  无论是 Angular、React 还是 Vue,只要开发人员想,总是会往视图中写逻辑。有些东西如果没有在框架上强制约束,只要开发人员还有这样的习惯就一定会往视图层中写逻辑。难道只有像 Polymer 那样强行弱化视图层才能够让开发人员不再写这么恶心的代码么?
  每次修线上 Bug 时打开好久没看的代码都会发现一坨奇奇怪怪的,最恶心的就是一坨逻辑全在视图层中,而且逻辑还复杂到根本无法阅读。
  记得之前看 DDD 的时候看到过一段话「那种将业务逻辑交由业务界面处理的快速 UI 方式是旁门左道。希望象 C/S 结构那样可视化拖拖图形就完成的软件开发是一种错误的方向,开发时快速,难于维护和扩展」我觉得非常有道理。如果要把一个东西做到精致,那就一定不能只为「快速开发」而写出乱七八糟的代码。
  我觉得现在的前端框架做了太多多余的事情导致了大家都希望利用框架的特性来偷懒。其实框架的视图层只要做好数据填充就好,或者把数据绑定实现上也不错。更复杂的一套视图层逻辑实现下来,不仅浪费代码量,还让开发人员写出各种风格不一致的代码。
  想想最早的 ASP、PHP,其实完全就是一个带逻辑的视图层,就是在 HTML 里面嵌入一些特殊的标签,它们在服务器上执行并把数据填进去。后来人们之所以要分出 MV* 就是要解决视图层难以维护的问题。现在倒好,大家都懒得写个控制器了,把东西全部丢到视图层里处理。这就好像是人们为了解决出行困难的问题发明了自行车,而有些人无法驾驭自行车就强行驮着自行车在路上走。
  另外,现代前端框架还流行组件化。对于组件化这件事我本身是赞同的。但实际上在很多人的认知中,组件就变成了自定义标签。然后组件的各种逻辑被丢到视图层中处理了。我并不希望这种自定义标签的组件,它不仅让视图层的代码阅读起来失去了 HTML 本身的语义,还把本该在视图之外的组件初始化逻辑给弄到了视图中。
  其实我的这些观点都非常主观,只是我自己这么认为而已。也许很多人都有反对意见,这并没有谁对谁错,只是大家对 MV* 的理解不同而已。请不要来和我撕逼。
网名:
54.198.108.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^