awesome-everything EN
↑ Обратно к восхождению

Инженерная практика

Собираем вместе: чтение кода и конфигов

Суть Чтение реальных артефактов петли доставки — теста, feature flag, CI-гейта и action item постмортема — и выбор изменения, которое сеньор делает первым.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 14 min

Петля — не абстракция: она проявляется как тест, флаг, CI-гейт и action item постмортема. Прочитайте каждый артефакт, найдите, какое звено петли доставки он усиливает или ломает, и выберите фикс, который сеньор сделает первым.

Цель

Потренировать чтение конкретных артефактов, которые порождает каждая практика — теста, feature flag, гейта пайплайна, action item постмортема — и оценку того, реально ли каждый из них замыкает петлю или тихо оставляет стык открытым.

Сниппет 1 — проверка флага на горячем пути

// поставлен 14 месяцев назад под раскатку "new-checkout", так и не удалён
export function priceCart(cart: Cart): Money {
  if (flags.isEnabled("new-checkout-pricing")) {
    return newPricing(cart);   // раскатка "completed" много месяцев назад
  }
  return legacyPricing(cart);  // всё ещё здесь, всё ещё достижим
}
Викторина

Раскатка new-checkout завершилась больше года назад. Какое сеньорное действие с этим флагом и почему оставить его дороже, чем кажется?

Сниппет 2 — тест, написанный первым

// написан до того, как появилась реализация
test("refund splits across original tender lines", () => {
  const order = orderWith([cash(30), card(70)]);
  const refund = refundService.refund(order, money(50));
  expect(refund.allocations).toEqual([cash(15), card(35)]);  // пропорционально
});
Викторина

Команда пишет этот тест до того, как существует refundService. В чём главная ценность написать его первым — в терминах петли?

Сниппет 3 — гейт CI-пайплайна

# .ci/merge-gate.yml — обязателен для мержа в trunk
on: pull_request
jobs:
  gate:
    steps:
      - run: make unit            # ~90с, детерминированно
      - run: make contract        # верификация consumer + provider
      - run: make e2e-smoke       # только 1 критичный путь
      - run: make e2e-full || true # полный набор, разрешено падать
Викторина

Этот гейт обязателен для мержа. Какой фикс конфига даёт наибольший рычаг и почему?

Сниппет 4 — action item постмортема

## Action items
- [ ] Улучшить коммуникацию во время инцидентов          owner: ?        due: ?
- [x] Добавить контрактный тест: `cart.total` неотрицателен   owner: @ana   due: 2026-06-02   ticket: PAY-1183
- [ ] Быть аккуратнее при изменении конфига цен     owner: team     due: ongoing
Викторина

Читая эти три action item из blameless-постмортема, какой реально замыкает петлю и почему два других проваливаются?

Итог

Каждая практика оставляет конкретный артефакт, и его чтение говорит, цела ли петля: завершённый флаг всё ещё на горячем пути — это долг к удалению, не инструмент отката; тест, написанный первым — это design pressure и сигнал мержа, с покрытием как побочным продуктом; CI-шаг, которому ‘разрешено падать’ — не гейт и тихо приучает команду игнорировать красное; а пункт постмортема замыкает петлю, только когда он owned, датирован, отслеживается и возвращает конкретное утверждение в CI. Читайте артефакт, находите звено, чините стык — не любуйтесь церемонией.

Продолжить восхождение ↑Собираем вместе: постройте петлю доставки команды
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.