TGViewer
DevOps FM DevOps FM @devops_fm · 5.28K subscribers
Post #888 2.34K
Макросы в коде: что стоит учитывать при ревью и CI/CD

👩‍💻Линус Торвальдс прошёлся по коду, где был предложен макрос make_u32_from_two_u16()— инструмент для объединения двух 16-битных чисел в одно 32-битное. На первый взгляд, решение удобно, но Линус назвал реализацию "мусорной": такая абстракция усложняет понимание и сопровождение кода.

Как улучшить код и ревью
⏺Используйте явную запись
Прямое выражение показывает порядок и логику:

((uint32_t)a << 16) | (uint32_t)b

⏺Добавляйте абстракции только при необходимости
Макросы и функции избавляют от дублирования или повышают безопасность, а не просто «упаковывают» очевидные выражения.

⏺Следите за переносимостью
Добавляйте приведения типов и маскирование, чтобы избежать ошибок на разных архитектурах:
#define MAKE_U32_FROM_TWO_U16(high, low) \
(((uint32_t)(high) << 16) | ((uint32_t)(low) & 0xFFFF))


⏺Сохраняйте ясность и локальность изменений
Если нужна общая утилита — поместите её в отдельный модуль и документируйте назначение. Так, вы снижаете вероятность конфликтов и улучшаете читаемость кода.

⏺Используйте ИИ-инструменты осознанно
Генераторы кода (ChatGPT, Gemini и пр.) могут предложить готовое решение, но итоговый вариант важно проверять: читаемость, переносимость, соответствие стилю проекта — всё это остаётся задачей разработчика.

Даже небольшие абстракции требуют осознанного подхода.
Если операция проста, прозрачна и понятна, лучше записать её явно. Так, код становится надёжнее, ревью — быстрее, а CI/CD-процессы — стабильнее.

#DevOps #Linux #CICD
  • 👍 4
  • 🔥 3
  • ❤ 2
More from @devops_fm
  1. Sep 28, 2026Почему Kubernetes API server может съесть память на обычном LIST 👀 Получить список объект…
  2. Sep 25, 2026Redis Streams vs Kafka 📝 Что выбрать для системы обработки событий: Redis Streams или Kaf…
  3. Sep 23, 2026Новостной дайджест от DevOps FM! Делимся свежими новостями и важными изменениями в мире De…
  4. Sep 21, 2026Nxs-anomaly — инструмент для алертинга и дежурств Когда алертов становится много, сама отп…
  5. Sep 18, 2026👩‍💻 Что нового в Kubernetes 1.37? Бодрый DevOps! В эту пятницу разбираем свежие материал…
  6. Sep 16, 2026В эфире DevOps FM – срединедельный дайджест новостей! ⏺В Forgejo обнаружили критическую уя…
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 →