oldratlee / translations

🐼 Chinese translations for classic software development resources
https://github.com/oldratlee/translations
Other
6.86k stars 1.56k forks source link
api api-design chinese-translation concurrency consensus design design-principle distributed-systems elixir erlang experiment functional-programming git lisp paxos python reactive simplified-chinese translation translations

🐼 translations

知识共享协议(CC协议) Licence: CC BY-NC-SA 4.0
GitHub stars GitHub forks GitHub Contributors

一些不错英文资料的中文翻译。
Chinese translations for classic IT resources.


自己想到去做些翻译,原因是:

  1. 促进 自己的深入学习
    • 一份经典资料深入研读十遍,相信收益大于,泛读十份资料。
    • 而深入学习理解是翻译所要求反复推敲的副产品,主动表达会是个更好的学习方式。
  2. 训练 自己的写作基础技能
    • 写作即是思考,文字是我们表达思想最常用的方式,也可能是最有用的方式。
    • 写作、遣词造句是最重要的基础技能之一,而翻译是在刻意练习这个技能。
    • 虽说纸短情长、言外有意,语言文字并不能表达想要表达的一切,但只要输出成语言文字就有了在时间与空间上更好的扩展性:
      • 语言文字可以长时间的流传,而不限于作者的几十年光景。
      • 语言文字可以给大量人的阅读,而不限于作者所在的场合范围。
      • 可以被使用传承,甚至进一步改进和衍生。
    • 思想的文字化/文档化 意味着 文明(仅个人的拔高说辞 😂 )。
  3. 能为大家 带来便利
  4. 兴趣

翻译遵循的原则:『信』为本,力求『达』,不妄追『雅』。

信:译文忠实表达作者思想;达:让读者轻松地阅读;雅:让读者愉悦地阅读。
详见信达雅 - 百度百科


翻译是译者用自己的思想,换一种语言,对原作者想法的重新阐释。鉴于我的学识所限,误解和错译在所难免。如果你能买到本书的原版,且有能力阅读英文,请直接去读原文。因为与之相较,我的译文可能根本不值得一读。
 — 云风,《程序员修炼之道 第2版》译者

阅读的价值,取决于你真正想得到的是什么体验。
 — 此句由@mj5219054PR提供

愿你阅读愉快,祝你日有所进~ 💕

⏳ 按内容时间排序

下一节是 ⬇️ 按内容主题分类 ⬇️

🎵 按内容主题分类

上一节是 ⬆️ 按内容时间排序 ⬆️

思考/思维

  1. 提问的智慧
    说明了作者所认为一位发问者事前应该要做好什么,而什么又是不该做的。作者认为这样能让问题容易令人理解,而且发问者自己也能学到较多东西。此文在网络上受到欢迎,被广泛转载而广为人知甚至奉为经典。著名的两个缩写STFWSearch the fxxking web)以及RTFMRead the fxxking manual)就是出自本文。

设计原则

  1. Python Philosophy(Python哲学)翻译及简析
    既有指明大是大非的理念,又有指导细节操作的准则;既有谆谆教导的推荐,也有声色俱厉的禁止。
  2. Codehaus宣言:技术管理与开源项目运营之道
    Codehaus:协作构建开源项目的社区,强烈强调现代语言,并开发聚焦于满足实际需求的高质量组件。GroovyJettyGradleXStreamJacksonDroolsjMockEasyMockGrailsXDocletQDoxEsperMuleJaninoJBehaveStomp 以及其他数以百计开源项目,都得感谢Codehaus社区。很多项目听起来都是如雷贯耳吧,而这份精小的Codehaus宣言是Codehaus多年在技术管理与开源项目运营上的思考、总结与领悟,相信非常值得一读!Codehaus致敬!!
  3. Java的通用I/O API设计
    给出了一个通用Java IO API设计,更重要的是给出了这个API设计本身的步骤和过程,这让API设计有些条理。文中示范了从 普通简单实现 整理成 正交分解、可复用、可扩展、高性能、无错误的API设计 的过程,这个过程是很值得理解和学习!设计偏向是艺术,一个赏心悦目的设计,尤其是API设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件美事。在艺术工作中,真的艺术性工作量也只是一部分,而给出 方法减少艺术工作之中艺术性工作量 的人是 大师
  4. API设计原则 - Qt官网的设计实践总结
    Qt的设计水准在业界很有口碑,一致、易于掌握和强大的APIQt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是QtAPI设计上的实践总结。虽然Qt用的是C++,但其中设计原则和思考是具有普适性的;如果你对C++还不精通,完全可以忽略与C++强相关或是过于细节的部分,仍然能学习或梳理关于API设计最有价值的内容。整个篇幅中有很多示例,是关于API设计一篇难得的好文章。
  5. GUI & CLI原则
    文中列出的GUICLI的原则:说明了两种Interface适合的场景和优劣;进而引导你去思考,面向用户或作为程序员的你,交互/操作 如何才能是高效的。

系统设计实例

  1. 重叠实验设施:更多、更好、更快地实验
    Google这篇10年前2010年的关于『实验基础设施』设计的论文,现在看来仍然是关于这个领域最有深度和体系的资料。不单说明了,实验设施的系统设计,还包含实验的进阶主题如:实验可信度、敏感度、围绕实验数据驱动的整体流程。对于了解Growth Hacking/ABTest的同学,可以有效的学习实验设施的系统设计,尤其是重叠实验设施要考虑多方面的需求、维度,如何建模是很复杂的;对于不了解Growth Hacking/ABTest这个领域知识的同学,可以通过这篇文章,学习一个复杂系统整体的思考和设计的模式,包含需求、场景、模型设计、产品流程、落地关键。

分布式系统/大数据

  1. 日志:每个软件工程师都应该知道的有关实时数据的统一抽象
    这篇文章是LinkedInKreps发表的一篇博文,被称为 程序员史诗般必读 文章。可以作为大数据/分布式系统领域一份导论式的资料。作者对整个领域的理解和实战精深广博,抓出并梳理了这个领域的核心:日志。
  2. Paxos Made Simple
    该论文给出描述一致性问题的概念、术语、算法,从复杂中抓取出了核心,给出了如此简单的描述。另言简意赅地说明了多实例PaxosMulti-Paxos),这是真正实践中使用的Paxos。可以说不读这篇论文你就不知道你还不知道如何有效地描述和交流一致性算法。
  3. PaxosLease:实现租约的无盘Paxos算法
    可以说是最简单且可以实际使用的Paxos算法变种。

并发

  1. 理解Kotlin协程:自底向上的视角
    Kotlin的协程应该是Java生态中最好的协程实现,在生产环境(Android / 后端场景)也有比较多实际应用。 无论是Kotlin语言还是Kotlin协程,都非常注重务实与开发者友好,Kotlin协程以大家习惯的命令式/过程式的编程方式写出非阻塞的高效并发程序。 但并发编程是计算机最复杂的主题之一,即使是用协程的编写方式;再者Kotlin协程的友好使用方式,对于使用者理解协程背后的运行机制其实反而是个障碍。而真正的理解协程才能让使用协程做到心中有数避免踩坑。这篇文章自底向上视角的讲解方式,正是有意于正面解决这个问题:如何有效理解Kotlin协程的运行机制。
  2. Java Fork/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 StreamsRP的基础核心组件,Java提供了Flow API 标志着 RP完成了由 集市式的自由探索阶段 向 教堂式的规范统一阶段 的转变。通过上面这些说明,可以看到ForkJoinPool的基础重要性。

FP/Clojure/Lisp

  1. 务实的函数式编程(by Bob大叔)
    Bob大叔的短文,FP在软件开发优点上务实的思考,引导大家理解、学习和使用FP,文章后半篇还用FP语言Clojure简约演示了一番。在文末不忘呼吁学习FP,并推荐Clojure语言。
  2. 手把手介绍函数式编程:从命令式重构到函数式
    本文是一篇手把手的函数式编程入门介绍,借助代码示例讲解细腻。但又不乏洞见,第一节中列举和点评了函数式种种让眼花缭乱特质,给出了『理解函数式特质的指南针:函数式代码的核心特质就一条,无副作用』,相信对于有积极学过挖过的函数式同学看来更是有相知恨晚的感觉。希望看了这篇文章之后能在学习和使用函数式编程的旅途中不再迷路哦,兄die~
  3. Successful Lisp 中的Lisp书籍推荐

Git

  1. Git工作流指南
    关于Git工作流主题,也许这是目前最全面最深入的说明。这篇指南以大家在SVN中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request功能,体系地讲解了各种工作流的应用。行文中实践原则和操作示例并重,对于Git的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着step-by-step操练学习并在实际工作中上手使用。
  2. Git 2.1有哪些新特性?

Erlang/Elixir

  1. Erlang之父学习Elixir语言的一周
    作为Erlang之父 Joe Armstrong,对Erlang VM上的新语言Elixir做了很精彩的评论和思考。『特定领域专家的专业直觉』、『编程语言设计的三定律』、『管道操作符避免恶心代码』、『Elixirsigil引出的程序语言如何定义/解释字符串』等等问题的讨论,个性鲜明又幽默诙谐的行文风格,都能强烈感受到 Joe Armstrong 深入广博的老黑客风范。

Java

  1. 关于Java你可能不知道的10件事
    作者是个Java老鸟,行文风趣幽默,娓娓道出Java的诡异和难点时不忘着给出用心良苦的提点。

软件测试

  1. StubsMocks的区别
    翻译自《Programming Groovy》,讲得言简意赅。

其它

  1. 如何用Linux命令行管理网络:11个你必须知道的命令
  2. 为什么Android手机会越用越慢,如何提速?