giovedì 8 marzo 2012

Quando Dividi le tue applicazioni

A speakerconf Aruba 2012, Stefan Tilkov presentato sul tema dei sistemi costruttivi. Un aspetto della sua presentazione che in realtà ha colpito un accordo con me è stato di circa i desideri concorrenti, mentre la progettazione e la distribuzione di un'applicazione. Questo blog è di circa riassume questo aspetto e quello che ho portato via da esso. **
Stefan ha osservato che all'inizio della vita di un'applicazione, un'applicazione monolitico è molto più facile per fornire, tuttavia, l'applicazione cresce, ciò che è importante comincia a cambiare. La diapositiva a destra mostra come le priorità possono cambiare nel tempo.
Mentre a partire da una applicazione monolitica è più facile da trasportare, che l'applicazione cresce spesso ad una dimensione impossibile da mantenere - cioè la stragrande maggioranza del tempo abbiamo bollire la rana. Stefan ha sostenuto che i benefici sono così ovviamente lì che per una applicazione di qualsiasi dimensione moderata è più efficiente a mordere la pallottola e rompere le cose (se logico) all'inizio.
Sto indovinando la stragrande maggioranza delle applicazioni che Stefan e innoQ incontro, probabilmente ha iniziato sapendo che sarebbero cresciute a misura notevole e avrebbe beneficiato di qualsiasi tipo di modularizzazione, ma il mio ambiente di lavoro è un po 'diverso. Quando inizio qualcosa di nuovo per un trader a DRW -
  • il progetto non può crescere fino alla dimensione impossibile da mantenere
  • se lo fa, è probabile che io voglio che le cose spezzata in un modo che non avrei potuto prevedere quando il progetto è iniziato.
Dato il mio contesto, non ho potuto concludere che le cose dovrebbero essere rotto subito, ma io non voglio ignorare il punto che Stefan stava facendo su obiettivi che cambiano nel tempo.

Stefan ha avuto anche una diapositiva sulla modularizzazione (anche a destra) che ha dato i numeri e le raccomandazioni su come rompere le cose. Questa diapositiva della presentazione mi ha ricordato Matt Deiters 'a speakerconf Roma 2011. Matt ci ha raccontato i suoi ragazzi l'esperienza di insegnamento in Africa al programma. Durante la programmazione didattica, Matt ha osservato che dare ai bambini la sola regola che non dovrebbero avere metodi più lungo di 10 righe ha portato ai bambini di scrittura del codice con SRP , incapsulamento, e altri attributi positivi. Matt ha sostenuto che inizia con una semplice regola che si potrebbe ottenere l'80% di ciò che si vuole è probabilmente migliore di 10 regole che, se seguita correttamente, si potrebbe ottenere il 100% di quello che volete. ho applicato idea di Matt per parlare di Stefan e ha suggerito che forse la cosa più facile era di prendere tavolo modularizzazione di Stefan e rispettare rigorosamente cambiare le cose quando le soglie LOC sono rotti. Ciò consentirebbe di fornire rapidamente una applicazione monolitica nelle prime fasi del processo di sviluppo, evitando di ebollizione la rana in futuro - una volta che si attraversa il concordato numero magico (LoC), allora si aggressivamente affrontare rompere l'applicazione in moduli più piccoli e indipendenti o processi / components / progetti / qualcosa. Questa strategia dà un cenno al fatto che le priorità cambiano come applicazione si evolve ed è meglio far evolvere l'applicazione con queste priorità, ma non quando è troppo tardi. Ho intenzione di provare questa mia domanda greenfield successivo. ** I vado a memoria, quindi potrei essere un po 'fuori. Non tenere Stefan responsabile per la mia interpretazione delle sue idee.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.