จากบทความ:
โดยทั่วไปแล้วปัญหาโยโย่ยังสามารถอ้างถึงสถานการณ์ใด ๆ ที่บุคคลจะต้องพลิกระหว่างแหล่งข้อมูลที่แตกต่างกันเพื่อให้เข้าใจแนวคิด
ซอร์สโค้ดถูกอ่านบ่อยกว่าที่เขียน ดังนั้นปัญหาของ yo-yo ที่ต้องสลับไปมาระหว่างหลาย ๆ ไฟล์เป็นเรื่องที่น่ากังวล
อย่างไรก็ตามไม่มีปัญหาโยโย่รู้สึกว่ามีความเกี่ยวข้องมากขึ้นเมื่อจัดการกับโมดูลหรือชั้นเรียนที่พึ่งพาซึ่งกันและกันอย่างลึกซึ้ง (ซึ่งโทรกลับไปกลับมาระหว่างกัน) สิ่งเหล่านี้เป็นฝันร้ายชนิดพิเศษที่จะอ่านและน่าจะเป็นสิ่งที่ผู้คิดปัญหาโยโย่มีอยู่ในใจ
อย่างไรก็ตาม - ใช่การหลีกเลี่ยงเลเยอร์สิ่งที่เป็นนามธรรมเป็นสิ่งสำคัญ!
abstractions ที่ไม่น่ารำคาญทั้งหมดในระดับหนึ่งมีการรั่วไหล - กฎของ Abstractions ที่รั่วไหล
ตัวอย่างเช่นฉันไม่เห็นด้วยกับสมมติฐานที่ทำไว้ในคำตอบของ mmmaaaว่า "คุณไม่จำเป็นต้อง yo-yo ถึง [(เยี่ยมชม)] คลาส ZipCode เพื่อทำความเข้าใจคลาสที่อยู่" ประสบการณ์ของฉันเป็นสิ่งที่คุณทำ - อย่างน้อยสองสามครั้งแรกที่คุณอ่านรหัส อย่างไรก็ตามในขณะที่คนอื่น ๆ ได้ตั้งข้อสังเกตมีอยู่ครั้งเมื่อZipCode
ระดับที่มีความเหมาะสม
YAGNI (Ya Ain't Gonna Need It) เป็นรูปแบบที่ดีกว่าในการติดตามเพื่อหลีกเลี่ยงรหัส Lasagna (รหัสที่มีเลเยอร์มากเกินไป) - abstractions เช่นประเภทและชั้นเรียนมีไว้เพื่อช่วยเหลือโปรแกรมเมอร์และไม่ควรใช้นอกเสียจากว่าพวกเขาจะความช่วยเหลือ
โดยส่วนตัวฉันมุ่งมั่นที่จะ "บันทึกบรรทัดของรหัส" (และแน่นอนที่เกี่ยวข้องกับ "บันทึกไฟล์ / โมดูล / คลาส" ฯลฯ ) ฉันมั่นใจว่ามีบางคนที่จะนำไปใช้กับฉันฉายาของ "ดั้งเดิมหลง" - ฉันคิดว่ามันสำคัญกว่าที่จะมีรหัสซึ่งเป็นเรื่องง่ายที่จะให้เหตุผลเกี่ยวกับกว่ากังวลเกี่ยวกับฉลากรูปแบบและรูปแบบการต่อต้าน ทางเลือกที่ถูกต้องของเวลาที่จะสร้างฟังก์ชั่นโมดูล / ไฟล์ / คลาสหรือวางฟังก์ชั่นในตำแหน่งทั่วไปเป็นสถานการณ์มาก ฉันตั้งเป้าหมายสำหรับฟังก์ชั่น 3-100 บรรทัดไฟล์ 80-500 บรรทัดและ "1, 2, n" สำหรับรหัสไลบรารีที่นำมาใช้ซ้ำได้ ( SLOC - ไม่รวมความคิดเห็นหรือแผ่นสร้างสำเร็จรูป) โดยทั่วไปฉันต้องการ SLOC ขั้นต่ำเพิ่มเติมอย่างน้อย 1 รายการต่อบรรทัด สำเร็จรูป)
รูปแบบเชิงบวกมากที่สุดได้เกิดขึ้นจากนักพัฒนาทำตรงนั้นเมื่อพวกเขาต้องการพวกเขา การเรียนรู้วิธีการเขียนรหัสที่อ่านได้นั้นสำคัญกว่าการพยายามใช้รูปแบบที่ไม่มีปัญหาเดียวกันเพื่อแก้ไข นักพัฒนาที่ดีสามารถใช้รูปแบบของโรงงานโดยไม่เคยเห็นมาก่อนในกรณีที่ผิดปกติซึ่งเหมาะกับปัญหาของพวกเขา ฉันใช้รูปแบบจากโรงงานรูปแบบผู้สังเกตการณ์และอาจเป็นร้อย ๆ โดยไม่ทราบชื่อของพวกเขา (กล่าวคือมี "รูปแบบการกำหนดตัวแปร" หรือไม่) สำหรับการทดสอบที่สนุกสนาน - ดูว่ามีรูปแบบ GoF จำนวนเท่าใดในภาษา JS - ฉันหยุดนับหลังจากประมาณ 12-15 ปีในปี 2009 รูปแบบ Factory นั้นง่ายเหมือนการส่งคืนวัตถุจากคอนสตรัคเตอร์ JS เช่น - ไม่จำเป็นต้องใช้ WidgetFactory
ดังนั้น - ใช่ , บางครั้งก็ ZipCode
เป็นระดับที่ดี อย่างไรก็ตามไม่ปัญหาโยโย่ไม่เกี่ยวข้องอย่างเคร่งครัด