ตัวอย่างเช่นสมมติว่าคุณกำลังเขียนแอปในJava
ของแอปสื่อสารกับเซิร์ฟเวอร์ API เขียนในหลาม
เซิร์ฟเวอร์ Python สื่อสารกับฐานข้อมูลSQL
นอกจากนี้คุณยังมีเว็บไซต์ของแอปเขียนในJavaScript
ด้วย 4 ภาษาที่แตกต่างกันมันง่ายที่จะจบลงด้วยการทำซ้ำโครงสร้างข้อมูลเดิม 4 ครั้ง
ตัวอย่างเช่นUserประเภทอาจมีลักษณะเช่นนี้ (pseudocode):
type User {
  integer id;
  string name;
  timestamp birthday;
}
Userส่วนหนึ่งของโครงการทุกคนจะต้องชนิดของการแสดงบางอย่างสำหรับ ส่วนของ Java และ Python ต้องการclassการประกาศสองแบบที่ต่างกัน ฐานข้อมูลจะต้องมีUserการประกาศตาราง และเว็บไซต์ส่วนหน้าจะต้องเป็นตัวแทนUserด้วย
การทำซ้ำประเภทนี้ 4 ครั้งแตกต่างกันจริงๆแบ่งห้ามทำซ้ำ-Yourselfหลักการ นอกจากนี้ยังมีปัญหาที่หากUserมีการเปลี่ยนแปลงประเภทการเปลี่ยนแปลงเหล่านี้จำเป็นต้องทำซ้ำในทุกส่วนของโครงการ
ฉันรู้ว่าห้องสมุดprotobufของ Google นำเสนอวิธีการแก้ปัญหาที่คุณเขียนโครงสร้างข้อมูลโดยใช้ไวยากรณ์พิเศษจากนั้นห้องสมุดจะสร้างการประกาศโครงสร้างสำหรับคุณในภาษาการเขียนโปรแกรมหลายภาษา แต่สิ่งนี้ยังไม่ได้จัดการกับปัญหาของการต้องตรวจสอบตรรกะการตรวจสอบซ้ำสำหรับประเภทของคุณ
ไม่มีใครมีคำแนะนำหรือลิงค์ไปยังหนังสือ / บล็อกโพสต์เกี่ยวกับเรื่องนี้หรือไม่?
Repeating this type 4 different times really breaks the Don't-Repeat-Yourself principle. ไม่มันไม่ได้ คุณมี 4 ระบบที่ต่างกันซึ่งทำสิ่งที่แตกต่างกัน คุณใช้ DRY นานเกินไป จากประสบการณ์ของฉันการเรียงลำดับของความสามารถในการนำกลับมาใช้ใหม่ที่คุณต้องการทำคือเมล็ดพันธุ์แห่งความชั่วร้ายเพราะการมีเพศสัมพันธ์อย่างแน่นหนา นั่นยิ่งแย่ไปกว่าการทำซ้ำUser4 ครั้งใน 4 ภาษาที่แตกต่างกัน ในสภาพแวดล้อมแบบกระจายการมีเพศสัมพันธ์เป็นปัญหา ไม่ใช่ DRY