Download - S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

Transcript
Page 1: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

Принципы S.O.L.I.D

Page 2: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Page 3: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

Зачем они нужны?

Page 4: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

• Чистый код• Возможность многократного

использования кода• Позволяет построить

понятную, объектно-ориентированную систему

Page 5: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

S.O.L.I.D

• S (Single responsibility / Принцип единственной ответственности)

• O (Open-closed / Принцип открытости - закрытости)

• L (Liskov substitution / Принцип подстановки Барбары Лисков)

• I (Interface segregation / Принцип разделения интерфейса)

• D (Dependency Invertion / Принцип инверсии зависимостей)

Page 6: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

S (Single responsibility / Принцип единственной ответственности)

«На каждый объект должна быть возложена одна единственная

обязанность»

Page 7: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Page 8: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

-refactoring

Page 9: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

O (Open-closed / Принцип открытости - закрытости)

«программные сущности должны быть открыты для расширения, но закрыты для

модификации»

Page 10: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Page 11: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

-refactoring

Page 12: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

L (Liskov substitution / Принцип подстановки Барбары Лисков)

«Объекты в программе могут быть заменены их наследниками без изменения

свойств программы».

Page 13: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Page 14: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

I (Interface segregation / Принцип разделения интерфейса)

«Много специализированных интерфейсов лучше, чем один универсальный»

Page 15: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Page 16: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

-refactoring

Page 17: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

D (Dependency Invertion / Принцип инверсии зависимостей)

«Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего

уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от

абстракций»

Page 18: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014
Page 19: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

-refactoring

Page 20: S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

Спасибо за внимание!Email: [email protected]

Skype: axi.by