![Masson](/img/default-banner.jpg)
- Видео 67
- Просмотров 209 924
Masson
Россия
Добавлен 27 янв 2021
Масон?!
SQLAlchemy №10. Alembic. Миграции схем баз данных на основе моделей ORM.
Первый русскоязычный видеокурс о SQLAlchemy! Данный видеокурс основан на книге "SQLAlchemy от чайника к алхимику", которая представляет из себя перевод официального туториала от разработчиков алхимии. Данная книга распространяется бесплатно и общедоступно в двух вариантах:
PDF-версия: t.me/massonnn_yt/133
Веб-версия: massonnn.notion.site/SQLAlchemy-e2e50d4977374ed598e3b8b418258769
Мой шаблон телеграмм бота из видео:
github.com/MassonNN/masson-aiogram-template
--------------------
Мой телеграмм канал: t.me/massonnn_yt
Это видео вышло на несколько дней раньше в моём бусти:
boosty.to/massonn/posts/4269a84f-9b5c-4206-8938-1881f3a6e407
PDF-версия: t.me/massonnn_yt/133
Веб-версия: massonnn.notion.site/SQLAlchemy-e2e50d4977374ed598e3b8b418258769
Мой шаблон телеграмм бота из видео:
github.com/MassonNN/masson-aiogram-template
--------------------
Мой телеграмм канал: t.me/massonnn_yt
Это видео вышло на несколько дней раньше в моём бусти:
boosty.to/massonn/posts/4269a84f-9b5c-4206-8938-1881f3a6e407
Просмотров: 258
Видео
Тестирование на основе свойств с помощью Hypothesis. Генеративное тестирование. Граничный анализ.
Просмотров 11421 день назад
В этом видео разберём один из самых важных видов тестирования - тестирование на основе свойств, а также его частный случай - генеративное тестирование (граничный анализ) и его реализацию с помощью такой библиотеки на Python как Hypothesis. Мой телеграмм канал: @massonnn_yt Мой бусти (ранний выход видео и эксклюзивный контент): boosty.to/massonn Мой дискорд сервер: discord.gg/3tDwhpe9TD
Паттерн "Декоратор" (Системное проектирование №6)
Просмотров 7234 месяца назад
В этом видео мы с вами продолжаем тему системного проектирования и разберём такой важный паттерн проектирования как "Декоратор". Курс по системному проектированию - это серия роликов, посвященных изучению методов и подходов в системном проектировании (архитектуре\дизайну). Курс состоит из трех модулей: виды архитектур (MVC, гексагональная и др.), паттерны (Composite, Facade, Factory и др.), и п...
NATS №2. Протокол NATS. PUB/SUB. Wildcards.
Просмотров 5154 месяца назад
В этом видео мы с вами продолжаем курс о NATS, разберём команды протокола NATS, а также Wildcard's и некоторые особенности сервера gnatsd. Курс о NATS - это первый в русскоязычном ютубе видеокурс, подробно разбирающий все его аспекты, начиная с теории и заканчивая практикой. Курс выходит сначала на Boosty, а затем с задержкой в месяц на RUclips, рекомендую подписаться на меня на Boosty, чтобы п...
[ТИЗЕР] Паттерн Компоновщик (Composite) (Системное проектирование)
Просмотров 1136 месяцев назад
Данное видео доступно по ссылке: boosty.to/massonn/posts/1f2599d3-de1d-487f-bb28-b773a4474233?share=post_link В этом видео я расскажу вам о таком паттерне проектирования как Компоновщик (Composite). Это потрясающий инструмент в руках разработчика, если вы сталкиваетесь со сложными иерархическими структурами. Курс по системному проектированию - это серия роликов, посвященных изучению методов и п...
NATS №1. Вводный. Что такое NATS? Где и как он используется? Гарантии доставки.
Просмотров 9796 месяцев назад
В этом видео мы с вами начинаем курс о NATS, я расскажу о том что он из себя представляет, где и как используется, а также обсудим проблему двух генералов и методы её решения. Курс о NATS - это первый в русскоязычном ютубе видеокурс, подробно разбирающий все его аспекты, начиная с теории и заканчивая практикой. Курс выходит сначала на Boosty, а затем с задержкой в месяц на RUclips, рекомендую п...
Гексагональная архитектура (Системное проектирование №3)
Просмотров 4436 месяцев назад
В этом видео мы с вами продолжаем тему системного проектирования и затронем такого важного представителя в мире системного дизайна как гексагональная архитектура. Курс по системному проектированию - это серия роликов, посвященных изучению методов и подходов в системном проектировании (архитектуре\дизайну). Курс состоит из трех модулей: виды архитектур (MVC, гексагональная и др.), паттерны (Comp...
[ТИЗЕР] MVC и его применение в веб-приложениях (Системное проектирование №2)
Просмотров 1296 месяцев назад
Данное видео является тизером. Полная его версия доступна каждому подписчику на Boosty: boosty.to/massonn/posts/f1b4f009-1eeb-4d24-b4be-baa0ed4dfbc2?share=post_link Сегодня в этом видео мы поговорим с вами о такой архитектуре как MVC и ее применении в современных проектах, а также коротко коснемся такого веб-фреймворка как BlackSheep и узнаем как именно данная архитектура используется там для с...
Брокеры сообщений. Очередь и стек. Гарантии доставки.
Просмотров 6226 месяцев назад
В данном видео мы затронем тему брокеров сообщений. Мы постараемся разобрать все основные их характеристики, преимущества, а также коснемся причин по которым брокеры позволяют осуществить масштабирование системы. Если вы хотите, чтобы я сделал ревью вашего проекта, то напишите об этом в моем дискорде: discord.gg/eKbRUsgP2t Мой телеграмм канал: t.me/massonnn_yt Таймкоды: 0:00 - Начало 1:05 - Мас...
Паттерны и UML (Системное проектирование №1)
Просмотров 6838 месяцев назад
В данном видео мы начинаем новый курс о системном проектировании. Разберемся с тем, что такое UML и паттерны. Курс по системному проектированию - это серия роликов, посвященных изучению методов и подходов в системном проектировании (архитектуре\дизайну). Курс состоит из трех модулей: виды архитектур (MVC, гексагональная и др.), паттерны (Composite, Facade, Factory и др.), и последний, посвященн...
Курс по Python №1. Начало. (нет)
Просмотров 71110 месяцев назад
В этом видео мы начинаем курс по такому прекрасному языку программирования как Python! В этом видео обсудим то, как нужно вообще подходить к изучению языков программирования, разберем также почему данный курс лучше остальных. Если вы хотите, чтобы я сделал ревью вашего проекта, то напишите об этом в моем дискорде: discord.gg/eKbRUsgP2t Мой телеграмм канал: t.me/massonnn_yt Данное видео было сде...
SQLAlchemy №9. Relationships. Виды связей, стратегии загрузки.
Просмотров 4,1 тыс.11 месяцев назад
Первый русскоязычный видеокурс о SQLAlchemy! Данный видеокурс основан на книге "SQLAlchemy от чайника к алхимику", которая представляет из себя перевод официального туториала от разработчиков алхимии. Данная книга распространяется бесплатно и общедоступно в двух вариантах: PDF-версия: t.me/massonnn_yt/133 Веб-версия: massonnn.notion.site/SQLAlchemy-e2e50d4977374ed598e3b8b418258769 Если вы хотит...
Как обойти АНТИПЛАГИАТ? Алгоритм шинглов.
Просмотров 58911 месяцев назад
В этом видео я расскажу о том как работает антиплагиат, а также о его центровом инструменте - алгоритме шинглов. Также расскажу о том как быстрее и проще получить оригинальность текста с помощью алгоритма относительного сравнения (шинглирования), которого я реализовал в виде своего телеграмм бота. Телеграмм бот из видео: @ShingleManBot Мой телеграмм канал: t.me/massonnn_yt Авторские права на не...
SQLAlchemy №8. Основы ORM. Сессия и Unit of Work.
Просмотров 3,3 тыс.11 месяцев назад
SQLAlchemy №8. Основы ORM. Сессия и Unit of Work.
NATS JetStream. Персистентные сообщения. Хранилище ключ-значения и файлов. Перевод на русский.
Просмотров 1,9 тыс.Год назад
NATS JetStream. Персистентные сообщения. Хранилище ключ-значения и файлов. Перевод на русский.
SQLAlchemy №7. Операции DML (Update, Delete) и Returning. Работа с данными в Core (часть 3).
Просмотров 2,1 тыс.Год назад
SQLAlchemy №7. Операции DML (Update, Delete) и Returning. Работа с данными в Core (часть 3).
Aiogram №18. Планирование отложенных задач с помощью Redis.
Просмотров 3,5 тыс.Год назад
Aiogram №18. Планирование отложенных задач с помощью Redis.
SQLAlchemy №6. Выборка данных. Select/Where/Order/Group By. Работа с данными в Core (часть 2).
Просмотров 3,4 тыс.Год назад
SQLAlchemy №6. Выборка данных. Select/Where/Order/Group By. Работа с данными в Core (часть 2).
NATS. Установка и начало работы, базовые концепции. Перевод на русский.
Просмотров 2,2 тыс.Год назад
NATS. Установка и начало работы, базовые концепции. Перевод на русский.
Aiogram №17. Обработка апдейта (middlewares, filters, handlers). Как устроен граф обработки.
Просмотров 971Год назад
Aiogram №17. Обработка апдейта (middlewares, filters, handlers). Как устроен граф обработки.
SQLAlchemy №5. Построение запросов в Core. Insert/Dialects. Работа с данными в Core (часть 1).
Просмотров 4 тыс.Год назад
SQLAlchemy №5. Построение запросов в Core. Insert/Dialects. Работа с данными в Core (часть 1).
SQLAlchemy №4. Модели и объекты в ORM. Работа с метаданными (Часть 2).
Просмотров 5 тыс.Год назад
SQLAlchemy №4. Модели и объекты в ORM. Работа с метаданными (Часть 2).
SQLAlchemy №3. Работа с метаданными (Часть 1).
Просмотров 6 тыс.Год назад
SQLAlchemy №3. Работа с метаданными (Часть 1).
SQLAlchemy №2. Соединения и транзакции.
Просмотров 9 тыс.Год назад
SQLAlchemy №2. Соединения и транзакции.
Multitasking in Python (asynchronous, multithreading, multiprocessing).
Просмотров 1,1 тыс.Год назад
Multitasking in Python (asynchronous, multithreading, multiprocessing).
Как сделать Telegram бота за 5 минут на aiogram 3.x. Шаблон бота.
Просмотров 8 тыс.Год назад
Как сделать Telegram бота за 5 минут на aiogram 3.x. Шаблон бота.
Ревью проекта подписчика №2. Бот-сервис заказа еды.
Просмотров 571Год назад
Ревью проекта подписчика №2. Бот-сервис заказа еды.
Fluentogram. Альтернатива PyBabel. Как использовать и не отстрелять ноги?
Просмотров 1,3 тыс.Год назад
Fluentogram. Альтернатива PyBabel. Как использовать и не отстрелять ноги?
Ревью проекта подписчика. ТГ-Бот по заказу лодок.
Просмотров 687Год назад
Ревью проекта подписчика. ТГ-Бот по заказу лодок.
Спасибо)
А можно ли там вернуться к уже решенным заданиям?
Крутой контент!!! Топчик) Давай ещё про функции, триггеры и тд..
Не знал о нём. Попробую в проекте, выглядит интересно)
очень толково красавчик
а воды столько зачем, мне если плавать захочется, я в бассейн схожу, на х2 смотрела и все равно медленно
Здравствуйте! То, что вы называете водой, называется теория. Курс рассчитан на тех, кто не знаком полностью с программированием, и уж тем более с тестированием, поэтому в нём много разжёвываний. Если вы считаете материал недостаточно информативным, то в ближайшее время на моём канале планируется выпуск небольшой серии видео про тестирование, рассчитанный уже на более продвинутых разработчиков. Рекомендую его посмотреть.
Правда что на сервере 4 Гб оперативной памяти должно быть, для установки докера?
Нет
Какие минимальные требования к серверу чтобы запустить там питон и постгрес?
Если установили докер, то с питоном и постгресом проблем не будет
@@massonnn мне больше интересно какой сервер про параметрам нужен чтобы работал и питон и база и не тупил
Гпт сказал: Minimum VPS Requirements 1. CPU: • At least 1 vCPU (virtual CPU). For better performance, especially under load, consider 2 vCPUs. 2. RAM: • Minimum 1 GB of RAM. However, 2 GB is recommended for better performance, especially if your application or database grows. 3. Storage: • Minimum 20 GB of SSD storage. This will allow enough space for the operating system, Python application, PostgreSQL database, and some data. More storage may be required depending on the size of your database and application. 4. Operating System: • A lightweight Linux distribution such as Ubuntu, Debian, or CentOS. Example Configuration • Basic Setup: • 1 vCPU • 1 GB RAM • 20 GB SSD • Ubuntu 20.04 LTS • Recommended Setup: • 2 vCPUs • 2 GB RAM • 40 GB SSD • Ubuntu 20.04 LTS
Хочу видео настройки виртуального сервера❤
Здравствуйте! Возможно, сделаю
Привет) жду кролика
Вопрос по архитектуре: я хочу реализовать событийную модель, что бы в стриме писались данные по изменению сущностей с расчётом на то, что бы потребители могли их материализовать у себя. Будет ли нормально выносить id в сабжект, а не в тело сообщения? Как мне кажется это должно позволить получать актуальные данные по конкретному объекту, просто прочитав последнее сообщение из сабжекта, без необходимости материализовать весь стрим
Да, это нормальное решение
Это то, что я искал 2 недели. Или "shvatka", где структура, как у боинга , или проекты, где 2 файла. Было бы здорово, если сделал контент по aiogram_dialog. Потрясающий канал, иду смотреть твой плейлист по алхимии!
ох, очень грустно, конечно, что мпежду видео делается 100500 изменений, которые нигде не регистрируются :( заходишь на гитхаб, там уже тоже все по-другому.. в любом случае, конечно, спасибо, первые 5 видосов максимально полезные были)
Чел спасибо большое
Наконец-то я нашёл это! Спасибо!
где потерялось сообщение, отправленные после отписки подписчика? после повторного подключения они не пришли. если подписчика нет, NATS сообщения выкидывает?
если сообщения не пишутся в стрим от nats jetstreamто пропадают, ибо nats core не умеет в персистентность, для этого используются стримы
если сообщения не пишутся в стрим от nats jetstreamто пропадают, ибо nats core не умеет в персистентность, для этого используются стримы
Спасибо! Будет ещё продолжение?))
конечно!
Видеоуроки просто топ! Огромное спасибо)
Про документацию прямо хорошая шутка )))
Сколько стоит создание веб приложения с ботом? диапазон хотяб
Зависит от сложности логики и масштабирования. Если брать рядового бота, то разработка стоит от 20 до 200 тыс. руб. Веб-приложение увеличивает стоимость на 20-50%.
как же режет уши это сикюэль
Здравствуйте! Спасибо за обратную связь, в будущих видео постараюсь исправить произношение
жирный лайк, спасибо!
А я могу быть уверен в том, что маппед колумн сам отличит BigInteger от Integer, если я напишу user_id: Mapped[int] = mapped_column(unique=True, nullable=False) или как то иначе надо записать? UPD: Сорян, не досмотрел =) Если в особых случаях всё равно надо писать BigInteger, то mapped_column - излишнее добавление ИМХО, да еще и с вырвиглазным синтаксисом. Я когда такое впервые увидел в чужих исходниках, вообще сначала подумал, что это не питон
Этот функционал еще не до конца проработан, но я вас уверяю: писать один раз тип данных вместо двух всë еще лучше.
Не хватает интерактивных схем или диаграмм
Добрый день, а код на GitHub можете дать, чтобы с экрана не переписывать, бесконечно останавливая видео
9:36: ROLLBACK - это откат транзакции. Почему в данном случае автоматически не использован COMMIT?
По умолчанию, транзакция в алхимии откатывается. Если вы хотите её подтвердить, то нужно использовать явно .commit() или настроить auto_commit=True
майдалвере...
Здравствуйте! Спасибо за обратную связь, в будущих видео постараюсь исправить произношение
Отличное видео! Я лично в Aiogram 3.0 в F фильтрах не нахожу такого типа контента. ПОмогите, кто разбирается, как найти такой тип контента?
Увидел, что даже в документации применяется такой вариант в качестве примера, но всё равно мой бот не подхватывает инфу из ВебАпп. Уже руки опускаются. И просто делал через диспетчер,и через роутер с хендлером сразу, и через регистрацию роутера со ссылкой на хендлер- всё равно молчит. На другие роутеры реагирует а этот -нифига.
Большое спасибо за цикл видео, правда код к этому ролику я на гитхабе не нашел, записывал с экрана, в итоге все прекрасно получилось (там, кстати ошибочка в видео, при регистрации функции plan_message() в cron_jobs ее название в кавычках указано, а нужно без, как в документации, тогда все работает. Хотелось бы еще узнать, как можно запускать задания cron динамически через бота с разными аргументами, а не только при загрузке системы. Чтобы можно было добавлять не просто одиночные задания, пусть и с отсрочкой, но и, например, регулярные рассылки. Я так понял, что в рамках использования как arq, так и celery (тоже пробовал), это не представляется возможным. Или я неправильно понимаю? Как решать подобные задачи? Каков должен быть подход в общих чертах?
Вы можете вызывать методы arq когда угодно, хоть в хендлерах, хоть в каких угодно функциях, даже тех, что используются в качестве задач. Если вам нужно делать периодическую задачу, для этого подойдёт cron.
а как это сделать без докера?
ровным счётом также, докер здесь только лишь запускает скрипт
Большое спасибо за видео! Очень интересно как реализовать отправку сообщений разным пользователям в разное время, в зависимости от их настроек
Вы можете сами определить когда и с какой задержкой будут отправляться сообщения с помощью параметров defer_by и defer_until
Обои классные! Где можно скачать?
Не помню откуда качал, но чаще всего это из разряда сайтов с динамическими обоями для MacOS
У меня почему то data не передаётся в хендлер async def say_something(message: Message, data: Dict[str, Any]): await message.answer(data["lang"]) Выдаёт что отсутствует позиционный аргумент, хотя в конце мидлвара я делаю data['lang'] = user.lang return await handler(event, data)
возможно, миддлварь не зарегистрирована в диспетчере
@@massonnn нет, оказалось что нужно в хендлере брать не всю data а элемент который нужен, в моем случае lang async def say_something(message: Message, lang: str):
Ты чертовски хорош, всё
Хотелось бы видосов про Контексты и скопы FLASK.
Когда в дочерних классах UserModel убираешь атрибут __tablename__, но при этом в родительском классе прописал метод __tablename__, возникает ошибка AttributeError, с чем это может быть связанно? upd: Попробовал не через @classmethod, а брать имя экземпляра класса, передавая self аргументом и заработало
А как тесты запустить для ботов, находящихся вне системы?
Что значит "вне системы"?
Как тогда быть с throttling?
Реализация через Middleware+Filter
Очень много всхлипываний. После каждого предложения. Автор, не грусти :)
Почему-то в инете все рекомендуют использовать sessionmaker s = sessionmaker(engine) with s() as session: ...
Sessionmaker вспомогательная фабрика, которая позволяет делать ровным счётом тоже самое, только без постоянного указания параметров сессии
Спасибо за курс! По делу, без воды
А разве когда ты отнаследовал AdminUserRepositoryDecorator и изменил сигнатуру у __init__ ты солид не нарушил?
Изменение конструктора не нарушает LSP
В чём именно нарушение солида?
@@massonnn Интерфейс у конструктора же меняется, разве нет?
Это не нарушает солид
Разделяй дальше экран пополам, проще воспринимать будет
Спасибо за обратную связь. В дальнейшем видео с telnet уже не будет, только код.
Спасибо большое за темплейт и отдельное спасибо за объяснение! И есть один вопрос, почему в последнем релизе удалена локализация?
Локализация была сделана через fluentogram, что можно назвать весьма спорным решением на фоне тех проблем, что с ним имеются
А почему именно poetry? Вопрос от Джуна
Poetry это более удобный пакетный менеджер, имеющий множество полезных функций. Вы можете использовать и pip, но будьте готовы к конфликтам версий, которые он решать до сих пор не умеет.
Полезное видео. Автор, только одно замечание к твоим видео - не называй экземпляры классов инстанциями, слух режет честное слово. Существует судебная инстанция, но это из другой оперы. Есть еще несколько замечаний по другим видео, но они незначительные, о них я умолчу. По этой конкретно теме ты разложил то чего я не нашел у других авторов. Классно. Респект.
Инстанция в данном случае это калька на "instance", что буквально переводится как экземпляр. Дело привычки, но я стараюсь избавиться от таких слов.
предпочитаю на ютубе смотреть видео-курсы, где то, кто объясняет изначально использует подход разжёвывания, предполагая, что человек глуп. Пытался смотреть другие туториалы по алхимии, но каждый раз бросал, потому что объясняли всегда неполноценно, в духе "дальше сами догадаетесь, что делать", или "до начала видео я всё себе настроил, там сами разберитесь как всё настраивать, приступаем", в итоге непонимание растёт как снежный ком и невозможно ничего нормально за ментором повторить, потому, что у него всё работает, а у тебя нет. Ваш подход в объяснении мне нравится, всё понятно.
Добрый день, не раскрыта тема которую пытаюсь найти :) как добавляются зависимые/related данные в случае core. На видео были подставлены/hardcoded просто цифры (FK). Как будет выглядеть добавление в таблицы users и addresses, если данные связаны?
указываете в атрибут FK при создании PK записи
Вася, какой нахер скедулер? Чему ты учишь, возвращайся в школу.
Scheduler в переводе с англ. означает "планировщик"
Информация полезная, но подача путанная: автор перепрыгивает с одного на другое, из-за этого тяжело информация усваивается.
Курс рассчитан на тех, кто будет смотреть его от самого начала и до конца, поскольку в нём разобраны самые базовые и фундаментальные вопросы