1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「“読む側”になって初めて分かったこと」

1
Posted at

「“読む側”になって初めて分かったこと」

新人エンジニアの頃、私はこう思っていました。

コードを書くことが仕事

なので当時はどう実装するかばかり考えていました。

しかし実務に入ってしばらくすると、
あることに気づきます。

実務は「書く」より「読む」が圧倒的に多い

しかも読むコードは

 ・他人のコード
 ・数年前のコード
 ・仕様不明のコード
です。

そしてさらに恐ろしいのは昔の自分のコードすら読めないことでした。

今回は**“読む側”になって初めて分かったこと**を書いてみます。


新人の頃は「書くこと」が全てだった

新人の頃は実装することばかり考えていました。

例えば

if(user != null){
    if(user.getEmail() != null){
        sendMail(user.getEmail());
    }
}

動く。だからOK。

当時は自分が理解できれば十分と思っていました。

でも実務では違いました。

コードは
 ・他人が読む
 ・未来の自分が読む
ものだったのです。


実務で最初に衝撃を受けたこと

実務に入って最初に驚いたのは

コードを書く時間より
調査している時間の方が長い

ことでした。

例えば障害対応。

なぜエラーになったのか

を調べます。

すると

Controller
↓
Service
↓
Repository
↓
SQL

を追いかけることになります。

新人の頃は実装メインだと思っていました。

しかし実際は既存コードを読む
時間の方が圧倒的に長かったです。


読みにくいコードは本当に辛い

実務で特につらかったのがこれです。

String data;
String tmp;
int a;

変数名が意味不明。

さらに

if(a == 1){
    // 何かの処理
}
aって何?

状態になります。

新人の頃の私は

変数名なんて適当でいい

と思っていました。

でも読む側になると分かります。

命名は説明そのものでした。


「短いコード = 良いコード」ではなかった

新人の頃はコードは短い方がカッコいいと思っていました。

例えばこういうコード。

return list != null && !list.isEmpty();

当時はスマート!と思っていました。

でも実務で大量のコードを読むようになると一瞬で理解できるかの方が重要でした。

つまり書きやすさではなく読みやすさが重要だったのです。


コメントを書かなかった理由

新人の頃はコードを見れば分かると思っていました。

でも実務では

if(status == 9){
    process();
}

みたいなコードが出てきます。

9って何?

となる。

業務コードでは業務知識が必要なことが多いです。

つまりコードだけでは意味が分からない。

読む側になって初めて

コメントは未来の読者への補足

だと分かりました。


一番読みにくかったのは「昔の自分のコード」

これが一番衝撃でした。

数ヶ月前に書いたコード。

if(checkFlg(data)){
    update(data);
}

でも後から見ると

checkFlgって何…?

となる。

書いた本人なのに分からない。

ここで初めて気づきました。

コードは記憶に頼ってはいけない

ということです。

つまりコードは

未来の自分でも読める必要がある

のです。


「読む」を意識するとコードが変わる

読む側を経験すると
コードの書き方がかなり変わります。

例えば変数名。

String data;

String customerEmailAddress;

長い。

でも圧倒的に分かりやすい。

他にも

メソッドを分割する
責務を分ける
コメントを書く

などを意識するようになりました。

理由はシンプルです。

読む人を助けたい

からです。


個人的な考察

実務をやっていて思うのは

コードは「書くもの」ではなく
「読まれるもの」

だということです。

新人の頃は

自分が実装できればOK

でした。

しかし実務では他人が理解できるかの方が重要でした。

特に業務システムは「5年後」「10年後」も使われます。

つまりコードは未来へのドキュメントでもあるのです。

まとめ

“読む側”になって初めて分かったのは

実務は読む時間の方が長い

ということでした。

そして良いコードとは書きやすいコードではなく読みやすいコードでした。

もし新人の頃の自分に
一言アドバイスするならこう言います。

未来の誰かが読むことを前提に書け

その「誰か」は
未来の自分かもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?