Ідея
Коли ти працюєш над великим проєктом де представлення (View) баз даних використовуються повсюдно, навіть незначна зміна таблиці часом несе за собою неприємні наслідки. Видалення чи заміна стовпця може призвести до того, що представлення перестануть працювати. Іноді про це дізнаєшся вже як “фіча“ пішла у реліз. Коли я черговий раз зіштовхнувся з подібною проблемою, я і вирішив написати розширення, яке б полегшило пошук залежних представлень.
Ідея проста: користувач клацає на табличку чи на представлення правою клавішею миші і в випадаючому меню вибирає “покажи всі залежності”, після цього виконується скрипт, результатом якого є список всіх представлень де використовується вибраний елемент.
Реалізація
Я не буду тут поглиблюватися в технічну сторону реалізації, а тільки стисло опишу порядок дій та як мені допоміг в цьому ChatGPT, зрештою готовий проєкт можна знайти на GitHub.
Перше що я зробив, це пішов в ChatGPT і попросив написати мені скрипт, який би показував всі представлення які залежать від певної таблички. І ChatGPT впорався з цим на відмінно.
З готовим скриптом, що дістався мені без особливих зусиль, я пішов шукати, як мені створити своє розширення для Azure Data Studio. На щастя це зробити дуже легко і Microsoft надає зручну покрокову інструкцію.
Та подальші кроки виявилися вже не такими легкими. Першим викликом було додання нової позиції до випадаючого меню. Я раніше не мав справи з написанням розширень ні до Visual Studio Code, ні до Azure Data Studio. То ж я пішов шукати інформацію в документації від Microsoft. Та в тих матеріалах які представленні в Інтернеті знайти те що мене цікавило було доволі складно, то ж я знову звернувся до ChatGPT. І тут він мене теж не підвів 😁 та показав всю потрібну мені інформацію.
Далі лишалося написати логіку відкриття нового вікна і запуску скрипту. І перша ж моя ідея була знову делегувати цю задачу ChatGPT, але тут ШІ не впорався та генерував якусь маячню. Тож довелося працювати самому 😢.
Методом проб та помилок, зрештою, вдалося досягти жаданого результату. Останнім кроком був рефакторинг коду і тести, з написанням яких ChatGPT впорався без особливих проблем. Мені лишалося тільки їх скоригувати під власні потреби. Варто зазначити, що ChatGPT добре розуміє всі можливі успішні та провальні випадки та пише під них окремий тест, що значно заощаджує час.
Висновки
Результатом роботи я лишився задоволений, ChatGPT теж. Для мене рішення від OpenAI вже стало незамінним помічником і економить багато часу на рутинних задачах. Звісно ж варто розуміти, що бездумний копіпаст коду до добра не доведе, але при правильному підході це чудовий інструмент, який раджу спробувати кожному/кожній.