Gatsby JS binlerce kişinin omuzlarında duruyor

Yıllar önce Linux'un kurucusu Linus Torvalds, Linux ile yaptığı açık kaynak çalışmalarını tartışırken, Sir Isaac Newton'un "devlerin omuzlarında duran" cümlesini ödünç almıştı. 1991'de Linux'a uygulanmış olabilecek - "Hey, sadece birkaç kişinin harika çalışması sayesinde harika işler başardım" - güzel bir duygu olsa da, açık kaynağı tanımlamak için iyi bir iş yapmıyor Bugün birisi açık kaynak kodunu yayınladığında, sonuçta, küçük bir dahi geliştiriciden çok daha fazlasını kullanıyorlar.

Hayır, Gatsby.js'nin en son sürümünün gösterdiği gibi, modern açık kaynaklı projeler binlerce başka projeye bağlıdır . Veya Gatsby'nin kurucusu Kyle Mathews'un bir röportajda söylediği gibi, "Binlerce [sıradan] insanın omuzlarında duruyoruz."

1000 kat daha hızlı derlemeler? Evet lütfen!

Başlangıçta (web'in) statik site oluşturucu vardı. Mathews'un gönderisinde tanımladığı gibi, zamanla kuruluşlar, giderek artan dinamik özellikleri desteklemek için veritabanı odaklı web sitelerine yöneldi. Web siteleri büyüdükçe, statik site oluşturma, WordPress gibi veritabanına dayalı araçlar Markdown'da kodlamayı rahatsız etmek istemeyen pazarlama çalışanlarının lehine gelişse bile, yavaş oluşturma hızlarına neden oldu. Ön işleme, site üreticilerine yardımcı oldu, ancak onları büyük siteler için tercih edilen seçenek haline getirmeye yetmedi.

Ama o zamandı; bu şimdi.

2020'nin başlarında Gatsby, dağıtılmış bilgi işlem ve sofistike önbelleğe alma özelliklerinin akıllıca bir kombinasyonu aracılığıyla derleme sürelerini standart sürekli dağıtım çözümlerinden 60 kat daha hızlı hale getiren Gatsby Builds'ı piyasaya sürdü. Güzel. Ancak, Artımlı Derlemelerin son sürümüyle birlikte Gatsby, veri düzenlemeleri için 10 saniyenin altında derlemeler alıyor ve bu, mevcut derleme çözümlerine göre 1000 kat iyileştirmeyi temsil edebilir.

Nasıl? Mathews bir röportajda "Yaptığımız en büyük şey, derlemeler arasında neyin güncellenmesi gerektiğini ucuza bulmamızı sağlayan bir bağımlılık izleme sistemi oluşturdu" dedi. Bu, Bazel gibi derleme araçları veya Apache Spark ve Apache Flink gibi veri işleme araçları tarafından benimsenen yaklaşım gibi görünüyorsa, nedeni budur. "Gatsby, verilerden / koddan web sitesi değişikliği olaylarını diğer akış işlemcileri gibi ele alıyor; nelerin değiştiğini anlıyor ve ucuza güncelliyoruz." Geleneksel statik site oluşturucular uzun süredir verilere toplu işleme yaklaşımına sahipti, ancak Gatsby'nin yeni yaklaşımı gerçek zamanlı akış işlemedir.

Gatsby yaklaşımını web'in küçük bir kısmı yerine herhangi bir web sitesi tarafından kullanılabilir hale getirmek büyük bir mesele. Ayrıca, Gatsby'nin sayfalar ve veri kaynakları arasındaki veri bağımlılıklarını izlemesine olanak tanıyan GraphQL gibi şaşırtıcı açık kaynak teknolojisine de bağlıdır, böylece bir parça veri değiştiğinde, hangi sayfaların güncellenmesi gerektiğini hesaplayabilirler.

Bu yüzden Mathews'a Gatsby'nin diğer açık kaynaklara ne kadar bağımlı olduğunu sordum….

React, GraphQL, Webpack, Babel'in omuzlarında durmak ...

Matthews, "Bir çok harika projeye büyük ölçüde bağımlıyız" dedi. Ve sonra devam etti:

İfade belki de güncellenebilir ki, devlerin omuzlarında durmak yerine, binlerce insanın omuzlarında duruyoruz. Açık kaynakla ilgili harika şeylerden biri - sadece dahiler için değil! Sıradan insanlar, kritik ihtiyaçları hala çözen ısırık büyüklüğünde paketler oluşturabilir ve / veya sürdürmeye yardımcı olabilir.

Bu "sıradan insanlardan" bazıları Gatsby'nin dayandığı olağanüstü kodlar oluşturdu. Gatsby'nin React'e dayandığı düşünüldüğünde, açıkça hemen akla React geliyor. Ama dahası var. Daha fazla. Gatsby ayrıca JavaScript, CSS ve konuşlandırılacak diğer varlıkların işlenmesi ve hazırlanmasıyla ilgili ağır işleri yapmak için Webpack ve Babel'e güveniyor. Mathews, bu projelerin "binlerce mühendisin yıllarca yaptığı harika çalışmalarla olağanüstü" olduğunu belirtti.

Aslında, Babel NPM paketi sayfasını kontrol ederseniz, 136 bağımlılık bulacaksınız, ancak bu, Gatsby'nin bağımlılıklarının bağımlılıklarından bahsetmek yerine, diğer Gatsby sürümlerinin tüm bağımlılıklarını atlar. Sonuç olarak, Mathews şunları söyledi: "Tipik bir Gatsby projesi, tüm dünyada on binlerce mühendis tarafından sürdürülen binlerce paketi kullanabilir ve bu şaşırtıcıdır."

"[Gatsby] 'nin nispeten küçük bir ekip olarak bu kadar hızlı hareket etmesine ve pek çok şeyi yapmasına yardımcı olan" açık kaynağa olan bu bağımlılıktır. " "[Gatsby] için gereken hemen hemen her şeye sahip olan inanılmaz derecede geniş ve derin Node.js ekosistemi," diye bitirdi. Yalnız da değil. Bir dahaki sefere Linux'u kullandığınızda, Kubernetes'e katkıda bulunduğunuzda veya başka bir şekilde açık kaynaklı yazılımla etkileşim kurduğunuzda, bugünün dünyasında hepimizin olağanüstü şeyler yapan milyonlarca "sıradan geliştiriciye" umutsuzca (ve umarız!) Bağımlı olduğumuzu unutmayın.