开源代码阅读:rest_rpc

最近想了解一下基本的远程过程调用(RPC)的工作细节,于是在 github 上找了一个小体量的 RPC 库,阅读并参照实现了内部最重要的部分。本篇文章记录一下内部较为重要的部分。
阅读全文

std::function 原理简述

最近在看 《C++ Templates》一书,恰好读到 std::function 原理解析一章,想要进行一个简单的记录。本文将会介绍 C++ 标准库中 std::function 的原理,并实现一个简单的版本。
阅读全文

VIM 基本工作流配置

本篇博客介绍基本的 VIM 工作流配置,VIM 提供了一种高效的编辑模式,因此我一般在IDE中安装VIM插件,对于使用终端VIM进行开发,还需要安装插件、进行一些配置。本文就介绍如何配置一个基本的可用的VIM开发工作流。
阅读全文

谈谈Python大文件处理问题

最近需要使用 Python 对大文件进行逐行读取和处理,也研究了一些相关的方法,本文对这些方法进行效率、内存占用等进行分析比较,并记录最终我选择的处理方案。
阅读全文

算法(五)

最近刷了一些算法题,这里记录一些算法的通用模板,便于自己查看。
阅读全文

Muduo网络库实现(三):TCP服务器

本文是Muduo网络库实现的第三篇博客,介绍如何使用前面的事件循环来实现一个多Reactor多线程模型,进一步实现一个TCP服务器。自此,一个具有较为完整功能的网络库就实现完成了。
阅读全文

C++常量表达式(constexpr)

关键字 constexpr 是在 C++11 引入的,并在 C++14 中进行了改进,目的是用于指示编译器尽可能的将计算放在编译期,从而提高程序运行时效率。
阅读全文

C++ 基础知识汇总

当初学习 C++ 的时候看过很多书,靠 《C++ Primer 5th》 入门,陆续看了《Effective C++》、《Effective Modern C++》、《深入理解C++对象模型》、《程序员自我修养》等,对一些基础知识都有了解,最近借着准备找工作的机会并结合网上的知识总结,归纳一份常见问题清单供自己参考,本篇博客会持续补充和完善...
阅读全文

Muduo网络库实现(二):事件循环

本文是 Muduo 库设计介绍的第二篇博客,也是整个库最核心的部分:事件循环。事件循环是事件驱动库必有的模块,在 Muduo 库中主要包括:Eventloop, Channel, Poller 三个类,三者关系十分紧密。
阅读全文

Muduo网络库实现(一):异步日志

最近抽空学习了一下 Muduo 网络库的源代码,并使用现代 C++ 重写了一份代码,主要是为了学习 C++ 多线程程序的编写。为了便于后续回顾,这里打算分几篇博客来记录一下关键设计,本篇博客介绍日志库的设计和实现。
阅读全文