見出し画像

設計ルールを確認するPart1

こんにちは。Tokuです。
今回はアルゴ式 (algo-method.com)のプログラム設計技法の項目を読み、プログラムを書く際の最初の基本ルールを確認します。
この記事の内容は、アルゴ式 (algo-method.com)のプログラム設計技法の項目から参照しています。
サイトは、以下に掲載しています。

わかりやすいプログラムとは


わかりやすいプログラムとは、他の人が見た時にも理解しやすいコードのことを指します。これは、コードの保守性と拡張性を高め、チームでの作業をスムーズにするために不可欠です。

DRY原則

DRY原則とは、「同じものを何度も繰り返さない」という意味です。
なお、DRY とは Don’t Repeat Yourself の略です。例えば、for文を用いて、同じ処理にまとめます。

マジックナンバーは使用しない

変数になっていない具体的な数値は、変数に直し、間違いを減らします。

KISS原則

KISS原則とは、「シンプルなもののほうがよい」という意味です。
なお、KISSとはKeep It Simple Stupid の略です。短いプログラムのほうが、簡潔で読みやすく、ライブラリを用いることで実装量を減らし、必要な処理だけを含む関数を用いることが挙げられます。

複雑なプログラムを書き直す

複雑で読みにくいプログラムの作成は控えることです。例えば、三項演算子よりも単純な if 文を用いることで、よりシンプルにプログラムを作成できることがあります。また、大きなコードは分割して処理し、理解しやすいプログラムに修正します。

コーディング規則


Pythonでは、PEP 8というスタイルガイドがあります。これは、インデント、空白の扱い、命名規則など、コードを整理し、一貫性を持たせるための規則を提供しています。PEP 8に従うことで、コードの可読性を高め、Pythonコミュニティ内での共通の書き方を守ることができます。

コメントの位置を統一する

コードそのものの見た目を整理することで、可読性が上がり、処理を把握しやすくなります。例えば、コメントの位置がそろっていないために、どこに書いてあるかが把握できない問題があれば、コメントの端をそろえて可読性を上げる必要があります。

int x = 10         // xの初期値を設定
int y = 20         // yの初期値を設定

def calculator() {
    x = x + y      // xとyの和をxに代入
    return x
}

calculator()       // 計算関数を実行

インデントを整理する

1レベルインデントするごとに、スペースを4つ分を使うというルールがあります。これは、コードの可読性を高めるために広く使われている標準的な方法の一つです。エディタやIDEによっては、タブキーを押すことで自動的にスペース4つ分のインデントが挿入されるように設定されていることがあります。

def fizz_buzz(N):
//インデントをスペース4つで開始
    if(N % 3 == 0) and (N % 5 == 0):
    //インデントをさらにスペース4つで開始
        return "FizzBuzz";
    elif N % 3 == 0:
        return "Fizz";
    elif N % 5 == 0:
        return "Buzz"
    return str(N);

for i in range(1, 16):
//インデントをスペース4つで開始
    print(fizz_buzz(i))

命名規則

変数、関数、クラスの名前は、それが何をするのかを明確に伝えるべきです。例えば、get_user_data()はユーザーデータを取得する関数であることがすぐにわかります。以下の命名規則は、オブジェクトの種類を瞬時に識別できるようにするために役立ちます。
命名規則の種類

  • snake_case: この記法では、全ての単語を小文字で書き、単語間はアンダースコア(_)でつなぎます。

  • UpperCamelCase: こちらでは、各単語の最初の文字を大文字で記述します。

  • lowerCamelCase: 最初の単語のみ小文字で始め、以降の各単語の最初の文字は大文字で記述します。

具体的な言葉の使用
抽象的な命名ではなく、役割が明確にわかる具体的な言葉を使用します。例えば、ある関数が「座標平面上の2点間の距離を計算する」ことを目的としている場合:

  • 具体的な動詞の選択: getという曖昧な動詞ではなく、calc(計算する)やfetch(取得する)のように、動作をより具体的に示す動詞を選びます。

  • 明確な名前への改名: get_answerという関数名は、calc_points_distance(点間距離を計算する)に変更します。これにより、関数が具体的に何をするのかが名前から明確になります。

推奨される命名規則

  • 変数や関数: snake_caseを使用します。この方法により、これらのオブジェクトが瞬時に識別しやすくなります。

  • クラス: UpperCamelCaseを使用します。クラス名にこの記法を用いることで、クラスとその他のオブジェクトとの間に明確な区別がつきやすくなります。

誤解されない名前

命名時に誤解を避けるため、変数や関数の名前はその用途や状態を明確に示すべきです。例えば、ブール型変数には ishas を前置し(is_deleted など)、複数形を使ってリストやコレクションを示し(users)、動詞や具体的な命名法(deletemax, min)を適用して、その目的や機能をはっきりとさせます。これにより、コードの読み手は変数や関数の意図を容易に理解でき、誤解が減ります。

まとめ


わかりやすいプログラム作成のためには、重複を避けるDRY原則や、単純明快な設計を目指すKISS原則を守り、複雑性を減らして保守性と拡張性を高めることが重要です。具体的な数値は変数に置き換え、複雑なロジックはシンプルな形に書き直すことで、他者が理解しやすいコードになります。また、変数や関数の命名は、コードを読む際の理解を助ける小さなガイドのようなものです。適切に名付けられた変数や関数は、コードを英文として読めるほど明快にし、全体の可読性を高める効果があります。

その他


PEP 8 – Style Guide for Python Code | peps.python.org

この記事が気に入ったらサポートをしてみませんか?