Рассуждения о задачах разработчика
В сложных проектах, одной из ключевых долгосрочных целей становится выявление трёх множеств задач:
- Актуальные задачи (#1)
- Актуальные задачи, которые стоит решить (#2)
- Актуальные задачи, от которых стоит отказаться (#3)
Выявление происходит в результате трёх процессов:
- Формирования множества #1, в результате всё большего проникновения в суть проблемы и отбора задач
- Формирования множества #2 на базе множества #1, в результате выбора наиболее привлекательных задач
- Формирование множества #3 из множества #2, путём отбрасывания задач, решение которых бесполезно или контрполезно.
Например, мы ставим задачу увеличения продаж.
Далее выявляются 2 варианта решения:
- повышение цены — упор на элитность
- понижение цены — упор на доступность
Эти варианты являются самостоятельными задачами (X и Y).
Каждая из них может оказаться продуктивной или нет, возможно даже, что они обе были бы продуктивными. Однако очевидно, что они несовместимы.
Решая задачу X, мы делаем контрполезной задачу Y
Проект создания удобного фреймворка и CMS — сложный проект.
Множество #1 весьма велико: конфигурации, роутинг, парсинг, безопасность, валидация, система пользователей, механизмы расширений, кеширование и многое другое. Рассмотрим задачу «Поддержка множества сайтов одной копией CMS». Сокращённо — мультисайтовая CMS.
Эта задача является актуальной — она даёт определённые преимущества.
Однако далее, неизбежно выявляются некомпенсируемые недостатки: резкое усложнение внутренних связей, особенно в вопросе конфигураций, значительное усложнение пользовательского интерфейса CMS и т.п.
Создатели Bitrix выбрали усложнение из-за своей системы продаж: каждая копия CMS оплачивается отдельно. Действительно, конечные цены, различающиеся в разы, — немалый аргумент в пользу выбора мультисайтовой CMS. Но что если вы создаёте свободное ПО или ведёте иную маркетологическую политику?
Не окажется ли, что для вашего проекта убытки от решения этой задачи перевесят выгоду?
К какому множеству мы отнесём задачу «Поддержки множества сайтов (приложений) одной копией фреймворка»?
Сокращённо — мультисайтовый фреймворк.
Эта задача является актуальной — она даёт определённые преимущества.
Сокращение количества файлов. Общая точка конфигурации для всех наших сайтов на хостинге. Аргументы За весьма весомы.
Однако, и тут есть подводные камни. Непопулярная деталь: нам гораздо сильнее нужна общая точка конфигурации между приложением и CMS. А этот принцип противоречит обозначенному.
Другие контраргументы:
- при повреждении директории фреймворка «полетят» все сайты, а не один
- вопросы конфигурирования резко усложняются
- пути становятся неопределёнными (в отличие от их определённости в схеме: один сайт / один фреймворк / общая корневая директория), работа с ними становится непрозрачной
- количество общих модулей будет быстро возрастать, приводя к значительным затруднениям в разработке и поддержке
Не окажется ли, что для вашего проекта выгоднее отказаться от концепции мультисайтового фреймворка?
Автор: Клешнин Иван
Полезное
- Подсветка php-кода для сайта
- Сколько зарабатывают веб-разработчики?
- Рассуждения о задачах разработчика
- Правила работы с UTF-8
- Подходы к реализации меню
CMS MODx
CMS MODx — админка
PHP
- Слияние массивов в PHP
- Задачки на знание PHP для начинающих
- Unable to load dynamic library php_curl.dll
- Изображение [] не может быть показано, так как содержит ошибки.
БД
JS, jQuery
Партнёрам по цеху
Copyright © 2008 scabbiaza.net
PHP-программист: программирование сайтов, интернет-магазинов, порталов