Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

471 views

Published on

Доклад Андрея Музалевского на Съесть собаку #7, 16/02/17

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Принципы SOLID на практике
  2. 2. Слайд про меня Музалевский Андрей 10+ лет разработки 4 года разработки на JS
  3. 3. Структура ● Теория ● Фреймворки через призму SOLID
  4. 4. Принцип единственной ответственности
  5. 5. Как использовать ● Делить функционал на классы ● Следить за чистотой классов во время: - Разработки - Баг-фикса - Хот-фиксов
  6. 6. Принцип открытости/закрытости
  7. 7. Как использовать ● Разделить сущности в проекте на категории - Экспериментальные - Стабильные - Deprecated (Не рекомендованные) ● Ввести в проект процедуру заморозки API классов - Дать коду вылежаться - Провести ревью кода перед заморозкой
  8. 8. Принцип подстановки Барбары Лисков
  9. 9. Как использовать • Пишите юнит-тесты на интерфейсы и базовые классы • Запускайте юнит-тесты для базового класса или интерфейса на классах наследниках
  10. 10. Принцип разделения интерфейсов
  11. 11. Как использовать • Не бояться “создавать интерфейс ради интерфейса” • Следить за чистотой интерфейсов во время: – Разработки – Баг-фикса – Хот-фиксов
  12. 12. Принцип инверсии зависимостей
  13. 13. Как использовать • Писать тесты • Писать код без new() – Вынести логику создания объектов наружу, в управляющий код
  14. 14. Принципы SOLID ● Уменьшают цену поддержки продукта ● Упрощают баг-фикс
  15. 15. Backbone и SOLID
  16. 16. Backbone и SOLID ● Нет иерархии View ● Смешивание ответственности View - из-за неправильного использования(!)
  17. 17. Flux, Redux и SOLID ● Четко очерченные зоны ответственности - Action creator - Dispatcher - Store - View(from React) ● Redux - нарушает принцип единственной ответственности ● Redux - нет информации, как расширять приложение
  18. 18. React и SOLID ● Четко очерченные зоны ответственности - View ● shouldComponentUpdate - имеет слишком большую ответственность ● Реализации контекстов не хватает для Dependency Injection (не Dependency Inversion)
  19. 19. Один из предков в дереве реализует shouldComponentUpdate Выбор дочернего компонента происходит через механизм внедрения зависимости
  20. 20. Что же делать дальше ● SOLID - не икона, чтобы молиться ● Продолжать обучаться - использовать SOLID при написании кода ● Делать ретроспективы - изучать влияние на скорость багфикса - изучать влияние на скорость рефакторинга
  21. 21. Спасибо! Q&A twitter: amuzalevskiy Почитать: http://goo.gl/soxxEw

×