Skip to content

Latest commit

 

History

History
63 lines (50 loc) · 3.24 KB

02.md

File metadata and controls

63 lines (50 loc) · 3.24 KB

量身打造angular开发解决方案(2) - 需求调研

兵马未动粮草先行,我们的第一步工作就是分析需求:我们需要怎么样的一款工具?

1. 需求调研

根据我们团队的实践,还有在社区的调研,该前端集成解决方案应该具备:

  1. 模块化开发。最好能像写NodeJS一样写JS,很舒服。
  2. 性能要好。模块那么多,得能按需加载,请求不能多。还要能支持ngRouteui-router
  3. 组件化开发,organize by feature,一个组件的JS、CSS、模板最好都在一个目录维护,维护方便。
  4. 也许哪天我就不爱你了呢? 所以不能对Angular进行太耦合的hack,要原汁原味。
  5. 依赖注入声明的写法太烦了,能否自动帮我生成?
  6. JS/CSS/图片的混淆压缩应该都没问题吧。
  7. 图片base64嵌入。有些小图需要压缩并嵌入到页面、JS或者CSS中使用。
  8. 测试不能停,要能与ci平台集成, 支持karmaprotractor
  9. 开发体验要好。文件监听,浏览器自动刷新(livereload)一个都不能少。
  10. 我们用NodeJS作为服务器,本地要能预览,最好再能抓取线上数据,方便调试。
  11. 业界那么多优秀类库, 当然要支持bower组件仓库的安装啦。
  12. yeoman用过吧? 对, 脚手架功能也不能少了。
  13. CoffeeScript,Sass之类的有意思,也给我来一个。
  14. 顺便再提供个打包功能吧

回头看看这个列表,我怎么有点腿发软了。。。

2. 需求分析

好吧,在瓶神的鼓励下, 我们试试看吧,先把上面的需求整理下:

  • 规范

    • 开发规范
      • 模块化开发,JS模块化,CSS模块化,像NodeJS一样编码
      • 组件化开发,js、css、tpl维护在一起,organize by feature
      • 按需加载,支持ngRouteui-router
      • 尽量原生化的编写Angular
    • 部署规范
      • 采用NodeJS后端,基本部署规范应该参考express项目部署
      • 按版本号做非覆盖式发布
  • 框架

    • JS模块化框架,符合CommonJS规范
    • 支持请求合并
    • 支持按需加载
    • 支持通过localstorage等方式缓存资源
  • 工具

    • 自动生成Angular的依赖注入声明。
    • 支持js、css、图片压缩
    • 允许图片压缩后以base64编码形式嵌入到css、js或html中
    • ci平台``集成, 支持karma单元测试, protractor`端到端测试。
    • 文件监听、浏览器自动刷新
    • 本地预览、数据模拟
    • 提供类似yeoman的脚手架, 生成项目框架,包括Controller
    • 支持CoffeeScript,Sass的编译
    • 提供打包功能
  • 仓库

    • 支持bower模块安装和使用

3. 小结

一开始的时候,我总期望在scrat的基础上去修订,可是浪费很多时间后才发现, 即使团队的规范看起来差异不大,但还是有很多不同的应用场景,不能一刀切。因为,团队自身的前端解决方案是需要量身定制的。

本文实现的ngfis是一个基于fis之上的angular方向的解决方案, 只包含了最核心的一些需求,因此我们可以在这之上再去架构自己的方案, 如我们团队的larva就是ngfis+hybrid app+uae的结合体。