ianva
2016-10-18 10:56:06 +08:00
这是脱离业务场景谈技术
jquery 是个基础库,用于替代 dom 接口,至于其他 utils 都是附带品,选择 jquery 是在于 dom 基本操作能满足当前业务,但业务逻辑稍复杂点的业务 jquery 维护就是坑, dom 操作和逻辑混杂而且开发效率低下,
从基础库来看在于维护性和复用性上论起来,比起 yui3 和 mootools 都差的远。 jquery 在那个时代里之所以能比 yui3 和 mootools 火的原因是在于简单易学 api 明了,比如只是插件而论相比 yui3 的 widget , jquery 插件的设计太过丑陋和简单,各种功能的全面性和复用性更没的比。
如果业务复杂,状态满天飞的时候 react 提升太明显, redux 即是。另外组件化, hoc ,等等各方面让维护性和复用性提升不止一个档次
如果只是简单的增删查改的项目自然 mvvm 的双向绑定更合适,但维护复杂的状态变化而业务周期又长,双向绑定设计不好就是个定时炸弹,这个时候就会知道数据不可变对于维护性有多重要。
另外关于 grunt 和 gulp , webpack , grunt 的本质是配置文件,每个功能都是单独的配置,开始谁想到前端的工程有这么复杂了,当处理的流程越来越多自然就觉得不看重负,我一个还是用的 coffee 写的 gruntfile 都有 500 行以上了,这还不算上插件,每次需要改的时候要回顾整个流程,后来迫不得已重构分任务分文件,其实就类似与 gulp 了,所以 gulp 是自然而然的。
任何 dsl 配置复杂到一定程度会变成一门编程语言,或者是脚本语言介入,这是太自然的事情了,就好比 css 之余 sass , stylus ,当然一个业务没这么复杂的时候 grunt 的配置文件比掺和逻辑的文件更容易维护。
webpack 其实主要解决的是打包问题相比的也应该是 requirejs 和 seajs 这类东西,至于有工作流的功能是因为有些地方更自然, grunt 和 gulp 并不方便,但主要功能依然是打包,对比 requriejs webpack 带来了太多有用的东西,有什么抱怨的
至于 IE8 这个占有率已经 14%了很多大公司都无视了,移动端的重要性也越来越高了。
毕竟前端这个环境碍于浏览器,各种功能都是社区慢慢搭建起来的自然是问题多多,但这些都是说明前端的技术在不断的演进,在解决各种问题。