engineering

Rust语言的异步编程模型和协程支持

本文有 11113 字,大约需要 27 分钟可以读完, 创建于 2019-12-07

通用的注重性能的现代编程语言都在慢慢地加入对异步编程和协程模型的支持,作为一门强调性能和零成本抽象的语言,Rust自然也不甘落人之后。 可能是因为Rust语言社区出于对自身特殊的生存周期管理机制多带来的其它语言所有没有的额外的编译器实现复杂性,以及开放语言生态系统中的功能开发优先级(它迄今为止还在快速演进中)考...

Rust文本处理的性能及优化

本文有 9807 字,大约需要 24 分钟可以读完, 创建于 2019-11-29

作为一门秉承零成本抽象这一极具挑战的目标为语言设计核心的静态变成语言,用Rust语言来编写一些文本处理程序可以不需要可以优化就能达到很高的性能。 但是如果我们对已经写就的文本处理程序的性能不甚满意,觉得不够快或者想将它推向性能更高的境地,即需要进一步优化,可能还不得不额外下一些功夫才能做到。

现代C++的内存模型和高性能的多线程编程

本文有 12812 字,大约需要 32 分钟可以读完, 创建于 2019-11-04

内存模型是现代C++语言标准里面的一个经常不太为人重视的特性;这种忽视大概是由于大部分的程序员关注的还是核心语言特性或者库设施这样的一些比较实用的“硬特性”。 相对而言,内存模型这样的底层的概念和机制看起来更像是给面向程序库编程的底层程序员用的。 然而如果我们想追求极致的应用程序性能,又想追求可移植性、高性能这...

Google的新操作系统Fuchsia的内核设计

本文有 15492 字,大约需要 38 分钟可以读完, 创建于 2019-10-06

传说中的Google的下一代操作系统项目Fuchsia一直处于“犹抱琵琶半遮面”的半公开状态,只是它的代码早就开源出来一段时间了,多有人猜测它是不是下一代的大杀器,将来会通吃目前的Android和Chrome OS生态圈;然而官方的说法却一致是含糊不清。 由于最近的一些政治事件引起的余波,技术圈又有不少人讨论这个...

reduce-cpp-template-overhead

本文有 17976 字,大约需要 44 分钟可以读完, 创建于 2019-10-04

新的C++语言标准的演进越来越强调静态编译(即运行期计算)的优势,因为这一发展方向无疑更贴合现代的C++语言Zero Cost Abstraction的目标; 可惜这样做有个非常明显的副作用就是给编译器带来了巨大的挑战,乃至于稍微复杂一点的项目也动辄需要数个小时才能编译完成。

重学Kubernetes - 读张磊的《深度剖析Kubernetes》

本文有 17808 字,大约需要 44 分钟可以读完, 创建于 2019-08-24

云计算从十年前的风起云涌却叫好不叫座的局面慢慢地变成了无人刻意提起的境地,这一切的幕后游戏规则改变者某种程度上来说 都是因为Kubernetes这个伟大的开源项目以及依托于它的云原生运动 (参考前文)) 的蓬勃发展而激发。

C++20 - 下一个大版本功能确定

本文有 12400 字,大约需要 31 分钟可以读完, 创建于 2019-06-23

C++20的功能特性已经于3月份冻结,显然这次终于来了一波大的改进,而不再是像之前C++14/C++17那般小打小闹的做小步快跑,尤其是三个讨论很久的大feature终于被合入主干;并且这些feature终将会极大地影响后续C++代码的书写方式。

C++正则表达式比Python慢?

本文有 3625 字,大约需要 9 分钟可以读完, 创建于 2019-06-22

C++17 推出已经有将近3年的时间,速度快一些的公司才慢慢采纳了6年前的C++14进入正式的生产环境。 程序员们的一个大福利就是终于不用外挂第三方库(无论是准标准的boost还是其它形形色色的其它第三方库)就可以直接方便地使用标准库自带的<regex>来写代码; 这显然比直接使用原始而笨拙的stri...

实现领域驱动设计

本文有 16609 字,大约需要 41 分钟可以读完, 创建于 2019-02-23

领域驱动设计在最近几年里越来越多地走进了主流架构设计的中心舞台上来了,这一切其实似乎是在业界精神领袖Martin Folwer在 他的《企业软件架构模式》一书和各种各样的讨论中的推荐之下之后忽然就火了起来。 甚至有一种说法是:如果学完了设计模式之后感觉没有什么用武之地,那么你需要去好好看一下Eric Evans写...

读Uncle Bob新书-Clean Archtiecture

本文有 14506 字,大约需要 36 分钟可以读完, 创建于 2019-01-26

不经意发现Bob大叔出版了新书,延续之前的命名风格定名为《Clean Architecture》,英文版已经于2017年底正式上市; 刚好公司的账户可以访问Orielly公司的在线书城,于是就断断续续地读了起来。 Bob大叔讲故事的能力即使在久负盛名的技术作家圈里面也是闪耀出众的,可以算作是高手中的高手,行文由浅...

基于风险驱动的恰如其分的软件架构

本文有 4543 字,大约需要 11 分钟可以读完, 创建于 2016-05-14

随着岁月的推移,软件系统的规模、功能、复杂度都在呈现数量级增长,随之而来的变化带给软件开发者的压力与日俱增,更不要说各种敏捷方法和快速开发方法的流行极大地吊起了客户对交付时间和质量的期望。开源软件的日趋完善和其对应社区的指数级增长带来了数量庞大的框架、库等基本构造块,开发者可以借助各种成熟的基础设施和成熟完善的开...