对于初学者来说,小型的开源项目更容易理解和学习,经常有同学问我目前有哪些值得学习的小型开源项目,代码最好不要超过千行。
那还真是有不少的。
因为问各种语言的都有,像 C、C++、Python 这些,那我尽可能的在我熟悉的编程语言里,推荐几个千行以内的优秀开源项目。
1、Kilo(7.2k+ star)
编程语言:C 语言。
这个项目的开发者 antirez 厉害了,是 Redis 的作者 Salvatore Sanfilippo。
项目是他用 C 语言编写的一个迷你编辑器,只有一个文件,阅读起来十分方便,带有常见编辑器的语法高亮、搜索等功能,
项目不依赖任何第三方库,代码写的十分简洁优雅,强烈建议学习一下大佬是如何写代码的。
传送门:https://github.com/antirez/kilo
2、Tinyhttpd(11k+ star)
编程语言:C 语言。
这个项目是一个超轻量级的 Http Server,能够帮助我们真正的理解服务器程序的本质。
项目的代码行数非常少,不到 500 行,但是代码很有内容,非常建议学习一下。
建议源码阅读顺序:main -> startup -> accept_request -> execute_cgi。
先通晓主要工作流程后再仔细把每个函数的源码看一看。
传送门:https://github.com/EZLippi/Tinyhttpd
3、sudoku(910+ star)
编程语言:C++。
这个项目是一个数独游戏,适用命令行就可以操作,简单易上手。
代码行数不多,600 多行,对刚开始做练习的同学也是没有太大压力的。
传送门:https://github.com/mayerui/sudoku
4、dash(20.6k+ star)
编程语言:Python。
这个项目厉害了,目前是 Python 社区数据可视化的主要工具之一,使用简单,易于扩展。
真的是只用几百行 Python 代码就可以轻松实现数据可视化。
传送门:https://github.com/plotly/dash
5、Python-mini-projects(14.2k+ star)
编程语言:Python。
Python 作为脚本语言,能做的事情简直太多了,可以写各种的脚本来帮助我们提高效率,Python-mini-projects 就是这么一个 Python 迷你脚本合集项目。
比如给图片加个水印,想把图片批量下载下来,或者是发送电子邮件,这种需求不难,但是确很锻炼人。
脚本代码简单但是非常实用,除了上面我说的那几个,还有很多其他的像 json 转 csv 啊这种,都很实用,值得学习。
传送门:https://github.com/Python-World/python-mini-projects
6、tomato-clock(490+ star)
编程语言:Python。
番茄工作法是一种很知名的时间管理方法,简单易行。
市面上关于番茄工作法的 app 很多,我们也可以用 Python 开发一个属于自己的番茄工作法。
这个项目是用 Python 写的命令行番茄工作法定时器,不依赖其他的第三方库,代码很短,只有一百多行,值得拿来练手。
传送门:https://github.com/coolcode/tomato-clock