JAMstack'in Gizemini Çözmek: Phil Hawskworth ile Bir Röportaj
Yayınlanan: 2022-03-10Bazılarınız JAMstack'i ve belki de WordPress'ten Hugo'ya nasıl geçileceğini duymuş olabilir, ancak JAMstack herhangi bir proje için uygun bir seçenek midir?
(Ajanslarda 9 yıl çalıştıktan sonra bağımsız bir ürün üzerinde çalışmaya geri döndü) şimdi web için oluşturmayı daha basit, daha hızlı ve daha fazlasını yapmak için JAMstack teknolojileri için stratejiler geliştirmeye odaklanan bir ön uç mühendisi Phil Hawksworth ile konuştum güvenli. Phil ayrıca 9-10 Temmuz'da Londra'da statik site oluşturucular, sunucusuz ve JAMstack'e adanmış bir konferans olan JAM_stack ldn'ye ortak ev sahipliği yapacak.
Vitaly: Merhaba ve Smashing Conf'taki konuşmacılarımızla ve genellikle iyi insanlarla yaptığımız sohbetlerden birine hoş geldiniz. FTP'nin büyük bir şey olduğu o zamanları hatırlayabilirsiniz ve belki de aslında FTP'nin neden tamamen güvenli bir alan olduğunu hala konuşlandırıyorsunuz, bu yüzden bu konuda endişelenmenize gerek yok. Ancak, artık FTP kullanmadığınız ve bunun yerine Git tabanlı iş akışlarına ve muhtemelen sürekli dağıtıma geçtiğiniz için değişiklikler yüksektir. Bütün bu süslü ıslıklar ve çanlar. Ve bugün, Netlify, Geliştirici ilişkileri [duyulmuyor 00:10:00]'da çalışan Phil Hawksworth'a hoş geldiniz demekten çok mutluyum. Merhaba Phil. Bugün nasılsın?
Phil: Harikayım, nasılsın Vitaly? Seni görmek güzel.
Vitaly: Aw, harikayım. Seni görmek her zaman zevktir. Netlify ve Jump Stack ve her şeyi yayınlayan bir güneş ışığı gibisiniz.
Phil: Deneyeceğim. Markalaşmadım bile, ne kaçırılmış bir fırsat.
Vitaly: Sorun değil, sorun değil. Ama bana söylemelisin, o mücevher mi, jen mi yoksa jeet mi, jem mi? Cem mi?
Phil: Reçel. Reçel. Her şey reçelle ilgili.
Vitaly: Hepsi reçel. Yani JAMstack. Geliştiriciler veya tasarımcılar için aslında bu terimi daha önce hiç duymadım. Belki ne olduğunu ve neden iyi olduğunu ve ilk etapta faydalarının neler olduğunu özetlemek isterseniz. Neden geleneksel, eski güzel yığınınızdan JAMstack'e geçmek isteyesiniz ki? Belki kısaca özetlersiniz.
Phil: Bakalım deneyebilir miyim, çünkü JAMstack, JAM'ın Javascript, API'ler ve maket anlamına geldiğini söylemek cazip geliyor. Ama bu kendi içinde pek bir şey açıklamaz, sadece ne anlama geldiğini bilmek. Gerçekten, JAMstack, bir kaynak sunucuya dayanmayan web sitelerini dağıtmanın ve sunmanın bir yolu ile ilgilidir, her zaman aktif bir sunucuya ulaşan isteklere güvenmezler.
Phil: Yani Linux, Apache, MySQL ve PHP olan LAMP yığını gibi yığınlara daha aşina olabilirsiniz, sitenize orada hizmet veren yığın türü buydu. JAMstack ile biraz farklılaşıyor, çünkü sunucudan uzaklaşıp tarayıcıya daha yakın bir seviyeye çıktık, bu yüzden mümkün olduğunca hızlı bir şekilde bir tarayıcıya girmeyi ve ardından tarayıcıdaki teknolojileri kullanmayı düşünüyor. geliştirin ve daha sonra büyütün. Yani JAMstack, siteleri önceden oluşturmak, tarayıcıya almak ve sonra belki geliştirmek, artırmak, tarayıcınızda Javascript çalıştırma deneyimi, belki API'lere istekte bulunmak ve bu tür şeylerle ilgilidir.
Phil: Demek ki model bu, bakımını yapman gereken bir sunucuya sahip olmaktan kurtulmaya çalışmak çünkü bir sunucuyu korumanın zor olduğunu biliyorum. Sizi bilmem ama bende birkaç yıllığına arkamı döndüğümde bu şekilde kaybolan bir sürü site var. PHP'yi yükseltmem gerekiyordu, bu da mavi ayda bir yaptığım Linux sürümünü yükseltmem gerektiği anlamına geliyordu. Bu nedenle sunucuların bakımı zordur, bu nedenle JAMstack'in fikri, siteleri statik varlıklar olarak sunmayı mümkün olduğunca basit hale getirmeye çalışmak ve ardından tarayıcıdaki tüm API'lerden ve yetersizliklerden en iyi şekilde yararlanarak büyütme yapmak ve daha fazla şey yapmaktır. onlar orada.
Vitaly: Doğru, mantıklı. Aslında, 2 yıl kadar önce JAMstack'e taşındık.
Phil: İki yıl mı?
Vitaly: Evet, bizim için epey bir yolculuktu. Ve elbette, yol boyunca birkaç ders aldık. Ama merak ediyorum, esasen her projenin bazı kısımlarını JAMstack'e veya benzerine taşımaktan veya taşımaktan bir şekilde fayda sağlayabileceğini söyleyebilir misiniz, sınırlamalarını nerede görüyorsunuz? Potansiyel olarak her geliştiricinin bir projede kullanabileceği bir şey mi yoksa belirli bir web sitesine veya bir grup projeye adanmış bir şey mi?
Phil: Evet, demek istediğim, oh evet, bunu her şey için kullanabilirsin demek cezbedici ama bence bunu herhangi bir teknoloji hakkında söylerken dikkatli olmalısın. Biliyorsun, gerçekten kullanım durumlarını seçmen ve iyi uyarlandığından emin olman gerekiyor. Bir JAMstack sitesi hakkında düşündüğünüzde ilk içgüdüyü söyleyebilirim ve belki de doğrudan bir CDN'den statik varlıklar olarak sunulan bir şey düşünebilirsiniz. Bunun yalnızca çok sık değişmeyen siteler için iyi olduğunu düşünebilirsiniz, bunlar alıntıdır, statiktir, değişmezler. Ama gerçekte, durum gerçekten böyle değil çünkü şu anda bir şeyleri dağıtmadaki sürtünmeyi azaltabilecek pek çok araç var.
Phil: Günde birçok kez veya isterseniz saatte birçok kez konuşlandırabilir ve aslında işleri daha önce olduğundan çok daha dinamik hissettirebilirsiniz. Bu yüzden bunlardan bazıları, uygun olmayacağını düşündüğünüz durumları kullanır; bunlar da aslında işin içine giriyor. Belki de zorlaştığı zaman, çok sayıda sayfası, yüz binlerce veya milyonlarca sayfası olan siteler oluşturduğumuz zamandır, çünkü sitenizi önceden oluşturabildiğinizde JAMstack modeli gerçekten çok anlamlıdır. bu nedenle statik bir site oluşturucu kullanıyor olabilirsiniz. Bunlar şu anda gerçekten moda; bunlar gerçekten çok popüler.
Phil: Ama elbette, bir güncellemeyi her dağıttıklarında bir parça iş yapmak zorundalar, bu yüzden belki bir gazete sitesi gibi milyonlarca sayfası olan bir siteniz varsa, onu yeniden oluşturmak için gereken iş oldukça olabilir, bilirsiniz, bu uzun zaman alabilir, bu yüzden JAMstack'in nerede olabileceğine dair bazı sınırlamalara çarpmaya başladığınızda, bir nevi, basitçe kullanılır. Biraz kurnaz olmaya başlayabilir ve bunun üzerinde çalışmaya başlayabilirsiniz, bilirsiniz, çok kurnazsanız ama kesinlikle bazı zorluklar getirir.
Phil: Örneğin Gatsby veya React Static ve ayrıca Hugo gibi çeşitli farklı statik site oluşturucularda görmeye başladığım şeylerden biri. Bu statik site oluşturucuların arkasındaki ekipler, sayfaların aşamalı olarak oluşturulmasını yapabileceğiniz yolları keşfetmeye başlıyor, başka bir deyişle, bir şey değiştiğinde tüm siteyi yeniden dağıtma veya sitenin tamamını yeniden oluşturma, ancak yeni yollar bulmaya çalışın. artımlı yapılar yapmak için. Bu üstesinden gelinmesi zor bir problem ama şu anda bu konuda çalışmalar yapılıyor, bu yüzden bu engeli de yıkmaya çalışmak yardımcı olacak. Ama kesinlikle şu anda, milyonlarca sayfası veya yüz binlerce sayfası olan bir web sitesi için JAMstack sitesini kullanmanın yollarını bulmak, şu anda bu noktada biraz zor olabilir.
Vitaly: Ah, bu ilginç. Yani aslında o zaman sahip olduğunuz devletin bir div'ine hizmet etme fikri ve esasen inşa etmeniz gereken her şey, yeni bir portal gibi, onun içine bir şekilde çağrılması gerekiyor, bu yüzden bunun olduğunu görmek ilginç. Çünkü siz de, yakın zamanda, sanırım iki hafta önce, Jason Pamental tarafından yazılan ve fikrin aslında çok benzer olduğu bir makale vardı, burada yazı tiplerini gerçekten yükleyeceksiniz ve sonra ihtiyacınız olan ilk sayfayı yükleyeceksiniz ve sonra siz ikinciyi yükleyin ve ardından artımlı yazı tipi yükleme gibi yeni bir yazı tipi oluşturacak şekilde bunları birleştirirsiniz.
Fil: İlginç.
Vitaly: Bunu keşfetmek gerçekten ilginç olurdu.
Phil: Evet, sadece yükleme değil, nesil-
Vitaly: Nesil, inşa.
Phil: Evet, aynen.
Vitalya: Anlıyorum. Ancak, çoğu geliştiricinin sahip olduğu ortak zorlukların neler olduğunu düşünüyorsunuz? Yani, önce geri dönmeme izin ver. Daha önce JAMstack üzerinde hiç çalışmadıysanız ve LAMP yığınınızdan çok memnun ve rahatsanız ve JAMstack'in güvenlik ve performansı gibi olanaklarını ve avantajlarını keşfetmek istediyseniz. Aslında nasıl başlarsın? Neyi hareket ettirirsiniz, iş akışı değişikliği ne anlama gelir?
Phil: Yani, iş akışındaki değişiklikler aslında oldukça derin olabilir çünkü normalde bağımlı olacağınız birçok altyapıyı ortadan kaldırıyorsunuz ve aslında bunu kaldırabileceğimizi söylüyorsunuz ve işleri doğrudan bir CDN'ye dağıtmaya başlıyorsunuz. Ancak birinin bunu denemeye nasıl başlayacağına gelince, muhtemelen bunun bazı yönlerini zaten kullanıyor olabilirler. Bilirsiniz, web için bir şeyler inşa etmenin bir tür geleneksel yollarında bile.
Phil: LAMP yığını üzerinde nasıl bir şey inşa edebileceğinizi düşünüyorsanız, muhtemelen PHP'nizde oradadır, bir veri kaynağından, bu durumda MySQL veritabanından veya bir tür veri kaynağından veri alan bir şablon yazmak gibi şeyler yapıyorsunuzdur. veritabanının, bu şeyleri görüntülemeye ve ardından hizmete sokmaya. Ve bu, statik site oluşturucuların çalışma şekline benzer. Şablonları var, dosyalarda bir tür yapılandırılmış veri olabilecek bir yerden veri alıyorlar veya bir tür veritabanına veya bir içerik API'sine isabet ediyor olabilir. Her iki durumda da, verileri alıyor, bu verileri şablonlarla birleştiriyor, görünümler oluşturuyor ve tek fark, bunu talep üzerine yapmıyor, önceden yapıyor. Dolayısıyla, bir geliştirici için bu tür bilişsel adımlardaki bazı mantıksal adımlar aslında o kadar büyük olmayabilir.
Phil: En büyük değişiklik, şeyleri nasıl dağıttığınızı düşünmektir. Çünkü gerçekten dağıttığınız şey, her dağıtım yapmak istediğinizde yerleşik, işlenmiş varlıklarınızdır. Bu, içeriğin yönetimi ve kodun yönetimi gibi şeyleri aynı yere getirmeye başlar, böylece vizyon gibi şeyler tüm bu şeyleri birlikte kontrol eder. Bu nedenle, siteleri ve içindeki içeriği nasıl geliştirip yönetebileceğiniz konusunda biraz farklı bir düşünce tarzı olmaya başlar. Yani orada birkaç değişiklik var. Ama güzel olan şu ki, birçok statik site oluşturucu denemeye başlamak için oldukça basit olabilir ve güzel olan şey, bunu yapmak için bir ton altyapıya ihtiyacınız yok. İşin güzel yanı, yerel makinenizde gerçekten bir şeyler oluşturmaya başlayabilmenizdir. Doğrudan makinenizde statik bir site oluşturucu çalıştırıyorsunuz ve birçok başka altyapıya yaslanmanıza gerek kalmadan sonucun ne olacağına dair gerçekten iyi bir fikir edinebilirsiniz.
Phil: Yani bu tür bir ilk adım, rampa, "pekala, bu özel araç setini deneyeceğim" demeye başlamanız için oldukça sığ olabilir. Onları yerel olarak çalıştırabilirim. ” Ve bunun çıktısını bir yere dağıttığınızda, bunun yerel olarak olduğu gibi dağıttığınız yerde tamamen aynı olacağına dair güveniniz olacak. İşleri statik hale getirmeyi sevdiğim şeylerden biri de bu, çünkü onlara hizmet etmek için çok sayıda altyapıya ve hareketli parçaya bağımlı değilsiniz. Kendi makinenizdeki statik sunucuda bunlara bakıp “evet, bir CDN'ye gittiğinde böyle çalışacak” diye düşünebilirsiniz.
Vitaly: Mm-hmm (olumlu);Ayrıca altyapıya baktığımızda, örneğin, single'ı oluşturma şeklimize [duyulmuyor 00:10:07] ve yapabileceğiniz çok sayıda seçenek var. Sunucu, istemci ve aradaki her şey için.
Fil: Evet.
Vitaly: Ve bence, bizim durumumuzda, çünkü biz bir tür iskelet oluşturuyoruz ve CDI üzerinden içerikle ve her şeyle hizmet veriyor ve Javascript ile gelişiyor. Aslında oldukça makul ve oldukça kolay diyemem ama bu tür bir düzene geçmek mantıklıydı. Çünkü sonunda, sayfada kalan sadece içeriktir. Sadece birkaç yorum alanı, arama kutusu ve birkaç başka şey içeren HTML'dir. Ama gerçekten bağımsız bir uygulamaya, hatta belki finansal uygulamaya, çevrimiçi bankacılığa, bu tür şeylere doğru ilerliyorsanız. Çok fazla mantık gerektiren bir şey yaşıyorsanız, yine de JAMstack'in orada düşünmek için iyi bir seçenek olacağını düşünüyor musunuz? Bir sunucuya ihtiyacı var mı, yok mu?
Phil: Pekala, "duruma göre değişir" şeklindeki eski ifadeyi kullanmaktan nefret ediyorum. Ama biraz da buna bağlı. Bununla birlikte, bir Javascript uygulaması olmanın yanı sıra aslında bir hizmet tarafı bileşenine sahip olan birçok uygulama var. Bunu belirli bir dikkatle söylüyorum çünkü web geliştirme söz konusu olduğunda biraz eski kafalıyım ve tarayıcıya mümkün olduğunca HTML olarak bir şeyler sokmayı ve ardından aşamalı olarak geliştirdiğiniz yerden gerçekten yüksek bir filigrana sahip olmayı gerçekten seviyorum. itibaren. Bu yüzden kişisel olarak her şeyi Javascript'te yapmayı ve sadece boş bir gövde etiketi göndermeyi ve ardından her şeyi Javascript aracılığıyla çalıştırmayı sevmiyorum.
Phil: Bununla birlikte, bazen bunun tamamen kabul edilebilir olduğu yerler vardır. Tabii ki büyük ölçüde Javascript'e bağlı olacak belirli bir uygulama türü düşünüyorsanız ve hedef kitlenizi tanıyorsunuz. Bu tamamen makul olabilir. Son zamanlarda gönderilen şeyler var. Aslında, Google IO'ya gönderilen bir şey düşünüyorum, örneğin, krom ekibi, Javascript'in çok yoğun olduğu ve statik olarak güzel bir şekilde çalışan bir oyunu bir araya getirdi. Bunun işe yarayabileceği birçok kullanım durumu vardır.
Phil: Mali örneğinize geri dönersek, eskiden çalışıyordum, aslında ilk işim, tüccarların web teknolojilerini kullanarak takas etmeleri için ekranlara sayılar koymaktı ve bu web soketlerinden önceydi, Ajax'tan önceydi, gerçekten her şeyden önceydi bu, bunu yapmanıza yardımcı olmak için faydalı oldu ve biraz zorlayıcı ama daha yakın zamanlarda, Javascript'te bu tür birçok şeyi yapardınız ve bu çok mantıklı. Doğrudan tarayıcıdan API'lere güvenli isteklerde bulunmaya başlayabilirsiniz. Artık doğrudan tarayıcınızdan kimlik doğrulama ve yetkilendirme yapmak için birçok model var. Bu, birçok yönden, bu şeylerden bazılarını oluşturmak isteyen finans kurumları için yığını basitleştirebilir, çünkü bunlardan bazılarını ayrıştırabilmeleri, onları çok daha yönetilebilir hale getirebilir. Bu yüzden kesinlikle JAMstack modelinin bu senaryoda da mükemmel şekilde çalışabileceğini düşünürdüm.
Vitaly: Tamam, belki şimdi JAMstack ve ön uç dünyasını keşfetmek için geri geliyoruz. Bugünlerde seni en çok heyecanlandıran şey ne Phil? JAMstack'e ve genel olarak ön uca bakarsanız, sabahları evet, bir gün bunun üzerinde çalışacağım umuduyla uyandığınız gece sizi gerçekten uyanık tutan bir şey mi? Bir gün bunu başaracağım. [Karışma 00:13:33] var mı?
Phil: Evet ve bu, yanıtınızın günden güne değişebileceği türden bir şey çünkü bu dünya çok hızlı hareket ediyormuş gibi geliyor. Ve bu başlı başına beni çok heyecanlandıran şeylerden biri. Artık tarayıcı API'lerinin gerçekten ilerlemeye başladığını ve bunları kendimiz uygulamak zorunda kalmadan doğrudan tarayıcıda yapabileceğimiz şeyleri görmeye başladık. Bu benim için biraz heyecan verici. SVG'ler söz konusu olduğunda hala bir dufferim. Duffer kelimesini açıklamalıyım, İngilizce bilmeyen ve bunu izleyen varsa aptal demektir. Bu, eğrinin çok gerisinde olduğum anlamına geliyor.
Phil: Ama kendimi gerçekten SVG'lerle daha fazlasını yapmak isterken buluyorum ve animasyonlar çok geride kaldığım şeyler ve bununla oynamak istiyorum. Ancak tarayıcı API'leri gibi şeyler, ister çevrimdışı ister performansı artırmak için olsun ve özellikle şu anda yazı tipi yüklemenin giderek daha erişilebilir hale geldiği, böylece görsel olarak çok zengin ve daha yakın şeyler yaratmaya başlayabilmemiz için. tipografi ile yapmak isteyebileceğimiz şeyler. Bu şeyler için biraz ineğim, bu tür şeyleri severim, bu yüzden bununla daha fazla oynamak istiyorum.
Vitaly: Phil, Londra'daki JAMstack conf hakkında konuşuyor. Bunun ne hakkında olacağını, odak noktasının ne olduğunu ve kimin için olduğunu ve oradaki rolünüz nedir gibi birkaç kelimeyle de açıklayabilir misiniz? Perde arkasında, içerikle ve her şeyle ilgilenmek. Oradaki rolünüz nedir?
Phil: Yani işin eğlenceli kısmını yaşadım. Bu yüzden dışarı çıkıp konuşmacılar bulma ve ilginç içerikler bulma fırsatım oldu, bu yüzden programların nasıl bir araya geldiği konusunda gerçekten heyecanlıyım. Ön uç geliştiricileri güçlendirmek ve bu JAMstack modeline dayalı olarak ön uç teknolojileriyle ne kadar yapabileceğimiz hakkında konuşacak Chris Coia gibi insanlarımız var. Google Chrome ekibinden Jake Archibald ve Surma gibi, ön uçtaki performans gibi şeyler ve statik barındırma veya altyapı veya doğrudan çalışan kod ile çok yüksek performans deneyimlerini gerçekten sürdürebilmemizin yolları hakkında konuşacak olan kişiler var. tarayıcı.
Phil: Ayrıca Yuna Kravitz'e CSS ve Houdini ile ilgili şeyler ve bu tür şeyler hakkında konuşmasını sağlayacağız. Ve çok daha fazlası. Ayrıca bir JAMstack modelinin organizasyonunuzda ve projelerinizde yapabileceği kültürel değişimle ilgili şeylerden de bahsedeceğiz, böylece gerçekten her yere ulaşır. Bu yüzden biraz heyecanlıyım. Ayrıca tüm bu insanları tanıtma şansına da sahip olacağım çünkü onlar benim çılgın olmama ve aynı zamanda MC olmama izin verdiler, bu da bu insanlarla konuşabileceğim ve birkaç soru ve bu tür şeyler sorabileceğim anlamına geliyor. Bu yüzden, ön uç geliştirme ve web üzerinde projeleri gerçekten verimli bir şekilde sunmanın yeni modelleriyle ilgilenen herkes için çok ilginç olması gerektiğini düşünüyorum.
Vitaly: Oh, demek sahnede ilgi odağı olmayı seviyorsun, ha?
Phil: Ben ilgi arayan biriyim. Bunu şimdiye kadar bilmelisin, Vitaly.
Vitaly: Oh, aslında senin her zaman çok alçakgönüllü, iyi ve kibar biri olduğunu düşünmüştüm, görünüşe göre ben-
Phil: Bu bir oyun, bu bir oyun.
Vitaly: Tamam, sorun değil. Phil, birkaç gün sonra buluşacağız, aslında, yarın.
Phil: Yakında başka bir etkinlikte görüşürüz ama aksi halde dokuzuncu ve onuncu Temmuz'da görüşürüz.
Vitaly: [duyulmuyor 00:16:52] Bunu akılda tutarak, Phil'e teşekkürler ve imzayı at. Herkese güle güle.
Phil: Yakında görüşürüz.
Bu Bir Sargı!
Phil'i JAMstack'te canlı bir oturumla SmashingConf Toronto 2019'da ağırlamayı dört gözle bekliyoruz. Sizi de orada görmek isteriz!
Bu röportaj dizisini yararlı bulursanız ve kimlerle röportaj yapmamızı istediğinizi veya hangi konuları ele almamızı istediğinizi lütfen bize bildirin, hemen başlayalım!