Тайм-коды: ООП, Наследование, принципы S.O.L.I.D. 1:03 5 принципов создания классов: S.O.L.I.D. 4:36 принцип единственной ответственности классов 6:20 класс Пушка 8:48 иллюстрация на доске Пушка. Расширение функционала 11:03 несколько осей изменений не должны проходить через один класс 14:35 антипаттерн божественный объект GodObject. Шаблон проектирования программы 22:33 Иерархия 27:04 принцип подстановки Барбары Лисков 27:23 Подкласс (производный). Класс наследник. Надкласс (базовый) 30:37 Абстрактный класс 32:51 Ассоциация между классами 35:15 Наследование. Выстраивает иерархию типов 35:36 абстрактные методы 36:45 принцип инверсии зависимостей 40:24 принцип подстановки Барбары Лисков 48:33 код. Иерархия Hierarchy.py 50:03 явный вызов конструктора надкласса. Конструктор производного класса обязательно должен звать конструктор базового 53:37 метод super() - это функция, которая возвращает надкласс 57:38 gun.py 1:01:20 код 1:03:39 второй механизм в ООП как вести себя с множеством объектов 1:09:20 добавление в код иерархии 1:13:23 в конструкторе подкласса, при вызове super().__init__(), не нужно прописывать свойства конструктора надкласса, оно само 1:23:03 Агрегация. Класс-агрегат содержит в себе объекты других классов
@rioriocccp5929
Жыл бұрын
и сюда лайки накидайте) каждому 10му лайку питон в подарок
@iritaka
Жыл бұрын
@@rioriocccp5929 )))
@expertkmsdv84
3 жыл бұрын
кто ждет новый выпуск? поставь лайк Тимофею! самый крутой бесплатный курс обучения.
@WildFlash1st
3 жыл бұрын
К сожалению, у лайфхаков и котиков популярность выше(
@vi__kawaii
3 жыл бұрын
56:05 Когда зашел в vim: - Я не понимаю как мне теперь выйти
@СергейКапран-я7п
3 жыл бұрын
Войти в режим редактирования: I или клавиша Insert Выйти из режима редактирования: Esc Записать и выйти из vim: :wq (двоеточие, write, quit) либо ZZ (shift + zz) Выйти без записи из vim: :q! либо ZQ (принцип с shift сохраняется) По vim много документации и видео по настройке
@williamdavis1629
2 жыл бұрын
качественный коммент
@fortnitelifechannel6994
3 жыл бұрын
Как всегда - приятно слушать и смотреть)
@crissquest3258
3 жыл бұрын
У вас есть объект - Автомобиль. В нём есть метод -> Пуск ! Этот метод знает о классе -> Двигатель , и умеет его запустить. Класс Двигатель - имеет свойство - Температура , и исходя из значения этого свойства -> может обратиться к Классу -> Вентилятор , и вызвать у него метод ПУСК. При должной организации приватности - всё будет работать безопасно . Если вы всё напишите в одно ПОЛОТНО , или в одну функцию , помимо того , что будет сложно уследить\понять\изменять\ , то ещё и кто то сможет напрямую запустить вентилятор , или обратиться и изменить свойство двигателя - температура. Специально - или как бывает чаще - нечаянно .
@Deli_Berate
3 жыл бұрын
Добавлю, что при увеличении детализации задачи, её более точного описания у вас будут появляться новые классы, а старые станут "вспомогательными". Если у вас есть не только датчик температуры, а датчик оборотов, датчик давления топлива в рампе, давления в турбине - это всё будут классы. Оперировать объектами этих классов из класса "двигатель" неправильно. Так у вас появится класс ЭБУ. В классе ЭБУ вероятно, понадобятся подклассы отвечающие за топливную смесь, трекшн контроль, распределение момента, и т.д. Старайтесь документировать каждый класс, каждый метод, даже если он ВАМ кажется простым и понятным. Это очень важный аспект, который отличает хороших программистов от говнокодеров.
@crissquest3258
3 жыл бұрын
@@Deli_Berate разумеется - правильное проектирование архитектуры - как фундамент и высокого здания.
@ВикторБородин-р6с
3 жыл бұрын
Кто-нибудь знает, можно ли исправить неправильную отрисовку графиков с помощью numpy? Можно взять к примеру график 1/x. Ветви гиперболы не уходят асимптотически вверх и вниз, вместо этого отрисовывается странный зигзак. Есть так же проблема с поиском предела. Я возможно, неправ, но lim ( x -> 0 ) 1/x не равен бесконечности, как об этом говорит sympy. Предел в любом случае не существует, но то, что в этой точке пределы слева и справа равны -оо и +oo, как я помню, не позволяют написать то, что lim ( x -> 0 ) 1/x = oo
@glazalmaz8512
3 жыл бұрын
И был класс Таргет. И не мог он двигаться. И тогда создал Бог класс МовинТаргет. Но так как был немного выпимши, то метод Мов прицепил к классу Таргет. Зачем он так сделал? Чтобы менеджер мог ДВИГАТЬ НЕПОДВИЖНЫЕ ТАРГЕТЫ!!! :facepalm:
@dimapanicov9420
3 жыл бұрын
дайте ссылку на GIT плз
@ПетрНестерович-е5я
3 жыл бұрын
чтобы сделать матрешку надо сделать матрешку...
@Мишаня-в7ф
3 жыл бұрын
чтобы понять матрешку, надо мыслить как матрешка...
@phat80
3 жыл бұрын
Когда я изучал SOLID, для меня самым легким пунктом для запоминания был Open-Closed, именно второй, А LSP, наверное, самым трудным, который постоянно вылетал из головы.
@ИгорьНагибин-у2ж
4 ай бұрын
топ
@ДобродейНиколай
2 жыл бұрын
Очень признателен вам, Тимофей, за ваш труд и старания! 👍
@jamjam3337
9 ай бұрын
👍
@nikprilutskiy7064
Жыл бұрын
Нормально лекция началась: "Что-то я это не помню, да и хрен бы с ним" ))
@валерийсоколов-п4я
3 жыл бұрын
Прекрасная подача материала
@Maine__Coon__1
Жыл бұрын
Вообще про ООП не понятно ничего
@Tubik123bubik
3 жыл бұрын
Надо погуглить для нашего друга все заголовки принципа solid, гы гы гы..)) Подняли настроение прямо вначале.
@АлександрВалерьевич-ц6щ
3 жыл бұрын
ПОдскажите а где все эти лекции посмотреть, в плейлисте пайтон 20202 только 1 лекция, а на транляции не успеваю никак(
@lavrost
3 жыл бұрын
Они остаются на этом канале
@Maine__Coon__1
Жыл бұрын
Спасибо🙏
@dutik
3 жыл бұрын
За электриков было обидно:)))) Я про момент с бутылкой водки)))
@ВалерийКетрис
3 жыл бұрын
Здравствуйте. У меня вопрос: есть три вида лекций Тимофея( практика программирования на пайтоне, алгоритмы на пайтоне и анализ данных на пайтоне). Я так понимаю, что это один курс по возрастанию сложности. я правильно понимаю? Как он проходит в университете? Я имею ввиду: по каким семестрам и на каких курсах?
@svitq368
3 жыл бұрын
Если еще нужно , то я так понял 1(возможно начало 2) семестр 1 курса
@fanismukhametzhanov4970
3 жыл бұрын
Лучший!
@xvaleriuc
3 жыл бұрын
Привет хочу научиться программирования, я запутался и не знаю с чего начинать, подскажите лекцию плз.
@phat80
3 жыл бұрын
Я бы сначала русскому языку научился. А так вбиваешь в поисковике «основы программирования», куча ссылок будет. Но я не советую тебе тратить на это время, если даже поиск в интернете у тебя вызывает трудности. Программистам часто приходится искать ответы на их вопросы в интернете и это уже не так просто найти, как основы.
@lavrost
3 жыл бұрын
Можно просмотреть гарвардский курс CS50(kzitem.info/news/bejne/tI2Vu3ewf4Foi2U) в переводе от JavaRush, там как раз основы
@SeriesWOT
3 жыл бұрын
Одобряю
@v_potoke
2 жыл бұрын
что он пишет?) ввобще ничего не понятно что к чему)
@МаксимНиколаевичЧубин
3 жыл бұрын
Тимофей все отлично, спасибо! Но пожалуйста, крепите микрофон чуть пониже на грудь. Слышны все причмокивания, сглатывания слюны, дыхание и пр.
@glazalmaz8512
3 жыл бұрын
Когда ООПу еще не учили, а его приходилось изучать самому, не было никаких СОЛИД. Были три принципа ООП: наследование, инкапсуляция, полиморфизм. Объекты не для хранения данных, они для исполнения определенного поведения! Координаты х и у никакого отношения к поведению не имеют. Это "коммерческая тайна" объектов как они будут реализовывать своё поведение. Поэтому писать под именем класса в первую очередь данные и лишь во вторую методы - не только не по ООПшному, но и вредно при объяснении ООП. Правильно было бы не координаты и скорость вписывать в прямокгольники классов, а вот как: - снаряд _появляется_ на экране, _перемещается_ по нему и в конце концов _исчезает_ - таргет _появляется_ на экране, _перемещается_ по нему, может _исчезнуть_ и _сбросить_ бонбу - бонба _появляется_ на экране, _перемещается_ по нему и в конце концов _исчезает_ - кэннон _появляется_ вместе с экраном, может _стрельнуть_ и может _исчезнуть_ - все объесты в любое время _показаны_ на экране
@ZZZ5204
3 жыл бұрын
@GlazAlmaz фигню какую-то пишете, имхо. Вы в своих примерах вообще забыли про атрибуты классов и объектов. Судя по вашему комментарию, под классом вы понимаете ТОЛЬКО КОД(набор методов), при этом игнорируете атрибуты
@glazalmaz8512
3 жыл бұрын
@@ZZZ5204 Вы так восприняли мою "фигню" потому что не различаете проектирование и реализацию. Моя фигня - про проектирование. А ваша - про реализацию. И вот при реализации как раз и появляются атрибуты. А при проектировании про них не только можно, но и нужно забыть. Подумайте почему существуют чисто виртуальные классы (интерфейсы) и зачем бы они были нужны если у них нет атрибутов? В документации ни одной питоновской библиотеки я не встречал упоминание локальных данных (которые и есть атрибуты классов). Оказывается можно всё рассказать о поведении не упоминая реализацию!
@boobubuo
3 жыл бұрын
про агрегирование .. так можно любую переменную за агрегирование подтянуть .. тоесть тот же вопрос И ЧО ?
@boobubuo
3 жыл бұрын
нихера не понял .. про лизу эту .. тоесть есть сын который делает тоже самое .. плюс типа он делает это так же без дополнительных требований .. и ЧО ? в чем суть то ?? ну делает .. дальше ЧТО ? зачем об этом вааабще говорить .. может добавить еще требование что он в космос так же не летает ?
Пікірлер: 45