6 puan yazan GN⁺ 2024-05-02 | 1 yorum | WhatsApp'ta paylaş
  • TypeSpec, API odaklı geliştirme için yeni bir dil olarak API geliştiricilerinin, tasarımcılarının ve yöneticilerin gereksinimlerini karşılamak üzere tasarlandı
    • Tutarlı biçimde yüksek kaliteli API'ler ve buna ilişkin deneyimler sunmanın giderek daha karmaşık ve önemli hale geldiği bir ortamda geliştirildi
    • TypeSpec yalnızca basit bir dilden ibaret değildir; soyutlamayı mümkün kılan, kod yeniden kullanımını teşvik eden ve hızlı geliştirme için modern araçları kullanan bir platformdur

TypeSpec'in Temel Özellikleri

  • Birlikte Çalışabilirlik
    • TypeSpec, basit bir API açıklama dili değil; API'leri tanımlayıp farklı protokoller, istemciler, sunucular ve belgeler gibi çıktıları aynı anda üretebilen yüksek seviyeli bir tanımlama dilidir
    • Endüstri standardı API tanım dilleriyle birlikte çalışarak farklı seçenekler arasındaki boşluğu kapatır
  • Üretkenlik
    • TypeSpec, veri ve API tanımlama sürecini daha keyifli ve üretken kılan üstün bir geliştirici deneyimi sağlar
    • Dil, karmaşık veri ve API biçimlerini minimal girdiyle tanımlayabilecek kadar özlüdür
  • API Kalıpları
    • TypeSpec, genel veri türlerini, API kalıplarını ve yönergeleri; ekip veya ekosistem genelinde paylaşılabilen yüksek seviyeli, yeniden kullanılabilir bileşenlere sararak API kalitesini artırır
  • Tanıdıklık
    • TypeSpec, TypeScript ve C#'den esinlenerek öğrenmesi kolay ve birçok geliştirici için tanıdık bir yapı sunar
  • Genişletilebilirlik
    • TypeSpec, özel dekoratör sözlüğü ve tip şablonlarıyla genişletilebilir; bu sayede iş veya uygulama mantığı alanında API'leri modelleyebilirsiniz
  • Ekosistem
    • TypeSpec ile ortak türler, dil uzantıları, linter'lar ve emitter'lar paketlenip, kurum içi veya ekosistem genelinde NPM'de dağıtılabilir

Topluluk ve İş Birliği

  • Microsoft'ta Kullanım
    • Microsoft, API geliştirme sürecini dönüştürmek için TypeSpec kullanıyor
    • Pek çok Azure servisi TypeSpec'i benimsemiş durumda ve bu sayı her geçen gün artıyor
    • Microsoft Graph ekibi, TypeSpec'in potansiyelini kullanarak verimliliği artırıyor ve özelleştirmeyi basitleştiriyor
  • Katılım Çağrısı
    • TypeSpec yalnızca bir dil değil; aynı zamanda bir topluluktur
    • Farklı geçmişten tüm geliştiriciler, TypeSpec'in gücünü doğrudan deneyimleyebilsin diye herkesi açık betaya katılmaya davet ediyor

GN⁺'nin Görüşü

  • TypeSpec, yüksek soyutlama seviyesine sahip bir API tanımlama dili olarak, API geliştirme biçimlerini önemli ölçüde iyileştirebilecek görünüyor
    • API First yaklaşımını destekleyerek geliştirme verimliliğine ve nihai ürün kalitesinin artmasına katkı sağlayacağı öngörülüyor
    • Geniş protokol desteği, genişletilebilirlik ve güçlü bir ekosistemle birlikte çok farklı geliştirme senaryolarına uygulanabilirliği bekleniyor
  • Ancak yeni bir dilin devreye alınmasında her zaman öğrenme maliyeti oluşur; bu nedenle ekip içi benimsemede yeterli eğitim öncesinde verilmelidir
    • TypeScript ve C# sözdizimlerini ödünç alarak öğrenme eğrisini düşürmeye çalışması olumlu
  • Benzer rolü üstlenen mevcut API tanım dilleri (Swagger, RAML, API Blueprint vb.) ile ayrıştırıcı noktaların daha net açıklanması gerekiyor gibi görünüyor
    • Mevcut dillerin sınırlamalarını nasıl aşacağı, geçişin kolay olması gibi konular
  • Microsoft içinde önce kullanıp geliştirerek ilerleme yaklaşımı güven verici
    • Ancak proje henüz yeni açılmış bir açık kaynak olduğu için, önümüzdeki yıllarda sürekli gelişim ve topluluk desteği kritik bir rol oynayacak gibi görünüyor
  • API tasarımını standartlaştırma ve yeniden kullanılabilirliği artırma yönündeki yaklaşım doğru olsa da, çok fazla şeyi bir anda çözmeye çalıştığı izlenimi de var
    • Özellikle fonksiyonlar kademeli ve öncelikli şekilde geliştirilse daha iyi olur

1 yorum

 
GN⁺ 2024-05-02
Hacker News Yorumu
  • API tiplenmesi için zaten TypeScript kullanıyorsanız, JSON şemasını doğrudan TypeScript’ten üreten ts-json-schema-generator iyi bir alternatif olabilir.
  • OpenAPI’nin YAML’ına göre her şey daha iyi görünebilir, yine de OpenAPI en iyi gelişmelerden biri olmaya devam ediyor.
  • TypeScript’in şema dili olarak bir kırılma yaratacağını bekliyorduk; TypeSpec ise JavaScript’i çıkarıp sadece JSON için tip bırakmış gibi görünüyor.
  • En yeni API’lerde TypeSpec’i kullanırken, GraphQL’e benzer bir şekilde API’yi tarif edip tasarım-önce yaklaşımıyla geliştiren bir araç buldum; OpenAPI editörleri çok kaba kalıyordu ve API içindeki veri ilişkilerini muğlaklaştırırken TypeSpec çok faydalı oldu.
  • Microsoft tarafından geliştirilmiş olması, bunun GraphQL’e verdikleri bir cevap olabileceğini düşündürüyor; iç kullanımda olursa, açık kaynak konsorsiyumunun ürettiğine kıyasla araç kalitesi iyi olabilir.
  • WSDL’in TypeScript versiyonu gibi duruyor ama WSDL’den daha kalıcı olup olmayacağını bilmiyorum.
  • Desteklenen çıktı dillerini en kritik soru olarak bulamadım; OpenAPI’yi dışa aktararak kalitesiz bir jeneratör kullanmaktan başka seçenek görünmüyor.
  • TypeSpec dosyasını TypeScript’e alıp otomatik tip alabilmek güzel olurdu ama kod üretimi zahmetli ve hata yapmaya açık.
  • Smithy için bir rakip/seçenek gibi duruyor; TypeSpec ekibinden biri burada varsa nasıl karşılaştırıldığını duymak isterim.
  • YAML’ın istediğim araç zincirine dönüştürülüp dönüştürülemeyeceğini merak ediyorum.
  • 25 yıl önce CORBA IDL’nin sunduğu gibi, şema ve çok dilli stub üretimi sağlayan yüksek seviye bir IDL olsaydı çok iyi olurdu.