使AngularJS构建大型Web应用

AngularJS凡是出于Google创建的均等种植JS框架,使用其好扩大应用程序中的HTML词汇,从而以web应用程序中采用HTML声明动态内容。在该集体工作之软件工程师Brian
Ford新近作了同样首blog,分享了哪些运用AngularJS构建大型Web应用之涉。这些经历对于使用其它JS框架构建大型应用之开发者也极其具借鉴意义。

AngularJS的官方网站上给出了这个框架的为主以方式,如:

  • 怎么引入AugularJS,从而让您的web应用使用该框架
  • 怎补充加控件,并针对那个进行多少绑定
  • 如何开展表单验证
  • 何以和服务器通信
  • 哪创造而选用的零部件
  • 争对组件进行本地化
  • 安被动用可置、可注入和而测试
  • 另外,网站及还发了同样密密麻麻教程,跟随这些情节,我们得以起初步地慢慢对AngularJS的各种风味以及用法来非常好的了解,进而很好地开始用这同一框架。

但是,正使Brian
Ford所说,官方文档中连没有告知开发者,当用逐渐提高,其中含有上万还是几十万履行代码的早晚,应该什么组织以及保管它,而异的blog正是本着这些情节和超级实践的总结。

当时首blog特别关注的凡重型应用程序,作者首先给闹的建议是,尽量不要让动用变得极其巨大。而该编写小型、功能专注的、模块化的片,然后逐步把它组成起来,变得愈老,从而构成你的使用。

联网下去,Brian
Ford首先讲述了怎样组织利用之构造,然后针对性能、测试、工具、服务器和构建过程做了简短的总。

每当采用之团结构方面,Brian Ford针对各个方面给闹如下建议:

目录:建议于干净目录中只是放index.html一个文本,然后根据需要创造scripts、styles、views等目录,在scripts目录下,首先会见存放app.js文件,然后于偏下又有何不可创造多个子目录,如:controllers、directives、filters、services、vendor等,在里分门别类地存不同之情节。并且,随着你吧下创建更多内容,也许会追加又多子目录来存放各种文件。

文件:每个文件中应当单独出一样起事物,这档子事物或者会见是控件、指令、过滤器或者服务等等。这会转于小但再也小心的文件。也有利于重好地开展测试。

模块:第一在app.js中定义和配置有模块,如:

angular.module('yourAppName',['yourAppDep']);
angular.module('yourAppDep');

接下来于模块中定义控件、服务等,如:

angular.module('yourAppDep').controller('MyCtrl',function(){// ...});

乘关系:相似的话,服务、控件、指令等应拥有尽可能少的倚重关系,这是很好之软件开发实践,会推向测试。API应该分。控件尤其不能够综合多种不同级别之虚幻。

指令:本着指令下app专用的前缀,这有助于避免和第三着的机件重名。例如下面的代码中就是就此“btla”作为前缀:

angular.module('yourAppDep').directive('btlaControlPanel',function(){// ...});

服务:您得用下的方宣示服务:

angular.module('yourAppDep').service('MyCtrl',function(){// ...});

模型:AngularJS作为JavaScript框架,其亮点就在于让你可以了掌控模型层。这是AngularJS的强劲的远在,因为应用程序的为主是公的数码,而各种应用中的数额而产生老特别分别。所以Brian
Ford强烈建议要精心考虑以及负数据,以及用会晤怎么存储数据。

控制器:提议控制器以“Ctrl”开头,如:

angular.module('yourAppDep').controller('MyCtrl',function(){// ...});

除上述情节,Brian Ford还以文章被针对性能、测试相当地方让起了各种建议:

以性能方面,AngularJS应用一般会充分坏急匆匆。大多数使用不欲举行其他异常之优化,因此,除非您发现严重的特性问题,否则就相应把时光花在旁方来改进使。

对于大型项目来说,测试大主要。它叫您得满怀信心地展开重构,而当时对保持大型项目代码整洁非常关键。大型应用该既具单元测试,也如拥有端到端(end-to-end)测试。单元测试有助于定位问题,而端到端的测试能够保证全体应用像梦想的那样行事。每个控制器、服务、过滤器和指令都应该负有相同多样单元测试。而下之每个特性都应当具备端到端的测试。

当工具点,首先推荐以Yeoman,从而获得最佳实践与大好的型结构,另外还有AngularJS
Batarang,它对调试以及找到性能瓶颈会很实用。

当服务器方面,你可采用外想只要之服务器和AngularJS协作。它仅仅是客户端的程序库。我之引荐及喜好的装置是使用Node.js加nginx。我利用nginx存放静态文件,使用Node.js创建RESTful的API和停放的(socketed)应用。对于称提供商,我已经成功利用了Nodejitsu
和Linode。前者会为您更易于地配置程序,你免需关注服务器的条件。如果你待针对服务器环境发生重新多控制,那么Linode会让你从脚控制虚拟机。Linode还提供了大好之API,可以为此来保管虚拟机。

构建过程方面,我看Angular还索要开还多改进,我以2013年极度酷之靶子便如果针对之有贡献。我曾揭晓了ngmin,希望这家伙得以最终解决呢产条件极其小化AngularJS应用的题目。

……

说到底,Brian
Ford做出结论:AngularJS是同等种非常适合编写大型应用的JS框架。你可直接以来利用,它快,并且会对集团以的组织很有赞助。

你是否构建了大型的Web应用,是否为早已以过AngularJS框架,欢迎大家分享和议论。

相关文章