天天看點

首次發現在例程中使用日語命名的程式設計書籍

首次發現在例程中使用日語命名的程式設計書籍
初めてのJavaScript 第3版 -- ES2015以降の最新ウェブ開発

.

示例代碼

:

class Person {
  constructor(name) {
    this.name = name;
    this.id = Person.nextId++;
  }
}
Person.nextId = 0;
const 一郎 = new Person("一郎"), /* id 0 */
      次郎 = new Person("次郎"), /* id 1 */
      三郎 = new Person("三郎"), /* id 2 */
      四郎 = new Person("四郎"); /* id 3 */
const arr = [一郎, 次郎, 三郎, 四郎];

/* 1. IDを使って直接比較 */
console.log(arr.find(p => p.id === 三郎.id)); // Person { name: '三郎', id: 2 }
/* 2. thisを利用。thisを定數「三郎」に指定 */
console.log(arr.find(function(p) {return p.id === this.id}, 三郎));
                                              // Person { name: '三郎', id: 2 }
/* アロー関數ではthisは「語彙的に(lexically)」に束縛される(6章參照) */
console.log(arr.find(p => p.id === this.id, 三郎)); // undefined           

譯者對采用日語命名的緣由在此闡述

(2016年12月):

翻訳の過程で、一部の例を日本語の識別子(変數名や関數名など)を使って書いてみましたが、「日本語で関數名や変數名を考えるのはとても楽だなあ」と感じました。英語を仕事で毎日使っている私でもそうなのですから、普通の方ならなおさらでしょう。コメントと識別子の區別がつきにくいなど、慣れないと少し読みにくい印象はありますが、特に書く際の負擔はだいぶ減るように感じます。また、たとえば単數形のbookで、値をひとつ記憶する変數、複數形のbooksで配列を表すといった手法が日本語では使えないなど、日本語獨特の工夫が必要になる場面があるかもしれません(一部の例では「本」と「本_配列」のようにしてみましたが)。これからは、日本國内をターゲットにした開発では徐々に日本語識別子が使われることになるのでしょう。英語の本を読むよりも、日本語にていねいに翻訳された本を読むほうが了解がずっと早いのと同じです。

倚靠線上翻譯, 大緻意思如下, 如有出入請指教:

  1. 日語命名函數/變量對常人更易了解, 即使譯者在日常工作中使用英語仍是如此
  2. 雖然使用日語命名導緻注釋和實際代碼行有些難以區分(日文注釋+英文代碼會比較顯眼), 但譯者編寫時更容易 <--這裡不大确定含義
  3. 有時單複數難以在日語中表達, 此時還是沿用英文命名 -- 中文命名也有類似情況, 之前的探讨: 中文命名的特定問題, 相關風格及規範 · Issue #45 · program-in-chinese/overview , 在代碼中進行中文命名(類/變量/方法等)的優勢
  4. 最後提到(粗體部分): 對面向日本國内的軟體開發, 将會逐漸普及使用日語命名. 閱讀使用日語命名的程式設計書籍會比英文原版更容易了解. -- 聽起來似乎是有某些日本的業内推動力量, 值得深入發掘一下.

補譯者 武舎 広幸 Hiroyuki Takeba 履歷(機翻):

出生于長野縣上田市。他在東京工業大學,科學技術研究所學生院,國際基督教大學,山梨大學研究所學生院,俄亥俄州立大學研究所學生院,卡内基梅隆大學機器翻譯中心等完成博士課程。

作為Merlin Arms Co.,Ltd。(

http://www.marlin-arms.co.jp )的代表董事,他從事與計算機和自然科學,軟體開發(翻譯軟體等),軟體項目管理,線上翻譯課程( http://www.dhc-online.com )相關的翻譯和寫作。和字典網站( http://www.dictjuggler.net

另外, 看來日語命名在日本開發者中也是有阻力的,

日本語識別子(変數名や関數名)を好まれない方がいらっしゃるようですので

- "似乎有些人不喜歡日語辨別符(變量名和函數名)"(在

). 确實在

Amazon

上有一星抱怨日語命名的, 但感覺并沒什麼說服力.

無論如何, 日本程式設計書籍出版商在推廣母語命名上先行一步了.

期待中文示例代碼的程式設計書籍早日面世.

源讨論帖在:

索引: 用中文代碼作示例的程式設計教程 · Issue #5 · program-in-chinese/overview

2018-11補:

譯者發消息, 重印(第四次印刷)已經确定.

另外, 經告知之前有一本"我的第一本程式設計書"日文程式設計書的中譯本中使用了中文命名的示例代碼, 但因為偏算法, 個人感覺母語命名的優勢不是特别明顯.

2019-2-16補:

發現2003年的

日文論壇

提到, 2003年出版的"MYSQL徹底活用(翔泳社-初版)"一書中(貌似

MySQL徹底活用―SQL言語+サーバアプリケーション+管理者編 データベースの本

), 使用了日文命名的示例代碼:

CREATE TABLE 社員  (
    社員番号 INT NOT NULL,
    氏名 CHAR(20) NOT NULL,
    性別 ENUM(`男`,`女`) NOT NULL,
    部署コード INT NOT NULL,
    入社年度 year NOT NULL,
    MAIL CHAR(40) NOT NULL,
    INDEX (社員番号),
    INDEX (氏名)
);           

2018-10-18

繼續閱讀