GithubHelp home page GithubHelp logo

oldratlee / translations Goto Github PK

View Code? Open in Web Editor NEW
6.8K 422.0 1.6K 14.12 MB

🐼 Chinese translations for classic software development resources

Home Page: https://github.com/oldratlee/translations

License: Other

translation chinese-translation lisp erlang elixir git design distributed-systems paxos python

translations's Introduction

🐼 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提供

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

⏳ 按内容时间排序

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

  • 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:协作构建开源项目的社区,强烈强调现代语言,并开发聚焦于满足实际需求的高质量组件。GroovyJettyGradleXStreamJacksonDroolsjMockEasyMockGrailsXDocletQDoxEsperMuleJaninoJBehaveStomp 以及其他数以百计开源项目,都得感谢Codehaus社区。很多项目听起来都是如雷贯耳吧,而这份精小的Codehaus宣言是Codehaus多年在技术管理与开源项目运营上的思考、总结与领悟,相信非常值得一读!Codehaus致敬!!
  • 2017-11 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的基础重要性。
  • 2017-07 API设计原则 - Qt官网的设计实践总结
    Qt的设计水准在业界很有口碑,一致、易于掌握和强大的APIQt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是QtAPI设计上的实践总结。虽然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做了很精彩的评论和思考。『特定领域专家的专业直觉』、『编程语言设计的三定律』、『管道操作符避免恶心代码』、『Elixirsigil引出的程序语言如何定义/解释字符串』等等问题的讨论,个性鲜明又幽默诙谐的行文风格,都能强烈感受到 Joe Armstrong 深入广博的老黑客风范。
  • 2015-10 提问的智慧
    说明了作者所认为一位发问者事前应该要做好什么,而什么又是不该做的。作者认为这样能让问题容易令人理解,而且发问者自己也能学到较多东西。此文在网络上受到欢迎,被广泛转载而广为人知甚至奉为经典。著名的两个缩写STFWSearch the fxxking web)以及RTFMRead the fxxking manual)就是出自本文。
  • 2015-08 日志:每个软件工程师都应该知道的有关实时数据的统一抽象
    这篇文章是LinkedInKreps发表的一篇博文,被称为 程序员史诗般必读 文章。可以作为大数据/分布式系统领域一份导论式的资料。作者对整个领域的理解和实战精深广博,抓出并梳理了这个领域的核心:日志。
  • 2014-09 Successful Lisp 中的Lisp书籍推荐
  • 2014-09 Git工作流指南
    关于Git工作流主题,也许这是目前最全面最深入的说明。这篇指南以大家在SVN中已经广为熟悉使用的集中式工作流作为起点,循序渐进地演进到其它高效的分布式工作流,还介绍了如何配合使用便利的Pull Request功能,体系地讲解了各种工作流的应用。行文中实践原则和操作示例并重,对于Git的资深玩家可以梳理思考提升,而新接触的同学,也可以跟着step-by-step操练学习并在实际工作中上手使用。
  • 2014-09 Git 2.1有哪些新特性?
  • 2014-12 关于Java你可能不知道的10件事
    作者是个Java老鸟,行文风趣幽默,娓娓道出Java的诡异和难点时不忘着给出用心良苦的提点。
  • 2014-03 如何用Linux命令行管理网络:11个你必须知道的命令
  • 2014-03 为什么Android手机会越用越慢,如何提速?
  • 2013-01 PaxosLease:实现租约的无盘Paxos算法
    可以说是最简单且可以实际使用的Paxos算法变种。
  • 2012-12 Paxos Made Simple
    该论文给出描述一致性问题的概念、术语、算法,从复杂中抓取出了核心,给出了如此简单的描述。另言简意赅地说明了多实例PaxosMulti-Paxos),这是真正实践中使用的Paxos。可以说不读这篇论文你就不知道你还不知道如何有效地描述和交流一致性算法。
  • 2012-11 GUI & CLI原则
    文中列出的GUICLI的原则:说明了两种Interface适合的场景和优劣;进而引导你去思考,面向用户或作为程序员的你,交互/操作 如何才能是高效的。
  • 2012-05 Java的通用I/O API设计
    给出了一个通用Java IO API设计,更重要的是给出了这个API设计本身的步骤和过程,这让API设计有些条理。文中示范了从 普通简单实现 整理成 正交分解、可复用、可扩展、高性能、无错误的API设计 的过程,这个过程是很值得理解和学习!设计偏向是艺术,一个赏心悦目的设计,尤其是API设计,旁人看来多是妙手偶得的感觉,如果能有些章可循真是一件美事。在艺术工作中,真的艺术性工作量也只是一部分,而给出 方法减少艺术工作之中艺术性工作量 的人是 大师
  • 2010-09 Python Philosophy(Python哲学)翻译及简析
    既有指明大是大非的理念,又有指导细节操作的准则;既有谆谆教导的推荐,也有声色俱厉的禁止。
  • 2010-03 StubsMocks的区别
    翻译自《Programming Groovy》,讲得言简意赅。

🎵 按内容主题分类

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

思考/思维

  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手机会越用越慢,如何提速?

translations's People

Contributors

airstone42 avatar angty avatar beyondyuefei avatar codeyu avatar craneyuan avatar diorch avatar driventokill avatar findstr avatar gitter-badger avatar haoel avatar jeff2go avatar kun-song avatar lcynot avatar mj5219054 avatar newjie avatar oldratlee avatar quan7u avatar steven-cmy avatar strawhatfy avatar xiangmingzhe0928 avatar xuqinghan avatar zoroqi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

translations's Issues

译: A Look Into NASA’s Coding Philosophy

clean extra TTL value in destination thread

您好,请教一个问题:

TransmittableThreadLocal类中的 backupAndSet() 方法中,如下代码:

for (Iterator<? extends Map.Entry<TransmittableThreadLocal<?>, ?>> iterator = holder.get().entrySet().iterator();
             iterator.hasNext(); ) {
    Map.Entry<TransmittableThreadLocal<?>, ?> next = iterator.next();
    TransmittableThreadLocal<?> threadLocal = next.getKey();

    // 此处将线程池所在线程threadlocal备份
    backup.put(threadLocal, threadLocal.get());

    // 没太理解此处,为何将copied中不存在,holder中存在的 threadlocal remove?
    if (!copied.containsKey(threadLocal)) {
        iterator.remove();
        threadLocal.superRemove();
    }
}

一旦调用iterator.remove()本来不属于当前线程的threadlocal也会被remove,这样假如此时另外一个线程池中的线程调用了copy()方法,就会丢失部分数据?

不知我哪里理解错误,望批评指正。
期待回复

翻译『API Design Principles』

随机的int有问题

这条其实是一个迷题,先不要看解答。看看你能不能自己找出解法。

运行下面的代码:

for (int i = 0; i < 10; i++) {
    System.out.println((Integer) i);
}

…… 然后要得到类似下面的输出(每次输出是随机结果):

92
221
45
48
236
183
39
193
33
84

Output:

0
1
2
3
4
5
6
7
8
9

翻译 Scala编程语言之”疣“

Warts of the Scala Programming Language http://www.lihaoyi.com/post/WartsoftheScalaProgrammingLanguage.html

这里有一份翻译
http://hangscer.win/2017/05/30/Warts-of-the-Scala-Programming-Language-%E4%B8%AD%E6%96%87%E7%BF%BB%E8%AF%91/


http://weibo.com/1715118170/F56QFtwcB
【Warts of the Scala programming language】Scala编程语言之”疣“。Scala是我目前最喜欢的通用编程语言。 但是它绝对有缺点。 虽然有些在设计语言时有很大的权衡,但其它的则是微不足道的愚蠢的问题导致沮丧程度远远超出了它们的复杂程度:“疣”。 这篇文章将探讨一些在我看来是Scala编程语言之“疣”,希望提高他们作为问题的存在意识,并建立一个愿望在更广泛的社区以解决它们。

你好,问一个hotfix分支的问题

文中提到的,hotfix分支使用方式是不是点问题。因为从图上看,这个似乎是不能像release分支一样,去走一个发布流程,这不符合规范吧。

翻译『Strategic Scala Style: Principle of Least Power』

Strategic Scala Style: Principle of Least Power
http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html


『API设计原则』翻译建义:could have翻译不要丢掉虚拟语气

For example, QMimeSourceFactory in Qt 3 could have been called QImageLoader and have a different API.
举个例子,在Qt 3中,QMimeSourceFactory不应命名成QImageLoader并有不一样的API。

could have 虚拟语气。 如果不是为了简介清晰,QMimeSourceFactory 在Qt 3中会被叫做QImageLoader并有一套不同的API.

翻译: A practical introduction to functional programming

A practical introduction to functional programming
https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming

信息来源

来自非常好的FP书籍《Functional Programming,Simplified(Scala edition)》 ❤️

Chapter - What is “Functional Programming”? / Section - Proof: A wonderful quote from Mary Rose Cook:

When I first started learning FP, I was aware that pure functions were important, but this point was really driven home when I came across an article titled A Practical Introduction to Functional Programming by Mary Rose Cook.

Ms. Cook used to work at the Recurse Center (formerly known as “Hacker School”) and now works at Makers Academy, and in her “Practical Introduction to FP” essay, she refers to using only pure functions as a Guide Rope to learning FP:

When people talk about functional programming, they mention a dizzying number of ‘functional’ characteristics. They mention immutable data, first class functions, and tail call optimisation. These are language features that aid functional programming.

They mention mapping, reducing, pipelining, recursing, currying and the use of higher order functions. These are programming techniques used to write functional code.

They mention parallelization, lazy evaluation, and determinism. These are advantageous properties of functional programs.

Ignore all that. Functional code is characterised by one thing: the absence of side effects. It (a pure function) doesn’t rely on data outside the current function, and it doesn’t change data that exists outside the current function. Every other ‘functional’ thing can be derived from this property. Use it as a guide rope as you learn.

When she writes about the “absence of side effects,” she’s referring to building applications from pure functions.

Her guide rope statement is so good, it bears repeating:

Functional code is characterised by one thing: the absence of side effects.

When I first read this quote, the little light bulb went on over my head and I began focusing even more on writing only pure functions.

If you think about it, this statement means exactly what I wrote at the beginning of this lesson:

Functional programming is a way of writing software applications using only pure functions and immutable values.

wiki的用法简介

可否把github上的wiki的用法简介给写一下呢?或者推荐一个相关文档也可以。多谢啦! @oldratlee

刚开始学习Git及Github

希望楼主能整理一下GitGithub术语的中英文对照表,比如

  • Repository是否对应仓库
  • Pull Request是否对应提交?

Fork-Join这篇翻译存在的错误

- 尽管这些框架都能适应 不能形式 的并行程序,他们优化了Fork/Join的设计:
+ 尽管这些框架都能适应 不同形式 的并行程序,他们优化了Fork/Join的设计:

计算机格言收集、整理、翻译和简析

你好,想问下关于git flow的develop分支上的合并操作?

workflow-gitflow.md#小红完成发布

在小红完成功能开发中,本地some-feature分支先是合并了远程develop分支,然后本地develop分支合并了本地some-feature分支之后提交,然后删除了本地some-feature分支。

  1. 远程是否存在some-feature分支?
  2. 那么在小红完成发布中,本地release-0.1分支是否应该在本地master分支合并完成之后,先合并来自远程develop分支的代码,然后本地develop分支合并本地release-0.1分支,然后提交?

git集中式工作流

原文有这么一段话:

git pull --rebase

# 【译注】:
# 原文用的命令是 git push --rebase origin master
# 原因同上

其中 git push --rebase origin master 应为
git pull --rebase origin master

原文地址

统一feed的翻译用词 log-what-every-software-engineer-should-know-about-real-time-datas-unifying

feed 本文表示的是 用于数据处理生产新数据的输入数据,『喂养』的本意 体现了 feed驱动了数据处理过程。

可能的翻译:

  • 输入数据
  • 数据输入
  • 输入
  • 喂入数据
  • 灌入数据

上面的用词都不理想,没有体现出『喂养』形象感,但技术翻译中不合适使用『喂养』这个词。

译文中使用

  • 直接使用feed
  • 动词时,译成 『输入』/ 『输出』?
  • 名词时,译成 『输入数据』/ 『输出数据』?

意义没错,但很平淡。。。

翻译 The Rise of Worse is Better(来自Erlang讨论)

The Rise of Worse is Better http://dreamsongs.com/RiseOfWorseIsBetter.html

已有的翻译稿:

PS

关于Erlang:

  • 面向并发(建模、设计、容错、软实时),一等公民,其它是模仿,只有局部。(底层公平调度)。
  • 关于防过载
    • 目前我们的方案,如Java圈子里基于服务TPS的限流方案,都挺不漂亮的,感觉是个Patch:复杂、繁琐、容易踩坑。
    • Erlang的机制 过载时也是 稳定的。 细节我还理解的不够。
  • Let it crash
  • 十几年的积累&优化,产品级
  • beam 是很公平的调度,JVM 是依赖 OS 的调度,感觉 beam 的调度比 OS 的还要公平

Erlang方面 很劲暴(激进)的文章

Erlang的知乎主题

  • 为啥 Erlang 没有像 Go、Scala 语言那样崛起?
    Erlang 有一个简单、正确、不妥协的接口,但是底层实现就不得不非常复杂精巧,当底层实现的优化都不能满足你的特定需求时,你很难绕过统一美好的模型做case by case, quick and dirty的优化。
  • Worse is Better 能比较好地解释题主的「为什么」。也是篇劲暴的文章。。。
    • 激进的人和文章!
    • 要坚持美好真TM难, 结果 Worse is Better
    • 虽然大部分场景 用Worse的方案 是OK的,但是
      • Better的方案一旦理解,整体软件成本 应用 优的
      • 对于要求高的场景 , Worse应该是做的半桶水,做不到够用。
      • 非常均匀的任务切换,Erlang为了实现“可抢占的公平”下了很大功夫。
        要使用美好的东西也很难, 使用好难, 系统理解&使用对 难。

整理Doug Lea论文A Java Fork/Join Framework的译文

已经有 译文稿 Java Fork Join 框架 http://ifeve.com/a-java-fork-join-framework/

值得改进,原因:

  1. 翻译内容不完整
  2. 在 ifeve.com 一小节内容不多但各成一页,阅读/导航不方便

更多参见: Doug Lea并发编程文章全部译文 http://ifeve.com/doug-lea/

PS:

PPS:

Fork/Join Framework vs. Parallel Streams vs. ExecutorService: The Ultimate Fork/Join Benchmark http://blog.takipi.com/forkjoin-framework-vs-parallel-streams-vs-executorservice-the-ultimate-benchmark/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.