Arraydeck
ワークフロー

Delphiプログラミングのワークフローを4ステップで

03
開始から完了まで

プロジェクトを開き、1つの変更を行い、確認する

良いDelphi開発のワークフローは小さくまとまっています。プロジェクトフォルダを開き、1つの変更を依頼し、差分を読み、ビルドコマンドを実行します。Arraydeckは実際のツールを使ってそのループを回し、最初の検索から最終的な終了コードに至るまで、各ステップがチャット内のカードとして残り、展開して検査できます。要約の裏に隠れたものは何もありません。ステップが間違っているように見える場合は、そのループをそこで停止し、変更を拒否して依頼を言い換え、ファイルはそのステップ前の状態のまま保たれます。この4つのステップは、小さなユニットでも、多くのフォームを含むプロジェクトでも同じように機能します。初心者も長年のメンテナーも、ファイルを変更しない読み取り専用検索から始めることができます。これにより、プロジェクトの構成が把握できます。

01

フォルダを開く

チャットの作業フォルダとして、.dprおよび.pasファイルを含むフォルダを選択します。ファイルツールはそのフォルダ内で動作するため、変更したいプロジェクトを選び、関連しない作業を含む親フォルダは避けてください。複数のプロジェクトを含む親フォルダでは、最初の検索が読みづらくなり、間違ったユニットを編集するリスクが高まります。

02

1つの変更を説明する

手続きの名前や変更内容など、平易な言葉で1つのタスクを記述し、送信する前に Auto-run、Ask first または Plan only を選択してください。小さなタスクは小さな差分を生み、読みやすくなります。ユニットがわかっている場合はその名前を明記してください。エージェントは glob で検索できますが、ユニット名を指定すると最初の検索が絞り込まれます。

03

差分を読む

edit_file カードを展開し、追加および削除された行をすべて読み、変更を受け入れるか拒否します。Plan only を使用した場合は、まず計画を読み、Ask first に切り替えてステップを実行してください。差分が非常に長い場合はタスクが大きすぎます。拒否して、リクエストを2つの小さなものに分けてください。

04

ビルドとテスト

Shell にビルドコマンドとテストコマンドを実行させ、カード上の実際の終了コードを確認してください。ビルドの成功は良い兆候ですが、動作がまだ正しいかどうかは、あなただけのテストでしかわかりません。テストの前にビルドを実行し、失敗の原因を1つの変更まで追跡できるように、両方のカードを開いたままにしてください。

練習用の小さなユニット

Greeter.pas
unit Greeter;

interface

function Greet(const Name: string): string;

implementation

function Greet(const Name: string): string;
begin
  if Name = '' then
    Result := 'Hello, guest'
  else
    Result := 'Hello, ' + Name;
end;

end.

Greetは名前を受け取り、挨拶を返します。名前が空の場合は「Hello, guest」と応答し、それ以外の場合は名前にテキストを結合します。Resultには関数の戻り値が保持されます。インターフェースセクションでは関数を宣言し、実装セクションにはそのコードが含まれます。これがすべてのユニットの構成です。

Delphiソフトウェアのメンテナンスにおける4つの作業

設定がどこに保存されているかを見つける

Delphiを学んでいる初心者は、値がディスク上のどこに保存されるかをよく尋ねます。Arraydeckに設定がどこに書き込まれているかを見つけるよう依頼してください。エージェントは.pasファイル全体で設定名に対して grep を実行し、read_file で該当するユニットを開き、ファイル名と行番号を添えてチャットに回答を表示します。ファイルは変更されません。その手続きが意図したものであることを確認するために、ユニットを自分のエディタで開き、編集を依頼する前にファイル名をメモしてください。この読み取り専用検索は、自分が書かなかったプロジェクトに対する最初のリクエストとして最適です。編集を依頼する前にファイルと行番号をメモしてください。正確なファイル名と行番号があれば、その後のリクエストは短く済み、プロジェクトを引き継ぐ人も差分を追いやすくなります。

オブジェクトの周りにtry finallyを追加する

より安全なハンドラを依頼してください:オブジェクトを作成する手続きを見つけ、確実に解放されるようにします。エージェントは grep で検索し、ユニットを読み取り、edit_file で変更を提案します。コードは try ... finally ... Free で囲まれます。Ask first では差分が表示され、承認されるまでファイルには書き込まれません。その後、Shell でビルドコマンドを実行し、カードに実際の終了コードが表示されます。テストも実行してください。ビルドの成功は構文が正しいことのみを保証し、すべてのパスでオブジェクトが解放されることは保証しません。差分を注意深く読みましょう。差分を承認した後、テストをもう一度実行し、ハンドラがすべての分岐で確実にオブジェクトを解放していることが確実になるまで、ユニットの古いバージョンをバックアップまたはバージョン管理システムに保管してください。

手続きの名前をすべて変更する

Delphiアプリを小さなステップで現代的にする方法:不明確な手続きの名前を、一度に1つずつ変更します。エージェントにすべてのユニットで名前を変更するよう依頼してください。エージェントは grep で名前が発生する場所をリストし、edit_file で各ファイルを変更し、差分は移動したすべての行を示します。一度リネームし、すべての差分を一緒にレビューしてください。文字列やコメント内にある一致する単語は、必ずしも呼び出しではない場合があります。最後にファイルを受け入れる前にプロジェクトをビルドし、テストを実行してください。ビルドとテストが成功した場合のみ、次の手続きのリネームを繰り返してください。そうすれば、ミスは常に小さな差分の中にあり、複数のユニットにわたる無関係な変更の長いリストの中に隠れることがありません。

ループの行を1行ずつ説明する

パスカルの三角形のロジックを短いユニットで説明するのは、適切な練習用リクエストです。エージェントにループを読み、各行が各パスで変数に何を含んでいるかを1行ずつ説明するよう依頼してください。read_file を呼び出し、何も書き込まずにチャットで回答するため、Plan only で十分です。ユニットをビルドコマンドで実行し、紙の上で3〜4行分のループを追跡することで、説明を検証してください。エージェントとプログラムの結果が異なる場合は、プログラムを信頼し、正確な行を引用して質問を繰り返してください。最初の答えが役立った場合は、2番目のループでも同じことを試し、段落が長すぎる場合はより短い説明を依頼してください。混乱の原因となっている行について詳細を後から求めることはいつでも可能です。

Windows用Arraydeck

自分のプロジェクトで4つのステップを実行する

Arraydeckをダウンロード ↗