Статьи
Принципы SOLID: принцип инверсии зависимостей
Принцип инверсии зависимостей — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.
Принцип декларирует, что модули верхних уровней не должны зависеть от модулей нижних уровней, а оба типа модулей должны зависеть от абстракций; сами абстракции не должны зависеть от деталей, а вот детали должны зависеть от абстракций.
Принципы SOLID: принцип разделения интерфейса
Принцип разделения интерфейса — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.
Принцип в формулировке Роберта Мартина декларирует, что клиенты не должны зависеть от методов, которые они не используют. То есть если какой‑то метод интерфейса не используется клиентом, то изменения этого метода не должны приводить к необходимости внесения изменений в клиентский код.
Принципы SOLID: принцип подстановки Барбары Лисков
Принцип подстановки Барбары Лисков — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.
Принцип в формулировке Роберта Мартина декларирует, что функции, которые используют базовый тип, должны иметь возможность использовать подтипы базового типа не зная об этом.
Принципы SOLID: принцип открытости-закрытости
Принцип открытости/закрытости — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.
Принцип декларирует, что программные сущности (классы, модули, функции и т. п.) должны быть открыты для расширения, но закрыты для изменения. Это означает, что эти сущности могут менять свое поведение без изменения их исходного кода.
Принципы SOLID: принцип единственной ответственности
Принцип единственной ответственности — один из пяти основных принципов объектно‑ориентированного программирования и проектирования, сформулированных Робертом Мартином.
Принцип декларирует, что каждый объект должен иметь одну обязанность и эта обязанность должна быть полностью инкапсулирована в класс, а все его сервисы должны быть направлены исключительно на обеспечение этой обязанности.
Управление изменениями в «водопадных» проектах
По ходу реализации проектов очень часто что‑то меняется: либо проясняется исходное видение и неявные требования вдруг становятся явными, либо же изменения связаны с переосмыслением изначальных требований. Итеративная модель в таких проектах оказывается более эффективной, но попробуем разобраться, что делать с изменениями в водопадном проекте.
В рамках новых задач возникает необходимость возвращаться к уже выполненным ранее этапам, а также пересматривать грядущие этапы на предмет их соответствия новым задачам. Если же не работать с изменениями, то проект скорее всего скатится в неуправляемое состояние и изменения либо не будут вносится, либо их внесение будет хаотичным и будут возникать конфликты в функционале. Поэтому изменения в уже запущенном проекте требуют проработки и построения некого бизнес‑процесса.
Адаптивные изображения
Изображения на сайтах могут адаптироваться как под разрешение экрана устройства для корректного отображения на мобильных устройствах, так и под экраны с высоким DPI для более детализированного отображения.
Есть несколько вариантов реализации адаптивных изображений, отличаются они по сложности реализации, кроссбраузерностью и по создаваемой нагрузке на интернет‑соединение. Рассмотрим самые распространённые.
Системы управления сайтами — CMS
Коробочная система управления сайтом или CMS — это готовый программный продукт, который упрощает создание основных видов сайтов.
Эта платформа для разработки подходит для создания как простых, так и средних по сложности сайтов. Большинство систем управления достаточно универсальны и на них можно собрать почти что угодно — от простого информационного сайта или сайта‑визитки до интернет‑магазина или информационного портала. Есть и специализированные CMS, заточенные под один конкретный тип сайтов, например, для интернет‑магазинов.
Выбор между CMS и фреймворком
С технической точки зрения любой функционал может быть реализован или на CMS, или на фреймворке, или реализован без использования каких‑либо платформ на чистом языке программирования.
Однако некоторые проекты проще сделать на CMS, некоторые — на фреймворке, а разработка без использования платформ редко бывает рациональным решением с точки зрения бизнеса. В большинстве случаев, выбор платформы стоит основывать на экономических критериях. В статье приведены основные критерии, которые позволят принять обоснованное решение по этому вопросу.
SSH — сетевой протокол для управления серверами
SSH или Secure Shell — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP‑соединений, например, для передачи файлов или для работы с базой данных.
Весь трафик передаваемый по SSH защищён от подделки и перехвата при помощи алгоритмов шифрования. Также защита SSH весьма гибко конфигурируется, что позволяет избежать многих векторов атак. Всё это делает удалённое управление операционной системой через SSH безопасным.