怎么做开源项目

小编 668

做开源项目的基本流程主要有四个步骤:1.寻找资源或思路;2.组建开发团队;3.进行开发和测试;4.版本规划和发布版本。寻找资源或思路是开源项目的名列前茅步,也是关键的一步,如果实在没有很好的选择,也可以对其它一些开源项目进行扩展和优化。

1.寻找资源或思路

首先需要知道自己想要做什么,也就是你想把这个开源项目做得什么样,这样才能让别人知道你做这个开源项目的想法和目的。

很多开源项目包括编程语言都诞生于解决特定问题的过程中,比如Java诞生于智能硬件平台的研发过程中。所以你日常遇到的一些问题和你对这些问题的解决方案,也可以成为你创建开源项目的一个思路。这种情况下需要更多的创造性,同时还要规避一些法律风险。

2.组建开发团队

通过寻找资源或思路,我们已经基本了解了自己想要做什么,然后也知道了自己能够做成什么样,那接下来就是组建团队了。

在组建团队这一步,就需要和别人讨论你的开源项目了,然后和别人一起把这个开源项目做成,当然这里你会面临一个问题就是谁来写这个软件的问题,如果是你写代码开发程序的话可能有一个人也没有时间参与到这个环节里面去,所以这个时候较好的方法就是找一些技术高手来帮忙把这个程序做出来。

3.进行开发和测试

组建好团队,接下来就是开发了。最开始只有你自己贡献全部的代码,而且你可能需要做得更多。代码规范,易于阅读这些都是必不可少的。尤其是在多人远程协作的情况下,代码审阅,定期重构也非常有必要。

开发尽量遵循Git工作流,ISSUE功能要充分利用起来,用户的咨询建议和BUG反馈尽量通过ISSUE来处理。此外,作为开源项目一定要把好质量关,起码的单元测试要做,这样其它开发者会更加信任你的项目。

4.版本规划和发布版本

对于开源项目来说,版本规划和发布版本也不应该是一件随意的事情。毕竟错误的版本可能会给用户带来灾难性的问题。不合理的规划,也可能会将项目带入沟渠。版本规划我们通过收集反馈来进行规划,如Magicodes.IE就通过Issue收集用户反馈、讨论以推出新的版本。

有关发布版本,源代码国外肯定是放在Github上,国内一般可以选择Gitee(码云)。根据你的喜好选择一个主库,两者定期同步。另外要明确开发分支和正式分支,较好默认显示最近的正式版本分支。

这里有个问题值得注意:如何让别人能够看到你发布的代码呢?这里说一个方法:可以把一些代码上传到自己所在城市(也就是注册用户所在地方)当地的一些知名网站(比如博客、贴吧、论坛等社区网站)去发表一下代码(当然这些网站有可能很大都不是专门给大家来写文章和发帖去写代码的)。

延伸阅读

适合初学者学习的小型开源项目

1.SeaJS

Sea.js是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。Sea.js 追求简单、自然的代码书写和组织方式,代码非常精简。

2.Koa

Koa 是下一代的Node.js 的Web 框架。由Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的Web 应用和API 的开发基础。

3.pssh

pssh 提供了并行版本的OpenSSH 工具,特别适合用来控制有大量机器需要连接的情况,包括并行版本的ssh、scp、rsync 和kill 命令。该项目是Python写的,代码清晰而简短,数据结构定义的很清楚,看了之后你会称赞的。

4.grep-at-point

在写代码的时候,有时候会需要查看某个函数/类/变量在哪些地方被使用过。该项目用emacs lisp语言写成,可实现在项目目录下,所有指定扩展名的文件中,搜索当前光标所在的单词。

5.compile-make

该项目可实现emacs中一键编译的需求。在项目目录下寻找Makefile文件,并执行make命令进行编译。语言:emacs lisp;代码行数:19。

6.sigslot

很精简的signal slot的实现,跨平台。这个源码有2000多行,但是一大半是为了模板适配不同个数的参数的代码,干货不足1000行。

Gtalk源码剖析之:sigslot介绍

7.UCOS

uC/OS II(Micro Control Operation System Two)是一个可以基于ROM 运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。

8.SQLite

SQLite是遵守ACID的关联式数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。SQLite亦可以作为桌面数据库使用。

9.thttpd

thttpd 是一个小型的、简单的、可移植的、快速以及安全的HTTP服务器。

10.Boa Webserver

boa是一个小型的web服务器,可以用于多种平台,在嵌入式中比较常见。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部