В данном докладе мы рассмотрим пять основных принципов дизайна классов в объектно-ориентированном проектировании, которые известны, как принципы SOLID. А также как обеспечить достаточный уровень гибкости, связанности, управляемости, стабильности и понятности кода.
Sergey Teplyakov, .NET Expert, “SOLID Principles in the real world”:
• Why design principles matters?
• SOLID principles in the real world
S – Single Responsibility Principle
O – Open-Closed Principle
L – Liskov Substitution Principle
I – Interface Segregation Principle
D – Dependency Inversion Principle
Introduction
What are design patterns?
List of design patterns in Drupal 8 core
Patterns explanation in simple words
Usage examples from Drupal 8 core
https://drupalcampkyiv.org/node/59
Краткий обзор фрэймворка AngularJS: что это такое и зачем все эти сложности. И сложности ли это вообще.
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://devowl.org/
В данном докладе мы рассмотрим пять основных принципов дизайна классов в объектно-ориентированном проектировании, которые известны, как принципы SOLID. А также как обеспечить достаточный уровень гибкости, связанности, управляемости, стабильности и понятности кода.
Sergey Teplyakov, .NET Expert, “SOLID Principles in the real world”:
• Why design principles matters?
• SOLID principles in the real world
S – Single Responsibility Principle
O – Open-Closed Principle
L – Liskov Substitution Principle
I – Interface Segregation Principle
D – Dependency Inversion Principle
Introduction
What are design patterns?
List of design patterns in Drupal 8 core
Patterns explanation in simple words
Usage examples from Drupal 8 core
https://drupalcampkyiv.org/node/59
Краткий обзор фрэймворка AngularJS: что это такое и зачем все эти сложности. И сложности ли это вообще.
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://devowl.org/
Las Tic y sus Implicaciones Educativasyelgimanuelp
En este trabajo que estoy haciendo público, el cual trata sobre Las Tic, su potencial y efectividad en el proceso enseñanza aprendizaje, ventajas y desventajas y las Características del modelo pedagógico.
Las Tic y sus Implicaciones Educativasyelgimanuelp
En este trabajo que estoy haciendo público, el cual trata sobre Las Tic, su potencial y efectividad en el proceso enseñanza aprendizaje, ventajas y desventajas y las Características del modelo pedagógico.
What is Gitex? Is it a worth to participate in this event? Which companies are participating in Gitex this year?
Hiteshi Reveals all the answers here:
GITEX Technology Week is one of the largest technology events in Dubai, and it is back again in 2016. It is a gateway for global brands to access the Middle East.
From Push to Pull: Digital Transformation of Mobile AdvertisingHiteshi
Mobile is growing faster than all other digital advertising formats. This rapidly exceeding evolution gasps the interest to what’s NEXT? And here’s the answer-
BSUPERIOR SYSTEM provides customized data management solutions for businesses to manage and execute efficient and effective process and task management systems.
Contact us for consultation today info@bsup.ca or +1(778)891-2769
BSUPERIOR SYSTEM provides customized data management solutions for businesses to manage and execute efficient and effective process and task management systems.
Contact us for consultation today info@bsup.ca or +1(778)891-2769
Кирилл Маурин «Проектирование и разработка модульных приложений»MskDotNet Community
Выступление с MSK .NET Meetup #7
21 февраля 2017
Во вдоль и поперек изъезженной теме разработки модульных приложений есть много нового и полезного для большей части аудитории. Много материала из личного опыта автора с иллюстрацией из собственной микробиблиотеки с отрытым исходным кодом.
Кирилл Маурин «Проектирование и разработка модульных приложений» Yulia Tsisyk
Выступление с MSK .NET Meetup #7
21 февраля 2017
Во вдоль и поперек изъезженной теме разработки модульных приложений есть много нового и полезного для большей части аудитории. Много материала из личного опыта автора с иллюстрацией из собственной микробиблиотеки с отрытым исходным кодом.
Netpeak Group продолжает серию образовательных мероприятий — #NetpeakTalks в Одессе.
В рамках этих встреч у тебя будет возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
Тема#3: Масштабируемое приложение на PHP
Краткий план:
1. Теория принципов и паттернов проектирования.
2. Примеры использования принципов и паттернов в коде (разберём какие "плюшки" даёт каждый случай).
3. Важность слабосвязанного кода (IoC).
4. Как "под капотом" работают IOC контейнера.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
FaceBook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
__________
Плейлист с выступлениями на YouTube: https://www.youtube.com/playlist?list=PL8LIMl0TjrcDtSS_lM5jqH-huK5FCq44A
__________
Las Tic y sus Implicaciones Educativasyelgimanuelp
En este trabajo que estoy haciendo público, el cual trata sobre Las Tic, su potencial y efectividad en el proceso enseñanza aprendizaje, ventajas y desventajas y las Características del modelo pedagógico.
Las Tic y sus Implicaciones Educativasyelgimanuelp
En este trabajo que estoy haciendo público, el cual trata sobre Las Tic, su potencial y efectividad en el proceso enseñanza aprendizaje, ventajas y desventajas y las Características del modelo pedagógico.
What is Gitex? Is it a worth to participate in this event? Which companies are participating in Gitex this year?
Hiteshi Reveals all the answers here:
GITEX Technology Week is one of the largest technology events in Dubai, and it is back again in 2016. It is a gateway for global brands to access the Middle East.
From Push to Pull: Digital Transformation of Mobile AdvertisingHiteshi
Mobile is growing faster than all other digital advertising formats. This rapidly exceeding evolution gasps the interest to what’s NEXT? And here’s the answer-
BSUPERIOR SYSTEM provides customized data management solutions for businesses to manage and execute efficient and effective process and task management systems.
Contact us for consultation today info@bsup.ca or +1(778)891-2769
BSUPERIOR SYSTEM provides customized data management solutions for businesses to manage and execute efficient and effective process and task management systems.
Contact us for consultation today info@bsup.ca or +1(778)891-2769
Кирилл Маурин «Проектирование и разработка модульных приложений»MskDotNet Community
Выступление с MSK .NET Meetup #7
21 февраля 2017
Во вдоль и поперек изъезженной теме разработки модульных приложений есть много нового и полезного для большей части аудитории. Много материала из личного опыта автора с иллюстрацией из собственной микробиблиотеки с отрытым исходным кодом.
Кирилл Маурин «Проектирование и разработка модульных приложений» Yulia Tsisyk
Выступление с MSK .NET Meetup #7
21 февраля 2017
Во вдоль и поперек изъезженной теме разработки модульных приложений есть много нового и полезного для большей части аудитории. Много материала из личного опыта автора с иллюстрацией из собственной микробиблиотеки с отрытым исходным кодом.
Netpeak Group продолжает серию образовательных мероприятий — #NetpeakTalks в Одессе.
В рамках этих встреч у тебя будет возможность обсудить с практикующим спикером наболевшие темы, связанные с R&D, дизайном, менеджментом, интернет-маркетингом, QA, Customer Success, аналитикой и др. (все темы от встречи к встрече не повторяются и отличаются друг от друга).
Тема#3: Масштабируемое приложение на PHP
Краткий план:
1. Теория принципов и паттернов проектирования.
2. Примеры использования принципов и паттернов в коде (разберём какие "плюшки" даёт каждый случай).
3. Важность слабосвязанного кода (IoC).
4. Как "под капотом" работают IOC контейнера.
_____________________
Информацию об этом и следующих мероприятиях ты можешь отследить:
FaceBook: https://www.facebook.com/NetpeakTalks/
Телеграм: https://t.me/netpeaktalks
__________
Плейлист с выступлениями на YouTube: https://www.youtube.com/playlist?list=PL8LIMl0TjrcDtSS_lM5jqH-huK5FCq44A
__________
"Рекомендации по проектированию API". Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
"Рекомендации по проектированию API" — Марина Степанова, ЯндексYandex
В докладе говорится о проектировании архитектуры API — начиная с того, о ком должен думать разработчик в начале работы, и до секретов «безболезненного» рефакторинга. От общей культуры формирования интерфейсов до правки багов и поддержки обратной совместимости. А также пара слов о документации — фасаде любого API.
Чистая архитектура с VIPER / Сергей Крапивенский (Rambler&Co)Ontico
- Что такое "чистая" архитектура приложений. Чем грозит "грязная" архитектура, чем от нее отличается "чистая" архитектура, и какой от нее профит.
- История появления VIPER.
- Идея VIPER. Как изменяется структура приложения при применении этого подхода.
- Опыт использования VIPER в Rambler&Co. Что мы изменили и добавили.
- Работа с VIPER на примере user story из реального приложения.
- Выводы: чем помогает VIPER и когда его использовать не стоит.
Similar to Проблемы точечной застройки в больших городах или зачем нужен Dagger (20)
15. DDependency inversion principle
(принцип инверсии
зависимостей)
DIP определяет отношение этих трех сущностей так:
a) Клиент ничего не должен знать о реализации модуля.
Он имеет дело только с интерфейсом;
b) Реализация модуля не должна знать о клиенте. Она
предоставляет функциональность и реализует
определенный интерфейс;
c) Интерфейс не должен зависеть от реализации. Он
вообще не должен знать о ней;
d) Реализация должна зависеть от интерфейса;
20. Проблема доступа к модулям:
При вызове конструктора получится, что
модуль зависит от конкретного места его
применения.
Если в коде используются
многочисленные конкретные классы, его
придется изменять с добавлением новых
конкретных классов.
23. 1. Service Locator
• Неясный контракт класса
Сервис-локатор многие считают анти-паттерном:
• Неопределенная сложность класса
24. 2. Использовать механизм Dependency injection
Три пути, которыми мы можем доставить классу
нужные параметры:
1) Constructor Injection (инъекция в конструктор)
25. 2. Использовать механизм dependency injection
Три пути, которыми мы можем доставить классу
нужные параметры:
2) Field Injection (инъекция в поле)
26. 2. Использовать механизм dependency injection
Три пути, которыми мы можем доставить классу
нужные параметры:
3) Method Injection (инъекция в метод)
39. • Runtime валидация графа зависимостей
• reflection
Dagger 2:
• Никакого reflection
• Compiletime валидация графа зависимостей.
• Классная кодогенерация.
Guice, RoboGuice, Spring, PicoContainer …
Dagger 1:
• Compile-time валидация графа зависимостей
• Избавлен от кучи reflection, но по прежнему
использует ее для загрузки сгенерированных классов
42. Dagger API
@Component
@Subcomponent — мост
между модулями и
клиентами зависимостей.
Определяет какие модули
будут предоставлять
зависимости. Указываем
куда хотим инжектить
и/или геттер, который
вернет зависимость.
44. Dagger API
@MapKey — определить коллекцию
зависимостей
@Qualifier — тегируем зависимости,
которые имеют один и тот же
интерфейс.
@Lazy — ленивая инициализация
зависимости.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55. Итого:
• Не забывайте про SOLID принципы
• Пишите модульный код
• Не переабстрагируйтесь
• Предпочитайте DI сервис локатору
• DI framework в android – Dagger 2