Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Writing code is easy, reading it isn't

2025年09月08日に「Hacker News」が公開したITニュース「Writing code is easy, reading it isn't」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

開発時間の大半はコードを書くことより読むことに費やされる。そのため、将来の自分や他人が読みやすいコードを書くことが重要だ。特にコメントでは、コードが「何」をするかではなく、「なぜ」その実装なのかという意図を説明することが可読性を高める鍵となる。

出典: Writing code is easy, reading it isn't | Hacker News公開日:

ITニュース解説

プログラミングを学び始めると、多くの人はまず「コードを書いて、意図通りに動かす」ことに喜びと達成感を見出す。しかし、実際のシステム開発の現場では、コードを書く行為そのものよりも、他人が書いたコード、あるいは過去の自分が書いたコードを「読んで理解する」という作業に、はるかに多くの時間が費やされるという事実がある。システム開発は多くの場合、一人ではなくチームで行われる。既存のシステムに機能を追加したり、不具合を修正したり、性能を改善したりと、すでにあるコードを理解することがすべての作業の出発点となるからだ。この「コードを読む」という行為は、書くこと以上に難しく、プロフェッショナルなエンジニアにとって極めて重要なスキルである。

なぜコードを読むことは書くことよりも難しいのか。その最大の理由は、コードを書いた本人と読む人との間にある「文脈(コンテキスト)」の欠如にある。コードを書いている最中、開発者の頭の中には、そのコードが必要とされるに至った背景、ビジネス上の要件、技術的な制約、他の実装方法と比較検討した結果など、あらゆる情報が揃っている。これらの文脈があるからこそ、その人にとっては自然で論理的なコードが生まれる。しかし、コードという最終的な成果物だけを見た他の開発者や、数ヶ月後の自分自身には、その文脈はほとんど伝わらない。コードを読む側は、残されたソースコードという断片的な情報だけを頼りに、書いた人の思考プロセスを推理し、失われた文脈を再構築しなければならない。この作業は、まるで暗号解読のように困難なものとなり得る。特に、変数名や関数名がatempprocessDataのように曖昧であったり、一つの関数に様々な処理が詰め込まれていたりすると、その意図を正確に読み解くのは至難の業となる。

このような困難を乗り越え、誰にとっても理解しやすいコードを書くためには、いくつかの重要な原則がある。その中でも特に効果的なのが、コメントを適切に活用することだ。初心者はしばしば、コードが「何をしているか(What)」を説明するコメントを書きがちだ。例えば、count = count + 1;という行に対して// countに1を足すと書くようなコメントは、コードそのものを見ればわかることであり、冗長で価値が低い。本当に価値のあるコメントとは、コードが「なぜそのように書かれているのか(Why)」を説明するものだ。例えば、一見すると非効率に見える処理があったとしても、「特定の条件下ではこのアルゴリズムが最もメモリ消費を抑えられるため」といった技術的な背景や、「法律上の要件で、この計算処理は必ずこの手順を踏む必要があるため」といったビジネス上の制約を記したコメントは、後からコードを読む人にとって非常に重要な情報となる。良いコメントは、書いた人の意図や知識を未来に伝えるためのタイムカプセルのような役割を果たす。

コメントと並んで重要なのが、意味の通る名前をつけることだ。変数には、その中に何が格納されているのかが一目でわかる名前(例:remainingAttemptscustomerAddress)を、関数には、その関数がどのような処理を行うのかが明確にわかる名前(例:calculateSalesTaxvalidateUserInput)をつけるべきである。優れた命名は、コードの可読性を劇的に向上させ、コメントを不要にする場合すらある。さらに、プログラムの構造をシンプルに保つことも不可欠だ。一つの関数には一つの責任だけを持たせるように心がけ、複雑な処理はより小さく、理解しやすい単位の関数に分割することが望ましい。これにより、各部分の役割が明確になり、コード全体の流れを追いやすくなる。また、プロジェクト全体でコーディングのスタイル、例えばインデントの付け方や変数名の命名規則(キャメルケースかスネークケースかなど)を統一することも、コードの見た目を予測可能にし、読む人の認知的な負担を軽減する上で効果的だ。

結論として、プログラミングとは、単にコンピューターに命令を伝える作業ではない。それは、未来の自分自身やチームのメンバーといった「人間」とのコミュニケーションでもある。動作するコードを書けることは、プロのエンジニアとしてのスタートラインに過ぎない。真に優れたエンジニアは、他者が容易に理解し、保守し、拡張できるコードを書く能力を持っている。システムは一度作られた後、そのライフサイクルの大半で読まれ、修正され続ける。コードは書かれる回数よりも、読まれる回数の方が圧倒的に多いという事実を常に意識し、読み手の立場に立った「思いやりのあるコード」を書くことを心がけることが、システムエンジニアとして成長していく上で不可欠な姿勢なのである。

関連コンテンツ