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.
   73   74   75   76   77   78   79   80   81   82   83