一些不错英文资料的中文翻译。
Chinese translations for classic IT resources.
自己想到去做些翻译,原因是:
翻译遵循的原则:『信』为本,力求『达』,不妄追『雅』。
信:译文忠实表达作者思想;达:让读者轻松地阅读;雅:让读者愉悦地阅读。
详见信达雅 - 百度百科。
Issue
,一起学习交流讨论!翻译是译者用自己的思想,换一种语言,对原作者想法的重新阐释。鉴于我的学识所限,误解和错译在所难免。如果你能买到本书的原版,且有能力阅读英文,请直接去读原文。因为与之相较,我的译文可能根本不值得一读。
— 云风,《程序员修炼之道 第2版》译者阅读的价值,取决于你真正想得到的是什么体验。
— 此句由@mj5219054
的PR
提供
愿你阅读愉快,祝你日有所进~ 💕
下一节是 ⬇️ 按内容主题分类 ⬇️
Kotlin
协程:自底向上的视角Kotlin
的协程应该是Java
生态中最好的协程实现,在生产环境(Android
/ 后端场景)也有比较多实际应用。
无论是Kotlin
语言还是Kotlin
协程,都非常注重务实与开发者友好,Kotlin
协程以大家习惯的命令式/过程式的编程方式写出非阻塞的高效并发程序。
但并发编程是计算机最复杂的主题之一,即使是用协程的编写方式;再者Kotlin
协程的友好使用方式,对于使用者理解协程背后的运行机制其实反而是个障碍。而真正的理解协程才能让使用协程做到心中有数避免踩坑。这篇文章自底向上视角的讲解方式,正是有意于正面解决这个问题:如何有效理解Kotlin
协程的运行机制。Bob
大叔的短文,FP
在软件开发优点上务实的思考,引导大家理解、学习和使用FP
,文章后半篇还用FP
语言Clojure
简约演示了一番。在文末不忘呼吁学习FP
,并推荐Clojure
语言。Codehaus
:协作构建开源项目的社区,强烈强调现代语言,并开发聚焦于满足实际需求的高质量组件。Groovy
、Jetty
、Gradle
、XStream
、Jackson
、Drools
、jMock
、EasyMock
、Grails
、XDoclet
、QDox
、Esper
、Mule
、Janino
、JBehave
、Stomp
以及其他数以百计开源项目,都得感谢Codehaus
社区。很多项目听起来都是如雷贯耳吧,而这份精小的Codehaus
宣言是Codehaus
多年在技术管理与开源项目运营上的思考、总结与领悟,相信非常值得一读!向Codehaus
致敬!!Java
Fork/Join
框架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
的基础重要性。API
设计原则 - Qt
官网的设计实践总结Qt
的设计水准在业界很有口碑,一致、易于掌握和强大的API
是Qt
最著名的优点之一。此文既是Qt
官网上的API
设计指导准则,也是Qt
在API
设计上的实践总结。虽然Qt
用的是C++
,但其中设计原则和思考是具有普适性的;如果你对C++
还不精通,完全可以忽略与C++
强相关或是过于细节的部分,仍然能学习或梳理关于API
设计最有价值的内容。整个篇幅中有很多示例,是关于API
设计一篇难得的好文章。Google
这篇10年前2010年的关于『实验基础设施』设计的论文,现在看来仍然是关于这个领域最有深度和体系的资料。不单说明了,实验设施的系统设计,还包含实验的进阶主题如:实验可信度、敏感度、围绕实验数据驱动的整体流程。对于了解Growth Hacking
/ABTest
的同学,可以有效的学习实验设施的系统设计,尤其是重叠实验设施要考虑多方面的需求、维度,如何建模是很复杂的;对于不了解Growth Hacking
/ABTest
这个领域知识的同学,可以通过这篇文章,学习一个复杂系统整体的思考和设计的模式,包含需求、场景、模型设计、产品流程、落地关键。Erlang
之父学习Elixir
语言的一周Erlang
之父 Joe Armstrong,对Erlang VM
上的新语言Elixir
做了很精彩的评论和思考。『特定领域专家的专业直觉』、『编程语言设计的三定律』、『管道操作符避免恶心代码』、『Elixir
的sigil
引出的程序语言如何定义/解释字符串』等等问题的讨论,个性鲜明又幽默诙谐的行文风格,都能强烈感受到 Joe Armstrong 深入广博的老黑客风范。STFW
(Search the fxxking web
)以及RTFM
(Read the fxxking manual
)就是出自本文。LinkedIn
的Kreps
发表的一篇博文,被称为 程序员史诗般必读 文章。可以作为大数据/分布式系统领域一份导论式的资料。作者对整个领域的理解和实战精深广博,抓出并梳理了这个领域的核心:日志。Lisp
书籍推荐
Lisp
书籍推荐和点评,由于Lisp
与其它语言从基本概念就开始的差异,已有的语言经验反而是个学习阻碍,深入浅出的巧妙讲解对入门太重要了。Lisp
的书籍推荐Git
工作流指南Git
工作流主题,也许这是目前最全面最深入的说明。这篇指南以大家在SVN
中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request
功能,体系地讲解了各种工作流的应用。行文中实践原则和操作示例并重,对于Git
的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着step-by-step操练学习并在实际工作中上手使用。Git
2.1
有哪些新特性?Java
你可能不知道的10件事Java
老鸟,行文风趣幽默,娓娓道出Java
的诡异和难点时不忘着给出用心良苦的提点。Linux
命令行管理网络:11个你必须知道的命令Android
手机会越用越慢,如何提速?PaxosLease
:实现租约的无盘Paxos
算法Paxos
算法变种。Paxos
(Multi-Paxos
),这是真正实践中使用的Paxos
。可以说不读这篇论文你就不知道你还不知道如何有效地描述和交流一致性算法。GUI
& CLI
原则GUI
和CLI
的原则:说明了两种Interface
适合的场景和优劣;进而引导你去思考,面向用户或作为程序员的你,交互/操作 如何才能是高效的。Java
的通用I/O
API
设计Java
IO
API
设计,更重要的是给出了这个API
设计本身的步骤和过程,这让API
设计有些条理。文中示范了从 普通简单实现 整理成 正交分解、可复用、可扩展、高性能、无错误的API
设计 的过程,这个过程是很值得理解和学习!设计偏向是艺术,一个赏心悦目的设计,尤其是API
设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件美事。在艺术工作中,真的艺术性工作量也只是一部分,而给出 方法 以 减少艺术工作之中艺术性工作量 的人是 大师。Python
Philosophy(Python
哲学)翻译及简析Stubs
和Mocks
的区别上一节是 ⬆️ 按内容时间排序 ⬆️
STFW
(Search the fxxking web
)以及RTFM
(Read the fxxking manual
)就是出自本文。Python
Philosophy(Python
哲学)翻译及简析Codehaus
:协作构建开源项目的社区,强烈强调现代语言,并开发聚焦于满足实际需求的高质量组件。Groovy
、Jetty
、Gradle
、XStream
、Jackson
、Drools
、jMock
、EasyMock
、Grails
、XDoclet
、QDox
、Esper
、Mule
、Janino
、JBehave
、Stomp
以及其他数以百计开源项目,都得感谢Codehaus
社区。很多项目听起来都是如雷贯耳吧,而这份精小的Codehaus
宣言是Codehaus
多年在技术管理与开源项目运营上的思考、总结与领悟,相信非常值得一读!向Codehaus
致敬!!Java
的通用I/O
API
设计Java
IO
API
设计,更重要的是给出了这个API
设计本身的步骤和过程,这让API
设计有些条理。文中示范了从 普通简单实现 整理成 正交分解、可复用、可扩展、高性能、无错误的API
设计 的过程,这个过程是很值得理解和学习!设计偏向是艺术,一个赏心悦目的设计,尤其是API
设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件美事。在艺术工作中,真的艺术性工作量也只是一部分,而给出 方法 以 减少艺术工作之中艺术性工作量 的人是 大师。API
设计原则 - Qt
官网的设计实践总结Qt
的设计水准在业界很有口碑,一致、易于掌握和强大的API
是Qt
最著名的优点之一。此文既是Qt
官网上的API
设计指导准则,也是Qt
在API
设计上的实践总结。虽然Qt
用的是C++
,但其中设计原则和思考是具有普适性的;如果你对C++
还不精通,完全可以忽略与C++
强相关或是过于细节的部分,仍然能学习或梳理关于API
设计最有价值的内容。整个篇幅中有很多示例,是关于API
设计一篇难得的好文章。GUI
& CLI
原则GUI
和CLI
的原则:说明了两种Interface
适合的场景和优劣;进而引导你去思考,面向用户或作为程序员的你,交互/操作 如何才能是高效的。Google
这篇10年前2010年的关于『实验基础设施』设计的论文,现在看来仍然是关于这个领域最有深度和体系的资料。不单说明了,实验设施的系统设计,还包含实验的进阶主题如:实验可信度、敏感度、围绕实验数据驱动的整体流程。对于了解Growth Hacking
/ABTest
的同学,可以有效的学习实验设施的系统设计,尤其是重叠实验设施要考虑多方面的需求、维度,如何建模是很复杂的;对于不了解Growth Hacking
/ABTest
这个领域知识的同学,可以通过这篇文章,学习一个复杂系统整体的思考和设计的模式,包含需求、场景、模型设计、产品流程、落地关键。LinkedIn
的Kreps
发表的一篇博文,被称为 程序员史诗般必读 文章。可以作为大数据/分布式系统领域一份导论式的资料。作者对整个领域的理解和实战精深广博,抓出并梳理了这个领域的核心:日志。Paxos
(Multi-Paxos
),这是真正实践中使用的Paxos
。可以说不读这篇论文你就不知道你还不知道如何有效地描述和交流一致性算法。PaxosLease
:实现租约的无盘Paxos
算法Paxos
算法变种。Kotlin
协程:自底向上的视角Kotlin
的协程应该是Java
生态中最好的协程实现,在生产环境(Android
/ 后端场景)也有比较多实际应用。
无论是Kotlin
语言还是Kotlin
协程,都非常注重务实与开发者友好,Kotlin
协程以大家习惯的命令式/过程式的编程方式写出非阻塞的高效并发程序。
但并发编程是计算机最复杂的主题之一,即使是用协程的编写方式;再者Kotlin
协程的友好使用方式,对于使用者理解协程背后的运行机制其实反而是个障碍。而真正的理解协程才能让使用协程做到心中有数避免踩坑。这篇文章自底向上视角的讲解方式,正是有意于正面解决这个问题:如何有效理解Kotlin
协程的运行机制。Java
Fork/Join
框架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
的基础重要性。FP
/Clojure
/Lisp
Bob
大叔的短文,FP
在软件开发优点上务实的思考,引导大家理解、学习和使用FP
,文章后半篇还用FP
语言Clojure
简约演示了一番。在文末不忘呼吁学习FP
,并推荐Clojure
语言。Lisp
书籍推荐
Lisp
书籍推荐和点评,由于Lisp
与其它语言从基本概念就开始的差异,已有的语言经验反而是个学习阻碍,深入浅出的巧妙讲解对入门太重要了。Lisp
的书籍推荐Git
Git
工作流指南Git
工作流主题,也许这是目前最全面最深入的说明。这篇指南以大家在SVN
中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request
功能,体系地讲解了各种工作流的应用。行文中实践原则和操作示例并重,对于Git
的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着step-by-step操练学习并在实际工作中上手使用。Git
2.1
有哪些新特性?Erlang
/Elixir
Erlang
之父学习Elixir
语言的一周Erlang
之父 Joe Armstrong,对Erlang VM
上的新语言Elixir
做了很精彩的评论和思考。『特定领域专家的专业直觉』、『编程语言设计的三定律』、『管道操作符避免恶心代码』、『Elixir
的sigil
引出的程序语言如何定义/解释字符串』等等问题的讨论,个性鲜明又幽默诙谐的行文风格,都能强烈感受到 Joe Armstrong 深入广博的老黑客风范。Java
Java
你可能不知道的10件事Java
老鸟,行文风趣幽默,娓娓道出Java
的诡异和难点时不忘着给出用心良苦的提点。Stubs
和Mocks
的区别