私はC++を1年間プログラミングしています。私は言語機能を試し、それを使って優れたプログラムを書いたので、OpenGLに移ることにしました。最初は混乱しているように見えました。チュートリアルを続けていくうちに簡単に見えましたが、クラス、メソッド、引数などの名前を思い出せません。
実際、これはOpenGLだけに当てはまるわけではありません。私は他のフレームワークにも行き詰まることがよくあります。私は頭の中にプログラムを持っていて、それがどのように機能するかは知っていますが、使用するメソッドやクラスの名前を思い出せません。
ここでの私の質問は、一言で言えば、それらの名前を覚えるためにどのようなテクニックを使用できるかということです。何度も書くことはあなたがそれを理解するのを助けますか?
あなたはそれらすべての名前を覚えているわけではありません。 フレームワークまたはAPIがうまく機能していれば、それらの名前は直感的に理解できます。
たとえば、ファイルを保存したいときに、それを実行するメソッドがどこかにあることがわかっている場合は、File.Save(path, contents)
のようなものを期待します。 APIがそれをIOOperations.OverwriteContents(path, new)
として提供する場合、必要なメソッドを見つけるのに苦労します。これは、型にはまらない、非常に不明確な命名方法のために、このAPIがうまくいかないことを意味します。
いくつかの例:
最近、 [〜#〜] npoi [〜#〜] を使おうとしました。ライブラリをダウンロードして、オブジェクトブラウザで開きました。ライブラリには次のような名前がたくさんあります。
_NPOI.POIFS.Dev.POIFSLister.DisplayDirectory(
NPOI.POIFS.FileSystem.DirectoryNode dir,
string indent)
_
詳細なドキュメントがないと、POIFS
とは何か、Dev
とは何か、Lister
のPOIFS
がリストしているもの、DisplayDirectory
とは何かがわかりません。が表示され、_NPOI.POIFS.FileSystem.DirectoryNode
_を作成するにはどうすればよいですか。
ドキュメントを読む時間が数時間ない限り、このライブラリを使用する方法はありません。
XMLをシリアル化する必要があり、.NET Frameworkにはそれを実行するメソッドがあると確信しているが、その名前がわからないとします。
すべての_System.
_アセンブリの中で、_System.Xml
_は有望に聞こえます。中を見てみましょう。うーん。 _System.Xml.Serialization
_多分?中にはたくさんのものがあります。内部に「serializer」または「serialize」を含む名前を探しましょう。 XmlSerializer
であり、内部にはSerialize(Stream stream, object o)
メソッドがあります。
これまでこのアセンブリについて何も知らなくても、数秒で必要なものを見つけることができました。
必要なクラスとメソッドを見つけるのに役立つように、次のものがあることを忘れないでください。
ドキュメンテーション。そのために存在します。
StackOverflow検索とGoogle。 APIが明確になっていない場合に役立ちます。メソッドを見つけるのに苦労している場合は、他の人が同じ問題を抱えている可能性があります。
インテリセンス(オートコンプリート)。
おそらく、使用するすべてのライブラリのすべてのクラス、メソッド、および属性を記憶することはできません。これは、情報が多すぎて頭に入れられないためです。
ライブラリの特定の部分を使用すればするほど、ライブラリに慣れ親しみやすくなり、最終的には、参照なしで最も使用されている関数/クラスを思い出すことができます。
ただし、ライブラリのあまり使用されていない部分については、すべてのクラス、関数、およびそれらの属性を含むライブラリ全体をメモリにコミットしようとしても意味がないため、参照資料を使用する必要があります。
つまり、要するに:
幸運を
混乱している場合は、APIの周りに独自のラッパーを作成して、一度だけ処理する必要があります。 APIを学ぶために積極的に出かけたことはありません。