13

Flutter Dojo设计之道——利用Github打造完善的开源项目

 3 years ago
source link: https://blog.csdn.net/eclipsexys/article/details/107805041
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Flutter Dojo从最开始就准备打造成一个专业的GitHub开源项目。

一个好的GitHub开源项目,不仅仅是一个开发者专业技术的体现,更是一个自我展示的平台,专业的GitHub开源项目,可以吸引更多的开发者参与到项目的协同开发中来,让项目能够健康持续的发展。

下面我将根据Flutter Dojo的开发经历,来讲下如何借助GitHub打造完善的开源项目。

个性化个人主页

GitHub主页给了开发者一个公开的个人展示界面,不用搭建服务器,你就可以免费获得一个属于自己的展示页面,不过这也是GitHub的一个彩蛋功能,首先,你需要创建一个新的repository,并将其命名为你的用户名,如图所示。

format,png

这时候你就会发现,同名的repository是一个GitHub彩蛋,你只需要在这个同名的Repo中的README.md中创建自己的主页即可,例如我的主页,如图所示。

format,png

这个页面实际上就是通过README.md方式来进行展示的,实际上功能比较有限,但是通过

github-readme-stats

这个项目,也可以给简单的md界面创建一些有意思的东西,例如我的界面中的GitHub Stats和项目卡片,使用方法在这个Repo中都写的很清楚了,大家可以根据自己的需要,搭建属于自己的GitHub个人主页。

写好README.md

项目中的README.md文件,是GitHub项目主页展示的页面文件,一个好的README文件,是一个好的开源项目的基础,README的格式并没有什么要求,但和写作文一样,我觉得一个好的README文件,应该包含下面几个部分。

  • 项目的开发经历,初衷。当然这部分不一定需要,只是为了给开发者介绍项目的背景,让大家知道为什么会有这个项目。

  • 项目的功能、特色。这点很重要,GitHub上的开源项目多如牛毛,开发者很看一眼项目就知道这个项目是干什么的,所以,介绍项目的特色、功能,是让其他开发者对你的项目有一个第一印象。

  • 项目的接入方式、使用方式。这是让开发者能够使用你的开源项目的核心,良好的接入文档,可以提升开发者对项目的好感度。

  • 图。一图胜千言,开源项目一定要有一些设计图,例如项目的截图、功能的展示图、流程图、数据流转图等等。

  • CHANGELOG。CHANGELOG是开发者维护版本的重要工具,好的版本记录,可以让使用者了解不同版本之间的区别,了解项目的开发进程。

Flutter Dojo的README虽然不够完美,但基本涵盖了我上面提到的这些点,供大家参考。

Flutter Dojo的设计之道

Github shields

shields是在README中展示的一些小图标,在很多的开源项目中都有使用,例如Dojo中的shields。

format,png

这些shields的生成,实际上都是一些svg图片,下面这个网站就是shields的创建网站。

shields

借助这个网站,可以非常轻松的创建这些有意思的shields,例如输入Flutter Dojo的项目地址,它会自动生成建议的shields,如图所示。

format,png

把这些链接直接贴到README中即可展示。这个网站的功能非常强大,可以定义出很多的shields,感兴趣的开发者可以在网站上搭配出自己的shields。

开源协议的选择

开源协议的选择,是开源项目的一个重要部分,在国内,可能大家对开源协议的理解还不是很深入,但是在国外,开源协议的约束是非常重的,开发者会自发的遵守源项目的开源协议,这里借用阮一峰的一张图,来简单的理解下开源协议的种类。

format,png

使用Github Action打造自动化CI

GitHub Action是一个非常实用的功能,在我们企业级的项目中,CI是一个非常重要的部分,它包含了代码的审核、提交、自动编译等流程的自动化,而GitHub Action正是这样一个简单的CI功能。

format,png

在Flutter Dojo中,正是借助了这一功能来实现在提交Tag后自动编译最新的Apk包的功能。

format,png

创建项目的Action非常简单,根据GitHub页面上的提示一步步完成即可,这里简单的介绍下Flutter Dojo的Actions模板。

有了GitHub Action,Flutter Dojo每次发版的时候,只需要push一个tag,Action就会自动触发,并编译出相应的Apk。

format,png

根据官方提供的模板,可以非常轻松的完成CI脚本的配置,基本上都是插件化开发,通过uses关键字引用相关功能的Action插件,就可以完成相应的功能。

而且,GitHub还提供了很多现成脚本的市场,可以让绝大部分的项目通过搭积木的方式快速搭建自己的脚本代码。

官方marketplace

第三方awesome-actions

Flutter Dojo借助GitHub,实现了一个比较完整的开发流程,除了上面提到的这些部分,Dojo还创建了Wiki和issue模板,Wiki可以管理更多的项目说明文档,issue模板,则为使用者反馈问题提供了便利,同时减少了开发者与反馈者的沟通成本。

format,png

当然,Wiki还在编写之中,所以文档还在丰富的过程中,基本会以每周一篇的速度,将Flutter Dojo进行一次彻底的分析。

format,png

反馈者可以选择不同的issue模板,并在该模板中了解到开发者所需要的信息,这样可以完善issue并提高效率。

format,png

经过上面的这些打造,Flutter Dojo已经算是一个成熟的GitHub开源项目了,希望它早日能学会自己修bug。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK