← Radar

Konu: Web3 dk okuma

Astro 7: Derleyici Rust'a geçti, geliştirme sunucusu ajanları tanıyor

Bu neden önemli?

Astro, içerik ağırlıklı sitelerin en popüler araçlarından biri. Bu sürüm hem JavaScript araçlarının Rust'a taşınma eğilimini hem de araçların artık ajanlar için de tasarlandığını iyi gösteriyor.

Hız: Yavaş parçalar Rust’a taşındı

Syntax’ın 1018. bölümünde konuşulan haberlerden biri, 22 Haziran’da çıkan Astro 7’ydi. Astro, siteni önceden HTML sayfalarına çeviren bir web framework’ü. Bu çeviri iki adımda oluyor: Önce sayfalar ve içerik paketleniyor, sonra her sayfa için HTML üretiliyor. Astro 7 iki adımı da hızlandırıyor.

  • Yeni derleyici. .astro dosyalarını işleyen derleyici, eskiden Go ile yazılmıştı. Şimdi Rust ile baştan yazıldı. Altında JavaScript ayrıştırıcısı Oxc ve CSS için Lightning CSS kullanılıyor. Astro’ya göre derleyici tek başına derlemeyi yaklaşık yüzde 6 hızlandırıyor.
  • Markdown işleme. Asıl kazanç burada. Markdown ve MDX artık Astro ekibinden Erika’nın yazdığı Rust tabanlı Sätteri ile işleniyor. Astro’nun ve Cloudflare’in belge sitelerinde bu değişiklik derlemeden bir dakikadan fazla kısaltmış. Tablolar ve dipnotlar gibi eskiden eklenti gerektiren özellikler de içinde geliyor.
  • Vite 8 ve Rolldown. Vite’ın yeni Rust tabanlı bundler’ı Rolldown, esbuild ve Rollup’ın yerini aldı. Bu araçların arkasındaki ekibi VoidZero yazımızda anlattık.
  • Kuyrukla çizim. Sayfalar artık iç içe fonksiyon çağrılarıyla değil, tek bir döngü ve bir kuyrukla üretiliyor. Bu hem daha hızlı hem daha az bellek kullanıyor.

Toplamda Astro’nun testlerinde derleme süresi yüzde 15 ile 61 arasında kısalmış. En çok Markdown’ı bol siteler kazanıyor.

Dikkat: Derleyici artık senin yerine düzeltmiyor

Eski derleyici, hatalı HTML’i sessizce “düzeltiyordu”. Etiketlerin yerini değiştiriyor, kapanmamış etiketleri kendisi kapatıyordu. Bu da bazen anlaşılması zor hatalara yol açıyordu. Yeni derleyici kodunu olduğu gibi alıyor ve hatalı yazımda hata veriyor.

Bir değişiklik daha var: Öğeler arasındaki boşluklar artık JSX kurallarına göre işleniyor. Yani iki satır arasındaki satır sonu, satır içi öğeler arasında boşluk üretmiyor. Boşluk istiyorsan açıkça yazman gerekiyor. Yükseltmeden sonra metinlerinde kaybolan boşlukları kontrol et.

Ajanlar için: Kapanmayan sunucu sorunu

Kodlama ajanları bir komut çalıştırır, bitmesini bekler ve çıktıyı okur. Ama geliştirme sunucusu hiç bitmez. Astro ekibine göre ajanlar bu yüzden takılıyor, aynı sunucuyu iki kez başlatıyor ya da arkada açık süreçler bırakıyor.

Astro 7’nin çözümü:

  • astro dev --background, sunucuyu arka planda başlatıyor. Sunucu hazır olunca adresini ve süreç numarasını verip komutu bitiriyor.
  • Zaten çalışan bir sunucu varsa, yenisini açmak yerine mevcut olanın bilgisini dönüyor.
  • Astro bir ajanın içinde çalıştığını fark ederse bu modu kendisi açıyor.
  • Ajanlar için kayıtlar (log) JSON biçiminde çıkabiliyor. Bu, insanlar için de işe yarıyor. Kayıtlarını bir izleme servisine göndermek isteyenlerin en çok istediği özellik buydu.

Diğer yenilikler

  • Advanced Routing: src/fetch.ts dosyasıyla isteklerin hangi sırayla işleneceğini tamamen sen belirliyorsun. Örneğin kimlik kontrolünü her şeyden önce çalıştırabilirsin.
  • Route caching: Sunucuda üretilen sayfaları önbelleğe almak için tek bir API. Netlify, Vercel ve Cloudflare’in CDN’leri için deneysel destek de geldi.

Yükseltmek için npx @astrojs/upgrade komutu var.

Düşün

  • Kullandığın araçlardan hangisi ajanla çalışırken sana sorun çıkarıyor? Bunu araç mı çözmeli, ajan mı?
  • Bir aracın hatalı girdiyi sessizce düzeltmesi mi, yoksa hata vermesi mi daha iyi?
Kaynaklar (2, İngilizce)

Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.

Konu: Web3 dkVideo: Syntax

HTML artık sırasız akabiliyor: JavaScript'siz parça güncelleme

Chrome 150 ile HTML'e yeni bir yetenek geldi: Sayfaya önce bir yer tutucu koyup, o kısmın içeriğini hazır olunca sayfanın sonunda gönderebiliyorsun. Framework'lerin yıllardır JavaScript ile yaptığı 'sırasız akış' artık tarayıcının kendisinde.