Lego 组件平台开发(一)

作者:刘恒兵

为什么要做组件平台

为什么要组件,这个问题在很多场合都被人提起,这里不做过多赘述,其解决的本质问题:

  • 复用:减少产品、设计(UI)、开发、测试、部署(大型应用)的重复工作量,提升开发效率
  • 统一:同一个平台统一产品特性保持高度统一和一致,能做到同步修改。

然后,在任何产品的上线过程中,谁都不愿意重复早轮子,都希望能通过一些规范和标准统一起来,后续就完全按照这个标准执行,并能否把历史上实现过的沉淀出来的直接使用,不需要重复劳动。

这里就提到的重要的点:1、沉淀;2、标准。如何沉淀?沉淀的标准是?在哪里沉淀?该不该使用?如何使用?新加入的小伙伴如何知道?

同时,我们还需要解决每个组件之间的依赖(即模块依赖),就需要一个平台来帮我们做这样的事情,维护组件,而且能做到工具化,和构建体系打通,使用者能快速方便地相信和使用组件。这里就提到一个重要的问题:工具、维护

从组件的维护发展历史来看有以下一些方式:

  • svn:把一些组件抽离出来,放到代码管理系统,使用者通过既定的发现路径,招到组件,下载使用。这种方式效率相对比较低,团队内部都不一定能知道对方有什么组件,外部更不用说了。
  • github:相对于svn来讲,除了代码托管之外,比较优势的地方是开源化,可以在这个平台找到很多有类似功能的组件。同时,还可以参与贡献和反馈,提升组件。然后,对于使用者来讲,首先要找到自己想要的组件相对麻烦;同时,和自己的构建体系结合,依赖维护等都是比较明显的问题。
  • Npm、Bower,Browserify,Component、Duo、Jamjs等。他们都能解决组件依赖,同时也能和构建体系打通,有很多关于他们对比的文章,这里不做更多描述。他们在很大程度上解决了我们工作中遇到的问题。但随着组件的增多,我们逐渐发现,找一个组件(且是自己信任和想要的组件)比较难,只能根据知名度、关注度以及文档来初步判定,而且没办法反哺组件,进一步提升组件
  • Spm:这里之所以单独列出来,一度我们觉得这个是离我们目标最近的组件管理平台,他包括了组件初始化、编码、本地化调试、文档生成、发布、依赖管理、单元测试、构建、源服务等功能。

而我们理想需要的一个组件管理平台应该要满足以下条件:

  • 更新维护
  • 文档调试
  • 依赖管理
  • 构建体系
  • 单元测试
  • 快速发现
  • 质量认证
  • 使用反馈

那么,现有的哪个平台离我们最近呢?之前的分析可以看到,离我们最近的是spm,基于spm我们可以打造出我们理想目标的组件管理平台。

如何着手做呢

开始之前我们得明确自己的目标,有了目标之后我们得确定规范,然后才能开始行动。

规范

每一个组件平台应当有自己的规范,至少应该包含以下规范:

当然这里的运营规范是后面补充的,早期我们确定了代码采用commonjs规范,后期我们打通了基于fis3的构建体系fis3-hook-lego。其他构建体系下的插件也会逐渐放出来。

全景图

规范确定之后,应当有一个整个平台全景图的规划,应该罗列需要包含的功能。

认证流程

其中我们想要的认证体系如下:

平台开发

开发之前,有做过一些深入的交流和讨论,基于客户端开源

组件使用

这里有详细的组件使用文档

大致罗列了一下,Lego的产生的背景、规范、使用的指引,后续章节再逐渐解析Lego体系下各个模块运作机制和Lego的理念

原文链接:http://ivweb.io/topic/561722725d6f37745e8f4979

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师学习

微服务开发中的数据架构设计前言微服务架构中的多层数据架构设计数据架构设计中的要点

本文来自作者 陈伟荣 在 GitChat 分享的文章【微服务开发中的数据架构设计】 前言 微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布...

34480
来自专栏我是攻城师

大数据,怎么搞?

44070
来自专栏程序员的知识天地

提升 Web 应用的代码质量【干货持续输出】

Web 应用的质量提升,是一个非常有意思的话题。我们明知道有一系列的手段可以提升代码质量,但是限于多种原因,我们并不会去做。在我工作的第一个项目里,由于大家都是...

9010
来自专栏CSDN技术头条

十一款很酷的新编程工具

开发人员平时可能不太接触新的编程工具,或者找不到比现在用的更好的,所以只能使用那些过时的。本文作者介绍了11种新的编程工具,这些工具可以通过改变编码技能、共享终...

21160
来自专栏程序你好

混合持久化让微服务如虎添翼

13530
来自专栏JAVA高级架构

谈谈为什么需要服务治理(Dubbo)

23030
来自专栏微信小程序开发

看一下小程序中接入广告的具体步骤

昨天,很多小程序开发者都收到了“流量主测试邀请”。连胜老师也就尝试了给自家小程序添加广告。 之前有不少小程序开发者,都尝试过在小程序中变现,红包类小程序可以说最...

86290
来自专栏架构师小秘圈

微服务之数据架构

作者:陈伟荣 来自:在GitChat 中分享的【微服务开发中的数据架构设计】 前言 微服务是当前非常流行的技术框架,通过服务的小型化、原子化以及分布式架构的弹性...

43670
来自专栏AI研习社

如何在微服务架构下构建高效的运维管理平台?

黎明带领团队自主研发了全栈 DevOps 运维管理平台—EasyOps,是目前行业领先的智能化运维管理平台。作为前腾讯运维研发负责人,黎明主导了多个运维系统研发...

53890
来自专栏双十二技术哥

GMTC移动开发者大会纪实(二)组件化只是一句口号吗

到了17年的今天,组件化实在不会是一个新名词。各种关于组件化、模块化的讨论层出不穷,具体实践方案也历经了好几代的演进,到了现在甚至已经有完善的组件化框架类如Sm...

15540

扫码关注云+社区

领取腾讯云代金券