- Ruby ekosistemi için “düşük soyutlama, düşük tören (low-ceremony)” odaklı basit ve güçlü bir web çerçevesi; kontrolör ve REST kaynağı kavramı olmadan sayfa, form ve tek eylem odaklı bir yapı sunar
- Sunucu render'lı HTML, doğrudan yazılan JS/CSS, OpenTelemetry entegrasyonu, Sequel·OptionParser gibi modern Ruby araçları dahili olarak gelir; kurulum ve geliştirme dakikalar içinde yapılabilir
- Sınıf tabanlı yapı, gerçek tip temelli oturum, form ve parametre yönetimi ile dinamik metot/hash kullanımını en aza indirerek net kod ve otomatik dokümantasyon hedefler
- Modern web platformunun aktif kullanımı: sunucu-istemci doğrulamanın bütünleştiği form UX, BrutJS(Web Components), esbuild ile CSS paketleme ve hashleme, güvenlik politikaları ve DB tasarımındaki temel yapıların güçlendirilmesi
- YAML'in minimuma indirilmesi, Ruby/Hash tabanlı ayarlar ve net adlandırma/rol ayrımıyla, gereksiz soyutlama veya desen dayatmadan Ruby ile tarayıcı teknolojilerini eğlenceli şekilde kullanmayı hedefler
Brut çerçevesinin ana özellikleri
Tamamen yeni bir yapı – kontrolör olmadan sayfa odaklı
- Kontrolör, REST kaynağı ve route action yerine sınıf tabanlı sayfa, form, tek eylem işleyicileri ile oluşturulur
- HTML doğrudan sunucuda üretilir, JS/CSS istediğiniz gibi yazılabilir
- Örnek: Zaman gösterimi sayfası doğrudan
TimePage < AppPage ile tanımlanır
Modern web platformunun aktif kullanımı
- Sunucu ve istemci doğrulamasını bütünleştiren form UX
- BrutJS(Web Components) ile HTML'in kademeli genişlemesi desteklenir
- esbuild ile CSS paketleme ve hashleme; PostCSS veya SASS olmadan sade bir şekilde yapılır
Geliştirme verimliliği ve temel yetenekler dahili
- OpenTelemetry tabanlı enstrümantasyon, Sequel tabanlı veri erişimi, OptionParser tabanlı komut satırı otomasyonu
- Temel güvenlik politikaları, DB kolon/foreign key varsayılanları ve indeksler, her zaman timezone-aware zamanlar, kolay lokalleştirme (Localization)
- RSpec testleri, Faker/FactoryBot ile veri üretimi, Phlex ile HTML üretimi
YAML dışlama, net ayar yapısı
- I18n, Ruby Hash tabanlıdır; dinamik ayarlar dotenv ile yönetilir (YAML neredeyse hiç kullanılmaz)
- docker-compose yalnızca istisna olarak YAML kullanır
Gereksiz soyutlama veya desen zorunluluğu yok
- Açık adlandırma ve rol ayrımı (ör.
WidgetsPage, /widgets adresine gider)
- Veri katmanı (DB::Widget) ile alan katmanı (Widget) tamamen ayrılabilir
- Kontrolör kavramı yok, iş mantığını istediğiniz şekilde uygulayabilirsiniz
- Karmaşık fonksiyonel desenler, monadlar, Proc vb. zorunlu kılınmaz
Geliştirme deneyimi ve esneklik
- RSpec gibi modern Ruby ekosistemi araçları temel olarak dahildir
- Phlex(HTML), Faker/FactoryBot, Sequel, OpenTelemetry gibi ana kütüphaneler aktif şekilde kullanılır
- Tekrarlayan boilerplate/ayar/karar süreçlerinden kurtulup, Ruby ve tarayıcı teknolojilerinin “zevkine” odaklanır
Neden Brut?
- Rails gibi mevcut çerçevelerin tekrarlayan kurulumları, sürekli tasarım/ yapı tartışmaları ve gereksiz esneklik yerine kodun kendi keyfini hedefler
- Hızlı bir şekilde inşa edilebilen, Ruby tabanlı bir web uygulaması çerçevesi olarak geliştirmeyi ve dağıtımı eğlenceli hale getirmek üzere verimlilik ve açıklıka odaklanır
Başlangıç ve gelecek yol haritası
- Brut resmi Docker imajı, komut bazlı hızlı uygulama oluşturma ve çalıştırma desteği
- ADRs.cloud gibi gerçek dünya örnek uygulamalar sunar
- 1.0 sürümü ve resmi yol haritasının güncellemeleri düzenli olarak planlanıyor
Henüz yorum yok.