Come posso praticare modelli di progettazione e refactoring in modo deliberato? [chiuso]


10

Stavo leggendo il libro Rifattorizzare gli schemi e mi chiedevo come posso avere la possibilità di esercitarmi nelle abilità, perché senza una pratica deliberata su nuovi modi di refactoring e uso degli schemi, le mie abilità non miglioreranno.

Ma il lavoro d'ufficio mi richiede di completare ogni attività il più rapidamente possibile. Il più delle volte, il design e l'architettura del progetto non sono controllati da me, posso solo seguire lo stile simile al codice esistente. A volte c'è un progetto con un cattivo design, ma c'è anche un altro sviluppatore la cui abilità di progettazione è migliore di me e ha già l'intero piano di refactoring del progetto, quindi sto solo seguendo il suo piano. Come ottengo opportunità per esercitarmi?

Risposte:


6

Beh, a dire il vero non puoi aspettare che arrivi l'occasione bussando alla tua porta. Se sei molto propenso a praticare l'abilità, sarebbe fantastico se tu potessi venire con i tuoi progetti indipendentemente da ciò che ha il cosiddetto sviluppatore più abile . Basta lanciare le tue idee e avere una bella conversazione su come le mie sarebbero utili per questo progetto di bad up esistente. Forse falliresti nei primi tentativi ma impareresti molto e (visto anche il tuo cosiddetto collega sviluppatore più abile avresti anche qualcosa da imparare da te).

In breve, metti i tuoi progetti anche sul tavolo e sai quanto sei bravo o cattivo, altrimenti non c'è modo di confrontare le tue abilità.


3

Pratica, pratica, pratica. I progetti di hobby sono sicuramente una buona idea. E se vuoi imparare, spesso è meglio lavorare sul progetto open source di qualcun altro , in questo modo puoi imparare dagli schemi che impiegano.

Suggerirei di esaminare i dojo di codifica e i code katas . L'idea alla base di questo concetto è che esercitandoti su problemi di pratica gestibili ben definiti, sarai meglio equipaggiato quando sorgono problemi nel tuo codice. (I siti web lo spiegano meglio di me, sicuramente controllali.)

Punto laterale: una cosa essenziale che non è proprio un modello sono le abitudini adeguate quando si tratta di test.

Inoltre, ultimo commento: il lavoro d'ufficio richiede di completare ogni attività il più rapidamente possibile. Se lavori troppo velocemente e crei molti bug, non hai finito l'attività , poiché dovrai tornare su di essa in un secondo momento. Questa è rielaborazione. Se non prendi il tempo necessario per imparare il modo corretto di fare le cose, creerai più lavoro per te stesso a breve termine e non imparerai gli schemi adeguati per migliorare a lungo termine. Vale la pena sia per te che per il tuo datore di lavoro che pratichi i modelli di progettazione corretti. (Detto questo, i modelli di progettazione possono spesso essere abusati e maltrattati da persone che li praticano con zelo o senza comprensione di fondo, ma questo è un punto separato.)


La rielaborazione è una specie di argomento interessante. 37signals.com/rework è un libro decente sull'argomento.
carpeliam,

1
Oh, un altro commento, e questo si accompagna al seguire i modelli delle altre persone. Usa le persone nel tuo ufficio come risorsa. Se hanno piani su come riformattare qualcosa, inducili a spiegare il loro processo di pensiero e costringili a insegnarti. Se il tuo ufficio non si concentra sul tuo sviluppo professionale personale, allora c'è un problema.
carpeliam,

+1 per la nota su quando un'attività è terminata.
Péter Török,

1

Penso che tu abbia le seguenti opzioni:

  • Prendi in considerazione di esercitarti in orari non lavorativi: resta semplicemente al lavoro e sperimenta il refactoring del codice senza affidare il codice a VCS. Per fare pratica deliberata non è necessario impegnare le modifiche. Devi riprodurre una procedura fino a quando non diventa la tua seconda natura.
  • Prendi in considerazione la padronanza delle capacità comunicative per discutere con i tuoi colleghi su quale sia il refactoring più appropriato. La conversazione cruciale è davvero utile per comprendere la meccanica di una comunicazione.
  • Progetto per animali domestici: crea un progetto per animali domestici e metti in pratica le tue abilità. Non deve essere molto utile. Il tuo obiettivo è esercitare le abilità di programmazione.
  • Considera di proporre i tuoi servizi in un progetto open source - questo è più vantaggioso per la pratica deliberata in quanto puoi ottenere feedback
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.