maco's life

主にエンジニアリングと読書について書いていきます。

Hashの可読性

メソッド名に明確なルールがあって safixにrsがついてたらResultSetが返ってきて、infoがついていたらHashRef が返ってくるなど決まっている時は問題ないけど、このメソッド 何が返ってくるか微妙だなーって時がある。

例えば以下

sub {
    my $self = shift;

    # get_objectsは何かのオブジェクトを複数返す
    my @array = $self->get_objects;

    my $hash_ref = {map { $_->id => $_ } @array};

   ...
}

ここでmapの中で $_ を使っているからこのhash_refのなかって どんなデータが入っているのかぱっと分からないのつらいーってなる。

なので最近は似たような状況になった時は

sub {
    my $self = shift;

    # get_objectsは何かのオブジェクトを複数返す
    my @array = $self->get_objects;

    # { hogeのid => hogeのオブジェクト }
    my $hash_ref = {map { $_->id => $_ } @array};

    ...
}

みたいなコメント残すようにしています。 わかりづらいメソッド名つけてるからダメなのでは?ってことかもだけど 少しでも可読性あがればみんなハッピー(((((((((((っ・ω・)っ