用到的技术和规范 - fengliu222/mall-platform GitHub Wiki

CSS规范


参考网易NEC规范。 我们在实践中,重点用到的是NEC规范中对CSS的内部分类

重置(reset)和默认(base)(tags):消除默认样式和浏览器差异,并设置部分标签的初始样式,以减少后面的重复劳动!你可以根据你的网站需求设置!

统一处理:建议在这个位置统一调用背景图(这里指多个布局或模块或元件共用的图)和清除浮动(这里指通用性较高的布局、模块、元件内的清除)等统一设置处理的样式!

布局(grid)(.g-):将页面分割为几个大块,通常有头部、主体、主栏、侧栏、尾部等!

模块(module)(.m-):通常是一个语义化的可以重复使用的较大的整体!比如导航、登录、注册、各种列表、评论、搜索等!

元件(unit)(.u-):通常是一个不可再分的较为小巧的个体,通常被重复用于各种模块中!比如按钮、输入框、loading、图标等!

功能(function)(.f-):为方便一些常用样式的使用,我们将这些使用率较高的样式剥离出来,按需使用,通常这些选择器具有固定样式表现,比如清除浮动等!不可滥用!

皮肤(skin)(.s-):如果你需要把皮肤型的样式抽离出来,通常为文字色、背景色(图)、边框色等,非换肤型网站通常只提取文字色!非换肤型网站不可滥用此类!

状态(.z-):为状态类样式加入前缀,统一标识,方便识别,她只能组合使用或作为后代出现(.u-ipt.z-dis{},.m-list li.z-sel{}),具体详见命名规则的扩展相关项。

这一部分,我们用到的是它的CSS选择器前缀,.m- .g-等等。在它的官方模板中,分类之后的命名都颇为抽象(比如.g-hd),不利于阅读,所以我们在使用的时候,尽量将分类之后的命名更加语义化。比如,居中的部分就命名为.g-center,这样能让人一眼明白这个css具有的样式。

另外,这个项目中现在公用的LESS函数还不多,我们在修改了其中的函数或公共变量之后,最好告诉一下大家,大家也在更新的时候留意一些这些公共变量和函数的改动,这样其他人写的公用函数才不会在角落里吃灰,我们的效率也会提升很多。

javascript规范


遵循CMD规范。

模块逻辑分层(至少数据层要与逻辑层分开)。

不滥用系统组件:根据整站业务场景设计组件,它的目的是解耦复用

需要大家了解的技术


  1. Thenjs, 用来做流程控制。还是那句话,可以用,也可以不用,但推荐用。具体使用例子可以在网上找,也可以来我这里看。我在TL的活动里有使用到。

  2. alare,小而美的前端库,有很多成型的解决方案。组件就是用其中的widget实现的。能减少很多代码量。

  3. artTemplate 模板引擎。效率很高,语法很简洁,用起来跟handlebars差不多,但对比起来貌似要快上不少。而且,它相应的grunt插件能够让我们像调用JS模块一样调用模板,很棒。具体如何配置它的grunt插件,我会另开一篇文档写。

  4. [seajs],这个我不多说了。

除了artTemplate和widget,其他的东西大家用起来还是挺自由的。