Organizzazione del progetto con professionisti e studenti

4

Lavoro come studente di dottorato sviluppando simulazioni scientifiche / ingegneristiche e algoritmi da testare in queste simulazioni. In questi giorni il primo studente ha iniziato a lavorare sul mio progetto (per la sua tesi di laurea triennale) e mi chiedo: come dovrei organizzare il progetto ora? Penso di avere una buona conoscenza del C ++ (anche se voglio ancora migliorare ogni giorno!) E il codice contiene alcuni schemi di progettazione, molte classi di modelli ecc. Queste tecniche sono nuove per lo studente e mi chiedo se sia una buona idea averlo lavora direttamente nel bagagliaio del progetto.

Hai qualche esperienza su cosa succede se programmando neofiti e programmatori più esperti vengono mescolati? Il codice viene incasinato o i neofiti imparano di più da questo? È saggio avere un ramo per lo studente per testare i suoi algoritmi e magari unirli nel tronco più tardi? Dovrei prima dargli un libro come The Pragmatic Programmer per la lettura (suggerimenti migliori?)?

Grazie per ogni risposta!

NOTA BENE: ho posto questa domanda su Stackoverflow . La risposta riguardava le revisioni del codice e penso che sia un buon modo, ma sono stato anche informato che questo sito potrebbe essere il più corretto, quindi volevo vedere se ci sono più cose che potrebbero aiutare o altre opinioni?

    
posta Philipp 19.10.2010 - 07:53
fonte

2 risposte

1

Suggerirei di creare uno o più rami per ogni studente. Lascia che lavorino con il codice e lo rovinino, ma non uniscilo nel bagagliaio finché non è disordinato. Se riescono a scrivere un codice più o meno indipendente, come è la tua descrizione, in un certo senso puoi lasciarlo e lasciarli imparare. Se hanno bisogno di modificare i componenti principali, è necessario avere più esperienza con le revisioni del codice, i test e i requisiti di stile.

Una volta che sai quanto è buono un programmatore lo studente, puoi pensare di dare loro il diritto al tronco.

È difficile applicare agli studenti principi di settore (revisione del codice, linee guida di stile, ecc.) a causa della natura temporanea del lavoro e del fatto che la ricerca è l'obiettivo principale, non la scrittura del codice. C'è spesso una certa resistenza a soddisfare gli standard del settore perché gli studenti spesso ritengono che non valga la pena scrivere i test unitari e la documentazione: hanno una dissertazione da scrivere!

Detto questo, qualunque strumento tu possa impostare per incoraggiare le migliori pratiche aiuterà. Raccomando Git per il controllo della versione perché rende molto semplice la ramificazione e l'unione e puoi configurare un server di integrazione continuo come Hudson o Cruise Control per incoraggiare una codifica più pulita: i cruscotti mostreranno cose come la copertura del test, violazioni di stile ecc. propriamente. Non ho molta familiarità con gli strumenti di analisi statica per C ++, ma in Java puoi usare cose come Checkstyle e Findbug per incoraggiare un buon stile. Ci devono essere strumenti simili per C ++.

    
risposta data 20.10.2010 - 02:22
fonte
1

Sono d'accordo con la revisione del codice e la consulenza sulla ramificazione già fornita. Vorrei anche che partecipassero alle revisioni del design. Chiedi loro di rivedere i tuoi progetti e di rivedere i loro progetti. In questo modo imparano e, auspicabilmente, implementano codice e design migliori e talvolta i neofiti sottolineano le cose che ti sono sfuggite solo perché non assumono tanto quanto le persone con esperienza.

    
risposta data 20.10.2010 - 04:44
fonte

Leggi altre domande sui tag