在小编对Angular2发起冲击的过程中,深感Symfony框架对学习ng2的 正面作用 (外国人所写,字字真谛,可惜被无视,十分可惜...)。

sf2无比庞大,ng2也极为庞大,好在,它们都师承JAVA(sf2借助 PHP最高级oop连同type特性,ng2取道微软语言大师的TypeScript直接搞定)——实践之后可以很负责地说,之前我们关于ng2的预判,正确无误——即,ng2是彻头彻尾的企业级开发利器,底层架构深厚,功能覆盖全面。

前端框架和后端框架的天然属性导致ng2要玩转一切DOM所需之对象,sf2则玩转一切HTTP所需之对象。

共通之处

sf2与ng2因为体量巨大,所以共性很多。比如,只要掌握ng2的各领域之用法(这很困难,必须精通ts并阅读ng2代码/读代码中的注释),实际代码量会很少。最妙的是,ng2可以很容易的扩展,这点跟sf完全是一路——需要什么,就装什么——很多三方高人写了包(水平够的话,当然我们也可以写),无非在使用时,一个叫bundle,一个叫component。

其共性是这些包儿并不与你程序中已有的sf2 bundles或ng2 components冲突,小编xtt以为,这就是企业级了,可以无限堆砌、无限引入(互用),且能保证性能和效率等。

ng2有自己的事件体系,前端事件相对sf2的事件来说要简单得多了,EventEmitter随时制造事件,而监听更简化到直接书写方法(而不像sf2中还要有一个监听类或订阅类),再通过组件之间的directive嵌套来output各种事件,可以让event中的各种数据随意传递使用。更有observable协力——由于RXJS的威力是非常大的,但略高难,所以整体上,ng2的学习难度并不低,且十分飘忽。

早行动

但我们相信所有后端人士特别是Symfony用户都可以较快掌握。ng2在代码书写上是极为后台化的(因为是最硬的强类型oop),纯前端人士应该无力面对(这也是为什么有些人要攻击ts或ng2的原因)。毕竟ts与es6完全是两回事,除了都能使用胖箭头之外,es6的概念能突入ts的,并不是很多——但ts自身需要掌握的就很多了。ts的很多理念被php7.1拿走使用,因为类型太过重要,企业级开发是绕不开的。

因此,各位在面对全新时代的前端工具时,如果有“选择困难”症状,想快速掌握和使用就用 Vue.js;但如果需要大规模scalable,必须ng2。ng2强大到什么都可以做,包括手机应用,H5的ionic2和原生的nativescript都是备选。

scalable的程序,需要学习成本,sf2和ng2都需要时间,请大家尽早介入,以免未来这两者成为皇冠明珠时,悔未早学。

检索完成

本站的检索基本已经做完了,但因为卡在了build层面,一直没有研究如何通过工具来完成部署(webpack2等),只是在用代码实际过手ng2体系中的理论,砖头厚的书,还要发sf文档,所以就拖着。

因为检索功能的测试程序是用systemjs来整合的,部署是就很成问题,虽然可以使用ng2的cli来尝试build(或者gulp),但考虑到webpack2才是究竟方案,所以就想等到火候够了时再说。

无论用哪种方案,最终会完成!

注:这个检索功能可以做到和sf官方的一模一样,而开发时间我算了一下,如果是“会”的话,半个小时是多说了。小编因为不会,所以用了一个晚上才初步完成,而且还用了英国高人的分页包,在用包的过程中不禁拍手大笑——

这的确是sf的使用感,毫无违和。

惊异,故有此文。