Наводим порядок: как организовать работу в ходе создания сайта. (Часть 1)

Немного не по теме

Заручившись согласием ilusha_sergeevich мы планируем размещать на Хабре переводы некоторых статей, ссылки на которые он приводит в публикациях «Несколько интересностей и полезностей для веб-разработчика» в разделе «Западные мысли или что стоило бы перевести на Хабре». На самом старте этого начинания мы хотим поинтересоваться у сообщества о степени его целесообразности (опрос в конце статьи).

Собственно, сам текст

К сожалению, мы использовали слово «организовать» в названии. «Тушите свет» — это, вероятно, то, о чем подумали многие. Организованность – это немного скучно, но крайне важно. Возможно, стоит рассмотреть это понятие в контексте.

Давайте представим, что мы делаем сайт для модного арт-кафе «Beat». Это атмосферное место с картинами 20-х годов на стенах, живым джазом и богатым покровителем, но у них все еще нет собственного сайта. Они нанимают вас, чтобы исправить ситуацию. Как талантливый дизайнер, вы уверены, что сможете создать фантастический сайт, но у них есть множество идей о функционале и вы не совсем уверены в том, как организовать все файлы, необходимые для вашего сайта.

Они хотят иметь возможность самостоятельно редактировать наполнение, загружать фотографии, размещать еженедельные сообщения в блоге и заливать новый контент. Также они просят подключить твиттер, чтобы их сообщения автоматически транслировались в сеть. Им необходимо приложение для iPhone и Android, потому что их клиенты используют смартфоны, и они хотят предоставить им возможность просматривать блог и меню прямо с телефона. Кроме того, им нужны клиентские отзывы с возможностью добавлять изображения, ссылки и др.

«Facebook для ресторанов» говорят они вам. Возможно, на этом этапе, вы пошлете их куда подальше, но вы поняли идею. Возможно, в прошлом вы пытались создать более сложный сайт и принялись за дело с похвальным энтузиазмом, но в итоге возник кошмарный беспорядок, с которым просто нереально справиться. Ваш клиент перестал проявлять интерес, добавлять новые возможности стало крайне проблематично, вы начали работать по ночам, чтобы найти ошибки, но вы даже не смогли найти нужный файл. После такого проекта нетрудно понять актуальность хорошо организованного процесса создания файла.

Общие принципы

Все должно быть просто и понятно. Не переусердствуйте. Некоторые сайты и базы выглядят так, словно их создатели получают удовольствие от попытки создать идеальный порядок. С практической точки зрения, как правило, с такими структурами невозможно работать.

Если вы начинаете создавать десятки (или сотни) крошечных файлов, каждый из которых содержит не более чем небольшой класс или функцию, вы перестарались. Если ваши файлы и папки имеют слишком абстрактные или непонятные имена, возникает путаница. Если код проверки логина администратора сайта хранится в файле под названием auth.php с расположением WebsiteData/Items/GenericUser/AdminUser/Code/ то вы совершили обе ошибки. Почему не просто функция check_login () в файле Code/users.php?

Не смешивайте различные аспекты вашего сайта. Разделяйте элементы функционала и разные языки. Недавно я имел дело с проектом, в котором разработчик использовал CSS, ASP VB Script, JavaScript, HTML, SQL и все это в ужасном беспорядке в одном плохо структурированном файле. Я не выдумываю.

Один размер не подходит всем

Глубина иерархии папок и количество отдельных файлов должно иметь смысл для размера проекта. Учитывайте это.
Вот краткий список некоторых типичных размеров сайта и возможной структуры:

1 страница

Создайте папку для изображений, файлы CSS, JavaScript, для содержимого и для кода. Определенно не стоит создавать шаблоны для содержимого, если у вас нет определенных требований на этот счет.

5 страниц

Папка для изображений, по одному файлу для CSS, JS, кода. Рассмотрите возможность создания нескольких файлов с содержимым в отдельной папке. Опять же, не заморачивайтесь с шаблонами, достаточно заготовок для самых частоиспользуемых элементов сайта.

20 страниц

Папка для изображений, еще одна папка для закачек и других файлов, связанных с проектом («Активы»), папка для содержимого (возможно, стоит задуматься об использовании CMS). Ваши JavaScript, CSS и другой код, скорее всего, доросли до того, чтобы получить отдельную папку. Называйте их очевидно: css/, javascript/,code/.

Убедитесь, что все файлы лежат в соответствующих папках. У вас не должно быть постороннего файла .js, скажем, в папке «Содержимое», просто потому что это удобно. Если ваши шаблоны или код не позволяют организовать ваши файлы, так как вам нужно, то сделайте рефакторинг кода, чтобы заставить его работать.

Избегайте помещать CSS, шаблоны, HTML, рабочие изображения или JavaScript в «активах» / («разном», «ресурсах» или как еще вы это называет). Эти файлы являются частью кода, о котором ваш клиент не должен думать, а «активы» — папка для файлов, связанных с проектом. Сделайте это своим правилом и безоговорочно следуйте ему.

20 страниц + веб-приложение

Почти то же, что сказано выше. К этому моменту весь ваш код должен лежать в отдельной папке. Убедитесь, что это не та папка, к которой Apache может случайно открыть доступ, когда какие-нибудь script-kiddie будут пытаться атаковать ваш компьютер.

100 страниц

Вы должны использовать хорошую CMS для вашего контента. Не имеет значения, будет ли это система, основанная на базах данных или файловая CMS. При выборе второго варианта вам стоит убедиться, что файлы содержимого достаточно хорошо организованы, и что вы сможете указать метаданные для отдельных заголовков, описаний, и т.д. Иначе вам придется потратить много сил и времени на SEO.

Скорее всего, ваш сайт уже содержит целый ряд различных разделов. Вам стоит задуматься о том, чтобы разместить CSS, JS, изображения и шаблоны в отдельные папки, структура которых совпадает со структурой сайта. Использование Sass или LESS тоже неплохая идея на этой стадии.

2,500+ страницы

Вы должны обязательно думать о найме людей, таких как контент-редактор, дизайнер, программист и SEO эксперт. Вы также должны управлять контентом с помощью CMS на основе баз данных, если этого еще не сделали. Вы станете менеджером, и будете иметь дело с работой, проделанной другими людьми. Убедитесь, что вы в состоянии проверить и отредактировать материал прежде, чем он уйдет в продакшн.

100,000,000+ страниц

Вы – Майкрософт и вы должны знать, что вы делаете.

Большинство малых сайтов очень быстро вырастают до 20+ страниц. Достаточно добавить FAQ, несколько статей и пару продуктов. Поэтому имеет смысл даже маленькие проекты структурировать так, как будто это сайт с 20-ю страницами, если вы не уверены, что это одноразовый сайт. Планируйте плавный рост с постепенным увеличением страниц.

Стоит ли размещать переводы статей «Западные мысли или что стоило бы перевести на Хабре»?:

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Проголосовало 43 человека. Воздержалось 6 человек.

Автор:

Источник

Оставить комментарий