Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

开源入门指南 #27

Closed
2jojo opened this issue Sep 1, 2021 · 1 comment
Closed

开源入门指南 #27

2jojo opened this issue Sep 1, 2021 · 1 comment

Comments

@2jojo
Copy link
Contributor

2jojo commented Sep 1, 2021

你在考虑开始参与开源?恭喜!世界赞赏你的贡献。

"开源"是什么

当一个项目被开源,这意味着任何人都可以出于任何目的查看,使用,修改和分发你的项目。 这些权限通过开源许可强制实施。开源是强大的,因为它降低了事物被采纳的障碍,允许想法迅速传播。

想象你的朋友组织了一场聚餐,而你去他家厨房做了一道拿手的独家菜。

  • 每个人都尝到了菜(使用)
  • 菜的味道棒极了!大家请你分享它的食谱(浏览
  • 一个叫朋友是个厨师,他建议加一种蘑菇的话口感会更好(修改
  • 一个叫朋友想学怎么做这种菜,下周她家晚餐也想做这道菜,你还被邀请去她家晚餐(发布

相比之下,一个闭源过程就像去一家餐厅点菜,点了一个菜。

  • 你必须支付它定的价格,吃不起的人就不能吃(限制使用)
  • 餐厅恐怕不会给你菜的食谱,也不会让你随意改变菜谱的内容(限制浏览)(限制修改
  • 如果你复制了他们的保密食谱以你自己的名义出售,餐厅可能对你采取法律措施。(限制发布

闭源的菜建立交易关系、商业关系;开源的菜建立朋友关系、社区和社群关系、乃至与社会公众的关系。

人们为什么把他们的作品开源?

我从开源使用和协作中获得的最有价值的经验之一,就是在我面临许多与其他开发人员相同问题的过程中所建立的联系。 — @kentcdodds, "参与开源对我来说太棒了"

个人或组织为何想要开源一个项目,有各种各样的的原因,例如:

  • 协作: 开源项目可以接受世界各地人们的修改。 例如 Exercism 就是一个拥有350多个贡献者的练习平台。

  • 采用、修改、重建: 任何人几乎可以出于任何目的使用开源项目。人们甚至可以使用它来构建其他东西。例如,WordPress 就是派生自一个名为 b2 的现有项目。

  • 透明度: 任何人都可以检查开源项目是否有错误或不一致。 透明度对保加利亚美国等政府、银行或医疗保健等受监管行业以及 Let's Encrypt 等安全软件都很重要。

开源并不仅仅限于软件。您可以开源任何事物,从数据集到书本。 查看 GitHub Explore 开找找有什么是你可以开源的。

开源是指"免费"吗?

开源最大的吸引之一是它不花钱。 但是,"免费"只是开源的总体价值的一个副产品。因为开源许可证要求任何人可以几乎出于任何目使用,修改和共享您的项目,项目本身往往是免费的。 如果该项目花钱使用,任何人也都可以合法地复制和使用免费版本。因此,大多数开源项目是免费的,但"免费"不是开源定义的一部分。 有些方法可以通过双重许可或有限功能间接地为开源项目收费,同时仍然遵守开源的官方定义。

发起自己的开源项目
无论结果如何,启动您自己的项目来了解开源的工作原理是一个好方法。如果你从来没有创建过一个项目,你可能会担心人们会说什么,或者是否有人会注意到。 如果这听起来像你现在的状态,别担心,你并不孤独!开源工作就像任何其他充满创意的活动,无论是写作还是绘画。 向世界分享你的作品会让你提心吊胆,但唯有练习能够让你的感觉变好的方法 - 即使你没有观众。

从加入其他项目开始进入开源世界

人们是通过投身于某个特定项目而进入黑客文化的,每个项目都是一个鲜活的社会语境,想要成为项目的贡献者,一个人需要在技术上和社会上都对它进行研究和理解。新手正是通过项目团队,从有经验的老手经历过的事件中获得阅历。 ———— Eric S.Raymand 《大教堂与集市》

如果你的目标是学习如何与他人合作或了解开源的工作方式,请考虑为现有项目做出贡献。从你已经使用并喜欢的项目开始。像修复拼写错误或更新文档简单的事也能为项目做出贡献……

为何要为开源贡献心力?

在开源项目[freenode]的工作让我学习到许多技能,这些技能在我往后大学研究及实际工作上有许多帮助,我在开源项目的贡献跟收获一样多!— @errietta, "为什么我热爱贡献心力在开源软件上"
透过为开源贡献力量,能从中学习、帮助他人并且从中累积相关技能的经验 - 任何你能想像得到的技能。为什么会有人为开源做出贡献?有数不清的原因!

  • 巩固现有技能:无论是撰写程式码、设计使用者介面、平面设计,撰写文章或是组织活动,只要你有意愿实践,你总能在开源项目中找到自己的位置。
  • 认识那些与你有相似兴趣的人:一个友善、温暖的开源社群会让人们持续的参与。许多人透过参与开源建立了深厚的友谊,可能是在一次的技术研讨中,也可能是在线上聊天室的闲聊中发生。
  • 寻找导师,并且尝试帮助他人:与他人在共享的项目中工作,你会需要向他人解释自己是如何做的,同时也需要向他人求助。每个参与开源的人都教学相长。
  • 在公众建立你的名声(以及职业名声):根据开源的定义,你在开源里的所有工作都是公开的,这也意味开源项目是一个能好好展现你实力的地方。
  • 学习人际交往的能力:开源为练习领导及管理的能力提供了很好的机会。例如如何解决冲突、组织团队以及如何为工作的优先顺序排列。
  • 鼓励作出改变,哪怕只是很微小的改变:你不一定要持续不断的贡献开源才能享受参与的乐趣。你是否曾在某个网站上发现拼写错误,并希望有人能够修改它?在开源项目中你可以亲自修正这样的错误即可。开源让人们自在的做事,而这正是这个世界应有的体验。

如何贡献开源项目?

如果你是一名开源世界的新手,可能会对贡献的流程心生畏惧。如何找到适合彼此的项目?不会写程式又想参与怎么办?万一中间出了差错怎么办?不用担心!条条大路通罗马,有很多能参与开源项目的方式。以下是一些实用的技巧,帮你快速的获得经验。

你不一定要会写程式才能贡献

对开源做出贡献常见的误解之一就是:要写程式才算贡献。其实项目里不需编码的工作也是经常被忽视的部分。你对项目所做的非程式类贡献,其实是对项目来说莫大的帮助!

我被大家所熟知是因为为 CocoaPods 做了一些事, 但大多数人并不知道我实际并没有为 CocoaPods 本身做了什么,我多数的工作是撰写说明文件与品牌宣传的事情。— @orta, "将自己预设为开源软件"

即便你乐于写程式,撰写程式以外的贡献对于项目来说也是举足轻重的,维系这样的关系也能让你获得与项目的其他成员共事的机会。

我第一次接触 Python 开发团队(简称 python-dev)是在 2002年6月17日,当时我向邮件列表寄了一份请求接受补丁的信,接着我决定为工作小组搜集整理邮件摘要,后来他们甚至给了我一个机会去谘询某个主题,这当中的关键是,我能注意到有人指出哪些东西必须要处理。— @brettcannon, "系统维护者的故事"

你是否热衷于规划活动?

  • 为项目举办一个工作坊或线下聚会,例如 @fzamperin 为 NodeSchool 所做的
  • 为项目举办一个大型会议﹝如果它有需求的话﹞
  • 帮助社群成员找到合适的会议,或是协助成员找到窗口提交演讲的提案。

你是否喜爱设计?

  • 重新布置布局以提高项目的可用性
  • 做一份使用者调查去整顿与完善项目导览或菜单,像 Drupal 所提出的建议
  • 整理一个风格指南,以帮助项目有一致的视觉设计方针。
  • 透过艺术创作设计T恤或划一个新标志,就像 hapi.js 的贡献者所做的

你是否热爱写作?

  • 撰写和改善项目的说明文件
  • 策划一个资料夹来搜集项目的实际应用案例
  • 办一个项目的电子报,或者搜整邮件列表的摘要
  • 写一个项目教学,就像 PyPA 的贡献者做的
  • 翻译项目的说明文件

讲真的, [说明文件] 是至关重要的。目前 Babel 的说明文件已经很棒了,这也是它杰出的特色之一。有些段落还需要加强或者补上一个句子,有些段落是很值得赞赏的。— @kittens, "贡献者召集令"

你喜欢组织活动吗?

  • 指认出过去讨论过或重复的议题、推荐一个新的议题类别,让事物井井有序
  • 浏览在开放状态(open)的议题,并建议将已经处于开放状态很久的议题设为已结束(closed)就像 @nzakas 在项目 eslint 做的
  • 鼓励最近才刚提问的人将疑问阐释清楚,加速讨论的进展

你喜欢写程式?

  • 尝试解决一个开放状态(open)的议题(issue) 就像 @dianjin 在 Leaflet 做的
  • 想想自己是否能协助开发一个新功能?
  • 将项目建置变得自动化
  • 改善工具及测试方法

你喜欢帮助他人?

  • 回答有关于项目的问题,例如在 Stack Overflow( Postgres 的展示范例 )或者 reddit 上
  • 回答处于开放状态的议题
  • 鼓励、协助创造友善的讨论区礼仪

你喜欢协助他人改善它的程式吗?

其实不一定要是开源软件的项目!

虽然很多人提到“开源”两字是指“开源软件”,其实不尽是如此,许多事物你都可以开源协作,你可以开源一本书、开源食谱、开源一张你整理的清单,都可以像开源软件一样发展你想制作的东西。举例来说:

找寻项目开始贡献

平均一个项目有28% 的贡献是随意且偶然的 ,像是写说明文件、修正错字、调整格式或翻译。

读到这里,已经对开源项目如何运作有了进一步的了解,是该找一个合适的项目做贡献的时候了!如果你从来都没有为开源做过贡献的话,那么请谨记来自美国总统约翰 F.肯尼迪的这段话:“不问国家能为你做什么,要问你能为国家做什么。

开源项目的每个面向与跨项目间都需要贡献者,先不用太钻牛角尖的去想你一定要先在那做贡献,或是做得好不好。不如从你使用过的或将来会使用到的项目开始贡献,你特别关注的项目才会是你会自愿积极参与的项目。

参与的过程中,如果有任何点子,觉得可以让项目更好或更不一样的,就依你的直觉行事。开源并不是某个会员俱乐部;它就是由你这样的人所打造。“开源”只是针对这个世界的需要修复的问题的一个梦幻术语罢了。

你或许在查看 README 的时候,发现了失效的超连结、或发现了错字。又或者你在使用的过程中发现了问题、某件你真的觉得该写进说明文件的议题,与其视而不见或请别人处理,试着自己投入看看是否有你能帮上忙的地方,这就是开源的精神……


Content based on github.com/github/opensource.guide used under the CC-BY-4.0 license.

@2jojo 2jojo added this to the 🌿 指南 milestone Sep 1, 2021
@2jojo 2jojo removed this from the 🌿 指南 milestone Sep 24, 2021
@2jojo 2jojo closed this as completed Sep 29, 2021
@2jojo 2jojo added SDGs指南:diy工业创新 建造具备抵御灾害能力的基础设施,促进具有包容性的可持续工业化,推动创新 活动指南:diy劳动/工作 diy a work/labor 活动指南:diy共同讨论 🗣️ 空间指南:diy学校 🏫 diy a school 空间指南:diy街道 👮‍♂️ diy a street 经济指南:diy一个超低成本的创作 diy super-low-cost-art labels Oct 16, 2021
@2jojo
Copy link
Contributor Author

2jojo commented Oct 16, 2021

补充介绍1:https://opensource.com/life/12/4/day-my-mind-became-open-sourced

我能清楚地记得我的思想变得开源的那一天。那是1973年11月一个清爽晴朗的日子。中学下课后,我打电话给我最好的朋友布鲁斯·乔丹,问:“我现在能过来玩吗?”布鲁斯回答说:“当然。”我跳上我的红色单速施文自行车,发疯似地骑了两英里去布鲁斯家。我高兴得气喘吁吁地赶到了。

布鲁斯玩起来很有趣,因为他不断发明新的游戏,无论是室内还是室外。布鲁斯的家里从来没有沉闷的时刻。所以那天我们坐下来玩拼字游戏时,布鲁斯自发地建议:“我们每人拿10个字母,而不是7个。这将大大提高游戏的玩法。”我抗议道:“但是游戏盒子上的规则说你应该带7个字母。”

布鲁斯很快回答说:“那些不是印在盒子上的规则。这些是建议的规则。你和我可以自由改进它们。”我有点惊呆了。我以前从未听过这样的想法。“但是盒子上的规则不是由比我们聪明很多的成年人写的吗?”我抗议道。

布鲁斯轻松地解释说:“发明这个游戏的人不比你或我聪明,即使他们是成年人。我们可以为这场比赛制定比他们更好的规则。更好的规则。”

我仍然有点怀疑——直到布鲁斯说:“听着,如果这个游戏在前五分钟没有更多的乐趣,我们将回到游戏规则上来。”这听起来是个明智的做法。

果然,布鲁斯的拼字游戏规则让这个游戏玩起来有趣多了。说到一半,我忍不住问他:“如果拼字游戏的规则可以改进,其他游戏的规则也可以改进吗?”

布鲁斯回答说:“所有游戏的规则都可以改进。不仅如此,你在周围世界看到的一切都是由人的心智设计的,这一切都是可以改善的。一切都可以改善。”

一听到这些话,一个霹雳掠过我的脑海。几秒钟之内,我的思想就开放了。我当时就知道我的人生目标和命运:四处寻找可以改进的地方,然后改进它。

那天晚上,当我骑上施文自行车回家时,我的脑海里充满了各种想法和可能性。那天我从布鲁斯·乔丹那里学到了更多,然后我在一整年的学校里学到了更多。在“开源”这个词被创造出来的25年前,布鲁斯·乔丹开启了我的思想。为此我永远感激他。

那天晚上,当我骑车回家时,我下定决心,在我的生活中,我将把精力集中在扩大校外学习机会上,因为有时最有意义的学习和实现发生在学校围墙之外。今天我在华盛顿州DC地区的一家公共图书馆工作,每天我都和路过的中小学生打招呼。偶尔我会遇到头脑容易接受大思想的学生。当这种情况发生时,我在他们的头脑中种下小种子,然后送他们上路。培育这些种子取决于他们。我的角色是在他们的头脑中种下想法的种子。他们的作用是看着这些种子发芽,选择浇水或不浇水。

我从布鲁斯·乔丹那里学到了另一个重要的教训。同年,他问我是否想玩飞盘棒球。“飞盘棒球是什么?”我好奇地问。布鲁斯回答说:“我不知道,但这听起来是一个很棒的游戏。我们一边走向棒球场,一边制定规则。”

果不其然,布鲁斯发明了飞盘棒球的规则,而我们则漫步走过一个街区来到棒球场。我们非常开心地玩着那个游戏,直到我们几乎看不到夜空中的飞盘。那天我从布鲁斯那里学到的是,当你的直觉告诉你前方有非常好的事情时,不要害怕向前走。布鲁斯完全相信我们会玩飞盘棒球玩得很开心。我们做到了。

开源是一场软件运动,但也远不止于此。这是一种看待每一个人造物体和想法的乐观方式。一切都可以改善。都是可以改善的。所有需要的是一些创造力和将你的思想应用于任务的意愿。

让我们试一试。每场比赛的原始规则都印在盒子上,但那些规则只是建议规则。它们是可以改进的,只要有可能就应该改进。

@2jojo 2jojo moved this to In Progress in diy💔 Oct 17, 2021
@2jojo 2jojo added this to diy💔 Oct 17, 2021
@2jojo 2jojo removed this from diy💔 Oct 17, 2021
@2jojo 2jojo moved this to To Finish by Today in diy💔 Oct 17, 2021
@2jojo 2jojo added this to diy💔 Oct 17, 2021
@2jojo 2jojo changed the title diy一个开源项目 diy开源 Oct 17, 2021
@2jojo 2jojo removed this from diy💔 Oct 18, 2021
@2jojo 2jojo added this to diy💔 Nov 5, 2021
@2jojo 2jojo moved this to 持续进行中 🌲 in diy💔 Nov 5, 2021
@2jojo 2jojo changed the title diy开源 开源入门指南 Nov 5, 2021
@2jojo 2jojo moved this from 持续进行中 Ongoing 🌲 to 完成 ✅ in diy💔 Nov 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

1 participant