Шаблон проектирования Proxy (заместитель).

Паттерн proxy (он же паттерн заместитель) — это структурный паттерн из книги банды четырех.

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

Прокси похож на паттерн декоратор, но декоратор это всегда привнесение нового функционала, а паттерн прокси имеет цель именно подмену реального объекта на объект прокси. 

Подробнее

Сущности Entity в DDD.

Зачастую в нашем домене имеются модели, требующие быть уникально идентифицированными в рамках нашего приложения.

Например такими моделями могут являться:

  • автомобиль в системе учета транспорта
  • пользователь в приложении
  • заказ в интернет магазине

Все они должны иметь уникальный идентификатор, чтобы мы могли отличать их от аналогичных. 

Подробнее

Остановить и удалить Apache2 в Ubuntu

Если на вашей ос Ubuntu вам не нужен Apache2 то можно легко его удалить.

Первым шагом проверим его статус, с помощью команды 

 

sudo systemctl status apache2	
Пример проверки статуса веб приложения Apache2

 

Далее останавливаем Apache и проверяем его статус, что он остановлен, при помощи команды:

Подробнее

Зачем нужен подход Event Storming ?

Одним из самых важных и сложных моментов, предшествующим разработке архитектуры приложения, это сбор требований и моделирование бизнес-процессов.

Не важно, внтутренний или внешний заказчик, не важно будет in-house или outsource разработка, вначале требуется понять ЧТО требуется сделать, КАКИЕ объекты будут в будущей системе и КАКИЕ сценарии должны происходить. И  если ваше будущее приложение немного сложнее, чем красная кнопка с функционалом оставить отзыв, то в сложном бизнес-процессе будет присутствовать большое количесство объектов и вариантов сценариев с ними.

Но зачастую такие знания о процессах, которые должны происходить в системе при различных условиях, о возможных состояниях объектов в системе и условиях переходов из одного состояния в другое, не описаны в едином источнике знаний. Знания и понимание как должно быть могут немного содержаться в устаревшей документации, разумеется у product manager, project manager, у программистов и у многих других сотрудников компании, в том числе у собственника бизнеса. 

И для такого моделирования уже существуют способы разной степени сложности и затратности по времени, но на их фоне очень выгодно выделяется подход Event Storming, введеный итальянским программистом Альберто Брандолини, успешно используемый им в контексте DDD.

Подробнее

Индексы в базах данных

Индексы позволяют повысить производительность базы данных. 

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

 

Подробнее

Немного о бандлах в Symfony.

В версиях Symfony до 4.0 было рекомендовано организовать собственный код приложения через использование бандлов. Это больше не рекомендуется, и бандлы следует использовать только для совместного использования кода и функций между несколькими приложениями.

Бандлы похожи на плагины в другом программном обеспечении, но даже лучше. Основные функции фреймворка Symfony реализованы с помощью бандлов (FrameworkBundle, SecurityBundle, DebugBundle и т. Д.). Они также используются для добавления новых функций в ваше приложение через сторонние бандлы.

 

Подробнее

Как установить NPM и NODE.JS в Ubuntu.

Работаете с современными фронтенд-фреймворками, например Vue.js?  Тогда Вам потребуется установить в операционной системе Ubuntu Node.js и NPM и сделать это возможно менее чем за 2 минуты! 

Пример установки, показанный ниже, производился на операционной системе Ubuntu 20.04. Подробнее