เวิร์กโฟลว์
เวิร์กโฟลว์โปรแกรม 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 ก่อนการทดสอบ และเก็บการ์ดทั้งสองไว้เปิดเพื่อให้สามารถติดตามความล้มเหลวไปยังการเปลี่ยนแปลงหนึ่งจุดได้
ยูนิทขนาดเล็กสำหรับฝึกฝน Arraydeck · ยูนิทใหม่ ● Ask first
สร้าง Greeter.pas พร้อมฟังก์ชัน Greet และตรวจสอบว่าโปรเจกต์สร้างได้
list_dir .6 รายการ write_file Greeter.pasบันทึกแล้ว read_file Greeter.pasอ่านแล้ว Shell build.batexit 0 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 แม่นยำ ทำเช่นเดียวกันสำหรับลูปที่สองหากคำตอบแรกช่วยได้ และขอคำอธิบายที่สั้นลงเมื่อย่อหน้ารู้สึกยาว เพราะคุณสามารถขอรายละเอียดเพิ่มเติมได้เสมอในบรรทัดที่สับสนจริงๆ