深入理解C/C++的编译与链接技术:导论

深入理解C/C++的编译与链接技术:导论 前言 这个是一个新的系列!是笔者本周打算系统深入开展研究的话题。具体来讲,我们会讨论和总结一系列的C/C++编程中,我们很有可能一带而过但是肯定被备受折磨的话题——编译与链接技术。我相信任何一个朋友都遇到过令人头疼的undefined referenced等


理解C/C++异步IO编程——做一个RAII的Socket抽象

理解C/C++异步IO编程——做一个RAII的Socket抽象 前言 在我们开始异步IO编程之前,咱们最好先理解一下Socket API有哪些。这篇博客,如我所言,只是说尝试给一个Reference,告诉看官那些抽象是我们需要做的。这样,我们后面构建更加现代的异步IO编程完全可以有更好的抽象。为此,


理解C/C++异步IO编程:IO多路复用技术与Epoll入门

理解C/C++异步IO编程:IO多路复用技术与Epoll入门 前言 这一篇笔记是很多其他系列的基础部分,也是基于C/C++编程语言和Linux操作系统异步IO实现的一个绕不过去的话题。笔者曾经想将他归类为某一个子话题下,但是发现很多博客项目照样需要使用这个系列作为一个铺垫,索性作为一个单独的博客来聊


理解C++20的革命特性——协程支持2:编写简单的协程调度器

理解C++20的革命特性——协程支持2:编写简单的协程调度器 前言 在上一篇博客中,我们已经理解了C++20中最为简单的协程调度接口(尽管这一点也不简单)。显然,在这篇博客之前,我们的协程之间还是在使用单协程的调度器进行调度。看起来协程好鸡肋。啥也干不了。但是别着急,为了我们可以进一步的发挥协程的威


理解C++20的革命特性——协程支持1

理解C++20的革命特性——协程支持1 什么是协程? 首先,引出协程,我们跑不了提到函数的运行时栈:调用一个函数时,运行时会为该函数分配一个栈帧,在栈帧中保存参数、返回地址以及函数中声明的局部变量——这就是函数的运行时环境。 协程的核心思想是:**函数可以在执行到一半时挂起(suspend),把执行


从《Life of A Pixel》来看Chrome的渲染机制

从《Life of A Pixel》来看Chrome的渲染机制 PPT本身就很精彩,你可以访问:Life of a Pixel - Google 幻灯片来看看Google自己是如何说明网页的内容(Web Content)是如何映射成Pixel的(像素) Chrome的渲染机制说的很简单,其实定义就是


精读C++20设计模式——行为型设计模式:策略模式

精读C++20设计模式——行为型设计模式:策略模式 前言 我们天天都在用策略模式!标准库的算法在设计上就是一种策略模式! 策略模式的核心想法很简单:把算法/行为从使用它的类中抽离出来,封装成可互换的“策略(Strategy)”,并允许在运行时或编译期替换这些策略,从而实现算法的可扩展、可测试与解耦。


精读 C++20 设计模式:行为型设计模式 — 访问者模式

精读 C++20 设计模式:行为型设计模式 — 访问者模式 访问者模式是另一个经典的设计模式——它把“算法”与“数据结构”分离:把作用于一组对象的操作从对象中抽离出来,以便在不修改这些对象类的情况下添加新的操作。 这里会涉及到分发这个事情:分发其实就是一组判断逻辑执行后执行不用的结果函数(运行时决定


精读 C++20 设计模式:行为型设计模式 — 状态机模式

精读 C++20 设计模式:行为型设计模式 — 状态机模式 前言 状态机(State Machine)是工程里极常见也极重要的工具:当一个对象的行为不仅仅由当前输入决定,而是和“当前状态”强耦合时,状态机让我们把“状态 + 转换规则 + 动作”结构化、可测试、可扩展。状态机有很多实现风格:面向对象的