TGViewer
Channel Public Channel
DevFM

DevFM

@devfm

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

Для связи @sa_bul
Subscribers
3.05K
Photos
82
Videos
6
Links
554

Showing posts older than #416 · Back to latest

Older Posts 20 shown
Post #415 1.88K
Как находить время "на почитать"

Я всегда любил читать. Раньше больше художку, потом больше нон-фикшн. Однажды заметил, что совсем перестал читать. И не из-за того что не хочется, а потому что всегда находится что-то важнее, всегда есть какой то вытесняющий фактор.

В итоге задумался, а что я делаю каждый день, на что я всегда нахожу время? Каждый день я пью кофе, полчаса точно, а значит, именно это время я могу выделить на почитать. И так делаю уже пару лет. Каждый день минимум полчаса на чтение — неплохой результат, если до этого было ноль.

Разумеется, не обязательно пить кофе по утрам, и, вероятно, вы и так вдоволь читаете, но вектор понятен.

Мы писали про анализ предметной области перед стартом проекта и откуда вообще брать источники технической литературы. Рекомендации от нас по интересным книгам вы найдёте по тегу #books.

Какую последнюю книгу вы прочитали и готовы рекомендовать?

#edu
Telegram DevFM Любая работа по программированию начинается с анализа предметной области. Рекомендуется пара этих ресурсов - для русского и английского поиска. https://cyberleninka.ru https://www.researchgate.net https://scholar.google.com/ В начале ищутся самые популярные…
  • 🔥 9
  • 🌭 4
  • 👍 3
  • ❤ 1
Post #414 1.86K
Event storming для проектирования сервисов

Скажу честно, я в event storming не бум-бум и никогда не применял на практике. На просторах хабра нашел вводную статью — Моделирование микросервисов с помощью Event storming.

Event Storming помогает быстро получить стратегический дизайн, определив границы, в рамках которых технические решения можно принимать автономно.

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

А вот официальный сайт, если заинтересовались концепцией.

#systemdesign
  • 🔥 6
  • 👍 2
  • 🌭 2
Post #413 1.71K
Пятничное развлекательное

Anki-карточки — отличный способ набить словарный запас, заучивая фразы и предложения на релевантные для вас темы.

Ещё давно, когда ничего не знал про anki, использовал этот метод. Делал подписи на бумажках, чтобы готовиться к госам и ботать формулировки разных, не очень интересных теорем.

Существующие решения обычно просят бабосики и имеют перегруженный функционал. Недавно нашли приятное опенсорсное решении — Scholarsome (github) с минимально достаточным функционалом.

#fun #edu
  • ❤ 9
  • 🌭 3
  • 👍 2
Post #412 2.16K
Как документировать архитектуру

В архитектуру входят сервисы, базы данных, брокеры сообщений, внешние интеграции и хорошо бы понимать, кто на ком стоял и кто с кем взаимодействует.

Замечательная статья, охватывающая многие аспекты документирования. Начинает автор с главного, объясняя, зачем нужно документировать архитектуру.

В качестве структурного шаблона для документирования предлагается использовать arc42. Для визуализации — C4 model. Кстати, C4 оказалась вполне удобной, и мы активно применяем её у себя.

Из приятного — для arc42 и C4 автор приводит ссылки на хорошие примеры реализации.

В конце автор рассказывает, как можно всё описанное организовать, применяя подход — documentation as code, а так же приводит полезные тулзы для этого.

#systemdesign #tools
workingsoftware.dev The Ultimate Guide To Software Architecture Documentation This guide shows you how to write, structure, visualize and manage software architecture documentation using appropriate documentation tools.
  • 👍 8
  • 🔥 4
  • ❤ 2
  • 🌭 1
Post #410 1.95K
Пятничное развлекательное

Недавно нашел милый гиковский проект Cooklang для тех, кто любит готовить.

Позволяет управлять своими рецептами, составлять по рецепту список покупок. Также есть приложение, веб-морда и даже cli-интерфейс.

А ещё есть видео, где ребята рассказывают, как этим всем пользоваться.

#fun
Cooklang Cooklang – Recipe Markup Language Cooklang is a markup language for recipes.
  • ❤ 7
  • 👍 4
  • 🔥 2
Post #409 2.52K
Бесплатный курс "Командная строка для разработчиков"

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

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

Введение и первое занятие уже доступно на степике. Примерная программа курса тут, будем рады замечаниям, дополнениям и лайкам.

#devfm
  • 🔥 31
  • 👍 8
  • ❤ 2
Post #408 1.88K
Мониторинг — боль

Интересное чтиво на тему мониторинга.

Казалось бы, логи и метрики облегчают жизнь, наблюдаемость системы растет, отладка становится проще. Или не совсем?

Автор проходится по основным моментам логирования и сбора метрик. Описывает боли, с которыми неоднократно сталкивался. Многое из написанного оказалось знакомо.

По каждому из пунктов даются практические советы. Один из интересных подходов, который хочется попробовать — семплирование логов.

Отдельно автор останавливается на трассировке, как на недооценённом инструменте.

В общем, по прочтении статьи появляется пища для размышлений и желание более критически посмотреть на то, что мы собираем.

#skills #logging
matduggan.com Monitoring is a Pain And we're all doing it wrong (including me) I have a confession. Despite having been hired multiple times in part due to my experience with monitoring platforms, I have come to hate monitoring. Monitoring and observability tools commit the cardinal sin of…
  • 👍 8
  • ❤ 3
  • 🔥 2
  • 🌭 1
Post #407 1.86K
Retrying consumer in Kafka

В кафке консьюмер получает сообщение из топика и приступает к его обработке. Но в процессе обработки могут возникать разного рода проблемы. Если проблема временная, то её можно решить, сделав ретрай через какое-то время.

Кафка не предоставляет возможность пропустить сообщение и вернуться к нему позже.

Самое топорное решение, которое приходит на ум – сделать ретраи на уровне обработчика сообщений. Просто в цикле гонять обработку сообщения, пока не будет успех. Но при такой реализации мы заблокируем процесс обработки новых сообщений из топика.

В статье автор предлагает организовать систему ретраев через добавление новых топиков и специальной логики работы с ними.

После прочтения, возможно, возникнет лёгкий дискомфорт, с ощущением того, что предлагается сделать какую-то вундервафлю. Соглашусь, решение получается громоздкое, но более элегантного я не видел.

#skills
Pragmatists Retrying consumer architecture in the Apache Kafka In this article I would like to explain what kind of problems can we encounter in Kafka messages processing and how can we deal with them. Before you go further basic Kafka knowledge is recommended…
  • ❤ 6
  • 👍 5
  • 🔥 1
Post #406 1.87K
Пятничное развлекательное

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

#fun
  • 🔥 16
  • 😁 5
  • ❤ 3
Post #405 2.24K
Путь от монолита к микросервисам

Лёгкая для понимания статья, проводящая грань между монолитом, микросервисным монолитом, микросервисами и так называемым оркестратором бизнес-сервисов (последнее – это какая-то ненаучная фантастика).

Каждый из вариантов имеет свои плюсы и свои недостатки, о которых говорит автор. Пожалуй, самое грустное – зависнуть на микросервисном монолите и словить все проблемы, какие только можно придумать.

Статья мне понравилось ещё тем, что по пути автор даёт ссылки на интересные материалы для погружения в тему. Например, о CirquitBreaker от Мартина Фаулера.

Тема достаточно холиварная, поэтому советую ещё заглянуть в комменты.

#systemdesign
  • 👍 6
  • 🌭 3
  • 🔥 1
Post #403 1.99K
Типы кабелей

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

– силовые кабели
– витая пара и DAC-кабель. Какие категории кабелей бывают и как и что на это влияет: скорость передачи данных, экранирование
– оптика. Что за мода такая, что за сердцевина, какие бывают коннекторы

Из полезного: позволяет немного погрузиться в тему и, например, не растеряться, когда будете выбирать кабель для домашних или рабочих нужд.
  • 👍 4
  • ❤ 3
  • 🔥 2
  • 🌭 2
Post #402 2.06K
Backup: подборка по базам

Экспертиза в базах данных – супер востребованный скилл среди разработчиков. У нас накопилось приличное количество постов, посвящённых базам данных. Собрали все в один пост, чтобы было удобно.

Практика
– Подробный гайд по работе с json в postgres
– Какой тип данных использовать для хранения строк в postgres
– Куда смотреть, если postgres начала тупить
– Базовые настройки Postgres
– Работа с NULL в Postgres
– Тестирование миграций alembic
– Сравниваем базы данных с помощью data-diff
– Временные интервалы в postgres
– Порядок имеет значение
– Утилита postgres_dba

Теория
– TOAST – проблемы откуда не ждали
– Индексы в PostgreSQL
– Буфферный кеш в PostgreSQL
– Этапы выполнения запросов в PostgreSQL
– ACID в PostgreSQL
–Понимаем EXPLAIN в PostgreSQL
– Миграции без даунтайма
– Храним данные по-разному, в зависимости от цели – создаем аналитическую базу
– Введение в Greenplum и пример реального использования
– Введение в Manticore и сравнение с Elastic
– Тернистый путь к ClickHouse
– Оптимизатор Join в Postgres
– Как мы боролись с Manticore
– Посмотрите на keydb
– TimescaleDB для хранения временных рядов

Эту подборку мы добавим в закреплённое сообщение и будем поддерживать в актуальном состоянии. Пробейте палец вверх, если считаете подобные тематические подборки полезными.

#backup
Telegram DevFM Работа с json в PostgreSQL Цикл супер-полезных практических заметок о работе с json в PostgreSQL. Затрагиваются вопросы: — чем json отличается от jsonb — как парсить json. В том числе: извлечение поля из json-объекта, получение тип данных, проверка существования…
  • 👍 30
  • 🔥 6
  • ❤ 2
Post #401 5.23K
Зачем разработчику нужен Linux вообще и терминал в частности

Эта статья существует! Вчерашний анонс из-за путешествий во времени вышел не вовремя. Так зачем вам терминал?
– легко поставить софт
– легко автоматизировать процессы
– легко вспомнить
– легко настроить под себя

легко…(злобный закадровый смешок)

Покажем, чем терминал важен для разработчиков и не только на разных примерах.

#devfm #skills
Хабр Зачем разработчику нужен Linux вообще и терминал в частности Тема "Windows vs Linux" является частой причиной холиваров. Спорить бессмысленно, так как для каждой задачи требуется свой инструмент. Позвольте заинтересовать вас чудесным миром Linux и теми...
  • 👍 14
  • ❤ 4
  • 🔥 3
  • 👎 2
  • 😁 1
Post #400 1.63K
За что мы любим командную строку

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

На хабре мы написали лёгкую статью, где на примерах рассказали, за что мы любим командную строку. Профессиональный навык работы с командной строкой – один из шагов к 10х программисту.
  • ❤ 7
  • 🌭 5
  • 🔥 3
Post #399 1.69K
Управление данными в микросервисах

В микросервисной архитектуре у каждого сервиса обычно своя база данных. Для организации доступа одного сервиса к данным другого сервиса нужно либо каждый раз делать запрос к сервису, ответственному за данные, либо иметь копию нужных данных. И тут важен баланс.

Например, у нас есть сервис, который хранит и обслуживает актуальный справочник городов. А навигационный сервис предоставляет информацию о маршрутах общественного транспорта в выбранном городе. Как правильно организовать доступ навигационного сервиса к справочнику городов?

В статье автор рассказывает о способах управления данными в микросервисной архитектуре:
– Дублирование мастер-систем. Каждый сервис хранит и поддерживает данные независимо друг от друга
– API. Сервис, ответственный за данные, предоставляет доступ к данным по API другим сервисам
– DWH. Сервис, ответственный за данные, сливает их в единое хранилище, а другие сервисы имеют доступ к хранилищу
– Очереди. Сервис, ответственный за данные, публикует информацию обо всех изменениях в очередь. А другие сервисы, считывая данные из очереди, хранят на своей стороне и актуализируют.

По каждому способу автор рассказывает о достоинствах и недостатках. Подробнее останавливается на последнем, как на наиболее интересном, и рассказывает о нюансах реализации.

Способ через очереди мне особенно нравится тем, что позволяет делать сервисы более независимыми, хотя он, конечно, более трудозатратный.

#systemdesign
  • 👍 6
  • 🔥 3
  • 🌭 3
Post #398 1.57K
Попробуйте ruff

Ранее мы рассказывали о целом наборе линтеров, которые постоянно применяем в своих проектах.

Недавно обратили внимание на достаточно молодой и интересный линтер для python – ruff. Он объединяет в себе правила многих других линтеров – по сути всех, которые используем.

Мы уже сделали для себя конфиг и испробовали его на одном из сервисов. Полёт нормальный, ощущения только положительные.

Из плюсов:
– ощутимая скорость. Линтеры у нас прогоняются с помощью pre-commit на каждом коммите, поэтому скорость имеет значение. Пару раз даже ловил себя на мысли, что не делаю лишний коммит, чтобы не ждать прогона линтеров. А ruff отрабатывает практически моментально
– в pre-commit не нужно держать целый зоопарк линтеров. Достаточно один раз сконфигурировать и подключить ruff

Так что категорически рекомендую попробовать. У них, кстати, есть playground для этих целей.

#python
Telegram DevFM Делаем код мягким и шелковистым Мы уже говорили об утилите pre-commit, которая автоматизирует рутинный запуск анализаторов кода и не позволяет сделать коммит, пока проблемы не будут исправлены. Теперь расскажем о тех утилитах, которые применяются в каждом…
  • 👍 9
  • 🔥 6
  • ❤ 3
Post #397 1.47K
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
  • 🔥 7
  • ❤ 2
  • 👍 2
Post #396 1.4K
Пятничное развлекательное

Мы уже говорили о Роберте Сапольски. Хочется порекомендовать ещё одну захватывающую лекцию. На этот раз о религии. Просто послушайте и делайте выводы сами.

А кто хочет лёгкого и интересного чтения обратите внимание на его книгу о жизни и работе в Африке – Записки примата. Необычайная жизнь ученого среди павианов. Путешествия по континенту, исследование влияния стресса на другие биологические показатели, быт местных племен.

#fun #books
Telegram DevFM Пятничное развлекательное Хочется порекомендовать замечательный курс для небиологов от Стэнфордского университета Биология поведения человека, который ведет Роберт Сапольски. Курс аж на 27 лекций будет интересен увлекающимся подобной тематикой. И абсолютно…
  • 👍 8
  • ❤ 2
  • 🌭 2
Post #395 1.3K
Сам читаю недавно, но уже хочется посоветовать живой и приятный канал Николая Хитрова о разработке на python.

Автор пишет много практических постов о разработке, например, пост о логировании или какие нюансики стоит знать, внедряя loguru. Периодически поток информации разбавляется юмором. А ещё узнал из этого канала об интересной такой утилите deptry.
Telegram Николай Хитров | Блог Личный бложик про IT новости, инструменты из мира python и различные методологии по типу DDD, TDD, OOP vs FP и прочие модные абревиатуры Tg: @nkhitrov Github: https://github.com/nkhitrov
  • 👍 6
  • ❤ 5
  • 🔥 2
Post #394 1.41K
Работа с памятью

На практике редко приходится работать с памятью напрямую, но под капотом компьютер шуршит шестерёнками — выделяет и освобождает память.

Познавательная статья с очень качественной визуализацией, посвящённая основам работы с памятью.

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

#skills
  • ❤ 10
  • 👍 3
  • 🌭 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →