Java: quali sono alcuni passi per imparare un progetto in cui si ha un poca o nessuna esperienza

StackOverflow https://stackoverflow.com/questions/1246352

  •  12-09-2019
  •  | 
  •  

Domanda

Come programmatore di partenza con poca industria-esperienza, trovo frustrante per imparare un nuovo progetto che si basa su molte tecnologie che io non sono a conoscenza. Il progetto cui sto lavorando ha circa 150 classi con 15.000 righe di codice, e con la sua ampia attenzione alla presa e la programmazione di sicurezza che non ho alcuna esperienza in, non so dove dovrei cominciare.

Con la documentazione limitata e aiuto per mano, lo studio autonomo è il mio miglior risorsa nel tentativo di comprendere il progetto nel suo complesso. Spesso mi capita di spendere troppo tempo di apprendimento caratteristiche insignificanti del prodotto, mentre perdendo le classi cruciali che io in realtà dovrebbe essere concentrandosi su ... Il motivo principale per cui ci vuole così tanto tempo è che spesso devo guardare in Java API fare riferimento ogni pochi minuti per capire un piccolo blocco di codice ... sono sicuro che finirà per imparare attraverso tentativi ed errori, ma sono sicuro che ci sono alcuni consigli utili e le linee guida che posso usare:)

È stato utile?

Soluzione

Un paio di cose mi vengono in mente:

  1. Spendere un po 'di tempo la conoscenza della JDK e le sue classi standard. Avendo conoscenza fuori dalla parte superiore della testa ci vorrà del tempo e molto altro ancora controllando le specifiche API, ma si può anche trascorrere del tempo solo la navigazione, senza una particolare cosa che stai guardando in alto.
  2. Se il progetto sta usando alcuni framework o librerie, spesso è possibile ottenere una vista di alto livello di ciò che questi portano al progetto leggendo la pagina "intro" sul sito del progetto. Penso che questo potrebbe essere di particolare aiuto a voi, dal momento che hai citato scarsa familiarità con alcune delle tecnologie utilizzate nel progetto come una fonte di frustrazione.
  3. Se ci sono i test di integrazione o di regressione funzionale, questi possono essere spesso un buon modo per ottenere una maniglia su ciò che i principali punti di ingresso nel progetto sono. Avere una buona conoscenza delle funzionalità di alto livello di un progetto è spesso utile quando si cerca di capire i piccoli dettagli.
  4. Se si riesce a trovare un mentore per la tua squadra per mostrare le corde, che probabilmente aiuterà molto.

Credo che, in base alle dimensioni del progetto lei ha ricordato, che questo può essere una breve introduzione al codice di produzione per voi. Potrebbe sembrare grande ora, ma 15000 linee di codice si trova sul lato più piccolo dei progetti si potrebbe finalmente lavorare durante il corso della vostra carriera.

Ricordate anche che questo è necessariamente sarà un'esperienza di apprendimento per voi. E 'uno dei vostri primi progetti nel settore, quindi potrebbe prendere un po' di tempo per abituarsi alle cose. Tenete a mente che non sei la prima persona ad avere a nuotare nella zuppa biblioteca / quadro in una base di codice sconosciuto.

In bocca al lupo!

Altri suggerimenti

Inizialmente, non è necessario capire ogni riga di codice.

Prendere in prestito uno sviluppatore senior per una mezz'ora e chiedergli di darvi la veduta panoramica dell'architettura - quali sono i principali blocchi di codice sono, come interagiscono e come i dati / unità di utilizzo dell'utente attraverso il sistema .

Poi trascorrere qualche ora indagando la fonte per i moduli si sente (dopo la spiegazione) vi darà la migliore comprensione "come tutte le opere".

Ho un (probabilmente piuttosto strano) abitudine di stampare grandi blocchi di codice sorgente, e che copre un pavimento con le stampe. Allora posso inginocchiarmi e strisciare sul pavimento con una penna e letteralmente disegnare frecce da punto a punto, e disegnare intorno sezioni - trovo che la visualizzazione di codice in 2D rende più facile capire le cose. Consente inoltre fare appunti che mi aiutano a comprendere il flusso in modo più dettagliato.

In poco tempo, potrai iniziare a riconoscere idiomi (modi stilizzati di fare le cose) che caratterizzano il codice, e alla fine troverete la tua strada nella mentalità degli autori. Poi tutto sarà molto più semplice.

Mentre sei sul pavimento, strisciando intorno, hanno un computer portatile + google a portata di mano, in modo da poter decifrare qualcosa di strano si incontrano. Inoltre:. Colorati evidenziatori penne FTW

Fai (almeno) due passaggi a comprendere la fonte. La prima volta non cercare di capire una delle minuzie ... cercare di ottenere un tatto per "movimento" - dove i dati va, e dove l'esecuzione va. Che vi darà un quadro di riferimento per il proprio modello mentale del codice. Quando si passa attraverso la prossima volta, si può iniziare ad abbattere i dettagli, ma un approccio top-down rende sempre le cose più facili per me.

Se non hai familiarità con la tecnologia, lingua o l'ambiente, poi si vede se ci sono libri intorno si può afferrare. C'è molto più spazio visibile nel mondo reale di quanto si possa stare su uno schermo di computer, e con Google su un computer portatile, i riferimenti sintassi / libreria in un libro, e il codice di tutti intorno a te fa (almeno per me) l'intero processo NOTEVOLMENTE più semplice.

L'apprendimento di una base di codice richiede tempo. Credo che la regola generale è di circa 3 mesi per un nuovo sviluppatore di avere familiarità con una base di codice.

Le uniche cose che mi aiutano sono di sperimentare e vedere cosa succede, e acquisire familiarità con l'API.

Coppia di programmazione. I lavori per il codice con qualcuno che ha esperienza con esso. lui o lei Aiuto; avere lui o lei ti aiuto. Mentre si lavora sul codice dello sviluppatore più esperto, si impara qualcosa di quello che gli aspetti importanti del codice sono - perché lo sviluppatore esperto li conosce. Potrai sviluppare un modello mentale del software che è ragionevolmente vicino alla sviluppatore esperto, invece di inseguire vicoli ciechi e ratholes di tua scelta. Coppia.

se avete le prove, studiarli. se non, quindi scrivere alcuni.

Vi suggerisco di stampare ciò che i miei insegnanti usati per riferirsi a come "diagrammi di classe" che appena hanno l'Classname, i nomi dei metodi e nomi dei membri. Quindi disporre i fogli su un tavolo / parete e scoprire che parla di classe a cui classe, che parla di metodo a cui Metodo ecc Fai frecce e le connessioni tra le classi / metodi. Prova ad ottenere una sensazione per il codice. In principio non è importante capire che cosa una riga di codice fa, ma quello che un metodo / classe dovrebbe fare in modo da capire il flusso di dati di base.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top