只接受发布货源信息,不可发布违法信息,一旦发现永久封号,欢迎向我们举报!
1064879863
16货源网 > 餐饮行业新闻资讯 > 软件开发 >  开源软件的开发是如何进行的?


开源软件的开发是如何进行的?

发布时间:2019-05-24 06:56:14  来源:网友自行发布(如侵权请联系本站立刻删除)  浏览:   【】【】【
爪机操作,我先简单说说,改天再编辑。典型的开源软件通常是由一个人开始创作的,所有的规划跟思路都在一个人的脑海中,当这个软件做到差不多能用的时候,换句话说就是能推出 0.1 版本时,通常会在一些公开场合
开源软件的开发是如何进行的?爪机操作,我先简单说说,改天再编辑。

典型的开源软件通常是由一个人开始创作的,所有的规划跟思路都在一个人的脑海中,当这个软件做到差不多能用的时候,换句话说就是能推出 0.1 版本时,通常会在一些公开场合发布之。

如果这个软件在当前这个状态下非常吸引人,那么这个时候就可能会有感兴趣的用户,用户之间会有传播,有了足够多的用户,就必然会有一部分具有开发能力的用户,他们可能从改进某个功能或者解决某个 bug 开始,慢慢走进或者融入这个开发团队。——而这个时候,这个软件相关的团队和社区就开始建立与壮大了。

当然更多的时候,很多开源软件是没有什么人问津,那么这个项目仍然保持单人项目状态,或者某些技术门槛较高的开源软件,虽然有很多人关注和使用,能加入开发的却不多。

下面来回答一些问题:

怎么分配任务。开源软件不存在分配任务一说,参与者凭的是兴趣跟信念以及自己的需求。通常来说,一个参与者)可能会根据自己的兴趣去进行修改,或者根据自己的需求,当一个参与者对某个领域或者模块特别熟悉时,可能会被安排负责解决某个模块中报告的 bug,仅此而已,所以通常 bug 可能被分配,但功能很少被分配,全凭自己的兴趣。

如果你是项目发起人,要认识到其他开发者是来满足开发者自己需要的,而不是来帮你做事的,他们对你没有义务。这种需求有各种层次,例如社会尊重需求跟自我实现需求属于较高层次,但最基本的可能只是因为他们对某个环节感兴趣以及需要某个功能被改进为符合自己需求,因而,功能性任务一般是由每个开发者自发产生,而非被分派。

再来说说沟通,通常来说,常用的沟通方式是邮件列表,当然,偶尔也会有约定时间开irc会议的做法,如果所有开发者都是中国人,也有喜欢用qq群交流的,但对于多数的跨国项目,邮件列表是标准沟通方式,而修改日志跟问题跟踪系统往往都会跟邮件列表形成某种联动,有非常完备全面的体系使得邮件列表被高效的用于开发。

怎么加入? 其实与其说加入,不如说是融入,当你认为自己属于一个项目,你就属于一个项目了,但你如果希望使自己融入一个团队,就得熟悉其运作的方式,你关注一个项目,就可以帮一个项目提交新功能或者解决bug,经常提patch,质量受到管理者的认可,就可以申请版本管理库的提交权限,此后就可以直接提交,大体上是如此。 版本控制工具就是解决多人协作开发的,像svn,git。
你可以checkout,clone,fork一个项目,自己做一些修改,然后commit,会有人审核,提交的多了,就有可能把你纳入开发组,甚至核心开发组。
另外,大的开源组织搞的开源软件,背后都是有大公司支持的。国外 apache有ibm和oracle,国内这两年阿里系也有好多开源软件。

git/svn+bugzilla+irc+maillistgit等分布式版本控制系统,合作开发git管理,一般用Github
founder建立项目,其他人可以fork,修改代码后提个Pull Request,review没问题后,merge到master分支中


以上我是开发的开源即时通讯flamingo的部分截图。

我开发flamingo是这样的:

https://www.zhihu.com/question/27803683/answer/394343240

关于这款软件的技术,可以关注我的微信公众号『easyserverdev』阅读相关文章了解细节。

开源作品大部分是个人作品,个人为了解决某个痛点问题,发布了自己的开源项目。开源的妙用在于,如果你的项目真的能解决某个痛点,那么即使你发布的第一个版本很简陋,大家也会帮你完善的。


开源要注意代码格式的规范,比如是一个JavaScript项目的话,提交的代码都要通过ESLint的检验,这样保证了代码的风格统一。


开源要注意Code Review,别人提PR,不能无脑地合并进去。


开源要注意代码测试,不然随着你项目代码越来越多,那么就会造成代码越来越乱,质量越来越低,最好的方式是加入持续集成。


沟通方面,可以使用开发者的邮箱或者直接在issue中交流(gitter/slack/微信/QQ/钉钉)。


至于如何加入到开源项目中去,其实我理解有两个途径:


第一:你自己在使用的项目,发现了一些bug或者可以改进的地方,然后你fork项目,进行编码,然后提PR,如果真的解决了问题,那么开源项目的维护者会合并你的代码的。


第二:可以去github trending看自己感兴趣的项目,能上trending的项目,一般来说都是不错的项目,这些项目都是新项目,比较简陋,你看代码也比较容易看懂,然后可以做的改进其实非常多。


开源的好处:

  1. 可以和全世界的开发者交流;
  2. 因为你的代码可能被所有人看到,所以你会本能地提升你的代码质量、设计质量、文档质量等;
  3. 大家给你的项目(或者你参与的项目)提的各种issue,能让你惊叹:“我去,竟然还能这样用,我自己都没有想到”;
  4. 提的issue你自己处理不了,别人帮忙处理了,也能让你惊叹:“我去,还能这样解决这个问题?我Google了三天都没有找到解决方案。高!实在是高!”;
  5. 让你的简历上有一个金光闪闪的亮点,甚至能得到一份肉身翻墙的机会;

以上

欢迎使用和关注我的项目 前端性能统计分析框架 - pod4g/hiper

责任编辑:
热门阅读排行
© 16货源网 1064879863