ousterhout-build-deep
ทำอะไรได้บ้าง
ใช้ในขณะที่เขียนหรือแก้ไขโค้ด ก่อนที่จะเรียกงานว่าเสร็จสมบูรณ์ เมื่อใดก็ตามที่การเปลี่ยนแปลงเพิ่มชื่อที่ส่งออกหรือนำเข้าได้ สร้างโมดูล คลาส คอมโพเนนต์ ตัวช่วย ฮุก เซอร์วิส หรือห่อหุ้ม หรือรวมโค้ดที่ซ้ำกันไว้ตรงกลาง รายการตรวจสอบสำหรับผู้เขียนในการสร้างโมดูลเชิงลึก: ตั้งชื่อการตัดสินใจที่ขอบเขตซ่อนอยู่ ผ่านการทดสอบความลึกและความไม่เปลี่ยนแปลง แก้ไขปัญหาแทนการย้ายที่ หลีกเลี่ยงการแบ่งแยกโดยใช้ขนาดเพียงอย่างเดียว และจบด้วยบันทึกการออกแบบสั้นๆ คู่มือที่กระชับสำหรับ ousterhout-quality-program ซึ่งยังคงเป็นเลนส์ตรวจสอบแบบเต็มรูปแบบ
การติดตั้งจะเปิดรายการนี้ในแอปเดสก์ท็อป AgentsRoom ของคุณ หากยังไม่ได้ติดตั้งแอป ระบบจะพาคุณไปยังหน้าดาวน์โหลด
SKILL.md
--- name: ousterhout-build-deep description: ใช้ในขณะที่เขียนหรือแก้ไขโค้ด ก่อนที่จะเรียกงานว่าเสร็จสมบูรณ์ เมื่อใดก็ตามที่การเปลี่ยนแปลงเพิ่มชื่อที่ส่งออกหรือนำเข้าได้ สร้างโมดูล คลาส คอมโพเนนต์ ตัวช่วย ฮุก เซอร์วิส หรือห่อหุ้ม หรือรวมโค้ดที่ซ้ำกันไว้ตรงกลาง รายการตรวจสอบสำหรับผู้เขียนในการสร้างโมดูลเชิงลึก: ตั้งชื่อการตัดสินใจที่ขอบเขตซ่อนอยู่ ผ่านการทดสอบความลึกและความไม่เปลี่ยนแปลง แก้ไขปัญหาแทนการย้ายที่ หลีกเลี่ยงการแบ่งแยกโดยใช้ขนาดเพียงอย่างเดียว และจบด้วยบันทึกการออกแบบสั้นๆ คู่มือที่กระชับสำหรับ ousterhout-quality-program ซึ่งยังคงเป็นเลนส์ตรวจสอบแบบเต็มรูปแบบ --- # Build it deep (Ousterhout, author-time) คุณกำลังเขียนโค้ด ไม่ใช่ตรวจสอบโค้ด ให้รันโค้ดนี้กับการเปลี่ยนแปลงของคุณเองก่อน ที่จะบอกว่างานเสร็จสมบูรณ์ ## 1. Gate การเปลี่ยนแปลงนี้เพิ่มชื่อที่ส่งออก/นำเข้าได้ สร้างโมดูล คลาส คอมโพเนนต์ ตัวช่วย hook บริการ หรือ wrapper หรือรวมโค้ดที่ซ้ำกันไว้กลางหรือไม่? ถ้าไม่ ให้ข้ามทักษะนี้ไป การเปลี่ยนชื่อ codemods การแก้ไข config/data และการแก้ไขบรรทัดเดียว ได้รับการยกเว้น ## 2. ก่อนเขียนขอบเขต - หาวิธีที่ repo นี้แก้ปัญหารูปแบบนี้อยู่แล้วและทำตาม เว้นแต่คุณจะบอกได้ว่าทำไมไม่ทำตาม อ่านเอกสารและประเภทของ dependency ปัจจุบัน: API ที่จำจากความทรงจำเป็นแค่คำกล่าวอ้าง ไม่ใช่แหล่งข้อมูล - เขียนคอมเมนต์อินเทอร์เฟซก่อน: สิ่งที่มันสัญญา สิ่งที่มันซ่อน ถ้าคุณ ไม่สามารถตั้งชื่อการตัดสินใจที่ซ่อนได้ (รูปแบบ นโยบาย กฎ หรือ ตัวเลือก schema) ขอบเขตนั้นไม่ควรมีอยู่ ฝังไว้ในบรรทัดเดียว - ตั้งชื่อด้วยภาษาของโดเมน ถ้าชื่อที่ตรงที่สุดคือ `utils`, `helpers` หรือ `manager` แสดงว่าการตัดแบ่งผิดที่ ## 3. สองการทดสอบ - **ความลึก.** อินเทอร์เฟซต้องซ่อนมากกว่าที่เปิดเผยอย่างมีนัยสำคัญ wrapper ที่ส่งต่ออาร์กิวเมนต์ของมันเป็นภาระโดยไม่มีประโยชน์; ให้ลบทิ้ง - **ความคงที่.** ดึงโค้ดที่ใช้ร่วมกันออกมาเฉพาะเมื่อมันปกป้องกฎที่ใช้ร่วมกัน หลักฐานคือการเปลี่ยนแปลงร่วมกัน: สำเนาถูกแก้ไขหรือเปลี่ยนพร้อมกันใน ประวัติ ลักษณะที่คล้ายกันแต่เปลี่ยนแปลงแยกกันจะยังคงซ้ำกัน ## 4. การแก้ไขต้องลบปัญหา ไม่ใช่ย้ายที่ - การแปลงหกครั้งที่ย้ายมาอยู่ใน helper แปลงแบบ generic หนึ่งตัวก็ยังเป็น การแปลงหกครั้ง เขียน mapper ที่มี type ที่การแปลงเหล่านั้นเคยปกปิดไว้ - อย่าเพิ่มพารามิเตอร์หรือแฟลกที่ผลักดันการตัดสินใจไปยังผู้เรียก เว้นแต่ผู้เรียกรู้บางอย่างที่คุณไม่รู้ ดูดซับกรณียากไว้ข้างใน - ชอบความหมายที่กรณีผิดพลาดไม่เกิดขึ้น แทนที่จะทำให้ผู้เรียกทุกคน ต้องจัดการมัน - การย้ายความซับซ้อนสำคัญของโดเมนไปยังไฟล์อื่นไม่ใช่การทำให้เรียบง่าย ## 5. ภายใต้แรงกดดัน "ทำความสะอาดนี้" หรือ "ไฟล์นี้ใหญ่เกินไป" อย่าแยกเพียงเพราะขนาด โมดูล 400 บรรทัดที่ซ่อนการตัดสินใจหนึ่งอย่าง ดีกว่าโมดูล 100 บรรทัดสี่โมดูลที่รั่วไหลการเชื่อมต่อเดียวกัน ถามว่าการแยก แต่ละครั้งซ่อนการตัดสินใจอะไรไว้ ถ้าไม่มี อย่าแยก ## 6. ความปลอดภัย โค้ดที่มีอยู่: ยืนยันพฤติกรรมปัจจุบันด้วยการทดสอบก่อนทำให้ลึกขึ้น โค้ดใหม่: เขียนการทดสอบที่กำหนดพฤติกรรมที่ตั้งใจไว้ ## 7. รายงาน ถ้า gate ทำงาน ให้จบข้อความสุดท้ายของคุณด้วยบันทึกการออกแบบ 2-4 บรรทัด: ขอบเขตที่คุณเพิ่มและการตัดสินใจที่มันซ่อน; การทำซ้ำที่คุณตั้งใจปล่อยไว้และเหตุผล; สิ่งที่ตื้นที่คุณยอมรับและเหตุผล สำหรับการตัดสินใจที่มีข้อโต้แย้งหรือการตรวจสอบเต็มรูปแบบ ให้โหลด `ousterhout-quality-program`.
แท็ก
เจาะลึกเพิ่มเติม
โฆษณา Claude: ทักษะ Claude Code ที่ตรวจสอบบัญชีโฆษณาของคุณ
โฆษณา Claude เป็นทักษะโอเพนซอร์สสำหรับ Claude Code: การตรวจสอบมากกว่า 250 รายการบน Google, Meta, LinkedIn, TikTok หรือ Amazon Ads, คะแนนจาก 100 และแผนปฏิบัติการที่จัดลำดับความสำคัญในประมาณสิบ นาที ติดตั้ง คำสั่ง ข้อจำกัด และวิธีการจัดการมันใน AgentsRoom.
AGENTS.md: ไฟล์บริบทเดียวสำหรับทุกเอเจนต์การเขียนโค้ด (Codex, Antigravity, Claude)
AGENTS.md คือไฟล์คำแนะนำที่พกพาได้ซึ่งเอเจนต์การเขียนโค้ด AI ของคุณอ่านก่อนที่จะสัมผัสโค้ดของคุณ ว่าควรใส่อะไรในนั้น มันแตกต่างจาก CLAUDE.md อย่างไร และจะรักษาบริบทเดียวกันระหว่าง Codex, Antigravity และ Claude ได้อย่างไร
ดาวน์โหลด AgentsRoom
รันเอเจนต์ AI ทั้งหมดของคุณในทุกโปรเจกต์ จากหน้าต่างเดียว
แอปคู่หู: ตรวจสอบเอเจนต์ของคุณได้ทุกที่
นำของคุณเอง: Claude, Codex, Antigravity CLI, หรือผู้ให้บริการ AI อื่น ๆ
ส่งข้อบกพร่องและคำขอไปยังแบ็คล็อกสาธารณะของคุณโดยตรง