uk
Feedback
DevFM

DevFM

Відкрити в Telegram

О разработке: AI, технологии, инструменты, system design, процессы, команды Для связи @sa_bul

Показати більше
2 837
Підписники
+224 години
-27 днів
+4930 день
Архів дописів
DevFM
2 837
Проектируем сервис: поиск организаций по картам Частью жизни middle-разработчика и выше является проектирование сервисов. На
Проектируем сервис: поиск организаций по картам Частью жизни middle-разработчика и выше является проектирование сервисов. На собеседованиях эта секция называется system design interview. В рамках проектирования нужно уточнить требования к сервису и ограничения, оценить возможную нагрузку, выбрать те или иные технические решения. В видео FAANG System Design Interview: Design A Location Based Service (англ) проектируют сервис поиска ближайших организаций по картам. Требуется регистрация организации (классический CRUD) и поиск ближайших для заданной геопозиции (вернуть все организации в заданном радиусе). Условия — 200 млн организаций на карте и 100 млн пользователей, генерирующих в день по 5 запросов каждый. Сможете по этим данным прикинуть объём диска для хранения будущей БД? Автор подробно рассматривает способы хранения точки на карте для быстрого поиска ближайших — geohash и quadtree. #skills #youtube

DevFM
2 837
Брокер сообщений Apache Kafka Начать изучение рекомендуем со статьи Apache Kafka: основы технологии от ребят из slurm, в которой покрыты: — отличия кафки от остальных сервисов очередей — базовые компоненты kafka — основные принципы работы Для опытных пользователей будет полезна статья Apache Kafka: the Complicated Simplicity (открывать с vpn) о неочевидных проблемах, с которыми можно столкнуться. Но наибольшую ценность представляют предложенные решения. Нам эта статья помогла разобраться, почему не удаляются записи месячной давности при явно заданном в настройках правиле "удалять записи старше одного месяца". Дело в том, что кафка хранит данные в сегментах (segments). Запись осуществляется в один активный сегмент, который при достижении определенного размера становится неактивным. Оказалось, что удалять можно только данные из неактивных сегментов. И правило на удаление не сработает, если данные в этот момент находятся в активном сегменте.

DevFM
2 837
Backup: август Python: 1. Управляем зависимостями: poetry / вендоринг 2. Пример логгирования в python / применяем else в цикле for / разбираем код в трёх постах 3. Заглушки для тестирования — постановка задачи и решение Обучение: 1. Сравнение брокеров сообщений: идеальные критерии 2. Английский язык: почему он важен / как я научился воспринимать английский на слух 3. Чему стоит научиться в вузе? (хватить губить будущее ИТ) Рассуждаем о программировании: 1. Нормальный ли у меня код? 2. Поддерживаемость кода 3. Чем плох goto? 4. Чему я научился за 30 лет в разработке? Hardskills: 1. Подводные камни в bash 2. Анатомия Linux Самое популярное: Корчеватель ломает науку — как сгенерированные тексты пытаются опубликовать в рецензируемых изданиях Наши видео: 1. Идеальный скрипт на bash 2. Атака forkbomb в docker 3. Стрим по pythonBackup: август #backup

DevFM
2 837
В файле requirements.txt обычно собраны необходимые для запуска python-проекта пакеты. Для установки этих зависимостей нужно выполнить команду pip install -r requirements.txt Но с ростом числа поддерживаемых проектов появляются конфликты между разными версиями пакетов. Например, одновременная поддержка Django версий 2, 3 и 4 — это кромешный ад. В статье Modern Python Environments приведен обзор систем управления окружением в python, а в конце есть удобная сравнительная табличка. Какие проблемы есть у requirements? 1. Команда pip freeze выводит длинную портянку зависимостей проекта. Поддерживать в аккуратном, контролируемом состоянии подобный файл сложно. Никогда нельзя понять, какие из зависимостей являются основными, а какие транзитивными. 2. Нет возможности разделять зависимости по средам исполнения. В development-среде нужны тесты и линтеры, которые в production-среде не требуются. Для управления зависимостями в проектах я использую Poetry. Из интересного, в poetry отказались от привычного нам requirements, решив проблемы так: 1. Основные зависимости проекта хранятся в файле pyproject.toml, все остальные зависимости poetry собирает в отдельном файле. 2. Для разделения зависимостей по средам исполнения в процессе установки пакета необходимо указать соответствующую опцию и в pyproject.toml появится соответствующий раздел. В production-среде вы сможете устанавливать одни зависимости, в dev другие. Еще в poetry стоит выделить возможность собирать ваш код в питоновские пакеты, дополнительно не описывая установщик setup. Есть и другие интересности, за которыми стоит заглянуть в документацию. Poetry полезен даже в Docker, обеспечивая возможность переноса зависимостей между этапами сборки в multi-stage builds.

DevFM
2 837
Мы сняли часовой стрим по созданию небольшого проекта на python для начинающих разработчиков. Идея проста — прочитать в csv-файле ФИО и login и проверить существование этого login на gitlab. Но тут vim, проект на gitlab, консольный git, исключения, google docstring, правильная структура проекта и тесты — всё слилось в едином экстазе. Все покрытые темы — в описании под видео. #youtube

DevFM
2 837
Пятничное развлекательное. Этим вечером предлагаем вам очередную подборку комиксов от xkcd с лёгким налётом безумия. Про инте
Пятничное развлекательное. Этим вечером предлагаем вам очередную подборку комиксов от xkcd с лёгким налётом безумия. Про интерес к этому комиксу вы можете почитать в старом посте. Безопасность Взгляды на конфиденциальность Бессонница Кишечная фауна Представь себе поляну Проверка багажа Путешествие во времени Свобода слова #fun