Dari artikel:
Secara lebih umum, masalah yo-yo juga dapat merujuk pada situasi apa pun di mana seseorang harus terus membalik di antara berbagai sumber informasi untuk memahami suatu konsep.
Kode sumber dibaca jauh lebih sering daripada yang tertulis. Jadi, masalah yo-yo, karena harus beralih di antara banyak file adalah masalah.
Namun, tidak , masalah yo-yo terasa jauh lebih relevan ketika berhadapan dengan modul atau kelas yang sangat saling tergantung (yang saling bolak-balik). Itu adalah jenis mimpi buruk khusus untuk dibaca, dan kemungkinan apa yang ada dalam pikiran Anda tentang masalah yo-yo.
Namun - ya , menghindari terlalu banyak lapisan abstraksi itu penting!
Semua abstraksi non-sepele, sampai taraf tertentu, bocor. - Hukum Abstraksi Kebocoran.
Sebagai contoh, saya tidak setuju dengan asumsi yang dibuat dalam jawaban mmmaaa bahwa "Anda tidak perlu yo-yo untuk [(mengunjungi)] kelas ZipCode untuk memahami kelas Alamat". Pengalaman saya adalah yang Anda lakukan - setidaknya beberapa kali pertama Anda membaca kode. Namun, seperti orang lain telah mencatat, ada yang kalanya ZipCode
kelas sesuai.
YAGNI (Ya Apakah tidak Akan Butuh Ini) adalah pola yang lebih baik untuk mengikuti untuk menghindari kode Lasagna (kode dengan terlalu banyak lapisan) - abstraksi, seperti jenis dan kelas yang ada untuk membantu programmer, dan tidak boleh digunakan kecuali mereka yang sebuah pertolongan.
Saya pribadi bertujuan untuk "menyimpan baris kode" (dan tentu saja yang terkait "menyimpan file / modul / kelas", dll). Saya yakin ada beberapa orang yang akan memberi saya julukan "terobsesi primitif" - saya merasa lebih penting untuk memiliki kode yang mudah dipikirkan daripada khawatir tentang label, pola, dan anti-pola. Pilihan yang tepat kapan membuat fungsi, modul / file / kelas, atau meletakkan fungsi di lokasi umum sangat situasional. Saya bertujuan kira-kira untuk fungsi 3-100 baris, 80-500 file baris, dan "1, 2, n" untuk kode perpustakaan yang dapat digunakan kembali ( SLOC - tidak termasuk komentar atau boilerplate; Saya biasanya ingin setidaknya 1 tambahan minimum SLOC per baris wajib) boilerplate).
Sebagian besar pola positif muncul dari pengembang yang melakukan hal itu, ketika mereka membutuhkannya . Jauh lebih penting untuk mempelajari cara menulis kode yang dapat dibaca daripada mencoba menerapkan pola tanpa masalah yang sama untuk dipecahkan. Setiap pengembang yang baik dapat menerapkan pola pabrik tanpa pernah melihatnya sebelumnya dalam kasus yang tidak umum di mana itu cocok untuk masalah mereka. Saya telah menggunakan pola pabrik, pola pengamat, dan mungkin ratusan selain itu, tanpa mengetahui nama mereka (yaitu, apakah ada "pola penugasan variabel"?). Untuk percobaan yang menyenangkan - lihat berapa banyak pola GoF yang dibangun ke dalam bahasa JS - Saya berhenti menghitung setelah sekitar 12-15 pada tahun 2009. Pola Pabrik semudah mengembalikan objek dari konstruktor JS, misalnya - tidak perlu untuk sebuah WidgetFactory.
Jadi - ya , terkadang ZipCode
kelasnya bagus. Namun, tidak , masalah yo-yo tidak sepenuhnya relevan.