Harika API'lerle ilgili onları harika yapan nedir? Ben "bir şey yapmak ve iyi yapmak" mantra bağlılık iyi bir işaret olduğunu düşünmek ve sorun etki alanı için iyi bir haritalama önemlidir, ama büyük API'lerin ortak ne var?
Harika API'lerle ilgili onları harika yapan nedir? Ben "bir şey yapmak ve iyi yapmak" mantra bağlılık iyi bir işaret olduğunu düşünmek ve sorun etki alanı için iyi bir haritalama önemlidir, ama büyük API'lerin ortak ne var?
Yanıtlar:
Yalnızca API'nız uğruna yeni kelimeler eklemekten kaçınmak için dikkatli olmalısınız. Favori API'lerim bana anladığım kelime haznesinde bazı şeyleri açıklıyor. Bu çizgiler boyunca:
Zaten yaklaşık yarım düzine soyutlama katmanı düşünmem gerekiyor. Bana fazladan katmanlar hakkında düşündürme. Son hedefime değer katacak öğrenecek çok fazla yeni şey vermeyin. Örneğin, dilin dosya türünden farklı çalışan kendi özel dosya sınıfınızı kullanmaktan kaçının, yolunuzun genel olarak kabul edilen yoldan daha iyi olduğunu düşünün. Genel olarak kabul edilen şekilde, en azından arayüzlerinizde, daha iyi veya daha kötü için sadık kalın.
Örneğin, MVC çerçevenizin "model" kısmının bir veritabanı için bir ön uç olduğu gerçeğini saklamaya çalışmayın. "Veritabanlarını" çevreleyen iyi bilinen kelime dağarcığından yararlanın. Yabancı anahtarların ne olduğunu biliyorum. Satır ve sütunların ne olduğunu biliyorum. Bu terimlerle benimle konuş.
Somut fikirlerle çalışmaya benzer. Veritabanlarındaki dosyalar, veritabanları veya satırlarla uğraştığımızı gizlemeyin. Bunları biliyorum. Liste gibi bir kapsayıcıyla uğraşıyorsam, ortak işlemlerin algoritmik karmaşıklığını bilmek için iyi bir şansım var. Bana sadece bir "bağlantılı liste" veya "dizi" diyerek bunu basitleştirebilirsiniz. Büyük bir fikir kümesi aniden ne yaptığınıza dayanacak ve hepsi birden anlam kazanacak. Soruna uygulamak için zaten zengin ve kullanışlı bir terminoloji seti ile geleceğimde öğrenmem gereken kendi fikir setinizi yaratmayın.
API'nizi herhangi bir tür resim dosyası açmak için kullanıyorsanız, pngs vs gifs vs jpgs hakkında çok fazla düşünmem gerekmemelidir. Bunu benim için yapacaksın. Bu sizin temel yetkinliğiniz, benim değil. Bunu benim için yapacak bir sihir olduğuna dair belirsiz bir anlayışım var.
Yararlı bir API aşağıdakilere sahiptir:
X
API'nin geri kalanı tarafından belirlenen kuraldan tamamen farklı olduğunu keşfettiğimde hiçbir şekilde şok olmak istemiyorum .Bu soru NetBeans ekibinden Jaroslav Tulach tarafından "Pratik API Tasarımı: Bir Java Framework Mimarının İtirafları" bölümünde ele alınmıştır.