Кролики - для манулов!
В общих чертах - в рамках очередного восстановления знаний по php решил написать CMS с нуля... Проблема - ни разу не занимался такой разработкой целиком самостоятельно и не могу правильно составить Тех Задание - т.е. пройти нулевой уровень разработки.
Основные идеи - модульная расширяемость функционала, возможность работы как с БД (для начала MySQL) так и с кешем, W3C корректный код на выходе, WYSIWIG редактор, естественно, поддержка CSS...
Если у кого-то вдруг есть ТЗ реального проекта, которое не является секретным и которым можете поделиться - буду благодарен. Также буду благодарен любым советам по делу.
А вообще ТЗ сводится к подробному описанию того, что должна выполнять система на всех уровнях. Если есть очень большое желание писать технически правильно, то можно найти ГОСТ на ТЗ.
единственное что - mysql не использовался. все на xml файлах. так оказалось удобнее и портабельнее, чем создавать на каждом хосте по базе.
W3C корректный код на выходе
А вот с этим непонятки - какой именно w3c? xhtml, html, xml+xslt али что-то еще.
Остался один важный вопрос - как лучше реализовывать шаблоны при модульной структуре построения CMS... Потому что у большинства известных методов есть те или иные существенные проблемы.
barsy ну, понятно, что W3C корректность это пожелание для себя) а вообще xhtml, я думаю.
М... Про xml - что-то минусов в таком подходе на первый взгляд больше, чем плюсов. ИМХО.
[L]FVA[/Lчн] Ну, я думаю, что опыт написания коммерчески пригодных программ есть... А CMS в принципе не самая сложная из возможных задач)
А ТЗ нужно для правильного программирования - поэтапного. Когда в начале есть план, потом четкая схема (не обязательно блоксхема), но желательно правильная алгоритмика с учетом специфики средств решения задачи (т.е. среды и языка программирования). Потом - модульное написание кода, проверка модулей и отладка взаимодействия между ними. Дальше - тестирование, исправление ошибок. Сроки и интенсивность тестирования зависят от области применения проекта, естественно. Если это фриварный опенсурс - то первичное тестирование пару дней, а потом пусть другие баги ищут)
З.Ы. Естественно я задумываюсь о подключении кого-то еще к проекту на уровне сложных модулей - типа форума, гостевой, еще может галерею получше написать, чем та что уже есть написанная мной пару лет назад...
экстремальное программирование так же является одним из методов решения задачи. В этом случае об этапности можно сразу забыть.
barsy черезчур мельчить не стоит - большое количество уровней вложенности сильно усложняет оптимизацию...)
class, extends, implements более чем достаточно.
CMS в принципе не самая сложная из возможных задач
Цмс бывают разные. Если вы собираетесь писать именно систему управления содержанием, или небольшую систему построения сайта, с небольшой гибкостью и отказоустойчивостью, тогда конечно это все реально сделать. Первая версия phpNuke была написана одним человеком за 380 часов. Вопрос в том, что система эта получилась... ммм... небезопасная, мягко говоря и кривая.
Если это фриварный опенсурс - то первичное тестирование пару дней, а потом пусть другие баги ищут именно из-за такого подхода так много взломов такого рода cms. если вы берете на себя ответственность на создание системы для других пользователей, делать это надо полноценно, а не пару дней на тестирование.
class, extends, implements более чем достаточно. +1
FVA ТЗ нужно в основном чтобы понять, а какой еще функционал (на уровне ядра, а не модулей) может пригодиться. (Не оставляет ощущение, что я что-то забыл)
З.Ы. я лично пока пишу код исходя из соображений безопасности, а не красоты/скорости. Благо оказалось, что php почти не забыт, за пару лет, что на нем ничего не писал.
На разработку первой версии основной части (ядро и модули взаимодействия с кешем и базой данных, авторизации, а также модули работы с шаблонами, взаимодействия с администратором, пользователем) собираюсь потратить порядка 300 часов плюс-минус естественно.