ใช่คุณควรใช้รหัสกับส่วนต่อประสานมากกว่าที่จะรู้จักการใช้งานและใช่คุณควรสร้างส่วนต่อประสานก่อนแทนที่จะให้พวกมันโผล่ออกมาจากรหัสของคุณเอง
เหตุผลสำหรับคำแนะนำทั้งสองนั้นเหมือนกันส่วนใหญ่การเขียนโปรแกรมคอมพิวเตอร์นั้นเกี่ยวกับปัจจัยของมนุษย์เป็นส่วนใหญ่ หลายคนพบว่าสิ่งนี้น่าแปลกใจ แต่ควรพิจารณา: มีวิธีการมากมายในการแก้ปัญหาคอมพิวเตอร์แบบเดียวกันที่ทำงานได้ดีพอ ๆ กัน เกือบทั้งหมดเป็นไปไม่ได้เลยที่จะเข้าใจใครก็ตามที่ไม่ได้เขียน (หรืออันที่จริงแล้วผู้เขียนไม่นานมานี้)
ตามมาด้วยว่าวิศวกรรมซอฟต์แวร์ที่ดีนั้นส่วนใหญ่เกี่ยวกับวิธีการบรรลุผลที่ต้องการ (การคำนวณที่ถูกต้องด้วยประสิทธิภาพที่สมเหตุสมผล) ในวิธีที่ทำให้ซอร์สโค้ดสามารถทำงานได้ในภายหลัง อินเทอร์เฟซและ API เป็นส่วนสำคัญของวินัยดังกล่าว: ช่วยให้คุณคิดเกี่ยวกับปัญหาในระดับหนึ่งของคำอธิบายในแต่ละครั้ง นี่ง่ายกว่าที่คิดเกี่ยวกับกฎความสอดคล้องทางธุรกิจและการใช้งานลิสต์ที่เชื่อมโยงในเวลาเดียวกันดังนั้นการกำหนดให้มีการแยกข้อกังวลดังกล่าวนั้นดีกว่าการอนุญาตให้โปรแกรมเมอร์ไคลเอนต์ใช้รหัสของคุณในแบบที่เขาชอบ
นี่เป็นเรื่องยากที่จะเชื่อสำหรับโปรแกรมเมอร์โคบาลหลายคนที่เชื่อว่าพวกเขาเข้าใจทุกอย่างที่เขียนพวกเขาดีกว่านักคิดทั่วไปและสามารถจัดการกับความซับซ้อนทั้งหมดที่ทำให้เกิดปัญหาโปรแกรมเมอร์น้อยลง การไม่ตระหนักถึงขีด จำกัด การรับรู้ของตัวเองเป็นปรากฏการณ์ที่พบบ่อยมาก - นี่คือเหตุผลว่าทำไมการปฏิบัติที่ดีที่สุดในการจัดระเบียบรหัสจึงมีความสำคัญอย่างมาก (และมักเพิกเฉย)
ในการทำซ้ำอินเทอร์เฟซและอุปสรรค API นั้นส่วนใหญ่จะดีแม้ว่าคุณจะร่วมมือกับตัวเองเท่านั้น สำหรับห้องสมุดภายนอกหากพวกเขานำ API ที่มีความคิดดีมาด้วยพวกเขาก็จะเห็นว่าไม่มีปัญหาในการใช้มันตราบใดที่คุณไม่คาดว่าจะต้องเปลี่ยนจากไลบรารีนั้นไปเป็นอีกไลบรารีหนึ่ง มิฉะนั้นเลเยอร์ของเสื้อคลุมหรือชั้นป้องกันการคอรัปชั่นอาจเป็นความคิดที่ดีมาก