Ana Sayfa

TailwindSQL: React Server Components'ta SQL Sorguları için Yeni Bir Yaklaşım

1 dk okuma

TailwindSQL, React Server Components (RSC) içerisinde SQL sorgularını TailwindCSS benzeri bir yaklaşımla yazmayı sağlayan deneysel bir projedir. Geliştiricilerin, veritabanı sorgularını doğrudan React bileşenlerinin className özelliği üzerinden tanımlamasına olanak tanır. Örneğin, <DB className="db-users-name-where-id-1" /> gibi bir kullanım ile doğrudan kullanıcı adını çekip render edebilir veya <DB className="db-products-title-limit-5" as="ul" /> ile ürün listesini oluşturabilir. Bu yenilikçi yöntem, SQL sorgularını CSS sınıf isimleri gibi tanıdık bir sözdizimiyle ifade etmeyi kolaylaştırır.

Projenin temel özellikleri arasında, sorguların tamamen React Server Components üzerinde çalışması sayesinde istemci tarafında sıfır JavaScript kullanımı, hızlı ve yerel veritabanı erişimi için SQLite (better-sqlite3 üzerine kurulu) kullanımı ve sıfır çalışma zamanı (runtime) maliyeti bulunur. Sorgular, derleme veya render zamanında ayrıştırılıp yürütülür. Ayrıca, sonuçları metin, liste, tablo veya JSON gibi farklı formatlarda render etme esnekliği sunar. TailwindSQL'in mimarisi, sınıf isimlerini sorgu yapılandırmalarına dönüştüren bir ayrıştırıcı (parser), bu yapılandırmaları güvenli SQL sorgularına çeviren bir sorgu oluşturucu (query builder) ve sorguları yürüterek sonuçları render eden bir DB bileşeninden oluşur.

TailwindSQL, db-{tablo}-{sütun}-where-{alan}-{değer}-limit-{n}-orderby-{alan}-{asc|desc} gibi belirli bir sınıflandırma şeması kullanarak sorguların nasıl oluşturulacağını tanımlar. Bu sayede, geliştiriciler karmaşık SQL cümleleri yazmak yerine basit ve okunabilir sınıf isimleri ile veritabanı etkileşimlerini gerçekleştirebilirler. Proje, CSS odaklı veritabanı sorgularının potansiyelini keşfetmek amacıyla oluşturulmuş olup, geliştirme ortamlarında denemeler için idealdir ancak üretim ortamında kullanılması tavsiye edilmemektedir.

İçgörü

Bu proje, veritabanı sorgularını CSS benzeri bir sözdizimiyle React Server Components'a entegre ederek geliştirici deneyimini basitleştirme ve yeni mimari yaklaşımları keşfetme potansiyeli sunuyor.

Kaynak