WHO WE ARE · WHO WE ARE — PLARIUM GLOBAL We’re one of the world’s fastest growing developers...

Preview:

Citation preview

WHO WE ARE —PLARIUM GLOBAL

We’re one of the world’s fastest growing developers of mobile, socialand web-based games with over 250M registrations and 3M DAU.

● Founded in 2009● HQ in Israel● 8 Offices & Studios

We’re home to some of the best talent in the social and mobile gaming industry.

Over 1200 professionals in eight offices and development studios across Europe and United States.

Проектированиеобъектов: как открыть

бутылку с водойIgor StepanovRPG DepartmentClient Development Team Lead

Copyright Plarium Global LTD. 2019Do not distribute

Что такое хороший объект?

Copyright Plarium Global LTD. 2019Do not distribute

Что такое объект?

Copyright Plarium Global LTD. 2019Do not distribute

6Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Философская категория,

выражающая нечто, на что

направлена практическая

или познавательная деятельность

субъекта (наблюдателя). Это нечто

может существовать как в реальной

действительности, так и в

вымышленном мире; а объектом

может быть и сам субъект.

ОПРЕДЕЛЕНИЕ

Copyright Plarium Global LTD. 2019Do not distribute

7Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

ОПРЕДЕЛЕНИЕ

Философская категория,

выражающая нечто, на что

направлена практическая

или познавательная деятельность

субъекта (наблюдателя). Это нечто

может существовать как в реальной

действительности, так и в

вымышленном мире; а объектом

может быть и сам субъект.

Copyright Plarium Global LTD. 2019Do not distribute

8Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Некоторая сущность в виртуальном

пространстве, обладающая определенным

состоянием и поведением, имеет заданные

значения свойств (атрибутов) и операций

над ними (методов).

В ПРОГРАММИРОВАНИИ

Copyright Plarium Global LTD. 2019Do not distribute

9Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Некоторая сущность в реальном

пространстве, обладающая определенным

состоянием и поведением; состоит из

плоти и костей.

ЧЕЛОВЕК

Copyright Plarium Global LTD. 2019Do not distribute

10Проектирование объектов: как открыть бутылку с водой

Технически верно...

Copyright Plarium Global LTD. 2019Do not distribute

11Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Copyright Plarium Global LTD. 2019Do not distribute

12Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Copyright Plarium Global LTD. 2019Do not distribute

13Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Copyright Plarium Global LTD. 2019Do not distribute

Что объект долженделать в рамках нашего

приложения?

Copyright Plarium Global LTD. 2019Do not distribute

Что объект долженделать в рамках нашего

приложения?

Copyright Plarium Global LTD. 2019Do not distribute

16Проектирование объектов: как открыть бутылку с водой

АНТРОПОМОРФИЗМ

Copyright Plarium Global LTD. 2019Do not distribute

17Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Хороший объект в программировании –это антропоморфная модель объекта предметной области.

Copyright Plarium Global LTD. 2019Do not distribute

18Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

Object Thinking by David West, p. 66:

Think of an object as the equivalent of

the quanta from which the universe is

constructed.

Copyright Plarium Global LTD. 2019Do not distribute

19Проектирование объектов: как открыть бутылку с водой

1) Выполняет поставленную задачу

2) Удобен в использовании

3) Устойчив к изменениям

4) Тестируется

ТРЕБОВАНИЯЧто такое хороший объект?

Copyright Plarium Global LTD. 2019Do not distribute

20Проектирование объектов: как открыть бутылку с водой

Copyright Plarium Global LTD. 2019Do not distribute

21Проектирование объектов: как открыть бутылку с водой

О СКОРОСТИ СТАНОВЛЕНИЯ ИДЕЙ

ООП – 1967 г. SOLID – 2000 г. DDD – 2003 г.

OOP is dead! Long live OODD!

Copyright Plarium Global LTD. 2019Do not distribute

22Проектирование объектов: как открыть бутылку с водой

О СКОРОСТИ СТАНОВЛЕНИЯ ИДЕИ?

ООП – 1967 г. SOLID – 2000 г. DDD – 2003 г.

OOP is dead! Long live OODD!

Copyright Plarium Global LTD. 2019Do not distribute

23Проектирование объектов: как открыть бутылку с водойЧто такое хороший объект?

ОПРЕДЕЛЕНИЕ

Философская категория,

выражающая нечто, на что

направлена практическая

или познавательная деятельность

субъекта (наблюдателя). Это нечто

может существовать как в реальной

действительности, так и в

вымышленном мире; а объектом

может быть и сам субъект.

Copyright Plarium Global LTD. 2019Do not distribute

24Проектирование объектов: как открыть бутылку с водой

ЭТАПЫ ДЕЯТЕЛЬНОСТИЧто такое хороший объект?

1) Вовлечение в деятельность

2) Целеполагание

3) Проектирование действий

4) Осуществление действий

5) Анализ результатов действий и сравнение их с поставленными целями

Copyright Plarium Global LTD. 2019Do not distribute

25Проектирование объектов: как открыть бутылку с водой

ПАРАМЕТРЫ ХОРОШЕГО ОБЪЕКТАOOP is dead! Long live OODD!

1) Существует в предметной области2) Антропоморфен3) Обладает лаконичным контрактом данных4) Уникален и обладает состоянием5) Не позволяет менять состояние извне6) Не имеет статики7) Именуется от сущности, а не от действия

Copyright Plarium Global LTD. 2019Do not distribute

Практические примеры

Copyright Plarium Global LTD. 2019Do not distribute

27Проектирование объектов: как открыть бутылку с водойПрактические примеры

Copyright Plarium Global LTD. 2019Do not distribute

28Проектирование объектов: как открыть бутылку с водойИспользование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

29Проектирование объектов: как открыть бутылку с водой

No

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

30Проектирование объектов: как открыть бутылку с водой

No Yes

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

31Проектирование объектов: как открыть бутылку с водой

No Yes

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

32Проектирование объектов: как открыть бутылку с водой

No Yes

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

33Проектирование объектов: как открыть бутылку с водойИспользование «данных» о сущности вместо сущности

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

34Проектирование объектов: как открыть бутылку с водой

No Yes

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

35Проектирование объектов: как открыть бутылку с водой

No Yes

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

36Проектирование объектов: как открыть бутылку с водой

No Yes

Использование «данных» о сущности вместо сущности

Copyright Plarium Global LTD. 2019Do not distribute

37Проектирование объектов: как открыть бутылку с водойИспользование «данных» о сущности вместо сущности

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

38Проектирование объектов: как открыть бутылку с водойСвойства-сеттеры

No Yes

No

Copyright Plarium Global LTD. 2019Do not distribute

39Проектирование объектов: как открыть бутылку с водойОбъекты, спроектированные «от действия»

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

40Проектирование объектов: как открыть бутылку с водойОбъекты, спроектированные «от действия»

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

41Проектирование объектов: как открыть бутылку с водойОбъекты, спроектированные «от действия»

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

42Проектирование объектов: как открыть бутылку с водой

No Yes

Объекты, спроектированные «от действия»

Copyright Plarium Global LTD. 2019Do not distribute

43Проектирование объектов: как открыть бутылку с водой

No Yes

Объекты, спроектированные «от действия»

Copyright Plarium Global LTD. 2019Do not distribute

44Проектирование объектов: как открыть бутылку с водой

No Yes

Объекты, спроектированные «от действия»

Copyright Plarium Global LTD. 2019Do not distribute

45Проектирование объектов: как открыть бутылку с водой

No Yes

Объекты, спроектированные «от действия»

Copyright Plarium Global LTD. 2019Do not distribute

46Проектирование объектов: как открыть бутылку с водой

No Yes

Объекты, спроектированные «от действия»

Copyright Plarium Global LTD. 2019Do not distribute

47Проектирование объектов: как открыть бутылку с водой

No Yes

Значения перечислений

Copyright Plarium Global LTD. 2019Do not distribute

48Проектирование объектов: как открыть бутылку с водой

No Yes

Значения перечислений

Copyright Plarium Global LTD. 2019Do not distribute

49Проектирование объектов: как открыть бутылку с водой

No Yes

Значения перечислений

Copyright Plarium Global LTD. 2019Do not distribute

50Проектирование объектов: как открыть бутылку с водой

No Yes

Значения перечислений

Copyright Plarium Global LTD. 2019Do not distribute

51Проектирование объектов: как открыть бутылку с водойЗначения перечислений

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

52Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

53Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

54Проектирование объектов: как открыть бутылку с водойПроектирование с учетом контекста

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

55Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

56Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

57Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

58Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

59Проектирование объектов: как открыть бутылку с водойПроектирование с учетом контекста

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

60Проектирование объектов: как открыть бутылку с водой

No YesNo

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

61Проектирование объектов: как открыть бутылку с водой

No

Статические классы

Yes

Copyright Plarium Global LTD. 2019Do not distribute

62Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

63Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

64Проектирование объектов: как открыть бутылку с водой

No Yes

Проектирование с учетом контекста

Copyright Plarium Global LTD. 2019Do not distribute

65Проектирование объектов: как открыть бутылку с водойМетоды обратного вызова

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

66Проектирование объектов: как открыть бутылку с водой

No Yes

Методы обратного вызова

Copyright Plarium Global LTD. 2019Do not distribute

67Проектирование объектов: как открыть бутылку с водой

No Yes

Методы обратного вызова

Copyright Plarium Global LTD. 2019Do not distribute

68Проектирование объектов: как открыть бутылку с водой

No Yes

Методы обратного вызова

Copyright Plarium Global LTD. 2019Do not distribute

69Проектирование объектов: как открыть бутылку с водой

No Yes

Подписки на события

Copyright Plarium Global LTD. 2019Do not distribute

70Проектирование объектов: как открыть бутылку с водой

No Yes

Подписки на события

Copyright Plarium Global LTD. 2019Do not distribute

71Проектирование объектов: как открыть бутылку с водой

No Yes

Подписки на события

Copyright Plarium Global LTD. 2019Do not distribute

72Проектирование объектов: как открыть бутылку с водой

No Yes

Подписки на события

Copyright Plarium Global LTD. 2019Do not distribute

73Проектирование объектов: как открыть бутылку с водой

No Yes

Подписки на события

Copyright Plarium Global LTD. 2019Do not distribute

74Проектирование объектов: как открыть бутылку с водойЛишняя бизнес-логика внутри

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

75Проектирование объектов: как открыть бутылку с водойЛишняя бизнес-логика внутри

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

76Проектирование объектов: как открыть бутылку с водойЛишняя бизнес-логика внутри

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

77Проектирование объектов: как открыть бутылку с водойЛишняя бизнес-логика внутри

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

78Проектирование объектов: как открыть бутылку с водой

No Yes

Лишняя бизнес-логика внутри

Copyright Plarium Global LTD. 2019Do not distribute

79Проектирование объектов: как открыть бутылку с водой

No Yes

Лишняя бизнес-логика внутри

Copyright Plarium Global LTD. 2019Do not distribute

80Проектирование объектов: как открыть бутылку с водой

No Yes

Лишняя бизнес-логика внутри

Copyright Plarium Global LTD. 2019Do not distribute

81Проектирование объектов: как открыть бутылку с водой

No Yes

Использование паттернов

Copyright Plarium Global LTD. 2019Do not distribute

82Проектирование объектов: как открыть бутылку с водой

No Yes

Использование паттернов

Copyright Plarium Global LTD. 2019Do not distribute

83Проектирование объектов: как открыть бутылку с водой

No Yes

Использование паттернов

Copyright Plarium Global LTD. 2019Do not distribute

84Проектирование объектов: как открыть бутылку с водойИспользование паттернов

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

85Проектирование объектов: как открыть бутылку с водой

No Yes

Использование паттернов

Copyright Plarium Global LTD. 2019Do not distribute

86Проектирование объектов: как открыть бутылку с водой

No Yes

Использование паттернов

Copyright Plarium Global LTD. 2019Do not distribute

87Проектирование объектов: как открыть бутылку с водойИспользование паттернов

No Yes

Copyright Plarium Global LTD. 2019Do not distribute

88Проектирование объектов: как открыть бутылку с водой

No Yes

Использование паттернов

Copyright Plarium Global LTD. 2019Do not distribute

89Проектирование объектов: как открыть бутылку с водой

No Yes

Декомпозиция на объекты

Copyright Plarium Global LTD. 2019Do not distribute

90Проектирование объектов: как открыть бутылку с водой

No Yes

Декомпозиция на объекты

Copyright Plarium Global LTD. 2019Do not distribute

91Проектирование объектов: как открыть бутылку с водой

No Yes

Декомпозиция на объекты

Copyright Plarium Global LTD. 2019Do not distribute

Так как же все-таки открыть бутылку с водой?

Copyright Plarium Global LTD. 2019Do not distribute

Copyright Plarium Global LTD. 2019Do not distribute

Всё решает предметная область :-)

Copyright Plarium Global LTD. 2019Do not distribute

Copyright Plarium Global LTD. 2019Do not distribute

Copyright Plarium Global LTD. 2019Do not distribute

Copyright Plarium Global LTD. 2019Do not distribute

THANK YOU

Recommended