ru
Feedback
DevFM

DevFM

Открыть в Telegram

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

Больше
2 902
Подписчики
-124 часа
+107 дней
+730 день
Архив постов
DevFM
2 902
Как находить время "на почитать" Я всегда любил читать. Раньше больше художку, потом больше нон-фикшн. Однажды заметил, что совсем перестал читать. И не из-за того что не хочется, а потому что всегда находится что-то важнее, всегда есть какой то вытесняющий фактор. В итоге задумался, а что я делаю каждый день, на что я всегда нахожу время? Каждый день я пью кофе, полчаса точно, а значит, именно это время я могу выделить на почитать. И так делаю уже пару лет. Каждый день минимум полчаса на чтение — неплохой результат, если до этого было ноль. Разумеется, не обязательно пить кофе по утрам, и, вероятно, вы и так вдоволь читаете, но вектор понятен. Мы писали про анализ предметной области перед стартом проекта и откуда вообще брать источники технической литературы. Рекомендации от нас по интересным книгам вы найдёте по тегу #books. Какую последнюю книгу вы прочитали и готовы рекомендовать? #edu

DevFM
2 902
Event storming для проектирования сервисов Скажу честно, я в event storming не бум-бум и никогда не применял на практике. На просторах хабра нашел вводную статью — Моделирование микросервисов с помощью Event storming. Event Storming помогает быстро получить стратегический дизайн, определив границы, в рамках которых технические решения можно принимать автономно. Сомневаюсь, что буду применять на практике этот метод, но какие-то идеи точно стоит взять на вооружение. Например, правильное распределение приоритетов разработки и выделение контекстов. А вот официальный сайт, если заинтересовались концепцией. #systemdesign

DevFM
2 902
Пятничное развлекательное Anki-карточки — отличный способ набить словарный запас, заучивая фразы и предложения на релевантные для вас темы. Ещё давно, когда ничего не знал про anki, использовал этот метод. Делал подписи на бумажках, чтобы готовиться к госам и ботать формулировки разных, не очень интересных теорем. Существующие решения обычно просят бабосики и имеют перегруженный функционал. Недавно нашли приятное опенсорсное решении — Scholarsome (github) с минимально достаточным функционалом. #fun #edu

DevFM
2 902
Как документировать архитектуру В архитектуру входят сервисы, базы данных, брокеры сообщений, внешние интеграции и хорошо бы понимать, кто на ком стоял и кто с кем взаимодействует. Замечательная статья, охватывающая многие аспекты документирования. Начинает автор с главного, объясняя, зачем нужно документировать архитектуру. В качестве структурного шаблона для документирования предлагается использовать arc42. Для визуализации — C4 model. Кстати, C4 оказалась вполне удобной, и мы активно применяем её у себя. Из приятного — для arc42 и C4 автор приводит ссылки на хорошие примеры реализации. В конце автор рассказывает, как можно всё описанное организовать, применяя подход — documentation as code, а так же приводит полезные тулзы для этого. #systemdesign #tools

DevFM
2 902
Научитесь эффективно взаимодействовать с другими командами при разработке новых фич и создавать реально качественный technica
Научитесь эффективно взаимодействовать с другими командами при разработке новых фич и создавать реально качественный technical design proposal на курсе System Design За 4 недели вы поймёте как собирать требования, оценивать нагрузку, выбирать подходящие СУБД, масштабировать системы и повышать их надёжность и отзывчивость, а также выделять и последовательно проектировать подсистемы для хранения данных, поиска и аналитики как своими силами, так и с помощью готовых продуктов. Вы научитесь дизайнить сервис такси, приложение для знакомств и любую высоконагруженных систем — всё под руководством Валерия Бабушкина, Vice President, Data Science в Blockchainꓸcom. А также поймёте, как устроены собеседования в Big Tech, и получите детальный план ответа на собеседовании. Новый поток стартует уже 17 июля! Ждем вас. [Зарегистрироваться] #реклама

DevFM
2 902
Пятничное развлекательное Недавно нашел милый гиковский проект Cooklang для тех, кто любит готовить. Позволяет управлять своими рецептами, составлять по рецепту список покупок. Также есть приложение, веб-морда и даже cli-интерфейс. А ещё есть видео, где ребята рассказывают, как этим всем пользоваться. #fun

DevFM
2 902
Бесплатный курс "Командная строка для разработчиков" Мы довольно давно готовим молодых python-разработчиков, и начинаем именно с базовых знаний в Linux, прививая желание и умение работать в терминале. Вдохновляясь курсом "Поколения Python" на степике, мы решили сделать свой бесплатный курс "Командная строка для разработчиков", посвящённый терминалу Ubuntu, языку bash и базовому администрированию. Начинающим разработчикам поможем преодолеть неловкость перед текстовым терминалом, опытным разработчикам покажем неочевидные и полезные в работе фишки для увеличения продуктивности. Курс начинался с оффлайна, а переход в онлайн требует существенной переработки материала. Поэтому релизимся поэтапно, выпуская новые уроки по мере готовности. Введение и первое занятие уже доступно на степике. Примерная программа курса тут, будем рады замечаниям, дополнениям и лайкам. #devfm

DevFM
2 902
Мониторинг — боль Интересное чтиво на тему мониторинга. Казалось бы, логи и метрики облегчают жизнь, наблюдаемость системы растет, отладка становится проще. Или не совсем? Автор проходится по основным моментам логирования и сбора метрик. Описывает боли, с которыми неоднократно сталкивался. Многое из написанного оказалось знакомо. По каждому из пунктов даются практические советы. Один из интересных подходов, который хочется попробовать — семплирование логов. Отдельно автор останавливается на трассировке, как на недооценённом инструменте. В общем, по прочтении статьи появляется пища для размышлений и желание более критически посмотреть на то, что мы собираем. #skills #logging

DevFM
2 902
Retrying consumer in Kafka В кафке консьюмер получает сообщение из топика и приступает к его обработке. Но в процессе обработки могут возникать разного рода проблемы. Если проблема временная, то её можно решить, сделав ретрай через какое-то время. Кафка не предоставляет возможность пропустить сообщение и вернуться к нему позже. Самое топорное решение, которое приходит на ум – сделать ретраи на уровне обработчика сообщений. Просто в цикле гонять обработку сообщения, пока не будет успех. Но при такой реализации мы заблокируем процесс обработки новых сообщений из топика. В статье автор предлагает организовать систему ретраев через добавление новых топиков и специальной логики работы с ними. После прочтения, возможно, возникнет лёгкий дискомфорт, с ощущением того, что предлагается сделать какую-то вундервафлю. Соглашусь, решение получается громоздкое, но более элегантного я не видел. #skills

DevFM
2 902
Пятничное развлекательное Отличный фон для срочных рабочих созвонов. И не менее прекрасная зарисовка из замечательного фильма на многие случаи жизни. #fun

DevFM
2 902
Путь от монолита к микросервисам Лёгкая для понимания статья, проводящая грань между монолитом, микросервисным монолитом, микросервисами и так называемым оркестратором бизнес-сервисов (последнее – это какая-то ненаучная фантастика). Каждый из вариантов имеет свои плюсы и свои недостатки, о которых говорит автор. Пожалуй, самое грустное – зависнуть на микросервисном монолите и словить все проблемы, какие только можно придумать. Статья мне понравилось ещё тем, что по пути автор даёт ссылки на интересные материалы для погружения в тему. Например, о CirquitBreaker от Мартина Фаулера. Тема достаточно холиварная, поэтому советую ещё заглянуть в комменты. #systemdesign

DevFM
2 902
Пятничное развлекательное Отличный фон для срочных рабочих созвонов. И еще очень удачная зарисовка из всем известного фильма.

DevFM
2 902
Типы кабелей Немного выбивающаяся из общей канвы канала статья, но всё же. Довольно любопытное чтиво для общего развития. В статье рассказывается о разных кабелях с большим количеством картинок. – силовые кабели – витая пара и DAC-кабель. Какие категории кабелей бывают и как и что на это влияет: скорость передачи данных, экранирование – оптика. Что за мода такая, что за сердцевина, какие бывают коннекторы Из полезного: позволяет немного погрузиться в тему и, например, не растеряться, когда будете выбирать кабель для домашних или рабочих нужд.

DevFM
2 902
Backup: подборка по базам Экспертиза в базах данных – супер востребованный скилл среди разработчиков. У нас накопилось приличное количество постов, посвящённых базам данных. Собрали все в один пост, чтобы было удобно. ПрактикаПодробный гайд по работе с json в postgresКакой тип данных использовать для хранения строк в postgresКуда смотреть, если postgres начала тупитьБазовые настройки PostgresРабота с NULL в PostgresТестирование миграций alembicСравниваем базы данных с помощью data-diff ТеорияTOAST – проблемы откуда не ждалиИндексы в PostgreSQLБуфферный кеш в PostgreSQLЭтапы выполнения запросов в PostgreSQLACID в PostgreSQLПонимаем EXPLAIN в PostgreSQLМиграции без даунтаймаХраним данные по-разному, в зависимости от цели – создаем аналитическую базуВведение в Greenplum и пример реального использованияВведение в Manticore и сравнение с ElasticТернистый путь к ClickHouse Эту подборку мы добавим в закреплённое сообщение и будем поддерживать в актуальном состоянии. Пробейте палец вверх, если считаете подобные тематические подборки полезными. #backup

DevFM
2 902
Зачем разработчику нужен Linux вообще и терминал в частности Эта статья существует! Вчерашний анонс из-за путешествий во времени вышел не вовремя. Так зачем вам терминал? – легко поставить софт – легко автоматизировать процессы – легко вспомнить – легко настроить под себя легко…(злобный закадровый смешок) Покажем, чем терминал важен для разработчиков и не только на разных примерах. #devfm #skills

DevFM
2 902
За что мы любим командную строку В повседневной деятельности мы активно применяем командную строку. Иногда слышим вопросы, о том зачем это вообще нужно, вроде и без нее все хорошо? Этот вопрос вполне логичен, если не погружался в эту тему, не пытался решать реальные задачи. На хабре мы написали легкую статью, где на примерах рассказали за что мы любим командную строку. Профессиональный навык работы с командной строкой – один из шагов к 10х программисту.

DevFM
2 902
Управление данными в микросервисах В микросервисной архитектуре у каждого сервиса обычно своя база данных. Для организации доступа одного сервиса к данным другого сервиса нужно либо каждый раз делать запрос к сервису, ответственному за данные, либо иметь копию нужных данных. И тут важен баланс. Например, у нас есть сервис, который хранит и обслуживает актуальный справочник городов. А навигационный сервис предоставляет информацию о маршрутах общественного транспорта в выбранном городе. Как правильно организовать доступ навигационного сервиса к справочнику городов? В статье автор рассказывает о способах управления данными в микросервисной архитектуре: – Дублирование мастер-систем. Каждый сервис хранит и поддерживает данные независимо друг от друга – API. Сервис, ответственный за данные, предоставляет доступ к данным по API другим сервисам – DWH. Сервис, ответственный за данные, сливает их в единое хранилище, а другие сервисы имеют доступ к хранилищу – Очереди. Сервис, ответственный за данные, публикует информацию обо всех изменениях в очередь. А другие сервисы, считывая данные из очереди, хранят на своей стороне и актуализируют. По каждому способу автор рассказывает о достоинствах и недостатках. Подробнее останавливается на последнем, как на наиболее интересном, и рассказывает о нюансах реализации. Способ через очереди мне особенно нравится тем, что позволяет делать сервисы более независимыми, хотя он, конечно, более трудозатратный. #systemdesign

DevFM
2 902
Попробуйте ruff Ранее мы рассказывали о целом наборе линтеров, которые постоянно применяем в своих проектах. Недавно обратили внимание на достаточно молодой и интересный линтер для python – ruff. Он объединяет в себе правила многих других линтеров – по сути всех, которые используем. Мы уже сделали для себя конфиг и испробовали его на одном из сервисов. Полёт нормальный, ощущения только положительные. Из плюсов: – ощутимая скорость. Линтеры у нас прогоняются с помощью pre-commit на каждом коммите, поэтому скорость имеет значение. Пару раз даже ловил себя на мысли, что не делаю лишний коммит, чтобы не ждать прогона линтеров. А ruff отрабатывает практически моментально – в pre-commit не нужно держать целый зоопарк линтеров. Достаточно один раз сконфигурировать и подключить ruff Так что категорически рекомендую попробовать. У них, кстати, есть playground для этих целей. #python

DevFM
2 902
Backup: май Архитектура проекта 1. Load balancing 2. Zero-Downtime Deployments with Docker Compose 3. Как проектировать микросервисы 4. Кеширование на бекенде 5. Асинхронное взаимодействие сервисов с применением Kafka Копаем вглубь 1. Пагинируем по-всякому 2. Как работает ChatGPT 3. Попробуйте HTMX 4. Работа с памятью Базы данных 1. О производительности Postgres 2. TOAST – проблемы откуда не ждали Разное 1. Как мы стали делать офигенно длинные собрания, и почему это больше не вселенское зло 2. Роберт Сапольски — Биология религиозности 3. Вы, конечно, шутите, мистер Фейнман! 4. Сравниваем лампы и батарейки Если пропустили, то подборка за апрель. #backup

DevFM
2 902
Пятничное развлекательное Мы уже говорили о Роберте Сапольски. Хочется порекомендовать ещё одну захватывающую лекцию. На этот раз о религии. Просто послушайте и делайте выводы сами. А кто хочет лёгкого и интересного чтения обратите внимание на его книгу о жизни и работе в Африке – Записки примата. Необычайная жизнь ученого среди павианов. Путешествия по континенту, исследование влияния стресса на другие биологические показатели, быт местных племен. #fun #books