Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

10.01.2024

Як зрозуміти велику систему?

Довелося розбиратися з великою та заплутаною системою, щоб виправити в ній баги. Добре, коли є документація, а що, якщо її немає?

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

Починаємо з того, щоб записати те, що ми знаємо — початковий та кінцевий стан. Ну, наприклад: ми знаємо, що є запис в базі, та цей запис зʼявляється на екрані. Та хочемо зрозуміти, як

Далі, кроки, які нам відомі. Абсолютно не обовʼязково тут бути послідовним. Навпаки, краще почати з того, в чому певні. Де стан можна перевірити.

Наприклад, мабуть, з зовнішньої побудови ми знаємо, які у нас є сервіси. То вже якась структура. Всередині сервісу зазвичай складніше, бо код під час переплетений, та шари незрозумілі.

Наші засоби: журнали та глобальний пошук по коду. Знаходимо цікаві речі в журналах, шукаємо по коду. Так само можна роздивлятись конфігурацію, вводи та виводи та інше.

Для кожного кроку записуємо: ввід та вивід; загальні ідеї про поведінку; корисні команди та місця для дослідження; розташування коду; відомі проблеми (якщо можемо їх точно привʼязати до конкретного кроку, наприклад, за журналом).

В будь-якій зрілій системі будуть атавізми — шляхи в нікуди, залишки минулих часів. Такі теж потрібно записати, якщо зустрінеш.

А щодо формату? Дехто полюбляє діаграми, але для мене найкращий формат — то текст. Його швидше редагувати, а саме редагувати доведеться перед усім.