DenoGres ile ProGress
Deno'ya çok kısa bir genel bakış
Deno, güvenli varsayılanlar, yerleşik araçlar ve bağımlılık yönetimi için URL içe aktarma özelliklerine sahip, Chrome'un V8 motorunun üzerinde Rust'ta yerleşik, hızla gelişen bir JavaScript, TypeScript ve WebAssembly çalışma zamanıdır. Node'un yaratıcısı Ryan Dahl tarafından 2018'de JSconf EU'da “ Node Hakkında Pişman Olduğum 10 Şey” başlıklı ünlü konuşması sırasında tanıtıldı . ”
Neden ORM'ler?
Tanıdık olmayanlar için ORM, Nesne-İlişkisel Eşleyici anlamına gelir. "Bu ne anlama gelir?" diye sorabilirsin. Basitçe söylemek gerekirse, bir ORM, geliştiricilerin sorgu dizeleri yerine nesneler aracılığıyla ilişkisel veritabanlarıyla çalışmasına olanak tanır. Nesne yönelimli programlama ile SQL'in bildirimsel sözdizimi arasında geçiş yapmak can sıkıcı olabilir ve geliştirme sırasında iş akışını kesintiye uğratabilir. ORM'ler, bir geliştiricinin veritabanlarıyla sınıflar ve örnekler olarak etkileşime girmesine izin verir. Bizim yararımıza, tonlarca ORM aracı var — ne yazık ki, birinci sınıf TypeScript desteğiyle tasarlanmış açık kaynak seçenekleri sınırlıdır ve daha da azı Deno çalışma zamanı için tasarlanmıştır.
DenoGres, Bir Çözüm
DenoGres, Deno çalışma zamanında PostgreSQL ile çalışan geliştiriciler için bir TypeScript ORM sağlar. Araç, bir kullanıcının veritabanını (etiketleri, türleri ve kısıtlamaları dahil) iç gözlemleyerek ve her tabloyu soyut bir "Model" sınıfını genişleten bir sınıfa aktararak çalışır. Bu, bu tablo sınıflarına, bir kullanıcı OOP'nin tanıdık mekanizması aracılığıyla veritabanı etkileşimlerini deneyimlerken, veritabanı sorgulamasını başlık altında güvenli bir şekilde işleyen bir dizi statik özellik ve yönteme erişim sağlar.
Deno projenizde DenoGres ile çalışmaya başlamak için şu komut satırı istemlerini izleyin:
DenoGres'i projenize aktarın:
deno install --allow-read --allow-write --allow-net --allow-env
--allow-run --name denogres https://deno.land/x/denogres/mod.ts
denogres --init
Veritabanınızı inceleyin ve modeller oluşturun:
denogres --db-pull
denogres --gui
DenoGres 4.0 özellikleri
DenoGres 4.0, zaten güçlü olan ORM'ye çok çeşitli güncellemeleri masaya getiriyor. Belki de en heyecan verici olanı, kullanıcıların işlem bütünlüğünü ve ACID uyumluluğunu koruyarak birden çok sorguyu gruplamasına olanak tanıyan bir işlem ve geri alma işlevi eklemesidir.
Atomiklik, ACID kısaltmasındaki ilk ilke, temel olarak, birden çok sorguyu veritabanına gruplandırırken, ya tüm değişikliklerin kaydedilmesi ya da hiç yapılmaması kuralıdır. Bu, veritabanındaki önemli tabloları çökme, bağlantı sorunları veya başarısız sorgular durumunda istenmeyen değişikliklerden korur.
DenoGres'te işlemleri kullanmak için bir kullanıcı, bir işlem oluşturmak veya devam ettirmek için .transaction()'ı diğer sorgu yöntemlerinin sonuna kadar zincirleyebilir. İşlemler, sorguları toplu hale getirmek için çeşitli modellerde kullanılabilir. Bu, bir tablonun manipülasyonu diğerine bağlı olduğunda önemli tabloların senkronize kalmasını sağlamanıza olanak tanır. İşlemi sonlandırmak için .endTransaction()'ı son sorguya zincirleyin. İşlemdeki herhangi bir sorgu başarısız olursa, önceki sorguların tümü geri alınır ve bu tablolar orijinal durumuna geri döner.
İşte bir örnek:
await Person.insert('name = Alex').transaction();
await Animal.delete().where('name = Spot').transaction();
await Person.insert('nae = Rachel').endTransaction();
// throws an error since 'nae' isn't a column, rolls back all previous queries and returns the error for the query that failed
DenoGres 4.0, hem kullanıcılar hem de geliştiriciler için kolaylaştırılmış bir deneyim sağlamak için kod kapsamını da önemli ölçüde artırır. Herhangi bir potansiyel kullanım durumuna büyük önem verilmiştir, bu da kullanıcıların DenoGres'i daha karmaşık sorgular için verilerin açıklardan kaybolacağından endişe etmeden kullanabilecekleri anlamına gelir.
DenoGres'in Geleceği
DenoGres, OSLabs altında geliştirilen açık kaynaklı bir ürün olduğundan, araç sürekli olarak geliştirilmektedir ve gelecekte sabırsızlıkla beklenecek bir dizi özellik bulunmaktadır:
- SavePoint işlevi, kullanıcıların bölümlere ayrılabilecek daha büyük işlemlere sahip olmalarına ve işlemlerin bir kayıt noktasına kısmi olarak geri alınmasına olanak tanır. Bu, karmaşık hata kurtarmayı uygulamak için kullanışlıdır.
- Başka bir modelle ilişki kurulduğunda modellere eklenebilen, ilgili satırlara hızlı eklemeler yapılmasına izin veren ayarlayıcı yöntemi.
- ManyToMany işlevi, ORM kullanıcılarının tablolar arasında daha karmaşık ilişkiler başlatmasına olanak tanıyan yeni bir bağlantı tablosu oluşturacaktır.
DenoGres 4.0 Katkıda Bulunanlar:
- Rachel Cheman | LinkedIn | GitHub
- Yakup Martin | LinkedIn | GitHub
- Mia Gussen | LinkedIn | GitHub
- İskender Lin | LinkedIn | GitHub

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































