Подсказки: как решить часто встречающиеся проблемы web-проектов

На самых разных web-проектах встречается множество однотипных проблем. В чем они заключаются? Есть ли их оптимальное решение?

проблемы веб сайта

 Проблемные БД

Наиболее распространенные проблемы БД разнообразных web-проектов связывают с кластеризцией. Но часто встречаемые это:

  1. «n+1», которая есть преобразование пользовательских действий в запросы к БД с последующим выводом результатов:
  • идентификация: сравнение за одинаковый временной период объемов полного access log web-сервера с query log БД – проблема становится очевидной, как только 50MB access log превращаются в 20GB query log;
  • выход: модифицировать код.
  1. Индексация данных:
  • идентификация: использование unindexed query log в соответствии с типом БД, считывание неаккуратно проставленных индексов;
  • выход: проставить (где возможно) индексы + модифицировать код (следует обратить внимание на минимализацию количества используемых индексов).
  1. Разрастание размеров таблиц:
  • идентификация: хранение устаревших данных в БД в основной таблице;
  • выход: создание дополнительной базы с префиксом zip, таблицы, mysqldump, backup.
  1. Централизация таблиц:
  • идентификация: с помощью корректных инструментов munin/monit/sa+sar/htop можно выявить постоянный либо пиковый недостаток таблиц, которые стали ресурсами-блокерами (при выполнении одних типов операций происходит блокировка других типов);
  • выход: создание таблиц products2 с последующим обеспечением непересечения с таблицей-исходником значений ее первичного ключа.

Проблема с кодом

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

  1. лишних слоев абстракции, которые не отсекаются на этапе code review;
  2. не использования правила SOLID;
  3. инкапсуляции из определения OOP.

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

Проблемный Front-end

Чаще всего они есть у проектов с фронтендом в стиле «а-ля 2000», которые отличаются неподдерживаемым кодом. Также в случае множества конфликтующих jQuery плагинов и условий. Выход пошаговый:

  1. es-2015 с расширениями для javascript (актуальный);
  2. приложение с роутингом в одну страницу;
  3. единая точка входа;
  4. постепенный эволюционный переезд;
  5. обоснованный подход к выбору архитектуроопределяющих технологий.

Организационные проблемы

Этот тип не всегда имеет оптимальное решение. Но ознакомиться с ними нужно, чтобы не допустить в будущем:

  • общение с бизнесменами (доступный для них язык понимания: удешевление системы с помощью ее переделки);
  • управленческий стиль (попробуйте не авторитарность, а убеждение);
  • централизованность сотрудников (группирование специалистов одного класса в микрокоманды).

Как видим, большинство проблем решается достаточно просто. Главное: не опускать руки и не отказываться от проблемного на первый взгляд web-проекта.

Помощь в выявлении проблем в проекте, обращайтесь office@itfb.com.ua