คำถามติดแท็ก anti-patterns

30
รูปแบบการต่อต้าน SQL ที่พบมากที่สุดคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา เราทุกคนที่ทำงานกับฐานข้อมูลเชิงสัมพันธ์ได้เรียนรู้ (หรือกำลังเรียนรู้) ว่า SQL นั้นแตกต่างกัน การสร้างผลลัพธ์ที่ต้องการและการทำเช่นนั้นอย่างมีประสิทธิภาพนั้นเกี่ยวข้องกับกระบวนการที่น่าเบื่อบางส่วนโดยการเรียนรู้กระบวนทัศน์ที่ไม่คุ้นเคยและพบว่ารูปแบบการเขียนโปรแกรมที่คุ้นเคยที่สุดบางส่วนของเราไม่ทำงานที่นี่ Antipatterns ทั่วไปที่คุณเห็นคืออะไร
232 sql  anti-patterns 

30
จะทำอย่างไรกับไฟล์ต้นฉบับ C ++ 11,000 บรรทัด
ดังนั้นเราจึงมีไฟล์ต้นฉบับขนาดใหญ่ (มีขนาด 11,000 บรรทัดหรือไม่) ไฟล์ mainmodule.cpp ในโครงการของเราและทุกครั้งที่ฉันต้องแตะมันฉันประจบประแจง เนื่องจากไฟล์นี้มีขนาดกลางและใหญ่มากจึงมีการสะสมรหัสมากขึ้นเรื่อย ๆ และฉันไม่สามารถนึกถึงวิธีที่ดีที่จะทำให้มันเริ่มหดตัวลง ไฟล์ถูกใช้และเปลี่ยนแปลงอย่างแข็งขันในหลายเวอร์ชันการบำรุงรักษา (> 10) ของผลิตภัณฑ์ของเราดังนั้นจึงเป็นการยากที่จะปรับโครงสร้างใหม่ ถ้าฉันจะแยก "ง่ายๆ" ให้พูดเพื่อเริ่มต้นเป็น 3 ไฟล์จากนั้นการรวมการเปลี่ยนแปลงกลับจากเวอร์ชันการบำรุงรักษาจะกลายเป็นฝันร้าย และถ้าคุณแบ่งไฟล์ด้วยประวัติที่ยาวนานและเต็มไปด้วยเช่นนั้นการติดตามและตรวจสอบการเปลี่ยนแปลงเก่า ๆ ในSCCประวัติศาสตร์นั้นจะยากขึ้นมาก ไฟล์นั้นมี "คลาสหลัก" (การมอบหมายงานภายในและการประสานงานหลัก) ของโปรแกรมของเราดังนั้นทุกครั้งที่มีการเพิ่มฟีเจอร์มันจะมีผลกับไฟล์นี้และทุกครั้งที่มันเติบโต :-( คุณจะทำอะไรในสถานการณ์นี้ มีแนวคิดใดบ้างเกี่ยวกับวิธีย้ายฟีเจอร์ใหม่ไปยังไฟล์ต้นฉบับที่แยกต่างหากโดยไม่ทำให้SCCเวิร์กโฟลว์ยุ่งเหยิง? (หมายเหตุเกี่ยวกับเครื่องมือ: เราใช้ C ++ ด้วยVisual Studio; เราใช้AccuRevเป็นSCCแต่ฉันคิดว่าประเภทของSCCไม่สำคัญที่นี่; เราใช้Araxis Mergeเพื่อทำการเปรียบเทียบจริงและการรวมไฟล์)

30
หน่วยทดสอบแคตตาล็อกรูปแบบการต่อต้าน
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ anti-pattern : ต้องมีองค์ประกอบสำคัญอย่างน้อยสองอย่างในปัจจุบันที่จะแยกแยะรูปแบบการต่อต้านที่แท้จริงจากนิสัยที่ไม่ดีแบบง่าย ๆ การฝึกฝนที่ไม่ดีหรือความคิดที่ไม่ดี: รูปแบบของการกระทำกระบวนการหรือโครงสร้างซ้ำ ๆ บางอย่างที่เริ่มปรากฏว่ามีประโยชน์ แต่ในท้ายที่สุดก่อให้เกิดผลกระทบที่เลวร้ายยิ่งกว่าผลลัพธ์ที่เป็นประโยชน์และ โซลูชันที่ได้รับการปรับโครงสร้างใหม่ซึ่งมีการบันทึกไว้อย่างชัดเจนได้รับการพิสูจน์ในการปฏิบัติจริงและสามารถทำซ้ำได้ โหวตให้กับรูปแบบการต่อต้าน TDD ที่คุณเคยเห็น "ในป่า" หนึ่งครั้งมากเกินไป โพสต์บล็อกโดยเจมส์คาร์และ การสนทนาที่เกี่ยวข้องกับการพัฒนาทดสอบกลุ่ม yahoogroup หากคุณพบหนึ่ง 'ไม่มีชื่อ' .. โพสต์ 'em เกินไป โพสต์ต่อการต่อต้านแบบหนึ่งโปรดให้คะแนนโหวตบางสิ่ง ความสนใจของฉันคือการหาเซตย่อยอันดับต้น ๆ เพื่อที่ฉันจะได้พูดคุยกับพวกเขาในกล่องอาหารกลางวันที่จะพบกันในอนาคตอันใกล้

13
รูปแบบการต่อต้านคืออะไร?
ฉันกำลังศึกษารูปแบบและรูปแบบการต่อต้าน ฉันมีความคิดที่ชัดเจนเกี่ยวกับรูปแบบ แต่ฉันไม่ได้รับรูปแบบต่อต้าน คำจำกัดความจากเว็บและ Wikipedia ทำให้ฉันสับสนมาก ใครสามารถอธิบายให้ฉันด้วยคำพูดง่ายๆสิ่งที่ต่อต้านรูปแบบคืออะไร? จุดประสงค์คืออะไร? พวกเขาทำอะไร? มันเป็นสิ่งที่ไม่ดีหรือสิ่งที่ดี?

20
ซิงเกิลที่มีอาร์กิวเมนต์ใน Java
ฉันอ่านบทความ Singleton ใน Wikipedia และฉันพบตัวอย่างนี้: public class Singleton { // Private constructor prevents instantiation from other classes private Singleton() {} /** * SingletonHolder is loaded on the first execution of Singleton.getInstance() * or the first access to SingletonHolder.INSTANCE, not before. */ private static class SingletonHolder { private static final Singleton …

7
ServiceLocator เป็นการต่อต้านรูปแบบหรือไม่?
เมื่อเร็ว ๆ นี้ฉันได้อ่านบทความของ Mark Seemannเกี่ยวกับรูปแบบการต่อต้าน Service Locator ผู้เขียนชี้ให้เห็นเหตุผลหลักสองประการที่ว่าทำไม ServiceLocator จึงต่อต้านรูปแบบ: ปัญหาการใช้งาน API (ซึ่งฉันก็สบายดี) เมื่อคลาสใช้ตัวระบุตำแหน่งบริการมันยากมากที่จะเห็นการอ้างอิงเนื่องจากในกรณีส่วนใหญ่คลาสจะมีตัวสร้าง PARAMETERLESS เพียงตัวเดียว ในทางตรงกันข้ามกับ ServiceLocator วิธี DI เปิดเผยการอ้างอิงอย่างชัดเจนผ่านพารามิเตอร์ของตัวสร้างเพื่อให้เห็นการอ้างอิงได้ง่ายใน IntelliSense ปัญหาการบำรุงรักษา (ซึ่งทำให้ฉันงง) พิจารณาตัวอย่างต่อไปนี้ เรามีคลาส'MyType'ซึ่งใช้วิธีการระบุตำแหน่งบริการ: public class MyType { public void MyMethod() { var dep1 = Locator.Resolve<IDep1>(); dep1.DoSomething(); } } ตอนนี้เราต้องการเพิ่มการอ้างอิงอื่นให้กับคลาส 'MyType' public class MyType { public void MyMethod() …

11
เหตุใดวัตถุการถ่ายโอนข้อมูล (DTO) จึงเป็นรูปแบบต่อต้าน
ผมเคยได้ยินคนบอกว่าเมื่อเร็ว ๆ นี้การถ่ายโอนข้อมูลวัตถุ (DTOs) เป็นต่อต้านรูปแบบ ทำไม? ทางเลือกอื่นคืออะไร?

8
มีเหตุผลใดที่จะไม่ใช้ '+' เพื่อเชื่อมสองสตริงเข้าด้วยกัน?
antipattern ทั่วไปใน Python คือการต่อลำดับของสตริงโดยใช้+ในลูป สิ่งนี้ไม่ดีเนื่องจากล่าม Python ต้องสร้างออบเจ็กต์สตริงใหม่สำหรับการวนซ้ำแต่ละครั้งและจะใช้เวลากำลังสอง (เห็นได้ชัดว่า CPython เวอร์ชันล่าสุดสามารถปรับให้เหมาะสมได้ในบางกรณี แต่การใช้งานอื่น ๆ ไม่สามารถทำได้ดังนั้นโปรแกรมเมอร์จึงไม่สามารถพึ่งพาสิ่งนี้ได้) ''.joinเป็นวิธีที่ถูกต้องในการดำเนินการนี้ อย่างไรก็ตามฉันเคยได้ยินมาว่า ( รวมถึงที่นี่ใน Stack Overflow ) ว่าคุณไม่ควรใช้+สำหรับการต่อสายอักขระ แต่ควรใช้''.joinหรือใช้สตริงรูปแบบแทน ฉันไม่เข้าใจว่าเหตุใดจึงเป็นเช่นนี้หากคุณเชื่อมต่อเพียงสองสตริง ถ้าความเข้าใจของฉันถูกต้องก็ไม่ควรใช้เวลาในการกำลังสองและผมคิดว่าa + bเป็นที่สะอาดและอ่านได้มากขึ้นกว่าหรือ''.join((a, b))'%s%s' % (a, b) เป็นแนวทางปฏิบัติที่ดีที่จะใช้+เพื่อเชื่อมสองสตริงเข้าด้วยกันหรือไม่? หรือมีปัญหาที่ฉันไม่ทราบ?

12
ออกแบบรูปแบบเพื่อหลีกเลี่ยง [ปิด]
ตามที่กล่าวมาในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบถาม & ตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจก่อให้เกิดการถกเถียงโต้แย้งการสำรวจความคิดเห็นหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงได้และอาจเปิดขึ้นมาใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อรับคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา หลายคนดูเหมือนจะเห็นด้วยว่ารูปแบบ Singleton มีข้อบกพร่องหลายประการและบางคนแนะนำให้หลีกเลี่ยงรูปแบบทั้งหมด มีความเป็นการอภิปรายที่ยอดเยี่ยมที่นี่ กรุณาแสดงความคิดเห็นเกี่ยวกับรูปแบบ Singleton สำหรับคำถามนั้น คำถามของฉัน : มีรูปแบบการออกแบบอื่น ๆ ที่ควรหลีกเลี่ยงหรือใช้อย่างระมัดระวังหรือไม่?

4
เหตุใด "บันทึกและโยน" จึงถือเป็นการต่อต้านรูปแบบ [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ คำถามนี้เกิดจากการอภิปรายในบทความนี้ซึ่งฉันไม่ได้รับคำตอบที่ดีเลย เหตุใดจึงควรบันทึกข้อยกเว้นของคุณแล้วสร้างใหม่ (แน่นอนว่าการรักษาสแต็กติดตามเดิม) เป็นความคิดที่ไม่ดีหากคุณไม่สามารถจัดการได้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.