プロダクトの価値はコードから始まる――『良いコードの道しるべ』で踏み出す、価値あるプロダクトへの第一歩【書籍紹介記事】|Tech Book Zone Manatee

マナティ

プロダクトの価値はコードから始まる――『良いコードの道しるべ』で踏み出す、価値あるプロダクトへの第一歩【書籍紹介記事】

ソフトウェア開発に「銀の弾丸」はありません。しかし、変化に強いコードを書くための確かな指針はあります。『良いコードの道しるべ』は、現役エンジニアが実践で培った知見をもとに、保守性を軸にした「良いコード」の本質を解き明かす一冊。ジュニアからベテランまで、すべてのエンジニアに価値ある考え方と実践手法を届ける本書をご紹介します。

Manateeではメルマガ会員を募集中!

目次
 「良いコード」とは
   銀の弾丸はないけれど
 本書の特長・良いところ
   万人にオススメしやすい癖の無さ
   現場で求められるビジネス視点にしっかり寄り添っている
   ジュニアでもスッと読める、圧倒的なわかりやすさ
     日本人エンジニアが書いた、読みやすさ抜群の一冊
     現役エンジニアならではのリアルな視点
 隠れた魅力ポイント「ヒント」
   ヒント:再発明のメリット
   ヒント:格好つけたコードを書かない
   ヒント:生成AIは本質的困難を解消できるか
 さいごに この本を読む必要のない人へ向けて

※本書評はManatee編集部独自の見解です。

 

「良いコード」とは

本書での「良いコード」の定義は

高い保守性を実現しているコード

簡潔に言うと「将来的な変更が簡単にできるコード」が「良いコード」だと言っています。

なぜ保守性が高いコードこそが「良いコード」であると定義しているのか、その理由は現代を生きるエンジニアとして忘れてはならない視点によるものでした。

世の中は常に変わり続けており、その変化に対応できた企業やサービスのみが生き残ってきました。
(中略)
ユーザのニーズの変化に対応し、競合企業との競争に勝ち、市場で生き残るためにはこれまでにない速度が必要といえます。
高い保守性を維持できれば、継続的な改善ができ、ユーザへより良い体験を届けられ、市場での競争に生き残りやすくなります。すなわち、ソフトウェアの将来に対する価値が高まるといえます。

書籍『良いコードの道しるべ』内の図。「保守性とソフトウェアの価値」というタイトルで、「高い保守性を維持できれば、継続的な改善ができ、ユーザへより良い体験を届けられ、市場での競争に生き残りやすくなります。すなわち、ソフトウェアの将来に対する価値が高まるといえる」ということを説明している。

銀の弾丸はないけれど

コードの良し悪しにはさまざまな視点や考え方があります。
「これさえ守れば絶対に良いコードになる!」という万能なルールは存在しません。プロダクトの特性によっては、ある場面では「良いコード」だとしても別の場面では「悪いコード」になり得ます。

とはいえ、本書で示されている「良いコード」の定義は、多くのケースでしっかり当てはまり、さまざまな場面で指針として活用できる、とても実践的で信頼できる基準です。場合によっては調整が必要な時もありますが、エンジニアが身に付けるべき基本的な考え方として非常に価値あるものだといえるでしょう。
 

本書の特長・良いところ

良いコードを書くうえで、大まかに「少なくともこういうことに注意する必要があるよね」といった感じのふわっとした考え方・決まり事は無数に存在します。命名ルール、コメントの書き方、依存関係の整理、KISS原則、YAGNI原則、アーキテクチャの考え方、コードレビュー・チーム開発の上での注意点・・・関係のあるものをあげたらキリがありません。
そのエッセンスを言語化し「まず技術者として身に着けるべき基礎」をまとめたのが『良いコードの道しるべ』です。

「良いコード」のための実践手法を盛り込んだ指南書であることは勿論のこと、技術者としてプロダクトを開発・運用していく中でどういう考え方が必要かも教えてくれる読み物としての側面もあります。
 

万人にオススメしやすい癖の無さ

この本を読んで感じたのは、「強い主張を押し付けない」という魅力です。

先にも触れたように、プロダクト開発において万能な解決策(銀の弾丸)は存在しません。本書も「この通りに従えば完璧!」という方法論を語るのではなく「このケースではこう考えるとよい」という柔軟な指針を示してくれます。
そういった意味で本書内では「強い主張をしない」といったことが読み取れます。
そのため、特定の思想や流儀に偏ることなく、幅広い状況で参考になる内容になっています。
そんな本書の知識はすべてのエンジニアにとって価値があり、知っておいて損はないと自信を持って言えます。
 

現場で求められるビジネス視点にしっかり寄り添っている

この本で印象的なのは、「良いコードを書く理由は、価値あるプロダクトを市場で成功させるため」という明確な視点です。
どんなに美しいコードでも、ユーザーやビジネスに評価されなければ意味がありません。本書からは、そうした現実を踏まえた筆者の強い思いが伝わってきます。
単なる技術論にとどまらず、プロダクトの価値を最大化するためにコードを書くという本質的な目的を示してくれる点が、この本の大きな魅力のひとつです。
 

ジュニアでもスッと読める、圧倒的なわかりやすさ

この類の書籍では『リーダブルコード』(オライリー・ジャパン)や『CODE COMPLETE』(日経BPソフトプレス)など、長年名著とされてきた書籍は、今でも全エンジニア必読の指南書です。
しかし、それらと比べて本書が際立っているのは ジュニアエンジニアにとって圧倒的に読みやすい という点です。
 

日本人エンジニアが書いた、読みやすさ抜群の一冊

世界的な名著の多くは翻訳書であり、ソフトウェアやプログラミング言語が英語をベースにしている以上、それは自然なことです。
ただ、翻訳書にはどうしても海外ならではの独特な言い回しや読みづらさがつきもの。
その点、本書は違います。令和の日本人エンジニアが、同じ日本人エンジニアのために書いた本なので、言葉のニュアンスが自然で、ジュニアエンジニアでもスッと理解できる読みやすさがあります。
「内容は本格的なのに、文章は親しみやすい」――そんなバランスの良さが、この本の大きな魅力です。
 

現役エンジニアならではのリアルな視点

著者の森篤史さんは執筆時点で「LINE」のAndroidアプリ開発に携わる現役バリバリのエンジニア。
その経験を背景に、本書では実践で培われた考え方や手法が惜しみなく紹介されています。
同じエンジニア目線だからこそ、内容には強い共感があり、すぐに役立つ知識が詰まっています。学びながら「なるほど!」と思える場面が多いのも、この本の魅力です。
 

隠れた魅力ポイント「ヒント」

ここまで、本書のメインテーマである「良いコード」や、その圧倒的な読みやすさについて紹介してきました。
ここで少し視点を変えて、別の魅力をお伝えします。

それが、本書の随所に登場する「ヒント」です!
ちょっとしたコラムのように、エンジニアあるあるや著者・森さん自身の考えが書かれていて、これがまた面白い。
本編とは別に、ここだけでも読む価値があると感じるほど、実践的で共感できる内容が詰まっています。
このあと、特に印象に残った「ヒント」をいくつかご紹介します。
 

ヒント:再発明のメリット

「車輪の再発明はコストがかかるから避けるべき」という章の中で、著者は一歩踏み込んだ視点を提示しています。
書籍『良いコードの道しるべ』内のコラム部分。「「再発明」のメリット
基本的には、すでにあるコードをできるだけ使ったほうが早く、また確実に開発を進めることができます。一方で、すでにあるシステムを自分で手を動かして真似してみることは、プログラミングが上達するための非常に有効な訓練になります。ぜひ一度、普段利用しているコードを自分の手で再現することに、チャレンジしてみてください。また、すでにあるコードをより良くするアイデアがあれば、それを試してみるのも良い試みです。それがOSS であれば、コミュニティと議論したり、改善したコードを提案することができます。また、新しいライブラリとして公開してみるのも良いでしょう。」と書いてある。
単なる否定ではなく、再発明にも学びや改善の余地があるという考え方が示されており、エンジニアとしての成長につながるヒントになっています。
 

ヒント:格好つけたコードを書かない

コードは動くだけでなく、他人に伝わることが大切だと説く章です。
「この書き方、難しいけど画期的すぎる!」と思ったことはありませんか?
書籍『良いコードの道しるべ』内のコラム部分。「格好つけたコードを書かないコードを書いていて、他の人が思いつかないような画期的な書き方を思いついたとき、実際に試してみたくなるものです。しかしそうやって書かれた巧みなコードは、多くのケースで他人の理解の妨げとなります。1 人でコードを書いているときも注意が必要です。数ヶ月経った後、自分の書いたコードがまるで分からなくなることがあります。将来の自分はもはや他人です。格好つけず、愚直で伝わりやすいコードを書くようにしましょう。」と書いてある。
そんなときこそ、愚直でも読みやすさと理解しやすさを優先するという、現場で役立つ実践的な気づきを与えてくれます。
 

ヒント:生成AIは本質的困難を解消できるか

急速に進化し、今やエンジニアにとって欠かせない存在となった生成AI。
本書では、そんなAIについて冷静で本質的な視点が示されており、非常に考えさせられる内容です。
書籍『良いコードの道しるべ』内のコラム部分。「生成AI は本質的困難を解消できるか2020 年代初頭から急速に生成AI が発達し、さまざまな課題を解決してくれるようになりました。生成AI はソフトウェアの本質的な課題を抜本的に解決してくれるのでしょうか?解決したい問題を抽象化し、その複雑な概念を構造化するという作業において、生成AI は非常に有効だと考えられます。膨大な学習データを元に、個別の事象に対しても設計の提案や支援をしてくれます。この点は今までに登場したフレームワークやツールと比較して著しく異なります。とはいえ、完全に本質的困難を解決できるかというと、少なくとも本書の執筆時点ではその域には達しておらず、将来的にもまだ分かりません。開発者は自分が実現した
い内容の詳細をAI に伝える必要があり、これはソフトウェアの設計する作業の重要なフェーズと考えられます。また、AI が提案した設計が問題ないのか判断するのは、現状人間が行う必要があります。現時点では、生成AI は補助的なパートナーとして活用するのが最適でしょう。開発者は生成AI の回答に対し正しい判断ができるよう、より一層課題の本質に向き合い、ソフトウェアの設計についてより深く考える必要があります。」と書いてある。
「AIは万能なのか?」という問いに対するヒントは、これからの開発を考えるうえで参考になります。

 

さいごに この本を読む必要のない人へ向けて

著者の前書きを一部お借りして、この本を読む必要のない人をお伝えします。
それは「まだプログラミングを始めて間もなく、開発がどうしようもなく楽しい状態」の人です。

やりたいことをやっている時が1番楽しく、1番学びがあります。コーディングをAIが牛耳る現代でも、手を動かすことこそが1番の勉強であると、私は信じています。

開発を続けていく中で「上手くいかないな」「もっとプロダクトのクオリティを上げたいな」と思った時に、この本のことを思い出してください。

それからでも決して遅くはありません。
その時こそ未来を見据えた「良いコード」を学ぶチャンスです。もしかするとそれは今なのかもしれません。

ぜひ本書を手に取って、より素晴らしいプロダクトを市場に届けるエンジニアへと成長を遂げましょう。
  Manateeではメルマガ会員を募集中!

著者プロフィール

Manatee編集部(お知らせ)
『Tech Book Zone Manatee』(テックブックゾーン マナティ)は、マイナビ出版が運営するITを学ぶ方に向けた電子書籍ストア。コンピュータ関連の電子書籍・POD書籍の販売をはじめ、注目の開発技法やプログラミング関連の情報など、多彩なコンテンツを発信しています。