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

关于开源 #69

Open
ShannonChenCHN opened this issue Aug 2, 2017 · 3 comments
Open

关于开源 #69

ShannonChenCHN opened this issue Aug 2, 2017 · 3 comments

Comments

@ShannonChenCHN
Copy link
Owner

No description provided.

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented Oct 26, 2017

Open sourcing Swift code

相比原来所从事的传统机械行业,显然,我更喜欢 IT 这个行业,正是互联网的开放,才让我看到更大的世界,才知道自己的渺小。

『Open sourcing Swift code』 的作者正是知名开源库 JSQMessagesViewController 的作者 John Sundell,这个开源项目目前在 GitHub 上的 star 数已经超过 10 k了🙈。在这篇文章中,作者分别从 Why,What,How 这几个角度,大概讲了一些关于开源的实用建议。

1. Why open source?

  • 开源能够让你注重分离关注点,使得代码更抽象,逻辑更独立
  • 开源能够让你写出更加清晰可读的 API

2. What to open source?

可以将项目中一些通用的、功能单一的模块抽取出来,比如:

  • JSON 转 Model 的功能
  • 加载或者缓存数据
  • 文件操作,I/O 操作
  • 动画,UI 样式或者其他视图渲染相关的
  • 解决常见问题的、方便好用的 API 封装,比如 blocksKit

重要: 我们开元出来的不一定要非常酷,也不一定要到达前无古人的程度,真正重要的是能把我们项目中一些能够帮助到别人的代码,分享出来。

3. How to open source a project?

  • 避免嵌套依赖,尽量做到易于使用、易于维护
  • 支持 CocoaPods, Carthage 和 Swift Package Manager
  • 在 README 中对对未来的一些期望和规划进行说明,这样能让使用者知道这个项目的未来走向,以及这个项目的发展阶段
  • 写配套的测试代码

后续

读后我转发了作者关于这篇文章的 twitter 帖子,得到了作者的回复。随后,我又提了两个问题,作者很快又认真回复了我:

Me: How can I get involved in other people's open source project?
John Sundell: I recommend fixing bugs & adding new features to projects you already use. Me & @_inside talked about it here: overcast.fm/+Jxstx4Apg/39:… 🙂
这个问题讲的是如何真正地参与到别人的开源项目中去,John 给出的答案是:

  • 使用别人开源的项目
  • 修复你所使用的开源项目中的 bug
  • 往别人开源的项目中添加新功能
    最后 John 还提供了一个 podcast 的链接,他在这个节目中跟别人讨论过这个话题。

Me: How can I get more people to know my own open source project?
John Sundell: Keep working on it to make it really polished & useful for others. Create a great README & documentation. Then tell people about it 🙂

第二个问题是,如何让更多的人知道我自己的开源项目。
John 认为,

  • 首先是持续打磨你的开源项目,让它能够让别人觉得非常优雅和有价值
  • 创建一个不错的 README 和文档
  • 最后是告诉别人你的项目

延伸阅读:

@ShannonChenCHN
Copy link
Owner Author

ShannonChenCHN commented Jan 30, 2018

读 『什么是开源精神

  1. 开源需要贡献、需要付出,但在贡献和付出之前,首要的是去了解、去使用已经存在的。

  2. 不要去做「纯调研」,更笨但更有效地做法是,直接去用,在项目真正使用过程中,才能深触地感受到这个项目的优缺点。拿来主义不光能省去开发成本,还能让你扩充见识和想法,而不会成为井底之蛙还茫然自得。

  3. 在开源世界里,参与比主导更重要。做开源不仅仅是指开源自己的代码,其实还包括提反馈意见(issue)、分享使用体验、完善文档、添加测试等等。在参与别人的开源项目时,不光是技术水平上的提升,还包括读写能力、沟通能力、英语水平等多方面的提升。

  4. 开源的是社区,代码仅是很小的一部分。没有社区的活跃性,开源项目源码会一直停留在「孤芳自赏」阶段。一个比较好的开源方式是:有了好的想法,就分享出来,最初的代码展现基本的思路就好,然后通过社区的参与,不断往前演化,让大家都成为开发者,群体的力量远大于个体。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant