2010-04-24 16 views
14

Una cosa che non mi piace della programmazione è l'apprendimento di una nuova API. Ad esempio, in questo momento sto cercando di imparare Windows Identity Foundation. È frustrante perché ho intenzione di dedicare la maggior parte del tempo a imparare come funzionano alcune classi e in realtà scrivo solo diverse righe di codice.Come impari rapidamente una gerarchia di classi?

In .NET, ci sono così tanti tipi che mi sembra di passare più tempo a cercare in msdn per una classe piuttosto che scrivere codice. Interrompe anche il mio flusso di lavoro mentre lavoro perché devo digitare un po 'piuttosto che cercare qualcosa.

Ovviamente, io non devo fare questo per le classi di base. Ogni volta che arrivano nuove cose, c'è sicuramente qualcuno che sta cercando di fare. Quindi spesso non riutilizzai quella lezione abbastanza da poterla davvero rivedere o metterla in azione.

Mi chiedo se qualcuno là fuori abbia trovato un modo per memorizzare (o cercare in modo più efficiente) queste gerarchie di modelli oggetto?

+0

Up vote fellas, questo è il problema che tutti noi dobbiamo affrontare. votarlo !! –

+3

Solo perché è un problema comune, non è una buona domanda. Per me, questo è parte del nostro lavoro, e chiedere delle scorciatoie è un po 'come chiedere come avanzare velocemente attraverso tutte quelle noiose cose di design e architettura. Imparare gli strumenti non è, o non dovrebbe essere un compito da evitare. – Aaronaught

+0

La curva di apprendimento non può essere evitata. Puoi sicuramente migliorare la tua capacità di assimilare più informazioni. Tuttavia, c'è ancora solo una quantità limitata di cose che puoi tenere nella tua testa ... il "trucco" deve quindi essere intelligente nella scelta delle cose che vuoi mantenere e scartare le cose che puoi facilmente cercare. – Gishu

risposta

1

Sono stato nella tua posizione tanto tempo fa quando ho imparato Java e le sue classi Collection (o SWING o AWT per questo).

Ecco alcuni passi che ho fatto e l'esito di tali operazioni:

  • non si preoccupò di prendere appunti, continuare a utilizzarlo => ricordare solo la classe più utilizzato
  • prende un disorganizzato note => stesso risultato, ricordate la classe più utilizzato
  • diagrammi delle classi semplici => miglioramento, ma incompleta
  • diagrammi di classe semplice ma completo con sottoclassi organizzata è per componente (pacchetto in Java) => Jackpot!

qualche altro consiglia:

  • eliminare classi obsolete
  • trovare un simbolo per contrassegnare una classe è thread-safe (mettere una TS o qualcosa)
  • Si potrebbe omettere il meno usato sottoclassi (forse) come si va avanti con la vostra avventura

un esempio di un semplice diagramma delle classi:

paragonabile a questo (non-così-semplice):

Speranza che aiuta.

Ed

2

Disegno alcuni diagrammi UML e pubblicandoli accanto al tuo monitor può aiutare. Altrimenti, penso che l'unico modo per ottenere realmente nuove interfacce delle classi nella tua mente sia usarle molto.

Sfortunatamente, passare più tempo a guardare i documenti che a scrivere codice è una caratteristica tipica dei moderni ambienti di programmazione.

8

L'idea che si può imparare completamente una nuova API è morto molto tempo fa, probabilmente con Windows 3.0. Le API di Windows sono diventate così complesse da non poter più apprendere tutto, nel modo in cui è possibile ad esempio imparare tutte le chiamate di sistema UNIX. e non c'era bisogno: la documentazione online, facilmente ricercabile, rendeva l'apprendimento superfluo.

Ovviamente, ciò che devi sapere è come è organizzata un'API (o una libreria di classi) e quali sono le sue capacità, ma non ha senso imparare quale sia il terzo parametro della chiamata di funzione X.

+0

Neil, grazie mille per questa risposta. Probabilmente il miglior consiglio mai ricevuto .. –

0

Di solito non mi preoccupo di imparare l'API tanto quanto cercare di capire i concetti generali di ciò che l'API sta facendo & come funziona.

Quindi, in genere inizia con i blocchi di livello alto di ciò che fa l'API (di solito nella documentazione) & quindi scegli come target ciò che vuoi ottenere dall'API & facendolo funzionare con questi aspetti.

Sì, ci sarà un back & indietro tra il codice di documentazione & per qualche tempo, ma come si ottiene più a suo agio con l'API, si inizierà a notare i modelli & stile del codice & le altre aree delle API arriveranno più naturalmente a voi (ammesso che sia un'API ben disegno :)

HTH.

0

Accidenti, ho solo pensato che fosse me invecchiando !!!

Scrivo codice Java utilizzando JMS, EJB, JNDI, JDBC, JSP, Servlet, Struts, Struts, JTA, Swing, POI, GWT, GAE, JDO, IBM MQ MQ, JNI, XML, SAX, DOM, C++ , WIN32 così come le nostre librerie di classe e probabilmente più di quanto non riesca a ricordare.

Quando ho bisogno di passare da una tecnologia all'altra è molto difficile ricordare tutte le API. Alcuni degli strumenti utilizzati ora sono così superiori che è possibile avviare un nuovo progetto utilizzando una delle nuove tecnologie.

  • Eclipse e Visual Studio entrambi hanno completamento automatico.
  • Google è di grande aiuto: usalo tutti i giorni.
  • documentazione in linea.

Inoltre creiamo il proprio lavoro-AIDS, che è quello di documentare le procedure passo-passo su come fare qualcosa vale a dire la fusione di un ramo in controllo di versione, la distribuzione su una piattaforma. Manteniamo questi elementi in un Wiki per il nostro gruppo.

0

Niente di specifico da offrire qui come risposta.

È una parte necessaria dell'essere un programmatore. Puoi comunque scegliere di essere molto pignolo nei framework che decidi di utilizzare.

Un buon quadro

  • è facile da pick-up e utilizzare senza documentazione. Funziona esattamente come ci si aspetta che funzioni
  • ha ancora un'ottima documentazione a dispetto del proiettile n.
  • è minimalista. Minima quantità di codice/classi/metodi per portare a termine il lavoro.

Tuttavia ci sono momenti in cui non si ha scelta; nel qual caso l'unica cosa è scendere n sporchi nelle trincee. Inizia con un codice di esempio - app di prova - impara da persone che sono già state lì e fatte/blog.

0

Sì, ricordando tutte queste API è una preoccupazione anche per me ...

I miei 2 centesimi (accanto gestione della documentazione online in tutto) è quello di scrivere codice suite di test che utilizzano le funzioni che voglio imparare. Il punto è che credo che il modo migliore per capire alcune API sia farlo funzionare, se lo leggi non puoi essere sicuro di averlo capito nel modo giusto. E dovendo far funzionare le cose di solito puoi scegliere tra quali parti sono necessarie per capire (la cosa strana è che la parte "difficile" è abbastanza spesso sui dettagli della configurazione) e quali parti puoi lasciare per dopo. Ho Lerant una nuova libreria di disegno in questo modo non molto tempo fa e ho havn't ancora provato ogni primitive di disegno ...

Scrivo questo codice di prova, come me, per qualsiasi prova di unità nei miei programmi, cercare di mantenere le cose semplici e facile da capire. Questi test diventano parte della mia documentazione online personale e copio la pasta e la adatterò quando necessario.

Ovviamente non posso testare tutto in quel modo, ma cercando alcuni casi tipici senza la pressione del progetto in corso è di solito un grande aiuto per capire una nuova API, e io uso per lo scambio di quelle suite di test con i miei colleghi di lavoro .

Problemi correlati