Статьи

Масштабирование баз данных — партиционирование, репликация и шардинг

СУБД — это очень часто «узкое место» в производительности веб‑приложений. В момент, когда сервер баз данных не может справится с нагрузками, производится масштабирование.

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

быстродействие
отказоустойчивость
хранение данных
СУБД
SQL
NoSQL
серверное ПО
Статья опубликована в 2014 и обновлена в 2020 году

Принципы SOLID: принцип инверсии зависимостей

Принцип инверсии зависимостей — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.

Принцип декларирует, что модули верхних уровней не должны зависеть от модулей нижних уровней, а оба типа модулей должны зависеть от абстракций; сами абстракции не должны зависеть от деталей, а вот детали должны зависеть от абстракций.

бэкенд
методологии разработки
веб-разработка
Статья опубликована в 2020 году

Принципы SOLID: принцип разделения интерфейса

Принцип разделения интерфейса — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.

Принцип в формулировке Роберта Мартина декларирует, что клиенты не должны зависеть от методов, которые они не используют. То есть если какой‑то метод интерфейса не используется клиентом, то изменения этого метода не должны приводить к необходимости внесения изменений в клиентский код.

бэкенд
методологии разработки
веб-разработка
Статья опубликована в 2020 году

Принципы SOLID: принцип подстановки Барбары Лисков

Принцип подстановки Барбары Лисков — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.

Принцип в формулировке Роберта Мартина декларирует, что функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа не зная об этом.

бэкенд
методологии разработки
веб-разработка
Статья опубликована в 2020 году

Принципы SOLID: принцип открытости-закрытости

Принцип открытости/закрытости — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.

Принцип декларирует, что программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения. Это означает, что эти сущности могут менять свое поведение без изменения их исходного кода.

бэкенд
методологии разработки
веб-разработка
Статья опубликована в 2020 году

Принципы SOLID: принцип единственной ответственности

Принцип единственной ответственности — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.

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

бэкенд
методологии разработки
веб-разработка
Статья опубликована в 2020 году

Управление изменениями в «водопадных» проектах

По ходу реализации проектов очень часто что‑то меняется: либо проясняется исходное видение и неявные требования вдруг становятся явными, либо же изменения связаны с переосмыслением изначальных требований. Итеративная модель в таких проектах оказывается более эффективной, но попробуем разобраться, что делать с изменениями в водопадном проекте.

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

управление проектами
Статья опубликована в 2019 году

Адаптивные изображения

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

Есть несколько вариантов реализации адаптивных изображений, отличаются они по сложности реализации, кроссбраузерностью и по создаваемой нагрузке на интернет‑соединение. Рассмотрим самые распространённые.

дизайн
UX / UI
фронтенд
CSS
веб-разработка
адаптивный веб-дизайн
Статья опубликована в 2019 году

Системы управления сайтами — CMS

Коробочная система управления сайтом или CMS — это готовый программный продукт, который упрощает создание основных видов сайтов.

Эта платформа для разработки подходит для создания как простых, так и средних по сложности сайтов. Большинство систем управления достаточно универсальны и на них можно собрать почти что угодно — от простого информационного сайта или сайта‑визитки до интернет‑магазина или информационного портала. Есть и специализированные CMS, заточенные под один конкретный тип сайтов, например, для интернет‑магазинов.

CMS
веб-разработка
бэкенд
платформы
корпоративные информационные системы
Статья опубликована в 2019 году

Выбор между CMS и фреймворком

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

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

CMS
фреймворки
платформы
веб-разработка
бэкенд
Статья опубликована в 2019 году