意味が伝わりにくいコード
日本の開発現場では,
- 単語の選定の間違い
- 態の間違い
- 日本語の影響
1.単語の選定の間違い
クラス名に使う単語の選定をする時は,
このように,
2.態の間違い
メソッド名を命名する際は,
- 【問題】
ここに期間限定の広告キャンペーンがあったとします。それらに以下のような情報を持たせたい時,
あなたはどのような変数名を付けますか? - クラス名:キャンペーン
- ❶データベースにデータを初めて保存した日時
- ❷キャンペーンの開始日時
- ❸キャンペーンの終了日時
- ❹表示用タイトル
- クラス名:キャンペーン
- 【解答】
- Campaign
- ❶created_
at - ❷starts_
at - ❸ends_
at - ❹displaying_
place
- ❶created_
- Campaign
よく,
❹は
- よく知られた例:
- living room
(リビングルーム):生活をするための部屋 - sleeping car
(寝台車):寝るための車両
- living room
3.日本語の影響
日本語の影響にはこのようなものがあります。
- 複数の単語を一語
- ○ supermarket ⇒ ✕ super
- ○ staple food
(主食) ⇒ ✕ staple - 熟語の直訳による単語の連続
日本語と違い,
英語の場合単語を羅列すると単語動詞の関係を補完しづらくなるので形容詞や前置詞で補いましょう。 - キャンペーン.友達紹介コンバージョン数 =>
✕ Campaign.friend_ invitation_ conversion ⇒ ○ Campaign. registered_ users_ by_ invitation
- キャンペーン.友達紹介コンバージョン数 =>
- カタカナ語
カタカナはいろいろな由来もとの国の単語が混在しているのでそのままアルファベットにするのはやめましょう。アンケートはフランス語です。
- ✕ UserEnquete ⇒ ○ UserSurvey
本書のそのほかの特徴
近年英語のOSSの普及や,
私が書いた
- 文法の勉強は意味があるの?
- どうやって勉強するのが効率が良いの?
- 子供の第一言語学習と大人の第二言語学習は何が違うの?
- 開発中,
ライブラリが吐くエラーメッセージが読めず, エラーにどう対応したら良いかわからないで試行錯誤しているうちに時間が経ってしまう - 端的で自己説明的なクラス・
変数名やテーブル・ カラム名の命名ができるようになりたい - 自分のOSSを広めたい,
海外の人とも共同作業がしたい