WebRebuild活动分享-LSM实践

PDF: http://hikejun.com/sharing/lsm-practice-kejun.zip

2.

分层语义化模板的简称LSM

分层其实指的就是展现层的MVC结构

语义即指语义化标签和命名,又指结构化数据。目的是更合理定义信息架构。

4.

其实设计师和前端工程师都是信息的传达者。前端工程师并不是完全follow设计。看个例子:
http://hikejun.com/work/qq/spec/example_mod_compare.html
wireframe是交互设计师的语言,视觉是设计师的语言,代码是工程师的语言。其实三者要表达的东西是一致的。

5.

先看看传统的前端开发方式。设计师follow产品经理,前端工程师follow设计师

6.

这种串行方式,当某个环节出问题都会影响后面的环节。实际上,模糊的产品定义导致善变的设计再导致混乱的代码,这种糟糕的连锁效应是经常发生的。

7.

更合理的关系是这样。设计师依据PRD进行视觉设计,同时前端工程师依据PRD设计html结构,当视觉设计完成后再开发CSS

8.

显然,这种方式最大的特点就是串行变成并行。

9.

从产品设计角度讲,分层就是:信息架构 > 视觉表现 > 交互行为

从开发的角度讲,分层就是:M(模型)V(展现)C(控制)。这个又是和后端完全对应的。

10.

前端的开发过程就像“洋葱皮”似的。从最原始的内容(或数据)一层一层的增强。

11.

所以UI的开发过程应当是渐进的过程。我们看一个实际页面的例子。

12.

第一步根据wireframe和统一的页面布局、模块结构搭建HTML
page_base_style_0.png

第二步实现核心样式。核心样式是全站的统一风格,包括:标签reset,字体,链接,模块容器,通用模块样式(提示、列表、按钮等),页面布局,以及常用的rules(高亮、隐藏、清浮动等)
page_base_style_1.png

第三步实现模块的统一样式。产品(或频道)级模块通常都会有自己的统一风格。
page_base_style_2.png

第四步实现页面级的专有样式。
page_base_style_3.png

第五步实现页面上的动态效果和数据交互。

17.

这种渐进式开发的优点,首先是可以很好的控制每一级UI的的一致性,全站级 > 产品(或频道)级 > 栏目和页面级。

开发和设计可以同步进行。像刚才的例子24步对UI样式的实现完全通过CSS实现。

每一级都有很多通用的部分被规范出来。基于统一规范和模式,会使开发效率大大提高。

18.

第一步是最关键的,就是HTML的搭建。

通过代码是可以想象出信息的结构和形式。

22.

LSM可以实现更灵活的前端。这种灵活性除了体现在应对展现形式灵活的变化,另一个方面就是“重用”。

重用是信息的重用,不要误解为风格的重用。

23.

网站重构中很重要的一点就是规范标准的结构和模式。

24.

标准的页面布局结构。这个通常都会做。

标准的模块结构。虽然模块的表现形式多种多样,但仍然可以抽象出一致的结构。

对于模块完全可以进一步归纳和分类,形成标准模块。

27.

新的模块从标准模块组合和派生出来。

28.

最后总结一下。分层使前端更灵活。模块化使前端更有秩序。语义化使信息的重用和二次开发变得轻而易举。建立面向LSM的规范和标准,可以使团队批量生产质量均等的页面,

29.

产品的UI可以得到统一的控制,

30.

同时使团队的协作程度更高,代码更可控,开发效率更高。

用例源码: http://hikejun.com/work/qq/share_8.4/example2/article.html

Tags:

20 Responses to “WebRebuild活动分享-LSM实践”

  1. daviart Says:

    昨天下午的交流会 讲得很认真哈 辛苦了 谢谢

  2. cnscorpio Says:

    谢谢克军的分享。

  3. lanqy Says:

    不错的分享,我平时开发也是先写html结构,然后再套css,这样可以确保在样式丢失的情况下,信息还能够完美的呈现出来

    我查看了一下你的demo的源码,其中有一段是这样的

    腾迅网友 2009-07-02 14:43:20

    评论内容,评论内容

    不是很理解,li包含div p标签是否符合html的嵌套规则?

  4. kejun Says:

    @lanqy w3c的dtd
    < !ELEMENT LI - O (%flow;)* -- list item --> li可以包含 flow
    < !ENTITY % flow "%block; | %inline;"> flow是block类型或inline类型标签
    所以,li包含div p标签完全符合嵌套规则。

  5. 十年磨一剑 Says:

    期待能看到视频~

  6. jayli Says:

    webrebuild中最重量级的分享,相当不错

  7. 前端开发流程 | 互联网的那点事 Says:

    [...] 军在 WebRebuild 中分享了《LSM 实践》,很不错的议题。下面是我的一些想法。 [...]

  8. kaka Says:

    我觉得有点问题,就是当设计师和html工程师并行工作室,如何保证工程师的html一定能够仅仅通过css就能精确表达出设计师的设计?

  9. kejun Says:

    @kaka 如果设计师天马行空的设计肯定不行。前提是设计师必须基于wireframe和原型图设计。html是描述wireframe和原型的结构的。再通过css控制样式。当然,这对html结构的灵活性有一定要求,也是考验html设计能力的时候。所以,html不是越精简越好,而是越灵活越好。比如雅虎的标准模块结构

  10. Hi, I'm Adam Lu. Says:

    WebRebuild大会演讲《揭秘HTML5和CSS3》分享...

    昨天在WebRebuild大会上分享了《揭秘HTML5和CSS3》,现来总结一下。
    PPT在这里:

    View more presentations from Adam Lu.

    我先从网站标准的简单历史开始讲起,从2001-2006年是XHTML(content)和CSS2(presentation)流.....

  11. tommyfan Says:

    俺提出的问题被需多的人误解,给克军找了麻烦哈哈。

  12. 十年磨一剑 Says:

    hi,克军,刚看LSM实践的视频中听你提到一个CSS Module,可以在这个结构上实现很复杂的UI效果,非常希望能了解一下这个东西,刚在Google里没找到,不知能否分享一下这个CSS Module的名字,3Q~:)

  13. kejun Says:

    @十年磨一剑 是css mojo 介绍在这里 http://www.lesliesommer.com/wdw07/html/

  14. 十年磨一剑 Says:

    @kejun 哈~ 谢啦~ 原来是css mojo,我E文太烂了 :)

  15. CT Says:

    看了这篇文章,终于可以解决自己所在的小团队的流程规范问题了,谢谢博主

  16. Says:

    终于找到这样的好文章了,我就是想了解这些东西……

  17. yubo Says:

    克军分享的视频地址如下:
    http://www.youku.com/playlist_show/id_4014160.html

  18. 外贸推广 Says:

    任何事情都要有合理的流程化,前端设计看来也不例外。

  19. will Says:

    感谢kejun的分享,受益了!

  20. 冯胜利 Says:

    设计与前端并行是一种不错的方法
    提高效率,也对前端人员的全盘把握能力提出更高要求。

Leave a Reply