商汇粹外网资源平台

搜索
查看: 2168|回复: 5

有哪些值得参与的github开源项目?

[复制链接]

该用户从未签到

8

主题

11

帖子

55

积分

注册会员

Rank: 2

积分
55
发表于 2022-10-22 10:41:39 | 显示全部楼层 |阅读模式
针对不同的开发水平与经验,有哪些适合的开源项目可以帮助开眼界、涨姿势、锻炼编码能力。
回复

使用道具 举报

该用户从未签到

2

主题

43

帖子

149

积分

注册会员

Rank: 2

积分
149
发表于 2022-10-22 10:53:19 | 显示全部楼层
谢邀。作为BIOS的开发工程师当然推荐UEFI BIOS开源内核了。我在知乎上介绍了这么多BIOS的知识,不知道大家有没有想动手玩玩?我相信不少同学还是想玩玩BIOS和看看它究竟干了些什么。很多人爱好者也想尝试学习UEFI,无奈没有硬件。而这一切都可以解决,因为UEFI BIOS的内核是开源的!
UEFI BIOS的内核叫做Tiano,它在Github上安家好久了:

其中比较有可玩性的是我用红框标出来的部分:

EDK2是内核。它包含UEFI BIOS内核的大部分东西,包括一个UEFI BIOS虚拟环境。按照我在这篇文章中的步骤可以编译、安装、运行一个虚拟BIOS:

弄好了就像这样:



BIOS的基本环节都有了,还有Shell可以玩玩shell指令。Linux玩家也不必担心,可以试试这个教程:

edk2-platforms包括了很多开源硬件平台:

有ARM的,也有X86的。这里推荐两个开源硬件平台,它们在edk2-platforms的branch里面:

它们都是Minnowboard平台,支持Baytrial和Apollolake。详细可以参考这里:

如果大家感兴趣,还可以试玩Qemu模拟器中的OVMF BIOS,也十分完备。
欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。同时欢迎大家给本专栏和公众号投稿!
回复

使用道具 举报

该用户从未签到

3

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2022-10-22 11:04:59 | 显示全部楼层
蟹邀。我的答案或许会和其他的答主略有差别。
在开始聊之前,我们需要先重新审视你对于参与开源项目的述求:开眼界、涨姿势、锻炼编码能力。


第一点,开眼界。
我个人理解核心是扩大知识领域,扩充个人技术图谱和技术栈。


如果你未来的规划是大前端,那么关注所有知名 Web技术框架&方案、客户端技术框架&方案、相关工程工具类的项目短期内就足够了,在了解之后,严格遵守CONTRIBUTING的提交规范、在充分使用issue、邮件、即时通讯工具进行沟通后,在提交你希望的功能、或者修正掉存在的问题即可。


其他领域类似,关注项目标准以“商业产品中可落地应用”为基准即可。


第二点,涨姿势。
我个人理解核心是有良好的榜样可以学习,完善自己的代码风格以及模块组织形式,能够更好的和他人合作。


个人推荐你可以关注迭代时间长的高赞项目、知名开发者的新项目,在项目有明确编码规范和单元测试的情况下,了解和学习项目的设计思路、编码实现、项目组织。


关注点除了上面提到之外,考虑概念的创新、产品的创新,举个例子:docker(moby)、k8s(rancher)。


第三点,锻炼编码能力。


锻炼编码能力的核心是多思考多练习,开源项目不一定是最好的实现路径。


所以我个人推荐,你参与你能力所及的项目、你感兴趣的项目即可。


不积跬步无以至千里。


以上,希望能解决你的疑惑。
回复

使用道具 举报

该用户从未签到

3

主题

7

帖子

33

积分

新手上路

Rank: 1

积分
33
发表于 2022-10-22 11:16:39 | 显示全部楼层
想参与开源项目,却找不到合适的项目?来看看这个开源项目!



我刚学编程的时候,不止一次打开 IDE 看着闪动的光标发呆,大脑和空白的页面一样,一片空白毫无头绪。想写点东西根本无从下手,想玩别人的项目也跑不起来。一下子从书本抄代码的阶段,转变到自己构思、设计、编写代码,这跨度着实有些大。当时感觉自己学的那些什么语法规则,都吃完拉了什么都没留下。

有没有人和我一样,有过上面的经历或者正处于这种状态。我当时就在想有没有那种,比书上的实例代码长一些,有些实际用途的开源项目。即:
一个文件、运行简单、一看就懂,有趣的开源项目!
因为一个文件的项目基本上复制代码到编辑器里就能跑,还可以通过调试看每步的结果更容易读懂代码。重点是它要有实际用途,不是代码例子,这样就可以拿出去给别人看和使用,学起来很有动力。代码中再多来点注释,相对于干巴巴的教程文章,我更喜欢代码中的注释,简洁直给解惑效果更佳。
功夫不负有心人,终于让我找到它们了:
OneFile 汇集了仅一个文件,好玩的开源项目。

项目:http://github.com/521xueweihan/OneFile
官网:http://hellogithub.com/onefile/
这里有游戏、编译器、服务器、工具、实用库等,它们运行简单甚至复制代码就能跑。
下面让我们一起来把玩下吧!





1、点击停球


消磨时间的小游戏,只需将球停在有颜色的区域即可得分。所有代码就只有一个 HTML 文件,玩累了还可以右键“显示网页源代码”,研究下源码如何作弊。

试玩:https://hellogithub.com/onefile/code/cc759276aefe4bad87ac259940042581
2、番茄时钟


纯 Python 实现的命令行番茄时钟,另外还支持安装扩展实现桌面通知。复制代码到 PyCharm 右键即可运行。

源码:https://github.com/521xueweihan/OneFile/blob/main/src/python/tomato-clock.py
3、迷你编译器


用 JavaScript 写的迷你编译器,实现将 LISP 转化成 C 代码。每一步写的特别详细注释比代码多,人人都能看懂的编译器项目。打开浏览器的“开发者工具”跳转到“Console”页面,把代码粘贴进去即可运行。
*                  LISP                      C * *   2 + 2          (add 2 2)                 add(2, 2) *   4 - 2          (subtract 4 2)            subtract(4, 2) *   2 + (4 - 2)    (add 2 (subtract 4 2))    add(2, subtract(4, 2))

源码:https://github.com/521xueweihan/OneFile/blob/main/src/javascript/the-super-tiny-compiler.js
4、字符视频


打开网页授权开启摄像头,你将看到实时转化成 ASCII 码的图像。浏览器右键“显示网页源代码”,即可查看全部源码。





试玩:https://hellogithub.com/onefile/code/126093303b6b414dbab9d623c957fdd4
5、太空侵略者


原版的《太空侵略者》由大约 2k 行的 8080 汇编代码写成,但汇编语言太过底层不方便阅读,今天讲解的开源项目 si78c 是按照原版汇编代码用 C 语言重写了一遍。这个项目虽然核心文件只有一个,但运行稍微复杂,不怕我们有配套讲解文章。



源码:https://github.com/521xueweihan/OneFile/blob/main/src/c/si78c.c
<hr>万事开头难,但这些项目一点都不难!
无数次想写东西却无从下手...无数个卡住的夜晚...无数次想砸电脑的冲动...
它们都将成为过去式,希望本期推荐的一个文件开源项目,能让你重拾信心发现编程的乐趣。
更多项目:http://github.com/521xueweihan/OneFile
开启开源之旅


每个开源项目都是从一个文件开始,通过不停迭代才成为了被人熟知和喜爱的知名项目。
如果你发现某个痛点或者灵光乍现,仅需创建一个文件把它记录下来,然后不断更新迭代并开源出来。最终,它可以帮助到更多人,未来的某一天会惊艳到包括你在内的所有人!

如果让你只用一个文件展示“平生所学”,编程语言不限!你会交出什么样的作品呢?
一个文件的编程挑战,要求如下:

  • 单个文件、不可压缩、体积小于 1 MB
  • 代码结构清晰,包含注释,行数小于 5000 行
  • 不限编程语言,不可仅包含 Markdown 文件
  • 不引入任何外部文件(图片、视频、CSS 等)
  • 项目功能完整,具有学习或使用价值
  • (可选)最多依赖一个开源库或框架
快来参与吧~文末点击阅读原文提交你的项目:

最后

HelloGitHub想让更多人爱上编程、开源,所以一直在尝试、摸索如何可以帮助到更多的人。目前HelloGitHub 交流群已全面开放,关注HelloGitHub,添加:HelloGitHub001为好友入群,可同CC++JavaGoPython、前端机器学习等各界大佬谈笑风生、切磋技术~ 还有大学生开源群,叫上你的小伙伴一起感受开源的乐趣吧!目前HelloGitHub小程序已上线,可以直接搜索开源项目啦~
找开源项目就上 HelloGitHub 这里有 GitHub 上有趣入门级的开源项目。
回复

使用道具 举报

该用户从未签到

2

主题

8

帖子

34

积分

新手上路

Rank: 1

积分
34
发表于 2022-10-22 11:28:19 | 显示全部楼层
如果是没有开源经验,想试试水的同学,一个氛围友好,贡献的难易梯度清晰,流程完善的开源社区是相对较好的选择。建议参考之前在其他问题下的回答:

如果是有了一些贡献的经验,建议考虑一些自己更感兴趣,更前沿的开源社区或者开源项目,这里列一些我自己比较感兴趣的:

  • DB Track:

    • pingcap/tidb

      • NewSQL 数据库,国内公司的项目,社区相对比较友好,中文支持自然不用说。对 contributor 还有一定的物质激励(逃

    • prometheus/prometheus

      • 时序数据库,应用越来越广泛了


  • System Track:

    • kubernetes/kubernetes

      • 不过目前 k8s 社区应该是更加鼓励基于 k8s 的贡献,比如 istio 之类的

    • kubeflow/kubeflow

      • 在 k8s 上运行 ML 工作负载的项目,目前非常早期,因此贡献的门槛比较低

    • moby/moby

      • 虽然已经不再是辣个萌萌的 docker 了,但是现在的架构还是蛮有学习价值的

    • istio/istio

      • 完善而友好的社区


  • ML Track:

    • tensorflow/tensorflow

      • 我觉得贡献难度还是挺大的

    • apache/incubator-mxnet

      • 华人的骄傲系列?

    • dmlc/tvm

      • Idea 很 promising


回复

使用道具 举报

该用户从未签到

5

主题

13

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2022-10-22 11:39:59 | 显示全部楼层
比如ry大大的deno?

TypeScript运行时,作者是Node的作者Ryan Dahl,之前做libuv的Bert Belder也贡献了不少


(借这个项目强行逼迫自己学Rust做一点system programming...)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表