web-dev-qa-db-ja.com

フレームワークまたはAPIのメソッドまたはクラスの名前をどのように学ぶことができますか?

私はC++を1年間プログラミングしています。私は言語機能を試し、それを使って優れたプログラムを書いたので、OpenGLに移ることにしました。最初は混乱しているように見えました。チュートリアルを続けていくうちに簡単に見えましたが、クラス、メソッド、引数などの名前を思い出せません。

実際、これはOpenGLだけに当てはまるわけではありません。私は他のフレームワークにも行き詰まることがよくあります。私は頭の中にプログラムを持っていて、それがどのように機能するかは知っていますが、使用するメソッドやクラスの名前を思い出せません。

ここでの私の質問は、一言で言えば、それらの名前を覚えるためにどのようなテクニックを使用できるかということです。何度も書くことはあなたがそれを理解するのを助けますか?

2
Bugster

あなたはそれらすべての名前を覚えているわけではありません。 フレームワークまたはAPIがうまく機能していれば、それらの名前は直感的に理解できます。

たとえば、ファイルを保存したいときに、それを実行するメソッドがどこかにあることがわかっている場合は、File.Save(path, contents)のようなものを期待します。 APIがそれをIOOperations.OverwriteContents(path, new)として提供する場合、必要なメソッドを見つけるのに苦労します。これは、型にはまらない、非常に不明確な命名方法のために、このAPIがうまくいかないことを意味します。

いくつかの例:

  1. 最近、 [〜#〜] npoi [〜#〜] を使おうとしました。ライブラリをダウンロードして、オブジェクトブラウザで開きました。ライブラリには次のような名前がたくさんあります。

    _NPOI.POIFS.Dev.POIFSLister.DisplayDirectory(
        NPOI.POIFS.FileSystem.DirectoryNode dir,
        string indent)
    _

    詳細なドキュメントがないと、POIFSとは何か、Devとは何か、ListerPOIFSがリストしているもの、DisplayDirectoryとは何かがわかりません。が表示され、_NPOI.POIFS.FileSystem.DirectoryNode_を作成するにはどうすればよいですか。

    ドキュメントを読む時間が数時間ない限り、このライブラリを使用する方法はありません。

    The screenshot shows a bunch of unreadable names of assemblies and classes of NPOI library, a good example of worst practices in terms of API

  2. XMLをシリアル化する必要があり、.NET Frameworkにはそれを実行するメソッドがあると確信しているが、その名前がわからないとします。

    すべての_System._アセンブリの中で、_System.Xml_は有望に聞こえます。中を見てみましょう。うーん。 _System.Xml.Serialization_多分?中にはたくさんのものがあります。内部に「serializer」または「serialize」を含む名前を探しましょう。 XmlSerializerであり、内部にはSerialize(Stream stream, object o)メソッドがあります。

    これまでこのアセンブリについて何も知らなくても、数秒で必要なものを見つけることができました。

    The screenshot shows the .NET Framework system assemblies. All the names are very clear and explicit.

必要なクラスとメソッドを見つけるのに役立つように、次のものがあることを忘れないでください。

  • ドキュメンテーション。そのために存在します。

  • StackOverflow検索とGoogle。 APIが明確になっていない場合に役立ちます。メソッドを見つけるのに苦労している場合は、他の人が同じ問題を抱えている可能性があります。

  • インテリセンス(オートコンプリート)。

7

おそらく、使用するすべてのライブラリのすべてのクラス、メソッド、および属性を記憶することはできません。これは、情報が多すぎて頭に入れられないためです。

ライブラリの特定の部分を使用すればするほど、ライブラリに慣れ親しみやすくなり、最終的には、参照なしで最も使用されている関数/クラスを思い出すことができます。

ただし、ライブラリのあまり使用されていない部分については、すべてのクラス、関数、およびそれらの属性を含むライブラリ全体をメモリにコミットしようとしても意味がないため、参照資料を使用する必要があります。

つまり、要するに:

  • 特定のライブラリを使用してさらにプログラミングを行い、一般的に使用される部分を記憶します。
  • 時間を無駄にしないでください。ライブラリ全体の機能を関数ごとに学習してください。参照を使用するだけで、最終的には、使用していて最も必要な資料を記憶することになります。

幸運を

4

混乱している場合は、APIの周りに独自のラッパーを作成して、一度だけ処理する必要があります。 APIを学ぶために積極的に出かけたことはありません。

0
James