Page 78 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 78
78 | Mikro Önyüz Mimarisi
sağlamak için sürüm yükseltmelerinde eski kullanımların güncellenmesi (refactor), dolayısı ile tüm
projelerin sürüm yükseltme sırasında birbirine bağımlı olması mikro önyüz mimarisine ters bir
durumdur. Bu sebeple ortak kütüphane kullanımı tavsiye edilmez iken, kullanılması halinde ortak
kütüphanelerin olgun ve basit kütüphaneler olması oldukça önemlidir.
Ekranlar arasında bütünlüğü ve özelleştirmeleri desteklerken karşılaşılabilecek bir diğer problem ise
stillerin yani CSS’lerin birbirlerini ezmesi durumudur. Mikro önyüzlerden birisinin CSS’i aynı ekranda
yer alan başka bir mikro önyüzün bileşenlerini etkileyebilir. Bu durumun üstesinden gelebilmek için
proje kapsamındaki tüm mikro önyüzlerin CSS’lerine ayırt edici ön ekler (prefix) eklenebilir.
Mikro önyüz mimarisine sahip uygulamaları geliştirirken mikro önyüzleri, ortamları ve bağımlılıkları
daha kolay yönetebilmek için mikro önyüz geliştirme üzerine oluşturulmuş kütüphanelerden de
(Single-SPA, Bit, Module Federation, vb.) faydalanılabilir. Kütüphane tercihi yapılırken projenin
yapısı ve mikroservislerin, dolayısı ile mikro önyüzlerin büyüklükleri dikkate alınmalıdır.
Önemli Noktalar
Mikro önyüz mimarisinin mikroservis mimarisi ile birlikte kullanıldığı zaman büyük ve karmaşık
projeler için sağladığı faydalar inkar edilemez. Ancak günümüzde, bu faydalara ihtiyaç duyan veya
duymayan birçok şirket, sırf popüler olduğu için mikro önyüz mimarisini kullanmaya çalışmaktadır.
Her proje paydaşının istediğini yapabilme özgürlüğü olsa da kötü bir yaklaşımın projeye vereceği
zararlar göz ardı edilmemelidir. Örneğin; ihtiyaç duyulmadığı halde mikro önyüz mimarisinin
kullanılıyor olması uygulamanın bir araya getirilme ihtiyacından dolayı daha yavaş açılmasına,
dağıtık yapısından dolayı kod bakımının zorlaşmasına, geliştirme sırasında uçtan uca testlerin
(end-to-end testing) daha zor yapılmasına veya gerekçesiz kararlar alınarak farklı geliştirme
opsiyonlarının (örneğin iki farklı SPA’nın birlikte kullanılması) bir arada kullanılmasına, dolayısı ile
de performans problemlerinin ortaya çıkmasına neden olabilir. Diğer taraftan ihtiyaç olmadığı
halde gereksiz yere mikro önyüz mimarisinin kullanımının yanında, gerçekten bu mimariye ihtiyaç
duyulan projelerde sırf yanlış anlaşılmalardan kaynaklı söz konusu mimarinin hatalı uygulanması da
sık rastlanan problemlerdendir. Yanlış anlaşılma sebebiyle mikro önyüzler çok küçültülerek birer
bileşene dönüştürülmemeli, birbirleri ile sürekli veri alışverişi yaparak birbirleri arasında bağımlılıklar
(bounded-context) oluşturmamalı ve kullandıkları ortak kütüphaneler ile sürüm çıkışları sırasında
bağımlılıklar oluşturarak bağımsızlığı engellememelidir. Mikro önyüzlerde uygulama bütünü
açısından önemli olabilecek özelliklerin kaybedilmesine neden olacak bireysel ve gerekçesiz kararların
alınmadığından (gerekçesiz olarak aynı anda farklı SPA’ların kullanılmadığından) emin olunmalıdır.
Mimari kararlar hızlı ve kısa araştırmalar sonucu veya kulaktan duyma bilgiler ile alınabilecek kararlar
değillerdir. Martin Fowler’ın da belirttiği gibi oldukça önemli ve zor kararlardır. Dolayısı ile bilinçsiz
bir şekilde mikro önyüz mimarisinin kullanımının ortaya çıkarabileceği dezavantajlar dikkate alınarak
mikro önyüz mimarisinin kullanımı değerlendirilmelidir.