你读过的最好的 C++ 开源代码是什么?
那可真不少!
优质的 C++ 开源代码大家在选择的时候其实把握住两个标准就好了:可读性和规范性。
可读性就是你这个代码应该方便阅读理解,一般就是项目结构清晰,命名规范,带有注释。
规范性是有清楚良好的文档和示例,这样是为了方便更好的去理解和使用代码。
我这里给大家推荐8个,个个都棒,很多都是来自国内外大厂开源的优质 C++ 项目!!你要做的就是好好看就 ok 辣!
1、CppCoreGuidelines(37.8k+ star)
第 1 个我必须来推荐 C++ 核心指南,包含一份详细的 C++ 编程规范文档。
这个项目是由 C++ 之父 Bjarne Stroustrup 领导的 C++ 编码指南,目的是为了帮助大家更好地使用现代 C++,内容涵盖 C++ 编程的各个方面,比如语言特性、函数、类、模板等,以及列举了各种规范和最佳实践。
必须得看!
传送门:https://github.com/isocpp/CppCoreGuidelines
2、modern-cpp-features(16.6k+ star)
主要介绍了现代 C++(C++11 以及之后的版本)语言和库的新特性。它能够帮助大家更快地入手新时代的 C++。
传送门:https://github.com/AnthonyCalandra/modern-cpp-features
上面几个是更类似参考文档的内容,下面继续给大家介绍国内外大厂的开源项目。
3、vcpkg(16.7k+ star)
vcpkg 是微软开源的 C/C++ 包管理工具。
它是安装和管理 C/C++ 依赖的命令行工具,适用于 Windows、Linux 和 macOS 等多个操作系统。
对于新手,如果你对 vcpkg 的使用感兴趣,可以通过快速入门了解如何使用 vcpkg。
传送门:https://github.com/microsoft/vcpkg
4、calculator(25.6k+ star)
大家的 Windows 系统上应该都有这个计算器,微软把它们系统预装的计算器工具开源了!
计算器提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。
它实现语言为 C++ 代码,大家没想到吧,这个计算器的实现并不复杂,但是大家可以从中学习下微软工程师是如何写代码的。
传送门:https://github.com/microsoft/calculator
5、async_simple (844 star)
async_simple 是阿里开源的轻量级 C++ 异步框架。
该项目提供了基于 C++20 无栈协程(Lazy)、有栈协程(Uthread) 以及 Future/Promise 等异步组件,能够轻松完成 C++ 异步的开发。
目前这个项目广泛应用于阿里的图计算引擎、时序数据库、搜索引擎等系统。
#include <async_simple/coro/ConditionVariable.h>
SpinLock mtx;
ConditionVariable<SpinLock> cond;
int value = 0;
Lazy<> producer() {
co_await mtx.coLock();
value++;
cond.notify();
mtx.unlock();
co_return;
}
Lazy<> consumer() {
co_await mtx.coLock();
co_await cond.wait(mtx, [&] { return value > 0; });
mtx.unlock();
assert(value > 0);
co_return;
}
传送门:https://github.com/alibaba/async_simple
6、folly(23.1k+ star)
folly 是 Facebook 开源的 C++ 工具库。
这个项目包含一系列高性能的 C++ 组件库,十分的方便且高效,而且是在 Facebook 内部被广泛应用。
该项目不仅代码规范测试用例充足,而且源码中包含丰富的注释。同样功能的函数为什么别人写的这么好,终于可以光明正大的偷师学艺了!
传送门:https://github.com/facebook/folly
7、incubator-brpc(13.9k+ star)
incubator-brpc 是百度开源的 RPC 框架。
"brpc"的含义是"better RPC",常用于搜索、存储、机器学习、广告、推荐等高性能系统。
拥有超过 100 万个实例和 500 多种服务。
传送门:https://github.com/apache/incubator-brpc
8、workflow(10.6k+ star)
workflow 是搜狗开源的 C++ 服务器引擎。
这个项目有点东西,支撑搜狗几乎所有后端 C++ 在线服务:
- 搜索服务
- 云输入法
- 广告
- ...
每日处理大概超过百亿的请求。
这是一个很棒的企业级程序引擎,可以满足大多数 C++ 后端开发需求。
比如快速搭建 http 服务器:
#include <stdio.h>
#include "workflow/WFHttpServer.h"
int main()
{
WFHttpServer server([](WFHttpTask *task) {
task->get_resp()->append_output_body("<html>Hello World!</html>");
});
if (server.start(8888) == 0) { // start server on port 8888
getchar(); // press "Enter" to end.
server.stop();
}
return 0;
}
传送门:https://github.com/sogou/workflow
如果你是个 C++ 新手,为 C++ 着迷,那这份 C++ 学习路线是你需要的:
Rocky0429:这才是你最想要的 C++ 学习路线这里我还整理了 8 个新手学习 C++ 常去的好地方,没事可以去看看:
Rocky0429:新手学习C++常去的8个网站!如果大家觉得我写的还不错,记得动动小手帮我 @Rocky0429 点个赞呀~