Evita pre-ottimizzazione
La pre-ottimizzazione si verifica quando si presume che un pezzo di codice sia inefficiente sulle risorse e quindi si concentri sul suo fixing, senza nemmeno controllare se si tratta di un problema.
Si può sprecare un bel po 'di tempo su questo, e potrebbe potenzialmente danneggiare le vostre decisioni di progettazione. Se hai qualche problema, profila la tua applicazione.
Evita l'ottimizzazione Mico
Mico-optimization è un tentativo di risparmiare risorse provando a rimuovere le cose a nudo.
Un esempio potrebbe dichiarare variabili locali. Se avessimo un metodo di rilevamento delle collisioni, potrebbe sembrare qualcosa di simile:
boolean isCollidingWith(Entity entity) {
return this.x < entity.x && this.x + this.width > entity.x || this.x > entity.x && entity.x + entity.width > this.x || ...;
}
Uno sviluppatore può volere ripulire dichiarando alcune variabili boolean
locali:
boolean isCollidingWith(Entity entity) {
boolean collideRight = this.x < entity.x && this.x + this.width > entity.x;
boolean collideLeft = this.x > entity.x && entity.x + entity.width > this.x;
return collideRight || collideLeft || ...;
}
Se uno dicesse " non hai bisogno di quelle variabili, semplicemente sprecano spazio ", sarebbe considerato mico-ottimizzazione. Anche se è possibile risparmiare un po 'di spazio, è trascurabile e il tentativo di salvare lo spazio potrebbe danneggiare la leggibilità.
Soddisfa le esigenze / i requisiti del tuo programma
You are required to write a program that calculates PI. Whoever writes the most powerful PI calculator wins a prize.
In uno scenario come questo, potresti preferire l'efficienza delle risorse rispetto alla leggibilità, conservando il più possibile. In seguito, prevedi di eliminare questo programma, quindi non dovrai più leggere questo codice.
Investirai ore per rendere scalabile questo progetto? Probabilmente no.
You own a popular social networking site.
Le regole sono cambiate. Hai milioni di utenti che richiedono costantemente contenuti, mentre tentano anche di correggere eventuali bug attualmente sfruttati. Oltre a questo, hai idee che vuoi implementare.
Le prestazioni sono importanti, ma ci sono molti altri fattori, potenzialmente più importanti, a portata di mano. La leggibilità è un must, a causa della necessità di un team e della necessità di rivisitare il codice.
Assicurati di aver compreso le esigenze della tua situazione.
Scopri come testare correttamente
Il test può essere un processo lungo e doloroso se non sai come farlo nel modo giusto. Potresti passare ore a litigare con i test, solo per capire che non hai testato correttamente un'unità.
Il test unitario è una forma di test tradizionale. Si concentra sul controllo dell'integrità di una singola unità di codice. Il test di integrazione sarebbe il prossimo passo: test nel suo complesso.
Mocking ti permette di ricreare situazioni che di solito non si verificano a comando, come vedere se un robot si sveglia quando scatta un allarme (potresti prendere in giro l'allarme e dargli uno specifico "tempo corrente", piuttosto che aspettare ).
Senza esporti a questi concetti, avrai difficoltà a garantire l'integrità del tuo software.