Tips

コードの清書 縦ぞろえ

コードの清書 縦ぞろえ

概要

コードの縦ぞろえとは、同じ種類の構文を繰り返し書くときに、
構文の構造通りに、縦のラインをそろえることです。

変数定義

不適切な例

変数名の長さが異なる時、
以下のようにインデントがずれることが
よくあります。
しかし、これは読みづらいので、
気づいたら書き直しましょう。
以下の例は、PowerShellのコードです。

$odds = 1, 3, 5
$evens = 0, 2, 4

望ましい例

変数名、変数定義の演算子、変数の値、の開始位置がそろっていますね。

$odds  = 1, 3, 5
$evens = 0, 2, 4

連想配列の要素定義

不適切な例

連想配列の要素定義でも、キーの長さが異なる時、
そのままでは以下のようにでこぼこな並びの
ソースコードが出来上がります。
以下の例は、PowerShellのコードです。

$countryToCapital = @{
    Japan = "Tokyo";
    America = "WashintonDC";
    SouthKorea = "Seoul";
    China = "Beijing";
}

望ましい例

キー、定義演算子、値、のそれぞれの開始位置がそろっています。

$countryToCapital = @{
    Japan      = "Tokyo";
    America    = "WashintonDC";
    SouthKorea = "Seoul";
    China      = "Beijing";
}

クラスのプロパティ定義

不適切な例

これもよくある例です。プロパティ名の長さは異なるので、
放っておくと、以下のようにプロパティ名と型名の間で
目が左右に行ったり来たりします。
以下の例は、TypeScriptの例です。

// グーグル検索のページオブジェクトを定義するクラス
class GoogleSearchPage {
// プロパティを定義
    url : string;
    searchTextArea : SelectorPromise;
    searchButton : SelectorPromise;
}

望ましい例

こうすると、
インデントがそろうので、
余計な目の移動が抑えられます。

// グーグル検索のページオブジェクトを定義するクラス
class GoogleSearchPage {
// プロパティを定義
    url            : string;
    searchTextArea : SelectorPromise;
    searchButton   : SelectorPromise;
}

ライブラリのインポート

不適切な例

ライブラリ名も長さが違うため、放っておくと、
以下のように微妙にインデントのずれたソースコードが
量産されます。
以下の例は、Pythonのコードです。

# 型アノテーションのためのライブラリ
from typing import Dict, List
# ファイル読み書きのためのライブラリ
from pathlib import Path

望ましい例

ライブラリの指定キーワード、ライブラリ名、
インポートキーワード、インポートする項目、
これらの開始位置がすべての行で縦にそろっています。

# 型アノテーションのためのライブラリ
from typing  import Dict, List
# ファイル読み書きのためのライブラリ
from pathlib import Path

参照文献

  1. リーダブルコード

Recent News

Recent Tips

Tag Search