Summary

在这个博客中我会介绍一些工作中用到的编程技术。

In this blog, I’m gonna talk about some programming techniques used in my work.

About C++

You don’t pay for what you don’t use.

值语义和数据抽象(value semantics and data abstraction)

RAII和智能指针(RAII and smart pointer)

静态多态和动态多态(Static and dynamic polymorphism)

函数对象(Functional Object)

函数式编程(Functional Programming In C++)

并行编程(Concurrency In C++)

Wheels of Concurrency

But as any good programmer knows, your code is awesome and anyone else’s code sucks, right?

互斥量和信号量(Mutex and Semaphore)

任务队列(Workqueue)

调用栈(Callstack)

Strand

任务系统的设计(The Design of Task System)

About Linux

Free as in Freedom.

debian-handbook-preface-translation

编译环境和CMake

Boost::Asio

“One of the most highly regarded and expertly designed C++ library projects in the world…”

Hello Asio!

thread pool

a simple tcp echo server

a complex tcp echo server

priority queue

codec and dispatcher

coroutine

Other things

Vcpkg——Windows下的包管理工具

Qt——优雅的界面库

Docker——Let’s dockerize it!

Fast-RTPS——局域网通信协议

OpenSceneGraph——三维渲染引擎