你读过的最好的 C++ 开源代码是什么?

发布时间:
2023-08-24 12:34
阅读量:
25

那可真不少!

优质的 C++ 开源代码大家在选择的时候其实把握住两个标准就好了:可读性和规范性。

可读性就是你这个代码应该方便阅读理解,一般就是项目结构清晰,命名规范,带有注释。

规范性是有清楚良好的文档和示例,这样是为了方便更好的去理解和使用代码。

我这里给大家推荐8个,个个都棒,很多都是来自国内外大厂开源的优质 C++ 项目!!你要做的就是好好看就 ok 辣!

1、CppCoreGuidelines(37.8k+ star)

第 1 个我必须来推荐 C++ 核心指南,包含一份详细的 C++ 编程规范文档。

这个项目是由 C++ 之父 Bjarne Stroustrup 领导的 C++ 编码指南,目的是为了帮助大家更好地使用现代 C++,内容涵盖 C++ 编程的各个方面,比如语言特性、函数、类、模板等,以及列举了各种规范和最佳实践。

必须得看!

传送门:github.com/isocpp/CppCo

2、modern-cpp-features(16.6k+ star)

主要介绍了现代 C++(C++11 以及之后的版本)语言和库的新特性。它能够帮助大家更快地入手新时代的 C++。

部分截图

传送门:github.com/AnthonyCalan

上面几个是更类似参考文档的内容,下面继续给大家介绍国内外大厂的开源项目。

3、vcpkg(16.7k+ star)

vcpkg 是微软开源的 C/C++ 包管理工具。

它是安装和管理 C/C++ 依赖的命令行工具,适用于 Windows、Linux 和 macOS 等多个操作系统。

对于新手,如果你对 vcpkg 的使用感兴趣,可以通过快速入门了解如何使用 vcpkg。

传送门:github.com/microsoft/vc

4、calculator(25.6k+ star)

大家的 Windows 系统上应该都有这个计算器,微软把它们系统预装的计算器工具开源了!

计算器提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。

它实现语言为 C++ 代码,大家没想到吧,这个计算器的实现并不复杂,但是大家可以从中学习下微软工程师是如何写代码的。

传送门:github.com/microsoft/ca

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; }

传送门:github.com/alibaba/asyn

6、folly(23.1k+ star)

folly 是 Facebook 开源的 C++ 工具库。

这个项目包含一系列高性能的 C++ 组件库,十分的方便且高效,而且是在 Facebook 内部被广泛应用。

该项目不仅代码规范测试用例充足,而且源码中包含丰富的注释。同样功能的函数为什么别人写的这么好,终于可以光明正大的偷师学艺了!

传送门:github.com/facebook/fol

7、incubator-brpc(13.9k+ star)

incubator-brpc 是百度开源的 RPC 框架。

"brpc"的含义是"better RPC",常用于搜索、存储、机器学习、广告、推荐等高性能系统。

拥有超过 100 万个实例和 500 多种服务。

部分截图

传送门:github.com/apache/incub

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; }

传送门:github.com/sogou/workfl

如果你是个 C++ 新手,为 C++ 着迷,那这份 C++ 学习路线是你需要的:

Rocky0429:这才是你最想要的 C++ 学习路线

这里我还整理了 8 个新手学习 C++ 常去的好地方,没事可以去看看:

Rocky0429:新手学习C++常去的8个网站!

如果大家觉得我写的还不错,记得动动小手帮我 @Rocky0429 点个赞呀~

END