Как управлять и разрабатывать большие проекты TYPO3?

Я разрабатываю проекты TYPO3 с 2006 года, и проекты становятся все больше и сложнее. Настройка простого сайта CMS с контактной формой и списком новостей-это рутина.

прямо сейчас мы закончили более крупный проект: платформу для международной компании с бесчисленными расширениями: Вход и регистрация, новости, список записей базы данных, динамические контактные формы, опросы и статистика, интранет функции: загрузка и загрузка документов, несколько бэкэнд "твики" в TCA модификации и т. д. .

руководители проектов расстроились на нас, разработчиков, потому что иногда, после того, как мы закончили на функции X и позже зафиксировали функцию Y на dev-сервере, функция X была нарушена. Это было связано с настройками typoscript, взаимозависимостью расширений, ошибками управления версиями или иногда простыми ошибками программирования и опечатками. Я знаю, как позаботиться о последнем, но в общем:

из своего опыта:

как мы можем разработать систему защиты от ошибок в TYPO3, где все работает под рукой и расширения не мешают? другими словами: Как мы можем обезопасить и изолировать функции (расширения) и избегать этих вопросов interdepency?

мы работаем в команде разработчиков с двумя разработчиками, и мы уже используем:

  • Репозиторий Subversion
  • локальный сервер DEV для разработки и тестирования
  • конфигурация внешнего typoscript файлы, разделенные на отдельные файлы для каждого расширения

изменить для Bountyhunters:

то, что я ищу,-это резюме лучшей практики, которое может включать следующие темы:

  • общие привычки рабочего процесса
  • общие привычек
  • надежность наших диверсионных коммитов (или Git)
  • модульное тестирование (PHPUnit, Selenium?)
  • развертывание (я еще не понял, как автоматизировано развертывание может помогите нам)
  • чем лучшие практики

3 ответов


проблемы, которые мы могли бы найти в крупных проектах TYPO3, не сильно отличаются от любого проекта развития.

общие рекомендации :

общие практики TYPO3:

Дополнительные ссылки :

расширения могут помочь управлять сложной установкой TYPO3 :

используйте современные методологии и инструменты управления проектами

  • Scrum, канбан, принципы бережливого развития
  • Bugtrackers как Redmine, Trac

книги :


Я абсолютно рекомендую начать использовать PHPUnit для модульного тестирования, но помните, что модульное тестирование-это то, как вы создаете код в первую очередь, а не то, что вы добавляете позже. Но, конечно, лучше поздно, чем никогда.

вы должны рассмотреть возможность создания сервера сборки, такого как jenkins/hudson или Atlassian-это бамбук. Последнее довольно приятно и интегрируется с Zend studio, что, на мой взгляд, является лучшим выбором при разработке на PHP. В генерал компании Atlassian продукты широко использованы для проектов программного обеспечения. (В частности, Jira + confluence + greenhopper)


Я бы также рекомендовал настроить phpunit на jenkins-see http://jenkins-php.org/ как шаблон, хотя я читал хорошие отзывы о Teamcity. Затем, в зависимости от кода, который вы пишете, вы настраиваете модульные тесты (для кода raw php, возможно, немного с насмешками), интеграционные тесты (API и подключение модулей) и системные тесты (selenium).

Как только вы запустите его после каждой сборки, вы можете быть уверены, что хотя бы покрытая функциональность работает. Проблема однако вы потратите больше времени на написание тестов и их поддержку, а также на обдумывание тестируемого кода. Также имейте в виду, что вы не можете охватить все - это не имеет значения. У вас должны быть пройдены критические пути.