最近, 有一本很赞的.NET技术书中文版出版了 - <More Effective C#: 改善C#代码的50个有效方法>. 
 
从广州\西安\长沙\上海等各地.NET俱乐部都收到反馈, 说这本书是用google翻译出来的.
 
然而, 事实上不是这样的.
 
首先, 我不是这本书的译者, 我也不认识这本书的译者, 我只是出于对.NET社区和技术的热爱来写这篇文章, 来澄清和化解误会而已.  同时如果该书译者看到我这篇文章, 也请联系我. 谢谢.
 
先举一个例子:
该书第38页, 第一段第一句: 
关于高阶函数一词, 有人认为作者是用谷歌翻译的, 因为高阶函数是数学名词.
 
然而事实是这样的,  在这里, 翻译成”高阶函数"没有任何问题, 因为:
  1. “高阶函数”首先是一个数学名词, 但是被函数式风格编程沿用了. 因为科学计算领域是函数式风格编程擅长领域之一. 所以函数式风格编程也沿用了很多数学名词.
  2. 而这里的TakeWhile()和LINQ是函数式风格的应用, 所以在这里使用”高阶函数”这个函数式风格名词完全没有问题.
 
类似的地方还会有:
  1. 这个词最坑, 因为这个词总共才三个字, 前面的”柯里”两个字是音译, 后面的”化”字是意译! 翻译不怕全音译, 不怕全意译, 就怕这种一半是音译一半是意译的! 
    这个词是函数式编程风格约定俗成的翻译. 其中”柯里”是逻辑学家Haskell Curry的名字音译.
    而.NET从十年前开始就支持函数式编程风格了. 其中大家最熟悉的就是LINQ啦. 所以有函数式编程风格的词汇很正常.
  2. 局部施用
    这个词同样也是函数式编程风格约定俗成的翻译.
  3. “仿函数” / “函子"
    这个词同样也是函数式编程风格约定俗成的翻译.
 
欢迎大家继续提供反馈, 我将持续更新这篇文章. 也希望该书译者看到这篇文章后联系我, 因为这个工作本来应该是由你来做的, 现在的我只是友情帮忙而已(出于对.NET社区和技术的热爱).
 
2019年6月1日更新: 有读者反馈: 该书封底的作者简介里”荣获微软公Regional Director”这句话有错漏, 漏了”司”字, 应该为”荣获微软公司Regional Director”. 嗯, 我想这个的确是错漏.
 
额外说一句: 很多同学反映在C#中具体应用DDD有各种问题. (广州.NET俱乐部群里每天都有关于DDD的讨论)
我分析了一下, 有些问题产生的原因是: DDD是基于面向对象的, 而.NET从十年前就引入了很多函数式风格的特性, 比如LINQ等等. 这些都是面向过程而不是面向对象的! 它们和DDD连最基本的思想都不一致! 那当然会产生问题啦!
另外, 自从JAVA也开始引入LINQ等函数式风格特性后, JAVA也不可避免的存在同样和DDD冲突的问题. 所以这与语言无关, 纯粹是DDD这种基于面向对象的思想和函数式编程风格这种基于面向过程的思想之间的冲突.
 

<More Effective C#: 改善C#代码的50个有效方法>中文版翻译答疑的更多相关文章

  1. [改善Java代码]自由选择字符串拼接方法

    对一个字符串拼接有三种方法:加号,contact方法,StringBuffer或者StringBuilder的append方法,其中加号是最常用的.其他两种方式偶尔会出现在一些开源项目中,那么这三者有 ...

  2. [改善Java代码]用枚举实现工厂方法模式更简洁

    工厂方法模式(Factory Method Patter)是"创建对象的接口",让子类决定实例化哪一个类,并使一个类的实例化延迟到其子类.工厂方法模式在我们的开发工作中,经常会用到 ...

  3. [改善Java代码]推荐覆写toString方法

    建议49: 推荐覆写toString方法 为什么要覆写toString方法,这个问题很简单,因为Java提供的默认toString方法不友好,打印出来看不懂,不覆写不行,看这样一段代码: public ...

  4. [改善Java代码]覆写变长方法也循规蹈矩

    建议6:覆写变长方法也循规蹈矩 在Java中,子类覆写父类中的方法很常见,这样做既可以修正Bug也可以提供扩展的业务功能支持,同时还符合开闭原则(Open-Closed Principle),我们来看 ...

  5. Effective Python之编写高质量Python代码的59个有效方法

                                                         这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码 ...

  6. 改善EF代码的方法(下)

    本节,我们将介绍一些改善EF代码的方法,包括编译查询.存储模型视图以及冲突处理等内容. > CompiledQuery 提供对查询的编译和缓存以供重新使用.当相同的查询需要执行很多遍的时候,那么 ...

  7. 改善EF代码的方法(上)

    本节,我们将介绍一些改善EF代码的相关方法,如NoTracking,GetObjectByKey, Include等. > MergeOption.NoTracking 当我们只需要读取某些数据 ...

  8. 改善C#程序的50种方法

    为什么程序已经可以正常工作了,我们还要改变它们呢?答案就是我们可以让它们变得更好.我们常常会改变所使用的工具或者语言,因为新的工具或者语言更富生产力.如果固守旧有的习惯,我们将得不到期望的结果.对于C ...

  9. Entity Framework 学习高级篇1—改善EF代码的方法(上)

    本节,我们将介绍一些改善EF代码的相关方法,如NoTracking,GetObjectByKey, Include等. l         MergeOption.NoTracking 当我们只需要读 ...

随机推荐

  1. MyCat教程三:安装及配置介绍

    一.安装MyCat 1.安装准备环境 1.1 安装JDK   因为MyCat是java开发的,所以需要java虚拟机环境,在Linux节点中安装JDK是必须的. 1.2 放开相关端口   在主从节点上 ...

  2. elasticsearch regexp查询特殊字符处理

    regexp表面意思就是正则查询,但是如果遇到,查询条件中包含特殊的字符串, 就会发现,需要进行相应的转义处理 需要处理Lucene regexps即可: /** * 转义字符串中的特殊字符 * 仅过 ...

  3. Google Chrome 解决 “您的连接不是私密连接” 和被毒霸劫持

    一.解决 “您的连接不是私密连接” 前一段时间,Chrome 突然显示出了“您的连接不是私密连接”,这下可难受了,大部分的网站打开都有问题. 找了各种方法,各种设置都是不行. 一.暴力.费力的方法直接 ...

  4. 20-C#笔记-接口

    # 1 接口的使用示例 使用interface,关键字 接口的实现和使用,和继承类似. 在使用之前,要实现接口. using System; interface IMyInterface { // 接 ...

  5. 水晶报表 VS2010 应用

    VS.NET2010水晶报表安装部署[VS2010]   欢迎C#高手加盟QQ群:9340166 水晶报表VS2010版IDE安装标准版SAP Crystal Reports, version for ...

  6. maker使用说明书

    1.以自带的示例数据为例 dpp_contig.fasta dpp_est.fasta dpp_protein.fasta te_proteins.fasta 2.生成控制文件 控制文件是特定于运行的 ...

  7. Django 1.11 shell中模块导入问题

    django报错:django.core.exceptions.ImproperlyConfigured: 处理办法 import os os.environ['DJANGO_SETTINGS_MOD ...

  8. Promise以及async和await的用法

    Promise是一个异步加载的方式,处理时使用new Promise返回一个对象,该对象可以调用then方法,then方法中有两个参数,第一个参数是加载成功时执行,第二个参数是加载失败时执行,then ...

  9. Problem A. 最近公共祖先 ———2019.10.12

    我亲爱的学姐冒险跑去为我们送正解 但是,,,, 阿龙粗现了! cao,, 考场期望得分:20   实际得分:20 Problem A. 最近公共祖先 (commonants.c/cpp/pas) 最近 ...

  10. Python、Spyder的环境搭建

    有什么不对欢迎大家指出,一起交流啊,只针对Windows!!!!(苹果买不起...)Python安装的话2.7版本和3.6版本都可以,虽然2.7比较全面,但还是建议安装3.6,这里以3.6为例进行介绍 ...