Занимался данным вопросом. Но только вопросом- до кодинга дело не дошло. Ни знания ни сил ни времени. При этом спорная отдача от реализации.
Для самописной цмс найдётся довольно много плюсов и минусов. Главное что мне стало ясно- надо или писать простой проект или подходить с полным комплектом знаний, умений точно зная что и как делать. про второй пункт –
Во первых первоначальные знания – это чтение и знание минимум книг
Совершенный код, Рефакторинг. Улучшение существующего кода , Приемы объектно-ориентированного проектирования. Паттерны проектирования. Это базис, больше - лучше , но там уже будут идти больше специфичные приёмы.
Просто вебприложения уже перестают быть допотопными- когда даже с небольшими знаниями, без предварительной работы по организации структуры, документации и прочее прочее можно было состряпать неплохой скрипт. Я не говорю что сейчас 100% популярных и хорошоработающих скриптов \ программ делаются не на коленках. Тут уместна фраза от деда Феди, которую я увидел по тв – он построил самолёт из мусора на свалке, и хвастался что знаний в аэродинамике нет и вообще только школа и пту. И намекал что 100500 законов что ввели учёные, инженеры и прочие- для него полный бред.
Вывод- чтобы сделать что-то не нужно иметь глубоких знаний, но нужны радикально прямые руки.
А вот смог бы этот дед сделать пассажирский боинг, и лучше поставить сразу на поток? Нет. Вот для этого ему бы понадобились все эти глубокие знания .
Так что считаю выработанные приёмы по программированию\проектированию и тп – просто нельзя игнорировать.
Нужно знание велосипедов и умение их находить\изменять. Хорошо подходят Как уже говрили- существующие движки и фв . Не только на большие классы типа плагинаций и роутинга, но и небольшие типа вычисление даты, обработки текста…
Теперь о задачах.
Вообще 50% работы- это как раз должно быть разработка ТЗ и плана, как это должно работать. Предлагали сделать ТЗ как можно объёмным- верно.
Затем открываем и смотрим на интерфейсы всех готовых систем, которые подходят для этого тз и думаем как переделать конкретно под каждую задачу в тз. Можно посмотреть по форумам, какие движки и за что критикуют.
Надо подумать и о верстальщиках и о шаблонзаторе. Без шаблонов цмс далеко не поедет.