C/C++短小 精悍 源代码学习推荐

2019-10-02 00:26:56 +08:00
 52coder

堂弟学计算机,大三了,有些 C 语言基础,毕业后想从事 C/C++方面的开发工作,问我有什么短小且经典的开源代码推荐给他,我这块不是很熟,有用过一些 redis 的,发现 redis 源代码可能有几万行的样子,不适合作为入门学习,请教各位大佬,有没有哪些 c/c++的经典开源代码,代码量越小越好,以便快速入门,增加自信心。

我在 github 上找到几个,不知道有没有更好的选择。

Tinyhttpd cJSON

经典却不太适合的 lua redis nginx linux

10814 次点击
所在节点    程序员
37 条回复
ZRS
2019-10-02 00:30:54 +08:00
STL ?
catror
2019-10-02 01:16:44 +08:00
C - boa, hiredis
C++ - leveldb
nevin47
2019-10-02 04:14:41 +08:00
cJSON 可以,但是里面坑挺多,需要自己慢慢甄别。最好配合 commit 记录食用
rayhy
2019-10-02 08:27:18 +08:00
bobuick
2019-10-02 09:33:35 +08:00
json 解析和序列化, 能写出来的话肯定会具有不错的计算机基础了。 听上去都不是什么高端算法和技术, 实际上去写就知道了,能优化的细节可以很多
inhzus
2019-10-02 09:44:14 +08:00
最近在看 muduo,几千行的代码量,涉及到网络和多线程,我觉得如果能理解完还是会很有提升的
cabing
2019-10-02 09:49:27 +08:00
单纯看源码没啥意义,因为你的练习太少。

我觉得你应该是快速使用 cpp 做一些业务。然后看下框架源码啥的。

当然是推荐一个简单的框架。https://github.com/weiboad/adbase

可以开发常用的服务。
salamanderMH
2019-10-02 10:14:05 +08:00
STL 挺好的
zjsxwc
2019-10-02 11:01:37 +08:00
52coder
2019-10-02 16:23:05 +08:00
@zjsxwc 多谢这个 gear-lib 看着不错,每个库相对独立,多谢。
rainmakeroly
2019-10-02 16:24:01 +08:00
redis git 第一个版本的行数好像都不多。
52coder
2019-10-02 16:28:30 +08:00
@catror 多谢,hiredis 这个我看不错,哈哈。
52coder
2019-10-02 16:29:14 +08:00
@nevin47 我之前学 c 的时候看 github 上有个腾讯的大佬有个系列是一步一步写 json 解析器。收获不少。
52coder
2019-10-02 16:30:08 +08:00
@rainmakeroly redis 的一些资料之类的,相对,第一个版本比较少。
rainmakeroly
2019-10-02 16:50:05 +08:00
@52coder 先说下我没看过。但是 google code 是有 0.1 的版本代码的,除了测试 tcl 应该不超过 1 万行。官方的文档也很详细,一直想看但又不想碰 C
blender2017
2019-10-02 17:49:47 +08:00
52coder
2019-10-02 19:29:47 +08:00
@blender2017 是不是有点太难了,哈哈哈
yadam
2019-10-02 21:15:45 +08:00
推荐一个 seastar, 很飘逸
52coder
2019-10-02 23:34:53 +08:00
@yadam 多谢,我看下这是干啥的。
cyhone
2019-10-03 10:00:14 +08:00
muduo、coroutine、libco 等,代码都不算太多。
我也维护了一个我自己阅读这些代码做的注释版,地址在 https://github.com/chenyahui/AnnotatedCode 欢迎 star

- coroutine 只有 200 多行,是云风大佬的作品,具备了一个有栈协程的基本功能。可以同时参考 http://www.cyhone.com/articles/analysis-of-cloudwu-coroutine/ 进行阅读
- libco 只有几千行,是微信内部使用的协程库,实现了协程的自动切换等功能。
- muduo 是陈硕大佬写的 tcp 网络库,具备了一个网络库的最佳实践,而且实际上也很优雅。可同时参考 http://www.cyhone.com/articles/analysis-of-muduo/进行阅读

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/605937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX