Від початку до кінцяВідкрийте проєкт, змініть одне, перевірте
Хороший робочий процес Delphi — невеликий. Відкрийте папку проєкту, запитайте одну зміну, прочитайте диф і запустіть команду збірки. Arraydeck дотримується цього циклу за допомогою реальних інструментів, тому кожен крок залишає картку в чаті, яку можна розгорнути й перевірити: від першого пошуку до останнього коду виходу. Нічого не приховано за зведеним звітом. Якщо крок виглядає неправильно, ви зупиняєте цикл, відхиляєте зміну і перефразуєте запит, а файли залишаються такими, якими були до цього кроку. Ті самі чотири кроки працюють як для маленького модуля, так і для проєкту з багатьма формами. Початківці та досвідчені супровідники можуть почати з пошуку в режимі лише для читання, оскільки він не змінює жодного файлу, але все одно показує структуру проєкту.
Чотири завдання для супроводу програм Delphi
Знайти, де зберігається налаштування
Початківці, які вивчають Delphi, часто питають, куди значення потрапляє на диск. Запитайте Arraydeck знайти, де записується налаштування. Агент запускає grep для імені налаштування по ваших файлах .pas, потім read_file відкриває відповідний модуль, і відповідь з'являється в чаті з іменами файлів і рядками. Нічого не змінюється. Відкрийте модуль у своєму редакторі, щоб підтвердити, що процедура є тією, яку ви мали на увазі, і запишіть ім'я файлу перед тим, як просити редагування. Цей пошук лише для читання — гарний перший запит для будь-якого проєкту, який ви не писали самі. Запишіть файл і рядок перед тим, як просити будь-яке редагування, тому що точне ім'я файлу і номер рядка роблять наступний запит коротким, а наступний диф легким для розуміння будь-ким, хто читатиме ваш проєкт після вас.
Додати try finally навколо об'єкта
Запитайте про безпечніший обробник: знайдіть процедуру, яка створює об'єкт, і переконайтеся, що він звільняється. Агент шукає за допомогою grep, читає модуль і пропонує зміну за допомогою edit_file, обгортаючи код у try ... finally ... Free. У Ask first диф з'являється, і нічого не записується, доки ви не приймете його. Потім Shell запускає вашу команду збірки, і картка показує реальний код виходу. Запустіть і свої тести. Збіга, що пройшла, доводить лише синтаксис, а не те, що об'єкт звільняється в кожному шляху, тому повільно читайте диф. Запустіть тести ще раз після прийняття дифу і тримайте стару версію модуля у власному резервному копіюванні або системі контролю версій, доки ви не впевнитеся, що обробник все ще звільняє кожен об'єкт у кожній гілці.
Перейменувати процедуру всюди
Ось як модернізувати програми Delphi маленькими кроками: перейменуйте незрозумілу процедуру, одне ім'я за раз. Запитайте агента перейменувати її в кожному модулі. Він використовує grep для переліку кожного місця, де зустрічається ім'я, потім edit_file змінює кожен файл, а дифи показують кожний рядок, що рухається. Перейменуйте один раз. Огляньте всі дифи разом, тому що однакове слово всередині рядка або коментара не завжди є викликом, потім зберіть проєкт і запустіть тести перед прийняттям останнього файлу. Повторюйте перейменування для наступної процедури лише тоді, коли збірка і тести проходять, щоб помилка завжди залишалася в одному маленькому дифі і ніколи не ховалася всередині довгого списку незв'язаних змін по багатьох модулях.
Пояснити рядок за рядком у циклі
Логіка трикутника Паскаля, пояснена в короткому модулі, є справедливим запитом для практики. Запитайте агента прочитати цикл і описати, рядок за рядком, що містить кожна змінна в кожному проході. Він викликає read_file, потім відповідає в чаті без запису чогось, тому Plan only достатньо. Перевірте пояснення, запустивши модуль самостійно через вашу команду збірки і простеживши цикл на папері на 3 або 4 рядки. Якщо агент і програма не згодні, довіряйте програмі і задайте питання знову з точним рядком у цитаті. Зробіть те ж саме для другого циклу, якщо перша відповідь допомогла, і запитайте коротше пояснення, коли абзац здається довгим, тому що ви завжди можете запросити більше деталей точно на рядку, який вас плутає.