Пишем Telegram бот для учёта расходов с Python, Asyncio/Aiogram, SQLite и Docker


Запускаем мощную платную обучающую программу, интересно принять участие? Пройдите опрос — simpoll.ru/run/survey/c44b6a04

Поддержать канал и получить доступ к закрытым видео — boosty.to/digitalize.team

В этом видео мы реализуем Телеграм бота для учёта личных расходов с бюджетом, категориями расходов и базовой статистикой. Использовать будем Python и Aiogram с Asyncio, в качестве базы данных легковесный движок SQLite, а результат работы упакуем в Docker контейнер для быстрого разворачивания на любом сервере.

Исходный код на Github: github.com/alexey-goloburdin/telegram-finance-bot

0:00 Telegram бот для учёта личных финансов
0:43 ТЗ на бота
3:01 Демонстрация работы бота
5:07 Используемые библиотеки и технологии
7:00 Aiogram
7:29 Создание бота, получение токена
8:30 Обход блокировки Telegram
9:40 Инициализация бота
10:36 Добавление расходов
12:27 Модуль expenses
18:22 Работа с категориями
19:15 Структура БД
21:49 Модуль работы с БД
24:01 Продолжение по категориям
25:35 Удаление расхода
26:33 Просмотр расходов
29:00 Статистики
30:30 Docker
33:00 Выводы

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.

С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.

Мои соц сети:
www.facebook.com/a.goloburdin
www.instagram.com/alexeygoloburdin/
vk.com/a.goloburdin

---

9. Базы данных. MySQL и сравнение с PostgreSQL | Технострим


Слайды лекции: bozaro.github.io/tech-db-lectures/09/
► Другие лекции курса: www.youtube.com/playlist?list=PLrCZzMib1e9oOFQbuOgjKYbRUoA8zGKnj
Подробнее о курсе: park.mail.ru/curriculum/program/discipline/218/

Лекция читается в рамках образовательного проекта «Технопарк Mail.ru Group» при МГТУ им.Баумана.

Описание лекции:

Лекция посвящена СУБД MySQL и ее сравнению с PostgreSQL.

Рассматриваются следующие темы:

— Архитектура MySQL
— Подсистемы хранения MySQL
— Репликация в MySQL
— Настройка MySQL
— Проблемы MySQL
— Достоинства MySQL


Хронометраж:

00:00:05 О теме лекции
00:01:09 Архитектура MySQL
00:02:08 Архитектура MySQL: хранилища объектов
00:04:22 Подсистемы хранения: MyISAM
00:06:52 Подсистемы хранения: InnoDB
00:08:30 Подсистемы хранения: Memory
00:09:53 Подсистемы хранения: критерии выбора
00:11:51 Подсистемы хранения: надежность
00:12:05 Другие подсистемы хранения
00:12:57 Подсистемы хранения: когда какую использовать / практические примеры
00:14:42 Проблемы MySQL: не транзакционный DDL
00:16:27 Проблемы MySQL: дорогой ALTER TABLE
00:20:00 Проблемы MySQL: особенности выборки данных
00:23:02 Проблемы MySQL: хранилище и лог транзакций существуют за пределами «движка»
СУБД
00:24:55 Репликация в MySQL: режимы репликации / проблемы репликации в MySQL
00:31:16 Репликация в MySQL: другие особенности
00:33:30 Репликация в MySQL: хрупкая репликация (пример проблемного запроса)
00:35:56 Ответы на вопросы по хранилищам MySQL
00:39:00 Архитектура MySQL: особенности планировщика запросов
00:41:19 Планировщик запросов: гарантированно плохие запросы
00:43:57 Проблемы MySQL: отличие между равенством и конструкцией IN в запросе выборки
00:47:08 Планировщик запросов: DELETE (стандартный / специфичный синтаксисы)
00:49:58 Проблемы MySQL: AUTO_INCREMENT
00:54:09 Проблемы MySQL: TIMESTAMP vs DATETIME
01:00:20 Проблемы MySQL: операция UPDATE не соответствует стандарту SQL92
01:01:33 Проблемы MySQL: lower_case_table_names
01:05:13 Как я познакомился с MySQL
01:08:53 Достоинства MySQL: секционирование
01:11:10 Достоинства MySQL: COLLATIONS
01:17:18 Достоинства MySQL: LIBSLAVE
01:18:52 Настройка MySQL: базовые параметры / кэш MyISAM
01:20:21 Настройка MySQL: размер блока ключей key_cache_block_size
01:21:26 Настройка MySQL: кэш InnoDB
01:27:58 Настройка MySQL: ввод / вывод в MyISAM
01:29:38 Настройка MySQL: ввод / вывод в InnoDB
01:33:33 Критерии выбора СУБД и проблемы миграции
01:36:26 Проблемы MySQL: необычайно долгий дамп
01:37:01 Ответы на вопросы по пройденному материалу: проблемы миграции
01:41:59 Причины миграции с MySQL на PostgreSQL: пример из практики
01:46:33 Проблемы MySQL: MYSQLDUMP
01:51:32 Проблемы MySQL: нелогичное выполнение некоторых запросов — WARNING vs ERROR
02:03:30 Проблемы MySQL: нелогичное выполнение некоторых запросов — TIMESTAMP
02:09:41 Проблемы MySQL: нелогичное выполнение некоторых запросов — GROUP BY

— О КАНАЛЕ:

Официальный канал образовательных проектов Mail.Ru Group

► Нажмите здесь для подписки ‣ www.youtube.com/TPMGTU?sub_confirmation=1

Актуальные лекции и мастер-классы о программировании от лучших IT-специалистов. Если вы увлечены мобильной и веб-разработкой, присоединяйтесь!

Наши проекты:
Технопарк при МГТУ им. Баумана ‣ park.mail.ru
Техносфера при МГУ им. Ломоносова ‣ sphere.mail.ru
Технотрек при МФТИ ‣ track.mail.ru
Техноатом при МИФИ — atom.mail.ru
Технополис при СПбПУ — polis.mail.ru

— МЫ В СЕТИ:

Технопарк в ВК | vk.com/tpmailru
Техносфера в ВК | vk.com/tsmailru
Технотрек в ВК | vk.com/trackmailru
Техноатом в ВК | vk.com/technoatom
Технополис в ОК: www.ok.ru/technopolis
Технополис в ВК: vk.com/technopolis_ok
Блог на Хабре | habrahabr.ru/company/mailru

Илья Космодемьянский — Внутреннее устройство PostgreSQL для практикующих инженеров


Илья Космодемьянский, эксперт компании PostgreSQL-Consulting.com — Внутреннее устройство PostgreSQL для практикующих инженеров.
Встреча CodeFreeze в Москве, 22.09.2015

Понимание архитектуры используемой СУБД очень важно для правильной эксплуатации, но местами переоценено: администратору, DevOps-специалисту или разработчику прикладных систем вовсе необязательно знать подробности внутреннего устройства B-дерева или тонкости работы легковесных блокировок. Это, конечно, все очень интересно, но существенно загромождает главы Concepts соответствующих руководств или доклады про архитектуру СУБД и оставляет практическим специалистам существенно меньше времени на более важные и насущные с точки зрения повседневной эксплуатации базы данных проблемы.

В рамках данного семинара, мы эту проблему попробовали устранить и рассмотреть несколько жизненно-важных систем PostgreSQL со следующих точек зрения:

теоретические основы;
практическая реализация и суровая практика ежедневной эксплуатации.

Главной основой любой базы данных является транзакционная машина. Как она реализованная в PostgreSQL? Какие алгоритмы и протоколы лежат в основе? Как в PostgreSQL реализованы Undo и Redo? Как устроен Write Ahead Log? Для чего нужен и как работает автовакуум? Какие могут быть проблемы в работе всех этих систем? Их мониторинг и настройка: как найти и исправить проблемы? После семинара слушатели не только узнали теоретические основы работы MVCC в PostgreSQL, но и представили:

как это может сказаться, например, на производительности;
как опознать это на мониторинге;
какими настройками и подходами к написанию приложений ситуацию можно улучшить.

Говоря о каждой системе PostgreSQL мы сравнивали их с другими СУБД, такими как Oracle, IBM DB2 LUW, MS SQL Server — чтобы специалистам, имеющим опыт с другими СУБД было быстрее и проще разобраться.

SQL Join


Начиная разбираться в SQL многие сталкиваются с проблемой сложности понимания различия между разными JOIN-ами в этом языке.

В этом видео уроке я объясняю: 1) Что такое JOIN. 2) Различие между CROSS JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, и FULL JOIN. Также показываю как реализовать FULL JOIN в базах данных, которые не предоставляют такую конструкцию.

Что должен знать Python веб-разработчик для приёма на работу?


Запускаем мощную платную обучающую программу, интересно принять участие? Пройдите опрос — simpoll.ru/run/survey/c44b6a04

Поддержать канал и получить доступ к закрытым видео — boosty.to/digitalize.team

Поговорим в этом видео о наборе скилзов, необходимых для успешного трудоустройства Python веб-разработчика.

Текстовая версия для тех, кто хочет оставить себе как roadmap для своего развития в текстовом виде: www.evernote.com/l/AA0ipjdOO8ZALKRUiv-lZP7732OYOQEa75o

Упоминаемая статья Торшиной (внимание, нецензурная лексика) — torshina.me/dodelyivat-delo-do-kontsa/

0:00 О чём пойдёт речь, roadmap для Python веб разработчика
2:55 Об Интернет, вебе, протоколах, веб-стандартах
6:42 О фронтенде и JavaScript
9:12 Бэкенд, Python — синтаксис, стандартные и сторонние библиотеки
16:37 Python веб-фреймворки
19:00 Качество кода, ООП, паттерны
20:47 Тестирование, инструменты, Git, Linux инструменты
22:31 SQL и реляционные базы данных
23:31 Linux, Docker, CI/CD
26:14 Что значит знать? Об опытных и начинающих
27:48 Гугление, английский язык
28:51 О возможном обучающем курсе, выводы

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.

С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.

Мои соц сети:
www.facebook.com/a.goloburdin
www.instagram.com/alexeygoloburdin/
vk.com/a.goloburdin

---

sql для тестировщиков


sql для тестировщиков

#sqlдлятестировщиков #sql #длятестировщиков

В продолжении видео про базы данных, рассказываю про sql.
SQL для начинающих может показаться давольно сложным занятием. Но всё гораздо проще, когда понимаешь что нужно знать 10 sql запросов. А остальное обрастает с опытом.

Для тестировщика любой sql запрос в начале выглядит как что-то очень большое и страшное. А вообще лучше не подходить. Именно по этому я хочу донести, что всё гораздо проще. И каждый может с этим разобраться.

Знания программирования совсем не нужны. Нужна математика не старше 5-го класса.

Смотрите весь плэйлист.
www.youtube.com/watch?v=GIzeF6CJAm4

Бизнес-логика в Django и архитектура Django проектов — на настоящем примере


Запускаем мощную платную обучающую программу, интересно принять участие? Пройдите опрос — simpoll.ru/run/survey/c44b6a04

Сказать спасибо можно здесь — boosty.to/digitalize.team

Django остаётся самым популярным Python веб-фреймворком в мире, однако архитектура большинства проектов на нём, мягко говоря, оставляет желать лучшего. В этом мастер-классе мы на живом примере поговорим о структуре Django проекта, бизнес-логике в Django, а также о хороших практиках проектирования кода.

0:00 О чём пойдёт речь, постановка задачи
2:17 Создание проекта
3:50 Создание моделей
7:39 Создание первоначальных Django Views
25:21 Анализ полученного начального кода
26:07 Рефакторинг
40:40 Вынос бизнес-логики в отдельный слой
54:09 Анализ полученного кода, финальный рефакторинг

Создание бизнес-сервисов

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.

Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.

С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.

Мои соц сети:
www.facebook.com/a.goloburdin
www.instagram.com/alexeygoloburdin/
vk.com/a.goloburdin

---

Postgres vs Mongo / Олег Бартунов (Postgres Professional)


РИТ 2017, Backend Conf

Тезисы:
backendconf.ru/2017/abstracts/2781.html

Я хочу немного порушить стереотипы, что Postgres — это чисто реляционная СУБД из прошлого века, плохо приспособленная под реалии современных проектов. Недавно мы прогнали YCSB для последних версий Postgres и Mongodb и увидели их плюсы и минусы на разных типах нагрузки, о которых я буду рассказывать.

Типичные вопросы на СОБЕСЕДОВАНИИ по SQL / Примеры задач и их решения


Типичные вопросы на собеседовании по языку SQL. Решаем задачи вместе. У Вас скоро собеседование по SQL или Вы считаете себя Гуру? Проверьте свои знания! Попытайтесь решить каверзные задачи ;)
#SQL, #Базыданных #Собеседование #ИльяХохлов #КурсыПрайм