2012-04-07 25 views
17

Sto sviluppando progetti TYPO3 dal 2006 e i progetti stanno diventando più grandi e più complessi. Configurare un semplice sito CMS con un modulo di contatto e un elenco di notizie è tutto di routine.Come gestire e sviluppare grandi progetti TYPO3?

In questo momento, abbiamo finito un progetto più grande: una piattaforma per una società internazionale con innumerevoli estensioni: Accesso & registrazione, notizie, sfogliare record di database, moduli di contatto dinamiche, indagini & statistiche, funzioni intranet: documento caricare & scaricare, diversi "tweaks" di back-end per modifiche al TCA, ecc.

I project manager si sono arrabbiati con noi sviluppatori, perché a volte, dopo aver terminato la funzione X e successivamente si è impegnata la funzione Y nel server di sviluppo, la funzione X è stata interrotta. Ciò era correlato a impostazioni typoscript, interdipendenze di estensione, errori di versioning o, a volte, errori di programmazione e errori di battitura. So come prendersi cura di questi ultimi, ma in generale:

Dalla tua esperienza:

Come possiamo sviluppare un sistema a prova di errore di TYPO3, dove tutto funziona in mano e le estensioni don si mettono sulla loro strada? In altre parole: In che modo possiamo proteggere e isolare le funzionalità (estensioni) ed evitare tali problemi di interdipendenza?

Stiamo lavorando in un team di sviluppo con due sviluppatori, e abbiamo già utilizziamo:

  • Subversion Repository
  • server di DEV locale per lo sviluppo & testare
  • file di configurazione TypoScript esterne, divisi in singoli file per ogni estensione

Modifica f o Bountyhunters:

Quello che sto cercando è un best-practice-sintesi che potrebbe includere questi argomenti:

  • generali abitudini del flusso di lavoro
  • generali di codifica abitudini
  • affidabilità della nostra eversione impegna (o Git)
  • Unit testing (PHPUnit, selenio?)
  • Deployment (non ho ancora capito come la distribuzione automatizzata può lui noi lp)
  • TypoScript migliori pratiche
+0

Utilizzare uno dei tanti sistemi di distribuzione automatica. Dai un'occhiata agli archivi di mailing list di inglese e dev. I thread simili appaiono frequentemente. – pgampe

+0

Grazie - sfortunatamente, non ho trovato nulla relativo alla "distribuzione automatica" nella mailing list in inglese, ma guarderò oltre. Potete consigliare un sistema per PHP/TYPO3? Consideriamo già l'utilizzo di PHPUnit e Selenium per i test, suppongo che anche questo potrebbe essere un miglioramento importante. – Mateng

+0

Dai un'occhiata qui: https://usetypo3.com/good-practices-in-projects.html – Daniel

risposta

24

I problemi che potremmo trovare in grandi progetti TYPO3 non sono molto diversi da qualsiasi progetto di sviluppo.

pratiche generali:

comune TYPO3:

Ulteriori riferimenti:

estensioni potrebbero aiutare a gestire complessa installazione TYPO3:

Usa gestione moderna metodologia di progetto & strumenti

  • Scrum, Kanban, principi developement magre
  • Bugtrackers come Redmine, Trac

Libri:

+0

Sembra un'estesa collezione, grazie. In realtà utilizzo raramente le costanti, piuttosto l'impostazione: un dettaglio appreso.Hai usato personalmente l'estensione phpunit, che è menzionata nelle diapositive di Oliver Klees? – Mateng

+0

Personalmente, lo sto usando ogni volta, quando ho alcuni progetti/estensioni complesse da sviluppare. –

+1

AGGIORNAMENTO: Aggiunto un elenco di estensioni consigliate per la gestione dell'installazione di TYPO3 di grandi dimensioni –

3

ho assolutamente caldamente iniziare a utilizzare PHPUnit per unit test, ma ricordate unit testing è davvero su come si crea il codice, in primo luogo, non è di solito qualcosa da aggiungere in seguito. Ma ovviamente, meglio tardi che mai.

È consigliabile configurare un server di build come jenkins/hudson o atlassian bamboo. Quest'ultimo è abbastanza carino e si integra con lo studio zend che a mio parere è la scelta migliore quando si sviluppa in PHP.In generale i prodotti atlassian sono ampiamente utilizzati per progetti software. (Jira + confluenza + greenhopper in particolare)

+0

Serbatoi per il tuo contributo. Come sviluppiamo in Netbeans, Bamboo è ancora una buona scelta in quanto non esiste ancora un plug-in Bamboo Netbeans? Sarebbe efficace utilizzarlo senza l'integrazione di Netbeans? Inoltre, è una configurazione di questo tipo consigliata per ambienti TYPO3? – Mateng

+0

Di sicuro. Bamboo è un prodotto standalone e l'integrazione consente di ottenere commenti e indicazioni su dove la compilazione fallisce direttamente nel codice. Ovviamente puoi vedere tutto questo sulla pagina web e penso addirittura che abbiano un'app per il cellulare. Non credermi sulla parola, dai un'occhiata ai loro video. – jornare

2

Vorrei anche consigliare l'impostazione di phpunit su jenkins - vedere come modello, anche se ho letto un buon feedback su Teamcity. Quindi, a seconda del codice che si scrive, si eseguono i test delle unità di installazione (per codice raw php, forse un po 'di mock), test di integrazione (connettività API e modulo) e test di sistema (selenio).

Una volta eseguito dopo ogni generazione, si può essere certi che funzioni almeno coperte. Il problema è che passerai più tempo a scrivere test e il loro supporto, oltre a pensare al codice testabile. Ricorda anche che non puoi coprire tutto - non è questo il punto. Devi avere percorsi critici coperti.

Problemi correlati