Jamstack, hem web geliştirmeyi hem de bir web sayfasını indirme süresini hızlandırmayı amaçlayan popüler bir web geliştirme felsefesidir. Devops ve CI/CD’den yararlanan Jamstack, etkileşimli web sayfaları oluşturmak, yükleme süresi kod yürütmesini web sunucularından uzaklaştırmak ve tarayıcı içi JavaScript’e ve API’ler aracılığıyla erişilen harici hizmetlere kaydırmak için uzun süredir devam eden teknikleri alt üst eder. Sonuç, çok hızlı oluşturulan ve birden çok platform için kolayca özelleştirilebilen statik web siteleri oluşturmaya yönelik geliştirici dostu bir yaklaşımdır.
Jamstack mimarisi
Jamstack, adının baş harflerini sağlayan üç sütuna dayalı bir web uygulaması mimarisidir: JavaScript, API’lerve işaretleme. Jamstack sitesindeki web sayfaları standart biçimlendirme dilinden oluşur, böylece uygulama sunucularına veya Node.js gibi sunucu tarafı teknolojilerine bağımlılık olmaksızın her yerde oluşturulabilir ve test edilebilir. Herhangi bir etkileşimli işlevsellik, tarayıcıda yürütülen ve HTTPS üzerinden yeniden kullanılabilir API’lere çağrı yapan standart JavaScript kodu tarafından sağlanır. Bu çağrılar, harici verilere veya web sayfasının kendisinde oluşturulamayan diğer işlevlere erişmek için kullanılır.
Jamstack’in neden devrim niteliğinde olduğunu anlamak için, çoğu geliştiricinin son 15 yıldır web geliştirme hakkında düşündüklerini örnekleyen LAMP yığınını düşünün. LAMBA şu anlama gelir: Linux (çoğu web sunucusuna güç sağlayan işletim sistemi), Apaçi (bu Linux makinelerinde çalışan sunucu yazılımı), MySQL (web uygulaması verilerinin depolandığı veritabanı) ve PHP/Perl/Python (sunucu tarafı kodunu yazmak için kullanılan dil). Tarayıcınızı LAMP tabanlı bir web sitesine yönlendirdiğinizde, web sunucusu, MySQL veritabanından gerektiği gibi veri çekerek, anında web sayfasını oluşturan sunucu tarafı kodunu yürütür.
LAMP mimarisi, geliştiricilerin dinamik ve etkileşimli web siteleri oluşturmasına olanak tanır, ancak aynı zamanda güçlü bir web sunucusu gerektirir ve bir site ne kadar fazla trafik alırsa, sunucu tarafında o kadar fazla bilgi işlem gücüne ihtiyaç duyar. Tam özellikli bir sunucuda bile dinamik web sayfalarının oluşturulması ve yüklenmesi uzun zaman alabilir. Dikkat süreleri kısa olan ve genellikle telefonlarıyla internette gezinen insanların dünyasında, bu gecikme önemli bir acı noktası haline geldi.
Jamstack, bir web sitesinin nasıl çalışması gerektiğine ilişkin bu geleneksel modele tepki olarak 2010’ların ortalarında ortaya çıkan statik web sitesi hareketinin bir parçası olarak doğdu. Jamstack’i anlamak için statik web sitelerinin arkasındaki teknolojiyi anlamanız gerekir.
Statik web siteleri ve Jamstack
Tam bir acemi kişiye web’in nasıl çalıştığını açıklamanız gerekiyorsa, şöyle bir şey olabilir: Bir web sunucusunun dosya sisteminde bir yerde, HTTP adresleriyle erişilebilen ve bir web tarayıcısının indirdiği ve ardından bir web sayfası oluşturmak için yorumladığı HTML dosyaları vardır. . Ama bu bir açıklaması statik web sitesi: Web tarayıcısı onları aramaya başladığında HTML dosyalarının zaten var olduğunu varsayar. Ancak son on yılda web’in çoğuna dinamik web sitelerigenellikle formlar aracılığıyla veya URL’nin kendisinde web sunucusuna iletilen parametrelere dayalı olarak, web isteklerine yanıt olarak anında HTML dosyaları oluşturan .
Statik site oluşturucular
Web’in ilk günlerinde, web sayfalarının her zaman statik olduğu zamanlarda, birçok web geliştiricisi HTML kodunu elle yazdı. Web sayfaları daha karmaşık hale geldikçe, Macromedia’nın Dreamweaver’ı gibi araçlar geldi ve programlı olarak statik HTML sayfaları oluşturmaya başladı. Statik web sitesi hareketi başladığında, Gatsby, Hugo ve Jeckyll dahil olmak üzere yeni bir statik site oluşturucu dalgası ortaya çıkmaya başladı. Dreamweaver gibi WYSIWYG araçlarının aksine, statik site oluşturucular komut satırıyla çalıştırılır ve CI/CD süreçleriyle iyi bir şekilde entegre olacak şekilde tasarlanmıştır. HTML dosyaları, genellikle Markdown’da yazılan içeriğe dayalı olarak bu araçlar tarafından oluşturulur ve GitHub gibi bir sürüm kontrol havuzuna otomatik olarak yüklenir. Bu dosyalar üretime hazır olarak işaretlendiğinden, canlı web sitesindeki statik sayfalar otomatik olarak güncellenir.
İçerik dağıtım ağları
Akılda tutulması gereken önemli bir şey, statik bu bağlamda etkileşimli olmayan basit web 1.0 sayfaları anlamına gelmez. Bu sayfalar, tarayıcıda yürütülen ve veritabanlarına, sunucu tarafı işlevlerine veya barındırılan sunucusuz işlevlere API çağrıları yapan gelişmiş JavaScript içerebilir. Ancak, bu yürütmenin hiçbiri web sunucusunda gerçekleşmediğinden, statik bir sitenin, bir veritabanıyla tamamlanmış, endüstriyel olarak güçlendirilmiş bir web barındırıcısına ihtiyacı yoktur. Birçok statik site, içerik dağıtım ağlarıveya içeriğin dünyanın her yerindeki birden çok sunucuda yansıtıldığı CDN’ler, böylece her yerde kullanıcılara hızlı bir şekilde teslim edilir.
Snipcart’ın pazarlama lideri Mathieu Dionne, statik web sitelerinin bu yeni dünyasının ilk günleri bir blog yazısında ve 2015 civarında, “Netlify kurucularının … ‘statik web’in olumsuz çağrışımını çözmek için ‘Jamstack’ terimini yeni bulduklarından bahseder.
Jamstack sürecini bu bölümde anlattık. Şimdi kısaca Netlify’ı ve Jamstack ekosistemindeki rolünü tartışalım.
Netlify ve Jamstack
Netlify bir bulut bilişim ve web barındırma şirketidir ve kurucu ortağı Mathias Biilmann, Jamstack terimini icat etti. Netlify’ın hizmetleri, Jamstack felsefesine dayalı siteler oluşturmak isteyen müşteriler için özel olarak hazırlanmıştır.
Netlify, statik web sitelerini engelleyen belirli bir sorunu çözdüğünü iddia ediyor. önbellek geçersiz kılma. Veritabanına dayalı dinamik web siteleri çok fazla sunucu kaynağı tüketebilir, ancak uğrayan herhangi bir ziyaretçiye web sitenizin en son sürümünü sunacaklarından emin olabilirsiniz. Jamstack web siteleri genellikle bir CDN’nin birden çok dağıtılmış sunucusunda barındırıldığından, güncellemeler daha az basittir. Her bir CDN sunucusunun sitenin önbelleğe alınmış sürümünün artık geçerli olmadığını anlaması birkaç dakikadan birkaç saate kadar sürebilir. Bu soruna geçici bir çözüm bulmak için Netlify’ın CDN’si şunları sağlar: anında önbellek geçersiz kılma HTML dosyaları için.
Netlify’ın Jamstack bayrağını kaldırmasından bu yana, şirket, Nike ve Peleton gibi büyük şirketler için bir içerik platformu sağlayarak teknolojiyi PaaS tekliflerinin bel kemiği olarak kullandı.
Gatsby ile Jamstack
Netlify, Jamstack alanındaki tek barındırma sağlayıcısı değildir ve terim üzerinde herhangi bir ticari marka veya mülkiyet kontrolüne sahip değildir. Çeşitli Jamstack barındırma ve dağıtım çözümleri mevcutturve büyük bulut sağlayıcılarının çoğu, dahil olmak üzere harekete geçiyor. Amazon Web Hizmetleri, Google Firebaseve Microsoft Azure. Aynı adı taşıyan statik site oluşturucunun yaratıcısı Gatsby, Inc. dahil olmak üzere diğer, daha uzmanlaşmış şirketler de bu alana girdi.
Gatsby (şirket), Gatsby site oluşturucusunun arkasına yüksek uçan hizmetler teklifi oluşturmuştur. Açık kaynak kökleri nedeniyle, Gatsby site oluşturucu diğer hizmet sağlayıcılar tarafından da sunulmaktadır. Netlify dahil.
Başsız CMS
Elbette, bir web sitesi kurmak ve barındırmak, bir web sitesini yönetmek zorunda kaldıysanız bildiğiniz gibi sadece başlangıçtır. Ayrıca yeni içerik oluşturmanın ve sitenize eklemenin bir yoluna ihtiyacınız var. Bunu yapan kişiler genellikle programcı olmadığından, kullanıcı dostu bir araca, yani bir içerik yönetim sistemi, veya CMS. WordPress gibi geleneksel CMS’ler, web sitesi içeriği girebileceğiniz, bu içeriğin depolandığı bir veritabanını yönetebileceğiniz ve tarayıcı isteklerine yanıt olarak bu içeriği sunan dinamik web sayfaları oluşturabileceğiniz bir arka uç kullanıcı arabirimi (UI) sunar.
Jamstack siteleri için CMS’ler farklı çalışır ve genellikle şu şekilde bilinir: başsız. Başsız bir CMS, içerik girmek ve yönetmek için bir kullanıcı arayüzü ve bir veritabanı veya onu depolamanın başka yollarını sunar, ancak kendisi bir tarayıcının ayrıştırması için HTML kodu oluşturmaz. Bunun yerine, web sitesinin statik HTML sayfaları, CMS’nin API’lerine çağrı yapmak için JavaScript’i kullanır ve CMS, içeriği JavaScript’in bir web sayfasına dönüştürebileceği bir biçimde döndürür.
Bu sistem, içeriği sunumdan tamamen ayırır; bu, elbette uzun süredir devam eden bir programlama idealidir. CMS’nin erişilebilir bir API’si olduğundan, birden fazla web sayfası onu kolayca kullanabilir. Örneğin, web sitenizin ayrı mobil, masaüstü ve akıllı saat sürümlerini oluşturduysanız, bu sürümlerin tümü CMS’de depolanan aynı içeriğe erişebilir.
Netlify, tahmin edebileceğiniz gibi, bu alanda NetlifyCMS adı verilen kendi teklifine sahiptir, ancak başka teklifler de mevcuttur; geliştirici Nebojsa Radakoviç onları kendi başsız CMS’lere giriş. Bu listede pek çok gelecek vaat eden kişi ve çok tanıdık bir isim var. WordPress’i geleneksel bir CMS örneği olarak kullanmamıza rağmen, bir Jamstack sitesine güç sağlamak için başsız bir CMS olarak da çalıştırılabilir.
Jamstack’i neden kullanmalısınız?
Jamstack’i kullanmanın birçok avantajına değindik, ancak şimdi tam bir resme sahip olduğunuza göre, bunları yeniden özetlemeye değer:
- Hız: Statik siteler daha hızlı yüklenir ve bu yalnızca bir kolaylık meselesi değildir. Google, arama sıralamalarını düşürerek yavaş siteleri cezalandırır ve hızlı yanıt vermeye alışmış müşteriler, adımların yavaş yüklenmesi durumunda genellikle e-ticaret işlemlerini terk eder.
- Geliştirici deneyimi: Geliştiriciler, endüstrinin uygulamalarını ve üretkenliğini dönüştüren devops tekniklerini kullanarak statik siteler oluşturabilir. Ve Jamstack felsefesi, endişeleri net bir şekilde ayıran site yığınları üretir ve geliştiricilerin kendi uzmanlık alanlarına odaklanmasına olanak tanır: ön uç tasarımcılar ve geliştiriciler, sunucu tarafında akıcı bir dil kullanmaya ihtiyaç duymadan siteler oluşturabilirken arka uç geliştiriciler odaklanabilir. API’ler üzerinde. İçerik soruları tamamen CMS alanında ele alınır.
- Esneklik: Statik siteler, geleneksel web sunucuları, CDN’ler, özel hizmetler veya üçünün bir kombinasyonu tarafından barındırılabilir. Ve başsız CMS’ler, API’ler aracılığıyla ön uçlarla etkileşime girdiğinden, aynı içeriği paylaşan birden çok platform için kolayca siteler oluşturabilirsiniz.
Jamstack ne zaman kullanılmamalıdır?
Tüm bu avantajlara rağmen, Jamstack’in herkes için olmadığı söylenmelidir. Jamstack’in geliştirici ihtiyaçlarına göre uyarlanmasının diğer yanı, Jamstack tabanlı bir site çalıştırmak istiyorsanız geliştiricilere istediğinizden daha fazla bağımlı olmanızdır. Bu, Jamstack için gerekli becerilere sahip özel bir web geliştirme ekibine sahip olan veya kiralamaya istekli olan şirketler için o kadar da kötü değil. Ancak birçok küçük mağaza, web sitelerini günlük geliştirici katılımına çok az ihtiyaç duyarak çalıştırmalarını sağlayan hazır ticari veya açık kaynaklı yazılımları kullanmaya alışkındır. Özellikle e-ticaret siteleri, geleneksel web barındırma çözümleri için yıllar içinde geliştirilen çok çeşitli eklentilere ve kitaplıklara güvenme eğilimindedir; Jamstack eşdeğerleri o kadar yaygın veya olgun değil, bu da Jamstack’in e-ticaret için her zaman iyi olmadığı anlamına geliyor.
Jamstack popüler mi?
Çevreleyen hype rağmen, Jamstack şu anda tüm web sitelerinin oldukça küçük bir şeridini destekliyor. Web Almanac, 2021’de statik site oluşturucular tarafından oluşturulan sitelerin (neredeyse tümü Jamstack felsefesi doğrultusunda inşa edilmiş olacaktı) oluşturduğunu tahmin ediyordu. tüm web sitelerinin sadece yüzde 1’i. Bununla birlikte, Jamstack, son üç yılda her yıl iki kattan fazla büyüyen pazar payıyla hızlı bir büyüme dönemindedir. Geliştiricilerin teknolojiye artan ilgisinin büyük bir işareti: Jamstack geliştiricilerinin yaklaşık üçte biri sahnede oldukça yeni. iki yıldan az deneyime sahip olmak.
Jamstack eğitimleri
Daha derine inmek mi istiyorsunuz? Bu Jamstack geliştirici eğitimlerine göz atın:
Burada özetlenen temel kavramlarda uzmanlaştıktan sonra, web siteleriniz için Jamstack ilkelerini ve teknolojilerini kullanmaya hazır olacaksınız. Mutlu öğrenme!
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3563829/jamstack-the-static-website-revolution-upending-web-development.html#tk.rss_all