From 83fa483c96023911021576be35f026ad56691660 Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Sat, 28 Mar 2020 18:03:12 +0800 Subject: [PATCH 1/2] Update composing-software-the-book.md --- TODO1/composing-software-the-book.md | 78 ++++++++++++++-------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/TODO1/composing-software-the-book.md b/TODO1/composing-software-the-book.md index 2b0a125ecd6..a78a1cc91c3 100644 --- a/TODO1/composing-software-the-book.md +++ b/TODO1/composing-software-the-book.md @@ -2,67 +2,67 @@ > * 原文作者:[Eric Elliott](https://medium.com/@_ericelliott) > * 译文出自:[掘金翻译计划](https://github.com/xitu/gold-miner) > * 本文永久链接:[https://github.com/xitu/gold-miner/blob/master/TODO1/composing-software-the-book.md](https://github.com/xitu/gold-miner/blob/master/TODO1/composing-software-the-book.md) -> * 译者: +> * 译者:[zoomdong](https://github.com/fireairforce) > * 校对者: -# Composing Software: The Book +# 组合软件:书 ![Smoke Art Cubes to Smoke — MattysFlicks — (CC BY 2.0)](https://cdn-images-1.medium.com/max/10302/1*uVpU7iruzXafhU2VLeH4lw.jpeg) -> **Note:** This is part of the [**“Composing Software” book**](https://leanpub.com/composingsoftware) that started life right here as a blog post series. It covers functional programming and compositional software techniques in JavaScript (ES6+) from the ground up. [“Composing Software” is also available in Print](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US). +> **注意:** 这是[**“组合软件”**系列丛书](https://leanpub.com/composingsoftware)的一部分,它最初是以一个博客系列出现。它从头到尾地包含了 JavaScript(ES6+)中的函数式编程和组合软件技术。[“组合软件”同样也有印刷版本](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US)。 -"Composing Software”, the hit blog post series on functional programming and software composition in JavaScript is now a [best selling book on Leanpub](https://leanpub.com/composingsoftware). Also available [in print](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US). +“组合软件”是一个热门的博客文章系列,介绍了 JavaScript 中的函数式编程和软件组合,现在是 [Leanpub 上最畅销的书](https://leanpub.com/composingsoftware)。同样可以[印刷](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US)。 -On February 18th, 2017, I started writing a blog post on functional programming. [“The Rise and Fall and Rise of Functional Programming”](https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c) was to serve as an introductory article for a series of articles on software composition. I had no idea when I started writing that it would attract more than 100,000 readers, or that the articles that followed would attract over a million aggregate reads, or that it would become [a book](https://leanpub.com/composingsoftware) and jump up the Leanpub best sellers list the week it was announced. +2017 年 2 月 8 日,我开始写一篇关于函数式编程的博客文章。[“跌宕起伏的函数式编程”](https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c) 作为有关软件组合一系列文章的介绍文章。当我开始写作的时候,我并不知道它会吸引超过 10 万的读者,也不知道接下来的文章会吸引超过 100 万的总阅读量,更不知道它会成为[一本书](https://leanpub.com/composingsoftware),并在发布的一周内跃升到 Leanpub 畅销书排行榜。 -My sincere thanks go out to JS Cheerleader, who made the book better in too many ways to list. If you find the text readable, it is because she carefully poured over every page and offered insightful feedback and encouragement every step of the way. Without her help, you would not be reading this right now. +我衷心感谢 JS Cheerleader,他使这本书在很多方面变得更好。如果你觉得这些文章是易于阅读的,那是因为他仔细地校验了每一页,并在每一步都提供了深刻的反馈和鼓励。没有他的帮助,你现在就不会读到这些文章。 -Thanks to the blog readers, who’s support and enthusaism helped us turn a little blog post series into a phenomenon that attracted millions of reads and provided the momentum we needed to turn it into a book. +感谢博客的读者,他们的支持和热情帮助我们把一个小小的博客文章系列变成了一个吸引数百万读者的现象,并为我们提供了把它变成一本书的动力。 -Thanks to the legends of computer science who paved the way. +感谢计算机科学的传奇为我们铺平了道路。 -> “If I have seen further it is by standing on the shoulders of giants.” ~ Sir Isaac Newton +> “如果说我看得更远,那是因为我站在巨人的肩膀上。” —— 艾萨克·牛顿爵士 -All software development is composition: The act of breaking a complex problem down to smaller parts, and then composing those smaller solutions together to form your application. +组合是所有的软件开发方式:将复杂的问题分解成更小的部分,然后将这些更小的解决方案组合在一起,形成你的应用程序。 -But I noticed while interviewing candidates for software development jobs, almost none of them could describe what composition is in the context of software. When I asked “what is function composition?” or “what is object composition?” in interviews, I got… stammers. Crickets. Nothing. +但是我在面试软件开发工作的候选人时注意到,几乎没有人能描述软件环境中的组合。当我在面试的时候问 “什么是函数组合?” 或者 “什么是对象组合?”,得到的确实支支吾吾的回答以及没有任何实质的内容。 -How could this be? How could 99% of professional developers — some with 10+ years’ of software development experience not know definitions or examples of the two most basic forms of composition in software engineering? Everybody composes functions and objects in the process of building software on a daily basis, so how could so many people not understand the basic foundations of those techniques? +怎么会这样呢?99%的专业开发人员 —— 有些拥有 10 年以上的软件开发经验 —— 怎么可能不知道软件工程中两种最基本的组合形式的定义或例子呢?在每天构建软件的过程中,每个人都在组合函数和对象,那么怎么会有那么多人不理解这些技术的基本原理呢? -The fact is that composition simply isn’t a subject that people pay attention to, or teach well, or learn. It occurred to me that maybe this is why [overcomplicating things is the single biggest mistake software developers make every day](https://medium.com/javascript-scene/the-single-biggest-mistake-programmers-make-every-day-62366b432308). When you don’t know how to fit lego blocks together, you might break out the duct-tape and crazy glue and go nuts… to the detriment of the software, your teammates, and your users. +事实上,组合根本不是一门人们关注、教得好、学得好的学科。我突然想到,也许这就是为什么过度复杂化是软件开发人员每天犯的最大错误。当你不知道如何把乐高积木拼在一起时,你可能会弄坏胶带和胶水,然后变得烦躁......损害软件、你的队友和用户。 -You can’t get away from composing software — that’s how software comes together. But if you don’t do it conscientiously, you’ll do it badly, which leads to a lot of wasted time, wasted money, bugs, and even critical human safety issues. I wrote this series — and book — to change that. +你无法摆脱组合软件 —— 软件就是这样组合在一起的。但如果你不认真去做,你会做得很差,这将导致大量的时间浪费、金钱浪费、漏洞,甚至严重的安全问题。我写了这个系列和这本书来改变这一点。 -The trouble with the blog posts is that they never had an official index. Welcome to the official blog post index for “Composing Software: The Blog Posts”. +博客文章的麻烦在于它们从来没有官方索引。欢迎使用“组合软件:博客文章”的官方博客文章索引。 -* [Composing Software: An Introduction](https://medium.com/javascript-scene/composing-software-an-introduction-27b72500d6ea) -* [The Dao of Immutability](https://medium.com/javascript-scene/the-dao-of-immutability-9f91a70c88cd) -* [The Rise and Fall and Rise of Functional Programming](https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c) -* [Why Learn Functional Programming in JavaScript?](https://medium.com/javascript-scene/why-learn-functional-programming-in-javascript-composing-software-ea13afc7a257) -* [Pure Functions](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-pure-function-d1c076bec976) -* [What is Functional Programming?](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0) -* [A Functional Programmer’s Introduction to JavaScript](https://medium.com/javascript-scene/a-functional-programmers-introduction-to-javascript-composing-software-d670d14ede30) -* [Higher Order Functions](https://medium.com/javascript-scene/higher-order-functions-composing-software-5365cf2cbe99) -* [Curry and Function Composition](https://medium.com/javascript-scene/curry-and-function-composition-2c208d774983) -* [Abstraction and Composition](https://medium.com/javascript-scene/abstraction-composition-cb2849d5bdd6) -* [Functors & Categories](https://medium.com/javascript-scene/functors-categories-61e031bac53f) -* [Monads](https://medium.com/javascript-scene/javascript-monads-made-simple-7856be57bfe8) -* [The Forgotten History of OOP](https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f) -* [Object Composition](https://medium.com/javascript-scene/the-hidden-treasures-of-object-composition-60cd89480381) -* [Factory Functions](https://medium.com/javascript-scene/javascript-factory-functions-with-es6-4d224591a8b1) -* [Functional Mixins](https://medium.com/javascript-scene/functional-mixins-composing-software-ffb66d5e731c) -* [Why Composition is Harder with Classes](https://medium.com/javascript-scene/why-composition-is-harder-with-classes-c3e627dcd0aa) -* [Composable Custom Datatypes](https://medium.com/javascript-scene/composable-datatypes-with-functions-aec72db3b093) -* [Lenses](https://medium.com/javascript-scene/lenses-b85976cb0534) -* [Transducers](https://medium.com/javascript-scene/transducers-efficient-data-processing-pipelines-in-javascript-7985330fe73d) -* [Elements of JavaScript Style](https://medium.com/javascript-scene/elements-of-javascript-style-caa8821cb99f) -* [Mocking is a Code Smell](https://medium.com/javascript-scene/mocking-is-a-code-smell-944a70c90a6a) +* [简介](https://medium.com/javascript-scene/composing-software-an-introduction-27b72500d6ea) +* [不变性之道](https://medium.com/javascript-scene/the-dao-of-immutability-9f91a70c88cd) +* [跌宕起伏的函数式编程](https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c) +* [为什么用 JavaScript 学习函数式编程?](https://medium.com/javascript-scene/why-learn-functional-programming-in-javascript-composing-software-ea13afc7a257) +* [纯函数](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-pure-function-d1c076bec976) +* [什么是函数式编程?](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0) +* [函数式程序员的 JavaScript 简介](https://medium.com/javascript-scene/a-functional-programmers-introduction-to-javascript-composing-software-d670d14ede30) +* [高阶函数](https://medium.com/javascript-scene/higher-order-functions-composing-software-5365cf2cbe99) +* [柯里化与函数组和](https://medium.com/javascript-scene/curry-and-function-composition-2c208d774983) +* [抽象与组合](https://medium.com/javascript-scene/abstraction-composition-cb2849d5bdd6) +* [Functor 与 Category](https://medium.com/javascript-scene/functors-categories-61e031bac53f) +* [JavaScript 让 Monad 更简单](https://medium.com/javascript-scene/javascript-monads-made-simple-7856be57bfe8) +* [被遗忘的面向对象编程史](https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f) +* [对象组合中的宝藏](https://medium.com/javascript-scene/the-hidden-treasures-of-object-composition-60cd89480381) +* [ES6+ 中的 JavaScript 工厂函数](https://medium.com/javascript-scene/javascript-factory-functions-with-es6-4d224591a8b1) +* [函数式 Mixin](https://medium.com/javascript-scene/functional-mixins-composing-software-ffb66d5e731c) +* [为什么类中使用组合很难](https://medium.com/javascript-scene/why-composition-is-harder-with-classes-c3e627dcd0aa) +* [可自定义数据类型](https://medium.com/javascript-scene/composable-datatypes-with-functions-aec72db3b093) +* [Lenses:可组合函数式编程的 Getter 和 Setter](https://medium.com/javascript-scene/lenses-b85976cb0534) +* [Transducers:JavaScript 中高效的数据处理 Pipeline](https://medium.com/javascript-scene/transducers-efficient-data-processing-pipelines-in-javascript-7985330fe73d) +* [JavaScript 样式元素](https://medium.com/javascript-scene/elements-of-javascript-style-caa8821cb99f) +* [模拟是一种代码异味](https://medium.com/javascript-scene/mocking-is-a-code-smell-944a70c90a6a) --- -****Eric Elliott** is a distributed systems expert and author of the books, [“Composing Software”](https://leanpub.com/composingsoftware) and [“Programming JavaScript Applications”](https://ericelliottjs.com/product/programming-javascript-applications-ebook/). As co-founder of [DevAnywhere.io](https://devanywhere.io/), he teaches developers the skills they need to work remotely and embrace work/life balance. He builds and advises development teams for crypto projects, and has contributed to software experiences for **Adobe Systems,Zumba Fitness,** **The Wall Street Journal,** **ESPN,** **BBC,** and top recording artists including **Usher, Frank Ocean, Metallica,** and many more.** +****Eric Elliott** 是一名分布式系统专家,并且是 [“组合软件”](https://leanpub.com/composingsoftware)和[“组合 JavaScript 应用程序”](https://ericelliottjs.com/product/programming-javascript-applications-ebook/)这两本书的作者。作为 [DevAnywhere.io](https://devanywhere.io/)的联合创始人,他教开发人员远程工作和实现工作以及生活平衡所需的技能。他为加密项目的开发团队提供建设和建议,并为 **Adobe 系统、Zumba Fitness、华尔街日报、ESPN、BBC** 以及包括 **Usher、Frank Ocean、Metallica** 等在内的顶级唱片艺术家的软件经验做出了贡献。 -**He enjoys a remote lifestyle with the most beautiful woman in the world.** +**他和世界上最漂亮的女人过着遥远的生活。** > 如果发现译文存在错误或其他需要改进的地方,欢迎到 [掘金翻译计划](https://github.com/xitu/gold-miner) 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 **本文永久链接** 即为本文在 GitHub 上的 MarkDown 链接。 From 3a6152bd8ff6c78869b8ae5f2b31fdc71d725c99 Mon Sep 17 00:00:00 2001 From: zoomdong <1344492820@qq.com> Date: Wed, 1 Apr 2020 13:55:43 +0800 Subject: [PATCH 2/2] Update composing-software-the-book.md --- TODO1/composing-software-the-book.md | 30 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/TODO1/composing-software-the-book.md b/TODO1/composing-software-the-book.md index a78a1cc91c3..3d2ac5966d1 100644 --- a/TODO1/composing-software-the-book.md +++ b/TODO1/composing-software-the-book.md @@ -3,35 +3,35 @@ > * 译文出自:[掘金翻译计划](https://github.com/xitu/gold-miner) > * 本文永久链接:[https://github.com/xitu/gold-miner/blob/master/TODO1/composing-software-the-book.md](https://github.com/xitu/gold-miner/blob/master/TODO1/composing-software-the-book.md) > * 译者:[zoomdong](https://github.com/fireairforce) -> * 校对者: +> * 校对者:[Roc](https://github.com/QinRoc), [niayyy](https://github.com/niayyy-S) # 组合软件:书 ![Smoke Art Cubes to Smoke — MattysFlicks — (CC BY 2.0)](https://cdn-images-1.medium.com/max/10302/1*uVpU7iruzXafhU2VLeH4lw.jpeg) -> **注意:** 这是[**“组合软件”**系列丛书](https://leanpub.com/composingsoftware)的一部分,它最初是以一个博客系列出现。它从头到尾地包含了 JavaScript(ES6+)中的函数式编程和组合软件技术。[“组合软件”同样也有印刷版本](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US)。 +> **注意:** 这是[**“组合软件”系列丛书**](https://leanpub.com/composingsoftware)的一部分,它最初以一个博客文章系列的形式出现在这里。它从头到尾地包含了 JavaScript(ES6+)中的函数式编程和组合软件技术。[“组合软件”同样也有印刷版本](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US)。 -“组合软件”是一个热门的博客文章系列,介绍了 JavaScript 中的函数式编程和软件组合,现在是 [Leanpub 上最畅销的书](https://leanpub.com/composingsoftware)。同样可以[印刷](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US)。 +“组合软件”是一个热门的博客文章系列,介绍了 JavaScript 中的函数式编程和软件组合,现在是 [Leanpub 上最畅销的书](https://leanpub.com/composingsoftware)。也有[印刷版本](https://www.amazon.com/Composing-Software-Exploration-Programming-Composition/dp/1661212565/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=eejs-20&linkId=eee1371063c82dea4c2fc72c097868c6&language=en_US)。 -2017 年 2 月 8 日,我开始写一篇关于函数式编程的博客文章。[“跌宕起伏的函数式编程”](https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c) 作为有关软件组合一系列文章的介绍文章。当我开始写作的时候,我并不知道它会吸引超过 10 万的读者,也不知道接下来的文章会吸引超过 100 万的总阅读量,更不知道它会成为[一本书](https://leanpub.com/composingsoftware),并在发布的一周内跃升到 Leanpub 畅销书排行榜。 +2017 年 2 月 8 日,我开始写一篇关于函数式编程的博客文章。[“跌宕起伏的函数式编程”](https://medium.com/javascript-scene/the-rise-and-fall-and-rise-of-functional-programming-composable-software-c2d91b424c8c) 作为《软件组合》系列的介绍文章。当我开始写作的时候,我并不知道它会吸引超过 10 万的读者,也不知道接下来的文章会有超过 100 万的总阅读量,更不知道它能够[出版](https://leanpub.com/composingsoftware),并在发布的一周内跃升到 Leanpub 畅销书排行榜。 -我衷心感谢 JS Cheerleader,他使这本书在很多方面变得更好。如果你觉得这些文章是易于阅读的,那是因为他仔细地校验了每一页,并在每一步都提供了深刻的反馈和鼓励。没有他的帮助,你现在就不会读到这些文章。 +我衷心感谢 JS Cheerleader,她使这本书在很多方面变得更好。如果你觉得这些文章是易于阅读的,那是因为她仔细地校验了每一页,并在每一步都提供了深刻的反馈和鼓励。没有她的帮助,你现在就不会读到这些文章。 -感谢博客的读者,他们的支持和热情帮助我们把一个小小的博客文章系列变成了一个吸引数百万读者的现象,并为我们提供了把它变成一本书的动力。 +感谢博客的读者,他们的热情支持帮助我们把这个小小的博客文章系列变成了一个吸引了数百万读者的现象级文章系列,并为我们提供了把它变成一本书的动力。 -感谢计算机科学的传奇为我们铺平了道路。 +感谢计算机科学领域中为我们铺平了道路的传奇人物们。 > “如果说我看得更远,那是因为我站在巨人的肩膀上。” —— 艾萨克·牛顿爵士 -组合是所有的软件开发方式:将复杂的问题分解成更小的部分,然后将这些更小的解决方案组合在一起,形成你的应用程序。 +组合是所有的软件开发方式:将复杂的问题分解成更小的部分,然后将这些更小的解决方案组合在一起,组成了应用程序。 -但是我在面试软件开发工作的候选人时注意到,几乎没有人能描述软件环境中的组合。当我在面试的时候问 “什么是函数组合?” 或者 “什么是对象组合?”,得到的确实支支吾吾的回答以及没有任何实质的内容。 +但是我在面试软件开发工作的面试者时注意到,几乎没有人能描述软件上下文中的组合。当我在面试的时候问 “什么是函数组合?” 或者 “什么是对象组合?”,得到的却是支支吾吾的或者没有任何实质的内容的回答。 -怎么会这样呢?99%的专业开发人员 —— 有些拥有 10 年以上的软件开发经验 —— 怎么可能不知道软件工程中两种最基本的组合形式的定义或例子呢?在每天构建软件的过程中,每个人都在组合函数和对象,那么怎么会有那么多人不理解这些技术的基本原理呢? +怎么会这样呢?99% 的专业开发人员 —— 有些拥有 10 年以上的软件开发经验 —— 怎么可能不知道软件工程中组合的两种最基础形式的定义或例子呢?每个人每天都在构建软件的过程中组合函数和对象,那么怎么会有那么多人不理解这些技术的基本原理呢? -事实上,组合根本不是一门人们关注、教得好、学得好的学科。我突然想到,也许这就是为什么过度复杂化是软件开发人员每天犯的最大错误。当你不知道如何把乐高积木拼在一起时,你可能会弄坏胶带和胶水,然后变得烦躁......损害软件、你的队友和用户。 +事实上,组合根本不是一门人们关注、教得好、学得好的学科。我突然想到,也许这就是为什么[过度复杂化是软件开发人员每天犯的最大错误](https://medium.com/javascript-scene/the-single-biggest-mistake-programmers-make-every-day-62366b432308)。当你不知道如何把乐高积木拼在一起时,你可能会弄坏胶带和胶水,然后变得烦躁......对于软件开发来说,你也会损害软件、你的队友和用户。 -你无法摆脱组合软件 —— 软件就是这样组合在一起的。但如果你不认真去做,你会做得很差,这将导致大量的时间浪费、金钱浪费、漏洞,甚至严重的安全问题。我写了这个系列和这本书来改变这一点。 +你无法摆脱组合软件 —— 软件就是这样组合在一起的。但如果你不认真组合软件的话,你会做得很差,浪费大量的时间和金钱,造成漏洞,甚至导致严重的人类安全问题。我写了这个系列和这本书来改变这一点。 博客文章的麻烦在于它们从来没有官方索引。欢迎使用“组合软件:博客文章”的官方博客文章索引。 @@ -43,7 +43,7 @@ * [什么是函数式编程?](https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0) * [函数式程序员的 JavaScript 简介](https://medium.com/javascript-scene/a-functional-programmers-introduction-to-javascript-composing-software-d670d14ede30) * [高阶函数](https://medium.com/javascript-scene/higher-order-functions-composing-software-5365cf2cbe99) -* [柯里化与函数组和](https://medium.com/javascript-scene/curry-and-function-composition-2c208d774983) +* [柯里化与函数组合](https://medium.com/javascript-scene/curry-and-function-composition-2c208d774983) * [抽象与组合](https://medium.com/javascript-scene/abstraction-composition-cb2849d5bdd6) * [Functor 与 Category](https://medium.com/javascript-scene/functors-categories-61e031bac53f) * [JavaScript 让 Monad 更简单](https://medium.com/javascript-scene/javascript-monads-made-simple-7856be57bfe8) @@ -60,9 +60,9 @@ --- -****Eric Elliott** 是一名分布式系统专家,并且是 [“组合软件”](https://leanpub.com/composingsoftware)和[“组合 JavaScript 应用程序”](https://ericelliottjs.com/product/programming-javascript-applications-ebook/)这两本书的作者。作为 [DevAnywhere.io](https://devanywhere.io/)的联合创始人,他教开发人员远程工作和实现工作以及生活平衡所需的技能。他为加密项目的开发团队提供建设和建议,并为 **Adobe 系统、Zumba Fitness、华尔街日报、ESPN、BBC** 以及包括 **Usher、Frank Ocean、Metallica** 等在内的顶级唱片艺术家的软件经验做出了贡献。 +****Eric Elliott** 是一名分布式系统专家,并且是 [“组合软件”](https://leanpub.com/composingsoftware)和[“编写 JavaScript 程序”](https://ericelliottjs.com/product/programming-javascript-applications-ebook/)这两本书的作者。作为 [DevAnywhere.io](https://devanywhere.io/)的联合创始人,他教开发人员远程工作和实现工作以及生活平衡所需的技能。他创建了加密项目的开发团队,并为他们提供建议。他还在软件体验上为 **Adobe 系统、Zumba Fitness、华尔街日报、ESPN、BBC** 以及包括 **Usher、Frank Ocean、Metallica** 等在内的顶级唱片艺术家做出了贡献。**。 -**他和世界上最漂亮的女人过着遥远的生活。** +**他和世界上最漂亮的女人一起享受着远程(工作)的生活方式。** > 如果发现译文存在错误或其他需要改进的地方,欢迎到 [掘金翻译计划](https://github.com/xitu/gold-miner) 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 **本文永久链接** 即为本文在 GitHub 上的 MarkDown 链接。