「时光不负,创造不停,本文正在参加2021年终总结征文大赛」

建设一个温暖的开源社区|2021年终总结

曾经,我了解的开源便是一群不同地域的开发者给开源项目提PR,然后项目的办理员检视并合入PR,然后再没有其他的。那时我并不了解:为什么一群互不相识的网友,会主动利用自己名贵的业余时刻,去给一个不知道的网友做的开源项目奉献代码?

直到我自己做了Vue DevUI开源项目,我才对开源有了更多的知道。

1 星星之火

我叫Kagol,是公司的一名普通开发,在公司有自己的作业要忙,一同我也在担任DevUI组件库的开源运营。

在做这件事之前,我也不知道自己对开源有如此大的热心。

DevUI开源的故事里边说到,DevUI组件库2019年6月就现已在Github开源,当时咱们都没做过开源,想着好酒不怕巷子深(毕竟是通过华为云许多商用事务捶打过的组件库,还获得到德国红点设计奖),怎样着也会有人喜爱吧。

结果就像DevUI开源的故事里说到的:

2019年6月在Github开源之后,Ng DevUI在半年之内都没有太大的动态,虽然咱们每个月都从不中止发布新版别,可是重视咱们的开发者一向不多,star数也半年之内一直没有突破100,其中有很大一部分还是DevUI团队成员自己点的。

不过咱们并没有悲观和抛弃,或许是我比较酷爱共享和写作,2020年3月,领导想让我牵头在开个DevUI团队的技能专栏,好好宣传下DevUI开源。

咱们不期望通过打广告以及其他任何功利性的办法运营DevUI,这不是咱们开源的初衷,咱们期望能触达开发者,让他们主动知道、了解进而运用、了解DevUI。
所以运营的初期,咱们从不发软文,全部都是技能干货,这些文章是DevUI团队一切成员集体的智慧结晶和作业经历,后续咱们仍然会不断地输出DevUI团队的实践和干货内容。

对这段经历感兴趣的掘友,能够看下我去年写的总结:

DevUI | 技能人的2020

从2020年2月26日发布第一篇技能文章以来,我对开源的热心就如烈火燎原之势迅速蔓延开来,截止到现在为止,现已发布了93篇文章。

建设一个温暖的开源社区|2021年终总结

2020年是DevUI开源的元年,由于从这一年开端,社区开发者开端重视到DevUI,在技能圈儿的群里也有人主动聊到DevUI,一些公众号也在转载咱们的文章,咱们的star数也翻了10倍。

这一年我对开源的知道也发生了一些变化,我慢慢感触到社区巨大的能量,以及社区开发者对开源的巨大热心,我也有一股巨大的冲动,想要投入到开源生态中来,参加这群活跃活跃、对技能对日子充满热心的开发者圈子。

2 拥抱开源

2020年底开端,在Ng DevUI开源组件库之外,我又做了好几个开源项目。

2020年11月3日,我做了一个Calendar Graph项目,能够快速生成一个Github提交图,支撑组件办法运用,支撑自定义日期区间、显示文本、提交次数,,并供给了灵敏的主题定制办法以及提交日程打印等有用功用。这个开源项目持续保护了2个半月,原本还想持续丰富,支撑可视化操作,不过这个项目似乎并不是一个通用场景,没人用也没有人参加,无法只能抛弃,总共收成了6颗Star。

在做Calendar Graph项目时,我发现常常需求处理和转换色彩、以及处理数组,这些是通用办法,但我又不想引进Lodash这些比较重的三方依靠库,所以又创建了一个KTools的东西库。这个库是从Calendar Graph项目孵化出来的,Calendar Graph项目的阻滞会导致KTools也暂时没有事务场景,不过这个库其实是能够做成一个通用东西库的,也欢迎咱们多供给些场景或许活跃参加进来,打造一个轻量的却十分有用的东西库。KTools现在总共收成了7个Star。

2020年11月底,一位朋友找到我,说想做一个功用,能够一键将Excel中的英文翻译成中文,这个Excel中的数据量或许到达10万级别。之前由于数据量小,他都是自己手动一条一条仿制出来,手动用翻译软件翻译的,跟着数据量的增长,手动翻译会十分低效,所以期望我能帮帮忙。所以我又做了一个Excel Translate的开源项目,这是一个Nodejs项目,会读取一个Excel文件,将单元格中的英文提取出来,调用Google Translate API将其翻译成中文,然后生成一个和英文Excel格局相同的中文Excel文档。这个由于也是特定场景的项目,并没有持续保护,现在总共收成了4颗Star。

这些开源项目虽然都没有火起来,不过也在我心中埋下了一颗开源的种子,也让我知道到要做一个受欢迎的成功的开源开源项目:

  1. 开源项目需求有运用场景和实践的用户,这是十分要害的,没有人用,这个项目就没有价值,没有价值,也就不会有人一同来参加奉献,自己也没有持续的动力保护下去。所以做开源项目,价值和用户是第一位的。
  2. 其次便是技能栈,假如你想做一个受欢迎的开源项目,让社区的开发者都参加进来一同奉献,你就需求挑选受咱们喜爱的技能栈,比方前端项目,假如你挑选用jQuery,我想是没有什么人乐意参加进来的。
  3. 还有便是持续的活跃度,像vue3/vite这些开源项目,简直每天都在更新,假如一个开源项目半年一年乃至更久都不更新,那必定不会有人乐意运用和参加奉献的。

我对开源项目的了解也是逐步提高的,假如咱们有其他主意,欢迎在谈论区谈论。

3 Vue DevUI

2021年1月9日,我又创建了一个Vue DevUI的开源项目,这是一个根据DevUI Design设计体系的 Vue3组件库,运用最新的Vite + Vue3 + TypeScript + JSX建立,包括60多个简练、易用、灵敏的组件。

这个开源项目运营得比较成功,因而想给咱们共享下Vue DevUI开源项目从0到1的整个开展历程。

3.1 草创

我先是运用Vite创建了一个根底工程,然后照着DevUI官网把开端的文档体系建立起来,添加了CommitLint标准了根本的Git提交信息,在DevUI官方沟通群里发了一个内部招募:

根本的组件库开发流程和组件文档体系完结,期望咱们能一同参加进来开发一个根据Vue3版别的DevUI组件库,运用最新的Vite+Vue3+TypeScript技能栈。

很快就有小伙伴响应,咱们的老朋友Zcating同学在2021年2月22日提交了第一个TSX办法编写的Button组件,这也是Vue DevUI组件库的第一个组件。

第二天to0simple同学也参加奉献者队伍,将shims.d.ts文件移除,由于Vue DevUI组件库的一切组件都是运用TSX的办法编写,所认为.vue文件准备的shims.d.ts类型声明文件也就没必要了。

当时Vue DevUI的文档体系还是仿照Ng DevUI组件库手写的,有许多不完善的当地,后续to0simple同学完善了用来展示和高亮组件demo代码的CodeBoxHighlight两个组件。

3月6日,flxy1028同学参加进来,并添加了Tabs组件。

从3月10日开端,to0simple同学在不到一周时刻内奉献了Panel/Alert/Avatar三个组件。

原本Vue DevUI其实现已看到了期望的曙光,不过由于我当时刚接了ProjectMan事务的担子(这段经历在烧不死的鸟是凤凰|2021年中总结中有做总结,感兴趣的话能够去看看),没有时刻保护开源项目,或许咱们没方向没信心,慢慢地就没人持续奉献了。

3.2 重启

直到2021年5月份,我开端稍微能从ProjectMan事务里喘口气,决议重启Vue DevUI项目。

所以在劳动节假日第一天,正式在社区给Vue DevUI开源组件库招募奉献者:

让咱们一同建造 Vue DevUI 项目吧!

其实当时我是十分没有底的,内部招募都只招募到3位奉献者,外部开发者又不了解DevUI,又不知道你Kagol,为什么要参加奉献呢?

不出预料,招募文章发完,并没有什么人响应。

直到2021年6月,总算有一位社区的小伙伴开端强势奉献,先是完善了单元测试环境和eslint/stylelint/ls-lint代码标准,然后简直每周奉献一个新的组件,从6月27日奉献Radio单选框组件开端,到7月24日奉献Input输入框组件,总共奉献了5个组件。

这给了我巨大的信心!

而这时我刚好也从ProjectMan事务脱身出来,我想是时分重振Vue DevUI项目啦!

所以在2021年8月3日,我在同步了Vue DevUI的最新进展:

Vue DevUI 现已有10个组件成员啦~

3.3 迅速生长

这篇文章的作用大大出乎我的预料,文章刚发完就有很多小伙伴加小帮手的微信,以至于小帮手的微信都加不上人,提示:

建设一个温暖的开源社区|2021年终总结

文章发完的第二天就有新的PR提交,便是现在DevUI开源安排的PMC成员Lucky,Lucky同学现在仍然Vue DevUI最活跃活跃的奉献者。

  • 3天之内就有超越100+社区的小伙伴通过添加小帮手微信联系到咱们,并参加到咱们的核心开发群
  • 5天之内一切61个组件田都被招领完,共有40+小伙伴成为Vue DevUI组件库田主
  • 10天之内咱们就给Vue DevUI新添了11名新组件成员

到现在为止,Vue DevUI现已有77位奉献者,61个组件,通过了359个PR、1598次提交。

3.4 仅仅开端

Vue DevUI近期也在谋划发布1.0版别,信任很快(当然是在保证质量的前提下)就能与咱们见面,尽情期待!

Vue DevUI并不是DevUI团队做开源的完毕,而仅仅一个开端,后续咱们也会不断完善DevUI的开源生态,这会是一个绵长的进程,但咱们不会抛弃。

欢迎咱们一同参加到DevUI的开源生态建造中!(添加小帮手微信:devui-official

建设一个温暖的开源社区|2021年终总结

4 开源感悟

由于有很多社区的小伙伴参加到Vue DevUI开源组件库的建造中来,我也有时机与优异的开发者们有更多的沟通,这也加深了我对开源的了解。

4.1 什么是开源奉献

首先是对开源奉献有了更深的了解。

曾经我认为开源奉献便是给开源项目提PR、编写代码。

其实这不完全正确。

一个开源项目和一个普通的公司项目并没有太多的不同,都是为了用户供给某种价值,或许是处理用户的痛点问题、也或许是提高用户做某些作业的效率。

一个开源项目或许包括许多组成部分,初始或许只有一个根底的结构,比方Vue DevUI项目就包括:

  1. 一个根据vite的根底工程,这个根底结构工程会集成vue3+TypeScript+JSX+单元测试+各种Lint东西
  2. 从这个根底结构出发,包括一个组件库,这是对外供给的最核心的部分
  3. 一个用于演示组件库功用的文档体系
  4. 一个CLI东西,用来做一些主动化的作业,比方主动生成组件模板、构建组件库产品等

从以上组成部分能够看出,奉献或许包括:

  1. 编写一个新组件,成为这个组件的田主
  2. 每个组件需求配套的中英文文档
  3. 保证组件质量的单元测试
  4. 工程化配套东西的完善(需求深度参加进来才干辨认到咱们需求什么东西,然后不断完善)
  5. 组件会出bug,文档会出bug,修复这些缺点也是一种奉献
  6. 再持续推演,发现组件或文档的bug,随手提个issue,也是一种奉献
  7. 组件的第一个版别纷歧定是最完美的,它的api、它的源码或许需求完善和重构,对组件的优化也是一种奉献
  8. 当有社区开发者给开源项目提了一个issue,没有挑选一个标签,你发现了,随手给issue加了个标签,这样其他刚参加这个开源项目的开发者看到标签,能一眼就知道这个issue,自己是否感兴趣,有没有才干处理
  9. 假如有人提了一个pr,看到pr的标题,你觉得他做的这个功用你很感兴趣,想了解下他人是怎样实现的,这时就能够去检视代码(检视代码的进程你能够了解成一个与pr作者沟通的时机,假如你了解了他的代码,觉得写的很妙,能够在谈论里给他写一句鼓励的话;假如你觉得写的欠好,能够友善地谈论一句能够优化的当地,pr作者必定会感谢你的友善行为,并给你一个友善的回馈;假如你没看懂他写的代码,你也能够活跃地问询不了解的当地,与pr作者进行友善的探讨,在这个互动和谈论的进程中,信任你必定能有所收成),检视代码也是一种奉献,或许一行代码也没写
  10. 跟着开源项目的不断演进,会有更多的小伙伴参加进来,刚进来的小伙伴对这个社区是很生疏的,比方vue devui有一个微信群,新成员参加都会参加到群里,这时你给新成员打个招呼,欢迎下新参加的小伙伴,我觉得这也是对开源项目的一种奉献,由于你在无形之中让这个社区变得更温暖
  11. 持续推演,开源社区里边每个成员的布景、经历、才干都纷歧样,刚参加的小伙伴或许会有许多疑问,并在群里求助,你发现他提出的问题,你正好知道,并给出了自己的思路,让提问者豁然开朗,更快地找到问题的答案,并有所收成,这也是一种奉献
  12. 由于常常遇到相同的问题,你辨认到了,将这些共性的问题整理成文档,放到开源项目的wiki里,后来者看到了能快速开端,这也是一种奉献
  13. 假如持续推演,我想或许会有更多方式的奉献,每一个让社区和开源项目变得更好的行为、语言、文字等都是一种奉献

而你与开源社区的每一次互动,都会让你对社区有更深化的了解,进而也让自己有所生长,或许仅仅一句友善的话、或许一个中肯的主张,都能让咱们觉得温暖,我想这或许是开源项目与公司项目的不同。

4.2 奉献者

其次便是对奉献者的了解。

曾经我觉得必定要大牛才干参加开源奉献,成为开源奉献者,其实并不是的,恰恰相反,正是许多普普通通的开发者们一同参加开源,才让整个开源生态不断地昌盛强大。

我跟DevUI的许多田主都有过沟通,他们:

  1. 有些是学校的学生,想通过参加开源项目堆集一些实战经历,为今后找作业做准备
  2. 有些是自己在建立公司的组件库,想通过深度参加开源组件库,罗致一些创意
  3. 还有些是第一次接触开源,想尝试下开源奉献是什么感觉
  4. 也有些是正在找作业的朋友,他们想通过参加开源项目给自己的简历添加一些亮点
  5. 有些观看了我和村长的B站直播,有点跃跃欲试,想尝试一把开源的滋味
  6. 有些是朋友搭档引荐过来的:“XD,DevUI这个开源项目不错,要不要一同来试试?”
  7. 也有些是想学习最新的Vue3+Vite+TypeScript技能,觉得光学习太枯燥,想通过一个开源项目来实战一把

虽然每一位田主参加Vue DevUI开源项目的初衷或许都纷歧样,但有相同是相同的,便是参加开源的田主都是十分酷爱开源、酷爱共享、酷爱技能、酷爱日子的一群人。

通过与他们沟通,检视他们的代码,我能清楚得感触到这一点。

这也让我自己的心态有了一些改变,曾经觉得做开源便是发布一个开源项目到Github或Gitee,就不管了,隔三差五地想到就去仓库看下有没有Issue/PR,有人来奉献就检视和合入下代码。

跟着参加Vue DevUI的奉献者越来越多,我慢慢情不自禁了一种责任感和使命感:

咱们都这样尽力地参加奉献,不管是开发组件、完善文档、补充单元测试,还是提交Issue、供给运用上的反馈定见,我不能孤负咱们的尽力和热心,必定要把这个组件库做好,纷歧定是业界第一,但必定是通过我自己这一关的。

而且我会去想办法让整个社区运作和办理愈加高效,防止田主之间的重复作业,而且不断地去完善标准文档、Wiki文档,让新参加的成员能够快速融入DevUI,前期只需有新成员入群,我都会让小帮手欢迎下咱们。

每一个issue我都会仔细阅览,仔细给issue打tag,有些简单的就标记下good-first-issue,这样新来的人就知道这个使命不会太难,是我能够招领的使命,有些承认要做的我会打上welcome-contribution的tag,还不承认的会打上need-more-info等等。

每一个PR我都会收到微信公众号的提示,我一般看到都会第一时刻处理,简直每一行代码都会仔细检视:

  1. 对于写得好的,我会谈论一句鼓励的话
  2. 还有优化空间的,我也会友善地谈论,哪里写得欠好,或许有哪些改善的方向
  3. 有些我看不懂的当地,或许担心了解错误的当地,我也会像PR的作者咨询和承认

我把每一次代码检视都当成与田主们沟通的时机,许多时刻我觉得这是一种双赢的作业,你在协助他人的一同,往往自己也能学到许多,至少我是这样的。

所以也欢迎咱们一同参加代码检视,你必定会有收成的!

4.3 开源社区

我觉得开源项目和公司项目最大的不同便是:开源项目是在一个看不见的社区中演进的。

公司项目咱们都在同一个公司,团队里每个人都有自己的工位,搭档之间随时能够面对面沟通,对彼此也十分了解。

但开源项目纷歧样,参加开源项目的奉献者或许在地理位置上散布十分广,而且极具多样性。

曾经我没有意识到这一点,我觉得参加开源项目的人之间互不相识,因而是没有沟通的,咱们在一个仓库里提交代码,提交完办理员一合入就完事了。

在做Vue DevUI的进程中,我逐步感触到社区的存在。

咱们参加开源项目更像是一同在给一个果园的果树洒水,参加了这个开源项目的人都是归于这个果园的。不同之处在于有些田主担任这一片果树,另一些田主担任那一片果树,有时我没时刻,你或许会给我的果树浇洒水,我同样也会协助你,这样咱们一同保护一片果园。果树结了果实,咱们也是一同收成和共享的。

新参加的成员,一开端对社区是生疏的,他其实需求一种归属感,比方他不知道如何开端奉献,假如有早就参加的小伙伴告知指导他怎样做,或许告知他应该看什么文档,这时他就会感觉和这个社区产生了联系,然后形成一种归属感,觉得我是归于这个社区的。

就像咱们来到一家新公司、进入一个新学校,假如有一个导师或学长给你介绍公司或学校的状况,我想你必定会很高兴,假如没有一个人和你说话和沟通,你必定会觉得没有归属感,觉得自己不归于这里。

所以一有新成员入群,或许有小伙伴第一次提PR,我都会欢迎他、给他点个赞鼓励下,让他感觉这个社区是有温度的社区,我也鼓励其他田主也这么做,让新人感觉到是受欢迎的,这样整个生态才会愈加昌盛和强大。

5 Ng DevUI 1000 Star

Ng DevUI在2019年6月份就在Github开源了,通过1年多的时刻,总算在2021年8月30日到达了1000 Star,十分不容易!

喜大普奔!DevUI 1000 star 啦!

咱们当时还专门定制了一个蛋糕用来庆祝和纪念这个里程碑时刻。

建设一个温暖的开源社区|2021年终总结

社区的小伙伴给咱们提了许多十分名贵的主张和PR,这里特别感谢xiejay同学,他给咱们Ng DevUI开源组件库提了许多建造性的定见和PR,因而也被咱们引荐成为DevUI开源安排的PMC成员。

xiejay同学也是咱们的React DevUI项目的发起人,现在React DevUI现已有10+个组件啦!欢迎咱们一同参加共建!

6 Ng DevUI Admin 2.0

Ng DevUI Admin也是应社区需求诞生的一个开源项目,2019年就有社区的小伙伴提出能不能出一个Admin便利快速建立后台体系,通过半年多的内部孵化,总算在2021年4月28日与咱们见面,发布了1.0版别。

号外号外!DevUI Admin V1.0 发布啦!

这个项目也是咱们的重点项目,1.0发布不到半年时刻,咱们又发布了DevUI Admin 2.0,将区块Admin中抽离了出来,而且推出了一套对应的Angular CLI去协助开发者运用咱们的区块,能够更快更便利地建立一个根据DevUI Admin的后台办理体系。

DevUI Admin 2.0 重磅发布!

欢迎咱们运用DevUI Admin,并给咱们反馈,咱们也会持续完善的!

7 DevUI田主的开源故事

TinsFox:开源贵在坚持、贵在追求完美。

  • 聊聊开源的那些事

duqingyu:与其插肩而过,不如拥抱开源。

  • 我与开源不再擦肩而过!【DevUI】

CatsAndMice:让开源成为一种习惯,让提issue & PR成为一种习惯。

  • 开源初衷

Bob:不是等你有才干再去干事,而是在干事中获得才干。

  • 我与DevUI的开源故事

AlanLee:尽力提高自己,比仰视他人更有意义。

  • 参加Vue DevUI开源项目的小故事

Wailen:伸手摘星,即便一无所得,也不至于满手污泥。

  • 参加华为Devui开源组件库的感触

MICD:许多时分不是由于你看到期望了才要尽力,而是你尽力了才会有相应的报答。

  • 我与vue-Devui开源组件库的故事

无声

  • 记录我的第一个开源组件

iel

  • 手把手带你开发一个脚手架(上)
  • 我为 Devui 开发的脚手架

JS老狗

  • 我与DevUI专栏
  • DevUI中VUE的TSX函数式组件实践
  • 再聊Vue的TSX函数式组件

村长

  • 跟村长教师做【Vue DevUI 开源攻略】直播一个月的感触
  • Vue DevUI开源攻略系列直播

8 B站直播

B站直播的经历在之前的文章中现已总结过了,不再赘述。

跟村长教师做【Vue DevUI 开源攻略】直播一个月的感触

9 回馈

为了回馈田主们的辛勤尽力,咱们在2021年11月份策划了一次回馈活动,给DevUI的奉献者们制作了专属的DevUI优异奉献者奖杯、DevUI定制抱枕和笔记本。

感兴趣能够阅览咱们的《DevUI开源故事》

建设一个温暖的开源社区|2021年终总结

建设一个温暖的开源社区|2021年终总结

建设一个温暖的开源社区|2021年终总结

10 DevUI 招募奉献者啦

现在Vue DevUI和Ng DevUI都在很多招募社区奉献者,欢迎参加咱们!

一同学习最新的Vue3+Vite+TypeScript+JSX技能,一同结识和你相同酷爱学习、酷爱开源的社区小伙伴,一同打造一个优异的Vue3组件库产品,一同建造一个开放、友好、一起生长的开源社区生态!

添加小帮手微信:devui-official,拉你进DevUI技能沟通群。

欢迎重视:DevUI开源的故事,并参加到DevUI开源生态的建造中来!