なんとなくそう思ってたけど、コードを書くのは意外と楽なのに、読むのはめちゃくちゃ難しいって気づいたんだよね🤔✨
たとえば新しいプログラムを作るときって、「よーし!」って気合い入れてパソコンの前でカタカタ書くじゃん?
でも数日後とか、誰かの書いたコードを見て「え、これ何してるの?」ってなったこと、ない?👀💭
書くと読むは全然ちがうスキルなんだよね💡
コードを書くときは、自分の頭の中のロジックをそのまま形にしてるわけ。
でも読むときは、他人の考えや自分の忘れた記憶を理解しなきゃいけないから、すごく疲れるんだ🥺
しかも、コードってたった1行の違いで意味がドッと変わったりするから、集中力が超必要✨
しかもコメントがなかったり、変な変数名だったりしたらもう…パズル状態だよね🧩
だからこそ、「読みやすさ」がめちゃ大事なんだと思う👀💭
- コメントをちゃんと書く
- 変数や関数の名前をわかりやすくする
- 処理をシンプルにする
こういうことが、後から読む自分やチームメイトへの「やさしさ」になるんだと思うよ🥰
わたしもまだまだだけど…👧🏻✨
自分の書いたコードをあとで読み返すと「これ何書いたんだっけ?」ってなるの、まじあるある😳
だから最近は、書くときに『将来の自分に説明するつもり』で丁寧に書くようにしてるんだ🍓
わかりにくいコードは、自分で直すし、そうやって積み重ねると読みやすさの感覚も少しずつ育つ気がするよ💗
読むのって大変だけど、ちょっとした工夫でずいぶんラクになるから、わたしと一緒にがんばろうね🎀✨
コメント
ハンナ
悪いコードを書くのは簡単だよ。
ハンナ
コードを読むのが難しいのは、下手に書くのが簡単だからで、みんな書く速さを優先しちゃうんだよね。
キンバリー
「誰でもコンピュータが理解できるコードは書ける。 良いプログラマーは人が理解できるコードを書く」マーティン・ファウラー
ハンナ
うちの会社もコード書きづらくしてるよ。
ワット
コードを書くってのは、全部難しい部分を取っ払って入力だけなら簡単ってだけだね。
ミア
「デバッグはコードを書くより2倍難しい。 だから、賢く書きすぎると自分で直せない」- ブライアン・カーニハン
ベン
そんな大胆な発言聞いたことないけど、シンプルが一番って思ってる?
サラ
自分のコードを一ヶ月後に読むのはもっと難しいよ。
リリー
コードから直接メンタルモデルは作れないんだよね。 コードはモデルの結果であってモデル自体じゃない。
クリス
例えば複雑なマルチスレッドでデータ構造を扱うけど、同時に同じ部分には触らないと分かってるからロック不要。 でもメンタルモデルではロック必要で、コードだけ見てもわかりにくい。 スレッドモデル変わったらロック戻す必要もあるし。
リリー
コードを書くのは簡単。 でも構造を整えて保険を残しながらいい判断をするのは難しい。 最近の議論は浅いよね。 OOPとFPで喧嘩してた頃が懐かしい。
レオ
「Hello World」くらいのコードは簡単だよ。
ノーラン
コードは、メンテする人が怖い殺人鬼で自分の居場所を知ってると思って書け。 そうすれば読みやすくなる。
キンバリー
例えば`getUserPreferences(userId)`みたいな関数を理解したいとき、定義場所はIDEが教えてくれるべきだよね。
キンバリー
戻り値が何か、Promiseか、データの形はコード内の型で示されててほしいし、聞けばIDEが答えてほしい。
キンバリー
だから多くの人が静的型付けを好むんだよね。 `dict[str, Any]`とか使うのほんと面倒だし。
クリス
DBに直接アクセスするのかAPI経由なのか、キャッシュがあるのかは場合によるから難しい問題だよね。
キンバリー
ユーザーが存在しない場合は型やドキュメントで明確にすべきだし、そもそも無効な`userId`を作る部分を直すべきだよね。
キンバリー
誰がどこでその関数を呼んでるかもIDEが教えてくれるべき。
リリー
副作用があるかどうかも、モナドみたいに型で表現できたらいいのにね。
ミア
でもそういうツールの話じゃなくて、著者はLLMについて話したかったんだろうね。
ロバート
まとめると「コードを書くのは難しい、良いコードを書くのはもっと難しい、良いコードを読むのは難しい、悪いコードを読むのはもっと難しい」って感じかな。