Ön Uçlar için Arka Uçlar düzeni
Belirli ön uç uygulamaları veya arabirimleri tarafından kullanılacak ayrı arka uç hizmetleri oluşturun. Bu düzen, birden çok arabirim için tek bir arka ucu özelleştirmekten kaçınmak istediğiniz durumlarda kullanışlıdır. Bu düzen ilk olarak Sam Newman tarafından açıklanmıştır.
Bağlam ve sorun
Bir uygulama, başlangıçta bir masaüstü web kullanıcı arabirimini hedefleniyor olabilir. Genellikle, buna paralel olarak ilgili kullanıcı arabirimi için gerekli özellikleri sağlayan bir arka uç hizmeti geliştirilir. Uygulamanın kullanıcı tabanı genişledikçe aynı arka uç ile etkileşim kurması gereken bir mobil uygulama geliştirilir. Arka uç hizmeti, hem masaüstü arabirimlerinin hem de mobil arabirimlerin gereksinimlerini karşılayan genel amaçlı bir arka uca dönüşür.
Ancak bir mobil cihazın özellikleri, ekran boyutu, performans ve görüntüleme sınırlamaları bakımından masaüstü tarayıcısından önemli ölçüde farklılık gösterir. Sonuç olarak, bir mobil uygulama arka ucunun gereksinimleri masaüstü web kullanıcı arabirimi gereksinimlerinden farklıdır.
Bu farklılıklar, arka uç için birbiriyle çelişen gereksinimlere yol açar. Arka uç, hem masaüstü web kullanıcı arabirimi hem de mobil uygulamaya yönelik olarak hizmet sunmak için düzenli ve önemli değişiklikler gerektirir. Genellikle her bir ön uç üzerinde ayrı arabirim ekipleri çalıştığından arka uç, geliştirme sürecinde performans sorunlarına yol açmaya başlar. Birbiriyle çelişen güncelleştirme gereksinimleri ve hizmetin her iki ön uç için çalışmaya devam etmesini sağlama ihtiyacı, tek bir dağıtılabilir kaynağa çok fazla çaba harcanmasına neden olabilir.

Geliştirme etkinlikleri arka uç hizmetine odaklanırken arka ucun yönetilmesi ve bakımının yapılması için ayrı bir ekip oluşturulabilir. Sonuç olarak, bu durum arabirim ekipleri ile arka uç geliştirme ekipleri arasında bir bağlantı kopukluğuna yol açarak arka uç ekibinin farklı kullanıcı arabirimi ekiplerinin birbiriyle çelişen gereksinimlerini karşılama konusunda ek yük altında kalmasına neden olur. Bir arabirim ekibi için gerekli olan arka uç değişikliklerinin arka uçla tümleştirilebilmesi için önce diğer arabirim ekipleri tarafından doğrulanması gerekir.
Çözüm
Kullanıcı arabirimi başına bir arka uç oluşturun. Diğer ön uç deneyimlerini etkilemeksizin, ön uç ortamının ihtiyaçlarına en iyi şekilde eşleşecek şekilde her bir arka ucun davranışını ve performansını hassas olarak ayarlayın.

Her arka uç bir arabirime özgü olduğundan, ilgili arabirim için iyileştirilebilir. Bunun sonucunda, tüm arabirimlerin gereksinimlerini karşılamaya çalışan genel bir arka uçla karşılaştırıldığında daha küçük, daha basit ve muhtemelen daha hızlı olacaktır. Her arabirimi ekibinin kendi arka ucu üzerinde özerk denetimi olur ve merkezi bir arka uç geliştirme ekibi gerekmez. Bu model, arabirim ekibine dil seçimi, yayın temposu, iş yükü önceliklendirmesi ve arka uçta özellik tümleştirmesi konularında esneklik sağlar.
Daha fazla bilgi için bkz. Düzen: Ön Uçlar için Arka Uçlar.
Sorunlar ve dikkat edilmesi gerekenler
- Kaç arka uç dağıtılması gerektiğini göz önünde bulundurun.
- Farklı arabirimler (örneğin, mobil istemciler) tarafından aynı istekler gerçekleştirilecekse, her bir arabirim için ayrı bir arka uç uygulanmasının gerekip gerekmediğini ya da tek bir arka ucun yetip yetmeyeceğini değerlendirin.
- Bu düzen uygulanırken kodun farklı hizmetlerde yinelenme olasılığı yüksektir.
- Ön uç odaklı arka uç hizmetleri yalnızca istemciye özgü mantığı ve davranışı içermelidir. Genel iş mantığı ve diğer genel özellikler uygulamanızın başka bir yerinde yönetilmelidir.
- Bu düzenin bir geliştirme ekibinin sorumluluklarına nasıl yansıyabileceğini göz önünde bulundurun.
- Bu düzeni uygulama sürecinin ne kadar süreceğini göz önünde bulundurun. Mevcut genel arka ucu desteklemeye devam ederken yeni arka uçların oluşturulması için çaba harcanması teknik borç oluşmasına mı neden olacak?
Bu düzenin kullanılacağı durumlar
Bu düzeni aşağıdaki durumlarda kullanın:
- Önemli miktarda geliştirme ek yükü doğuran bir paylaşılan veya genel amaçlı arka uç hizmetinin gerekli olduğu durumlar.
- Arka ucu belirli istemci arabirimlerinin gereksinimlerine göre iyileştirmek istediğiniz durumlar.
- Genel amaçlı bir arka ucun birden çok arabirime uygun hale getirilmesi için özelleştirildiği durumlar.
- Farklı bir kullanıcı arabiriminin arka ucu için alternatif bir dilin daha uygun olduğu durumlar.
Bu düzen şu durumlarda uygun olmayabilir:
- Arabirimlerin arka uca yönelik olarak aynı veya benzer istekleri gerçekleştirdiği durumlar.
- Arka uç ile etkileşim için yalnızca bir arabirimin kullanıldığı durumlar.