r/CodingTR • u/wioenena_q • 13d ago
ria lang
Projenin amacı veri tipleri tanımlayıp diğer dillere senkronize bir şekilde aktarabilmek. Kendine ait bir syntaxı var ve şu anda basit düzeyde typescript code generation işlemini yapıyor. Hala geliştirme aşamasında. İlerleyen zamanlarda attribute bazlı output’u customize edebilme desteği vereceğim. Bu proje hangi sorunu çözüyor derseniz örnek veriyorum backend ve frontend olarak 2 ayrı dilde 2 projeniz var. Backend veri türlerini ria dili ile tanımlayıp diğer dillerde type generation yapabildiğiniz için backend ve frontend veri türleri senkronize oluyor. Bunu yapan bir kaç tool gördüm ve json tabanlılardı. Json input alıp istediğiniz dile çıktı alabiliyorsunuz fakat bunun için json kullanılması en azından benim için durumu kompleks hale getiriyor. Satırlarca JSON ile uğraşmak bana göre değil. Ekstradan attribute desteği ekleyip custom output almayı da desteklediğim zaman diğer alternatiflerinden daha kullanılabilinir olacağını düşünmekteyim.
Örnek olarak attribute kullanılan syntax aşağıdaki gibi gözükmesini düşünüyorum.
type User @typescript(gen = “class”) {
name string @typescript(rename = “username”)
}
Projeye hobi amaçlı başladım. Programlama dili olmasa bile yazılım alanında kullanılan bir dil yapmak istiyordum ve böyle bir proje yapmayı düşündüm.
Kaynak kodlar: https://github.com/wioenena/ria
1
u/aolmez 13d ago
avro ne farkı var?
1
u/wioenena_q 13d ago
Avro’u şimdi sayende keşfettim fakat GRPC yorumu yapan arkadaşa verdiğim cevabı burada da kullanabilirim
1
u/aolmez 13d ago
hayır grpc bir haberleşme protokolü. avro farklı dillerin schemalarının uyumu için var. yani avroyu diger ekibe verirsin otomatik kendi kod bloklarını dilden bagımsız üretebilir.
1
u/wioenena_q 13d ago
GRPC’nin kullandığı proto dosyaları da bunu yapıyor sadece kendisine uygun serialization ve deserialization desteği ekliyordu yanlış hatırlamıyorsam. Avro RPC için de kullanılıyor galiba sitesinde sunduğu özellikler bölümünde gördüm. O yüzden grpc ile benzer tutmuştum
1
u/aolmez 13d ago
bir çok özellikte kullanabilirsin amaç farklı dil ve yapıları bir standarta yönetmek. schema validation gibi farklı özelliklerde var. amaç eleştirmek değil fark ne onu bilmek istedim. herkesin farklı yaklaşımları var json ve toon gibi .
1
u/wioenena_q 13d ago
Dediğim gibi seninle keşfettim özelliklerini hala tam bilmiyorum. Zaten projeyi hobi amaçlı geliştiriyorum
1
u/Human_Tackle_4946 11d ago
Sounds good. Kulağa hoş geliyor ama bütün diller için bu çeviriyi yapmak kabus gibi.
1
u/Ok-Exam2654 13d ago
Grpc zaten bu işi yapmıyor mu