嵌入式工作 3 年,平时一直使用的 c 语言(因为开发都在 dsp 、单片机、内核驱动),最近尝试使用 c++开发(水平大概是精学了两遍 c++ primer ),由于习惯了面向过程编程,c++真的就用成了“带类的 c”,一言不合就单例模式。求推荐一些开源代码,想学一下优秀的设计。
1
anonymousar 2022-07-19 12:51:07 +08:00
folly ?
|
2
minami 2022-07-19 13:15:24 +08:00 1
看代码不推荐一上来就看 folly 、boost 、abseil 这种基础库,虽然好东西非常多,但基础库的设计思路和项目还是有区别的。推荐 Chromium ,浏览器是超复杂的项目,包罗万象,常看常新。看不过来可以只看 net 部分,就是 QUIC 协议的实现。如果不喜欢 G 家的编码风格,可以看看 FB 的 mvfst
|
3
DaTuDou 2022-07-19 14:03:33 +08:00
你头像跟我一样啊。我还以为是我发的
|
4
littlewing 2022-07-19 14:11:17 +08:00
RocksDB ?
|
5
duke807 2022-07-19 14:11:48 +08:00 via Android
單片機 hal 、內核驅動 都是面向對象的 c 編程啊
|
6
heqing 2022-07-19 14:34:41 +08:00
Chromium
|
7
agagega 2022-07-19 14:42:52 +08:00 via iPhone
LLVM/Clang:
- 很标准的 CMake 项目,对外部包几乎没有什么依赖,构建起来很清爽 - 社区对重构很有热情,没有积累了很多年的有味道的代码。而且项目本来就很年轻 - 编译器是一个所谓的 clean problem ,相对而言业务性没有 GUI 项目那么强 - 架构非常清晰,模块之间、平台之间用很标准的方法进行抽离 - 你应该相信写 C++编译器的人的 C++水平 |
8
neoblackcap 2022-07-19 14:42:58 +08:00
C++是一个多范式的语言,C with Class 本来就是预想设计的一部分。用好它一点问题都没有。
不是说 C++就一定要泛型到处飞的。 虽然现代 modern C++一般都会使用更多的泛型,优先使用组合而不是继承。 至于优秀的设计,不是很建议直接看那些大库,建议看看小项目。要不去看看腾讯开源的 libco? |
9
hu8245 2022-07-19 15:52:37 +08:00 via Android
chromium 和 webkit ,感觉这两个巨无霸的代码质量稳定,另外就是经典库,boost ,folly 之类的了,其实可选的也不是很多
|
10
qieqie 2022-07-19 15:56:36 +08:00
LevelDB 吧,上面都推荐大几十万上百万行代码的项目是认真的?
|
11
zhengxiaowai 2022-07-19 20:30:01 +08:00
顶一个楼上老哥,大几十万上百万行的项目简直就灾难,还有那个推荐 LLVM 的没有编译器背景看都看不懂写的是啥,推荐网络库 muduo ,网络这个无论啥背景都会用到,代码里少,质量还行
|
12
DamonLe OP 我先从小一点的项目开始学吧
|