
我们不能严格控制用户使用什么浏览器、也不能控制用户机器的配置,但是我们可以控制自己服务器的一切。
鸡肋?有人会说,AngularJS的各种好处,比如‘易于维护’、‘编码方便’等等。但这是建立在牺牲性能和用户体验的前提下的。并且所谓的‘依赖注入’等后端的思想强行引到前端中来,这样做看起来高大上了,但似乎哪里不对?后端分架构、拆服务,以及使用各种框架等等,是为了更简单的开发,而web前端,本身体现在浏览器中的就是HTML文本而已,它本身就是个静态的、且不涉及业务的东西,我更认为他这么做没什么实质性的帮助。
从这些方便,或许不能说鸡肋,但是,在任何场景下,几乎都有一种方案可以完美的取代AngularJS,并且做的比它还要好。这。。。这就尴尬了!比如freemaker。
freemaker大家不会太陌生,它可以直接调用Java提供的freemakerApi函数,而不是通过ajax去执行http请求异步获取数据。同样,他的性能同样也玩爆AngularJS 或许和它比性能有点儿欺负人了,但是同样作为一款模板引擎而言,freemaker的确有资格在性能上碾压AngularJS。
在易用上,freemaker除了可以直接调用Java函数以外,依然也可以通过http来获取数据,但他会把获取出来的数据统一build成html文本后再交给浏览器去解析,最重要的是,他也支持依赖注入等相关特性,并且和后端程序完美结合,结合以上几点,不管是从扩展性、可维护性、整体性能、用户体验等方面来说,都是碾压了AngularJS。而唯一比不上AngularJS的,则是开发阶段了。freemaker开发相对于angular而言,更复杂一些,或者说angular相对而言,在开发过程中要简单得多,如果仅是因为开发变得愉快而大量的舍去诸多性能方面 的因素的话,这是非常可怕的,一部分人在追求性能的机制去不停的优化,一部分人为了更简单的开发去优化,这不能说谁对谁错,但我更偏向前者。
抛开freemaker不谈,在nodejs中童同样有大量的可取代的解决方案同样有大量的mvc框架,这里就不多讲了。
我认为在浏览器中的js的作用更多的应该放到交互中去,而不是内容体现中,那不是正确的解决方式。
AngularJS在前后端分离的场景中看起来是个不错的选择,但上面说了,在前后端分离时,AngularJS考虑的太过狭隘,我们分离后,除了开发变得方便了,但失去了原有的性能和体验,这无疑是失败的,结合这些原因,或许可以使用AngularJS的场景几乎非常少了,但似乎在后台(后端管理控制面板)、WEBApp这两个场景中可以使用。
那么问题来了,开发管理控制台页的确不需要对性能考虑太多,也不需要针对SEO做优化,但同样这个场景中的中点是在交互上,而不是内容展示上。AngularJS作为一个前端模板引擎,他失去了他的定位。他的作用发挥的微乎其微了,这很尴尬。
而在开发WebApp时,她或许不用考虑SEO,对性能而言,App框架可以对性能做优化,因为我可以严格的控制用户使用的客户端版本。我可以选择App框架 ,但既然可以自己选择App开发框架了,那么任何一种App框架几乎都有超越AngularJS的方案,无论是性能和易用性上。所以这似乎比开发管理控制台页面更糟糕。
综合这几点,我认为AngularJS的地位就很尴尬了。
而唯一没有冲突的场景,可能就是体现在开发企业内部应用的场景上了。
这或许就是为什么AngularJS看起来似乎很棒,却很少有企业去选择。追求性能是每个程序员都应具备的,尤其是从事后端开发工作的,他们考虑的会更多,不可能为了看起来开发方便而放弃体验。如果真的放弃了的话,还分什么初中高?哪里还来的架构师?一堆代码磋商去就开搞罢了。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-55127-2.html
他马云高互联网也可能的确不需要行贿
谢作诗这厮脑袋进水了吧