PYTHON )))))
HTML-код
- Опубликовано: 4 июн 2024
- Привет
ya.cc/t/EdbL-nzP4DLrJ6 - Освойте основы Python-разработки на бесплатном курсе от Яндекс Практикума
Чтобы стать программистом - нужно программировать. Постоянная практика, решение проблем.
В видео мы пишем каркас музыкального приложения, покрывая это все толстым слоем ООП, паттернами проектирования и GUI.
Каждый паттерн будет реализовать какую-то одну фичу из программы, начиная от плагина, вплоть до всяких систем поиска.
Приятного !
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Я wndtn, мне 20 c чем-то лет, и я изучаю computer science и программирую ~10 лет.
Я into С++, и всякие low-level штуки.
У меня есть небольшой проект, xplatform, который вы сможете найти на github, и через него практиковаться в изучении всей базы программирования, и если вам повезет(если вы упорный), вы станете хорошим программистом %)
Если нужна помощь в программировании 1 на 1, чекайте ссылки .
всем добра
Телега - t.me/wndtn
Код - github.com/Winderton/design-p...
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Подпишись сюда:
Telega и чатик - t.me/wndtn
Boosty(менторинг для РФ) - boosty.to/wndtn
Instagram - / winderton
Github проекта(код с канала) - github.com/winderton
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Материалы:
- Гвидо про Синглтон - www.python.org/download/relea...
- Леха Кладов Python
1 - • Лекция 6. Классы I (Пр...
2 - • Лекция 10. Классы II (...
Если не найдете каких-то ссылок и материалов из видео, пишете коммент об этом, я добавлю.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Оборудование:
Камера - Sony a7ii
Объектив - SIgma F1.4 DG
Микрофон - AudioTechnica at2035
Звуковая карта - Scarlett Solo
Петличка - Rode smartlav+
Клавиатура - HyperX Alloy
Вторая клавиатура - apple magic keyboard(black edition)
Монитор DELL 25'
Монитор Asus mg248q
Iphone 11 pro(зеленый)
CAMLINK elgato - для стриминга
JBL headset
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Музыка:
puar in the rough
jeff cadony so many meanings
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
00:00 Введение
01:06 Гайд в ООП
1:46 Шаблоны проектирования
3:22 Синглтон(Окно приложения)
7:39 Абстрактная Фабрика(Выводим Плагины)
11:18 Фабричный метод (Динамика дропа плагинов)
15:26 - Адаптер (Конвертация аудио в миди)
17:50 - Декоратор (Декорируем звук плиганами)
21:20 Фасад (Система Экспорта файлов)
23:05 Итератор (Система поиска)
26:40 Обсервер( Понятие групп и изменения поведения объектов)
29:59 Стратегия (Динамическое изменение объектов)
Ну че, у кого сколько из 10ти?
Супер
Какая у тебя подсветка в visual studio я тебе писал в инст не могу больше там не дают написать, и как ещё можно выучить c++ только начал какие книги прочитать
10
@@cozart5345 блб, там у него на канале столько книг
@@cozart5345 github theme
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще?
Я предполагал
Ты по-моему перепутал
Виндертон и экстрим цоде это конечно бомбическая связка)
@@AirRomantic Ага, только второй программировать умеет, а первый инфоцыганит.
Ахаххахаха
Хорош
Вот это контент. Побольше бы таких видео на канале.
ну, поехали... опять много непонятных сочетаний букв
Со мной тоже самое, хотя для себя очень давно проги всякие пишу)
Ндэээээ
круто, прям даже интересно посмотреть за ходом мысли в решении не тривиальных задач
Спасибо огромное за большое количество информации простым языком. Winderton one love
Спасибо большое за очень полезный материал ☺️
Лууучший тутор на канале считаю!! Хорош братан, давай давай вперёд, контент в кайф
Спасибо, было реально интересно и даже не хотелось заснуть! Пусть будет больше видосов C++ Python 👍🔥
Ты крутой. Продолжай делать то, что делаешь!
Бомбический видос! Большое спасибо!
Спасибо за вклад в моё образование! Ценю бесплатную помощь.
Как же ты хорош. Спасибо!
Отдельная благодарность за развернутое описание под видео
За Python отдельный респект, спасибо за контент )
Окей, абстрактная фабрика... Во-первых, кейс с эквалайзерами это не про абстрактную фабрику: плагины эквалайзеров уже созданы и эйблтон их листит, а не генерирует. Во-вторых, даже с допущением что тут причем-то была фабрика, она тут просто неправильно реализована, потому что выполняет функцию метода 'get all EQs', а не фабрики, роль которой убрать бойлерплейт-код по созданию однотипных объектов Разных классов в Рантайме, когда здесь они все захардкодены и ничем не отличаются (те же параметры, те же свойства). Пример не показывает Чем фабрика лучше просто метода 'list all', потому что в этом примере она и не лучше и в ней вообще нет необходимости.
Душнила, удаляй, пока никто не видит
@@wndtn а то что попаду в черный список у инфоцыган?)
Как этого дауна вообще кто-то смотрит
Раньше писал музло в аблетоне. 30 минут кайфа невероятного. Не ожидал увидеть тут что-то про секвенсоры и синты.
Спасибо за видео, очень понравилось
Как же я рад, что однажды "наткнулся" на канал автора, когда искал инфы про heap память! Какая же годнота! Это видео смотрю и преисполняюсь! Золотой контент!
Качественный видос, лайк
Спасибо! Ничего пока не понял, но очень интересно! мне вообще в программировании нравится больше всего computer science, как процессор работает, память, что такое данные по сути для компьютера и пр. Очень нравится твой канал и подход!
Какой город?
@@rau149миломан сел арбуз и не иметь
Видос клёвый, смотрится отлично) И вместе с тем, ты в видосе много времни уделил на показ ableton, на показ как окна создавать, но пояснений мало для таких человеков как я) То есть приходится внимание тратить больше на синтаксис питона, содание окон, нежели, на понимание работы ableton. Должен сказать, работаю прогером уже года два, знаком с различными DAW, но блин, в итоге из видео я только названия самых популярных паттернов запомнил. Попытка хорошая, лайк, но в целом сложно.
Синглтон - антипаттерн. У тебя есть одна точка входа в приложение - больше тебе ничего не нужно. Всё остальное должно пробрасывать через зависимости или взаимодествовать с верхним уровнем через колбэк события на крайняк.
для удобства можно использовать match/case в функции result, ну и меньше вызовов функции (хотя в этом случае разницы в скорости по сути нет)
match (comp.get(), eq.get()):
case (1, 0):
wet = Compressor(self.dry)
l.config(text=wet.play())
case (0, 1):
wet = EQ(self.dry)
l.config(text=wet.play())
case (1, 1):
wet = EQ(Compressor(self.dry))
l.config(text=wet.play())
case _:
l.config(text=self.dry.play())
С матч кейсом есть одна проблема: его Гопатыч пока не знает, он позже 2021 года появился.
А если помимо эквалайзера и компрессора будет еще 10 декораторов сверху, то вы все 4096 вариантов перебирать будете?
Уточнение по поводу паттерна Фабричный метод. Все-таки классическая реализация этого паттерна состоит в том, что сам по себе метод изначально является абстрактным и никаких параметров не принимает, а уже в конкретной реализации определяется, объект какого именно класса порожден этим методом. Здесь же выбор типа результата почему-то определяется значением аргумента.
Это же надо так уметь делать контент. Работал 10 часов без остановки. Уже начал плавиться мозг и вытекать глаза от постоянного кодинга. В итоге сел покушать и с кайфом провел полчаса)
Так совпало, что юзаю аблетон и увлекаюсь программированием, супер интересно получилось 💪
Ку. Небольшой фикс по 25:30. Поиск работает только по предыдущему вводу. Например, при вводе "hel" искать будет по "he", при вводе "hell" по "hel" и так далее.
Дело в эвенте KeyPress. Он наступает в момент, когда кнопка только нажата. Это происходит раньше, чем значение помещается в поле виджета. Для фикса надо поменять эвент на KeyRelease.
И раз уж пишу коммент - хочу сказать спасибо за видос. Как раз недавно увлёкся паттернами проектирования. А к pet-проекту хотел начинать пилить GUI. Отличный гайд, прекрасная подача.
Сначала используется "{}".format(var), потом "%s" % (var) (ждал пока появится f"{var}").
Ну, знание питона автора, мое почтение...
копипаста с стаковерфлоу она такая.
Объяснить темой, которую я понимаю, тему, которую я не понимаю.. такого я ещё не видел. Лайк 😂
Прикольно было бы узнать как работают приложения удаленного доступа через твой стиль объяснения
OOOOO. Очень круто! Спасибо большое. Теперь это мое любимое твое видео. Наконец-то! Я дождался своего контента!
Братан, хорош, давай, давай, вперёд! Контент в кайф, можно ещё? Вообще красавчик! Можно вот этого вот почаще? ^_^
Видос вдохновил пойти написать таки свой гуи для общения с кастомным контроллером на работе, все ленился
День добрый, господа! Какой фреймворк на данный момент выглядит выигрышней для джуна, если выбор стоит между Qt и JUCE? JUCE сейчас явно обсуждается активнее, но Qt рекомендуют чаще, ибо он в принципе узнаваемее
юху, поставил тысячный лайк, а если серьезно, спасибо за видос, достаточно просто пояснил то, что обычно поясняется чуток посложнее, добра :)
Блин, вроде бы уже все это знаю и в индустрии уже более 10 лет, но слушать все равно интересно. Хорошая зарядка для ума, спасибо.
Правда, выбор языка Python для примеров неудачный.
вин привет, что посоветуешь пока я в 10 классе учить си или c++, думал выучить пока си а потом в колледже уже плюсы бы учил
Учи хоть чтонибудь
С++ и си одинаковы по факту, пока не доходишь до ооп, в си ооп нет, а в С++ есть. Вообще лучше выбирать С++, т.к на нем код поддерживать легче из-за ооп, хотя можно изучить си и написать свое ооп. Как бы решай сам, но С++ имеет больше функций
Ля, новое видео, посмотрю его пока ему несколько лет, а то через несколько десятков лет может потерять актуальность 🤔
Даёшь мучения! Гуи в студию! 😂
Огнищще! Ладно досмотреть. А сделать самому это было бы круто
Так слишком интересно и уже слишком поздно. Завтра с чаем
Интересно что Вы думаете о VB или Lazarus и Python и в целом о визуальном программировании, ведь JS не мене универсален и ближе всего стоит к визуальному программированию... Интересует системное администрирование, Базы данных... Преподавание... и чуть меньше настольная разработка. Ну и Web, но для себя блоги и т.п. Не совсем коммерческое использование... И как раз таки интересует что универсальное вроде швейцарского ножа и не сложное при этом.
Uважуха и респект 😊!!! Дерзай далее!!
А можно ли создавать такое на питоне? Вернее разве на питоне пишут программы?
winderton это паттерн такой?
Спасибо!
Обычно комментарии не пишу, но сейчас прям хочется сказать спасибо за такой качественный контент. Очень приятно смотреть, даже зная о всём что было в видео не смог оторваться)
классное видео!
как тебе идея рассказать что нибудь про ring0 и драйвера в целом? к примеру сделать драйверный мультипоточный сервер
Я очень хочу в it, но не могу определиться куда и на каком яп писать, вроде как нравится направление embedded разработка, бэкэнд тоже, ии интересно, но не как не могу определиться, из языков думаю в сторону c++ , но не знаю будет ли он актуален через условно 10 лет. Сложности не пугают, очень хочу совета, заранее спасибо
Респект за Леху Кладова, грамотный парень, вдохновляет :) Как и автор собственно
Очень хорошо и доступно вс сделано, но почему итератор не реализован по-питоновски при помощи yield в методе __iter__ у непосредственно iterable?
подозреваю, потому что он описывал не готовое а делал с нуля своё
When will there be a java video?
в основном это полезно тем кто с этми уже знаком итак.
не хватает подхода к новичкам и в питоне и в ооп.
Какая у тебя цветовая тема в vs code?
Ну наконец-то что-то интересное
Блин, думал ты как-то глубже раскроешь про парадигмы программирования, историю, и что не все так гладко, плюсы / минусы все дела)
Но тут похоже ты чисто практический видос решил пильнуть)
Спасибо! Видео огонь!!!
2:57 Вспомнил про одну либу для асинхронного использования qt5/6+ в python, вкратце интерфейс спокойно отзывался даже когда при нажатии на кнопку выполняется задача, короче я её давно не пробовал, но вещь классная)) как async-class)))
Главное из этого видео понять как можно реализовать патерны. Сам код питоновский просто ужасный, автор плюсовик, поэтому не стоит писать так как он.
Объясняй где криво, чтобы люди поняли о чем ты
@@wndtn CamelCase вместо snake_case, переопределяешь методы, которые можно не переопределять, если не добавился функционал и тд.
@@wndtn Импорты через * вообще бед практис, так делать не нужно.
использовать global тоже плохая практика.
Ну и аннотации типов, без них сейчас никуда в питоне. Есть еще проблемы, но мне лень их искать.
Сколько времени уже работаю в FL Studio, но вот что бы понимать принцип её работы и прочее, хммммм, надо подучится и написать плагин для неё)
А на счёт создания своего языка программирования когда начнёш примерные сроки?
зачем?
@@lavron4ik855 затем
@@1CDzy я хз. один хуй виндертон код на сях то осилить не может. пиздить чужой код ума много не надо
Какая у тебя тема в visual studio?не могу дописаться до тебя, и что почитать новичку по плюсам я ток начал учить
github theme
по плюсам норм книга от авторов жози лажойе и барбара му. очень доходчиво все объяснено, для новичков самое то
мне одному кажется, что некоторые примеры конкретно всратые? адаптер, декоратор, это что вообще за реализации...
Не одному, судя по коду в гите, его уровень в энтерпрайз вообще отсутствует.
Похоже на очередного инфоцыганенка, который держится на тех, кто не выкупает вообще.
@@chipsterFDТак и есть
А почему бы не использовать DearPyGui для GUI ?
Круто, а можно видео разместить на своем сайте и размещением в описании ссылки на youtbe канал?
Жесть ты голова!!! Хотелось бы так же шарить!!!! Но это еще только в проекте. Мда сколько нужно всего узнать. Для меня только переменные это уже проблема😂😂😂😂 Хороший контент удачи!!!
Нужно как можно подробнее останавливаться на преимуществах тех или иных шаблонов, иначе вообще непонятно, чего ты пытаешься добиться, применяя их.
На самом деле без реальной практики - это все равно будет непонятно. Именно реальной практики, когда ты начинаешь что-то относительно большое делать, и в процессе - сталкиваешься с проблемами, которые усложняют разработку, и ты пытаешься это решить.
На 15 минуте не успел ворос задать, только рот открыл, уже проехали 😂😂😂
делай, делай!
В целом почти ко всем видео примерно одни и те же претензии:
1) погружай в предметную область. Иногда этот этап ты пропускаешь или он очень скомканный (например, на фабрике).
2) дикция :( не тараторь, пожалуйста, это не способствует адекватному восприятию и не делает материал интересней
Также используй тайпхинты, опускай дефолтные конструкторы.
Ну и если речь по энтерпрайз, надо хотя бы чуть-чуть следовать лучшим практикам. Например, использовать енамы вместо строк, если они заранее известны.
Отдельная боль - пеп8. Выкинь VSCode, пожалуйста, возьми пайчарм, он тебя сам за это наругает.
Выбор паттернов тоже не порадовал. Часть скучные или моветон, остальные - нет смысла реализовывать, потому что уже готовые реализации (заведомо лучше) есть. Тот же декоратор или итератор. Да и имхо декоратор ты вообще просрал, код написан донельзя плохо. Добавишь третий - повесишься.
Было бы интересней посмотреть на DI, к примеру. Мегаполезная вещь, используется во множестве фреймворков, решает кучу повседневных задач. В каком-нибудь sdk на kmm для мобильных приложений вообще скорее необходимость.
P.S. - я расписал всё это, потому что это всё, к чему я могу придраться. В остальном ты чуть ли не единственный, кто делает такой контент, за что отдельное спасибо. Лайк поставил, всё для тебя
Из других ютуберов могу выделить только соера, но он больше упирается в теорию, и онигири, который бог наглядности и доходчивого объяснения, хоть и без тру-хардъ-прогерства.
просто вся соль в том что он сам походу не понимает что пишет.
код похоже как надерганная копипаста из разных гайдов.
А чего в DI интересного-то?
Если про использование - концепция максимально простая для понимания. Ты просто зависимости получаешь извне. А не дергаешь внутри. Обычно - в конструкторе.
Если так же как тута показывать: Ну, вот сделали класс ServiceProvider в котором в конструктор передали словарик вида . Этот словарик - конфигурация контейнера, а этот вот провайдер - наш DI-контейнер. Теперь делаем Get(name) который ищет в словарике, создает инстанс или возвращет если передали. Все - мы великолепны.
Если делать нормальную реализацию, хотя бы как майковский DI для шарпа - виндертон не вытащит. Скорее всего посмотрит как у майков и просто повторит.
А если прям нормальную-нормальную, то совсем не вытащит.
Жду от тебя такое же видео только так как ты описал. Давай сравним кто круче?
@@aga_gg чел, это мы ждем от тебя production-ready код на твоей работе. а то нашелся тут поучать работающих разрабов как писать код.
Хотелось бы конечно видеть Qt Designer
Ждем видос про Java)
Ох, далеко же мне до понимания этого всего с лёту ... Но спасибо за видео
Братан, харош, давай-давай, контент в кайф, можно ещё? Можно вот этого почаще?
В прошлом видео он обещал сделать проект на Java просил лайки и всякое такое по итогу бе
Java на июль запланирована
Легенда
Это что за такой синглтон перегруженный? В инете полно примеров с переменной класса instance. Зачем столько оверхеда….
🎉🎉🎉
Ничего не понимаю. Смотрю, чтобы заснуть)
Допиши GUI пж
Ну ты просто батек
Сделай курс по линухе, я бы смотрел
Как называется программа которая он создавал файлы ?
Ты про терминал или что? это wsl2, ubuntu, я просто картинку на заставку поставил. Картинка если что Ривиндел
@@wndtn да, спасибо
Начинал вкат с питона, в универе начал писать на пхп, js, с#, теперь смотрю на питон и типо простенький псевдокод начинает казаться чем-то иным, более сложным что-ли... Непривычные конструкции, хотя если вникать то всё то же самое только по-своему, эх, м-да
Я тоже начинал с php и сейчас пишу на C#. Питон для меня это "простенький язык, который я еле могу понять". Головой понимаю, что он проще, но глазам он не поддается
Ля, обожаю твои видео, они информативны как лекции у очень интересного препода, спасибо) В общем, жду новых обучающих роликов, канал буду советовать первачам)
Ого, дождался, вместо копошения по форумам сделал основу в одном видео, спасибо, экономишь время и силы.
это все есть в книге банды 4х.
проще и лучше её читнуть.
Шикарная подача,
я бы с удовольсвтием заценил видос, где допиливаеш это до простой бета-версии апликухи, с мин.набором ф-ла)
потому что много ют-снимают контент для плохих jun ;
мало таких кто это делает как ты реально, без воды, а так же применяя всю теорию в плюс минус объективном состоянии!
Вот все эти паттерны, они для какого уровня программиста нужны, ну скажем там Джун должен уметь или только знать в теории?
Шаблоны проектирования предлагают проверенные и эффективные методы решения архитектурных задач. Их использование позволяет сократить время и улучшить качество ПО, что является требованием бизнеса. Начинающим программистам знание шаблонов не так важно, потому что они работают над более простыми задачами, но по мере роста опыта и увеличения сложности задач знание шаблонов становится все более важным.
Бля какой же сочный контент он делает
Так просто к слову не обязательно создавать отдельную переменную для Label, чтобы его запаковать. Можно просто использовать метод Label(...).pack(), если тебе не нужно обращаться к нему позже. А так ролик супер)
Го видео по Haskell
Less go
20 лет, 10 лет опыта, вот кого ищут работодатели
на 20:52 почему просто не сделать wet=dry и накидывать эффекты через просто if, а в конце всегда выводить wet? типа сделать 1 проход по всем возможным эффектам и если на них не стоит флага то скипнуть их
уже писали про всевозможные улучшения, да
я поэтому и сказал на этом паттерне, "Декоратор за 200"
@@wndtn если есть возможность можно ещё архитектуру этой штуки докинуть сверху, ну чтобы попроще представлять логику работы?
Если я ничего не понимаю, что мне нужно делать? Что учить? Что писать?
Напиши калькулятор который может в скобки и разложение интеграллов.
Виндертон, ты учился в университете или всё учил сам?
2
клевые примеры
слушай, а посоветуй крутого контентера на джава, за которым сам следишь
Спасибо за контент, ждем видос на джаве по типу "СИСТЕМНАЯ АРХИТЕКТУРА"))_
кайф :3
В адаптере сделан же адаптер из миди под аудио, не наоборот.
В ините мы берём миди (надо бы принимать на вход), реализуем поведение так, чтобы адаптер умел вести себя как аудио (от него наследовались).