Node.js - Giriş (Introduction)

2021-12-17

_config.yml

Merhabalar, her zaman niyetlenip bir türlü başlayamadığım blog yazma konusunda nihayet ilk adımı attım. İlk blog yazımı yazdığım ve bununla birlikte bir Node.js yazı dizisinin başlangıcını yaptığım için oldukça heyecanlı hissediyorum. Bu seride Node.js üzerine bilmeniz gereken temellerden başlayarak zamanla ileri düzey konulara geçmeyi ve gerçek hayat örnekleriyle de öğrendiklerinizin uygulama alanlarını göstermeyi hedefliyorum. Ayrıca bu eğitimi sadece bir blog yazı dizisi olmaktan çıkarıp videolu örneklerle de destekleme yönünde motivasyonum oldukça yüksek.

Gelelim asıl konuya. Node.js kısaca Google tarafından v8 motorunun kullanılarak Javascript kodlarının browser dışında çalışmasının sağlanmasıyla ortaya çıkmış bir teknolojidir. Node.js ile birlikte artık JS kodlarımızı sunucuda çalıştırabilir ve uygulamalar geliştirebiliriz. Her şeyi pure JS kodu yazarak yapabileceğimiz gibi her zaman işlerimizi kolaylaştıran kütüphaneler(modüller) de mevcuttur. Bu kütüphaneleri kullanarak çok daha hızlı şekilde bir web uygulaması geliştirebilir, yapacağınız işleri çok daha az kod yazarak gerçekleştirebilirsiniz.

Bu yazı dizisinde Node.js (aslında Javascript) temelleri ile birlikte, nasıl bir web/konsol uygulaması geliştireceğimizi, uygulama geliştirirken nelere dikkat edilmesi gerektiğini, CPU ve Memory kullanımını nasıl gözetmemiz gerektiğini, performans sorunlarını nasıl çözebileceğimizi öğreneceğiz. Aslında bu konular hangi programlama dili ile çalışırsanız çalışın öğrenilmesi ve uygulanması gereken konulardır.

Yazı dizisinde değinmeyi hedeflediğim konular aşağıdaki gibidir. Yazı dizisine başladıktan sonra mutlaka ufak tefek değişiklikler olacaktır. Bunu zaman gösterecek.

  1. Değişkenler (Variables)
  2. Veri Tipleri (Data Structures)
    1. Strings
    2. Numbers
    3. Booleans
    4. Arrays
    5. Objects
  3. Operatörler(Operators)
  4. Koşullar(Conditions)
  5. Döngüler(Loops)
    1. While
    2. Do-while
    3. For
    4. For…in
  6. Fonksiyonlar(Functions)
  7. Değişken Kapsamları(Variable Scopes)
  8. Sınıf / Nesne Kullanımı(Classes & Instances)
    1. Sınıf tanımlama
    2. Nesne tanımlama
    3. Property Tanımlama
  9. Kalıtım(Interitance)
  10. Hata yakalama(Error Handling)
  11. Destructuring
  12. Built-in methods
    1. Global Methods
    2. JSON Methods
    3. Array Methods
    4. String Methods
  13. Asenkron Fonksiyonlar(Asynchronous Functions)
    1. Callback
    2. Promise
    3. Asyc/Await
  14. Modül Nedir? Nasıl Kurulur? Nasıl Kullanılır?
  15. Modül Oluşturma ve Export (Birden fazla dosyayla çalışma)
  16. Komut Satırı Argümanları (Command Line Arguments)
  17. Çevre Değişkenleri (Environment Variables)
  18. Olaylar (Events)
  19. Generators
  20. Loglama
    1. Console
    2. Winston
  21. Web Scraping/Crawling
    1. Regex ile Web Crawling
    2. Cheerio Modülü ile Web Crawling
  22. Express.js
  23. Socket.io