组队

UI 库是很庞大的一个项目,如果个人开发,会很占用我的业余时间,所以我想到了组队,便在掘金发布一个这样的事情,很快便召集了20多个前端加入进来。

scrum 敏捷模式

这么多人加入,怎么样的流程管理能保证项目有效进行,让他们按时按量完成任务,最后保证进度,此时我采取了现在很流行的 scrum 敏捷模式来做流程管理。

选用 tapd 管理工具

国内有很多工具来做 scrum 敏捷模式管理,经投票决议而定,最终选用 tapd。

分出角色

既然打算做一个大型项目,那么就应该有项目经理、架构师、前端工程师、设计师、产品、测试等角色。

建立迭代 1

我自己担任了产品和项目经理的角色。作为产品,迭代 1 我提出的需求很简单,实现 16 个基础组件,大概是每个参与开源小伙伴,一人一个组件的量,很轻松。

迭代 1 的开发

做一个 UI 库项目,迭代 1 的开发任务至关重要,它是一个项目的源头,如果源头没有思考清楚,后面迭代将会是灾难性的。进过我们爬过的坑,我认为迭代 1 的开发应该做好如下几件事情:

  • eslint 策略
  • 制定代码规范,例如 css 只能采取 BEM 命名规范
  • 单元测试
  • css 架构
  • 分支管理策略,如何让多人开发,发生代码冲突概率最小
  • 搭建 UI 库官网,可以写组件 API
  • 做好 pr ,这是保证代码质量最后一关

如果其中一个没有提前做好,我们可以想想后果,例如 css 架构在迭代 1 没有搭好,后面迭代 x 才去搭建的话,那么所有 css 都得按照新架构重新写,这是个巨大的坑。

迭代 2

迭代 2 需求依然是做一些基础组件。我着重说下迭代 2 的开发任务,除了实现需求,架构师将重点放在了项目架构上,主要做了如下事情:

  • 引入新的 eslint 策略,让 eslint 仅检测自己 commit 的代码,不管其他人代码,避免代码冲突。
  • router 全由命令行控制一次性导入,这样不需要每个人手动将写好的组件添入 router 中
  • 用命令行生成一个组件模版,无需每次开发组件都去新建文件

迭代 2 其实就是将很多开发上无意义的活,让命令行自动执行了,让我们将注意力放在正确的事情上。

迭代 3

有了前面两个迭代的基础,迭代 3 仅需按照已有规范继续开发新的组件即可。

迭代 x

此后迭代不断新增,不断优化组件,直到库中组件已实现足够多,也可以用此库写一个完整项目了,便可以发布第一个版本 npm 包了。

开源项目地址

地址

想参加开源?

现在项目还处于迭代 3 ,初步阶段。如果想参加开源,加我个人微信即可:fcsboy (非诚勿加)

或者扫码:

从0到1实现VueUI库思路相关推荐

  1. Element 2.6.0 发布,基于 Vue 2.0 的桌面端组件库

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Element 2.6.0 发布了,Element 是一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,提供了配套设 ...

  2. Android6.0权限适配及兼容库的实现

    从6.0 MarshMallow开始,Android支持动态权限管理,即有些权限需要在使用到的时候动态申请,根据用户的选择需要有不同的处理,具体表现可以看下图: 本文并不关心权限适配的原理,原理可以参 ...

  3. muse-ui.css_Muse UI:适用于Vuejs 2.0的Material Design UI库

    muse-ui.css Vuejs 2.0的Material Design UI库 (Material Design UI library for Vuejs 2.0) A Vue 2.0 and M ...

  4. tensorflow 2.10.0安装所需依赖库版本确定方法

    tensorflow 2.10.0安装所需依赖库版本确定方法 1 依赖版本组合 2 系统环境 3 依赖版本确定方法 3.1推理法 3.1.1 TensorFlow依赖范围 3.1.2 显卡驱动支持范围 ...

  5. mysql 向下兼容_前言本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5...

    前言 本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+ ...

  6. Swift 3.0 预告:将 Objc 库转换成更符合 Swift 语法风格的形式

    转自:swiftcafe Swift 3.0 更新越来越临近,这次更新会给我们带来很多实用的内容,比如对 Objc 库的迁移,会更符合 Swift 的语法风格.用过之前版本的 Swift,我们会发现很 ...

  7. VMware vSphere 5.0升级到5.1的思路

    这个两天在测试vSphere 的升级.大概的思路如下: 1.原本是两台实体机,分别安装了ESXi 5.0,vCenter是以虚拟机安装的.升级ESXi可以塞进5.1的CD直接至主机然后升级安装,也可以 ...

  8. PolarSSL 1.2.0 发布,SSL 加密库

    PolarSSL 1.2.0发布了,这是新的产品系列.2012-10-31 上一个版本是2012-05-31的1.1.4 .越来越多的应用已经从只支持OpenSSL到可以支持PolarSSL. Pol ...

  9. SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)

    问题   在创建完成 Source Insight 工程后,我们就可以使用绝大部分功能.但是如果用的多了就会发现,其与我们真正的 IDE(通常我们仅用 Source Insight 编辑代码,实际的编 ...

  10. android AVB2.0(四)libavb库介绍

    本篇android AVB2.0学习总结系统的第四篇,接上篇android AVB2.0(三)Init阶段安全启动流程, 这里介绍一下libavb库的详细实现. 请支持原创,原文链接:https:// ...

最新文章

  1. javaweb web.xml文件详解
  2. mysql中备份和导出的区别_mysql的备份和导出
  3. 基于SPI的数据报过滤原理与实现
  4. java ee监听器编程,java EE开发之Servlet第四课:监听器(Listener)
  5. MySQL的存储过程和函数简单写法
  6. CSS3中display属性的Flex布局
  7. 使用UIActivityIndicatorView 和多线程
  8. 每日算法系列【LeetCode 128】最长连续序列
  9. 太阳影子定位问题研究
  10. 【MAC】手动下载安装docker
  11. Pseudo Inverse 伪逆
  12. 「鹿班智能设计平台」是如何工作的
  13. 思维导图 基础篇(11)应用-文章分析-框架法
  14. mysql 的capi预处理
  15. binutils工具集——ld的用法
  16. 知瓜数据爬取-机构排行榜
  17. Java抽取Office、PDF的四件兵器
  18. matlab 随机数种子
  19. 信息化监理在验收阶段的角色
  20. 国内外计算机视觉的差距在哪里?

热门文章

  1. SQL Server 列存储索引强化
  2. 浅谈 Attention 机制的理解
  3. 欢迎访问我的博客园,希望对你有所帮助
  4. 简介几种负载均衡原理
  5. 查看windows下指定的端口是否开放
  6. ios 访问设备的基本信息
  7. 程序员算法之找出链表的第K个结点
  8. ubuntu 修改IP,网关等
  9. 066 模块的搜索路径
  10. mysql读写分离(springboot+mybatis+mysql)