Come si fa a organizzare la vostra libreria di codice?
-
21-08-2019 - |
Domanda
Sono interessato a sapere come le persone a organizzare le loro librerie di codice, in particolare per quanto riguarda i componenti riutilizzabili. Sto parlando in termini OO inferiori ma sono interessato a come il vostro organizzare le librerie per altri tipi di linguaggio anche.
Ad esempio:
- Sei un accanito sostenitore progetti libreria di classi per tutto, o preferisci tenere tutto in un unico progetto?
- Ti riutilizzare le DLL predefiniti o fare si includono lezioni individuali da progetti precedenti nel tuo lavoro attuale? Se singole classi, si fa a condividere tra i progetti per garantire che tutti sono tenuti aggiornati o ti permetti ramificazione?
- Quanto sono grandi i tuoi elementi riutilizzabili? Come mirato sono? Come sono concentrati?
- Che livello di riutilizzo si fa a raggiungere attraverso le pratiche preferite?
ecc.
Modifica
Io non sono alla ricerca di una guida specifica qui, sono solo interessati a pensieri e delle pratiche della gente. Sono particolarmente interessato al riutilizzo del codice tra i progetti più disparati, piuttosto che all'interno di un unico progetto. (Purtroppo l'uso di 'progetto' qui è fuorviante -. Voglio dire riutilizzare tra progetti reali svolte per i clienti, non i progetti in uno studio senso visivo)
Soluzione
E 'in genere può essere guida da distribuzione considerazioni:
Come si distribuire (vale a dire che cosa intende copiare sulla vostra macchina di produzione)?
Se si sta distribuendo sono confezionati i componenti (ad esempio dll, vaso, la guerra, ...), è saggio per organizzare la "libreria di codice" come un insieme di confezionato insieme di file.
In questo modo, si svilupperà direttamente con il - dll, vaso, la guerra, ... -. Che sarà distribuito sulla piattaforma di produzione
L'idea è:. Se funziona con i file contenuti nel pacchetto, può ancora lavorare nella produzione
il riutilizzo di codice tra i progetti più disparati, piuttosto che all'interno di un unico progetto.
Io sostengo che tipo di riutilizzo è più facile in un approccio di "componente" (come quella discussa nella domanda " Filiali fornitore in GIT ")
Nel corso di più di 40 progetti in corso, abbiamo raggiunto:
- riutilizzo tecnico , isolando sistematicamente ogni aspetto tecnico puro nel quadro indipendenti (tipicamente, log quadro, quadro eccezione, KPI - Key performance Indicator - quadro, e così via).
Quei componenti tecniche sono riutilizzati in ogni altri progetti. - riuso funzionale impostando una chiara applicativo Architettura al fine di dividere qualsiasi dominio funzionale (dato il business e le specifiche funzionali) in applicazioni ben definite. Che in genere comporta, per esempio, uno strato di autobus che è anche un ottimo candidato per esporre i servizi riutilizzati da altri progetti.
Sommario:
Per i grandi dominio funzionale, un singolo progetto non essendo gestibile, una buona architettura applicativa porterà ad riutilizzo del codice naturale.
Altri suggerimenti
Noi seguiamo questi principi:
- Il rilascio-Reuse Equivalenza Principio: Il granulo del riuso è granulo di rilascio .
- La chiusura principio comune:. Le classi in un pacchetto devono essere chiusi insieme contro lo stesso tipo di modifiche
- Il riutilizzo principio comune:. Le classi in un pacchetto vengono riutilizzati insieme
- Il dipendenze Principio aciclici: non consentono cicli nel grafico pacchetto dipendenze .
- La Dipendenza Principio stabile: Depend nella direzione della stabilità .
- The Stable Astrazione Principio:. Un pacchetto dovrebbe essere il più astratto in quanto è stabile
Qualunque cosa si decide buon controllo del codice sorgente è fondamentale per questo, in quanto consente di implementare la vostra strategia qualunque modo vi piace senza finire con un sacco di copie indipendenti del vostro libraries.good ramifica sostegno è indispensabile.