คำถามติดแท็ก dry


18
เหตุใดการ "คัดลอกและวาง" โค้ดจึงเป็นอันตราย [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่? อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ บางครั้งเจ้านายของฉันจะบ่นกับเรา: เหตุใดเราจึงต้องใช้เวลานานในการใช้งานคุณลักษณะนี้ อันที่จริงคุณลักษณะนี้ได้ถูกนำไปใช้ในแอปพลิเคชันอื่นมาก่อนคุณเพียงแค่ต้องคัดลอกและวางรหัสจากที่นั่น ต้นทุนควรจะต่ำ เป็นคำถามที่ยากจริงๆเพราะการคัดลอกและวางรหัสไม่ใช่เรื่องง่ายในมุมมองของฉัน คุณมีเหตุผลที่ดีพอที่จะอธิบายเรื่องนี้กับหัวหน้าที่ไม่ใช่ฝ่ายเทคนิคของคุณหรือไม่
130 dry  copy-paste 

14
วิธีทำ "บล็อก" ซ้ำในเทมเพลต django
ฉันต้องการใช้{% block%} เดียวกันสองครั้งในเทมเพลต django เดียวกัน ฉันต้องการให้บล็อกนี้ปรากฏมากกว่าหนึ่งครั้งในเทมเพลตพื้นฐานของฉัน: # base.html <html> <head> <title>{% block title %}My Cool Website{% endblock %}</title> </head> <body> <h1>{% block title %}My Cool Website{% endblock %}</h1> </body> </html> จากนั้นขยาย: # blog.html {% extends 'base.html' %} {% block title %}My Blog{% endblock %} # pictures.html {% extends 'base.html' %} …

11
รหัสที่ซ้ำกันสามารถยอมรับได้มากกว่าในการทดสอบหน่วยหรือไม่?
ฉันได้ทำลายการทดสอบหน่วยหลายครั้งที่ผ่านมาเมื่อฉันผ่านไปและปรับโครงสร้างใหม่เพื่อให้แห้งมากขึ้น- เจตนาของการทดสอบแต่ละครั้งไม่ชัดเจนอีกต่อไป ดูเหมือนว่าจะมีการแลกเปลี่ยนระหว่างความสามารถในการอ่านและการบำรุงรักษาของการทดสอบ ถ้าฉันทิ้งรหัสที่ซ้ำกันไว้ในการทดสอบหน่วยก็จะอ่านได้ง่ายขึ้น แต่ถ้าฉันเปลี่ยนSUTฉันจะต้องติดตามและเปลี่ยนรหัสที่ซ้ำกันแต่ละชุด คุณยอมรับว่ามีการแลกเปลี่ยนนี้หรือไม่? ถ้าเป็นเช่นนั้นคุณต้องการให้การทดสอบของคุณอ่านได้หรือบำรุงรักษาได้?

10
ข้อผิดพลาด Java: Implicit super constructor ไม่ได้กำหนดไว้สำหรับตัวสร้างเริ่มต้น
ฉันมีโค้ด Java ง่ายๆที่มีลักษณะคล้ายกับสิ่งนี้ในโครงสร้าง: abstract public class BaseClass { String someString; public BaseClass(String someString) { this.someString = someString; } abstract public String getName(); } public class ACSubClass extends BaseClass { public ASubClass(String someString) { super(someString); } public String getName() { return "name value for ASubClass"; } } ฉันจะมีคลาสย่อยไม่กี่คลาสBaseClassแต่ละคลาสใช้getName()วิธีการในแบบของตัวเอง ( รูปแบบวิธีเทมเพลต ) …

2
วิธีลดการทำสำเนารหัสเมื่อจัดการกับประเภทผลรวมซ้ำ
ฉันกำลังทำงานกับล่ามง่าย ๆ สำหรับภาษาการเขียนโปรแกรมและฉันมีชนิดข้อมูลเช่นนี้: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr และฉันมีฟังก์ชั่นมากมายที่ทำสิ่งที่ง่ายเช่น: -- Substitute a value for a variable substituteName :: String -> Int -> Expr -> Expr substituteName name newValue = go where go (Variable x) | x == name = Number …

14
ฉันจะลดความซับซ้อนของคำสั่ง if-elif ซ้ำ ๆ ในฟังก์ชั่นระบบการให้เกรดของฉันได้อย่างไร
เป้าหมายคือการสร้างโปรแกรมเพื่อแปลงคะแนนจากระบบ '0 ถึง 1' เป็นระบบ 'F ถึง A': ถ้าscore >= 0.9จะพิมพ์ 'A' ถ้าscore >= 0.8จะพิมพ์ 'B' 0.7, C 0.6, D และค่าใด ๆ ที่ต่ำกว่านั้นให้พิมพ์ F นี่คือวิธีสร้างและใช้งานได้บนโปรแกรม แต่มันค่อนข้างซ้ำ: if scr >= 0.9: print('A') elif scr >= 0.8: print('B') elif scr >= 0.7: print('C') elif scr >= 0.6: print('D') else: print('F') ฉันอยากจะรู้ว่ามีวิธีการสร้างฟังก์ชั่นเพื่อให้คำสั่งผสมจะไม่ซ้ำซ้อน ฉันเป็นผู้เริ่มต้นทั้งหมด …

5
ฉันจะทำให้อัลกอริธึมนี้ดีกว่าโดยไม่ต้องทำซ้ำตัวเองได้อย่างไร
(ได้แรงบันดาลใจจากคำตอบของคำถามนี้ ) พิจารณารหัสนี้ (มันควรจะหาองค์ประกอบที่ใหญ่ที่สุดที่น้อยกว่าหรือเท่ากับอินพุตที่กำหนด): data TreeMap v = Leaf | Node Integer v (TreeMap v) (TreeMap v) deriving (Show, Read, Eq, Ord) closestLess :: Integer -> TreeMap v -> Maybe (Integer, v) closestLess i = precise Nothing where precise :: Maybe (Integer, v) -> TreeMap v -> Maybe (Integer, v) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.