Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni
🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!10.01.2024
Як зрозуміти велику систему?
Довелося розбиратися з великою та заплутаною системою, щоб виправити в ній баги. Добре, коли є документація, а що, якщо її немає?
Раджу зосередитись на лінійному процесі, а не на розгалуженнях. Розгалуженнями можна пізніше зайнятись, коли зрозуміло, що куди йде. Отже, обираємо одну з можливих ниточок поведінки системи.
Починаємо з того, щоб записати те, що ми знаємо — початковий та кінцевий стан. Ну, наприклад: ми знаємо, що є запис в базі, та цей запис зʼявляється на екрані. Та хочемо зрозуміти, як
Далі, кроки, які нам відомі. Абсолютно не обовʼязково тут бути послідовним. Навпаки, краще почати з того, в чому певні. Де стан можна перевірити.
Наприклад, мабуть, з зовнішньої побудови ми знаємо, які у нас є сервіси. То вже якась структура. Всередині сервісу зазвичай складніше, бо код під час переплетений, та шари незрозумілі.
Наші засоби: журнали та глобальний пошук по коду. Знаходимо цікаві речі в журналах, шукаємо по коду. Так само можна роздивлятись конфігурацію, вводи та виводи та інше.
Для кожного кроку записуємо: ввід та вивід; загальні ідеї про поведінку; корисні команди та місця для дослідження; розташування коду; відомі проблеми (якщо можемо їх точно привʼязати до конкретного кроку, наприклад, за журналом).
В будь-якій зрілій системі будуть атавізми — шляхи в нікуди, залишки минулих часів. Такі теж потрібно записати, якщо зустрінеш.
А щодо формату? Дехто полюбляє діаграми, але для мене найкращий формат — то текст. Його швидше редагувати, а саме редагувати доведеться перед усім.