Arraydeck
เวิร์กโฟลว์

เวิร์กโฟลว์โปรแกรม Delphi ใน 4 ขั้นตอน

03
เริ่มต้นจนจบ

เปิดโปรเจกต์ เปลี่ยนหนึ่งจุด ตรวจสอบผลลัพธ์

เวิร์กโฟลว์โปรแกรม Delphi ที่ดีควรมีขนาดกะทัดรัด เปิดโฟลเดอร์โปรเจกต์ ขอเปลี่ยนแปลงหนึ่งจุด อ่าน Diff และรันคำสั่ง Build ของคุณ Arraydeck ปฏิบัติตามวงจรนี้ด้วยเครื่องมือจริง ดังนั้นแต่ละขั้นตอนจึงทิ้งการ์ดไว้ในแชทที่คุณสามารถขยายและตรวจสอบได้ ตั้งแต่การค้นหาครั้งแรกจนถึงรหัสการออกสุดท้าย ไม่มีอะไรถูกซ่อนไว้หลังบทสรุป หากขั้นตอนหนึ่งดูผิด คุณหยุดวงจรตรงนั้น ปฏิเสธการเปลี่ยนแปลงและเขียนคำขอใหม่ ไฟล์จะคงสภาพเดิมก่อนหน้านั้น ขั้นตอนสี่ขั้นนี้ใช้ได้ทั้งกับยูนิทขนาดเล็กและโปรเจกต์ที่มีฟอร์มจำนวนมาก ทั้งมือใหม่และผู้ดูแลระบบมานานสามารถเริ่มด้วยการค้นหาแบบอ่านอย่างเดียวได้ เพราะมันไม่เปลี่ยนแปลงไฟล์ใดๆ และยังแสดงโครงสร้างของโปรเจกต์ได้

01

เปิดโฟลเดอร์

เลือกโฟลเดอร์ที่มีไฟล์ .dpr และ .pas เป็นโฟลเดอร์ทำงานของแชท เครื่องมือไฟล์จะทำงานภายในโฟลเดอร์นี้ ดังนั้นให้เลือกโปรเจกต์ที่คุณต้องการเปลี่ยนแปลง ไม่ใช่โฟลเดอร์แม่ที่มีงานอื่นที่ไม่เกี่ยวข้อง โฟลเดอร์แม่ที่มีโปรเจกต์หลายแห่งจะทำให้การค้นหาครั้งแรกอ่านยากขึ้น และเพิ่มความเสี่ยงในการแก้ไขยูนิทผิด

02

อธิบายการเปลี่ยนแปลงหนึ่งจุด

เขียนงานหนึ่งอย่างด้วยคำพูดธรรมดา เช่น ชื่อของโปรซีเยอร์และสิ่งที่ควรเปลี่ยนแปลง แล้วเลือก Auto-run, Ask first หรือ Plan only ก่อนที่จะส่งมัน งานขนาดเล็กให้ Diff ขนาดเล็กที่อ่านง่าย ตั้งชื่อยูนิทเมื่อคุณรู้จักมัน ตัวเอเจนต์สามารถค้นหาด้วย glob แต่ยูนิทที่มีชื่อจะจำกัดขอบเขตการค้นหาครั้งแรก

03

อ่าน Diff

ขยายการ์ด edit_file อ่านทุกบรรทัดที่เพิ่มและถูกลบ แล้วยอมรับหรือปฏิเสธการเปลี่ยนแปลง หากคุณใช้ Plan only ให้อ่านแผนก่อนแล้วเปลี่ยนเป็น Ask first เพื่อดำเนินการตามขั้นตอน Diff ที่ยาวมากหมายถึงงานใหญ่เกินไป ดังนั้นให้ปฏิเสธและแยกคำขอออกเป็นสองส่วนที่เล็กลง

04

Build และทดสอบ

ให้ Shell รันคำสั่ง Build และคำสั่งทดสอบของคุณ และอ่านรหัสการออกจริงบนการ์ด Build ที่ผ่านเป็นสัญญาณที่ดี แต่เฉพาะการทดสอบของคุณเท่านั้นที่บอกคุณว่าพฤติกรรมยังคงถูกต้องหรือไม่ รัน Build ก่อนการทดสอบ และเก็บการ์ดทั้งสองไว้เปิดเพื่อให้สามารถติดตามความล้มเหลวไปยังการเปลี่ยนแปลงหนึ่งจุดได้

ยูนิทขนาดเล็กสำหรับฝึกฝน

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

ค้นหาว่าตั้งค่าถูกบันทึกไว้ที่ไหน

มือใหม่ที่เรียนรู้ Delphi มักถามว่าค่าสิ้นสุดอยู่ที่ไหนบนดิสก์ ถาม Arraydeck ให้ค้นหาว่าตั้งค่าถูกเขียนไว้ที่ไหน ตัวเอเจนต์รัน grep สำหรับชื่อตั้งค่าทั่วไฟล์ .pas ของคุณ จากนั้น read_file เปิดยูนิทที่ตรงกันและคำตอบปรากฏในแชทพร้อมชื่อไฟล์และบรรทัด ไม่มีอะไรเปลี่ยนแปลง เปิดยูนิทในโปรแกรมแก้ไขของคุณเพื่อยืนยันว่าโปรซีเยอร์คือตัวที่คุณหมายถึง และจดบันทึกชื่อไฟล์ก่อนที่จะขอแก้ไข การค้นหาแบบอ่านอย่างเดียวนี้เป็นคำขอแรกที่ดีสำหรับโปรเจกต์ใดๆ ที่คุณไม่ได้เขียนเอง จดบันทึกไฟล์และบรรทัดก่อนที่จะขอแก้ไขใดๆ เพราะชื่อไฟล์และเลขบรรทัดที่แม่นยำทำให้คำขอถัดไปสั้นลงและ Diff ถัดไปอ่านง่ายสำหรับทุกคนที่อ่านโปรเจกต์ของคุณหลังจากคุณ

เพิ่ม try finally รอบวัตถุ

ขอตัวจัดการที่ปลอดภัยกว่า: ค้นหาโปรซีเยอร์ที่สร้างวัตถุและทำให้แน่ใจว่ามันถูกปล่อย ตัวเอเจนต์ค้นหาด้วย grep อ่านยูนิทและเสนอการเปลี่ยนแปลงด้วย edit_file โดยห่อโค้ดใน try ... finally ... Free ใน Ask first Diff จะปรากฏและไม่มีอะไรถูกเขียนจนกว่าคุณจะยอมรับมัน จากนั้น Shell รันคำสั่ง Build ของคุณ และการ์ดแสดงรหัสการออกจริง รันการทดสอบของคุณเช่นกัน Build ที่ผ่านพิสูจน์เฉพาะไวยากรณ์เท่านั้น ไม่ใช่ว่าวัตถุถูกปล่อยในทุกเส้นทาง ดังนั้นอ่าน Diff อย่างช้าๆ รันการทดสอบอีกครั้งหลังจากที่คุณยอมรับ Diff และเก็บเวอร์ชันเก่าของยูนิทในแบ็กอัปหรือเวอร์ชันคอนโทรลของคุณจนกว่าคุณจะแน่ใจว่าตัวจัดการยังปล่อยวัตถุทุกตัวในทุกสาขา

เปลี่ยนชื่อโปรซีเยอร์ทุกที่

นี่คือวิธีทำให้แอป Delphi ทันสมัยในขั้นตอนเล็กๆ: เปลี่ยนชื่อโปรซีเยอร์ที่ไม่ชัดเจน ชื่อหนึ่งชื่อต่อครั้ง ถามตัวเอเจนต์ให้เปลี่ยนชื่อในทุกยูนิท มันใช้ grep เพื่อแสดงรายการแต่ละจุดที่ชื่อปรากฏ จากนั้น edit_file เปลี่ยนแต่ละไฟล์ และ Diff แสดงทุกบรรทัดที่เคลื่อนย้าย เปลี่ยนชื่อหนึ่งครั้ง ตรวจสอบ Diff ทั้งหมดร่วมกัน เพราะคำที่ตรงกันภายในสตริงหรือความคิดเห็นไม่จำเป็นต้องเป็นการเรียกเสมอไป จากนั้นสร้างโปรเจกต์และรันการทดสอบของคุณก่อนยอมรับไฟล์สุดท้าย ทำซ้ำการเปลี่ยนชื่อสำหรับโปรซีเยอร์ถัดไปเฉพาะเมื่อ Build และการทดสอบผ่านแล้ว เพื่อให้ข้อผิดพลาดอยู่ใน Diff ขนาดเล็กเสมอและไม่ซ่อนอยู่ในรายการยาวของการเปลี่ยนแปลงที่ไม่เกี่ยวข้องทั่วหลายยูนิท

อธิบายบรรทัดลูปทีละบรรทัด

ตรรกะสามเหลี่ยมปาสกาลที่อธิบายในยูนิทสั้นๆ ทำให้เป็นคำขอฝึกฝนที่เหมาะสม ถามตัวเอเจนต์ให้อ่านลูปและอธิบายทีละบรรทัดว่าตัวแปรแต่ละตัวเก็บอะไรในแต่ละรอบ มันเรียก read_file จากนั้นตอบในแชทโดยไม่ต้องเขียนอะไร ดังนั้น Plan only จึงเพียงพอ ตรวจสอบคำอธิบายโดยรันยูนิทของคุณเองผ่านคำสั่ง Build ของคุณและติดตามลูปบนกระดาษสำหรับ 3 หรือ 4 แถว หากตัวเอเจนต์และโปรแกรมไม่ตรงกัน ให้เชื่อโปรแกรมและถามคำถามอีกครั้งด้วยบรรทัดที่ quoted แม่นยำ ทำเช่นเดียวกันสำหรับลูปที่สองหากคำตอบแรกช่วยได้ และขอคำอธิบายที่สั้นลงเมื่อย่อหน้ารู้สึกยาว เพราะคุณสามารถขอรายละเอียดเพิ่มเติมได้เสมอในบรรทัดที่สับสนจริงๆ

Arraydeck สำหรับ Windows

รันสี่ขั้นตอนบนโปรเจกต์ของคุณเอง

ดาวน์โหลด Arraydeck ↗