Sto perdendo traccia del flusso della mia app web PHP, sta diventando difficile lavorare con

14

Ho programmato per alcuni anni e ho acquisito molta familiarità con C # e JavaScript nel tempo. Ho alcuni progetti C # e JavaScript più grandi che non ho problemi a navigare. Di recente ho avviato un PHP & Progetto AngularJS per lavoro senza precedenti esperienze con PHP.

Il flusso del lato PHP delle cose sta diventando difficile da tenere sotto controllo (il lato JavaScript è più grande, ma facile da elaborare), quando cerco di pensarci, immagino una sfera intricata. I principali errori di progettazione che ho fatto quando ho iniziato hanno iniziato ad accumularsi e ad avere effetto sul mio progetto in futuro. Ci vuole sempre più tempo per implementare qualsiasi cosa di nuovo.

Ho una scadenza molto stretta e trovo sempre più difficile scrivere buoni, asciutti, solidi, codice. Sta diventando sempre più allettante copiare / incollare blocchi di codice per apportare leggere variazioni al suo comportamento mentre il tempo di progettazione sale. Ci vuole anche molto tempo per tornare al codice base ogni volta che devo fare un cambio di contesto (da un progetto a quello successivo), ho paura quando torno a lavorare su questo progetto.

Quali misure posso adottare per porre rimedio a questo? Il tempo extra che potrebbe richiedere deve essere giustificabile, il mio capo non è uno sviluppatore e non ha familiarità con i cicli di sviluppo o il ciclo di vita del software, quindi spiegare potrebbe essere più difficile del normale.

    
posta Douglas Gaskell 15.11.2016 - 19:40
fonte

3 risposte

11

Stai assumendo un debito tecnico. Più giustifichi il codice sciatto con le scadenze, più scadenze ti vedranno sempre meno.

Comprendi che puoi farcela completamente. Nessuno ti prenderà a fare casino e ti butterò fuori. Stai andando a svegliarti un giorno circondato da disordine.

A quel punto aggiornerai il tuo curriculum e diventerai un mio problema, altrimenti deciderà di saldare il debito e passare un po 'di tempo a pulire il codice.

Se vai alla routine di pulizia capisci che non si tratta di "dedicare più tempo alla progettazione". Si tratta di rompere alcune abitudini pigre e portare fuori la spazzatura.

Lanciare il codice sporco all'ingrosso è una cattiva idea. Non per il lavoro svolto, ma perché il codice di lavoro cattura un'idea. Sposta l'idea in codice pulito prima di eliminare il codice sporco.

Avere dei test unitari ti aiuta in questo, ma se hai creato i tuoi test con la stessa cura che hai messo nel caos, probabilmente hanno bisogno di essere riparati.

Non dare rigidità. Se non puoi cambiarlo, non è un software.

    
risposta data 15.11.2016 - 20:32
fonte
9

It takes longer and longer to implement anything new.

Questa è la tua giustificazione. "Scopa, mangia un po 'di corvo e spiega perché le cose richiedono più tempo e hai bisogno di dedicare un po' di tempo al refactoring + alla riprogettazione del sistema.

Se non lo fai, dovrai refactoring a poco a poco, in basso. Le attività impiegano già più tempo di quanto tu desideri: impiega un po 'di tempo in più ogni volta che tocchi il codice base per provare a fare qualcosa di meglio. Aggiungi un test di integrazione. Estrai un'astrazione.

La stupida risposta a "Come refactoring un progetto enorme?" è "Un pezzo alla volta".

Modifica

Stavo leggendo post correlati e ho trovato questo post del blog: link . TLDR : non tentare di creare una fase di "refactor" enorme nel tuo progetto; è improbabile ottenere il buy-in dai proprietari del progetto e non sarai guidato nelle tue scelte su cosa affrontare nel tempo che hai. Invece, prenditi il tempo per ogni nuova modifica o bugfix per controllare il codice con cui stai lavorando in questo momento. Non permettere agli odori di restare fermi quando hai la possibilità di risolverli.

    
risposta data 15.11.2016 - 20:10
fonte
-2

Sonarqube supporta PHP in modo che tu possa aiutarti a tenere traccia del tuo debito attuale e delle nuove perdite. link

Esempio dal vivo con Drupal link

    
risposta data 15.11.2016 - 23:41
fonte