从0到1实现VueUI库思路
组队
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库思路相关推荐
- Element 2.6.0 发布,基于 Vue 2.0 的桌面端组件库
开发四年只会写业务代码,分布式高并发都不会还做程序员? Element 2.6.0 发布了,Element 是一套为开发者.设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,提供了配套设 ...
- Android6.0权限适配及兼容库的实现
从6.0 MarshMallow开始,Android支持动态权限管理,即有些权限需要在使用到的时候动态申请,根据用户的选择需要有不同的处理,具体表现可以看下图: 本文并不关心权限适配的原理,原理可以参 ...
- 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 ...
- tensorflow 2.10.0安装所需依赖库版本确定方法
tensorflow 2.10.0安装所需依赖库版本确定方法 1 依赖版本组合 2 系统环境 3 依赖版本确定方法 3.1推理法 3.1.1 TensorFlow依赖范围 3.1.2 显卡驱动支持范围 ...
- mysql 向下兼容_前言本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5...
前言 本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+ ...
- Swift 3.0 预告:将 Objc 库转换成更符合 Swift 语法风格的形式
转自:swiftcafe Swift 3.0 更新越来越临近,这次更新会给我们带来很多实用的内容,比如对 Objc 库的迁移,会更符合 Swift 的语法风格.用过之前版本的 Swift,我们会发现很 ...
- VMware vSphere 5.0升级到5.1的思路
这个两天在测试vSphere 的升级.大概的思路如下: 1.原本是两台实体机,分别安装了ESXi 5.0,vCenter是以虚拟机安装的.升级ESXi可以塞进5.1的CD直接至主机然后升级安装,也可以 ...
- PolarSSL 1.2.0 发布,SSL 加密库
PolarSSL 1.2.0发布了,这是新的产品系列.2012-10-31 上一个版本是2012-05-31的1.1.4 .越来越多的应用已经从只支持OpenSSL到可以支持PolarSSL. Pol ...
- SourceInsight 4.0 之四 项目配置(库文件引入、配置宏添加、快捷键修改等)
问题 在创建完成 Source Insight 工程后,我们就可以使用绝大部分功能.但是如果用的多了就会发现,其与我们真正的 IDE(通常我们仅用 Source Insight 编辑代码,实际的编 ...
- android AVB2.0(四)libavb库介绍
本篇android AVB2.0学习总结系统的第四篇,接上篇android AVB2.0(三)Init阶段安全启动流程, 这里介绍一下libavb库的详细实现. 请支持原创,原文链接:https:// ...
最新文章
- javaweb web.xml文件详解
- mysql中备份和导出的区别_mysql的备份和导出
- 基于SPI的数据报过滤原理与实现
- java ee监听器编程,java EE开发之Servlet第四课:监听器(Listener)
- MySQL的存储过程和函数简单写法
- CSS3中display属性的Flex布局
- 使用UIActivityIndicatorView 和多线程
- 每日算法系列【LeetCode 128】最长连续序列
- 太阳影子定位问题研究
- 【MAC】手动下载安装docker
- Pseudo Inverse 伪逆
- 「鹿班智能设计平台」是如何工作的
- 思维导图 基础篇(11)应用-文章分析-框架法
- mysql 的capi预处理
- binutils工具集——ld的用法
- 知瓜数据爬取-机构排行榜
- Java抽取Office、PDF的四件兵器
- matlab 随机数种子
- 信息化监理在验收阶段的角色
- 国内外计算机视觉的差距在哪里?