Бодрый кодер – Telegram
Бодрый кодер
449 subscribers
249 photos
24 videos
4 files
164 links
Меня зовут Лев, я руководитель направления в ПСБ. Это мой личный блог о DevOps, разработке, системном анализе, AI и управлении IT-командами. Делюсь своими мыслями, инсайтами, полезными инструментами и тем, что меня вдохновляет.

Автор: @nemirlev
Download Telegram
Хороший получился «камбек» на Хабр, спустя 4-е года. В отпуске написал 5 статей, запилил benchmark для дистрибутивов Docker на Mac, 2 статьи опубликовал, с одной попал в ТОП - 5 публикаций за сутки, и попал в ТОП 100 авторов Хабра (попасть в целом не сложно, но вот удержаться будет сильно сложнее).
14
Собеседование:

- "Расскажите о вашем опыте работы с Legacy"
- "Я психологически устойчив и умею гуглить"
- "Вы приняты!"

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

#пятничныйюмор"
👍3
За годы в аналитике понял главное: не спешите предлагать решения. "Нам нужна новая форма" часто означает "у нас есть проблема, и мы придумали решение". Копайте глубже - какую проблему решаем? Что мешает пользователям? Иногда настоящее решение намного проще предложенного.

#SystemAnalysis #BussinessAnalysis #Tips
👍5👏1
Я однозначно не могу понять, когда в opensource нужно прикладывать ID что ты не русский. Причем парень так упоролся что даже в имени и “about” написал что при необходимости может доказать что не русский.

Для меня всегда OpenSource был местом, где нет место национальности, а есть профессионализму.

https://habr.com/ru/news/856946/
🤣6
Для автоматизации локальных задач разработки традиционно используется Make, но есть более современная альтернатива - Task. Главные преимущества: читаемый YAML-синтаксис вместо табов, автоподгрузка .env файлов и удобные зависимости между тасками.


version: '3'

tasks:
build:
cmds:
- go build -v -i main.go

assets:
cmds:
- esbuild --bundle --minify css/index.css > public/bundle.css



version: '3'

tasks:
up:
dir: '{{.USER_WORKING_DIR}}'
preconditions:
- test -f docker-compose.yml
cmds:
- docker-compose up -d


Особенно удобно для проектов, где нужно автоматизировать разные команды: сборку, тесты, деплой. На всех OS без дополнительных зависимостей.

#DevTools #automation #productivity
🔥2
Multi-stage builds и правильный .dockerignore могут уменьшить размер образа в несколько раз. Вместо этого:


FROM node:18
COPY . .
RUN npm install
RUN npm run build


Используйте:


FROM node:18-alpine AS builder
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM nginx:alpine
COPY --from=builder /build /usr/share/nginx/html


А в .dockerignore добавьте node_modules, .git, tests. Образы собираются быстрее и занимают меньше места в registry.

Альтернативный подход - Buildpacks, но они менее гибкие в настройке.
#Docker #optimization #DevOps
👍4
Mozilla SOPS + age решают проблему хранения секретов в Git-репозитории. SOPS шифрует только значения, оставляя структуру файла читаемой:


# До шифрования
database:
user: admin
password: super_secret

# После шифрования
database:
user: ENC[AES256_GCM,data=...]
password: ENC[AES256_GCM,data=...]


Поддерживает yaml/json/env файлы. Интегрируется с cloud KMS или локальными ключами через age. В отличие от Vault, не требует отдельного сервера.
#security #DevOps #GitOps
PM: Успеем до дедлайна?
Dev: Конечно!
открывает гугл: 'как установить Java за 5 минут'
открывает второй таб: 'Spring Boot quick start'
открывает третий таб: 'Spring Boot CRUD API'
...Устал читать...
открывает четвертый таб: 'ChatGPT, вот требования, напиши микросервис на Java'

#пятничныйюмор 😅
🔥9
Для документирования архитектуры и процессов часто выбирают между BPMN и UML. Но важнее не конкретная нотация, а понимание аудитории. Технический UML-компонент идеален для разработчиков, а для бизнеса часто достаточно простой блок-схемы или белой доски и маркера.

С бизнесом еще отлично работает C4 model - начинаете с простой контекстной диаграммы, и по необходимости углубляетесь в детали. PlantUML + C4 = отличная документация в git без сложных инструментов.

А вот Enterprise Architect используйте, только если это действительно требуется процессами компании.

#SystemDesign #Documentation #Architecture
7👍3
Не реклама, а искренняя рекомендация.

С 19 ноября по 3 декабря в издательском доме «Питер» действуют скидка 40% на все бумажные книги по купону «Бумажная» и скидка 50% на все электронные книги по купону «Электронная».
👍9
По крайней мере, есть документация.

#пятничныйюмор
😁6
Кто на Analyst Days? Можем попить кофе :)

Сегодня выступаю с докладом - От проектирования до поддержки: работа с AsyncAPI
👍6🔥53
Очень классный доклад послушал про Event Driven архитектуру, Мария очень понятно разобрала outbox pattern и CDC. Чувствую , щас многие пойдут тыкать Debezium после доклада.

Получил идеи, чтобы улучшить в своих семинарах по базам данных в ВШЭ.

P.S. Жаль, что видео докладов только через полгода после конференции, я бы сразу мог поделиться с вами теми докладами, которые зашли.
🔥10👍3
Наконец-то немного выдохнул после вчерашнего выступления. Это было очень круто, места в зале оказались все заняты, люди даже стояли.

Аудитория тоже была огненной, и теперь остается надеятся, что доклад окажется таким же полезным, как про контракты в начале года на AnalystDays #18.

Скоро планирую опубликовать статью на Хабре на основе моего выступления для тех, кто не видел доклада или просто захочет добавить в закладки, а пока прикладываю презентацию.
🔥20👍5❤‍🔥4
Для анализа метрик в Prometheus часто используют increase(metric[5m])/300, но это не самый удачный подход. Rate(metric[5m]) даёт более точные результаты, особенно при нестабильном скрейпинге или пропуске метрик.

Rate сразу показывает значение в секунду и правильно обрабатывает counter reset. Плюс формула короче и понятнее. Win-win!
P.S. Для событий, которые случаются редко (раз в минуту или реже), лучше использовать increase.
#Prometheus #monitoring #DevOps
👍5
Бодрый кодер pinned «Для анализа метрик в Prometheus часто используют increase(metric[5m])/300, но это не самый удачный подход. Rate(metric[5m]) даёт более точные результаты, особенно при нестабильном скрейпинге или пропуске метрик. Rate сразу показывает значение в секунду и…»