Постепенно появляется третья версия фреймворка Yii и, нужно отметить, она будет сильно отличаться от предыдущих двух версий. Пока я сам только знакомлюсь с ним, так как в скором времени придется его использовать в боевом проекте, но могу сказать одно уже точно — это полностью новый фреймворк, от предыдущих версий и концепций мало чего осталось. Это имеет свои плюсы и минусы. В этой статье я постараюсь описать основные моменты освоенные за предыдущие несколько дней ускоренного знакомства с ним. Это не обзор Yii3 и его возможностей, а лишь заметки, даже больше для себя, где-то нужно было записать первое впечатление.
(далее…)Метка: Статьи
Строительные блоки DDD
Проектирование на основе предметной области принято делить на две части — стратегическое и тактическое. Хотя они идут бок о бок и одна без другой не существует, так же как и не бывает одной стороны монеты без другой. В данной статье мы вкратце рассмотрим основные строительные блоки DDD с упором на практическую (тактическую) часть.
(далее…)Transaction Script VS Domain Model
Основное различие этих двух архитектурных подходов состоит в назначении модели (наборе доменных сущностей). Доменная сущность в Transaction Script является практически полным отображением таблицы в базе данных с геттерами и сеттерами, а весь функционал (поведение) объекта вынесено в сервисы. За соблюдение инвариантов отвечает сервис. Таким образом, Transaction Script формирует анемичную модель. В противовес этому подходу Domain Model подразумевает наличие у сущности (доменного объекта) не только данных, но и собственного поведения, которое используется в сервисах или агрегатах. Инвариантами в данном случае заведует модель.
Само по себе понятие инвариант означает что-то постоянное. В случае с DDD инвариантом можно назвать бизнес-правила которые должна жестко соблюдать модель. Например, все пользователи получающие жалобы в какой-нибудь из социальных сетей падают в рейтинге на N-е количество пунктов или при оформлении заказа более 1 000 рублей клиент получает скидку в 5%.
Какое решение выбрать для проекта — дело архитектора. Для проектов с малым количеством бизнес-логики (большинство веб-проектов как раз такие), обычно, выгоднее использовать подход Transaction Script, а для большого бизнес-слоя предпочтительнее выбрать Domain Model.
Разработка сайта на Битриксе
В данное время занимаюсь разработкой первого сайта на Битриксе для заказчика, и во время работы появляется множество заметок. Это одна из них. Текущий проект — мой второй практический опыт создания сайта на Битриксе, поэтому заметки об этой системе могут быть не точны. Да и первый был недавно, всего неделю назад — адаптировал простенький бесплатный html-шаблон для пробы сил.
(далее…)Зачем и когда нужны фреймворки?
Два вопроса из заголовка этой статьи часто себе задают начинающие разработчики. Эта заметка для них, поэтому начну с определения фреймворка. Что понимается под этим понятием? Фреймворк — это каркас вашего будущего приложения, собственно, это слово и состоит из «frame» — каркас и «work» — работа.
(далее…)Полезны ли книги по программированию?
Книги по программированию полезны, это в этом сомневаться не стоит, но есть большое НО. Поймите эту фразу буквально, полезны именно книги по программированию, а не по конструкциям какого-либо языка с вольным пересказом документации, или чего хуже, пересказом других пересказов. Часто книги «для начинающих» не учат программировать, а создаются лишь для заработка денег на желающих научиться этому делу.
(далее…)PHP как платформа веб-разработки
На данный момент PHP является самым популярным языком для разработки веб-сайтов, в частности, их серверной составляющей. Статистика говорит сама за себя. В чем же причина такой популярности? Давайте попробуем разобраться.
(далее…)Корпоративные приложения (enterprise)
Что такое корпоративные приложения? Подобную статью следует начинать с определения, так и поступлю, дам своё определение, ведь общепринятого не существует. Корпоративные приложения (промышленные) – это большие программы для автоматизации и структуризации работы компании (фирмы, завода, большого магазина и так далее).
(далее…)