優れたプログラマーのコードはどのようなものですか?[閉まっている]


90

私は趣味のプログラマー(VBAで始めてExcelをより速くするため)であり、VB.NET / C#.NETを使用しており、ADO.NETを学習しようとしています。

いつも私を苛立たせているプログラミングの側面は、「良い」はどのように見えるのですか?私は専門家ではないので、比較するものはほとんどありません。優れたプログラマーは何ですか?それは...ですか:

  • 彼らは与えられた言語のすべてのオブジェクト/クラス/メソッドをよりよく理解していますか?
  • 彼らのプログラムはより効率的ですか?
  • それらのプログラムの設計は、より良いドキュメント、関数の名前の適切な選択などの点ではるかに優れていますか?

別の言い方をすれば、もし私がプロのプログラマーのコードを見たとしたら、私のコードと比較して私が最初に気づくことは何ですか?たとえば、Wroxプレスによる「Professional ASP.NET」のような本を読んだ。その本のコード例は「世界クラス」ですか?それは頂点ですか?トップガンのプログラマーはそのコードを見て、それが良いコードだと思いますか?

回答:


131

以下のリストは包括的ではありませんが、これらはあなたの質問を検討する際に考えたものです。

  • 良いコードはよく整理されています。クラス内のデータと操作は適合します。クラス間に無関係な依存関係はありません。「スパゲッティ」のようには見えません。

  • 良いコードコメントは、物事が行われるのではなく、なぜ行われるのかを説明しています。コード自体は何が行われるかを説明します。コメントの必要性は最小限でなければなりません。

  • 優れたコードは、最も一時的なオブジェクトを除くすべてのオブジェクトに意味のある命名規則を使用しています。何かの名前は、オブジェクトをいつ、どのように使用するかを示しています。

  • 良いコードは十分にテストされています。テストは、コードの実行可能仕様とその使用例として機能します。

  • 良いコードは「賢い」ものではありません。単純明快な方法で物事を行います。

  • 優れたコードは、小さくて読みやすい計算単位で開発されています。これらのユニットはコード全体で再利用されます。

まだ読んでいませんが、このトピックについて読む予定の本は、Robert C. MartinによるClean Codeです。


9
非常に良い点。「良いコードは賢くない」という発言が特に好きです。他の人が読みやすく保守しやすいコードを書くのは非常に困難です。だれもが理解できない(しばらくすると自分も含む)「犬の朝食」のコードを書くのは、世界で最も簡単なことです。
スタインÅsmul2009

3
良いコードは「賢い」ものではありません。単純明快な方法で物事を行います。最高の部分
ナウファル

2
マーティンのクリーンコードは素晴らしい本です。最も基本的には、優れたプログラミングは優れた記述です。奇妙に聞こえるかもしれませんが、オーウェルの「政治と英語」を読むことをお勧めします。それは非常に短いですが、オーウェルの観察とマーティンのような人々の著作との間には多くの重複が見られます。マーティンのような人々が優れた作家であると同時に優れたプログラマーであることは、当然のことです。
0x1mason

@tvanfossonこの本はもう読みましたか?:-)
Natan Streppel

私はその本から多くを学びました、そしてそれは読むのに退屈ではありません。
レジー2014

94

最初に気付くのは、コードが一貫したコーディングスタイルに従っていることです。彼らは常に自分たちの構造ブロックを同じように書き、信心深くインデントし、適切な場所にコメントします。

2つ目に気づくのは、コードが最大で数十行に及ぶ小さなメソッド/関数にセグメント化されていることです。また、自己記述的なメソッド名を使用しており、一般にコードは非常に読みやすくなっています。

3つ目に気づくのは、コードを少しいじった後、ロジックが簡単で、変更が簡単で、メンテナンスが容易なことです。

その後、コードアーキテクチャの構築に使用した特定の選択肢を理解するには、ソフトウェア設計技術に関するある程度の知識と経験が必要になります。

書籍に関しては、コードが「ワールドクラス」と見なされるような書籍はあまり見かけません。本では主に単純な例を提示しようとしていますが、これは非常に単純な問題の解決に関連している可能性がありますが、より複雑な状況を反映していません。


1
非常に効果的に要約するための+1。追加できるもう1つのことは、ネストされたブランチが多すぎないようにすることです。たどることが難しくなりすぎた後は、おそらく2つのレベルで問題ありません。
Naveen

あなたが正しい。私はそれを追加することを考えましたが、具体的すぎるかもしれないと思いました
Eran Galperin

本当に良い要約。数行のコードについては、初心者向けの情報として、クリーンなコードの結果であり、クリーンなコードを取得する方法ではないと言うのが良いと思います-小さな関数を書くように強制するのではなく、あなたがやりますとにかく、たとえば、デザインがKISSの原則に従っている場合。
Klaim、2008

目標としても結果としても、「小さな機能」をあまり重視しません。小さな関数が多すぎると、不透明なコードのページと同じくらい追跡が難しくなります。
staticsan 2008

1
時には避けられないこともありますが、一般的に長いメソッドを見ると、「このメソッドは多くのことをしようとしているのですか?ロジックのブロックを意味のある名前のメソッドに置き換えるのはどうですか?」私はこのような方法で構成されるロジックを以下は、一度にすべてのロジックを消化しようとするよりもはるかに簡単であると考えている
エランGalperin

71

ファウラーを引用して、読みやすさをまとめます:

どんな愚か者も、コンピューターが理解できるコードを書くことができます。
優れたプログラマーは、人間が理解できるコードを作成します。

十分に言った。


おっと+1、短くて甘いため
devsaw 2013年

5
まあ、Perlで書かれたすべてのコードがあります。
ウィルIアム

ラボの先生が書いたものは何でも理解できません:p
Prakash Bala

32

個人的には、ティムピーターズの「The Zen of Python」を引用する必要があります。Pythonプログラマーにコードの外観を伝えますが、基本的にすべてのコードに当てはまることがわかりました。

醜いよりも美しい方がいいです。
明示的は暗黙的よりも優れています。
シンプルは複雑よりも優れています。
複雑は複雑よりも優れています。
ネストよりもフラットの方が適しています。
疎は密よりも優れています。
読みやすさが重要です。
特別なケースは、ルールを破るほど特別なものではありません。
実用性は純粋さを上回りますが。
エラーは黙って渡ってはなりません。
明示的に沈黙させない限り。
あいまいな状況に直面して、推測する誘惑を拒否してください。
それを行うには、明白な方法が1つ(できれば1つだけ)ある必要があります。
あなたがオランダ人でない限り、その方法は最初は明白ではないかもしれませんが。
今は決してないよりはましです。
多くの場合、今。
実装の説明が難しい場合は、悪い考えです。
実装が説明しやすい場合は、良いアイデアかもしれません。
名前空間は非常に魅力的なアイデアの1つです。もっと多くのことをしましょう。


2
「それを行うための明白な方法は1つ、できれば1つだけである必要があります。」の問題のみ 明白な方法は、問題についてのあなたの考え方の多くに依存します。それは必須であるか機能的であるかです。
グロム

「フラットはネストよりも優れています」は非常に疑わしいです。
–ÍhorMé2017

16

コードは詩です。

ロジックのこの時点から開始すると、コードの望ましい品質の多くを引き出すことができます。最も重要なことは、コードが書かれているよりもはるかに多く読み取られていることを確認し、それゆえ読者のためにコードを書くことです。リーダーの書き換え、名前変更、編集、およびリファクタリング。

結果のフォロー:

コードの作成日からn番目の時点で読者があなたになります。読者のためにコードを書くことの見返りは、nの単調増加関数です。コードを初めて見る読者は、n ==無限大で示されます。

言い換えれば、コードを書いてから再訪するまでの時間の差が大きいほど、読者のために書こうとする努力に感謝するでしょう。また、あなたがコードを渡す人は誰でも、リーダーを使って書かれたコードを第一に考えることで大きな利益を得るでしょう。

2番目の結果:

読者を考慮せずに書かれたコードは、理解または使用が不必要に困難になる可能性があります。リーダーへの配慮が特定のしきい値を下回ると、コードを書き換えることによって得られる値よりも、コードから得られる値が少なくなります。これが発生すると、前のコードは破棄され、悲劇的なことに、書き換え中に多くの作業が繰り返されます。

3番目の結果:

当然のことながら、2つは不十分に文書化されたコードとその後の強制的な書き換えという悪循環で何度も繰り返されることが知られています。


コードを除いて、それが何を意味するかは正確に明らかである必要があります。ただし+1
Rik

リチャード・ガブリエルがプログラマーに彼の執筆詩について話すのを見たことがあります。接続を確立するのにしばらくかかりました。
するThorbjörnRavnアンデルセン

15

私は28年間プログラミングをしてきましたが、これは答えるのが難しい質問だと思います。私にとって良いコードは完全なパッケージです。コードは、意味のある変数名とメソッド名で、きれいに書かれています。それは、コードの意図をコメントするコメントを配置し、すでに読んだコードを逆流させるだけではありません。コードは、リソースを無駄にすることなく、想定されていることを効率的に実行します。また、保守性を考慮して作成する必要があります。

肝心なのは、人によって意味が異なるということです。他の誰かが嫌いかもしれない良いコードとして私がラベル付けするかもしれないもの。良いコードには、上で確認したいくつかの共通の特徴があります。

あなたができる最善のことは、コードに身をさらすことです。他の人のコードを見てください。オープンソースプロジェクトはそのための良い情報源です。あなたは良いコードと悪いコードを見つけるでしょう。よく見るほど、良いコードと悪いコードであると判断したものをよりよく認識できます。

最終的にあなたはあなた自身の裁判官になります。採用したいスタイルやテクニックを見つけると、時間の経過とともに独自のスタイルが生まれ、それは時間とともに変化します。ワンドを振って、何が良いのか、何が悪いのかを言うことができる人はいません。


11

本コードを読んでください。これは、コードを構造化する方法に関する多くのアイデアと、その理由を説明しています。それを読むことは、悪いことから良いことを見分けるために必要な経験を得るのにあなたの時間を短絡させるはずです。

http://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1229267173&sr=8-1


8

私自身、これから10年近くプログラミングをしていて、他の人と一緒に仕事をしてきたので、優れたプログラマコードと平均的なプログラマコードに違いはないとバイアスなしで言うことができます

有能なレベルのすべてのプログラマー:

  • 正しくコメントする
  • 効率的な構造
  • きれいに文書化する

私の同僚の言う耳に一度「私はいつも心に非常に論理的かつ合理的となってきたの。私は、私が開発楽しむなぜそれがだと思います

私の意見では、それは平均的なプログラマの心です。ルールとロジックの観点から世界を見て、プログラムを設計および作成するときに最終的にそれらのルールに従います。

エキスパートプログラマーは、ルールだけでなく、そのコンテキストも理解しています。これは最終的に、彼らが新しいアイデアや実装を考案することにつながります。これはエキスパートプログラマーの証です。プログラミングは最終的には芸術の形です。


クラフトほどアートではありません。
–ThorbjørnRavn Andersen 2010

正直に言うと、この定義が一番好きです。私は破られるためのものの場合には、超ハードと高速のルールを信じていない、これらのルールが作られた理由の大きな絵を見ている多くの開発者に知っている
ランス・ブライアント

6

簡潔に言えば、優れたプログラマのコードを読んで理解することができます。

私の意見では、優れたプログラマーのコードは言語に依存しません。適切に作成されたコードは、使用するプログラミング言語に関係なく、最小限の思考で短時間で読み取って理解できます。コードがJava、Python、C ++、Haskellのいずれであっても、適切に記述されたコードは、その特定の言語でプログラミングさえしていなくても理解できます。

読みやすいコードのいくつかの特徴は、名前の付いたメソッド、「トリック」の欠如、複雑な「最適化」、クラスのいくつかは、よく設計されたものです。他の人が述べたように、コーディングスタイルは一貫しており、簡潔で簡単です

たとえば、先日、Stack Overflowに関する質問の1つに答えるためにTinyMCEのコードを調べていました。それは私がほとんど使用していない言語であるJavaScriptで書かれています。それでも、含まれているコーディングスタイルとコメント、およびコード自体の構造化により、それはかなり理解でき、数分でコードをナビゲートすることができました。

優れたプログラマーのコードを読むことに関して私にとって非常に目を開いた本の1つがBeautiful Codeです。さまざまなプログラミング言語でさまざまなプログラミングプロジェクトの作者によって書かれた多くの記事があります。しかし、それを読んだとき、私はその特定の言語でプログラムしたことさえないという事実にもかかわらず、著者が彼のコードで何を書いているのか理解できました。

おそらく私たちが心に留めておくべきことは、プログラミングはコンピュータだけでなく人々へのコミュニケーションにも関連しているので、優れたプログラマーのコードは、伝えたいアイデアについて読者に伝えることができる、よく書かれた本のようなものです。


私の意見では、優れたプログラマのコードは言語にとらわれない+1です
nawfal

6
  • 読みやすい
  • 書きやすい
  • メンテナンスが簡単

他はすべてフィリグリーです


プログラマーAの「読みやすさ」とプログラマーBの「維持しやすさ」は、相反する2つの目標であり、どちらも達成することはできません。コーディングは、ビジネスの優先順位に応じて、これら2つの間の妥協を伴います。だれにとっても読みやすいコードを書くと、それを書いた人にとって保守しにくくなります。
alpav、2013年

@alpav:あなたが言うことは、標準以下のプログラマーには絶対に当てはまり、1年以内にメモリがない独自のコードを維持する必要があるため、正確に読みやすく、簡単に読みたいと思っている中級および上級のプログラマーには当てはまりません維持する。彼らは達成することができ、私はそれを30年間繰り返してきました。あなたは完全に間違っています。
2010年

1
alpav:2つがどのように競合しているかの例を挙げていただけますか?それらは私と完全に一致しているように見えます。それを読むことができない場合、どうやって保守することができますか?
Ken

5

良いコードは簡単に理解できるはずです。
それはよくコメントされるべきです。
難しい部分はもっとよくコメントされるべきです。


「良いコードは簡単に理解できるはずだ」と言えるかわかりません-一部のコードは非常に複雑な機能を実行しますが、それらの機能自体は簡単に理解できないため、理解できないコードが悪いコードであるとすぐにはわかりません-素晴らしいかもしれません複雑な概念を通して働くコード。

複雑で良いコードは賢いコードと見なされますか?
kevindaub 2008

4

良いコードは読みやすいです。あなたは、優れたプロのプログラマーによって書かれたコードの最初のリードスルーでコードが何をしているかを理解するのに問題はありません。


残念ながら、「読み取り可能」は主観的なものです。
Gewthen 2013年

3

代わりに、他のすべての人からのすばらしい提案を繰り返します。代わりに、Steve McConnell 著のコードコンプリートを読むことをお勧めします

基本的に、機能とスタイルの両方のプログラミングのベストプラクティスが満載の本です。


2

[純粋に主観的な答え]
私にとって、良いコードは絵画のような芸術の形です。さらに進んで、それは実際にはコードの文字、色、「フォーム」または「構造」を含む図面であり、これらはすべて非常に読みやすく/パフォーマンスが高いと言えます。読みやすさ、構造(つまり、列、インデント、同じ長さの変数名でさえ!)、色(クラス名、変数名、コメントなど)の組み合わせはすべて、私が「美しい」画像として見ることができるものを作ります自分のコードを非常に誇りに思うか、非常に恨む。

(前に述べたように、非常に主観的な答えです。私の英語では申し訳ありません。)


2

私はボブ・マーティンの「クリーンコード」の勧告に次ぐ。

「美しいコード」は数年前に高く評価されました。

マコネルの本はどれも読む価値があります。

おそらく「実用的なプログラマー」も役に立ちます。


2

私の2セントを追加したかっただけです...コード内のコメント(およびコード自体、一般的には)は、コードが何をするか、今はそれをどのように行うかを言う必要があります。他のコードを呼び出すコード(最も単純な例はメソッドを呼び出すコード)である「クライアント」コードの概念を理解したら、「クライアント」の観点からコードを理解しやすくすることについて常に最も心配する必要があります。コードが大きくなるにつれ、これが...ええと、良いことがわかります。

優れたコードに関する他の多くのことは、あなたが作る精神的な飛躍に関するものです(確かに、あなたが注意を払うなら)...それらの99%は、あなたにたくさんの仕事をさせるために、もう少し仕事をすることに関係しています。後で作業し、再利用性。また、正しいことをすることで、正規表現を使用するのではなく、常に逆の方法で実行したいのですが、それに入るたびに、誰もが私使用するすべての単一言語でそれらを使用する理由がわかります(それらは厄介ですが、仕事とおそらくより良いことはできませんでした)。

本を見るかどうかについて、私の経験では絶対にないと思います。APIとフレームワーク、コードの規則、他の人のコードを見て、自分の直感を使って、なぜそれがどのようにあるのか、何が意味するのかを理解してください。本のコードでほとんど決して行われないことは、計画外の計画です。これがエラーチェックのすべてです。これは、誰かがあなたにメールを送って、「アプリが壊れたよ」ではなく、「エラー321が発生しました」と言ったときにのみ報われます。

良いコードは、プログラマーの視点とユーザーの視点の両方から、未来を念頭に置いて書かれています。


1

これはファウラーの本「リファクタリング」でかなりよく答えられています、それは彼が本を通して説明するすべての「匂い」の欠如です。


1

「Professional ASP.NET」は見たことがありませんが、「OK」よりも良ければ驚きです。本当に良いコードが書かれた本についてはこの質問をご覧ください。(もちろん、それはさまざまですが、受け入れられる答えは打ち負かすのが難しいです。)


1

これはよくある質問のようです。最近、美しいコードに関するACMの記事があります。読みやすさ、理解しやすさを重視しているようです。「ドメインエキスパートによる読み取り/理解が容易」でこれを修飾します。本当に優れたプログラマーは、与えられた問題に対して(素朴で理解しやすいO(n ^ 2)アルゴリズムではなく)最高のアルゴリズムを使用する傾向があります。プログラマーがアルゴリズムを参照します。

優れたプログラマーを含めて誰も完璧ではありませんが、彼らのコードは以下のことを目指しています

  1. 実証済みのアルゴリズムによる正確性と効率性(素朴でアドホックなハックの代わり)
  2. 明快さ(自明でないアルゴリズムに関する意図のコメント)
  3. 基本(コーディング規約、バージョン管理、ドキュメント、単体テストなど)を網羅する完全性
  4. 簡潔さ(DRY)
  5. 堅牢性(任意の入力および変更要求の中断に対する復元力)


1

Jeff Atwoodが、プログラマーがタイピストを最初に参照する方法についての素晴らしい記事を書きました:http : //www.codinghorror.com/blog/archives/001188.html

タイピストになるときは、常にエレガントである必要があります。構造と適切な「文法」を持つことは非常に重要です。これを「プログラミング」タイプに変換すると、同じ結果が得られます。

構造

コメント

地域

私はソフトウェアエンジニアです。つまり、教育中に多くの異なる言語に出会ったことがありますが、私のプログラミングはfekberg.wordpress.comで書いているように、いつも同じように「感じる」ので、タイピングには「特別な」方法があります。

Java、C#、アセンブラ、C ++、Cなどのさまざまな言語でさまざまなアプリケーションをプログラミングするようになったので、好きなように書くことが「標準」になりました。

私はすべてを「ボックス」またはリージョンと見なし、各リージョンにはコメントについて説明しています。リージョンは「クラスPerson」である可能性があり、このリージョン内にはプロパティのメソッドがいくつかあります。これは「アクセスメソッド」などを呼び出すことができ、各プロパティとリージョンには独自の説明コメントがあります。

これは非常に重要であり、私はいつも「APIの一部である」として、私はやるというのが私のコードを参照して、APIの構造を作成し、優雅である場合は非常に重要。

これについて考える。Communication issues when adapting outsourcing不正なコードがどのように競合する可能性があるかについて大まかに説明している私の論文もお読みください。好きなようにEnterpretを入力してください。http://fekberg.wordpress.com/2008/12/14/communication-issues-when-adapting-outsourcing/


0

優れたコードは、理解しやすく、保守しやすく、追加も簡単です。理想的には、他の指標を犠牲にすることなく、可能な限り効率的です。


0

私にとって優れたコードは、簡単に理解でき、洗練されたものです。「うーん、もちろん、どうしてそんなふうに考えなかったの?」本当に良いコードは理解するのが難しくありません、それは単純に直接の方法で(またはそれがさらに簡単であれば再帰的な方法で)手元の問題を単に解決します。


0

良いコードは、メソッドが名前から何をするかを知っているところです。悪いコードは、名前を理解するために、コードが何をするかを考えなければならない場所です。

良いコードとは、それを読むと、それが読むのにかかる時間よりも短い時間でそれが何をしているかを理解できる場所です。悪いコードは、あなたがそれを実行するwtfを解決しようとしている年齢のためにそれを見ることになってしまうところです。

優れたコードには、ささいなコメントを不要にするような名前が付けられています。

良いコードは短くなる傾向があります。

優れたコードは、その目的とは実際には無関係なものに依存しないため、他の場所で実行するために再利用できます。

優れたコードは通常、単純なジョブを実行するための一連の単純なツールです(より洗練されたジョブを実行するために、適切に編成された方法でまとめます)。悪いコードは、壊れやすく使いにくい巨大な多目的ツールになる傾向があります。


0

コードは、プログラマーのスキルと考え方を反映しています。優れたプログラマーは常に未来に目を向けています-要件や状況が現在のものとまったく異なる場合にコードがどのように機能するか。それはどれだけスケーラブルなのでしょうか?このコードを管理しているのが私ではない場合、どれほど便利ですか?コードがどの程度再利用可能になるか。同様のことをしている他の誰かがコードを再利用して、再度コードを書くことができないようにします。他の誰かが私が書いたコードを理解しようとするとどうなるでしょうか。

プログラマーがその考え方を持っている場合、他のすべてのものは適切に配置されます。

注:コードベースは、時間の経過とともに多くのプログラマーが取り組んでいますが、通常、プログラマーにはコードベースの特定の指定はありません。したがって、優れたコードは、会社のすべての基準と従業員の質を反映しています。


0

(私は以下の「彼」を使用します。なぜなら、これは私が熱望している人であり、時には成功するからです)。

優れたプログラマーの哲学の核心は、彼が常に「私はこの仕事についてすべて忘れてしまった将来、自分のためにコーディングしているのです。なぜ私がそれに取り組んでいたのか、何がリスクで、これがコードは機能するはずでした。」

そのため、彼のコードは次のようにする必要があります。

  1. 動作します(コードが間違った答えに到達する速度は問題ではありません。現実の世界では部分的な信用はありません)。
  2. このコードが機能することを彼が知っている方法を説明してください。これは、ドキュメント(javadocが私の選択したツールです)、例外処理、およびテストコードの組み合わせです。非常に現実的な意味では、「このコードが機能し、これがどのように使用されるべきかを説明する以外に理由がない限り、テストコードは機能コードよりも価値があると私は信じています。支払われた。」
  3. 維持されます。デッドコードは悪夢です。レガシーコードのメンテナンスは面倒ですが、それを行う必要があります(そして、それはあなたの机を離れる瞬間の「レガシー」であることに注意してください)。

一方、私は良いプログラマーがこれらのことをしてはいけないと信じています:

  1. フォーマットにこだわる。IDE、エディター、プリティプリンターがたくさんあり、コードを適切な標準または個人の好みに正確にフォーマットできます。私はNetbeansを使用し、フォーマットオプションを1回設定し、時々alt-shift-Fを押します。コードをどのように表示するかを決定し、環境をセットアップして、ツールに大げさな働きをさせます。
  2. 人間のコミュニケーションを犠牲にして命名規則に執着する。命名規則により、クラスの命名に「Zookeeper」ではなく「IElephantProviderSupportAbstractManagerSupport」が使用される場合は、次の人が難しいようにする前に、標準を変更してください。
  3. 彼は実際の人間とチームとして働くことを忘れてください。
  4. コーディングエラーの主な原因は、現在彼のキーボードにあることを忘れてください。間違いや間違いがある場合は、まず自分の目を向けるべきです。
  5. 周りに何が起こるかを忘れてください。今後の読者が自分のコードにアクセスできるようにするために彼が現在行っているすべての作業は、ほぼ確実に彼に直接利益をもたらします(誰が彼のコードを最初に見てほしいと頼んだのでしょうか?彼はそうです)。

@ケン、ホホ、ウィットは私を盲目にしました、サー。今ウィットゴーグルを着用:8-P
ボブ・クロス


0
  • 最高のコードには、それを見るとすぐに気付く特定の優雅さがあります。
  • 細部にまで注意を払い、細工されています。それは明らかにスキルのある人が制作したものであり、それについての芸術があります。ラフで準備ができているのではなく、造形され洗練されているように見えます。
  • 一貫性があり、簡単に読み取ることができます。
  • それは小さな、非常にまとまりのある機能に分割され、それぞれが1つのことを行い、それをうまく行います。
  • これは最小限に結合されています。つまり、依存関係はほとんどなく、厳密に制御されています。
  • 関数とクラスは、実装ではなく抽象化に依存しています。

0

皮肉なことに、生成されたコードは誰でも簡単に保守できるため、プログラマー優れていればいるほど、彼/彼女は不可欠でなくなります(Eran Galperinによる一般的な同意で述べられているように)。

私の経験では、その逆も当てはまります。さらに悪いプログラマはより困難に維持するので、彼/彼女のコードがより不可欠な他の魂が生成謎を理解することはできないため、彼/彼女はになります。


0

私は良い例があります:

GWT(Google Web Takeit)のソースコードを読むと、すべての愚か者がそれを理解していることがわかります(英語の本の中には、このコードよりも読みにくいものもあります)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.