関連する学習の推奨事項: javascript
私はプログラミングが好きで、それが私の仕事でもあり、とても幸せです。ほとんどの時間をソフトウェアの開発に費やすことができます。多くのプログラマーと同様に、私も自分が書いたコードがいかに優れているか、そしてどうすればもっと良く書けるかということに魅了され、また困惑しました。
私は長年にわたり、ソフトウェア開発に関する多くの記事や本を読んできました。プログラミングを上達させ、忍者のように専門的な訓練を受けたプログラミング マスターになる方法を説明するインクの本 (書籍またはオンライン) がたくさんあります。これらの提案のほとんどには共通点があり、その 1 つはソース コードを読むことです。ただし、他の提案と比較すると、ソース コードを読むことは通常、単純な一文に要約されます。優れたオープン ソース ソフトウェアまたは好きなソフトウェアを見つけて、それを開いて (または印刷して) 読んでください。一般的に、これは確かに良い提案ですが、理論上は浅薄で、実際に実行すると多くの問題があります。この記事では、ソースコードを読むための実践的なアドバイスをいくつか紹介しますが、その前に、まず問題点を列挙してみます。
ソースコードの読み方というと、椅子に座って小説を読むようなプログラミングの達人のような印象が一般的です。 . コードを開始します。まあ、英語の文章に似た謎の記号の数々を眺めながらコーヒーを飲みながら楽しむことができ、クラス全体の階層構造やシステムを頭の中で構築できる優秀なプログラマーもきっといるでしょう。この記事の対象読者は、ソース コードの山を見つめるのは退屈で無意味な演習を見ているようなものだと感じる私のような人々です。もちろん、1 つのクラスまたは 1 つの関数を少しずつ見ていけば、完全なプロジェクトから学ぶことができると主張する人もいますが、私の意見では、最も単純な問題を除いて、ほとんどのソフトウェアは内部的に相互に依存しています。多くの場合、システムの残りの部分を理解しなければ、特定の関数やクラスの背後にある設計思想や原則を理解することは不可能です。
次の質問は、読み取ることができるソース コードをどこで入手するかです (もちろん、その前に、どのソース コードが読む価値があるかを識別できなければなりません)。優れたソフトウェアが数多くあり、オープンソース ソフトウェアは無料で利用できますが、クローズドソース ソフトウェアはライセンスが必要です。オープンソース リポジトリには、Sourceforge や GitHub などがあります。ソフトウェア開発会社で働いている場合は、ソース コード リポジトリ内の独自コードにアクセスできます。 3 番目の一般的なアプローチは、ソフトウェア開発書籍に付属するプログラム、または教育リソースとして提供されるプログラムです (Minix がその代表的な例です)。実際、選択肢が多すぎると選択が難しくなるため、広大なコードの世界から読むのに適した選択肢を見つけるのは難しいですが重要な作業です。
もう 1 つの問題は、プログラムで使用されているプログラミング言語です。他人のコードを読むだけでも十分に難しいです。また、奇妙な構文が混在する新しい言語に慣れる必要がある場合、その負担も大きくなります。それは私にとって大きな挫折をもたらす災害のように思えました。したがって、使い慣れた言語で書かれたコードを見つける必要があります。ただし、見ているコードが書籍からのものであるか、教育リソースとして提供されている場合は、コンテキストを説明できる講師がいるから、新しい言語を知っているかどうかは問題ではありません。山には虎がいるとわかっていても、本や家庭教師の指導なしになじみのないプログラミング言語を読みたいのであれば、少なくともそれを学習して、自分の文章を書けるレベルに達する必要があると思います。独自のプログラム (Hello World はカウントされません (笑))。
コンテキストに関する前の質問は、次の質問につながります。ソフトウェア自体に慣れていないと、コードが何をしているのかを理解するのははるかに困難です。たとえば、Linux を毎日使用するわけではなく、Linux のブート シーケンスを知っている場合、Linux コードを見た後でランレベルが何であるかを理解するのは困難です。特定のソフトウェアの使用から得られる経験と知識は、一般的に使用される用語、ソフトウェアの機能と特徴、さらには遭遇するさまざまなエラーなど、ソース コードをより正確に読むのに役立ちます。
私にとって、「ソースコードを読む」ということは、自分が取り組んでいる活動を正確に説明していないことに気づきました。「ソースを理解する」という表現の方が適切です。コード」で表現します。ノートパソコンの画面の前に座って (または紙に印刷して)、コードでいっぱいの画面をただ読むのは、私にとって非常に困難です。コード以外にも他のことが必要です。たとえば、ドキュメントに目を通したり、ソフトウェアをいじったり、コードをステップ実行したり、それを実行するためのテスト コードを書いたりするのが好きです。これには非常に多くの時間とエネルギーを投資するので、「読みたい」(理解したい)ソフトウェアを非常に厳選して見つける必要があります。
私の最初のレベルのフィルタリングはプログラミング言語によるものです。私の場合、C#、VB.NET、Python、JavaScript で書かれたプログラムのコードしか読みません (C、Ruby、F# にも精通していますが、実際には読みません)他の人のコードを理解できるレベルがあるとは思いません)。次に、コードの意図、コードで何ができないか、その制限が何であるかを理解しているので、すでに使用していると感じることができる、これまでに使用したソフトウェアを探します (コードに十分慣れていれば) )。毎日使用しているオープン ソース ソフトウェアが有力な候補です (たとえば、C# で書かれたオープン ソース ツールの Cruise Control.NET、NANT、NUnit を使用しています)
私はたまたまソフトウェア製品会社で働いています。 (マイクロソフト社)そのため、私が読んだソース コードの選択の 1 つは、ソース コード リポジトリにある当社のコードでした。ソフトウェア会社でも働いている場合は、他のプロジェクトや、自分が取り組んでいたプロジェクトの以前のバージョンに目を向けることもできます。こうすることで、コードをより深く理解できるだけでなく、前後に何を試したかについてもよく理解できるようになります。ただし、注意すべき点がいくつかあります。
十分に文書化されたプロジェクトを探してください (これは、オープンソースと独自のコードに当てはまります)。私が言いたいのは、そのようなドキュメントでは全体的な設計を強調し、コードの背後にある理論的根拠を説明する必要があるということです。それが単に自動的に生成された Java Doc タイプのドキュメントである場合、それは私が説明しているドキュメントとはみなされないでしょう :-)。これを見つける 1 つの方法は、教育用に作成されたソフトウェア (Minix など) を使用することです。その目的はソフトウェアを通じて教えることであるため、通常は非常に明確に文書化されており、コードの背後にある設計原則を説明する多くの資料が含まれています。
ソース コードを読みたいソフトウェアを特定し、そのソース コードとドキュメントをダウンロードしたので、段階的に読んで理解してみましょう。
私の意見では、「ソース コードを読む」ということは、単に読むだけではなく、人々がコードを理解するのを助けるために協力する一連のユニークなアクティビティです。これは単に「コードを読む」よりも難しく思えるかもしれませんが、努力する価値はあります。
さあ、もっと簡単に楽しく「ソースコードを読む」ことができるでしょうか?
プログラミング学習について詳しく知りたい方は、php training のコラムに注目してください!
以上が初心者のためのソースコードの読み方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。