Geri Git   ForumSinsi - 2006 Yılından Beri > Eğitim - Öğretim - Dersler - Genel Bilgiler > Eğitim & Öğretim

Yeni Konu Gönder Yanıtla
 
Konu Araçları
node.js, nodejs

Node.js Nedir ?

Eski 12-06-2016   #1
[KAPLAN]
Icon3

Node.js Nedir ?



Nodejs, çeşitli araçlar ve uygulamalar geliştirmek için açık kaynak kodlu, çapraz platformlu bir JavaScript çalışma zamanı ortamıdır



Nodejs bir JavaScript çerçevesi olmasa da, temel modüllerinin birçoğu JavaScript ile yazılmıştır ve geliştiriciler JavaScript'te yeni modüller yazabilir Çalışma zamanı ortamı JavaScript'i Google'ın V8 JavaScript motorunu kullanarak yorumluyor

Nodejs, asenkron G / Ç kapasitesine sahip, etkinliğe dayalı bir mimariye sahiptir Bu tasarım seçenekleri, birçok giriş / çıkış işlemi ile gerçek zamanlı Web uygulamaları (ör, Gerçek zamanlı iletişim programları ve tarayıcı oyunları) ile Web uygulamalarında çıktı ve ölçeklenebilirliği optimize etmeyi amaçlamaktadır

Nodejs Vakfı tarafından yönetilen Nodejs dağıtılan geliştirme projesi, Linux Vakfı'nın İşbirlikçi Projeler programı tarafından kolaylaştırılmıştır Nodejs yazılımının kurumsal kullanıcıları arasında GoDaddy, Groupon, IBM, LinkedIn, Microsoft, Netflix, PayPal, Voxer, Walmart, Yahoo ! ve Cisco Sistemleri

Nodejs Nodejs'in yaratıcısı Ryan Dahl, aslen 2009'da Ryan Dahl tarafından yazılmıştır İlk sürüm yalnızca Linux'u destekledi Gelişimi ve bakımı Dahl tarafından yönetildi ve daha sonra Joyent tarafından desteklendi Dahl, Flickr'da bir dosya yükleme ilerleme çubuğu gördükten sonra Nodejs'yi yaratmak için esin kaynağı oldu Tarayıcı, dosyanın ne kadarının yüklendiğini bilmiyordu ve Web sunucusunu sorgulamalıydı Dahl daha kolay bir yol arıyordu

Dahl, 8 Kasım 2009'da Avrupa JSConf açılışında projeyi gösterdi Nodejs, Google'ın V8 JavaScript motoru, bir olay döngüsü ve düşük seviye bir G / Ç API'sini birleştirdi [27] Proje ayakta alkışladı Ocak 2010'da, npm adlı Nodejs ortamı için bir paket yöneticisi tanıtıldı Paket yöneticisi, programcıların Nodejs kütüphanelerinin kaynak kodunu yayınlamasını ve paylaşmasını kolaylaştırır ve kütüphanelerin kurulumunu, güncellenmesini ve kaldırılmasını basitleştirmek için tasarlanmıştır Haziran 2011'de Microsoft ve Joyent Nodejs'in yerli bir Windows sürümünü uyguladılar Windows'u destekleyen ilk Nodejs, Temmuz 2011'de piyasaya çıktı Ocak 2012'de Dahl, kenara çekildi ve projeyi yönetmek için iş arkadaşını ve npm yaratıcısı Isaac Schlueter'i tanıttı Ocak 2014'te Schlueter, Timothy J Fontaine'in projeye liderlik edeceğini açıkladı Aralık 2014'te Fedor Indutny, iOjs'yi başlattı, bir Nodejs çatalı başladı Joyent'in yönetimi üzerindeki iç çatışma nedeniyle, iojs ayrı bir teknik komite ile açık bir yönetişim alternatifi olarak yaratılmıştır Nodejs'den farklı olarak, yazarlar iojs'yi Google V8 JavaScript motorunun en yeni sürümleriyle güncel tutmayı planladılar Şubat 2015'te tarafsız Nodejs Vakfı oluşturma niyeti ilan edildi Haziran 2015'e kadar, Nodejs ve iojs toplulukları, Nodejs Vakfı kapsamında birlikte çalışmaya oy verdiler Eylül 2015'te, Nodejs v012 ve iojs v33 düğüm v40'a tekrar birleştirildi Bu, V8 ES6 özelliklerini Nodejs'ye getirdi ve uzun vadeli bir destek sürümü sağladı 2016'dan itibaren, iojs web sitesi, geliştiricilerin Nodejs'ye geri dönmelerini ve birleşmeden dolayı başka yayınların planlanmadığını önermektedir [40] Genel Açıklama [değiştir] Nodejs, JavaScript'i ve çeşitli temel işlevleri ele alan bir "modül" koleksiyonunu kullanarak Web sunucuları ve ağ araçları oluşturulmasına izin verir

Modüller, dosya sistemi G / Ç, ağ (DNS, HTTP, TCP, TLS / SSL veya UDP), ikili veri (tampon), şifreleme fonksiyonları, veri akışları ve diğer temel fonksiyonlar için sağlanmaktadırNodejs'nin modülleri, sunucu uygulamalarını yazmanın karmaşıklığını azaltmak için tasarlanmış bir API kullanır Nodejs uygulamaları Mac OS X, Microsoft Windows, NonStop, ve Unix sunucuları üzerinde çalışabilir Alternatif olarak CoffeeScript (bir JavaScript alternatifi), Dart veya Microsoft TypeScript (kuvvetle biçimlendirilmiş JavaScript biçimleri) veya JavaScript'e derleyebilecek başka herhangi bir dil ile yazılabilirler Nodejs öncelikle Web sunucuları gibi ağ programlarını PHP'ye benzer hale getirmek için kullanılır Nodejs ve PHP arasındaki en büyük fark, PHP'deki işlevlerin çoğunun tamamlanıncaya kadar engellenmesidir (komutlar önceki komutların tamamlanmasından sonra yürütülür); buna karşın Nodejs'deki işlevler engellemez (komutlar paralel olarak yürütülür ve kullanır) Sinyal tamamlama veya arıza için geri arama) Platform mimarisi Nodejs, web sunucularına olay odaklı programlama getirerek, JavaScript'te hızlı web sunucularının geliştirilmesini sağlar Geliştiriciler, bir görevin tamamlandığını bildirmek için geri arama kullanan basitleştirilmiş bir olay odaklı programlama modeli kullanarak, iş parçacığı kullanmadan son derece ölçeklenebilir sunucular oluşturabilirler Nodejs, eşzamanlılık birçok sunucu tarafı programlama dilinde zordur ve genellikle düşük performansa neden olduğu için oluşturulmuştur Nodejs bir betik dili (JavaScript) kolaylığını Unix ağ programlama gücüyle birleştirir Nodejs Google V8 JavaScript motorunda kuruldu, çünkü BSD lisansı altında açık kaynak kodlu, son derece hızlı ve HTTP, DNS, TCP gibi internet temelleri konusunda yeterli bilgiye sahipti Ayrıca, JavaScript iyi bilinen bir dildir ve Nodejs'ye tüm web geliştirme topluluğunun derhal erişebilmesini sağlar

Teknik detaylar


Nodejs, olay döngüsü adı verilen bir döngüde gelen istekleri işleyen bir Javascript çalışma zamanı ortamıdır

Threading

Nodejs bir çalışır tek bir iş parçacığı kullanarak, engellenmeyen I / O iş parçacığı maliyeti ödemeden eşzamanlı bağlantı onbinlerce destek sağlayan, aramaları bağlam anahtarlama [61] kullandığı tüm istekleri arasında tek bir iş parçacığı paylaşmak tasarım gözlemci desen I / O gerçekleştiren herhangi bir fonksiyon kullanmanız gerekir derece eşzamanlı uygulamalar, bina için tasarlanmıştır geri arama Tek iş parçacıklı olay döngü karşılamak amacıyla, nodejs kullanan libuv sırayla engellenmeyen asenkron I / O bazı operasyonlarını sorumlu bir sabit boyutlu ThreadPool'da kullanır kitaplığı [4]

Bu tek iş parçacıklı yaklaşımın dezavantajı nodejs izin vermez ki dikey ölçekleme sayısını artırarak CPU çekirdekleri gibi küme olarak ek bir modül, kullanmadan üzerinde çalıştığı makinenin [62] StrongLoop Process Manager [ 63] ya PM2 [64] Ancak, geliştiriciler libuv threadpool parçacığı varsayılan sayısını artırabilirsiniz; Bu konuları sunucu işletim sistemi tarafından çoklu çekirdek dağılmış olması muhtemeldir

Nodejs paralel görevler Yürütme bir iş parçacığı havuzu tarafından işlenir ana iş parçacığı arama fonksiyonları parçacığı havuzu çekme içinde ipler ve yürütmek paylaşılan görev sırası görevleri göndermek Kendiliğinden engellenmeyen ağ gibi sistem işlevlerini doğal kendi iş parçacığı üzerinde bir engelleme şekilde dosya G / Ç çalıştırmak gibi sistem fonksiyonlarını bloke ederken, soket engellenmeyen tarafı çekirdek çevirir parçacığı havuzu, bir iş parçacığı bir görevi tamamladığında, sırayla uyanır ve kayıtlı geri arama yürütmek bu ana iş parçacığı bildirir callbacks ana iş parçacığı üzerinde seri olarak işlenir bu yana, uzun ömürlü hesaplamalar ve diğer CPU bağlı görevleri tamamlanana kadar tüm olay döngü donacak

V8

V8 için inşa JavaScript yürütme motoru Google Chrome ve açık kaynaklı 2008'de Yazılı Google tarafından C ++ , V8 yerli JavaScript kaynak kodu derler makine koduna gerçek zamanlı olarak yorumlamak yerine

Nodejs kullanır libuv asenkron olayları işlemek için Libuv, Windows ve hem ağ ve dosya sistemi işlevleri için bir soyutlama katmanı POSIX NonStop ve Unix Linux, Mac OS X, ÖSS gibi sistemleri tabanlı

Nodejs temel işlevi bir JavaScript kütüphanede bulunur C ++ ile yazılmış nodejs bağlamaları, birbirlerine ve işletim sistemi bu teknolojileri bağlayın

Paket yönetimi

npm nodejs sunucu platformu için önceden yüklenmiş paket yöneticisidir Üçüncü taraf nodejs programlarının kurulumunu ve yönetimini organize npm kayıt nodejs programları yüklemek için kullanılır ile npm karıştırılmamalıdır değildir CommonJS () gerektiren deyimi Bu yük koduna kullanılmaz; bunun yerine, komut satırından kod bağımlılıkları kodu yüklemek ve yönetmek için kullanılır Gibi npm kayıt defterinde bulunan paketler basit yardımcı kütüphaneleri arasında olabilir Underscorejs Grunt gibi koşucuları göreve

Birleştirilmiş API

Nodejs bir tarayıcı ile kombine edilebilir, (örneğin, bir veri tabanı destek JSON veri Postgres , [67] MongoDB veya CouchDB ve benzeri) JSON birleşik bir JavaScript geliştirme yığını için Esasen gibi sunucu tarafı geliştirme desenleri nelerdi adaptasyonu ile MVC , MVP , MVVM , vb nodejs izin verir yeniden kullanımı istemci tarafı ve sunucu tarafı arasında aynı modeli ve servis arayüzü

Event Loop

Bir bağlantı kurulduğunda bildirilir ve işletim sistemi bir geri verecektir ki nodejs işletim sistemi ile kendini kaydeder Nodejs çalışma zamanı içinde, her bağlantı bir küçük yığın ayırma Geleneksel olarak, nispeten ağır işletim süreçleri ya da konuları her bağlantıyı ele Nodejs yerine süreçlerin ya da parçacığı, ölçeklenebilirlik için bir olay döngü kullanır [68] Diğer olay kaynaklı sunuculara aksine, nodejs olay döngüsü açıkça çağrılacak gerek yoktur Bunun yerine geri çağrıları tanımlanır ve sunucu otomatik geri arama tanımının sonunda olay döngüye girer Yapılacak başka callbacks olduğunda nodejs olay döngü çıkar

Alıntı Yaparak Cevapla
 
Üye olmanıza kesinlikle gerek yok !

Konuya yorum yazmak için sadece buraya tıklayınız.

Bu sitede 1 günde 10.000 kişiye sesinizi duyurma fırsatınız var.

IP adresleri kayıt altında tutulmaktadır. Aşağılama, hakaret, küfür vb. kötü içerikli mesaj yazan şahıslar IP adreslerinden tespit edilerek haklarında suç duyurusunda bulunulabilir.

« Önceki Konu   |   Sonraki Konu »


forumsinsi.com
Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ForumSinsi.com hakkında yapılacak tüm şikayetlerde ilgili adresimizle iletişime geçilmesi halinde kanunlar ve yönetmelikler çerçevesinde en geç 1 (Bir) Hafta içerisinde gereken işlemler yapılacaktır. İletişime geçmek için buraya tıklayınız.