戻り値の型が、後置きの言語

特にPHPなどは、戻り値の型の有無が選択的なので、より顕著に可読性が下がります。

良い例

基本は、長くないなら1行で書きましょう。

function createUesr(string $name, int $age): User {
    return User::create($name, $age);
}

改行する場合でも、以下のように書けば、可読性を落とさずに済みます。

function createUesr(
    string $name,
    int $age
): User {
    return User::create($name, $age);
}
function createUesr(
    string $name,
    int $age
    ): User {
    return User::create($name, $age);
}

悪い例

以下のことが、一見してわからないため、可読性を下げます。

  • 「シグネチャ定義」と「処理の実装」の境界
    • 戻り値の型(そもそも、あるのかないのかがわからない)
    • 処理がどこから書かれているのか
function createUesr(
    string $name,
    int $age): User {
    return User::create($name, $age);
}

以下のことが、一見してわからないため、可読性を下げます。

  • 戻り値の型
function createUesr(
        string $name,
        int $age): User {
    return User::create($name, $age);
}

戻り値の型が、前置きの言語

戻り値の型が前置きの言語の場合、事情は少し異なります。

良い例

基本は、長くないなら1行で書きましょう。

public User createUser(String name, int age) {
    return User.create(name, age);
}

改行する場合でも、以下のように書けば、可読性を落とさずに済みます。

public User createUser (
        String name,
        int age) {
    return User.create(name, age);
}

悪い例

以下のことが、一見してわからないため、可読性が低いです。

  • 「シグネチャ定義」と「処理の実装」の境界
    • 処理がどこから書かれているのか
public User createUser (
    String name,
    int age) {
    return User.create(name, age);
}

構文的な意味しかない行は、可読性を下げるかもしれません。(これは冗談半分で言っています。「1行読み飛ばす」事自体は、ストレスになりにくいと思うので、別にどうでも良さそうです。)

「行を読み飛ばす」のは、案外コストの重たい処理だったりすると思います。

public User createUser (
    String name,
    int age
    ) { // これのためだけに1行を費やすのは、可読性を下げる
    return User.create(name, age);
}
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.