Come si possono apprendere i nomi di metodi o classi di un framework o di un'API?

2

Ho programmato C ++ per un anno. Ho esaminato le funzionalità del linguaggio e ho scritto buoni programmi con esso, quindi ho deciso di passare a OpenGL. All'inizio sembrava confusionario. Continuando a seguire i tutorial, mi è sembrato più semplice, ma non ricordo i nomi di classi, metodi, argomenti, ecc.

In realtà questo non vale solo per OpenGL; Spesso mi blocco anche con altri framework. Ho un programma nella mia testa, so come potrebbe funzionare, ma non riesco a ricordare i nomi dei metodi o delle classi da usare.

La mia domanda qui è, in poche parole, quali tecniche puoi usare per memorizzare quei nomi? Lo scrive più e più volte ti aiuta a coglierlo?

    
posta Bugster 26.08.2012 - 14:34
fonte

3 risposte

7

Non memorizzi tutti quei nomi. Se il framework o l'API è ben fatto, quei nomi saranno intuitivi.

Ad esempio, se voglio salvare un file e so che esiste un metodo che fa proprio questo, mi aspetto qualcosa come File.Save(path, contents) . Se l'API lo fornisce come IOOperations.OverwriteContents(path, new) , allora avrò difficoltà a trovare il metodo che mi serve, e probabilmente significa che questa API fa schifo, a causa di un modo non convenzionale, molto poco chiaro di nominare le cose.

Alcuni esempi:

  1. Recentemente ho provato a utilizzare NPOI . Ho scaricato la libreria e l'ho aperta in Object Browser. La libreria è piena di nomi come:

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

    Senza documentazione dettagliata, non ho idea di cosa sia POIFS , cos'è Dev , quale Lister di POIFS è elencato, cosa DisplayDirectory visualizza e come creo un NPOI.POIFS.FileSystem.DirectoryNode .

    Non c'è modo di usare questa libreria a meno che tu non abbia qualche ora per leggere la documentazione.

  2. Supponiamodivolerserializzareunpo'diXMLeseisicuroche.NETFrameworkabbiaunmetodochefaproprioquestoperte,manonhaiideadelsuonome.

    TratuttigliassemblydiSystem.,System.Xmlsembrapromettente.Diamoun'occhiatadentro.Hm.System.Xml.Serializationforse?Ahi,moltecosedentro.Cerchiamonomicontenenti"serializer" o "serialize" all'interno. Eccolo: XmlSerializer e all'interno, il metodo Serialize(Stream stream, object o) .

    Senza sapere nulla di questo assembly in precedenza, sei riuscito a trovare ciò di cui hai bisogno in pochi secondi.

Ricorda che per aiutarti a trovare le classi e i metodi di cui hai bisogno, hai:

  • Documentazione. Esiste per quello.

  • Ricerca overflow dello stack e Google. Aiuta quando l'API non è chiara: se hai difficoltà a trovare un metodo, è probabile che altre persone abbiano lo stesso problema.

  • Intellisense (completamento automatico).

risposta data 26.08.2012 - 15:03
fonte
4

Probabilmente non sarai mai in grado di memorizzare tutte le classi, i metodi e gli attributi di tutte le librerie che utilizzi perché è semplicemente troppe informazioni da tenere a mente.

Più utilizzi parti specifiche delle librerie più familiari e comode ti conviene, e alla fine sarai in grado di richiamare le funzioni / classi più utilizzate senza alcun riferimento.

Tuttavia, per le parti meno utilizzate delle librerie sarà comunque necessario utilizzare il materiale di riferimento in quanto sarebbe inutile cercare di impegnare intere librerie incluse tutte le classi, le funzioni e i relativi attributi nella memoria.

Quindi, in breve:

  • basta fare più programmazione con le librerie specifiche per memorizzare le parti di uso comune.
  • non perdere tempo per provare e imparare tutte le librerie intere dopo la funzione. Usa i riferimenti e alla fine memorizzerai il materiale che usi e di cui hai più bisogno.

Buona fortuna

    
risposta data 26.08.2012 - 14:56
fonte
0

Se trovi confusione, forse puoi creare il tuo wrapper attorno all'API in modo da averne a che fare solo una volta. Non sono mai uscito attivamente per apprendere da un'API.

    
risposta data 26.08.2012 - 20:10
fonte