回想学习历程中, 总有15%-20%的精力白白浪费在一些翻译造成的弯路上. 有时甚至因为一两个名词的失败翻译而影响对整体概念的理解, 回看英文解释都会有豁然开朗的感觉. 令人费解的, 中文互联网里充斥着各种糟糕翻译.
1. 句柄(Handle)
n. 手柄; (织物、毛皮等的) 手感; 举动; 柄状物;
比如文件句柄, 就像handle一样是一个扳手或者门把一样的东西.给你一个门把你就可以开门而不需要在意门的形状大小材质. 比如,得到一个文件句柄,进程就可以调用write(),read()等方法操作文件,而不需要在意文件本身就什么结构.
2.散列表(Hash Table)
等同于哈希表,没有区别.
3. 套接字(socket)
n. (电源) 插座; (电器上的) 插口
- Socket狭义上指 **(源ip, 目标ip, TCP/UDP, 源port, 目标port)**的五元组构成的唯一标识符, 用于主机上唯一标志一个用于通信的缓冲区.
- Socket编程指的是在TCP/IP协议下, 使用传输层给应用层开发用的接口, 进行应用层层面上的开发.
在这里套接字像个生造的词, 表达不了以上两个特点.
socket的含义应该回归到上世纪原始的电话通讯的原理: 接线员作为中转, 根据拨号人指定的目标号码, 负责把电线插到目标的 插座 中, 完成两端的通讯. 这个插座就是socket.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1XiSnan6-1615138700352)(https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1385773765,2116378111&fm=27&gp=0.jpg)]
结合交换机的模型, 交换机的插座包含了两层含义:
- 每个插座对应唯一标识的用户, 这里对应狭义上的Socket
- 接线员只管对上插座, 而不需要在意底层实现, 这里对应的是socket编程的接口.
3.路由(route)
vt. 按某路线发送; 给…规定路线[次序,程序];
在WEB开发和计算机网络中有路由一词,不是同一个意思.路由并不是特有名词,意思是"引导,方向,把…带到…".
WEB开发中通常指完成HTTP协议中的路由功能,即把"method+URL"绑定到视图函数.
计网中的路由则大多数指IP协议,完成"IP地址"到"mac地址"的绑定.
4. 面向xx编程(xx-oriented programming)
adj. 导向的; 定向的; 以…为方向的; 定方向;
相信面向对象/面向过程是每个程序员最早遇到懵逼的单词."面向"一词不如"oriented"表达出的"被xx引导"的意思.
按照编程逻辑, 想面向对象编程时,应该是脑中时刻牢记自己要构建一个object. 让这个概念引导自己完成一个类的编写.
又或者以java当中"面向接口编程"为例, 实现接口时, 只需要记住接口都有哪些变量和方法,而使用接口时,也只需要记住接口的内容.
以上的例子无非是记住一个概念,然后由这个概念延伸去完成编程. "oriented"比"面向"更贴切一些.
如果不能理解, 这个或者不是翻译的问题, 还需代码量积累.
5. 事务(transaction)
n. 交易,业务,事务; 办理,处理; (一笔) 交易,(一项)事务; (学会等的) 会议记录,学报;
初学数据库时也被事务一词困扰了好久,事务也成了计算机名词,在生活中几乎找不到对应的关系描述。
其实“一笔交易”就是对transaction最好的表达,因为一笔交易必然包括一方卖出和一方买入,完成整个交易过程就是transaction最精准的含义。如mysiam不支持事务,则可以理解为不能引擎保证一次交易的完整。
6. 鲁棒性(robust)
adj. 强健的; 强壮的; 结实的;
直接翻译成健壮性就对了.
- 指模型算法对抗噪声对抗退化的能力强.
- 软件服务稳定运行, 不易宕机或死机.
7. Bootstrap
v. 独自创立; 靠一己之力做成;
术语“Bootstrap”来自短语“to pull oneself up by one’s bootstraps”源自西方神话故事“ The Adventures of Baron Munchausen”,男爵掉到了深湖底,没有工具,所以他 想到了拎着鞋带将自己提起来
很常见的一个单词, 最著名的还是bootstrap前端框架, 想当初bootstrap就拯救了我很多个速成的前端开发项目, 但是却一直没有找到它的确切方法.简单易用是它的特性, 一边做着后端开发的活也能通过bootstrap完成一个还合格的前端.
- bootstrap前端框架: 表达的是简单快捷, 适合快速开发.
- JVM的类加载器中的Bootstrapclassloader, 作为双亲委派模型中的顶层父加载器, 由它完成其他所有类的启动过程. 它本身是类, 但是它又负责类的加载. 这也是bootstrap的含义所在.
- 统计学中有Bootstrap方法: 以为这从整体样本当中抽样统计, 得出样本的统计特征(如均值,方差), 可翻译为自举法, 拔靴法.
8. 双亲委派模型(Parents Delegation Model)
正确翻译: 父类委派模型
目前最坑的翻译了, 没有之一. parents在绝大多数语境都是父母, 即双亲. 但是在jvm类加载中偏偏不是指双亲, 而是指每一层的类加载器都会有一个父类加载器. 加上网络上最常看到的流程图:
第一反应都会以为底层的两个子类加载器是双亲的意思, 使得对整个加载模型的理解谬以千里.
正确理解应该是从上层的类加载器都是下层类加载器的父类, 每个加载器加载之前都会先委派父类加载器加载, 如果父类加载器不能加载再交给子类加载器加载, 从而达到给不同级别的类分开加载的效果.
9. 快照snapshot
常出现中redis, mysql等数据存储模型, 或者raft中。总体来说就是指每个特定时间点下整个存储系统中的数据详情。