Come posso organizzare un progetto in più linguaggi di programmazione in Git repos? [chiuso]

1

Al lavoro sto usando Java, ma sto pensando di studiare altri linguaggi di programmazione come Python o Clojure.

Sto pensando di programmare un progetto in Java nel mio repository Git e, durante il mio studio, codificare la stessa funzionalità in Python o Clojure.

Perché sarà un progetto senza un valore effettivo sul lavoro e da un obiettivo personale, pensi che sia meglio:

  1. fare un repository per ogni lingua che "traduco" il mio progetto originario in java? È questa struttura:

    • / indipendentRepo1 / ProjectJava
    • / indipendentRepo2 / ProjectClojure
    • / indipendentRepo3 / ProjectPython
  2. fare un unico repository per questo progetto in generale e avviare un ramo per ogni lingua? È questa struttura

    • / singleRepo / filiale / ProjectJava
    • / singleRepo / filiale / ProjectClojure
    • / singleRepo / filiale / ProjectPython

Ho provato a cercare alcune linee guida "ufficiali" per Git ma non ho trovato nulla.

    
posta alepuzio 29.01.2017 - 19:49
fonte

2 risposte

3

Questo è molto personale e dipende dal tuo stile di manutenzione del tuo codice e da come lavori con i repository di codice.

Poi di nuovo ci sono le "migliori pratiche" raccomandate, che ci sono per una buona ragione.

Puoi fare entrambi gli approcci e non sarà "sbagliato" nel senso che, come hai affermato, questo sarà un progetto personale e nessun altro contribuirà. Ma ti preghiamo di considerare i servizi che un repository di codice offre oltre "salva lo stato oggi e forse vorrò tornarci un giorno" ...

Prima di tutto, quando esegui un commit su un repository, stai dicendo "Ho apportato una modifica e questo è ciò che è cambiato, l'altra cosa è stata influenzata / è stata aggiunta / è scomparsa". Quindi se cambi il tuo progetto in una lingua, nel repository tieni tutti i progetti in una volta sola la cronologia porterà quel cambiamento semanticamente per tutti i progetti, anche se le altre lingue non sono cambiate. Se stai utilizzando la cronologia del commit per tenere traccia delle attività, diventa più difficile separare i progetti anche quando si trovano su un ramo separato.

L'unico modo in cui prenderei in considerazione la possibilità di tenere progetti separati sullo stesso repository, è se volessi monitorare l'implementazione della stessa funzionalità su tutti i progetti insieme - ma in questo caso il repository non ti aiuta a far rispettare questo, solo il tuo la propria disciplina per seguire e implementare la funzione che hai appena impegnato in una lingua a quella successiva, prima di lavorare su qualcosa di nuovo nel ramo attuale.

Quindi considera quali sono i rami per - provare qualcosa senza rompere il software attualmente funzionante. Il tuo uso di rami nell'esempio 2 è contrario a quello. Anche se facilmente recuperabile, sarà incredibilmente frustrante quando continuerai a provare in seguito a unire il ramo Java-feature-Y nel ramo ProjectClojure invece dell'altro, solo perché sei andato tardi a letto e hai dimenticato quale ramo hai lavorato fino a tarda notte ; -)

Questa è la mia esperienza personale qui, ma non ho mai avuto più di un progetto per repository Git da quando ho iniziato a lavorare con esso. Anche se ho ancora usato Subversion, ho avuto più progetti nello stesso repository solo all'inizio.

    
risposta data 29.01.2017 - 20:32
fonte
3

Se si tratta dello stesso progetto, ha senso avere tutte le "versioni" di esso (in lingue diverse) nello stesso repository, in modo da poter facilmente tenere traccia delle modifiche in ogni versione (una sottodirectory del tuo principale repository per lingua penserei, non un ramo nel git senso).

Ad esempio, se implementi la funzione X, sarai in grado di eseguire un singolo commit per la funzione X nella lingua L1, L2 e L3.

Un singolo repository renderà la tua vita ancora più semplice per la clonazione, lo spostamento, il backup, ecc ...

    
risposta data 29.01.2017 - 20:22
fonte

Leggi altre domande sui tag