Uzun yıllardır Laravel ile çalışıyorum. Laravel, birçok Node.js ekosisteminin sunmadığı bir şey sağlıyor: yapı, netlik ve hızlı geliştirme.
Her Node.js’e geçişimde, aynı şeyleri yeniden inşa ettiğimi hissettim:
routing yapısı
middleware akışı
validasyon
auth kalıpları
proje organizasyonu
Her şey… parçalıydı.
Bu nedenle, kendi çözümümü geliştirmeye karar verdim.
Problem
Node.js güçlüdür, fakat:
çok fazla seçim
belirgin bir “standart” mimari yok
çok sayıda boilerplate
her proje farklı görünüyor
Bunu Laravel ile karşılaştırdığınızda:
tutarlı yapı
her şey dahil
temiz geliştirici deneyimi
İşte tam da bu yapıyı Node.js’te istedim.
İdeam
Laravel gibi hissettiren… ama Node.js üzerinde çalışan bir çerçeve inşa etmek.
Ve böylece Netpress başladı.
Üzerinde Durduğum Noktalar
“Sadece bir başka çerçeve” inşa etmek yerine, şu noktalara odaklandım:
- Öngörülebilir Yapı
Her proje belirli bir deseni takip eder:
Controllers
Middleware
Services
Models
Kaos yok. Tahmin yok.
- Temiz Routing
Gruplama, middleware, prefixler… Laravel gibi:
router.group(authMiddleware, (router) => {
router.get('/me', meHandler);
});
- Middleware Pipeline
Basit ve güçlü bir istek akışı:
auth
rate limiting
logging
- Rendering Desteği
Şu araçları kullanabilirsiniz:
Vue
React
Sunucu yönlendirmeli veya karma uygulamalar, aşırı karmaşaya neden olmadan.
- Geliştirici Deneyimi
Kendi hızlı hareket etmenizi sağlayan komutlar, yapı ve kurallar:
app oluştur
render ayarlama
migration çalıştırma
veri ekleme
Neden Sadece Express Kullanmayalım?
Kullanabiliyorsunuz.
Fakat o zaman şunları yeniden inşa etmek zorunda kalacaksınız:
yapı
kurallar
kalıplar
mimari kararlar
Tekrar… ve tekrar.
Netpress, o sürtünmeyi azaltmaya çalışıyor.
Gerçek Bir Örnek
Her şeyi manuel olarak bağlamak yerine:
app.use(authMiddleware);
app.get('/me', handler);
Şu yapısal akışı elde edersiniz:
router.group(authMiddleware, (router) => {
router.get('/me', meHandler);
});
Ne Öğrendim
Bunu inşa etmek bana şunu öğretti:
geliştiricilerin sadece araçlara değil, öngörülebilir bir yapıya ihtiyaçları var
tutarlılık, çoğu gerçek dünya uygulamasında esneklikten daha önemlidir
iyi bir geliştirici deneyimi (DX) değerini anlamak zordur
Burada dokümanlar mevcut:
https://admicaa.github.io/netpress-docs/
Fikirlerinizi duymak isterim.
Kaynak: Orijinal Makale


