DEV Community

Cover image for 🚀 Node.js: Hızlı, Esnek ve Ölçeklenebilir Web Geliştirme Deneyimi!
Aybike
Aybike

Posted on

🚀 Node.js: Hızlı, Esnek ve Ölçeklenebilir Web Geliştirme Deneyimi!

🤔 Web Uygulamalarında Performansın Sırrı?


💡 Diyelim ki chat uygulaması veya sosyal medya uygulamaları gibi gerçek zamanlı bir uygulama yapmak istiyoruz. Bu uygulamalar yüksek performans gerektirir. Non-blocking ve event-driven gibi özelliklere sahip olması bu tip uygulamalar için Node.js’in tercih edilmesini sağlar. Bu özellikleri açıklamadan önce Node.js'in derinlerine inelim:

Link

🌐 Biraz eskilere gidelim mi? ..

Web teknolojileri eskiden 3 kullanım sunardı; HTML, CSS ve JavaScript.

Fakat 2009 da Node.js ‘in ilk sunumu yapıldığında herkesi heyecanlandıran bir şey vardı; artık JavaScript sadece front-end değil back-end kısmında da kullanılabilecekti. Yani Javascript artık tarayıcının sınırlamaları arasında kalmayacaktı.

Örneğin artık dosyalarla direkt iletişime geçilebilir, kendi sunucumuzu oluşturabilir ve veri tabanlarıyla direkt iletişime geçebiliriz.

Link

👉 Event-Driven Yapısı

Node.js event-driven yani olay-odaklı çalışır. Ne demek istiyorum?

Burada ‘olay’ dan kastım; bir web sayfasının kullanıcı tarafından yüklenmesi olabilir, dosya okuma işlemleri olabilir, kullanıcının kayıt olma işlemini tamamlaması olabilir.. İşte bu gibi olayları izleyip, bunlara uygun yanıt vermesine event-driven diyoruz.

Callback fonksiyonları, promise, async/await yapılarını kullanılarak gerçekleştirilebilir.

👉 Non-Blocking Özellik

Bu özelliği anlamak için Node.js bir sihirbaz gibi düşünülebilir 🧙. Bir işlemi tamamlamadan diğer işlemlere devam edebilir.

Bu sayede, Node.js ile geliştirilen uygulamaların daha hızlı ve ölçeklenebilir olması sağlanır.

Bu özelliği aşağıdaki Madenci Benzetmesi ile daha iyi anlayabilirsiniz..

📝 Ölçeklenebilir derken şu kastediliyor: Uygulamalarınızın kullanıcı sayısı arttıkça, sunucu kapasitenizi de arttırarak daha fazla trafik ve isteği yönetebilirsiniz.

👉 Asenkron Yapısı

Asenkron yapısı sayesinde birden fazla işlemi aynı anda yapabilir!

Böylece dosya okuma, veritabanı sorguları ve HTTP istekleri gibi işlemler daha hızlı ve verimli hale gelir.

🔨 Madenci Benzetmesi:

Elmas bulmak için mağarada harıl harıl çalışan bir madenci düşünelim. Madenci, elmas arıyor ve bulduğu elmasları torbasına koyuyor olsun. Elmas bulduğu zaman, torbasındaki elmasların sayısını arttırmak için birkaç saniye beklemesi gereksin.

Link

Şimdi gelelim asıl noktaya, normal bir programla dili kullanıldığında, madenci elmas bulduğunda beklemesi gereken süre boyunca başka iş yapamaz. Fakat Node.js kullanıldığında, madenci elmas bulduğunda elmasları torbasına koymak için beklemesi gerekmez, bu bekleme işlemi arka planda devam eder ve madenci o sırada başka işlerine devam edebilir.
Mesela fenerini kontrol edebilir, yönünü değiştirebilir ya da başka işlerini yapabilir.

💎💎

İşte Node.js non-blocking özelliği sayesinde, madenci bir sonraki işlemi yapmak için elmas bulma süresinin dolmasını beklemez, diğer işlerini yapmaya devam eder. Bu süre arka planda gerçekleşip, süresini doldurur. Bu sayede madenci işlerini daha verimli bir şekilde yapmış olur. 💪 💪

🎉 Node.js ile yazılan popüler uygulamalar :

İşte Node.js kullanarak yazılmış meşhur teknolojilerden bazıları:

Link

Okuduğunuz için teşekkür ederim.. 🙏 😊

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay