314  /  382
Справочник

Особенности веб-программирования

Просмотров: 36307
Дата последнего изменения: 10.06.2021
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Одно из отличий веб-программирования от Windows программирования (однопользовательского) в том, что в Windows вам принадлежат все ресурсы компьютера, и почти неограниченное время. В вебе вам принадлежит лишь совсем чуть-чуть памяти и немного времени (обычно не более 30-90 секунд). Поэтому сложные и долгие расчеты – не для классических сайтов.

Основная задача веб-сайта (в 99% случаев) – это быстро вернуть посетителю запрошенную страничку и освободить ресурсы для обслуживания других посетителей. Именно для решения этой задачи существуют такие инструменты, как NGINX, lighthttpd, кэширование, PHP-акселераторы и другие. Для большинства сайтов с небольшой посещаемостью таких инструментов, имеющихся в наличии на практически каждом хостинге или почти в любой CMS, вполне достаточно.

Однако для более посещаемых проектов возникает необходимость дополнительной оптимизации.


Bitrix Framework достаточно хорошо ведет себя при большой нагрузке. Есть официальные результаты тестирования, с которыми можно познакомиться на сайте компании. Но нам интересен опыт реальной эксплуатации сложных, ресурсоемких проектов.

Сложным ресурсоемким проектом можно назвать проект, под 30 000 посещений, с количеством элементов в базе под 500 000 и больше, более 40 типов инфоблоков, самих инфоблоков больше 200. В ключевых инфоблоках по 150-200 свойств.

Что позволяет работать таким проектам:

  • Инфоблоки выборки из которых можно делать на стандартном API;
  • Кэширование.

Нюансы, на которые надо обращать внимание:

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

Самое главное это - проектирование инфоблоков. Также нужно быть внимательными с обработчиками по работе с инфоблоками, и с агентами. И при проектировании необходимо знать и учитывать особенности API. Например, выбирать элементы по IBLOCK_CODE или IBLOCK_TYPE хуже, чем по IBLOCK_ID. Это конкретный пример, таких вариаций очень много.

Сложные и объемные проекты лучше реализовывать на собственных серверах. При этом рекомендуется использовать 2 сервера: отдельно для базы и для статики и кэша.

Опыт разработчиков проектов на Bitrix Framework показывает, что около 1 миллиона хитов на проекте – это реальный показатель, если уметь конфигурировать MySQL.

Есть и своеобразная «вилка»: база данных против надежности жесткого диска. Не кешировать данные - хуже для базы и лучше для диска. То есть если используется очень мощный сервер под БД, и он хорошо сконфигурирован, то это может быть реальной альтернативой файловому кешу.

Примечание: Для снижения нагрузки к базе данных и удобства работы с системой в Bitrix Framework используется хранение разнообразных данных в файловой системе. Подробнее про файлы и их влияние на производительность можно посмотреть в уроке Структура файлов.


Ссылки по теме:


24
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии