Skip to content
雪狼 edited this page Jun 12, 2014 · 7 revisions

各个作者在开发过程中可能需要做一些设计决策,请记录到这里,并注上作者名,以便交流:

使用CoC规约(雪狼)

这是一个显著地列表型应用,逻辑不复杂,各个子功能之间几乎没有联系。为了方便读者学习和拷贝,应该特别凸显这些子功能的独立性,避免在js或css方面互相依赖。

所以,我决定使用CoC规约的方式进行总体框架设计,可以简化各个子功能的代码,特别是实现了路由和菜单的统一处理。

以此为基础,用比较简单统一的方式实现了下列功能:自动添加路由,自动生成菜单,自动显示源码,自动显示作者和进度信息。

优先使用内置指令实现(雪狼)

在实际项目的开发中,我深刻体验到了内置指令的作用,很多界面可以用内置指令轻松的搭建出来。ng的内置指令严格遵循了“高内聚、低耦合”的设计原则,这使它的复用性很高。而描述性界面相对于一些类库的过程性界面来说,则具有简明、易定制的优势。

使用Bootstrap作为UI库(雪狼)

ng本身不涉及到界面风格部分,而bootstrap作为最成熟的css框架,具有很大的优势和普及性,在本程序中,界面美观性要求不是特别高,使用它即可,必要的话可以进一步定制。

不必严格遵守“view中不要写逻辑”的原则(雪狼)

由于这个showcase的设计目标是向新手展示ng的强大能力,并且方便实际开发中查询和拷贝,所以对大部分页面来说,如果严格遵循“view中不要写逻辑”的原则,容易导致新手的多次思维切换,对初学者不利。

而正式的开发者通常只会把这里的代码作为起点,页面中的逻辑随着复杂化程度的加深也自然会被逐步重构进controller或service。

所以,少量简单的一句话逻辑,比如item.checked = !item.checked,仍然可以放在view中。

不进行压缩与合并(雪狼)

由于showcase必须展示源代码,所以不能对代码进行压缩。同时由于需要动态加载js文件和css文件等的源码,也不能进行合并。这会带来一些加载速度上的影响,但是在showcase的需求下,“不压缩不合并”是更好地选择。