Очевидно, что обновлять технологический стек в проекте с долгой историей — это как перебирать двигатель самолета на лету. Подобная ситуация и у нас в Авито. В докладе я расскажу как итеративно, поступательно мы меняем фронтенд в Авито, внедрили серверный рендеринг, менеджмент зависимостей микрофронтендов, а так же какие грабли встретили и какие выводы из всего этого сделали.
Этот доклад для разработчиков middle и senior уровня, работающих с большой централизованной кодовой базой (и желающих эту кодовую базу распилить).
Большинство backend программ начинает свое сетевое общение с REST. По мере развития разработчику приходится отвечать на мелкие, но важные вопросы: как передавать дату и время, большие объемы данных, обеспечивать авторизацию и так далее.
Сетевые коммуникации в современном бэкенде — это множество конкурирующих протоколов, стандартов и подходов. У нас есть «REST», который каждый разработчик реализует по-своему, есть пересекающиеся JSON Schema и Open API, есть JSON API, GraphQL, gRPC, из-за угла выглядывает RAML.
В докладе Григорий рассказывает про современные подходы коммуникаций backend друг с другом и фронтендом, с какими сложностями мы боремся и что хорошего есть в нашем арсенале решений.
Краткий обзор. Какие проблемы решает, а какие создает? Что выбрать, реализацию через наследование или декларативный подход? Рассмотрим возможности СУБД в этих направлениях, историю развития и тенденции. Разберем более подробно декларативный подход и реализацию секционирования в своем проекте.
Спойлер: 100 500 строк кода остается между документацией и внедрением в проекте.
Я расскажу, как мы комплексно подошли к проблеме отказоустойчивости PostgreSQL, какие варианты мы рассматривали и как остановились на Patroni.
Доклад содержит этапы тестирования этого решения, как мы обеспечили быстрое внедрение на production и с какими проблемами мы столкнулись и как их решали.
Обзор и урок tmux — это терминальный мультиплексор, позволяющий запускать в одном окне сразу несколько терминалов, удобно между ними переключаться, сохранять запущенные в нём процессы, всю историю и контекст. Крутейшая штука как для процесса разработки на локальной машине, так и для работы на удалённом сервере.
0:00 3 ночи, всем привет!
0:59 Что такое tmux и терминальный мультиплексор?
2:00 Сессии tmux
3:22 Про установку tmux
3:43 Запуск сессии tmux, работа с панелями и окнами в нём
6:10 Отсоединение от сессии и возврат в неё
7:30 Настройка tmux
9:05 Выводы
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Резервное копирование баз данных — всегда актуально. В этом видео мы покажем, как написать два Python скрипта, один снимает полный дамп с PostgreSQL, затем архивирует, шифрует и загружает его в Яндекс Object Storage (S3-совместимое хранилище); а второй — выкачивает последний по времени дамп базы из хранилища, расшифровывает его, распаковывает и накатывает на БД.
Исходники — github.com/alexey-goloburdin/postgres-s3-backuper (прочтите описание, код из видео и в репозитории несколько отличаются).
Яндекс утилиту WAL-G здесь не используем, только стандартный pg_dump. Возможно, в следующих видео расскажем о WAL-G:)
0:00 О скриптах резервного копирования PostgreSQL
0:30 О Яндекс Object Storage / S3
1:07 Обзор скрипта бэкапа
4:44 Шифрование бэкапов с openssl
5:40 Продолжение обзора скрипта бэкапа
10:48 Emoji и разноцветный текст в консоли
11:45 Просмотр всех бэкапов в браузере
12:08 Обзор скрипта автоматической распаковки бэкапа в PostgreSQL
18:45 Выводы
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Этим видео начинаем серию выпусков, в которых будем читать исходники популярных и не очень Python open source библиотек. Начинаем с библиотеки Loguru, предназначенной для простого логирования в Python.
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
— Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
— Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Начиная разбираться в SQL многие сталкиваются с проблемой сложности понимания различия между разными JOIN-ами в этом языке.
В этом видео уроке я объясняю: 1) Что такое JOIN. 2) Различие между CROSS JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, и FULL JOIN. Также показываю как реализовать FULL JOIN в базах данных, которые не предоставляют такую конструкцию.
Архитектурный шаблон проектирования конвейер (pipeline) хорошо зарекомендовал себя при проектировании высоконагруженных (highload) систем. Использование шины сообщений (message bus) при реализации каналов взаимодействия позволяет достигать хороших показателей масштабируемости (scalability), но при этом появляются дополнительные накладные расходы, которые сказываются на показателях производительности (performance).
…