> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/ja/2022/w08-how-to-write-good-code.md).

# W08-よいコードを書くには

先週、チームでよいコードの書き方を話したので、少し広げて考えたい。**普遍的な原則を一つ挙げるなら、情報源の質を高め続けることだ。よいコードを書くのも学習と実践の過程であり、質の高い情報源を探すことは、成長のよい原動力になる。**

働き始めたころは、公式アカウントの記事をよく読んだ。一つ開くたびに「うまい説明だ、正しいことを言っている、すぐ保存しよう」と驚いていた。やがて、開発者コミュニティにはもっと体系的な内容があり、その多くが media や google developer など海外から来ていると気づき、翻訳にも熱中した。その後、推薦図書の一覧や先輩が強く勧める古典に触れた。何冊か読むと、それまで読んだものの多くは、本の一部を抜き出し、広げ、実践した断片のように見えた。そうした本は新刊ではなく、何度も版を重ねていることが多いが、読むたびに発見がある。『達人プログラマー』『リファクタリング』『デザインのためのデザイン』、まつもとゆきひろの著作などだ。

この経験の前半は、パズルに近い。断片を集め、自分で探索し、理論を作ったが、最後には車輪を再発明していたと分かった。後半は木を育てることに近い。先に知識の構造を作り、幹ができてから断片的な情報を付け加える。情報を見分け、実践へ変える力があって初めて、日常で受け取る情報の力を最大限に引き出せる。何が小手先の技巧で、笑って流せばよいものか。何が一見素朴でも深く、静かに学ぶ価値があるかが分かる。

ここまでは情報源の質を上げる理由だった。次に、質の高い情報源とは何か。公式アカウントなどの新しいメディアは、本より質が低いのか。そうではない。情報経路にはそれぞれ得意分野があり、質は一つの軸にすぎない。経路自体を質で順位づけするのは公平ではない。ブランドごとに考えるほうが適切だろう。個人でも企業でも、よいブランドの内容は大きく外れにくい。ブランドは、その背後の選定、編集、校正にかけた労力と比例するからだ。例えばコミュニティの凹凸や奇舞団、出版社の図霊、O'Reilly、華章、湛廬などがある。

情報経路に上下や貴賤はなく、唯一万能のものもない。本来の性質を超える意味を与えると、極端な方向へ進む。万能な経路はないからだ。『愉しみながら死んでいく』が批判したテレビ全盛期には、熱狂のあまり教育までテレビで作り直そうとしたが、楽しませながら教える試みの多くは失敗した。テレビがもたらすのは気軽さと楽しさであり、それ以上の社会的責任を期待すべきではない。その後、私たちはポータルサイトの時代、モバイルの新メディアの時代を経験した。それぞれが情報を得る選択肢を増やしたのであり、必ず誰かを置き換えるという論理ではない。何に最も向くかという論理だけがある。

以前、万維鋼の見解も読んだ。最高品質の情報源は一流学会や学術論文であり、もっと読むべきだという。同意はするが、少し原理主義的にも感じる。彼の見方は科学エリートの視点に寄りがちだと思う。先日読んだ量子力学の一般向け解説の序論に、印象に残る一節があった。名称に「科学」が付く学問は科学ではなく、その分野の自信のなさを表す、例えばコンピュータ科学だというものだった。
