語(yǔ)言這種東西經(jīng)常讓人產(chǎn)生誤解。翻譯過(guò)的語(yǔ)言經(jīng)過(guò)了別人的一層理解稚茅,往往更容易讓人云里霧里。這篇文章總結(jié)一下自己職業(yè)生涯里面遇到一些難懂的翻譯萎馅,初見(jiàn)嚇一跳的那種虹蒋,莫名感覺(jué)高大上飒货,實(shí)際上他們表示的內(nèi)容可能并沒(méi)有多艱深。
面向?qū)ο?/h2>
英文原文 :object oriented
因?yàn)閷?duì)象這個(gè)中文單詞具有某個(gè)特殊含義晃虫,因此也成了一個(gè)梗扣墩。
最開(kāi)始遇到的時(shí)候,真的不明所以呻惕。實(shí)際上當(dāng)我真正理解了面向?qū)ο笾螅矣X(jué)得這個(gè)翻譯是沒(méi)什么問(wèn)題的做院。問(wèn)題是面向和對(duì)象這兩個(gè)詞對(duì)初學(xué)者來(lái)說(shuō)太抽象了濒持。
那我們來(lái)具象的解釋一下。
面向屈雄,字面意思就是臉對(duì)著誰(shuí)。我們臉對(duì)著誰(shuí)酒奶,那一般注意力就在誰(shuí)嘛。誰(shuí)讓我們的眼睛只能看到前面呢勒虾。那這個(gè)面向其實(shí)就引申為瘸彤,注意力在誰(shuí)身上,注重的意思质况。
(你看上面這個(gè)圖里面兩個(gè)男的深情對(duì)視结榄,哪還有功夫看旁邊的美女。)
對(duì)象臼朗,常有兩層意思,指行動(dòng)或思考時(shí)作為目標(biāo)的事物或特指戀愛(ài)的對(duì)方等含義(百度百科)绣否。 其實(shí)這里要體現(xiàn)的重點(diǎn)是事物這個(gè)含義挡毅。臺(tái)灣翻譯成構(gòu)件或許更直白一些。
那為什么要注重事物呢段磨,因?yàn)槭挛镞@里和過(guò)程是相對(duì)的耗绿。好比一個(gè)電影,里面有人物和劇情误阻。人物就可以類比成事物,劇情就類比成過(guò)程策幼。這里的意思實(shí)際上就是注重人物奴紧,先不管劇情。這其實(shí)是一個(gè)編劇的技巧唐含。對(duì)吧,哎捷枯,跟藝術(shù)還聯(lián)系起來(lái)了。
這樣有什么好處呢郁油,編劇先有人物攀痊,人物就立體了,情節(jié)就自然了案站,故事就好發(fā)展了棘街,甚至還可以搞IP了。周邊同人也好發(fā)展了舱禽。因?yàn)檫@個(gè)人有了恩沽,他遇見(jiàn)誰(shuí)就會(huì)發(fā)生怎樣的故事翔始。
面向?qū)ο缶幊桃彩且粯樱扔惺挛锊趁疲瓿伤墓δ芎蛯傩圆倍疲敲此梢宰匀坏脑诟鞣N場(chǎng)景工作。甚至還能生孩子蜒灰,搞變異是吧。對(duì)象有了凸椿,代碼世界也就構(gòu)建好了翅溺。
不知道這么一類比有沒(méi)有變的好理解一些呢髓抑。
雙親委派模型
英文原文:parents delegate
這個(gè)就是徹徹底底的翻譯問(wèn)題了优幸。parents在英文中是“父母”、“雙親”的意思羹饰,但這里其實(shí)表達(dá)的是“父母這一輩”的人的意思跛璧。實(shí)際上這個(gè)模型中,只是表達(dá)“父母這一輩”的class loader而已刹碾,并不是說(shuō)真的有一個(gè)父親的class loader和一個(gè)母親class loader座柱。正確的翻譯應(yīng)該是父委派模型。
oracle 官方文檔關(guān)于 jvm 類加載機(jī)制所用的描述是:
The Java platform uses
a delegation model
for loading classes. The basic idea is thatevery class loader has a "parent" class loader.
When loading a class, a class loaderfirst "delegates" the search for the class to its parent class loader
before attempting to find the class itself.
翻譯過(guò)來(lái)就是:
java 平臺(tái)使用
委派模型
來(lái)加載類戏锹。 基本思想就是火诸,每一個(gè)類加載器都有一個(gè)父加載器
, 當(dāng)需要加載一個(gè) class
時(shí)奈搜,首先把該 class 的查詢和加載優(yōu)先委派給父加載器進(jìn)行
盯荤, 如果父加載器無(wú)法加載該 class, 再去嘗試自行加載這個(gè) class
使用了父委派模型后, 類隨著它的類加載器秋秤, 一起具備了一種層級(jí)關(guān)系。由于父加載器總是擁有優(yōu)先加載一個(gè)類的機(jī)會(huì)绍哎, 那么當(dāng)不同的 child class loader 試圖加載一個(gè)屬于更高層級(jí)的parent class loader 加載范圍的 class 時(shí)鞋真, 該請(qǐng)求總會(huì)被轉(zhuǎn)發(fā)給對(duì)應(yīng)的最高層級(jí)的父加載器杜顺, 返回一致的結(jié)果赂摆。
套接字
英文原文: socket
socket原意是插座饿肺。套接字是一種通信機(jī)制。
外國(guó)人用socket來(lái)命名這種通信機(jī)制是很自然的敬辣。因?yàn)橥ㄐ乓⑦B接。作者是想表達(dá)建立網(wǎng)絡(luò)連接和插插座一樣村刨,一方去“插”一方“被插”撰茎。
至于為啥要翻譯成套接字這么一個(gè)奇怪的東西,據(jù)說(shuō)至今還是一個(gè)謎龄糊。
個(gè)人揣度一下炫惩,套接,就像你買(mǎi)的掃帚的棍子他嚷,是不是套在一起就接起來(lái)了?這就表達(dá)了一個(gè)連接的意思卸耘。字呢扭勉,是一種表達(dá)信息的媒介苛聘。所以翻譯者的意思應(yīng)該是實(shí)現(xiàn)連接的媒介的意思。
可能猜的不對(duì)唱捣,但這么一解釋感覺(jué)這個(gè)詞看著都親切了些网梢!
句柄
英文原文:handle
句柄的英文是 handle。在英文中拣宰,有操作、處理膛堤、控制之類的意義晌该。作為一個(gè)名詞時(shí),是指某個(gè)中間媒介朝群,通過(guò)這個(gè)中間媒介可控制、操作某樣?xùn)|西誉帅。這樣說(shuō)有點(diǎn)抽象谭期,舉個(gè)例子。door handle 是指門(mén)把手踏志,通過(guò)門(mén)把手可以去控制門(mén)胀瞪,但 door handle 并非 door 本身,只是一個(gè)中間媒介凄诞。又比如 knife handle 是刀柄,通過(guò)刀柄可以使用刀伪朽。
我們常說(shuō)扛把子汛蝙,對(duì)吧,拿著handle的那個(gè)人就是大哥坚洽,可以操作小弟西土。
讓人難理解的是這個(gè)句。為啥叫句柄疤纭?明明很多時(shí)候操作的不是句子庐舟。好吧,還是翻譯的鍋历帚。
David Gries所著的《Compiler Construction for Digital Computer》(1971)有句話
A handle of any sentential form is a leftmost simple phrase.
該書(shū)中譯本杠娱,《數(shù)字計(jì)算機(jī)的編譯程序構(gòu)造》(仲萃豪譯, 1976 版)翻譯成
任一句型的句柄就是此句型的最左簡(jiǎn)單短語(yǔ)。
這可能是句柄一詞最早的出處禽拔。這里確實(shí)是在討論句子室叉。在這里句柄是個(gè)意譯的合成詞,兩個(gè)字分拆開(kāi)野来,“句柄”中的“柄”踪旷,用法就類似于,“刀柄”中的“柄”令野。用在此處是適當(dāng)?shù)摹5院髮⒏鞣N資源 handle, 都翻譯成句柄時(shí)聊浅,就容易導(dǎo)致誤解了现使。
具體到代碼實(shí)現(xiàn)朴下,handle 通常是某個(gè)數(shù)字標(biāo)記苦蒿,通過(guò)標(biāo)記操作資源。這個(gè)標(biāo)記在不同的場(chǎng)合有不同的叫法团滥,有時(shí)叫 ID,有時(shí)叫描述符(descriptor)灸姊。在 Windows 平臺(tái)力惯,就叫各種 handle 了。
用 handle 如何操作真正的資源父晶,是實(shí)現(xiàn)的細(xì)節(jié)。handle 通常被實(shí)現(xiàn)為整數(shù)尝苇,也可以被實(shí)現(xiàn)成其他類型埠胖。
廣義來(lái)說(shuō),指針也是某種 handle非竿,可以操作對(duì)象谊惭。但實(shí)際語(yǔ)境中,指針跟句柄是有區(qū)別的豹芯。handle可以理解為指針之上的一個(gè)層級(jí)驱敲。因?yàn)橹苯硬僮髦羔槺容^危險(xiǎn),并且也不是所有的語(yǔ)言都有指針众眨,這也是為什么有些場(chǎng)景不用指針而用handle的原因娩梨。
宏
英文原文:macro
還記得最開(kāi)始學(xué)C語(yǔ)言的時(shí)候,對(duì)這個(gè)宏就覺(jué)得莫名其妙狈定,覺(jué)得很高大上,畢竟宏嘛措嵌,大嘛。查了一下維基百科才知道是這么來(lái)的:
Macros are used to make a sequence of computing instructions available to the programmer as a single program statement, making the programming task less tedious and less error-prone.[2][3] (Thus, they are called "macros" because a "big" block of code can be expanded from a "small" sequence of characters.
翻譯一下就是:
宏用來(lái)使得一系列的指令變成單個(gè)語(yǔ)句枫慷,使得編程不那么乏味以及減少出錯(cuò)浪规。(所以他們被稱為‘宏’,因?yàn)樗麄兛梢詮囊恍┖苌俚恼Z(yǔ)句展開(kāi)成很大的一個(gè)代碼塊)神帅。
這個(gè)應(yīng)該是一個(gè)英文直譯了萌抵。沒(méi)毛病。原命名作者的思維太跳脫霎桅,是我沒(méi)跟上讨永。
小結(jié)
很多時(shí)候,學(xué)一個(gè)東西會(huì)被看起來(lái)花里胡哨的名詞嚇到揭糕,實(shí)際上名字嘛锻霎,只是一個(gè)代號(hào)而已。管你是叫翠花還是tracy旋恼,長(zhǎng)的好看不是一樣能當(dāng)網(wǎng)紅 - 。- 产徊。就我個(gè)人而言蜀细,編程大多是應(yīng)用層面的東西,說(shuō)真的比物理谆刨、數(shù)學(xué)界的概念好理解多了。
這篇文章在我的博客里算是很用心的一篇了- 。-(還配了圖)官册。寫(xiě)的過(guò)程中還是有不少收獲,確實(shí)輸出也是一種學(xué)習(xí)啊鸦难。也參考了很多文章员淫,都在參考里拉。
參考
Java 中的雙親委派的“雙”怎么理解 拴事?https://www.zhihu.com/question/288949359
面試題之窒息翻譯:類加載機(jī)制的雙親委派(正解:父委派模型):https://blog.csdn.net/lengxiao1993/article/details/86689331
Socket為什么要翻譯成套接字圣蝎?https://www.zhihu.com/question/21383903/answer/64103663
句柄是什么徘公?https://www.zhihu.com/question/27656256/answer/943130123