utilizzando il controllo versione
SVN è molto comune, ma mercuriale è più bello, potente e ha un solido supporto per la GUI.
sviluppo guidato dai test
bene, se fai test di unità sei già dalla parte dei vincitori. per gli strumenti, è una questione di scelta. il test deve essere il più semplice possibile, ecco il motivo per cui ho abbandonato PHPUnit per SimpleTest.
codice di debug
con i unit test difficilmente avrai bisogno di xdebug. di solito uso xdebug solo per la profilazione. (controlla KCachegrind tra l'altro)
utilizzo di diagrammi UML
il problema più grande con tutto ciò che riflette la logica del codice è che è un sacco di lavoro manuale da mantenere sincronizzato. puoi automatizzare alcune attività, ma non è così utile, perché di solito vuoi usare uml prima di avere qualcosa. l'altro problema è che gli strumenti del diagramma sono molto più difficili da usare rispetto a carta e penna o una lavagna. usa uml se devi comunicare un problema con più sviluppatori o se hai bisogno di un'astrazione per te stesso. ("dia" è un bel strumento gratuito. Anche gli strumenti di mappatura mentale sono molto utili per il brainstorming, alcuni possono effettivamente competere con carta e penna.)
utilizzo di OOP per codice gestibile e riutilizzabile
beh, oop funziona in una certa misura. :) un buon consiglio: composizione> eredità. l'ereditarietà è un potente strumento da riutilizzare a prima vista, ma la manutenzione e l'accoppiamento lento ne risentiranno. secondo buon consiglio: manutenzione> riutilizzo. un sistema astratto può essere molto potente, ma anche difficile da mantenere.
utilizzo di framework (come Zend Framework per php) per un rapido sviluppo delle applicazioni
RAD è una buona cosa per far uscire la tua app in anticipo. ma alcuni componenti, in particolare ORM, spareranno ai tuoi piedi, almeno se si tratta di scalabilità. il problema principale qui è che si collega la logica del dominio per lavorare con gli oggetti, il che diventa molto difficile da considerare se è necessaria una soluzione ottimizzata per il database scalabile puro. essere consapevoli di ciò e incoraggiare gli sviluppatori a utilizzare il database senza livelli di astrazione di alto livello. l'astrazione del database è un mito, orm è una bugia.
BACIO
i nuovi arrivati di solito vogliono applicare tutte quelle migliori pratiche in circolazione, impostare standard di codifica, utilizzare tutte le belle catene di strumenti, qualunque cosa. funziona per alcuni sviluppatori, ma alcuni si imbatteranno in un blocco mentale se le cose sono troppo rigide. unit test e scm è davvero un must, ma qualcuno che non conosce test di unità ha davvero bisogno di imparare il suo valore prima di amarlo. non esagerare, applicare le pratiche passo dopo passo e vedere come funziona. KISS si riduce anche al codice. a volte il modo migliore per risolvere un problema difficile è risolverlo in modo errato. hai bisogno di un algoritmo di sei gradi di separazione ? scegli alcuni amici a caso. puoi creare un'applicazione completa attorno ad essa, con logica errata. se alla fine il cliente decide di abbandonarlo, tutti risparmiano un sacco di soldi.
agile
conoscere metodologie agili, programmazione estrema, scrum, ecc. ci sono molti libri là fuori. qualsiasi libro renderà la tua squadra migliore, ma è il migliore per coinvolgere ogni compagno di squadra.