Örnek olarak, Java'da bir uygulama yazdığınızı varsayalım .
Uygulamanız Python ile yazılmış bir API sunucusuyla iletişim kurar .
Python sunucusu bir SQL veritabanı ile iletişim kurar .
Uygulamanız için JavaScript ile yazılmış bir web siteniz de var .
4 farklı dilde, temel olarak aynı veri yapılarını 4 farklı kez tekrarlamak kolaydır.
Örneğin, bir User
tür şöyle görünebilir (sözde kod):
type User {
integer id;
string name;
timestamp birthday;
}
Projenin her bölümü için bir çeşit temsile ihtiyaç duyulur User
. Java ve Python bölümlerinin iki farklı class
bildirime ihtiyacı olacaktır . Veritabanı bir User
tablo bildirimi gerektirir. Ve ön uç sitenin de bir temsil etmesi gerekir User
.
Bu tür 4 farklı kez tekrarlandığında, Tekrarlama-Kendin Yap ilkesi gerçekten kesilir . Ayrıca, User
tür değiştirilirse, bu değişikliklerin projenin her farklı bölümünde tekrarlanması gerektiği problemi vardır .
Google'ın protobuf kütüphanesinin bu soruna özel bir sözdizimi kullanarak bir veri yapısı yazdığınızı ve daha sonra kütüphane için farklı programlama dillerinde bir yapı bildirimi oluşturduğunu biliyorum. Ancak bu, yine de türleriniz için doğrulama mantığını tekrarlamak zorunda kalmamanızla ilgili değildir.
Bu konuda herhangi bir öneri veya kitap / blog yayını bağlantısı olan var mı?
Repeating this type 4 different times really breaks the Don't-Repeat-Yourself principle
. Hayır değil. Farklı işler yapan 4 farklı sisteminiz var. DRY'yi çok ileri götürüyorsunuz. Deneyimlerime göre, yapmak istediğiniz yeniden kullanılabilirlik türü kötülüğün tohumu, çünkü sıkı bağlantıyı tanıtın. Bu User
, 4 farklı dilde 4 kez tekrarlanandan daha kötü . Dağıtılmış ortamlarda bağlantı bir sorundur. KURU değil.