ホームページ  >  記事  >  ウェブフロントエンド  >  初心者のためのソースコードの読み方

初心者のためのソースコードの読み方

coldplay.xixi
coldplay.xixi転載
2020-09-17 17:38:462355ブラウズ

初心者のためのソースコードの読み方

関連する学習の推奨事項: 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 つは、ソース コード リポジトリにある当社のコードでした。ソフトウェア会社でも働いている場合は、他のプロジェクトや、自分が取り組んでいたプロジェクトの以前のバージョンに目を向けることもできます。こうすることで、コードをより深く理解できるだけでなく、前後に何を試したかについてもよく理解できるようになります。ただし、注意すべき点がいくつかあります。

  • まず、他のプロジェクトにアクセスできない場合は、許可を求める必要があります。これは、一部の企業は「知的財産」を非常に重要視しているためです。
  • 第 2 に、これらのソフトウェアの品質はあなたが思っているほど高くない可能性があります。これは、通常、プロプライエタリ コードはオープン ソース コードほど厳密なコード ウォークスルーを受けていないためです。定期的にコードレビューを行わないと、コードの品質が低下する可能性があることに注意することが重要です。
  • 第三に (この点は私の友人から提供されたフィードバックに触発されています)、あなたの会社がビジネス ソフトウェア (人事、財務、ERP など) を開発している場合、最初に理解する必要があるビジネス関係が数多くあります。また、ほとんどのコードはビジネス機能要素の影響を受けるため、一般にアプリケーションや API ほどモジュール化されていません。

十分に文書化されたプロジェクトを探してください (これは、オープンソースと独自のコードに当てはまります)。私が言いたいのは、そのようなドキュメントでは全体的な設計を強調し、コードの背後にある理論的根拠を説明する必要があるということです。それが単に自動的に生成された Java Doc タイプのドキュメントである場合、それは私が説明しているドキュメントとはみなされないでしょう :-)。これを見つける 1 つの方法は、教育用に作成されたソフトウェア (Minix など) を使用することです。その目的はソフトウェアを通じて教えることであるため、通常は非常に明確に文書化されており、コードの背後にある設計原則を説明する多くの資料が含まれています。

概要

ソース コードを読みたいソフトウェアを特定し、そのソース コードとドキュメントをダウンロードしたので、段階的に読んで理解してみましょう。

  • 設計ドキュメントに目を通し、コードがどのように構成されているかを理解してください。優れたソフトウェア プロジェクトは、コードの構成を決定する特定のアーキテクチャ パターンに従っています。これをマスターすると、コードを理解するのがはるかに簡単になります。クラス図も描けると、全体のレイアウトがよりよく理解できるようになります。
  • 次に行うことは、コンパイルして実行することです。プロジェクトとそのドキュメントによっては、これが簡単な場合もあれば、難しい場合もあります。
  • さあ、お気に入りの IDE を開いて探索を始めましょう。探索の良い開始点は、使い慣れた機能のコードをステップ実行してみることです。こうすることで、さまざまなレイヤーとサブシステムを横断し、それらがどのように関連しているかを理解できます。たとえば、NUnit を調査するときは、まずテスト ケースを作成し、次に関連するクラスを調べました。
  • コードで使用されている設計パターンを特定してください。デザイン パターンが何なのかまだわからない場合は、この記事をすぐに読むのをやめて、デザイン パターンに関する古典的な本を読んでください。デザイン パターンに慣れると、優れたコードに含まれるデザインを特定して理解するための優れた方法になります。慣れると、コードを読むときにそれを念頭に置きやすくなります。また、コード作成者が元の設計パターンに対して行った微妙な調整や魔法の変更をより簡単に識別するのにも役立ちます。
  • コードを完全に理解するために、コードのテスト ケースを作成してみてください。これは、コードのさまざまな部分間の依存関係を理解するのに非常に便利な方法です。テスト ケースを作成する前に、まずすべての依存関係を満たす必要があります。次に、コードの可能なエントリ ポイントと戻り値について学びます。これにより、コードの理解が深まり、次のレベルに進むのに役立ちます。
  • 最後に、コードをリファクタリングしてみます。この時点で、単にコードを理解するだけでなく、コードを変更できるほど十分に理解できるようになりました。リファクタリングが複雑になるにつれて、理解も深まります。この時点で、必要に応じて独自のコードをプロジェクトに提供できます。

私の意見では、「ソース コードを読む」ということは、単に読むだけではなく、人々がコードを理解するのを助けるために協力する一連のユニークなアクティビティです。これは単に「コードを読む」よりも難しく思えるかもしれませんが、努力する価値はあります。

さあ、もっと簡単に楽しく「ソースコードを読む」ことができるでしょうか?

プログラミング学習について詳しく知りたい方は、php training のコラムに注目してください!

以上が初心者のためのソースコードの読み方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。