В:Что такое CMS? О:CMS - это набор скриптов,осуществляющий управление информацией на сайте,её обработку и представление пользователю в заданном виде.Иногда CMS называют жаргонным словом "движок". В:Что должна уметь CMS? О:CMS должна позволять: --Обновление и поддержка сайта силами человека, не разбирающегося в тонкостях веб-разработки. --Создавать и редактировать любые типы страниц:прайсы,ленты новостей, архивы статей,каталоги ссылок.... --Быстро и легко менять дизайн на всех страницах сайта. --Работать с любыми популярными БД и/или файлами. --Не зависить от конкретной платформы(Win/*nix) --Создавать резервные копии информации на случай сбоя В:я хочу спроектировать свой движок.С чего мне начать? О:С ручки и бумагиНеобходимо для начала описать все функции, которые нужн реализовать в системе.После этого надо продумать структуру кода. Код должен быть легко масштабируемым и производительным.После этого можно продумать и набросать структуры таблиц БД или размещение файлов. В:Какой язык лучше выбрать для реализации системы? О:Выбирать придётся только между Perl и PHP.Эти языки поддерживаются почти всеми без исключения хостерами.Для разработки небольших/средних систем целесообразно выбрать PHP.Этот язык довольно прост и надёжен,но его производительность несколько ниже,сем у Perl. Perl же стоит выбрать при разработке больших веб-приложений,из-за большей скорости работы.к примеру,цикл на Perl работает в 70раз быстрее, чем цикл на ПХП. В:Как лучше всего структурировать код? О:Один из самых лучших вариантов структурирования - модульная структура. То есть,создаётся ядро,которое по мере надобности подгружает в себя необходимые модули.Ядро же должно определять,какой модуль необходим в данный момент,передавать управление модулю,получать результаты его работы и накладывать дизайн.К примеру,можно сделать файл index.php и задать переменную mod.После этого с помощью переключателя switch и команды include включать модули в код. В:Как реализовать простое и лёгкое изменение дизайна? О:Один из самых простых вариантов - создать простой ХТМл файл со специальными миникомандами(например, [title]!TITLE![/title])вместо контента.После этого файл нужно прочитать ядом и воспользоваться функций strreplace(или что там захочется) и заменить команду !TITLE! на конкретный заголовок,возврщаённый модулем В:Какие модули должны присутсовать в движке? О:Набор модулей в каждом случае свой,но кое что необходимо довольно часто. Например,модули для отображения ленты новостей.прайса,статических разделов(типа Контакты и История Фирмы),архива статей,сбора статистики,опросов,гостевой книги. Модули должны работать в любом сочетании,не конфликтовать между собой и быть полностью автономными. В:Какие фишки могут быть полезными при разработке? О:Фишек много,но они не всегда нужны.За исклбчением одной - неплохо бы создать библиотеки часто испоьзуемых функций.например,функции,проверяющие валидность мыла,аси и проч... Не помешают общие классы доступа к БД или работы с файлами Очент полезная фича - документирование собственно кода)Все разработанный функции надо описывать в документации,а так же указывать.какой скрипт за что отвечает. Это часто помогает не насажать тупых ошибок Собственно,вот основные вопросы,которые помогут начинающему разработчику.Всё остльное - уже детали)) Автор: webmster_grm aka Stuffer