「クリーンなコードはシンプルで明確です。 純粋なコードは、よく書かれた作品のように読みます。 純粋なコードは作成者の意図を隠すことはありませんが、それどころか、明確な抽象化とシンプルな制御線で満たされています»
本日、このトピックに関する書籍と記事のリストをまとめました。HackerNews、Stack Exchange、およびその他の専門プラットフォームの居住者が読むことをお勧めします。
/ Flickr / Robert Gourley / CC
文学
- Steve McConnell による完璧なコード
この本は、ほとんどの場合、コードの清潔さに関する会話に登場します。 ソフトウェア開発バイブルとも呼ばれます。 作品は1993年にリリースされました。 この本は、設計とコード計画に重点を置いているため、最も包括的な実用的なデザインガイドと見なすことができます。著者は、開発のこれらの段階に最も重要な役割を割り当てています。
- 「実用的なプログラマ。 見習いからマスターへの旅 ''
アンドリュー・ハント、デビッド・トーマス
ナレーションの容易さで知られる、開発者の間で人気のあるもう1つの作品。 たとえば、コードのエラーや不正確さについて読者に警告する場合、著者は「 壊れたウィンドウ 」の理論に頼ります 。 本はさまざまなトピックをカバーします-個人的な責任とキャリア開発からプログラムに柔軟性を与える建築技術まで。
- レオ・ブロディ による「思考の道-砦」
Fortは、前世紀の70年代に天文学で広く使用されていたプログラミング言語です。 狭いトピックにもかかわらず、開発者は本の中でコードを構築する基本を見つけるでしょう 。 Fortを学ぼうとしない人でさえ、「Fortan」の考え方がリファクタリングの見方を変えるのに役立ちます。 2004年に再版され、Leo Brodieによって提供され、一般に使用されています。
- 「ルビー。 オブジェクト指向設計» Sandi Metz
Sandi Metzは、基本に精通しているがまだコード哲学を形成していない開発者に注目して、オブジェクト指向設計の実用的なガイドを作成しました。 著者は、明確で実生活に近い例を使用しています。 Sandyは、費用対効果の高いテストと賢明なアプローチのファンです。 彼女のウェブサイトでは、「コードが完成し、喜びが残っていなければ、この本があなたの決定です」と書かれています。
- 「リファクタリング。 既存のコードの改善»
マーティン・ファウラー、ケント・ベック、ジョン・ブラントなど
90年代後半に登場した別の時代を超越した本。 リファクタリングの作者のリストは、Kent Beckとともに、極端なプログラミング方法論の中心にいるMartin Fowlerによって導かれています。 これは、開発プロセスのまったく新しい外観であり、コードのあり方と作成方法を示しています。 本には、詳細な説明を含むリファクタリングの例が含まれています。 それらの多くは関連性を失うことはなく、一部は自動化されて現在の開発で使用されています。
- 「Unix用プログラミングの技術」 Eric Raymond(Eric Raymond)
この本のタイトルは、ドナルド・クヌース(1968)の「プログラミングの芸術」の基本的な仕事と調和して無駄ではありません。 彼の本のページで、エリック・レイモンドは実用的な推奨事項だけでなく、哲学、つまりUnixのコードの理解も伝えようとしています。 彼は多くの例を使ってこれを行います。 彼らは、Unixで働いた才能ある人々の仕事の成果と「クリーンコード」の哲学に敬意を表しています。
- 「プログラミングの練習」
ブライアン・カーニガン、ロブ・パイク
エリック・レイモンドは、「プログラミングの実践」と呼ばれる彼の作品で「Cの愛好家(より正確には、すべてのプログラマー)に推奨される読書」と述べています。 したがって、この本は純粋な開発の古典と呼ぶことができます。 ここでは、設計とアルゴリズムの正しい選択を含む、実用的なプロフェッショナルプログラミングの原則が考慮されます。
- 「きれいなコード。 作成、分析、リファクタリング» Robert C. Martin
「クリーンコード」とは、21世紀の観点からの開発プロセスのことです。 本には、プログラムの特定の例がたくさんあります。 著者のロバートは、開発に関する哲学を定式化しようとはしていませんが、コードが「人生」でどのように機能するかを示しています。
- Robert Nystromに よる「ゲームプログラミングパターン」
「これは私がゲームを作り始めたときに読みたい本です」と著者自身が説明しています。 一見したところ、「テンプレート」は、Electronic Artsベテランのゲーム開発者向けの高度に専門化された文献です。 ただし、詳しく調べると、この本ではコードの使用を再考し、コードをよりきれいにすることができます。 Redditユーザーの1人は、この本を読んだ後にC ++ を学ぶことを決めました 。
- 「読み取り可能なコード、または芸術としてのプログラミング」
ダスティン・ボズウェル、トレバー・フーチャー
JavaScriptの作者であるNicholas C. Zakas氏によると 、「この本は、他に類を見ないコード衛生に没頭します。」 この本は、変数、関数、クラスの命名が開発チームにどのように役立つかを説明しています。 主な焦点:コードとコメントの構造化、パフォーマンスと可読性のバランス。
参照資料
/ Maxpixel / コードデータプログラミング / CC
いくつかの記事、ブログ、ツール
- 記事「サポートされていないプログラムコードの書き方」は、一種の古典です。 「悪いアドバイス」の形式で、読者はどのコードがクリーンであると考えられないかを見つけるために招待されます。
- クリーンなコードにはいくつかの正式な属性があります。 MikaMäntylä教授の表を使用して、コードが「悪臭」を発するかどうかを確認できます 。 良いコードの兆候はCoding Horror ブログにあります。
- Quoraユーザーがアドバイスしているように 、クリーンなコードの技術を理解するには、できるだけ多くの良いコードを読む必要があります。 これには、 GitHub 、 Codeplex 、 Google Codeなどのプラットフォームが適しています。 ところで、さまざまなプラットフォームは、コードを改善するための既製のツールを提供します。 たとえば、 GitHub Code Review 。
- コードクリーニングプロセスは部分的に自動化できます。 統計分析のためのツールがあります。 C、C ++の場合、 PC-lintはこのために開発されました。 コードを簡素化するためにSourceMonitorを許可します 。
- コード構造化ガイドラインは、プラットフォーム開発者からもしばしば提供されます。 たとえば、MicrosoftにはこのドキュメントがC#用にあります。
PSダイジェスト:
PPSブログには他に何を書いていますか?