Deno Nedir?

Tyrone

Uzman üye
30 Eyl 2017
1,337
617
Kamino
cxun73h.png


Deno

Deno.svg



Bildiğimiz üzere dünya üzerinde en çok kullanılan javascript teknolojilerinden birisi nodejs. Çoğu zaman şirketler, küçük kuruluşlar, bireysel çalışanlar ve hatta bu işi sırf hobi için yapan insanlar javascript kodlarken nodejs'ten yararlanıyor. Deno ise nodejs'in eksiklerini gidermek için ortaya çıkarılan yeni bir teknoloji.

NodeJS ' in kurucusu olan Ryan Dahl tarafından 2018 yılında piyasaya sürüldü. Kendisi JSConf EU programında nodejs'in eksiklerini vurgulayarak deno'dan bahsetmişti.

gBPwFuWw_o.png


Deno Nedir ?

Deno, rust programlama diline ve V8 javascript motoruna dayanan javascript ve typescript için bir çalıştırma ortamıdır. Nodejs yaratıcısı Ryan Dahl 2018 yılında yaptığı bir konuşmada tarafınca NodeJS'te 10 eksik bulduğunu dile getirmiştir. Deno, nodejs'in eksiklerini gidermek için ortaya çıkmış alternatif bir çalıştırma ortamıdır.

Şimdi nodejs'teki bu 10 eksikten bazılarını ele alalım.

1 -
Güvenlik

V8 javascript motoru güvenli bir çalışma ortamı sunmaktadır. Ama nodejs güvenlik konusunda eksik kalmaktadır. Nedeni ise nodejs'in kolayca sistem komutları çalıştırabilmesidir. Dosya okuma, yazma , silme, değiştirme gibi...

2 -
Promise

Nodejs ile deno arasındaki farkı anlatmadan önce promiselerin ne olduğuna değinelim.

Promise yapısı işlemlerde kullandığımız sonucu temsil eden ve sonuca göre fonksiyon yazmamızı sağlayan bir yapıdır. Bu yapı resolve ve reject adında iki değer alır. Bunlar yapılan işlemin başarılı olma ya da olmama durumlarını simgeler. Örneğin dosyayı okumak istediğinizi düşünün. Eğer dosya başarılı bir şekilde okunursa resolve değerini alır ve başarılı işlem için yazdığımız fonksiyon çalıştırılır. Ama eğer başarılı değilse reject değerini alır ve bu seferde başarısız, hatalı olan işlem için yazılan fonksiyon çalıştırılır.

Nodejs bu yapıya ilk çıktıktan kısa bir süre sonra sahip oldu ama sonrasında bu yapı nodejs'ten kaldırıldı. Promise yapısı nodejs'te yerini callback fonksiyonlarına bıraktı.


3 -
node_modules
Nodejs'te bir modül kurduğumuzda bu modüle ait dosyalar node_modules dizini altında toplanır. Bunun kötü yanını anlamak için büyük projeleri ele alabiliriz. Proje büyük olduğu için haliyle kullanılacak modül sayısıda bir oranda artış göstericektir ki bu da depolama kısmında sorun yaşamamıza neden olacak. Nodejs artık bu yapı üzerinden ilerlediği ve geliştiği için nodejs'te bu sorunu çözmek oldukça zor.

5c98yn9.png

Takip ettiğim kaynakta 10 eksik arasından package.json, index.js, require fonksiyonu ve GYP build sisteminden bahsedilmiş. İlk üçünü bu konuda yer vermeyeceğim, sonuncu olan GYP build sistemi ise tam olarak anlamadığımdan yanlış bilgi vermemek adına ondan bahsetmicem.

gBPwFuWw_o.png



Deno Kurulum
Oldukça basit ve küçük bir kurulum yapıcaz. Nodejs ile arasındaki farklardan biriside nodejs gibi bir set-up dosyasının bulunmaması.

Windows için :

Kod:
Scoop : scoop install deno
[LEFT]Choco : choco install deno
Powershell : irm https://deno.land/install.ps1 | iex
[/LEFT]


Linux ve MacOS için ;
Kod:
Shell : curl -fsSL https://deno.land/x/install/install.sh | sh
MacOS : brew install deno

gBPwFuWw_o.png



Şimdi ise deno'nun bu sorunlara çözüm yöntemlerini ve deno'nun bazı özelliklerini anlatalım.



Deno_2021.svg

1 - Güvenlik

Deno, nodejs'in aksine sistem komutları çalıştırabilmek, dosyalara erişebilmek için kullanıcıdan yani bizden izin ister. Bu sayede kullanıcı için güvenlik sağlanmış olur. Örneğin bir dosyanın içeriğini okumak istediğimizde şöyle bir ekranla karşılaşırız :

5apse6t.png

Görüldüğü üzere bizden dosyayı okumak için izin istiyor.

2 - Modüller

Deno'da modüller node_modules gibi bir dizin altında depolanmamakta. Onun yerine modüller urller aracılığı ile projeye dahil ediliyor. Nasıl yani derseniz, css ' te @import url metodunu kullanarak google font gibi bir yerden fontu indirmeden kullanmayı örnek verebilirim.

kzb2ena.png

Gördüğünüz gibi komut satırında renkli yazı yazdırmak için kullandığım modülü herhangi bir paket yöneticisi ile indirerek kullanmak yerine url ile projeme dahil ettim. Peki bu urller bozuk olursa veya herhangi bir bağlantı sorunu olursa ne olacak derseniz, deno bize dosya ile modül import etme özelliğinide sunmakta. Ayrıca url ile import ettiğimiz modüllerin bir kaydını cache'sinde tutmakta.

3 - Typescript Desteği

Deno typescript kodlarını çalıştırmak için kendi içinde bir typescript derleyicisi ile beraber gelmekte. Yani typescript kodunu çalıştırmak için ayrı bir derleyiciye ihtiyacınız yoktur. Typescript haricinde normal javascript ile de projelerinizi geliştirebilirsiniz.

4 - Geliştiri Araçları

Deno kendi içinde birçok geliştirici aracı ile gelmekte. Bunlar deno bundle, debugger, dependency inspector ( deno info ), documentation generator ( deno doc ), formatter ( deno fmt ), test runner ( deno test ) gibi... Daha fazla bilgi için :

Deno


hfoji6i.png


2tvb2gm.gif
 

'Anka

Basın&Medya Ekibi Kıdemli
8 Eyl 2021
3,282
2,471
Güzel ve yararlı bir konu olmuş. Daha keşfedilmeyi bekleyen belki yüzlerce konu var bunları araştırıp kullanmak lazım. 😆 Yoksa bu gidişle bir yere varamayız. Eline sağlık konu için teşekkür ederim.
 

daggez

Junior Hunter
5 Eyl 2022
321
112
cxun73h.png


Deno

Deno.svg



Bildiğimiz üzere dünya üzerinde en çok kullanılan javascript teknolojilerinden birisi nodejs. Çoğu zaman şirketler, küçük kuruluşlar, bireysel çalışanlar ve hatta bu işi sırf hobi için yapan insanlar javascript kodlarken nodejs'ten yararlanıyor. Deno ise nodejs'in eksiklerini gidermek için ortaya çıkarılan yeni bir teknoloji.

NodeJS ' in kurucusu olan Ryan Dahl tarafından 2018 yılında piyasaya sürüldü. Kendisi JSConf EU programında nodejs'in eksiklerini vurgulayarak deno'dan bahsetmişti.

gBPwFuWw_o.png


Deno Nedir ?

Deno, rust programlama diline ve V8 javascript motoruna dayanan javascript ve typescript için bir çalıştırma ortamıdır. Nodejs yaratıcısı Ryan Dahl 2018 yılında yaptığı bir konuşmada tarafınca NodeJS'te 10 eksik bulduğunu dile getirmiştir. Deno, nodejs'in eksiklerini gidermek için ortaya çıkmış alternatif bir çalıştırma ortamıdır.

Şimdi nodejs'teki bu 10 eksikten bazılarını ele alalım.

1 -
Güvenlik

V8 javascript motoru güvenli bir çalışma ortamı sunmaktadır. Ama nodejs güvenlik konusunda eksik kalmaktadır. Nedeni ise nodejs'in kolayca sistem komutları çalıştırabilmesidir. Dosya okuma, yazma , silme, değiştirme gibi...

2 -
Promise

Nodejs ile deno arasındaki farkı anlatmadan önce promiselerin ne olduğuna değinelim.

Promise yapısı işlemlerde kullandığımız sonucu temsil eden ve sonuca göre fonksiyon yazmamızı sağlayan bir yapıdır. Bu yapı resolve ve reject adında iki değer alır. Bunlar yapılan işlemin başarılı olma ya da olmama durumlarını simgeler. Örneğin dosyayı okumak istediğinizi düşünün. Eğer dosya başarılı bir şekilde okunursa resolve değerini alır ve başarılı işlem için yazdığımız fonksiyon çalıştırılır. Ama eğer başarılı değilse reject değerini alır ve bu seferde başarısız, hatalı olan işlem için yazılan fonksiyon çalıştırılır.

Nodejs bu yapıya ilk çıktıktan kısa bir süre sonra sahip oldu ama sonrasında bu yapı nodejs'ten kaldırıldı. Promise yapısı nodejs'te yerini callback fonksiyonlarına bıraktı.


3 - node_modules
Nodejs'te bir modül kurduğumuzda bu modüle ait dosyalar node_modules dizini altında toplanır. Bunun kötü yanını anlamak için büyük projeleri ele alabiliriz. Proje büyük olduğu için haliyle kullanılacak modül sayısıda bir oranda artış göstericektir ki bu da depolama kısmında sorun yaşamamıza neden olacak. Nodejs artık bu yapı üzerinden ilerlediği ve geliştiği için nodejs'te bu sorunu çözmek oldukça zor.

5c98yn9.png

Takip ettiğim kaynakta 10 eksik arasından package.json, index.js, require fonksiyonu ve GYP build sisteminden bahsedilmiş. İlk üçünü bu konuda yer vermeyeceğim, sonuncu olan GYP build sistemi ise tam olarak anlamadığımdan yanlış bilgi vermemek adına ondan bahsetmicem.

gBPwFuWw_o.png



Deno Kurulum
Oldukça basit ve küçük bir kurulum yapıcaz. Nodejs ile arasındaki farklardan biriside nodejs gibi bir set-up dosyasının bulunmaması.

Windows için :

Kod:
Scoop : scoop install deno
[LEFT]Choco : choco install deno
Powershell : irm https://deno.land/install.ps1 | iex
[/LEFT]


Linux ve MacOS için ;
Kod:
Shell : curl -fsSL https://deno.land/x/install/install.sh | sh
MacOS : brew install deno

gBPwFuWw_o.png



Şimdi ise deno'nun bu sorunlara çözüm yöntemlerini ve deno'nun bazı özelliklerini anlatalım.



Deno_2021.svg



1 - Güvenlik

Deno, nodejs'in aksine sistem komutları çalıştırabilmek, dosyalara erişebilmek için kullanıcıdan yani bizden izin ister. Bu sayede kullanıcı için güvenlik sağlanmış olur. Örneğin bir dosyanın içeriğini okumak istediğimizde şöyle bir ekranla karşılaşırız :

5apse6t.png



Görüldüğü üzere bizden dosyayı okumak için izin istiyor.

2 - Modüller

Deno'da modüller node_modules gibi bir dizin altında depolanmamakta. Onun yerine modüller urller aracılığı ile projeye dahil ediliyor. Nasıl yani derseniz, css ' te @import url metodunu kullanarak google font gibi bir yerden fontu indirmeden kullanmayı örnek verebilirim.

kzb2ena.png



Gördüğünüz gibi komut satırında renkli yazı yazdırmak için kullandığım modülü herhangi bir paket yöneticisi ile indirerek kullanmak yerine url ile projeme dahil ettim. Peki bu urller bozuk olursa veya herhangi bir bağlantı sorunu olursa ne olacak derseniz, deno bize dosya ile modül import etme özelliğinide sunmakta. Ayrıca url ile import ettiğimiz modüllerin bir kaydını cache'sinde tutmakta.

3 -
Typescript Desteği

Deno typescript kodlarını çalıştırmak için kendi içinde bir typescript derleyicisi ile beraber gelmekte. Yani typescript kodunu çalıştırmak için ayrı bir derleyiciye ihtiyacınız yoktur. Typescript haricinde normal javascript ile de projelerinizi geliştirebilirsiniz.

4 -
Geliştiri Araçları

Deno kendi içinde birçok geliştirici aracı ile gelmekte. Bunlar deno bundle, debugger, dependency inspector ( deno info ), documentation generator ( deno doc ), formatter ( deno fmt ), test runner ( deno test ) gibi... Daha fazla bilgi için :


Deno


hfoji6i.png


2tvb2gm.gif
Elinize emeğinize sağlık hocam teşekkürler.
 

Rold

Üye
3 Ara 2022
77
32
cxun73h.png


Deno

Deno.svg



Bildiğimiz üzere dünya üzerinde en çok kullanılan javascript teknolojilerinden birisi nodejs. Çoğu zaman şirketler, küçük kuruluşlar, bireysel çalışanlar ve hatta bu işi sırf hobi için yapan insanlar javascript kodlarken nodejs'ten yararlanıyor. Deno ise nodejs'in eksiklerini gidermek için ortaya çıkarılan yeni bir teknoloji.

NodeJS ' in kurucusu olan Ryan Dahl tarafından 2018 yılında piyasaya sürüldü. Kendisi JSConf EU programında nodejs'in eksiklerini vurgulayarak deno'dan bahsetmişti.

gBPwFuWw_o.png


Deno Nedir ?

Deno, rust programlama diline ve V8 javascript motoruna dayanan javascript ve typescript için bir çalıştırma ortamıdır. Nodejs yaratıcısı Ryan Dahl 2018 yılında yaptığı bir konuşmada tarafınca NodeJS'te 10 eksik bulduğunu dile getirmiştir. Deno, nodejs'in eksiklerini gidermek için ortaya çıkmış alternatif bir çalıştırma ortamıdır.

Şimdi nodejs'teki bu 10 eksikten bazılarını ele alalım.

1 -
Güvenlik

V8 javascript motoru güvenli bir çalışma ortamı sunmaktadır. Ama nodejs güvenlik konusunda eksik kalmaktadır. Nedeni ise nodejs'in kolayca sistem komutları çalıştırabilmesidir. Dosya okuma, yazma , silme, değiştirme gibi...

2 -
Promise

Nodejs ile deno arasındaki farkı anlatmadan önce promiselerin ne olduğuna değinelim.

Promise yapısı işlemlerde kullandığımız sonucu temsil eden ve sonuca göre fonksiyon yazmamızı sağlayan bir yapıdır. Bu yapı resolve ve reject adında iki değer alır. Bunlar yapılan işlemin başarılı olma ya da olmama durumlarını simgeler. Örneğin dosyayı okumak istediğinizi düşünün. Eğer dosya başarılı bir şekilde okunursa resolve değerini alır ve başarılı işlem için yazdığımız fonksiyon çalıştırılır. Ama eğer başarılı değilse reject değerini alır ve bu seferde başarısız, hatalı olan işlem için yazılan fonksiyon çalıştırılır.

Nodejs bu yapıya ilk çıktıktan kısa bir süre sonra sahip oldu ama sonrasında bu yapı nodejs'ten kaldırıldı. Promise yapısı nodejs'te yerini callback fonksiyonlarına bıraktı.


3 - node_modules
Nodejs'te bir modül kurduğumuzda bu modüle ait dosyalar node_modules dizini altında toplanır. Bunun kötü yanını anlamak için büyük projeleri ele alabiliriz. Proje büyük olduğu için haliyle kullanılacak modül sayısıda bir oranda artış göstericektir ki bu da depolama kısmında sorun yaşamamıza neden olacak. Nodejs artık bu yapı üzerinden ilerlediği ve geliştiği için nodejs'te bu sorunu çözmek oldukça zor.

5c98yn9.png

Takip ettiğim kaynakta 10 eksik arasından package.json, index.js, require fonksiyonu ve GYP build sisteminden bahsedilmiş. İlk üçünü bu konuda yer vermeyeceğim, sonuncu olan GYP build sistemi ise tam olarak anlamadığımdan yanlış bilgi vermemek adına ondan bahsetmicem.

gBPwFuWw_o.png



Deno Kurulum
Oldukça basit ve küçük bir kurulum yapıcaz. Nodejs ile arasındaki farklardan biriside nodejs gibi bir set-up dosyasının bulunmaması.

Windows için :

Kod:
Scoop : scoop install deno
[LEFT]Choco : choco install deno
Powershell : irm https://deno.land/install.ps1 | iex
[/LEFT]


Linux ve MacOS için ;
Kod:
Shell : curl -fsSL https://deno.land/x/install/install.sh | sh
MacOS : brew install deno

gBPwFuWw_o.png



Şimdi ise deno'nun bu sorunlara çözüm yöntemlerini ve deno'nun bazı özelliklerini anlatalım.



Deno_2021.svg



1 - Güvenlik

Deno, nodejs'in aksine sistem komutları çalıştırabilmek, dosyalara erişebilmek için kullanıcıdan yani bizden izin ister. Bu sayede kullanıcı için güvenlik sağlanmış olur. Örneğin bir dosyanın içeriğini okumak istediğimizde şöyle bir ekranla karşılaşırız :

5apse6t.png



Görüldüğü üzere bizden dosyayı okumak için izin istiyor.

2 - Modüller

Deno'da modüller node_modules gibi bir dizin altında depolanmamakta. Onun yerine modüller urller aracılığı ile projeye dahil ediliyor. Nasıl yani derseniz, css ' te @import url metodunu kullanarak google font gibi bir yerden fontu indirmeden kullanmayı örnek verebilirim.

kzb2ena.png



Gördüğünüz gibi komut satırında renkli yazı yazdırmak için kullandığım modülü herhangi bir paket yöneticisi ile indirerek kullanmak yerine url ile projeme dahil ettim. Peki bu urller bozuk olursa veya herhangi bir bağlantı sorunu olursa ne olacak derseniz, deno bize dosya ile modül import etme özelliğinide sunmakta. Ayrıca url ile import ettiğimiz modüllerin bir kaydını cache'sinde tutmakta.

3 -
Typescript Desteği

Deno typescript kodlarını çalıştırmak için kendi içinde bir typescript derleyicisi ile beraber gelmekte. Yani typescript kodunu çalıştırmak için ayrı bir derleyiciye ihtiyacınız yoktur. Typescript haricinde normal javascript ile de projelerinizi geliştirebilirsiniz.

4 -
Geliştiri Araçları

Deno kendi içinde birçok geliştirici aracı ile gelmekte. Bunlar deno bundle, debugger, dependency inspector ( deno info ), documentation generator ( deno doc ), formatter ( deno fmt ), test runner ( deno test ) gibi... Daha fazla bilgi için :


Deno


hfoji6i.png


2tvb2gm.gif
Elinize Sağlık Hocam. :)



Onlar ; Görünmeyen Kahramanlar...
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.