Domain Driven Design и архитектура корпоративных приложений

60

description

Открытый семинар для студентов в компании custis (24 октября 2013). Лектор: Андрей Моисеев, ведущий разработчик C# Из семинара вы узнаете о Domain-Driven Design и его применении для проектирования сложных корпоративных приложений.

Transcript of Domain Driven Design и архитектура корпоративных приложений

Page 1: Domain Driven Design и архитектура корпоративных приложений
Page 2: Domain Driven Design и архитектура корпоративных приложений
Page 3: Domain Driven Design и архитектура корпоративных приложений
Page 4: Domain Driven Design и архитектура корпоративных приложений
Page 5: Domain Driven Design и архитектура корпоративных приложений
Page 6: Domain Driven Design и архитектура корпоративных приложений
Page 7: Domain Driven Design и архитектура корпоративных приложений
Page 8: Domain Driven Design и архитектура корпоративных приложений
Page 9: Domain Driven Design и архитектура корпоративных приложений
Page 10: Domain Driven Design и архитектура корпоративных приложений
Page 11: Domain Driven Design и архитектура корпоративных приложений
Page 12: Domain Driven Design и архитектура корпоративных приложений
Page 13: Domain Driven Design и архитектура корпоративных приложений
Page 14: Domain Driven Design и архитектура корпоративных приложений
Page 15: Domain Driven Design и архитектура корпоративных приложений
Page 16: Domain Driven Design и архитектура корпоративных приложений
Page 17: Domain Driven Design и архитектура корпоративных приложений
Page 18: Domain Driven Design и архитектура корпоративных приложений
Page 19: Domain Driven Design и архитектура корпоративных приложений
Page 20: Domain Driven Design и архитектура корпоративных приложений
Page 21: Domain Driven Design и архитектура корпоративных приложений
Page 22: Domain Driven Design и архитектура корпоративных приложений

Page 23: Domain Driven Design и архитектура корпоративных приложений
Page 24: Domain Driven Design и архитектура корпоративных приложений
Page 25: Domain Driven Design и архитектура корпоративных приложений
Page 26: Domain Driven Design и архитектура корпоративных приложений

0

10

20

30

40

50

60

70

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59

Page 27: Domain Driven Design и архитектура корпоративных приложений
Page 28: Domain Driven Design и архитектура корпоративных приложений

0

2000

4000

6000

8000

10000

12000

14000

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53

Page 29: Domain Driven Design и архитектура корпоративных приложений
Page 30: Domain Driven Design и архитектура корпоративных приложений
Page 31: Domain Driven Design и архитектура корпоративных приложений
Page 32: Domain Driven Design и архитектура корпоративных приложений
Page 33: Domain Driven Design и архитектура корпоративных приложений

2𝑥 + 2𝑦 + 2𝑧 ≪ 2𝑥+𝑦+𝑧

210 + 210 + 210 ≪ 210+10+10

3072≪ 1000000000

Page 34: Domain Driven Design и архитектура корпоративных приложений
Page 35: Domain Driven Design и архитектура корпоративных приложений
Page 36: Domain Driven Design и архитектура корпоративных приложений
Page 37: Domain Driven Design и архитектура корпоративных приложений
Page 38: Domain Driven Design и архитектура корпоративных приложений

Идея!

Page 39: Domain Driven Design и архитектура корпоративных приложений
Page 40: Domain Driven Design и архитектура корпоративных приложений
Page 41: Domain Driven Design и архитектура корпоративных приложений
Page 42: Domain Driven Design и архитектура корпоративных приложений
Page 43: Domain Driven Design и архитектура корпоративных приложений
Page 44: Domain Driven Design и архитектура корпоративных приложений
Page 45: Domain Driven Design и архитектура корпоративных приложений
Page 46: Domain Driven Design и архитектура корпоративных приложений
Page 47: Domain Driven Design и архитектура корпоративных приложений
Page 48: Domain Driven Design и архитектура корпоративных приложений
Page 49: Domain Driven Design и архитектура корпоративных приложений

public void RentACar(CarId carId, CustomerId customerId){

var user = _authService.GetCurrentUser();if(!user.IsInRole(“Manager”){

throw new Exception(“User is not authorized.”);}

var manager = _managerRepository.GetManagerByUserId(user.Id);var car = _carRepository.GetCar(carId);var customer = _customerRepository.GetCustomer(customerId);

manager.RentACar(car, customer);}

Page 50: Domain Driven Design и архитектура корпоративных приложений
Page 51: Domain Driven Design и архитектура корпоративных приложений
Page 52: Domain Driven Design и архитектура корпоративных приложений
Page 53: Domain Driven Design и архитектура корпоративных приложений
Page 54: Domain Driven Design и архитектура корпоративных приложений
Page 55: Domain Driven Design и архитектура корпоративных приложений
Page 56: Domain Driven Design и архитектура корпоративных приложений
Page 57: Domain Driven Design и архитектура корпоративных приложений
Page 58: Domain Driven Design и архитектура корпоративных приложений
Page 59: Domain Driven Design и архитектура корпоративных приложений