Skip to content

lean-ui/lean-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

欢迎来到Lean UI

Lean UI(精益UI)是一个基于“关注点分离”原则设计的纯交互逻辑库。因为纯粹,所以简单。

该库是由汪志成叶志敏共同创立和维护的,目前正处于初创阶段,我们欢迎您加入并共同完善它。

什么是Lean UI?

Lean UI不是界面组件库,而是交互逻辑库

交互逻辑库是一个全新的概念,且耐心听我给您解释:

传统意义上的界面其实包括三个主要的关注点:信息、外观、交互逻辑:

  • 信息主要由HTML表达,它是你要传达给用户的主要内容。 信息在各个应用程序之间差异很大,因此很难有可复用库出现。
  • 样式主要由CSS表达,它是你要传达给用户的情绪与感觉。 样式库很多,如Bootstrap的CSS部分,它几乎可以和任何前端JS框架搭配。
  • 交互逻辑主要由js表达,它是你对用户的操作做出的反馈。 **Lean UI就是交互逻辑领域的Bootstrap!**同样的,Lean UI也可以和任何前端JS框架搭配,包括但不限于Angular、React等。

Lean UI遵循一个基本的设计哲学:少即是多。通过高度的抽象,我们把纷繁复杂的界面抽象成为数不多的交互逻辑。在提高可复用性的同时赋予消费者更大的灵活性。

比如无论你是采用前页后页链接分页,还是通过页标签栏分页,或者通过无尽滚屏分页,其逻辑本质都是一样的: 从全量数据中根据当前的偏移量和长度截取出一段儿视口数据。而无论你是从内存中加载数据还是从服务器加载数据,都可以抽象成一个数据提供者。 如果我们能抽取出这种逻辑本质,就可以用一个DataViewport接口和一个DataProvider接口实现3*2=6种看似不同的界面。 而事实上,无论是显示方式还是数据提供方式,都不止有这里列出的几种。随着需求的复杂化,它会导致“组合爆炸”。Lean UI可以解决此问题。

Lean UI解决的另一个主要问题是组织级代码资产复用。前端MV*框架的大爆发,对开发组织来说固然多了很多选择,但是也会为开发团队的技能碎片化而烦恼, 这种碎片化除了无法让开发人员复用现有技能之外,更重要的是无法形成统一的组织级代码资产,从而损害组织的竞争力。 就目前的状况来看,无论哪一种前端框架,想要一统天下都会很困难。而Lean UI为您提供了另一种方案,那就是与框架无关的代码资产。 事实上,Lean UI只能提供一小部分交互逻辑,但是您可以在吸收了Lean UI的思想和设计理念之后,设计自己的Lean UI逻辑。

Lean UI的开发组织形式

Lean UI使用MIT授权协议,这意味着你几乎被赋予了全部开源权利,要了解详情可以参考MIT协议的官方解释

该库会一直保持中英文双语。无论是中文开发者还是英文开发者,我们都热诚欢迎。 这是一次试图沟通中英文开发社区的努力,我们深信语言不应该成为合作的障碍。 如果你是纯中文用户或者纯英文用户,只要遵循一些简单的规则,开发组中的其它成员就会帮你翻译/审核对应的语种。 在此过程中,这些反馈会帮助你锻炼中文/英文能力,更重要的是,你有机会结识跨语言、跨文化的朋友。

我们会采用去中心化的管理方式,更注重自组织与自管理。组织级策略会在issues中进行民主决策,并通过同侪压力来促进执行。

Lean UI对参与者的要求

要参与Lean UI的开发,当然你得先能大致理解并接受Lean UI的设计理念,我们不希望看到开发组分裂。

其次,你要有写文档的耐心、细心和母语文字功底(译文的不用担心,有人会帮忙翻译)。

最后,你得熟悉TDD开发方式。对于Lean UI这种高度抽象的界面逻辑库,TDD是必备功力,同时也是代码质量的重要保障。

Lean UI的开发路线图

我们首先会实现一些简单易懂的逻辑类,以便向初学者演示Lean UI的功能与设计理念。 然后,我们会实现一些更复杂的逻辑,如Table。 最后,我们会实现一些高度复杂和抽象的逻辑,如各种统计图。

当然,如果有一些特定领域的专家(比如D3大师)加入,我们也会为您调整路线图。

About

Lean UI - The most pure interactive logic library

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published