Refactor o Concentrated on Completing App

22

Ristrongrà la tua app mentre vai a concentrarti sul completamento dell'app in primo luogo? Refactoring significa che il progresso dell'applicazione app rallenterà.

Il completamento dell'app ti consente di ottenere un'app probabilmente difficile da mantenere in un secondo momento?

L'app è un progetto personale. Non so davvero come rispondere "Ciò che guida la funzionalità e il design", ma suppongo che sia per risolvere le inefficienze del software attuale. Mi piace anche il minimo software facile da usare. Quindi sto rimuovendo alcune funzionalità e aggiungo alcune che ritengo possano aiutare.

    
posta Jiew Meng 02.12.2010 - 02:47
fonte

11 risposte

24

Falla funzionare. Quindi fallo velocemente. Infine, rendilo bello.

Se hai una buona separazione tra il tuo codice (presentazione, business e livelli di dati) usando le interfacce, e non è un progetto monolitico, allora il refactoring non dovrebbe essere così difficile.

Se hai molte difficoltà nel refactoring, probabilmente è un odore di codice - ti suggerisco di guardare Principi solidi

    
risposta data 02.12.2010 - 03:33
fonte
8

Penso che il punto essenziale sia mantenere le interfacce pulite . È sempre possibile refactoring o addirittura riscrivere modulo / classe / eventuali implementazioni in seguito, purché i livelli di comunicazione tra di loro siano sani di mente. Passa un po 'di tempo a capire cosa è facile cambiare in seguito e cosa no. Rendi corretto il secondo.

Questo è coerente con lo spirito di TDD. Per scrivere buoni test, hai bisogno di una buona interfaccia per testare contro. Quanto sia disordinato dietro le quinte al momento non è così importante, perché puoi migliorarlo più tardi.

    
risposta data 02.12.2010 - 11:07
fonte
5

Ho sempre un refactoring mentre vado, specialmente usando TDD.

  1. Scrivi i test

  2. Fai passare i test

  3. Refactor

Questo ti aiuterà ad avere meno bug e codice migliore per il prodotto finito. Ti permetterà anche di avere meno codice da conservare quando hai finito.

    
risposta data 02.12.2010 - 02:52
fonte
4

Refactor presto e spesso! Il tempo in cui "salvi" nel non farlo viene trascorso molte volte cercando di hackerare la prossima funzione e cercare bug in un codice troppo complesso o caotico.

    
risposta data 02.12.2010 - 11:02
fonte
2

Il refactoring è come ritirare la tua stanza.

Se mantieni le cose in ordine, hai un overhead lineare, proporzionale alla quantità di lavoro produttivo che stai facendo sul codice, O (n) in termini algoritmologi. Supponendo che spendi il 10% del tuo tempo per il refactoring (o per tenere in ordine la tua stanza), quel 10% è un dato, e rimarrà costante nel tempo.

Se, tuttavia, lanci i vestiti sporchi in un angolo e continui a farlo, la quantità di tempo che trascorri a raccogliere la tua stanza aumenta man mano che il casino diventa più complesso. Supponendo che ogni singolo pezzo di biancheria sporca contribuisca esponenzialmente al tempo necessario per la pulizia, ora ci si trova in una situazione O (e n ).

Chiunque abbia mai scavato nel concetto di complessità algoritmica osserverà che c'è un punto di pareggio da qualche parte, cioè c'è una quantità ottimale di biancheria sporca da accumulare; quanto dipende dai fattori costanti che vengono scartati nella notazione big-O. Un altro fattore è il valore del tuo lavoro nel tempo: se il tuo lavoro vale molto ora, ma a buon mercato la prossima settimana (cioè, c'è una scadenza questo venerdì per questo progetto e altri tre, ma dopo, sarai per lo più inattivo ), l'equazione potrebbe risultare in favore del non refactoring.

E poi c'è la massa critica della complessità. Ad un certo punto, il caos ('pasticcio critico', se vuoi) diventa così grave che sembra più facile bruciare l'intera stanza e comprare nuovi vestiti. In realtà di solito non lo è, ma sembra così, e gli effetti psicologici renderanno dieci volte più difficile affrontare la cosa.

E ovviamente, se entri in un progetto che è già un enorme pasticcio ridondante, hai una scelta limitata.

TL; DR: in caso di dubbio, refactoring. Dovresti avere delle prove davvero buone prima di decidere di non farlo.

    
risposta data 20.01.2012 - 08:12
fonte
1

Se hai la possibilità di aggiungere funzionalità o eliminare i bug per ottenere la soddisfazione delle tue vendite / clienti dove pensi che dovrebbe essere, fallo. Una volta che ci sono meno nuove richieste, puoi bilanciarti con il refactoring. Ad un certo punto devi assicurarti di scrivere codice che la gente vuole. A parità di condizioni, preferirei buttare via 100 ore di codice rispetto a 1000. Che è quello che farai se nessuno lo desidera.

    
risposta data 02.12.2010 - 03:43
fonte
0

Dipende davvero da dove ti trovi!

Altre cose a cui pensare:

Quanto sei sicuro di avere il design funzionale vero? Potresti finire di nuovo riprogettare dopo aver ricevuto un feedback da parte degli utenti?

Preferirei pubblicare piuttosto che riscrivere. Ottimizza dopo che sei sicuro di aver inchiodato il design funzionale.

    
risposta data 02.12.2010 - 02:54
fonte
0

Finché sei sicuro puoi rispettare la scadenza, sicuro di poter refactoring tutto quello che vuoi. Tuttavia, anche se c'è un po 'di incertezza, è meglio attenersi allo sviluppo e può essere un refactoring solo in un passo incrementale modesto.

    
risposta data 02.12.2010 - 03:47
fonte
0

Se il cattivo design che vuoi refactoring ti fa davvero male, è meglio correggerlo ora piuttosto che creare più codice che dipende da esso. Refactoring più tardi sarebbe più difficile e più costoso; è probabile che non sarai più in grado di farlo.

D'altra parte, se il tuo unico problema è la brutta situazione, potresti voler completare prima il tuo software, perché quasi niente batte ottenere risultati .

    
risposta data 02.12.2010 - 11:25
fonte
0

Il refactoring sarà molto importante mentre lavori al completamento della tua applicazione.

+ VES

  1. Cancella flusso: Il refactoring darà chiarezza al codice, perché a volte se il codice è poco non strutturato, capire il flusso del codice dopo un periodo di tempo diventerebbe il codice di refactoring difficile e potrebbe diventare un compito in salita e potrebbero essere introdotti bug.

  2. Migliora il rendimento: un corretto refactoring dell'applicazione ti aiuterà sicuramente a migliorare il rendimento delle applicazioni.

  3. Manutenzione: Ultimo ma non meno importante, sarebbe più facile mantenere a lungo termine.

-VE

  1. Consumo di tempo: richiederebbe molto più tempo in ogni fase del tuo progresso. Quindi potrebbe esserci un ritardo nel completamento.

Bottom Line

A seconda del tipo di progetto, puoi dare priorità alla qualità o al completamento del codice a seconda della situazione attuale.

    
risposta data 20.01.2012 - 06:25
fonte
0

In base alla mia esperienza personale, di solito vado a finire le app prima con la condizione che ci sia una scadenza da raggiungere. una volta completato, puoi refactarlo.

Finiscilo e rifattalo. Ma se non c'è scadenza per essere fretta o tempo, suggerisco che il refactoring sarebbe buono.

    
risposta data 20.01.2012 - 06:42
fonte

Leggi altre domande sui tag