免責聲明:

1. 本文中的「響應式」和前端Web開發中的「響應式布局」沒有任何關係。 2. 本文中的討論的內容可能會引起「響應式」愛好者的不適。

眾所周知,隨著時代的進步,用戶對系統的要求越來越苛刻,而免費的蛋糕幾乎已經停止,這也就意味著有著越來越多的開發者被迫切換到更加「反應式」的風格,無論是在前端開發,還是在後端架構中。

在《反應式宣言》中,我們採用了和《反應式設計模式》一書中相同的翻譯,即將 「Reactive」 一詞翻譯為了「反應式」,而非「響應式」,也許細心的同學已經注意到,在這之前,「The Reactive Manifesto」的中文翻譯標題,實際上是「響應式宣言」,而非「反應式宣言」。

翻譯本身是一件難事兒,所以在開始解釋自己之前,還是首先感謝各位將「Reactive」翻譯為「響應式」的各位前輩。

在「The Reactive Manifesto」中的「Reactive」實際上是指一個副詞,表示系統總是會積極主動、甚至是智能地對內外的變化做出反應,其中包括:

  1. React to user —— Respond ASAP,儘可能快速地對用戶的請求給出應答——即時響應性,這也是最終目的和核心商業價值。
  2. React to load,儘可能地對上游給出的壓力做出反應,包括智能限流、回壓、百分比丟棄等策略,為的是儘可能地降低對用戶體驗的損害,同時保護系統。
  3. React to failure,儘可能地在系統發生失敗時,對失敗進行妥善處理,而非不受控的級聯失敗。

我們從中可以看出,所有的這些短語,實際上都是在描述「反應式系統」所具有的特質之一——「React to Users Input X, and respond ASAP」,而非簡單地「 Response to X」。「響應」一般來說,對應的英文為「Response」、動詞為「Respond」、形容詞為「Responsive」,如果我們說一個系統能夠「Respond to X」,並且在晉陞會議上大肆宣揚,那麼請問下,一個系統能夠給出響應,難道不是最低的功能性要求么?

而實際上,我相信任何一個合格的開發者,所開發的系統,應該都是能夠給出某種響應的,無論是通過錯誤還是正確的結果,還是通過人類觀察——比如過了某個用戶可忍受的時間依舊沒有給出任何結果,這是系統潛在給出的響應是它不可用。而與之相反,一個真正值得開發者、架構師或者大型公司鼓吹的,實際上是他們的系統是多麼的快速(Respond ASAP),想像一下雙十一的零點時分,各大電商平台的系統,是多麼的繁忙,如果這個時候你的平台平均處理用戶的每個操作都需要一分鐘,那麼我相信,競爭對手平台一定會非常開心。

同時,考慮到目前前端開發社區中,對「Responsive web design」一詞的翻譯——「響應式網頁設計」,指開發出的網頁能夠根據客戶端視窗的大小,動態地調整網頁布局,簡單地將「The Reactive Manifesto」中的「Reactive」翻譯為「響應式」則完全是不知道這背後的思想究竟是什麼,而僅僅是從目前既有的翻譯中,隨便挑選了一個看似那麼合理的詞,隨便一用罷了,更不用說目前谷歌、百度和必應的機器翻譯都是給出的「響應式」的結果。再者,如果考慮到「The Reactive Manifesto」中的「Responsive」特質描述,那麼之前的「響應式」翻譯又應該如何處理?翻譯為所謂的「響應性」?那麼這就又回到了之前的論點,簡直是可笑至極!難道你的系統不應該具備基本的功能性需求嗎?

同時,我們舉個不是特別著邊的例子,在「Reactive-Streams」的實現之一 Reactor 的官方網頁介紹上,Reactor 項目的 LOGO 實際上是某種原子能的圖案。大家都知道,和原子能相關的核反應堆,如果按照「響應式」翻譯的邏輯,我們的「核反應堆」肯定是需要改名為「核響應堆」,並且如果對外國人介紹的話,得改成「Nuclear Resonder」「Nuclear Reactor」了。

綜上,在綜合考慮了多方的信息(包含日本人對「The Reactive Manifesto」)的翻譯後,我們將「The Reactive Manifesto」翻譯為「反應式宣言」,即「Reactive」是「反應式」而非「響應式」,一來意思更加準確,和國際接軌,二來避免了和「響應式網頁設計」中的「響應式」一詞衝突,引起不必要的解釋,最後也能夠減少對其特質「Responsive」一詞中文譯法的干擾。

推薦閱讀:

相关文章