Merhaba,
Günümüz yazılım düynasında Event Based ve Thread Based olmak üzere birbirinden farklı iki kavram mevcuttur. Bu içeriğimizde bu kavramların neler olduğunu, aralarındaki farkı gözeterek değerlendireceğiz ve bunların yanında Node.js mimarisinin ne olduğunu açıklamaya çalışacağız.
Event Based
Olay tabanlı programlamadır. Bir yazılımın akışını olaylar belirlemektedir. Tanımlanan olaylardan herhangi biri gerçekleşir yahut tetiklenirse sistemin diğer parçalarını ilgilendirmeksizin sadece ilgili olaydaki kodlar çalıştırılacaktır. Dolayısıyla bu şekilde sistem asenkron bir özellik sergileyecek ve her bir olay sade ve sadece kendi içerisindeki kodlarla sistemi meşgul edecektir. İşte olayların birbirlerini ilgilendirmemesi, bir başka deyişle bloklamaması Non Bloking olarak nitelendirilmektedir.
Thread Based
Event Based programlamaya nazaran senkron bir şekilde işlevsellik gösteren programlamadır. Yapılacak herhangi bir işlem bitene kadar diğer işlemler askıya alınacağından dolayı bloklama yaratılacak ve bu şekilde istenmeyen durum mevzu bahis olacaktır.
Node.js Nedir?
JavaScript ile Back-End servisler yazabilmemizi sağlayan bir JavaScript Runtime platformudur. [Node.js] çıkana kadar JavaScript sadece Front-End’de kullanılan bir script diliydi. [Node.js] sayesinde JavaScript’e Back-End özelliği kazandırılmıştır diyebiliriz.
Yukarıdaki görüntüde Node.js’in çalışma mantığı şematize edilmiştir. Şemayı incelerseniz eğer; Node.js, kendisine gelen tüm requestleri birbirinden bağımsız bir şekilde devreye almaktadır. Requestlerden herhangi birinin işlemi bittiği vakit ilgili requestin fonksiyonu CallBack fonksiyonunu çalıştırmakta ve clienta cevap dönmektedir. İşte biz buna asenkron çalışma diyoruz ve dikkat ederseniz eğer Event Based yapısında bir yaklaşım olduğunu görüyoruz. Buradan da çıkarabiliriz ki, Node.js Event Based yaklaşımını benimsemiş bir mimaridir.
İçeriğimizin başlığında belirtilen kavramları elimden geldiğince izah etmeye çalışmış bulunmaktayım. Umarım faydalı ve bilgilendirici bir makale olmuştur.
Sonraki yazılarımda görüşmek dileğiyle…
İyi çalışmalar…