WEB EKOSISTEM

Deno Nedir -2?

Onur Dayıbaşı
Cloud And Servers
Published in
3 min readAug 4, 2021

--

Bu yazı daha önceden yazdığımız Deno Nedir? Neden Geliştirildi ? yazısının devamıdır. Bir önceki yazımızda Deno’nun

A secure runtime for JavaScript and TypeScript.

olduğunu ve bu Runtime ortaya çıkma gereklerinden bahsetmiştik. Bu yazıda Deno bu gerekleri nasıl yerine getiriyor onları inceleyelim.

Security (Güvenlik)

JS aynı tarayıcılarda olduğu gibi Sandbox içerisinde çalıştırarak default network ve dosya sistemi erişim yetkileri olmayacaktır.

--allow-net --allow-write

ile bu yetkiler açılacak. Bu sayede linter vb utility araçlarının kontrolsüz erişimeri ortadan kalkacaktır.

2nci olarak Native fonksiyonların direk V8 bağlanması engellenecektir. Bütün sistem çağrıları

Message Passing (profobuf serialization)

yöntemini kullanacaktır. Bu sayede 2 türde fonksiyon olacak send/recv ve bu yapıların tasarımları çok basit ve kontrol altında tutmak kayıtlarını tutmak oldukça kolay.

Aşağıdaki resimde de görüldüğü gibi Privileged yapı ile Unprivileged ortamdaki Dispatcher üzerinden güvenliğini kontrol eden bir mekanizmaya dönüştürmüş.

https://www.youtube.com/watch?v=M3BM9TB-8yA

Module System

Deno ile node_modules ve npm yapısından kurtulmaya çalışıyor. Projenin gerekleri olan dosya zaten o kodun bulunduğu relative yapıda ise bunu

./util.ts

eğerki uzak bir ortamda network üzerinden erişiliyor ise..

"https://........../testing.ts"

erişim yapılak ilgili dosyanın nerede olduğu basit bir şekilde görebiliyor. Dosya uzantısı sayesinde kaynak kodun hangi dilde yazdığı anlaşılıyor.

Remote URLs ilk yüklemeden sonra cache leniyor.

--reload flag veya Ctrl + R  benzeri cache resetlenir.

TypeScript

Deno Runtime içerisinde default olarak TypeScript destekliyor (yani builtin geliyor). Amaç secure backend sunucusu ile daha kurumsal yazılımlar geliştirmek. Bu kısımda da dynamic bir dil olan JavaScript yerine TypeScript yönlendiriyor ve yapısında bunu default destekliyor.

Normal süreçte TypeScript geliştirme yaptığınız ortamda TypeScript → JavaScript dönüşümü için aşağıdaki araçlara ihtiyaç duyarsınız.

npm install -g typescript
tsc --init // dendiğinde tsconfig.json oluşur

Deno Runtime üzerinde bu tarz gereksinimlere gerek kalmadan dosya uzantısından bunu algılıyarak TypeScript işletebiliyor. Bu kısmı Deno geliştiricileri sizden soyutlamış

Ship Single Executable

Deno olabildiğince az linkage sahip küçük boyutta single executable oluşturulmaya çalışılır.

https://www.youtube.com/watch?v=M3BM9TB-8yA

Use Future Tech

  • Node modules Parcel compile ederek bundle dönüştürür , bu sayede Node üzerinden basit bir şekilde kullanım imkanı sağlar.
  • Native Code üzerinde mükemmel bir infrastructure sağlar. (HTTP kısmı, Non-JS kısımlarda Rust , Go , C++ çözümleri)
  • Promise ve await yapısının default olarak desteklenmesi..

Referanslar

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--