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)

È stato utile?

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

È possibile saperne di più su qui e più di qui .

Dipende da quale piattaforma si lavora. Sono un (orgogliosa) sviluppatore Java e abbiamo belle strumenti per organizzare le nostre dipendenze come Maven o Ivy

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.

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