Gleam ile Tam Yığın Görev Yöneticisi Geliştirmek: Bir Dil, Her Platform

Gleam ile Tam Yığın Görev Yöneticisi Geliştirmek: Bir Dil, Her Platform

May 01, 2026 gleam full-stack development type safety web architecture backend development frontend development cross-platform apps erlang lustre tauri

Gleam ile Tam Stack Görev Yöneticisi: Tek Dil, Her Platform

Yazılımcılar onlarca yıldır "bir kez yaz, her yerde çalıştır" hayalini görüyor. Java applet'lerden Electron'a, React Native'den Flutter'a birçok teknoloji bu vaadi verdi. Peki ya çözüm framework'lerle ilgili değilse? Ya sorun başından itibaren doğru dili seçmek olsaydı?

Gleam tam da burada devreye giriyor: Erlang'e (arka uç için) ve JavaScript'e (ön uç için) derlenebilen ve gerçek anlamda birleşik tam stack geliştirme sağlayan statik türe sahip bir dil. Bu yazıda pratik uygulamasını görelim. Gerçek dünyadan bir örnek—görev yönetim uygulaması—üzerinden bu yaklaşımın tüm gücünü keşfedeceğiz.

Vizyon: Tek Kod Tabanı, Çok Platform

Burada neyin söz konusu olduğunu açık yapalım. Çoğu framework "bir kez yaz, her yerde çalıştır" dediğinde belirli bir dağıtım şeklinden bahsediyor. Gleam daha ileri gidiyor—tam olarak aynı kaynak kodu farklı ortamlara derliyor.

Yazdığımız uygulama—adını Doable koyalım—kasıtlı olarak basit tutulmuş. Temel işleri yapıyor: görev ekleme, listeleme, güncelleme ve silme. Ama bu basitlik aldatıcı. Sade CRUD arayüzünün arkasında karmaşık bir yapı gizli:

  • Erlang üzerinde çalışan JSON HTTP API, PostgreSQL ile veri saklama
  • Tarayıcıda çalışan ön uç, reaktif durum yönetimi
  • Windows, macOS ve Linux için masaüstü uygulamaları, Tauri sayesinde
  • iOS ve Android mobil uygulamaları, yine Tauri üzerinden

Hepsi. Aynı dil. Aynı tür sistemi. Aynı doğrulama mantığı.

Mimari: Geliştirme ve Üretim Farklı Şeyler

Geliştiriciler Nasıl Çalışır

Geliştirirken hızlı geri bildirime ihtiyacın var. Demek ki veritabanın Docker'da, geliştirme sunucun sıcak yeniden yükleme yapabiliyor ve tüm ön uçlarda test edebiliyor olman lazım.

Bu yapı gayet zarif bir çözüm sunuyor:

  • PostgreSQL Docker'da geliştirme ve test için ayrı veritabanlarıyla çalışıyor
  • Gleam API sunucun Docker'da veya aktif geliştirme için yerel olarak koşabilir
  • Tek bir Lustre dev sunucusu, tarayıcı, masaüstü ve mobil istemcilerinde sıcak yeniden yüklemeyi yönetiyor
  • API proxy'si CORS problemlerini ortadan kaldırıyor—her şey tek bir giriş noktasından akıyor
  • Entegrasyon testleri doğrudan router'a karşı özel bir test veritabanıyla çalışıyor

Bunun neden önemli olduğu açık: geliştirici hızı gerçek bir şey. Değişiklikler arasında 30 saniye beklemek ölümcül bir yavaşlama.

Üretim Basit Çalışır

Gönderdiğinde karmaşıklık ortadan kaybolur. Her şey Docker'da paketlenir. Caddy tek giriş noktası olur, Gleam API sunucusuna ve ön uç dosya sunucusuna reverse proxy yapar.

Güzel kısım şu: tarayıcı istemcilerin ön uçu Caddy'nin dosya sunucusu üzerinden istiyor, API çağrılarını aynı proxy üzerinden gönderiyor. Tauri'ye paketlenmiş masaüstü ve mobil uygulamalarında? Aynı derlenmiş ön ucu lokal olarak içeriyor ama API uç noktasına ulaşmak için Tauri'nin HTTP eklentisini kullanıyor. Aynı uygulama, her platform için optimize edilmiş dağıtım.

Teknik Yığın Detaylı

Arka Uç: Erlang'in Kanıtlanmış Güvenilirliği

API sunucun Erlang'e Wisp ve Mist kütüphaneleriyle derlenebiliyor. Sadece bir web framework almıyorsun—onlarca yıllık telekomünikasyon altyapı mühendisliğini kalıtım olarak alıyorsun. Erlang çalışma zamanı, eş zamanlılık, hata toleransı ve dağıtımı çoğu modern dilin henüz öğrenmeye çalıştığı şekilde yönetiyor.

PostgreSQL, Erlang geliştiricilerinin 1990'lardan beri güvendiği geleneksel ilişkisel veri saklama sağlıyor.

Ortak Kod: Gerçek Kazanç

Gleam'in mimarisinin dehasını burada görüyorsun: shared projesi adında çok hedefli bir Gleam kütüphanesi tutuyorsun—hem Erlang'e hem JavaScript'e derlenebilen. Tür tanımları, doğrulama mantığı, seri hale getirme—hepsi paylaşılıyor. Bir görev yapısını güncellediğinde değişiklik otomatik her platforma yayılıyor.

Ön uç ve arka uç arasında tür uyumsuzluğu yok. "Benim makinamda çalışıyor" doğrulama sürprizleri yok. Derleyici, çalışma zamanı hataları haline gelmeden mimari tutarsızlıkları yakalar.

Ön Uç: Elm Mimarisi Desenleri

Web ön ucun Lustre kullanıyor, Elm Mimarisi uygulayan—karmaşık UI durumunu yönetmek için kanıtlanmış bir desen. Elm uygulaması yapmışsan, tanıdık gelecek. Yapmamışsan öğrenmeye değer: bu mimari yaklaşım öngörülebilir, test edilebilir ön uç kodu için standart haline geldi.

Masaüstü ve mobil sürümleri aynı desenleri takip ediyor, sadece farklı dağıtım hedeflerinde çalışıyor.

Neden Sonraki Proje İçin Önemli

Tam stack tür güvenliği uygulamalar büyüdükçe giderek daha alakalı hale geliyor. Asıl fark şu:

Yeniden düzenleme korkusuz olur. Veritabanı şemanızda bir alan adını değiştir, paylaşılan tipleri güncelle ve derleyici kodundaki 47 yerden tam olarak hangisine dikkat etmen gerektiğini söyler. Gizemli işler kalmaz.

Çapraz platform tutarlılığı bedava gelir. Aynı doğrulama mantığını TypeScript, Swift ve Kotlin arasında tercüme etmiyorsun. Gleam'de bir kez yaz, üç hedef için derle.

Takım içi yeni üyeler daha hızlı başlar. Bir dil ve bir tür sistemi öğrenmek, üç farklı ekosistemi karıştırıp karmaşa yaşamaktan çok daha hızlı.

İşletme basitliği katlanarak artar. Daha az dil, daha az bağımlılık ağacı, daha az dağıtım stratejisi, daha az çalışma zamanı sürprizi demek.

Pratik Gerçeklik

Gleam tüm web geliştirmesinin geleceği mi? Muhtemelen değil. Topluluk ve ekosistem önemli. Gleam, TypeScript veya Python'dan daha küçük ve işe alım ile kütüphane bulunabilirliği açısından gerçek bir değerlendirme noktası.

Ama tür güvenliği ve birleşik kodun önemli olduğu yeni tam stack uygulamalar inşa eden takımlar? Bu yaklaşım hataların bütün bir kategorisini olaylara dönüşmeden ortadan kaldırıyor.

Görev yönetimi örneği kasıtlı olarak basit—tam amacı bu. Mimarinin küçük ölçekte çalıştığını kanıtlıyor. Gerçek uygulamalar karmaşıklık ekler ama temel felsefe aynı kalır: bir kez derle, her yerde doğrula, birçok yere dağıt.

Başlamak

Seni ilgilendirdiyse öğrenme eğrisi gerçek ama yönetilebilir. Gleam sözdizimi, muhtemelen bildiğin dillerden (JavaScript, Python, Rust) alıyor. Tür sistemi güçlü ama ilk günden uzmanlaşma talep etmiyor.

Erlang arka ucuyla başla. API'ni inşa et. Sonra Lustre'yi ön uça katla ve paylaşılan türlerin hata kategorilerini nasıl ortadan kaldırdığını gözle. Birleşik tam stack geliştirmenin ne hissettiğini deneyimledikten sonra, eski parça-çevir yaklaşımlarına dönmek... eski moda geliyor.

Tam stack geliştirmenin geleceği farklı katmanlar için farklı araçlar seçmekle değil, ihtiyacın her katmanını hedefleyebilen doğru dili seçmekle ilgili olabilir.


Tam stack Gleam geliştirmeyi keşfetmeye hazır mısın? Gleam dokümantasyonuyla başla ve sonraki projenin bu yaklaşımdan nasıl faydalanabileceğini düşün.

Read in other languages:

RU BG EL CS UZ SV FI RO PT PL NB NL HU IT FR ES DE DA ZH-HANS EN