Makaleden:
Daha genel olarak, yo-yo problemi, bir insanı bir kavramı anlamak için farklı bilgi kaynakları arasında çevirmeye devam etmesi gereken herhangi bir durumu da ifade edebilir.
Kaynak kodu , yazıldığından çok daha sık okunur . Bu nedenle, yo-yo problemi, birçok dosya arasında geçiş yapmak zorunda kalmak bir konudur.
Bununla birlikte, hayır , yo-yo problemi derinlemesine bağımlı modüller veya sınıflarla (bunlar arasında ileri geri gelen) uğraşırken çok daha anlamlı hisseder. Bunlar okumak için özel bir kabus ve muhtemelen yo yo probleminin aklındakilerdi.
Ancak - evet , çok fazla soyutlama katmanından kaçınmak önemlidir!
Tüm önemsiz olmayan soyutlamalar, bir dereceye kadar, sızdırıyor. - Sızdıran Soyutlamalar Kanunu.
Örneğin, mmmaaa’nın " Adres sınıfını anlamak için ZipCode sınıfını [(ziyaret et]] 'e ihtiyacınız yok " ) cevabında yapılan varsayımlara katılmıyorum . Tecrübelerim senin yaptığın en azından ilk birkaç kez kodu okudun. Ancak, diğerlerinin de belirttiği gibi, bir sınıfın uygun olduğu zamanlar vardır ZipCode
.
YAGNI (Ya vermeyecek mi ihtiyacınız O) (çok fazla katmanlarla kodu) lazanya kodunu önlemek için takip etmenin tam kalıptır - soyutlamalar gibi türleri olarak ve sınıfları programcı orada yardım etmek ve bunlar olmadıkça kullanılmamalıdır vardır bir yardım.
Şahsen "kod satırlarını kaydetmeyi" (ve tabii ki ilgili "dosyaları / modülleri / sınıfları kaydet" vb.) Hedefliyorum. Bana “ilkel takıntılı” sıfatını uygulayacak bazılarının olduğuna eminim - etiketler, kalıplar ve kalıplaşma kalıpları için endişelenmekten ziyade kolay anlaşılır bir kodun olmasını daha önemli buluyorum . Bir fonksiyonun ne zaman, bir modül / dosya / sınıf ne zaman yaratılacağı veya bir fonksiyonun ortak bir yere ne zaman konulacağı doğru bir seçimdir. Yaklaşık 3-100 satır işlevi, 80-500 satır dosyası ve yeniden kullanılabilir kütüphane kodu için "1, 2, n" ( SLOC - yorumlar veya kazan plakası dahil değil; zorunlu olarak her satır için en az 1 ek SLOC istiyorum.) Basmakalıp).
Çoğu olumlu kalıp, geliştiricilerin ihtiyaç duyduklarında tam olarak bunu yapmalarından kaynaklanmaktadır . Nasıl okunabilir kod yazılacağını öğrenmek, çözmek için aynı problemi olmayan desenleri uygulamaya çalışmaktan çok daha önemlidir. Herhangi bir iyi geliştirici, alışılmadık bir durumda daha önce görmeden fabrika şablonunu kendi problemine uygun olduğu durumlarda uygulayabilir. Fabrika modelini, gözlemci modelini kullandım ve muhtemelen adlarını bilmeden yüzlerce kişi kullandım (yani, "değişken atama modeli" var mı?). Eğlenceli bir deneme için - JS diline kaç tane GoF paterni yerleştirildiğini görün - 2009'da 12-15 yıl sonra saymayı kestim. Fabrika modeli bir nesneyi bir JS kurucusundan döndürmek kadar basit, örneğin - gerek yok Bir WidgetFactory.
Yani - evet , bazen ZipCode
iyi bir sınıftır. Ancak, hayır , yo-yo problemi kesinlikle ilgili değil.