Как подходить к организации кода для сайта?

Здравствуйте! Не первый раз я сталкиваюсь с этим вопросом. Мне непонятно, как в зависимости от типа сайта, мы подбираем технологию для организации кода. Как понять, какая технология и для какого сайта уместна. И вообще, какие технологии существуют?
Как правильно реализовывать сайты, как правильно разбивать код и какой подход и где используется? Не просто, "а дальше фрейморк" - нет! Для того, чтобы спокойно разобраться в том же фрейморке необходимо глубокое понимание того, как это всё работает. Как ранее разбивался код, использовался подход. Всё зависело от типа сайта(лэндинг, новостной сайт, интернет магазин), или в основе было что-то другое? Какие подходы использовались, какие при этом создавались проблемы, которые способствовали появлению новых подходов. Вы можете ответить, что всё это можно найти в интернете, но для новичка это сложно. В сети нет нормальной статьи/видео по этой теме. Чуть ниже, я напишу просто список непонятных слов, фраз, которые многих вгоняют в ступор.
"подходы разделение кода, шаблонизация, модули, МVC, state, организация кода, биндинг, реактивное программирование, SPA, MPA, Virtual DOM, Нода, Веб-компоненты, Templates, Custom Elements API.” … Что и откуда выходит? Есть ли какие-то блок схемы, на которых это можно увидеть... книги? Можно ли это всё описать одни словом - Паттерны?"
В идеале, если у вас это конечно есть, отлично подошла бы блок-схема, как наглядная демонстрация, что и откуда берётся. Имея такую блок схему, можно было бы с большей лёгкостью двигаться по ней, выучивая каждый блок по отдельности, но уже понимая, куда нужно двигаться и зачем
  • Вопрос задан
  • 495 просмотров
Решения вопроса 3
approximate_solution
@approximate_solution
JS Developer. Angular\React\Vue\Ember
Как подходить к организации кода для сайта?

В зависимости от задач, бюджета, времени и желания заказчика.

Мне непонятно, как в зависимости от типа сайта, мы подбираем технологию для организации кода. Как понять, какая технология и для какого сайта уместна. И вообще, какие технологии существуют?

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

В сети нет нормальной статьи/видео по этой теме. Чуть ниже, я напишу просто список непонятных слов, фраз, которые многих вгоняют в ступор.

В сети есть всё, просто Вы, научившись кататься на велосипеде, пытаетесь сесть на ламборджини, и спрашиваете "а какого хрена тут так много элементов управления, я на велосипеде сидел, и там только педали видел". Всё приходит с опытом разработки. Прыгать с корабля на бал не нужно.

"подходы разделение кода, шаблонизация, модули, МVC, state, организация кода, биндинг, реактивное программирование, SPA, MPA, Virtual DOM, Нода, Веб-компоненты, Templates, Custom Elements API.” … Что и откуда выходит? Есть ли какие-то блок схемы, на которых это можно увидеть... книги? Можно ли это всё описать одни словом - Паттерны?"

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

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

Да, такая блок схема есть. В зависимости от выбранного Вами языка - она называется RoadMap. К примеру вы выбрали себе язык Java или PHP - ваш путь на Java Developer Roadmap или Php developer roadmap.
Ответ написан
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Полагаю, вы должны задать себе несколько вопросов на определённую тему.

Как пользователь будет работать с сайтом? Предполагается больше мобильных устройств? Или десктопных? Пользователь попадет на одну страницу? Или предполагается несколько последовательных страниц? Все страницы однотипны? Или каждая и выглядит и работают по разному? Какой контент должен размещаться? Предполагается ли что пользователь будет периодически возвращаться на эти страницы? Нужен ли доступ offline?

Отвечайте на эти вопросы. А дальше думайте о том, как добиться наилучшей производительности в описанном сценарии. Например, если предполагается Сайт визитка. В этом случае, у вас есть одна или несколько практически идентичных страниц. Весь контент статический. Вероятно пользователи будут часто возвращаться на этот сайт.

  • Так как у нас одна или несколько практически идентичных страниц, логично собрать весь функционал (скрипты, стили) для всего в один файл. Вместо того, чтобы создавать отдельные файлы для каждой страницы.

  • Так как весь контент статический, нет нужны в каких либо CMS или серверной генерации. Весь сайт можно скомпилировать в готовые html файлы которые будут максимально быстро отдаваться клиенту.

  • Так как предполагается, что пользователи будут время от времени возвращаться на ваш сайт, нужно настроить кэширование файлов.

  • Так как на сайте предполагается размещение контактов, важно предоставить возможность доступа к сайту offline.


Кто будет работать, что умеет? Сюда я отношу всё что связано с задачей и тем кто будет её выполнять. Если ли ограничения по времени на реализацию? Какой бюджет на разработку? Какие люди есть в команде? Что они умеют? Есть ли в команде люди, умеющие, работавшие ранее с какой-то технологией, которую вы определили ранее? Сколько времени понадобится чтобы разработчик изучил эту технологию с нуля? Целесообразно ли это? Если ли альтернативы из того, что люди в вашей команде уже умеют? Кто будет заниматься поддержкой этого сайта? Поддержку какого рода вы будете предоставлять? Насколько вы хотите продолжать работать с этим клиентом?

Так вы сможете определить технологии которые будут использоваться для разработки. И отталкиваясь от этого определить архитектуру.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Поиск в гугл (с кавычками!): "Веб-сайт: базис, архитектура, создание"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы