Как управлять и разрабатывать большие проекты TYPO3?
Я разрабатываю проекты TYPO3 с 2006 года, и проекты становятся все более сложными. Настройка простого сайта CMS с формой контакта и списком новостей - это обычная процедура.
В настоящий момент мы закончили крупный проект: платформа для международной компании с бесчисленными расширениями:
Вход и регистрация, новости, списки записей базы данных, динамические формы контактов, опросы и статистика, функции интрасети: загрузка и загрузка документов, несколько бэкэндов "настроек" на изменения TCA и т.д.
Менеджеры проекта расстроились у нас разработчиками, потому что иногда, после того, как мы закончили функцию X и позже передали функцию Y серверу dev, функция X была сломана. Это было связано с настройками typoscript, взаимозависимостями расширения, ошибками версий или иногда простыми ошибками программирования и опечатками.
Я знаю, как позаботиться о последнем, но в целом:
Из вашего опыта:
Как мы можем разработать систему ошибок в TYPO3, где все работает в руке и расширениях, не мешают? Другими словами: Как мы можем обеспечить и изолировать функциональные возможности (расширения) - и избежать этих проблем с интервенцией?
Мы работаем в команде DEV с двумя разработчиками, и мы уже используем:
- Репозиторий Subversion
- Локальный сервер DEV для разработки и тестирования
- Файлы конфигурации внешнего typoscript, разделенные на отдельные файлы для каждого расширения
Изменить для Bountyhunters:
То, что я ищу, - это лучшая практика, которая может включать следующие темы:
- Общие привычки рабочего процесса
- Общие привычки кодирования
- Надежность нашей подрывной операции совершает (или Git)
- Модульное тестирование (PHPUnit, Selenium?)
- Развертывание (я еще не понял, как автоматическое развертывание может
помогите нам)
- Рекомендации по использованию Typoscript
Ответы
Ответ 1
Проблемы, которые мы могли бы найти в крупных проектах TYPO3, не сильно отличаются от любого проекта разработки.
Общие практики:
Общие практики TYPO3:
Дополнительные ссылки:
Расширения могут помочь в управлении сложной установкой TYPO3:
Использовать современные методологии и инструменты управления проектами
- Scrum, Kanban, принципы бережливого развития.
- Bugtrackers как Redmine, Trac
Книги:
Ответ 2
Я абсолютно рекомендую начать использовать PHPUnit для модульного тестирования, но помните, что модульное тестирование действительно связано с тем, как вы создаете код в первую очередь, обычно не то, что вы добавляете позже. Но, конечно, лучше поздно, чем никогда.
Вам следует рассмотреть возможность создания сервера сборки, например, jenkins/hudson или atlassian bamboo. Последнее довольно приятно и интегрируется с zend studio, что, на мой взгляд, является лучшим выбором при разработке в PHP. В целом продукты atlassian широко используются для программных проектов. (Jira + confluence + greenhopper в частности)
Ответ 3
Я также рекомендовал бы настроить phpunit на jenkins - см. http://jenkins-php.org/ в качестве шаблона, хотя я прочитал хорошие отзывы о Teamcity. Затем, в зависимости от кода, который вы пишете, вы устанавливаете модульные тесты (для сырого кода php, возможно, немного с mocks), интеграционных тестов (API и подключение к модулю) и системных тестов (селен).
Как только вы запустите его после каждой сборки, вы можете быть уверены, что работает хотя бы покрытая функциональность. Однако проблема заключается в том, что вы будете тратить больше времени на написание тестов и их поддержку, а также на анализ тестового кода. Также имейте в виду, что вы не можете охватить все - это не главное. У вас должны быть критические пути.