Üç API oluşturmak zorunda olduğumuz bir yazılım projesi üzerinde çalışıyorum. Biri ev bankacılığı kanalı, biri ajans kanalı ve üçüncüsü mobil kanal için.
Ajans API'sı, tüm işlevselliklere sahip olduğu için en eksiksiz olanıdır ... daha sonra biraz daha küçük Ev API'si ve sonra mobil API.
Buradaki mimarlar ortak bir katman oluşturdu (tüm API'ler tarafından paylaşılan çapraz kanal EJB hizmetleri). Ancak daha sonra API'ler farklıdır.
Şimdilik API'ler arasında büyük bir fark yoktur. Büyük ekip ajans kanalıyla başladı ve şimdi ana kanal için uyarlıyoruz. Sadece özellikle uygulamamıza özel nesneleri zenginleştiriyoruz. Aksi takdirde, kod API'ler arasında% 95 oranında benzerdir. API'ler Spring MVC üzerine kuruludur ve sahiptir (kontrolörleri, modelleri ve bazı yardımcı programları).
Temelde kontrolörler BO'yu ChannelObject ile eşleştiriyorlar (bunu yapmak için doğru bir yer değil gibi görünüyor) ve bazı ekstra yardımcı programlar ve serileştiriciler. Hepsi şimdilik kopya. Yinelemenin sebebinin API'lerin bağımsız olmasını istediklerini söylüyorlar. “Yarın ev için ajanstan veya mobilden farklı bir davranış istiyorsak mücadele etmeyeceğiz!”
Çift kodu kabul etmemiz gereken bir durum var mı?