Открыть список
Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

26 сентября приглашаем на оффлайн-митап HOT Backend&Web в Краснодаре

PHPАнализ и проектирование системКонференцииМикросервисы
Привет, Хабр! Для всех разработчиков Backend и Web, кто соскучился по живым докладам и плодотворному общению в комьюнити, мы проводим новый митап в Краснодаре — с соблюдением необходимых требований безопасности. Спикеры SimbirSoft и других IT-компаний представят несколько докладов и ответят на вопросы. Ждем 26 сентября, участие бесплатное.

Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры477
Комментарии 0

Fwdays'20: Node.js Middleware – никогда больше

Разработка веб-сайтовJavaScriptNode.JSКонференции
В конце сентября в онлайне прошла конференция JavaScript Fwdays'20 Autumn, на которой я сделал доклад про проблемы мидлваров. После доклада меня почти каждый день просят ссылку на видео. И вот, наконец, его выложили в открытый доступ. Доклад чуть больше часа.

Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Просмотры2.8K
Комментарии 0

ALT.NET, Питер, Четверг, 19 марта, 19-00, Компьютерная академия SoftJoys

.NET
Не трудно догадаться, что многие разработчики стремятся к совершенствованию в своём любимом деле (разве нет?). Многие из вас постоянно слышат о новых для себя технологиях и методологиях разработки программного обеспечения, однако, не все находят время и стимул для того, чтобы ознакомиться с ними (примером тому являются методологии TDD, BDD, DDD, ORM, DSL, AOP, Design Patterns и т.д., а так же сопутствующие им инструменты).
Читать дальше →
Всего голосов 4: ↑3 и ↓1 +2
Просмотры702
Комментарии 3

3я встреча Петербургской группы ALT.NET

Я пиарюсь
2 апреля 2009 (четверг) в 19.00

Доклад на тему ASP.NET MVC

1. Краткое Введение в ASP.NET MVC
2. DDD в ASP.NET MVC
3. SharpArchitecture
4. Spark
5. Patterns

регистрация
следить за событием
Всего голосов 1: ↑0 и ↓1 -1
Просмотры356
Комментарии 0

5я встреча Петербургской группы ALT.NET

.NET
5я встреча Петербургской группы ALT.NET пройдет в четверг, 7го Мая в 19:00.
Встречи группы проходят по адресу Биржевая Линия дом 14, офис 409 (4й этаж).
Программа 19:00 – 21:00 — Паттерны Repository и Specification.
Применение Linq2xxx (на примере Linq to NHibernate), Артем Смирнов
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Просмотры388
Комментарии 1

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Java.NET

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


Читать дальше →
Всего голосов 66: ↑54 и ↓12 +42
Просмотры190.4K
Комментарии 25

Вы подготовились к приходу AutoMapper?

.NET

Введение

Данная статья предназначена к прочтению разработчикам и архитекторам распределенных систем на платформе .NET. В ней будет рассмотрен гибкий каркас для объектно-объектного преобразования (далее маппинга). Так же будут рассмотрены некоторые аспекты Domain-Driven Design’а.
Читать дальше →
Всего голосов 34: ↑23 и ↓11 +12
Просмотры35.7K
Комментарии 37

Введение в Rich Domain Model

Разработка веб-сайтов
В последнее время можно услышать много аббревиатур, которые оканчиваются на DD: TDD, BDD, FDD, etc. Меня заинтересовал один из представителей «DD-семейства» — DDD, Domain Driven Development. Я не стану описывать здесь все тонкости этой методологии, ведь всю необходимую информацию можно легко найти в сети. Моя цель — рассказать о наиболее важной концепции DDD, о Rich Domain Model и на небольшом примере показать основные нюансы реализации.
Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры15.6K
Комментарии 12

Донецкий кофе-и-код — дайджест и анонс

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

Читать дальше →
Всего голосов 30: ↑25 и ↓5 +20
Просмотры537
Комментарии 16

Николай Гребнев (CUSTIS) — Что такое DDD? — доклад с конференции ADD

Блог компании Лаборатория тестированияАнализ и проектирование системTDD
Tutorial
Есть такая конференция ADD (Application Developer Days) на которой любят всякие архитектурные штуки для разработки ПО обсуждать, обычно эти штуки заканчиваются тоже на xDD — DDD, TDD, MDD и т.д.

Вот к примеру на прошлой конференции задались вопросом, а что такое DDD (Domain Driven Design)?
А Николай Гребнев из CUSTIS — встал и ответил.

Видео доклада:


Читать дальше →
Всего голосов 28: ↑23 и ↓5 +18
Просмотры12.2K
Комментарии 10

Введение в CQRS + Event Sourcing: Часть 1. Основы

Разработка веб-сайтов.NETПроектирование и рефакторинг
В первый раз я услышал о CQRS, когда устроился на новую работу. В компании, в которой работаю и по сей день, мне сразу сказали что на проекте, над которым я буду работать используется CQRS, Event Sourcing, и MongoDB в качестве базы данных. Из этого всего я слышал только о MongoDB. Попытавшись вникнуть в CQRS, я не сразу понял все тонкости данного подхода, но почему-то мне понравилась идея разделения модели взаимодействия с данными на две — read и write. Возможно потому что она как-то перекликалась с парадигмой программирования “разделение обязанностей”, возможно потому что была очень в духе DDD.

Вообще многие говорят о CQRS как о паттерне проектирования. На мой взгляд он слишком сильно влияет на общую архитектуру приложения, что бы называться просто “паттерном проектирования”, поэтому я предпочитаю называть его принципом или подходом. Использование CQRS проникает почти во все уголки приложения.

Сразу хочу уточнить что я работал только со связкой CQRS + Event Sourcing, и никогда не пробовал просто CQRS, так как мне кажется что без Event Sourcing он теряет очень много бенефитов. В качестве CQRS фреймворка я буду использовать наш корпоративный Paralect.Domain. Он чем-то лучше других, чем то хуже. В любом случае советую вам ознакомиться и с остальными. Я здесь упомяну только несколько фреймворков для .NET. Наиболее популярные это NCQRS, Lokad CQRS, SimpleCQRS. Так же можете посмотреть на Event Store Джонатана Оливера с поддержкой огромного количества различных баз данных.

Начнем с CQRS


Что же такое CQRS?
CQRS расшифровывается как Command Query Responsibility Segregation (разделение ответственности на команды и запросы). Это паттерн проектирования, о котором я впервые услышал от Грега Янга (Greg Young). В его основе лежит простое понятие, что вы можете использовать разные модели для обновления и чтения информации. Однако это простое понятие ведет к серьёзным последствиям в проектировании информационных систем. (с) Мартин Фаулер
Читать дальше →
Всего голосов 22: ↑20 и ↓2 +18
Просмотры154.3K
Комментарии 15

Введение в CQRS + Event Sourcing: Часть 2

Разработка веб-сайтов.NETПроектирование и рефакторинг
В прошлой статье я начал с основ CQRS + Event Sourcing. В этот раз я предлагаю продолжить и более подробно посмотреть на ES.

В примере который я выкладывал с моей прошлой статьей магия Event Sourcing’а была скрыта за абстракцией IRepository и двумя методами IRepository.Save() и IRepository.GetById<>().
Для того чтобы поподробнее разобраться что происходит я решил рассказать о процессе сохранения и загрузки агрегата из Event Store на примере проекта Lokad IDDD Sample от Рината Абдулина. У него в аппликейшен сервисах идет прямое обращение к Event Store, без дополнительных абстракций, поэтому все выглядит очень наглядно. Application Service — это аналог CommandHandler, но который обрабатывает все комманды одного агрегата. Такой подход очень удобный и мы тоже на него в одном проекте перешли.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры42.4K
Комментарии 38

Шаблон проектирования «Спецификация»

Анализ и проектирование систем.NETПроектирование и рефакторинг
Предпринимая попытки постичь DDD вы наверняка натолкнетесь на этот паттерн, который часто тесно используется вместе с другим, не менее интересным, паттерном «Репозиторий». Этот паттерн предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации не дублируя запросы.

Пример


Давайте для примера спроектируем домен для простого группового чата: у нас будут три сущности: Группа и Пользователь, между которыми связь многие-ко-многим (один пользователь может находиться в разных группах, в группе может быть несколько пользователей) и Message представляющий собой сообщение, которое пользователь может написать в какой-либо группе:
Читать дальше →
Всего голосов 31: ↑26 и ↓5 +21
Просмотры50.5K
Комментарии 64

Проектируем по DDD. Часть 1: Domain & Application

Программирование.NETПроектирование и рефакторинг
Tutorial
xxx: пока скачаешь одну библиотеку, пока другую, пока их xml конфигом на полметра склеишь, пока маппинг для hibernate настроишь, пока базу нарисуешь, пока веб-сервисы поднимешь
xxx: вроде и hello world пишешь, а уже две недели прошло и всем кажется, что это учетная система для малого бизнеса
ibash.org.ru


В серии из нескольких статей я хотел бы на простом, но имеющим некоторые нюансы, примере рассказать о том, как имея готовые domain и application слои реализовать под них инфраструктуру для хранения и извлечения данных (infrastructure for persistence) используя две различные популярные технологии – Entity Framework Code First и Fluent NHibernate. Если вы хотя бы слышали про три буквы DDD и у вас нет желания послать меня на тоже три, но другие буквы — прошу под кат.


Читать дальше →
Всего голосов 13: ↑9 и ↓4 +5
Просмотры53.8K
Комментарии 15

Программисты и человеческий фактор

Разработка веб-сайтовПрограммирование

Введение

Часто приходится сталкиваться с клише, что программисты — технари. Почему я это называю клише, а не аксиомой, и является сутью данной статьи. Статья возникла на основании накопившихся мыслей, возникших на собеседованиях разработчиков и прочих смежных профессий, по поводу того, что из себя представляют люди, именуемые программистами.

технарь

Миф о технаре

Итак, я бросаю вызов утверждению, что программист — технарь. Не в частном смысле, а в общем. То есть, я не пытаюсь доказать, что нельзя найти программиста, который является технарем. Я утверждаю, что свойство «технарь» для программиста ни необходимо, ни достаточно.
Читать дальше →
Всего голосов 44: ↑10 и ↓34 -24
Просмотры12.2K
Комментарии 21

Anemic Domain Model [Перевод]

Проектирование и рефакторинг
Из песочницы
На фоне своего увлеченного изучения DDD, я прочел статью Мартина Фаулера от 25 Ноября 2003 года Anemic Domain Model. Иногда для лучшего понимания материала я перевожу его на русский язык. Вот я и решил поделиться переводом.
Перевод авторский и местами очень смысловой.

Ссылка на оригинал.

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



Бледная Доменная Модель

Это один из тех анти-паттернов который долгое время окружал нас, а сейчас проявляется еще активнее. Я говорил о этом с Эриком Эвансом и мы оба отметили что он становится все популярнее. И я как сторонник правильной Доменной Модели, считаю что это не есть хорошо.

Узнать немного о DDD
Всего голосов 13: ↑9 и ↓4 +5
Просмотры29.7K
Комментарии 3

Интервью с Дино Эспозито, автором книги «Microsoft .NET: Architecting applications for the enterprise»

Блог компании Luxoft.NETПроектирование и рефакторингKotlin
Luxoft Training предлагает Вашему вниманию интервью с Дино Эспозито .Net-гуру, автором многих книг по .Net-программированию, техническим евангелистом разработки под Android и на Kotlin в JetBrains. В интерьвю Дино расскажет о своем мастер-классе «Свежий взгляд на проектирование реального ПО: от DDD и CQRS до Event Sourcing», который пройдет 25 октября в Москве.
Читать дальше →
Всего голосов 28: ↑22 и ↓6 +16
Просмотры11.5K
Комментарии 5

Ubiquitous Language и Bounded Context в DDD

Разработка веб-сайтовПрограммированиеПроектирование и рефакторинг

Domain-Driven Design: Tackling Complexity in the Heart of Software Эванса — лучшая книга о проектировании действительно больших enterprise-приложений, что я читал. Видимо это мнение разделяют многие другие разработчики и проектировщики, потому что Entity и ValueObject, Repository и Specification встречаются почти в каждой большой кодовой базе. Но вот незадача, Ubiquitous Language (единый язык) и Bounded Context (контекст предметной области) в чужом коде я не видел ни разу. И здесь зарыта очень большая собака.
Выкапываем собаку
Всего голосов 23: ↑16 и ↓7 +9
Просмотры37.3K
Комментарии 40