Щоденник розробки: Чесність системи

Будуйте системи, які говорять правду.

Система настільки хороша, наскільки хороші її сигнали. Якщо ваші запити приховують марнотратство, перевірки стану (health checks) брешуть, а інструменти повторюють одну й ту саму роботу — ваша система нечесна.

Я провів день, працюючи над чотирма різними технічними напрямками. Кожен із них об'єднаний однією темою: зробити систему чесною.

  1. Продуктивність бази даних Припиніть отримувати дані, які ви не використовуєте.
  • Використовуйте детектор N+1 у своєму середовищі розробки. Він перетворює приховані ліниві завантаження (lazy-loads) на чіткий список завдань.
  • Видаляйте невикористані жадібні завантаження (eager loads). Якщо ваше представлення (view) не використовує колонку, не отримуйте її.
  • Мемоїзуйте константи для кожного запиту. Не перераховуйте одне й те саме значення кілька разів за один цикл.
  • Групуйте запити для дашбордів. Замініть двадцять дрібних викликів count одним груповим запитом.
  1. Справжні перевірки стану (Health Checks) Перевірка, яка лише підтверджує наявність конфігурації, не є перевіркою стану. Це перевірка конфігурації.
  • Справжня перевірка стану повинна підтверджувати доступність.
  • Відкрийте сокет до цільового хоста та порту.
  • Використовуйте контракт або інтерфейс для перемикання між