日本語でコーディング

HTML

<h1>日本語でコーディング</h1>

<h2>命名例</h2>
<p>一般名詞</p>
<ul>
  <li><code>new Map</code> … 地図、図表、マップ</li>
  <li><code>new Object</code> … 物、オブジェクト</li>
  <li><code>new Array</code> … 配列、一覧、リスト</li>
</ul>

<p>動詞</p>
<ul>
  <li><code>get</code> … 得る、取得、取得する、取る、受け取る、入手、入手する</li>
</ul>

<p>固有名詞</p>

<ul>
  <li><code>itemList</code> … 商品一覧、商品配列、商品リスト</li>
  <li><code>item</code> … 商品、商品物(オブジェクトを表す為に「物」を末尾に付ける)</li>
</ul>

<h2>日本語で命名するコーディングの問題点</h2>

<ul>
  <li>日本人にしか読めない(グローバルスタンダードではない)</li>
  <li>jsファイル設置後にContent-Typeヘッダで文字コードを指定する必要がある(逆にASCII文字だけで構成すれば、文字コードを気にする必要はない)</li>
  <li>日本語は動詞が最後に来るので、最後まで読まないとそれが関数である事が分からない(バーコードから商品オブジェクトを得る vs getItemByBarcode)</li>
  <li>map,object等、プログラミング独特の意味を持つ英単語をどう日本語に訳していいか分からない</li>
  <li>get等の動詞にも日本語の表現に揺らぎがある</li>
  <li>ビルトインオブジェクトは英語、ユーザ定義オブジェクトは日本語となる為、和英混在となる</li>
</ul>

<h2>参考リンク</h2>

<ul>
 <li><a href="https://teratail.com/questions/101066">JavaScript - オブジェクトの変数名、どのようにしていますか?(101066)|teratail</a></li>
</ul>

JavaScript

'use strict';
/**
 * 変数名の例
 */
var マップ = new Map;
var 地図 = new Map;
var 図表 = new Map;

var オブジェクト = {};
var 物 = {};

var 配列 = [];

/**
 * レジ会計のプログラム
 */
var 商品地図 = new Map([[1,{'バーコード': 1, '名前': 'ミルク','カテゴリ': '飲み物'}], [2,{'バーコード': 2, '名前': '紅茶','カテゴリ': '飲み物'}], [3,{'バーコード': 3, '名前': 'みかん','カテゴリ': '食べ物'}]]);

function バーコードから商品を得る (バーコード, 商品地図) {
  return 商品地図.get(バーコード);
}

// 商品の名前はユニークであるものとする
function 名前から商品を得る (名前, 商品地図) {
  for (let 商品 of 商品地図.values()) {
    if (商品.名前 === 名前) {
      return 商品;
    }
  }

  return null;
}

function カテゴリから商品一覧を得る (カテゴリ, 商品地図) {
  const 商品一覧 = [];

  for (let 商品 of 商品地図.values()) {
    if (商品['カテゴリ'] === カテゴリ) {
      商品一覧.push(商品);
    }
  }

  return 商品一覧;
}

console.log(バーコードから商品を得る(1, 商品地図)); // {バーコード: 1, 名前: "ミルク", カテゴリ: "飲み物"}
console.log(名前から商品を得る('みかん', 商品地図));  // {バーコード: 3, 名前: "みかん", カテゴリ: "食べ物"}
console.log(JSON.stringify(カテゴリから商品一覧を得る('飲み物', 商品地図)));  // [{"バーコード":1,"名前":"ミルク","カテゴリ":"飲み物"},{"バーコード":2,"名前":"紅茶","カテゴリ":"飲み物"}]