译文: https://github.com/oldratlee/translations
- 2020-02 理解Kotlin协程:自底向上的视角
Kotlin 的协程应该是 Java 生态中最好的协程实现,在生产环境(Android / 后端场景)也有比较多实际应用。 无论是 Kotlin 语言还是 Kotlin 协程,都非常注重务实与开发者友好,Kotlin 协程以大家习惯的命令式 / 过程式的编程方式写出非阻塞的高效并发程序。 但并发编程是计算机最复杂的主题之一,即使是用协程的编写方式;再者 Kotlin 协程的友好使用方式,对于使用者理解协程背后的运行机制其实反而是个障碍。而真正的理解协程才能让使用协程做到心中有数避免踩坑。这篇文章自底向上视角的讲解方式,正是有意于正面解决这个问题:如何有效理解 Kotlin 协程的运行机制。 - 2019-09 手把手介绍函数式编程:从命令式重构到函数式
本文是一篇手把手的函数式编程入门介绍,借助代码示例讲解细腻。但又不乏洞见,第一节中列举和点评了函数式种种让眼花缭乱特质,给出了『理解函数式特质的指南针:函数式代码的核心特质就一条,无副作用』,相信对于有积极学过挖过的函数式同学看来更是有相知恨晚的感觉。希望看了这篇文章之后能在学习和使用函数式编程的旅途中不再迷路哦,兄 die~ - 2018-10 务实的函数式编程(by Bob 大叔)
Bob 大叔的短文,FP 在软件开发优点上务实的思考,引导大家理解、学习和使用 FP,文章后半篇还用 FP 语言 Clojure 简约演示了一番。在文末不忘呼吁学习 FP,并推荐 Clojure 语言。 - 2018-10 Codehaus 宣言:技术管理与开源项目运营之道
Codehaus:协作构建开源项目的社区,强烈强调现代语言,并开发聚焦于满足实际需求的高质量组件。Groovy、Jetty、Gradle、XStream、Jackson、Drools、jMock、EasyMock、Grails、XDoclet、QDox、Esper、Mule、Janino、JBehave、Stomp 以及其他数以百计开源项目,都得感谢 Codehaus 社区。很多项目听起来都是如雷贯耳吧,而这份精小的 Codehaus 宣言是 Codehaus 多年在技术管理与开源项目运营上的思考、总结与领悟,相信非常值得一读!向 Codehaus 致敬!! - 2017-11 JavaFork/Join框架
Doug Lea 大神关于 Java 7 引入的他写的 Fork/Join 框架的论文。反应式编程(Reactive Programming/RP)作为一种范式在整个业界正在逐步受到认可和落地,是对过往系统的业务需求理解梳理之后对系统技术设计 / 架构模式的提升总结。Java 作为一个成熟平台,对于趋势一向有着稳健的接纳和跟进能力,有着令人惊叹的生命活力:Java 7 提供了 ForkJoinPool,支持了 Java 8 提供的 Stream,另外 Java 8 还提供了 Lambda(有效地表达和使用 RP 需要 FP 的语言构件和理念);有了前面的这些稳健但不失时机的准备,在 Java 9 中提供了面向 RP 的官方 Flow API,实际上是直接把 Reactive Streams的接口加在 Java 标准库中,即 Reactive Streams规范转正了。Reactive Streams 是 RP 的基础核心组件,Java 提供了 Flow API 标志着 RP 完成了由 集市式的自由探索阶段 向 教堂式的规范统一阶段 的转变。通过上面这些说明,可以看到 ForkJoinPool 的基础重要性。 - 2017-07 API设计原则 -Qt官网的设计实践总结
Qt 的设计水准在业界很有口碑,一致、易于掌握和强大的 API 是 Qt 最著名的优点之一。此文既是 Qt 官网上的 API 设计指导准则,也是 Qt 在 API 设计上的实践总结。虽然 Qt 用的是 C++,但其中设计原则和思考是具有普适性的(如果你对 C++ 还不精通,可以忽略与 C++ 强相关或是过于细节的部分,仍然可以学习或梳理关于 API 设计最有价值的内容)。整个篇幅中有很多示例,是关于 API 设计一篇难得的好文章。 - 2017-05 重叠实验设施:更多、更好、更快地实验
Google 这篇 10 年前 2010 年的关于『实验基础设施』设计的论文,现在看来仍然是关于这个领域最有深度和体系的资料。不单说明了,实验设施的系统设计,还包含实验的进阶主题如:实验可信度、敏感度、围绕实验数据驱动的整体流程。对于了解 Growth Hacking/ABTest 的同学,可以有效的学习实验设施的系统设计,尤其是重叠实验设施要考虑多方面的需求、维度,如何建模是很复杂的;对于不了解 Growth Hacking/ABTest 这个领域知识的同学,可以通过这篇文章,学习一个复杂系统整体的思考和设计的模式,包含需求、场景、模型设计、产品流程、落地关键。 - 2016-10 Erlang之父学习Elixir语言的一周
作为 Erlang 之父 Joe Armstrong,对 Erlang VM 上的新语言 Elixir 做了很精彩的评论和思考。『特定领域专家的专业直觉』、『编程语言设计的三定律』、『管道操作符避免恶心代码』、『Elixir 的 sigil 引出的程序语言如何定义 / 解释字符串』等等问题的讨论,个性鲜明又幽默诙谐的行文风格,都能强烈感受到 Joe Armstrong 深入广博的老黑客风范。 - 2015-10 提问的智慧
说明了作者所认为一位发问者事前应该要做好什么,而什么又是不该做的。作者认为这样能让问题容易令人理解,而且发问者自己也能学到较多东西。此文在网络上受到欢迎,被广泛转载而广为人知甚至奉为经典。著名的两个缩写 STFW(Search the fxxking web)以及 RTFM(Read the fxxking manual)就是出自本文。 - 2015-08 日志:每个软件工程师都应该知道的有关实时数据的统一抽象
这篇文章是 LinkedIn 的 Kreps 发表的一篇博文,被称为 程序员史诗般必读 文章。可以作为大数据 / 分布式系统领域一份导论式的资料。作者对整个领域的理解和实战精深广博,抓出并梳理了这个领域的核心:日志。 - 2014-09 Successful Lisp中的Lisp书籍推荐
- Lisp书籍推荐和点评,由于 Lisp 与其它语言从基本概念就开始的差异,已有的语言经验反而是个学习阻碍,深入浅出的巧妙讲解对入门太重要了。
- 特别提这篇好文【转】学习Lisp的书籍推荐
- 2014-09 Git工作流指南
关于 Git 工作流主题,也许这是目前最全面最深入的说明。这篇指南以大家在 SVN 中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的 Pull Request 功能,体系地讲解了各种工作流的应用。行文中实践原则和操作示例并重,对于 Git 的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着 step-by-step 操练学习并在实际工作中上手使用。 - 2014-09 Git2.1有哪些新特性?
- 2014-12 关于Java你可能不知道的 10 件事
作者是个 Java 老鸟,行文风趣幽默,娓娓道出 Java 的诡异和难点时不忘着给出用心良苦的提点。 - 2014-03 如何用Linux命令行管理网络:11 个你必须知道的命令
- 2014-03 为什么Android手机会越用越慢,如何提速?
- 2013-01 PaxosLease:实现租约的无盘Paxos算法
可以说是最简单且可以实际使用的 Paxos 算法变种。 - 2012-12 Paxos Made Simple
该论文给出描述一致性问题的概念、术语、算法,从复杂中抓取出了核心,给出了如此简单的描述。另言简意赅地说明了多实例 Paxos(Multi-Paxos),这是真正实践中使用的 Paxos。可以说不读这篇论文你就不知道你还不知道如何有效地描述和交流一致性算法。 - 2012-11 GUI&CLI原则
文中列出的 GUI 和 CLI 的原则:说明了两种 Interface 适合的场景和优劣;进而引导你去思考,面向用户或作为程序员的你,交互 / 操作 如何才能是高效的。 - 2012-05 Java的通用I/OAPI设计
给出了一个通用 Java IO API 设计,更重要的是给出了这个 API 设计本身的步骤和过程,这让 API 设计有些条理。文中示范了从 普通简单实现 整理成 正交分解、可复用、可扩展、高性能、无错误的 API 设计 的过程,这个过程是很值得理解和学习!设计偏向是艺术,一个赏心悦目的设计,尤其是 API 设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件美事。在艺术工作中,真的艺术性工作量也只是一部分,而给出 方法 以 减少艺术工作之中艺术性工作量 的人是 大师。 - 2010-09 PythonPhilosophy(Python哲学)翻译及简析
既有指明大是大非的理念,又有指导细节操作的准则;既有谆谆教导的推荐,也有声色俱厉的禁止。 - 2010-03 Stubs和Mocks的区别
翻译自《Programming Groovy》,讲得言简意赅。