Очевидно, что обновлять технологический стек в проекте с долгой историей — это как перебирать двигатель самолета на лету. Подобная ситуация и у нас в Авито. В докладе я расскажу как итеративно, поступательно мы меняем фронтенд в Авито, внедрили серверный рендеринг, менеджмент зависимостей микрофронтендов, а так же какие грабли встретили и какие выводы из всего этого сделали.
Этот доклад для разработчиков middle и senior уровня, работающих с большой централизованной кодовой базой (и желающих эту кодовую базу распилить).
В этом видео мы реализуем Телеграм бота для учёта личных расходов с бюджетом, категориями расходов и базовой статистикой. Использовать будем Python и Aiogram с Asyncio, в качестве базы данных легковесный движок SQLite, а результат работы упакуем в Docker контейнер для быстрого разворачивания на любом сервере.
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.
Микросервисная архитектура — это не только новая мода, но и хорошее, а иногда даже единственно возможное решение для задач, которые сейчас встречаются в разработке программного обеспечения. На конференциях микросервисы сравнивают с монолитной архитектурой, описывают их плюсы и минусы, делятся успешными и провальными историями. Но, пока в столицах дают рок-концерты, на местах осваивают балалайки. Не всегда понятно, как начать делать систему, основанную на микросервисной архитектуре. Какие проблемы ждут архитектора и разработчиков, какие узкие места могут встретиться и как к этому подготовиться? Имеет ли смысл начинать с монолита или надо сразу разбивать систему на микросервисы? Как определить границы, которые встанут между вашими микросервисами?
Во время разработки можно заложить на будущее множество сложностей, благодаря привычкам, оставшимся после работы над монолитной архитектурой. Во время доклада будут рассмотрены различные сценарии, в результате которых происходит увеличение связанности системы. Все сценарии взяты из реальных проектов и относятся к работе с библиотеками и интеграцией между микросервисами.
Выбор микросервисов окажет большое влияние на тестирование, где специалистов QA ждет ряд новых проблем, связанных со сбором логов и развертыванием окружения для тестирования.
Цель доклада не только в освещении проблемных мест разработки микросервисов, но и в предложении советов и решений, которые помогут исправить или даже избежать сложностей и, следственно, потери времени и ресурсов на их исправление.
Разрабатывая какой-либо проект рано или поздно мы можем столкнуться с проблемой нагрузки на БД. Данных может быть очень много, а мы как-то должны выдерживать нагрузки и должны быть готовы к её росту.
В своём докладе я поделюсь опытом масштабирования БД, расскажу всё максимально подробно — с какими проблемами можно столкнуться, какие стратегии и подходы лучше всего заложить в проекте.
…
Мой доклад будет состоять из нескольких мини-докладов, в которых я постараюсь рассказать про новую функциональность/улучшение/исправление и добавлю немного бэкграунда для лучшего понимания. Например, в 12 версии ожидаются поддержка KNN для SP-GiST и B-tree, но все ли знают или помнят, что такое SP-GiST и что такое KNN и как им пользоваться?
…
— Нашли ошибку в видео? Пишите нам на support@ontico.ru
Мы разработали и поддерживаем экзабайтное облачное объектное хранилище (S3-совместимое), и нам необходимо сохранять метаданные объектов. Работа с метаданными сложнее работы с данными, т.к. необходимо поддерживать конкурентные операции по записи/удалению одного и того же объекта, версионирование и т.п. Наше хранилище поддерживает работу в режиме active-active через два дата-центра (eventual consistency), что дополнительно усложняет слой метаданных.
…
Нашли ошибку в видео? Пишите нам на support@ontico.ru
В этом видео я постараюсь на доступном языке рассказать разницу между SQL или NoSQL. Базы данных такие как MySQL и MongoDB кардинально разные и служат разным задачам, я лишь расскажу поверхностно так как полный рассказ вряд ли поместится и в час видео. Различия популярных баз таких как Mysql и MongoDB кардинально, от метода хранения данных до метода запросов.