Web 技术研究所

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

扯一扯 Web 项目工程化的现状

  最初的前端根本不考虑什么文件合并、加版本号之类的问题,以一种开发即生成的模式运作。后来前端引入了各种预处理之后,就变得需要 build 后才能发布。反倒是一些后端语言,比如 PHP 之类如果没有特殊处理甚至代码都可以热更新。这个世界是不是有点本末倒置了?
  前端项目在很多后端程序员眼中都是一个结构非常简单的东西。如果将整个 Web 视为 MVC,前端只是个 View 层而已。所以在传统 Web 架构的笼罩下,前端只要切切图就好了,根本不需要做什么事情。
  但是这古老的 Web 架构还会有人用么?前后端分离已经是现代 Web 架构的标配了。所有不分离前后端的,要么只是随手玩玩,要么没过多久就面临重构。在前后端分离后,前端会变比原来复杂得多!这时候前端也需要有 MVC 这样的东西来支持,否则业务会让项目变成一坨。于是最终两端都会维护一个 MV* 体系。之后就有了前端工程化的概念。
  前端工程化会让前端架构的逻辑更整洁,因为光靠代码层无法同时解决逻辑问题和性能问题。各种预处理工具让前端的代码变得需要 build 后才能跑,甚至还有 CoffeeScript、TypeScript、AtScript 这么一坨奇奇怪怪的东西。所以前端的项目发布就变得越来越麻烦。
  现在回头看看后端呢?后端开发如果需要 build 等一系列动作可以在生产环境的服务器上完成。而且一些像 PHP 这样的后端语言如果没有特殊需求甚至都可以热更新。相比之下前端的 build 很难在生产环境的机器上完成,而且前端项目的发布会发布到一堆不同的服务器上(CDN 之类的),对不同的机器发布不同的内容。所以就项目发布这件事来看,前端项目的发布比后端要复杂得多。
  其实我的观点还是比较片面的,因为「后端」可能指很多东西。我所说的后端就仅仅是 Web 的后端逻辑程序而已。如果算上数据库服务、缓存服务,等一大堆零碎的服务,那么「后端」的概念本来就比前端要大得多。所以不用纠结谁复杂,只要能解决所有问题就 OK。
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^