İçindekiler[Saklamak][Göstermek]
- Peki, modül federasyonu nedir?
- Neden modül federasyonu?
- Modül federasyonu çekirdek bileşenleri
Modül Federasyonu temel özellikleri+-
- Mükemmel web performansı
- Etkili geliştirme
- Kendi kendini iyileştirme ve fazlalık yeteneği
- Ortak bağımlılıkların etkili bir şekilde ele alınması
- Tüketicileri yeniden dağıtmak yerine bağımsız kod dağıtın.
- Çalıştırırken, diğer derlemelerden kod alın.
- İstemci deneyimini korurken gelişmiş geliştirici deneyimi
- Mikro ön uçlar monolitik bir şekilde çalışır.
- Sonuç
Mikro ön uç kavramı, mikro hizmetleri ön uç geliştirmeye uygular.
Buradaki fikir, uygulamayı veya web sitesini daha küçük, bağımsız olarak geliştirilmiş parçalara bölerek daha sonra bunları tek ve uyumlu bir monolit olarak oluşturmak yerine çalışma zamanı sırasında birbirine bağlamaktır.
Yöntem, diğer teknolojileri kullanarak ve bağımsız ekiplerle uygulamanın diğer bileşenlerini oluşturmanıza olanak tanır.
Buradaki fikir, geliştirmeyi bu şekilde bölümlere ayırarak tipik bir monolit ile ilgili bakım masraflarını azaltmaktır.
Tutarlı bir ekip olarak bir uygulamanın belirli bir alanına konsantre olmalarını sağlayarak, arka uç ve ön uç geliştiriciler arasında yeni işbirliği biçimleri de mümkün kılar.
Örneğin, arama yeteneğinden veya bir işletme için çok önemli olan önemli bir ürünün başka bir yönünden yalnızca sorumlu olan bir ekibiniz olabilir.
Modül federasyonu sayesinde, iş akışının üstesinden gelmek için yeterli işlevselliğe sahipsiniz. mikro ön uç yaklaşma yetkileri.
Bu gönderi, modül federasyonunun mimarisinin yanı sıra ana özellikleri ve uygulama kalıplarına derinlemesine bir göz atacaktır.
Öyleyse, ne modül federasyonu?
Javascript'in modül federasyon tasarımı, birçok uygulamada yeniden kullanılan parçaları kullanır.
Oldukça basit bir jargon ama ben sadece havadar görünmesi için öyle görünmesini sağladım.
Bir React uygulamasında bileşenleri paylaşmaya hepimiz aşina olduğumuz için, Module Federation, uygulama modüllerini diğer uygulamalar tarafından tüketilmek üzere dinamik olarak ortaya koyması dışında, uygulamada aynı hedefi etkin bir şekilde gerçekleştirir.
Modül Federasyonu, dağıtılmış bir sistemdeki modül paylaşımı sorununu, bu paylaşılan anahtar öğeleri istendiği gibi makro veya mikro olarak sunarak aşmayı amaçlamaktadır.
Bu, onların uygulamalarınızdan ve derleme iş akışından kaldırılmasıyla gerçekleştirilir.
Neden modül federasyonu?
Modül federasyonunun kolayca üstesinden gelebileceği bazı faktörler şunlardır:
- Hariciler ve DLL'ler (Dinamik Bağlantı Kitaplıkları), uygulamalar arasında işlevsellik paylaşmak için ara sıra sahip olduğumuz tek şeydi. Bunların tümü, ölçeklendirme kodu paylaşımını son derece zorlaştırdı.
- NPM durgun.
- İki ayrı program önemli kodu paylaştığında, dinamik ve esnek olmalıdır.
Bağımsız uygulamaların tamamen kendi depolarında olması, ayrı ayrı dağıtılması ve kendi bağımsız SPA'ları olarak çalışması için Module Federation oluşturuldu.
Modül federasyonu çekirdek bileşenleri
Daha derine inmeden önce, modül federasyonunun getirdiği birkaç yeni kavramı kısaca tartışmak önemlidir.
- Ana Bilgisayar: Bir sayfa yüklendiğinde, başlangıçta başlatılan yapı veya modüle ana bilgisayar adı verilir. Bir sağlayıcı, bir ev sahibi olarak düşünülebilir.
- Uzak: Uzak, ana bilgisayarın bir bölümünü kullanan farklı bir yapıdır. Bunlara müşteri de denir.
- Çift yönlü ana bilgisayar: hem diğer ana bilgisayarların kullandığı bir uzaktan kumanda hem de uzaktan kumandaları tüketen bir ana bilgisayar olarak işlev gören bir Web paketi yapısı.
- Satıcı federasyonu: Bir ana bilgisayar veya uzak için npm modülü bağımlılıklarının, yüklendikleri yerden bağımsız olarak bildirimsel olarak paylaşılan çalışma zamanı paylaşımını etkinleştirir. Mikro ön uçlarla ilgili en büyük performans sorunlarından biri bu şekilde çözülür.
Birleşik Uygulama Kalıpları
Dökmeyen Tasarım Sistemi
Birleşik uygulamaların en temel biçimlerinden biri, tüm kullanıcılar için bağımsız olarak dağıtılan ve güncellenen "Tasarım Sistemi" veya "Bileşen kitaplığı" gibi paylaşılan bir uzaktan kumanda olan "her zaman yeşil kalan bir uzaktan kumanda"dır.
Her uygulama ekibinin revizyonlar için zaman harcamasına gerek kalmadan, bu, tüm çevrimiçi sitelerin en yeni kurumsal kimliğe bağlı kalmasını sağlamaya yardımcı olabilir.
Güvenli, sürekli güncellemeleri garanti etmek için gerekli sınırları ve prosedürleri tasarlamak ve uygulamaya koymak için burası, birleşik bir uygulama mimarisi düşünürken işletmelerin başlaması için yararlı bir yer olabilir.
Aşağıda, bağımsız olarak dağıtılan paylaşılan uzaktan kumandaların uygun olabileceği bazı kullanım durumları verilmiştir:
- Tasarım sistemleri
- Uygulama kabukları
- Bileşen kitaplıkları
- Tüketiciler
- Paylaşılan araç takımları
- Dahili veya harici olarak kullanılan widget'lar için alternatif dağıtım modelleri
Çoklu SPA Modül Paylaşımı
Bileşenler gibi zaten dışa aktarılmış özellikleri farklı bağımsız tek sayfalı uygulamalarda yeniden kullanın. Avantajlar şunları içerir:
- Tüketiciler otomatik güncellemeler alır
- Etki alanı uzmanlığı, bundan sorumlu olan ekipte kalır.
- Ayrı modül sürümleri gerekli olmadığından dağıtım prosedürünü kolaylaştırır.
Kabuk odaklı federasyon
Kabuk güdümlü federasyon şunları içerir:
- Ürün ekibi, yeni bir ürün sürümü oluştururken, Ödeme ekibinin işini tamamlamasını beklemez.
- Uzaktan kumandaları değiştirirken, sayfa yeniden yüklenmez.
- Shell, gerektiğinde yavaş uzaktan yükleme ve (üst düzey) yönlendirme sunar.
- Uzaktan kumandalar arasında yönlendirme, sık kullanılan npm paketlerinin yeniden kullanılmasını sağlayan satıcı federasyonu aracılığıyla mümkün olur.
- Shell, tembel yüklü uzaktan kumandalar tarafından yeniden kullanılan çerçeveyi ve diğer yaygın bağımlılıkları sunar.
Çok kabuklu federasyon
Yukarıda açıklanan kabuk güdümlü federasyona benzer, ancak farklı mermiler kullandı.
Bu içerir:
- bir dizi kabuk
- Beyaz etiketli
- Tüm uzaktan kumandalar Shell B tarafından gerekli değildir veya bağımsız uygulamalara sahip değildir.
Modül Federasyonu temel özellikleri
Mükemmel web performansı
Normal NPM modülü bileşimiyle ilgili sorun, bağımlıların sayısı arttıkça uygulamanın boyutunun genellikle büyümesidir.
Modül Federasyonu, uygulamanız yüklenirken paket yüklenmesini önlemek ve yalnızca gerektiğinde yüklemek için size paketleri tembelce yükleme olanağı sunar.
Bu, modüllerin gerçekten gerekli olmadan önce indirilmesi ihtiyacını ortadan kaldırarak site hızını artırır.
Etkili geliştirme
Modül Federasyonu, uygulamanızı ayrı projeler halinde düzenlemenizi teşvik ettiğinden, her proje ayrı ayrı üretilebilir ve teslim edilebilir ve çeşitli ekipler tarafından yürütülebilir, böylece bunları ayrı ayrı (ve dolayısıyla paralel olarak) oluşturup dağıtabilirsiniz.
Kendi kendini iyileştirme ve fazlalık yeteneği
Paylaşılan bağımlılıklar, Module Federation'ın programınızın tüm bağımlılıklarını tek bir yerden takip etmesine olanak tanır.
Bu şekilde, bir uygulama bir bağımlılık bildirmediğinde veya ağ sorunları olduğunda bile, neye ihtiyacı olduğunu bilir ve gerektiğinde indirmeyi halledebilir.
Ortak bağımlılıkların etkili bir şekilde ele alınması
Ayrıca Module Federation, uygulamanızın asla bir kitaplığın birden fazla sürümünü yüklememesi için satıcı ve üçüncü taraf gereksinimlerini etkin bir şekilde çözerek üstün bağımlılık yönetimi sunar.
Tüketicileri yeniden dağıtmak yerine bağımsız kod dağıtın.
Geliştirici, her zaman yeşil işlevselliğe sahip olmakla oldukça ilgilenmektedir. Maruz kalan bağımlı işlevsellik bir kez değiştiğinde, artık tüketicileri yeniden kurmak gerekli olmayacaktır.
Bunun kendi başına oldukça güçlü bir özellik olduğunu ve beklenmedik sonuçları önlemek için dikkatli bir incelemeye ihtiyaç duyacağını kabul etmeliyim.
Çalıştırırken, diğer derlemelerden kod alın.
NPM paket modelini benimserken, kod paylaşmak ve “kütüphane” düşünmek yerine Modül Federasyonu'nu API'lere benzer şekilde kullanan uygulamaları düşünebiliriz.
Diğer uygulamalardan işlevsellik alabildikleri gibi, web uygulamaları da artık diğer uygulamalara işlevsellik sağlayabilir.
İstemci deneyimini korurken gelişmiş geliştirici deneyimi
herhangi JavaScript geliştiricisi Modül Federasyonu ile oldukça rahat olacaktır çünkü bu, Webpack sürüm 5'ten itibaren erişilebilen bir Webpack eklentisidir.
Bu aslında biraz düşünürsek oldukça güçlü ve merak uyandırıcı.
Üçüncü taraf Web paketi yükleyicilerini kullanarak, aşağıdaki tüm bileşenleri göz önünde bulundurun: webpack komut dosyaları, varlıklar, stiller, resimler, indirimler ve daha fazlasını içeren paketler.
Modül Federasyonu kullanılarak bunların tümü paylaşılabilir ve birleştirilebilir.
Mikro ön uçlar monolitik bir şekilde çalışır.
Uygulamanıza paylaşılan işlevsellik eklemek oldukça kolaydır; sadece paketi normal olarak içe aktarın veya senkronize yükleme kullanın.
Alternatif olarak, asenkron yükleme, tembel yükleme kullanılarak yalnızca gerektiğinde bağımlılıkları yüklemek için kullanılabilir.
Sonuç
Bu yazıda, mikro ön uç uygulamanızı geliştirmek için harika bir seçim olarak Modül Federasyonu'nu tartıştık.
Uygulamaların çalışma zamanında değiş tokuş etmesine ve işlevsellik kullanmasına izin vermek, çeşitli ekiplerin bağımsız uygulamalar üzerinde çalışmasına olanak tanıyarak ölçeklenebilirliği teşvik eder.
Ortak işlevler değiştiğinde, her zaman yeşil kalan işlevselliği desteklediğinden tüketicilerinizi tasarlamanız ve devreye almanız gerekmeyecektir.
Programınız kurulduktan sonra monolit gibi çalışacak, ki bu harika.
Uygulamaların boyutunu azaltmak için paylaşılabilir bağımlılıklar kullanılır. Birçok geliştirici Webpack ortamına zaten aşina olduğundan, geliştirici deneyimi mükemmeldir.
Yorum bırak