Тёмный

КАК ПИСАТЬ ХОРОШИЙ КОД? SOLID В ПИТОНЕ 

Андрей Иванов | Python
Подписаться 19 тыс.
Просмотров 8 тыс.
50% 1

Андрей Иванов - Питон
Используйте мою ссылку в криптобирже OKEX и получите -10%:
www.okx.com/join/PYTHONANDREY
Мои курсы на UDEMY: www.udemy.com/user/andrey-iva...
Пожертвования: www.donationalerts.com/r/pyth...
Github: github.com/knucklesuganda
Telegram канал: t.me/pypapyrus_ru
Другие Видео по Python: ru-vid.com?list...
Канал на английском языке: ru-vid.com/show-UCeC9...
Поставьте лайк и подпишитесь!
#Python #Питон #программирование #programming

Опубликовано:

 

28 апр 2022

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 23   
@Nonstop4ik
@Nonstop4ik 3 месяца назад
Очень хорошее объяснение. Отличные примеры. Респект
@terenpospolity
@terenpospolity 2 года назад
В целом, объяснение на примерах намного лучше теоретических абстрактных описаний, однако я бы рекомендовал перед записью написать сценарий материала, чтобы объяснение не было таким скомканым. Спасибо.
@rockkley9159
@rockkley9159 2 года назад
Подписываюсь. Или перезаписать скомканные моменты можно.
@LizardTLT
@LizardTLT 4 месяца назад
Очень толково. Без воды, самая суть.
@user-pg8ry1tm3t
@user-pg8ry1tm3t 4 месяца назад
Пятый принцип, как писали когда-то в с++ репортс, и есть следствие выполнения 2-го и 3-го принципов. Если хотите расширять код без модификации старых классов, хотите соблюдения Лисков, и вам нужно полиморфное поведение типов, решение следующее - наследуйте нафиг все классы от интерфейсов. И да, сегрегируйте эти самые интерфейсы достаточно грамотно, используя в дальнейшем множественное наследование от интерфейсов. В примере на 4-й принцип имхо следует просто написать даа или четыре интерфейса, а потом множественно наследовать нужное поведение… имхо. За ролик спасибо! Убедился в общем окончательно, что и в питоне можно писать норм код.
@user-je6dz7vz4y
@user-je6dz7vz4y Год назад
Спасибо. Просто и понятно.
@izzzanaaami
@izzzanaaami 2 года назад
Ты перевернул мне понятия, и наконец-то я их понял!
@__.X3.__
@__.X3.__ 23 дня назад
*2 принцип (OCP) для понимания пример хороший, но на практике в большинстве случаев это будет наоборот не хороший код/не хорошее решение:* В примере уже был написан метод, который мы так или иначе модифицировали (или добавление условия или разбиением условного блока на методы в разных классах), оба решения это модификация, оба примера это нарушение OCP. 1.Вот так на рил проекте, перекраивать дизайн уже существующих класов - не ок, наловите багов даже с автотестами (если вам еще дадут на них деньги). 2.Если так дробить весь код (все методы и классы) проекта, его будет не возможно читать (на каждое действие кода др.файл). А если у заказчика поменяется бизнес логика, то вам будет проще переписать все с нуля. 3.Для чистого выполнения этого принципа без нарушений, требуется с самого начала правильно проэктировать дизайн классов (чтоб будущая функциональность могла расширять уже существующие классы), что опять же разбивается о почти любое изменение требований заказчика (что на рил проэктах просто база). 4.Невозможно писать код только расширением, т.е. нельзя закрыть все классы от модификаций. Заказчик найдет багу, для которой вам нужно будет модифицировать уже написанный класс, или будете ради солида писать новый? 5.Никто польностью не покрывает этим принципом весь код проекта, откройте любой сорс, тойже джанги. А с отдельными классами, где вам это действительно нужно, это хороший принцип. ps с другими принципами ситуация такая же
@andreybalin9314
@andreybalin9314 11 месяцев назад
Супер 👍
@user-re1ri9jp3e
@user-re1ri9jp3e 2 года назад
😁 вот оно 👍
@Dgimolunga
@Dgimolunga 2 года назад
топчик
@petr_khramov
@petr_khramov Год назад
Спасибо. Понятно все, кроме 5 принципа, который ты называл самым простым. Я вот его ни как не осмыслю. На хабре приводился пример, где есть класс, который ищет студентов, принадлежащих конкретной команде (синяя, красная, зеленая команды через Enum). И если этот высокоуровневый класс поиска наследовать от реализации низкоуровнего класса, который добавляет студента в команду - это плохо, т. к. он реализует это через список. Хорошо - типа создать абстракцию - класс поиска студентов в команде и в классах высокого уровня наследоваться от этой абстракции или допустим использовать в конструкторе и тогда типа все равно, как реализуется добавление студента в комманду - через список, словарь или кортеж. Звучит то принцип понятно, а вот в коде оказалось не так просто смысл уловить.
@ahil7800
@ahil7800 2 года назад
7:00 А если у нас пользователь был сначала normal, потом стал vip, а потом supervip. Mы ему что каждый раз будем класс менять?
@exe88cution
@exe88cution 2 года назад
Круть, а как ты одновременно на нескольких строках пишешь?
@Cloud-zw4ml
@Cloud-zw4ml Год назад
нажимаешь alt и не отпуская выбереш строк
@alexchto
@alexchto Год назад
С первого просмотра пока не все понял. Пересмотрю еще разок, когда переварю инфу
@RunBull
@RunBull 3 месяца назад
а как быть в случае "главной" функции ? где например сначала приходят данные с запроса, потом эти данные отправляются в функцию и оттуда приходят новые, потом в другую и так еще раз 10
@RunBull
@RunBull 3 месяца назад
у меня страдает читаемость из за этого, у меня такие главные функции обычно на 200-400 строк
@Nonstop4ik
@Nonstop4ik 3 месяца назад
@@RunBullочень много. просто попробуй декомпозицию. Что такое декомпозиция? Это разбиение большой и сложной задачи на маленькие, максимально независимые друг от друга части. Придерживайся принципа - S.
@ahil7800
@ahil7800 2 года назад
2:00 Возможно вы учили фреймворк джанго. Так вот там встроенных методов с and и or в названии выше крыши. get_or_create, create_or_update и т. д.
@david_shiko
@david_shiko 2 года назад
create_or_update в народе называется upsert, достаточно частая операция в бд. Лично я не вижу преимущества get_or_create перед "if something: create else update". Явное лучше неявного. Кстати джанго не является примеров эталонной архитектуры.
@2173045
@2173045 7 месяцев назад
Ты карлик ?
@Nonstop4ik
@Nonstop4ik 3 месяца назад
я да.
Далее
Все мы немного Адриана 😂😂😂
00:11
Разница подходов
00:59
Просмотров 307 тыс.
Все мы немного Адриана 😂😂😂
00:11