Кролики - для манулов!

В общих чертах - в рамках очередного восстановления знаний по php решил написать CMS с нуля... Проблема - ни разу не занимался такой разработкой целиком самостоятельно и не могу правильно составить Тех Задание - т.е. пройти нулевой уровень разработки.

Основные идеи - модульная расширяемость функционала, возможность работы как с БД (для начала MySQL) так и с кешем, W3C корректный код на выходе, WYSIWIG редактор, естественно, поддержка CSS...

Если у кого-то вдруг есть ТЗ реального проекта, которое не является секретным и которым можете поделиться - буду благодарен. Также буду благодарен любым советам по делу.



@темы: MySQL, CSS, PHP, Веб-дизайн

Комментарии
26.02.2008 в 23:48

Торговец знаниями
Я сильно сомневаюсь насчёт ТЗ реального проекта. Просто потому, что обычно в договорах существует пункт о неразглашении.
А вообще ТЗ сводится к подробному описанию того, что должна выполнять система на всех уровнях. Если есть очень большое желание писать технически правильно, то можно найти ГОСТ на ТЗ.
27.02.2008 в 19:19

Клиа.
у меня есть опыт написания подобной cms. опять таки без опыта, с нуля и тп.
единственное что - mysql не использовался. все на xml файлах. так оказалось удобнее и портабельнее, чем создавать на каждом хосте по базе.

W3C корректный код на выходе
А вот с этим непонятки - какой именно w3c? xhtml, html, xml+xslt али что-то еще.


27.02.2008 в 22:02

Будем же учиться хорошо мыслить - вот основной принцип морали (с) Паскаль
Человек без лица Вообще, на практике получается, что техническое задание требуется для урегулирования взаимоотношений между заказчиком и исполнителем, а так же является руководством для работы исполнителя. В вашем же случае, когда вы и заказчик и исполнитель, а уровень разработки ограничивается личным использованием, тз можно свести к банальному изложению своих мыслей и представлений о цмс на бумаге (в файле) - для собственного удобства. Лично я в таких ситуациях просто попунктно расписываю, что я хочу видеть примерно, после этого проектирую структуру бд и ключевые алгоритмы ядра, а дальше - чистое творчество. Другой разговор, если вы планируете разработку цмс коммерческого уровня. Но тут я вам сразу могу сказать что игра не стоит свеч. В одиночку достойную систему разработать практически невозможно.
27.02.2008 в 23:32

Кролики - для манулов!
в принципе, разобрался с основными вопросами... Сегодня нашел-таки опытного человека.)

Остался один важный вопрос - как лучше реализовывать шаблоны при модульной структуре построения CMS... Потому что у большинства известных методов есть те или иные существенные проблемы.

barsy ну, понятно, что W3C корректность это пожелание для себя) а вообще xhtml, я думаю.

М... Про xml - что-то минусов в таком подходе на первый взгляд больше, чем плюсов. ИМХО.

[L]FVA[/Lчн] Ну, я думаю, что опыт написания коммерчески пригодных программ есть... А CMS в принципе не самая сложная из возможных задач)

А ТЗ нужно для правильного программирования - поэтапного. Когда в начале есть план, потом четкая схема (не обязательно блоксхема), но желательно правильная алгоритмика с учетом специфики средств решения задачи (т.е. среды и языка программирования). Потом - модульное написание кода, проверка модулей и отладка взаимодействия между ними. Дальше - тестирование, исправление ошибок. Сроки и интенсивность тестирования зависят от области применения проекта, естественно. Если это фриварный опенсурс - то первичное тестирование пару дней, а потом пусть другие баги ищут)

З.Ы. Естественно я задумываюсь о подключении кого-то еще к проекту на уровне сложных модулей - типа форума, гостевой, еще может галерею получше написать, чем та что уже есть написанная мной пару лет назад...
28.02.2008 в 00:55

Торговец знаниями
Человек без лица, А ТЗ нужно для правильного программирования - поэтапного.
экстремальное программирование так же является одним из методов решения задачи. В этом случае об этапности можно сразу забыть. :)
28.02.2008 в 04:22

Клиа.
разбивать все на как можно более мелкие и независимые части )
28.02.2008 в 07:57

Кролики - для манулов!
tven экстремальное программирование мне уже порядком надоело)

barsy черезчур мельчить не стоит - большое количество уровней вложенности сильно усложняет оптимизацию...)
28.02.2008 в 08:03

Клиа.
нет. достаточно одного-двух уровней вложенности на расстоянии от ядра.

class, extends, implements более чем достаточно.
28.02.2008 в 10:01

Будем же учиться хорошо мыслить - вот основной принцип морали (с) Паскаль
Человек без лица Для правильного программирования нужны только мозги, остальное - дополнения. Когда пишешь проект сам и для себя, ТЗ это лишь один из способов упорядочивания мыслей. При командной же работе, ТЗ - это документ регулирующий взаимодействие между членами команды, описывающий задачи для каждого из членов, а также, являющийся эталоном при сдаче проекта. Именно соответствие полученного и описанного в ТЗ является определяющим в ответе на вопрос заказчика "Выполнил ли исполнитель условия договора".

CMS в принципе не самая сложная из возможных задач
Цмс бывают разные. Если вы собираетесь писать именно систему управления содержанием, или небольшую систему построения сайта, с небольшой гибкостью и отказоустойчивостью, тогда конечно это все реально сделать. Первая версия phpNuke была написана одним человеком за 380 часов. Вопрос в том, что система эта получилась... ммм... небезопасная, мягко говоря и кривая.

Если это фриварный опенсурс - то первичное тестирование пару дней, а потом пусть другие баги ищут именно из-за такого подхода так много взломов такого рода cms. если вы берете на себя ответственность на создание системы для других пользователей, делать это надо полноценно, а не пару дней на тестирование.
class, extends, implements более чем достаточно. +1
28.02.2008 в 21:33

Кролики - для манулов!
barsy вот и я так думаю) А про много уровней - товарищ тут написал CMS за месяц...) Проблема в том, что идеи шли по ходу и все разбивалось на очень маленькие кусочки - с большим количеством вложений и в итоге... Оно работает конечно, но оптимизировать код тяжело и производительность весьма и весьма паршивая. С другой стороны, на первый взгляд безопасность весьма приличная.


FVA ТЗ нужно в основном чтобы понять, а какой еще функционал (на уровне ядра, а не модулей) может пригодиться. (Не оставляет ощущение, что я что-то забыл)

З.Ы. я лично пока пишу код исходя из соображений безопасности, а не красоты/скорости. Благо оказалось, что php почти не забыт, за пару лет, что на нем ничего не писал.

На разработку первой версии основной части (ядро и модули взаимодействия с кешем и базой данных, авторизации, а также модули работы с шаблонами, взаимодействия с администратором, пользователем) собираюсь потратить порядка 300 часов плюс-минус естественно.
28.02.2008 в 21:41

Будем же учиться хорошо мыслить - вот основной принцип морали (с) Паскаль
Человек без лица Я и говорю - в данном случае эло способ упорядочивания мыслей. =)

28.02.2008 в 22:22

Клиа.
я иногда циклы через iterator делаю.. но обычно мне лень :)

Расширенная форма

Редактировать

Подписаться на новые комментарии
Получать уведомления о новых комментариях на E-mail