我们的新前端
整体结构
SinglePageApplication
-
用户体验提升
-
移动互联网环境下性能要求
-
展示逻辑集中控制
REST
业务逻辑
-
开发(包括设计人员)人员知道有这个架构决策,不知道为何有这个决策。当架构执行力度降低的时候,开发人员按照自己的想法和当时环境的短期要求来组织逻辑。
-
系统采用Transaction script风格架构,以功能为主线条组织业务逻辑,同时又以功能为单位管理需求、开发过程,这进一步加剧了开发人员在当前功能的自由随意。
前端结构与技术
模式和框架
-
Backbone - 简单直白,社区活跃。虽然核心框架中不包含composite view、data binding等功能,但相关插件都有,可以方便的自由组合。
-
Ember - 功能丰富,特别是如果配合ember data,基本可以一站式解决所有问题。缺点是比较新,特别是ember data还不是“Production Ready”,遇到问题不一定能快速解决。
语言基础
-
模块化:模块化对于大规模的开发来说是必不可少的,但以前的开发人员却并不熟悉。这次我们选择Requirejs或者Seajs,将强制执行它们带来的模块机制。两者区别不大,就支持一下国货吧。
-
OO:Mootools带来类似extends、implement等OO特征,让习惯Java的开发人员非常顺手。但Backbone有自己的一点诸如继承的机制,如何协调两者关系,相关细节需要和开发人员一起研究讨论,建立示例代码。
-
单元测试:此类工具种类繁多,没有一一研究比较,只要有一个可用的就可以了。Qunit,必要的时候配合JSTestDriver。
-
遗留代码:遗留代码如何融入到上述的模块化机制,是一个还没有解决的问题。可能直接shim,也可能手工对每个文件逐个重新包装。两者优劣,需要继续研究。
响应式?
-
我们已经有了一套适用于pc web的大屏页面,其可用性久经考验。
-
我们不一定有足够的技术能力完成一套可用的响应式页面。
-
我们可以在新的一套页面中逐步加入响应式特性,一步步替代老的pc web页面。个人认为这是迟早的事,以后的屏幕,存在多种大小,多种分辨率,很难简单分为大屏、小屏两套。
JQuery、HTML5、CSS3?
-
四层=展示层+业务层+数据层,其中,业务层=应用层+领域层