Эрудиция проектировщика, ручка и бумага, внимание к деталям
Привет. За неделю написалось три статьи. Ниже самая важная и фрагменты двух других.
Эрудиция проектировщика. Если сайту нужен форум, постарайтесь не писать его «с нуля»
У
проектировщика есть преимущество перед другими разработчиками: он
знает, как устроен сайт «на глубине». Работая с моделями данных, он
замечает такие особенности будущей системы, которые могут не разглядеть
даже программисты при написании кода. Это качество позволяет подбирать
платформу и компоненты веб-приложения на ранних этапах разработки.
Я говорю о вполне конкретных вещах: если проектировщик знает
возможности современных систем управления контентом (CMS), форумов
(BBS), блоговых движков, фреймворков, библиотек, шаблонов, даже языков
программирования и систем управления базами данных (СУБД), он нередко
поможет команде сэкономить месяцы(!).
Когда я был начинающим PHP-программистом, мне казалось, мир у моих
ног, и за год —два я напишу «с нуля» собственный форум, и свою CMS, и
даже генератор веб-интерфейсов для управления базами данных, чем-то
похожий на PHPMyAdmin. В те времена английский Интернет казался мне
совершенно ненужным.
Я знал о форуме PHPBB и что-то слышал о Smarty. Этого казалось
достаточно. Но однажды «выглянул из русского угла», и с тех пор на меня
сыплются всевозможные PHP-фреймворки и web-based CRM-системы.
Вы наверняка видели сайты, сделанные из форумов: один раздел
отводится под новости, другой — под файловый архив, третий — под сам
форум. Реализация обычно хромает, но идея сделать сайт-не-форум из
форумного ПО заслуживает внимания.
Если вы ориентируетесь в среде open-source софта для создания
сайтов, часто уже через пару дней после активных обсуждений будущего
интернет-проекта в голове появляются возможные сплавы.
Нужен блог с полноценным форумом? Так это же WordPress + BBPress.
Хорошей практикой для веб-разработчика по-моему является постоянное
изучение существующих продуктов. Что-нибудь вроде «два новых
инструмента каждый месяц».
За
несколько лет программное обеспечение эволюционировало до такой
степени, что сейчас с его помощью миллион разных вещей можно делать
быстрее и качественнее, чем без компьютера. Но множество задач
по-прежнему проще решается классическими методами. Мне, к примеру,
набросать несложную блок-схему на бумаге проще, чем в Visio.
Причина
понятна: когда я не использую программу, мне не нужно думать о том, где
взять палитру с подходящими блоками, как увеличить размер шрифта до
читабельного состояния, и почему стрелки, связывающие элементы схемы,
рисуются таким причудливым образом.
Рисовать эскизы страниц сайта на бумаге тоже очень удобно. Зачастую веб-дизайнеры так и поступают.
Проектирование
системы адресации страниц сайта часто не выделяется в качестве
отдельной задачи. Имена придумываются на ходу и в конечном итоге редко
образуют стройную систему. Программисты всё переписывают и переписывают
код контроллера, а время идет.
Ниже описан пример проектирования системы адресации на примитивном
уровне. Впрочем, я уверен, многим сайтам даже такое планирование
поможет стать лучше.