プログラミングの品質を向上させる最も明白な方法は、プログラムをさらに書くことです。 誰もがそれを知っています。 しかし、あなたのプログラミングを改善するだろうと私が確信している別の方法は正反対です。 できる限り明確に述べます。
プログラムする能力を劇的に高めたい場合は、他のプログラマーによって書かれたコードを読む必要があります。
あなたはそれを信じることができます、あなたはそれを信じることができません。 あなたの権利。 しかし、あなたがチャンスを喜んで取るならば、私はあなたが費やした時間に対して報われると確信しています。
この記事では、読みたいものを選択する際にあなたを助け、そのような読み物に関する実践的なアドバイスをしたいと思います。 すでに他のプログラムを読んでいる場合は、ここで何かを見つけて、あなたの努力をもっと活用することができます。 他の開発者のコードを読んでいない場合は、単にそれを行う必要があります。
何を読む
これは重要な決定であり、アドバイスが難しい決定です。 あなたが実際に何をしているのかを考える必要があるので、私はあなたが読むべきだと思ういくつかのコードを単に指し示すのは嫌だ。 しかし、私はあなたがあなたの読書プログラムを選ぶのを助けるいくつかのガイドラインを与えます。
関連プログラムを読む
開始するのに最適な場所は、すでに使用しているプラグインまたはライブラリです。
•本当に好きなWordPressプラグイン。
•役に立つと思うRuby gem。
•戻り続けるjQueryプラグイン。
それらはすべて、研究の最初の候補者です。 あなたはすでに彼らの公開インターフェースを知っているので、彼らの内部の仕事を理解することへの障壁はより低いです。 さらに、このプログラムのユーザーとして、ドキュメントを追加したり、新しい機能を導入したり、このプロジェクトに何らかの貢献をしたりできます。
感銘を受けたプログラムを読む
280スライドプレゼンテーション作成サービスを初めて見たとき、私は「はい! クール!」 このサイトを管理するプログラムは、オープンソースのカプチーノプロジェクトであることがすぐにわかりました。 この知識は私の心に深く入り込み、 カプチーノで動作する別の印象的なアプリケーションになんとか偶然出会ったとき、私はこのプロジェクトから多くを学ぶことができることをすでに知っていました。 最近、あなたに強い印象を与えたものは何ですか? このプログラムはオープンソースですか? もしそうなら、それは読むのに最適な選択です。コードは、アプリケーション自体と同じくらいあなたを感動させるでしょう。
尊敬する人が書いたプログラムを読む
立派なプログラマー
すでにオープンソースプログラミングを行っている場合は、おそらくあなたの尊敬に値するプログラマーを既に考えているでしょう。 そのプログラムが単純に「white望の的になる」開発者をすぐに指名できました。
まだそのような開発者がいなければ、それを見つけるのは簡単です。 彼(a)は、おそらく前の2つのセクションのいずれかのプログラム(あなたに関連するプログラム、またはあなたに感銘を与えたプログラム)の著者です。
十分に深く理解できるプログラムを読む
リスクを冒す傾向がある場合は、Ruby on Rails、Drupal、jQueryなどの大規模プロジェクトに飛び込むことを検討してください。 しかし、もちろん、あなたがプログラムの経験豊富な読者でない限り、今のところそのようなプロジェクトを使用しないことをお勧めします。
大規模なプロジェクトには非常に多くの相互作用する部分があり、最終的には特定の何かを学ぶために一般的な概念を習得するために多くの時間と労力を費やします。 研究中の主題の複雑さは減衰し、大規模なプロジェクトは読書時に失望につながる可能性が高くなります。 読むために小さなプロジェクトを選択する利点は、プログラムのロジック全体を頭の中に保持できることです。 これにより、いくつかのレッスンを学習するために、詳細のみで作業することができます。
読み方
読み取るコードが選択されたので、それを読み取るための最良の方法は何ですか? 今日、私は多くのプログラムを読んでおり、あなたの効率を最大化するいくつかの方法を提供できます。
全体像を学ぶ
Twitter gemのディレクトリ構造
少なくともあなたが読んでいるコードが何をしているかをマクロレベルで知っていると思います。 そうでない場合は、プロジェクトのWebサイト、チュートリアル、ドキュメント、およびコードに加えて入手できるその他すべてのものを読むことをお勧めします。
適切な明確性が導入されたら、あなたの最初のステップはプロジェクト構造をレビューすることです。 この作業の量は、選択したソースコードデータベースのサイズに依存しますが、複数のファイルが必要な場合でも、もう少し時間がかかります。
まず、自分でファイル構造を修正します。 このステップは、TextMateなどのフォルダー階層のように見えるエディターを使用すると簡単に完了できます。 ここでは、例として、Twitter Ruby gemの素晴らしいビューを示しています。
このステップの目的は、ソースに慣れることです。 どのファイルが他のファイルを含む/呼び出す/ロードするか、コードの大部分が置かれている場所、使用されている名前空間(ある場合)などを理解します。 一般的な考えを持っているので、詳細に飛び込むことができます。
結果を文書化する
コードを読むことは、ある種の受動的な行動であってはなりません。 プログラムの進捗状況を理解し始めたら、進捗状況に応じてコメントを追加し、仮定と結論を文書化することをお勧めします。 初めて起動すると、コメントはおそらく次のようになります。
# , "initialize" # ? # , 17
プロセスを理解したら、自分用に残した小さな階層コメントを削除し、おそらくプロジェクトに返されるより意味のある信頼できるコメントを書くことができます。
テストを使用して、ルーク
(メモ翻訳者:著者は「スター・ウォーズ」の「あなたの力を使って、ルーク」を思い出した)
選択したプロジェクトに一連のテストがあることを期待しましょう。 そうでない場合は、このセクションを完全にスキップできます(またはそのようなセットを持つプロジェクトを見つけます)。
テストは、プログラムが何をすべきかを文書化するため、他の人のコードを読み始めるのに最適な場所です。 他のテストよりも有益なテストもありますが、どれほどうまく書かれていても、実装よりもテストでプログラマの意図を見つける方が簡単な場合がよくあります。 読むときは、テストスイート全体を実行しながら、成功する結果を得るようにしてください。 これにより、開発環境が正しく構成され、変更時に自信が持てるようになります。
コードを変更してコンパイルする
コードの読み取りは受動的であると誰が言うのですか? すべてを壊してから再び組み合わせて初めて、コードを本当に理解し始めます。 合格したテストを覚えていますか? それらを失敗させるか、何かを追加するか、実装を変更して、正常に動作するようにしてください。 「クール」な小さな「機能」をいくつか追加するか、プロジェクト全体の登録を設定して、プログラムのさまざまな段階で出力を印刷してください。 まだ読んでいますか? もちろんですが、このアプローチは探偵小説を読むことよりも冒険です。 そして、これはまさにあなたが必要とするものです!
すすぎと繰り返し
(翻訳者のメモ:厳密に指示に従ってシャンプーで身を洗うIT専門家についてのジョークから-延々と)
1つのコードベースの読み取りが終了したら、別のコードベースを取得して、プロセスを再度開始します。 読むコードが多ければ多いほど、この読みは良くなり、より短い時間でより多くのコードを取得できます。 効率が急速に向上していること、そしてそれが本当に非常に良い学習方法であることがわかると思います。
どこから始めるか
私にとって、コードを読むための最も重要なソースはGitHubです。 このサイトでは、新しいプロジェクトと本当に素晴らしいプログラマーを簡単に見つけることができます。 GitHubから始めて、いくつかのレッスンを学ぶことができると思われるプロジェクトを見つけるまで、サイトでコードを直接読むことをお勧めします。 それから彼をクローンして読んでください!
学習ツールとしてコード読み取りを使用していますか? 同僚にどのプロジェクトを勧めますか? 最近、良いプログラムを読んだことがありますか?