Top Banner
Принципы SOLID на практике
38

Принципы Solid на практике

Mar 03, 2017

Download

Engineering

EatDog
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Принципы Solid на практике

Принципы SOLID на практике

Page 2: Принципы Solid на практике

Слайд про меня

Музалевский Андрей10+ лет разработки

4 года разработки на JS

Page 3: Принципы Solid на практике

Структура

● Теория

● Фреймворки через призму SOLID

Page 4: Принципы Solid на практике

Принцип единственной ответственности

Page 5: Принципы Solid на практике
Page 6: Принципы Solid на практике
Page 7: Принципы Solid на практике

Как использовать

● Делить функционал на классы

● Следить за чистотой классов во время:- Разработки- Баг-фикса- Хот-фиксов

Page 8: Принципы Solid на практике

Принцип открытости/закрытости

Page 9: Принципы Solid на практике
Page 10: Принципы Solid на практике
Page 11: Принципы Solid на практике

Как использовать

● Разделить сущности в проекте на категории- Экспериментальные- Стабильные- Deprecated (Не рекомендованные)

● Ввести в проект процедуру заморозки API классов- Дать коду вылежаться- Провести ревью кода перед заморозкой

Page 12: Принципы Solid на практике

Принцип подстановкиБарбары Лисков

Page 13: Принципы Solid на практике
Page 14: Принципы Solid на практике
Page 15: Принципы Solid на практике

Как использовать

• Пишите юнит-тесты на интерфейсы и базовые классы

• Запускайте юнит-тесты для базового класса или интерфейса на классах наследниках

Page 16: Принципы Solid на практике

Принцип разделения интерфейсов

Page 17: Принципы Solid на практике
Page 18: Принципы Solid на практике
Page 19: Принципы Solid на практике

Как использовать

• Не бояться “создавать интерфейс ради интерфейса”

• Следить за чистотой интерфейсов во время:– Разработки– Баг-фикса– Хот-фиксов

Page 20: Принципы Solid на практике

Принцип инверсии зависимостей

Page 21: Принципы Solid на практике
Page 22: Принципы Solid на практике
Page 23: Принципы Solid на практике
Page 24: Принципы Solid на практике

Как использовать

• Писать тесты

• Писать код без new()– Вынести логику создания объектов наружу,

в управляющий код

Page 25: Принципы Solid на практике

Принципы SOLID

● Уменьшают цену поддержки продукта

● Упрощают баг-фикс

Page 26: Принципы Solid на практике

Backbone и SOLID

Page 27: Принципы Solid на практике
Page 28: Принципы Solid на практике

Backbone и SOLID

● Нет иерархии View

● Смешивание ответственности View- из-за неправильного использования(!)

Page 29: Принципы Solid на практике
Page 30: Принципы Solid на практике
Page 31: Принципы Solid на практике

Flux, Redux и SOLID

● Четко очерченные зоны ответственности- Action creator- Dispatcher- Store- View(from React)

● Redux - нарушает принцип единственной ответственности

● Redux - нет информации, как расширять приложение

Page 32: Принципы Solid на практике
Page 33: Принципы Solid на практике
Page 34: Принципы Solid на практике
Page 35: Принципы Solid на практике

React и SOLID

● Четко очерченные зоны ответственности- View

● shouldComponentUpdate - имеет слишком большую ответственность

● Реализации контекстов не хватает для Dependency Injection (не Dependency Inversion)

Page 36: Принципы Solid на практике

Один из предков в деревереализуетshouldComponentUpdate

Выбор дочернего компонента происходит через механизм внедрения зависимости

Page 37: Принципы Solid на практике

Что же делать дальше

● SOLID - не икона, чтобы молиться

● Продолжать обучаться- использовать SOLID при написании кода

● Делать ретроспективы- изучать влияние на скорость багфикса- изучать влияние на скорость рефакторинга

Page 38: Принципы Solid на практике

Спасибо!Q&A

twitter: amuzalevskiy

Почитать:http://goo.gl/soxxEw