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

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

Upload: eatdog

Post on 03-Mar-2017

107 views

Category:

Engineering


1 download

TRANSCRIPT

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

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

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

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

Структура

● Теория

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Принципы SOLID

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

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

Backbone и SOLID

Backbone и SOLID

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

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

Flux, Redux и SOLID

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

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

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

React и SOLID

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

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

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

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

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

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

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

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

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

Спасибо!Q&A

twitter: amuzalevskiy

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