プログラマーがコードを書く際は、メンテナンス性を確保したり、パフォオーマンスを最大化したりと、なるべく「良いコード」を書くように努める必要があります。Uberでエンジニアリングマネージャーを務めた経験を持つチャールズ・アクセル・ダイン氏が、「良いコード」を書くために重要な10のポイントを解説しています。
10 principles for good code | dein.fr
https://www.dein.fr/2015-10-01-10-principles-for-good-code.html
◆01:良いコードは革新的である
コードを書くことで解決しようとしている問題が「都市間の人々の移動」といった古典的な問題である場合、ソフトウェアやハードウェアによって革新的な解決法を提供できる可能性があります。また、すでにコンピューターが用いられている分野でも、ユーザーにこれまで以上に優れた体験を提供できる可能性もあるとのこと。
自らのコードが生み出した製品が周囲から革新的であると評価されている場合でも、常に世界のどこかでそれ以上に革新的な製品が生み出されています。そのため、「ソフトウェアやハードウェアのどの機能を利用すれば問題を解決できるか」「ユーザーに良い経験を提供するにはどうすればよいのか」といったことに常に着目し、革新し続ける必要があるとダイン氏は語っています。
◆02:良いコードは機能が明確である
コードを書く目的は「コーディング」自体ではなく、問題を解決し、製品を「良い製品」にすることにあります。「良い製品」は、ただ「機能する」だけにとどまらず、「優れた機能」と共に「優れたデザイン」を持ち合わせ、ユーザーを満足させるものです。ゆえにコードを書く際は、そのコードによって生み出される機能がユーザーにとって明確なデザインになるように努める必要があるとのこと。
◆03:良いコードは美しい
コードを書く際は、他人がコードを読みやすいように書く必要があります。ダイン氏は「美しいコードの書き方を説明するには非常に長い文章が必要になります」と述べつつ、美しいコードを書くために意識する点を複数挙げています。
・コードスタイルの一貫性を確保する
・思考を明確に表すような構造で書く
・コードの中に「後でやる」「要修正」などのコメントが存在しない
・変数名やコメントのルールが一貫している
・コードの再利用性を確保する
◆04:良いコードは製品の理解を助ける
良いコードは製品の構造を明確にし、ユーザーが直感的に製品の機能を把握できるようします。反対に、良くないコードは製品の理解を妨げる要因になります。
ダイン氏は、コードが製品の理解を妨げるかどうかを確認する方法として、コードのドキュメントを作成することを推奨しています。ドキュメントを作成する際に製品の機能とコードのギャップを埋めるための注釈が多く必要な場合は、コードを改善する余地があるとダイン氏は解説しています。
◆05:良いコードは邪魔にならない
ダイン氏はコードは目的を果たすための道具であり、過度に装飾されるべきではないと主張しています。そのため、コードの抽象化や、派手なデータ構造の使用、複雑なライブラリの使用、車輪の再発明などは控えるべきだとダイン氏は指摘しています。
◆06:良いコードはウソをつかない
コードは、製品を実際よりも革新的で価値のあるものに見せるものではありません。実際には搭載されていない機能をユーザーにアピールするものでもありません。
また、開発企業の経営が順調で、エンジニアチームの業務にも余裕があるように見える場合は製品への過剰な機能追加を検討したくなるものですが、その機能追加が無駄なものではないかや、車輪の再発明にならないかなどを慎重に判断する必要があります。
◆07:良いコードは長持ちする
良いコードはファッションやデザインとは異なり、時代遅れになることはなく、長い間有用であり続けます。しかし、ほとんどのライブラリやフレームワークは数年でメンテナンスされなくなってしまいます。そのため、コードを書く際は長年使われてきた枯れた技術を採用したり、比較検証済みの技術を採用したりと、慎重な技術選択が求められます。
◆08:良いコードは細部まで徹底している
初期のユーザーに提供するために実用最小限の製品(MVP)を構築する際は、製品を細部まで作り込まずに出荷する場合もあります。しかし、ダイン氏は「MVPを構築する際に特定のユースケースを犠牲にすることは問題ありません。しかし、最終的な製品は全てのユースケースに対応し、メンテナンスが簡単で、修正が容易である必要があります」と指摘しています。
また、ダイン氏は最終的な製品ではコードだけでなく、ドキュメント・アラート・テスト・ロギングおよびデバッグ機能なども細部まで徹底されるべきだと強調しています。
◆09:良いコードは環境に優しい
ソフトウェアやハードウェアを稼働させる際には、有限の資源である電気を消費します。そのため、効率的なデータ構造やアルゴリズムを採用した高効率なコードはユーザーだけでなく環境にも優しいとダイン氏は主張しています。
◆10:良いコードは短い
ダイン氏は、「コードは道具であり、目的ではない」ということを繰り返し主張し、ソフトウェア開発における最重要課題は「コードを書く」ことではなく「問題を解決すること」だと述べています。
そして、問題解決に集中するために、コードはできるだけ短くすべきとのこと。また、コードが短いことは、一般的にメンテナンスの必要性が少なくなり、パフォーマンスがよくなることを意味します。ダイン氏はコードを短くするために、解決するべき問題を取捨選択したり、既存の製品を流用したりすることを推奨しています。
この記事のタイトルとURLをコピーする