Organizzazione del codice in una squadra di 2 uomini

2

Ho lavorato con un mio amico in un progetto scolastico. Prevediamo che ci vorranno ~ 2 mesi, quindi non è affatto un progetto su piccola scala. Comunicare e suddividere il lavoro in modo efficace è stato comunque un INCUBO.

Non ha un telefono, il che rende difficile comunicare al di fuori della lezione di 1 ora che abbiamo insieme.

Fondamentalmente quello che sta succedendo è che lavoriamo alla stessa identica cosa, o scriviamo codice per componenti che non funzionano con componenti scritte dall'altra persona. Per questo motivo, passiamo circa 20 o 30 minuti ogni giorno in classe facendo lavorare insieme entrambe le copie del nostro codice, e cercando di capire cosa rimane e cosa va. È orribile per efficienza.

Ho guardato su Github ma sembra così ridicolmente eccessivo per questa squadra di 2 uomini. Inoltre non sono stato in grado di trovare tutorial Github per specificamente quello che sto cercando di fare (sono troppo tecnici per qualcuno con 0 git expeience o affrontare cose estranee alle mie esigenze).

Come possiamo organizzare questo progetto in modo più efficace ed efficiente?

    
posta Nathan 16.09.2014 - 21:25
fonte

2 risposte

2

Qui ci sono un paio di cose che devono essere affrontate.

Per prima cosa, ci sono le due basi di codice. Hai il tuo codice. Il tuo amico ha il suo codice. Quando fai una fusione (in qualche modo) lo stai facendo senza la possibilità di vedere le modifiche precedenti.

Non hai bisogno di github per farlo. Si può avere un master repo git su una pen drive, e quindi fondersi da e verso. Github rende più facile farlo (e più difficile da perdere). Lavorando dalla pen drive, però, non avresti un set completo di tutorial su come usarlo o le altre cose che github ha che sono piuttosto carine.

Successivamente, ci sono i problemi. Non hai una chiara divisione del lavoro e il monitoraggio di questo lavoro:

  • Chi sta lavorando a cosa?
  • Quali modifiche correggono cosa?

Il trackup dei problemi di github all'interno di github ti consente di assegnare chi sta lavorando su un determinato problema e identificare quale stato è dentro. Si aggancia anche se tagghi il commit con il numero del problema, che poi ritorna nella parte di Github del tracker dei problemi. Questo rende chiaro quando in seguito vuoi tornare indietro e vedere "cosa ho modificato per far funzionare il numero 5?" - puoi andare al numero 5 e vedere i commit.

Questo non impedisce comunque a nessuno di lavorare su qualcosa. Tu o il tuo amico potreste ignorare il tracker dei problemi e lavorare su qualsiasi cosa. Lavorare con altre persone richiede disciplina: comunicare correttamente ciò che si sta facendo, prendere compiti, completare compiti e dire che sono fatti e quindi spostare le modifiche in un posto dove altre persone nel progetto possono farne uso.

Se tu o il tuo collaboratore non siete disciplinati a farlo, avrete problemi.

Git o qualsiasi VCS non risolveranno il problema di "in pratica cosa sta succedendo è che lavoriamo alla stessa identica cosa, o scriviamo codice per componenti che non funzionano con componenti che l'altra persona ha scritto" sul suo proprio. Oggi potresti farlo - scrivere tutte le specifiche su carta e avere una pila di schede con tutte le cose che devono essere fatte. Divvy le schede e lavoraci secondo le specifiche scritte. Nessun git coinvolto in quel processo. Un sistema di controllo versione online lo rende più facile per farlo, se sei disposto a lavorare con esso. Ma, se non hai intenzione di prendere provvedimenti per essere effettivamente disciplinato nelle tue abitudini di lavoro, in primo luogo, sarà solo un lavoro noioso extra.

Come sopraffare? No. Non è eccessivo. È un set di strumenti molto utile che ha molte funzionalità che userete un giorno. Ci sono sistemi di controllo delle versioni più semplici (ho usato RCS nel corso della giornata e ha funzionato bene per i miei progetti universitari con partner (ubriaco i check-in sono più facili da ripristinare piuttosto che chiedere al personale del laboratorio un ripristino dal backup notturno). A parte la natura del cloud e del server di git, aveva solo una ripida curva di apprendimento come RCS.

Si noti che molti IDE oggi hanno integrato il supporto git che rende molto più semplice l'utilizzo. Hai taggato con - considera la lettura di Utilizzo del supporto Git nell'IDE di NetBeans .

    
risposta data 16.09.2014 - 23:12
fonte
0

La tua domanda riguarda l'organizzazione del codice (come specificato nel titolo) e molti sembrano parlare di VCS, che potrebbero non risolvere il tuo problema. Sembra che tu non abbia bisogno del controllo della versione, il tuo problema sembra essere qualcos'altro.

Basically what's been happening is we end up working on the exact same thing, or we write code for components that doesn't work with components the other person has written.

Se devi parlarti, puoi decidere cosa faranno ognuno di voi, giusto? Sei che si calpesta l'un l'altro , come hai detto, lavorando sulla stessa identica cosa .

I looked into github but it looks so ridiculously overkill for this 2 man team. Also I was unable to find github tutorials for specifically what I'm looking to do (They're all too technical for someone with 0 git expeience or tackle things unrelated to my needs).

Non intendo offesa. Ma se non riesci a trovare tutorial GH, non troverai tutorial per nulla. Dai una prova a Pro Git (o qualsiasi libro di Git introduttivo). Potrebbe essere eccessivo, ma alla fine lo uccide comunque. Inoltre, probabilmente un giorno dovrai imparare almeno un VCS.

How can we organize this project more effectively and efficiently?

Che ne pensi di organizzarlo? Nessun VCS sarà in grado di unire quello che stai facendo se voi due state facendo la stessa identica cosa ogni giorno.

Come hai detto, è non un progetto su piccola scala , quindi due cose devono essere chiare:

  1. GitHub (o qualsiasi VCS) è non eccessivo.
  2. È probabile che voi due abbiate cose diverse da implementare / rifatturare / lavorare.

Non ha un telefono? Ha accesso a internet? Può creare un account e-mail? Utilizzare qualsiasi servizio di messaggistica?

    
risposta data 17.09.2014 - 05:21
fonte

Leggi altre domande sui tag