
Bu bölümde NodeJs nedir, nasıl çalışır, avantajları ve dezavantajları, npm, hangi şirketler NodeJs yatırım yapmıştır görmekteyiz.
Bu bölümde NodeJs kurulumunu gerçekleştireceğiz. Mac ve Linux için yükleme videoları eklenecektir. Aşağıdaki linki kullanarak kurulumu gerçekleştirebilirsiniz.
Visual Studio Code'u kurmak için bu videoyu izleyebilirsiniz.
Mac ve Linux için kurulumlar aynıdır.
Bu bölümde örnek bir NodeJs projesi içerisindeki dosya ve yapıları öğreniyoruz.
Bu bölümde yukarıdaki örnek NodeJs projesini oluşturmak için yapmamız gerekenleri öğrenicez.
Bu bölümdeki require ve module.exports ES5 olarak sınıflandırılır ve eski methodlar olarak bilinir fakat NodeJs şu andaki sürümünde default olarak bu komutları barındırmaktadır. İlerleyen zamanda bunun üstesinden gelecek yeni nesil import / export / export default gibi komutları nasıl çalıştıracağımızı göreceğiz.
Bu bölümde işlemlere nasıl müdahale edeceğimizle ilgili bilgileri öğreniyoruz.
Bu bölümde const / let ve var tanımlamalarının nasıl yapıldığını ve aralarındaki temel farkları öğreniyoruz
JavaScript içerisindeki farklı veri tiplerini bu videoda öğreniyoruz
JavaScript içerisindeki artimetik işlemlerinin nasıl yapıldığını görüyoruz.
Bu bölümde JavaScript kullanarak bir veri tipini diğerine nasıl dönüştürebileceğimizle ilgili bilgileri öğreneceğiz.
Bu bölümde iki değişken veya iki koşulu nasıl karşılaştırdığımızı ve bunların Boolean veri tipi üzerinden nasıl çalıştığını anlayacağız.
Bu bölümde her programlama dilinde bulunan ve en önemli statement'lardan olan
if
else if
else
ve tenary - inline if
komutlarının nasıl kullanıldığını öğreneceğiz
Bu bölümde JavaScript içerisindeki temel döngülerden bahsedeceğiz
Bunlar
while
do while
ve for looplarıdır.
Bu bölümde JavaScript içerisinde bulunan fonksiyonların nasıl tanımlanabildiğini ve nasıl çalıştıklarını anlayacağız.
Bu bölümde JavaScript içerisinde bulunan class'ların temelini ve nasıl çalıştığını öğreneceğiz
Bu bölümde öğrenmiş olduğumuz classlar üzerinde nasıl inheritance yapıp super class'lar oluşturabildiğimizi öğreneceğiz.
Bu bölümde JavaScript içerisindeki Array'leri (dizi) öğreneceğiz. Array'ler JavaScript içerisinde bulunan temel obje tipi olarak bilinir.
Bu bölümde bir önceki videoda öğrenmiş olduğumuz Array'ler üzerinden nasıl döngüler oluşturabileceğimizi öğreneceğiz.
Bu bölümde JavaScriptin temelinde bulunan Math isimli class'daki methodları ve değişkenleri inceleyeceğiz.
Bu bölümde JavaScriptin temelinde bulunan Date isimli class'daki methodları ve değişkenleri inceleyeceğiz.
Bu bölümde JavaScript içerisinde bulunan Objeleri öğreniyoruz.
Bir önceki videoda öğrendiğimiz objelerin üzerinde kullanabileceğimiz methodları ve Object class'ını tanıyacağız.
Bu bölümde bir önceki Obje methodlarını da içeren bir dizi Array methodlarını kullanıp nasıl çalıştığını öğreneceğiz.
Bu bölümde daha önce tanımladığımız değişken ve veri tiplerini hangi bloklar altında ne şekilde kullanılabileceği hakkındaki bilgileri öğreneceğiz
Bu bölümde JavaScript içerisindeki callback'lerin nasıl kullanılacağı ve callback'lerle neler yapacağımızı öğreneceğiz
Bu bölümde JavaScript içerisine eklenmiş asenkron olarak çalışan mekanizma ve yapıları anlayacağız
Promise
resolve
reject
async
await
.then
.catch
Bu bölümde JavaScript tarafındaki çalışmayan yeni özellikleri çalıştırmanızı sağlayan babeljs'in nasıl kurulacağını göreceğiz.
Bu bölümde kurulumunu yaptığımız BabelJs'i farklı şekillerde nasıl kullanılabileceğini öğreneceğiz.
Bu bölümde NodeJs'in experimental module'u içerisinde bulunan import ve export default gibi komutları babel kullanarak nasıl kullanıcağımızı öğreneceğiz.
Bu modülü kullanarak işletim sistemi hakkında bilgiler alacabileceğimiz method ve değişkenleri göreceğiz
Bu modülü kullanarak Dosya sistemine müdahale edebiliyoruz. Bu müdahaleleri fs altındaki özel method ve değişkenlerle gerçekleştirebiliyoruz.
child_process kullanarak bir NodeJs işleminin altından başka bir NodeJs işlemini nasıl başlatacağımızı öğreneceğiz.
axios isimli kütüphaneyi kullanarak HTTP üzerinden istek atabiliyoruz. Başka sunuculara ulaşmak için hem ön yüzden hem de NodeJs üzerinden kullanılabilen bir modüldür. İsteklerinizi sınıflamanızı ve istek template'ları oluşturmanıza olanak sunuyor. Bu bölümde axios isimli modülün kullanımını inceleyeceğiz
Lodash isimli modülü kullanarak özellik Obje ve Arrayler üzerinde işlem yapabileceğiniz bir çok method'a erişim sağlayabiliyorsunuz. Bu sayede JavaScript içerisinde bulunmayan bu methodları tekrar tekrar yazmak durumunda kalmıyoruz. Lodash hem ön yüzde hem de arka yüzde kullanılabiliyor. Bu bölümde en önemli methodlarını inceleyeceğiz.
Jimp NodeJs içerisinde bulunan en önemli resim işleme modülü olarak bilinmektedir. İçerisinde yüzlerce method ve değişken bulunmaktadır. İhtiyacınıza göre resimleri hem server'ın local dizinin de yada internet üzerinde olan resimleri okuyup üzerinde resim işlemleri yapmanızı sağlar. Sunucu tarafında çalışmaktadır.
Bu bölümde daha önceki bölümlerde işlediğimiz BabelJs'i http sunucu mekanizmamıza eklemliyoruz. Bunun yanında HTTP sunucumuzun proje yapısını hazırlıyoruz.
Bu bölümde ExpressJs sunucumuzu src/index.js içerisinde ayarlıyoruz ve sunucumuzu çalıştırıyoruz.
Bu bölümde Express'in req modülü üzerinden sunucumuza veri iletiyoruz ve verinin doğru iletildiğinden emin oluyoruz.
req.query
req.params
req.body
isimli objeleri kullanıyoruz
Bu bölümde ExpressJs'i kullanarak req altında bulunan ekstra bilgileri görüntülüyoruz ve bunlar için özel route'lar yazıp JSON formatta internete açıyoruz.
Bu bölümde ExpressJs altında bulunan response yani http istek cevabı mekanizmasını ve cevap tiplerini inceliyoruz.
Bu bölümde Express altında bulunan Router mekanizmasını kullanarak farklı uygulamaları farklı route'lar üzerinden devreye alıyoruz. Uygulamamızı büyütmek adına bu çok önemli bir özelliktir.
Bu bölümde Express altında bulunan ara katman yazılımı yazmamızı sağlayan middlewares'ların nasıl çalıştığını anlamaya çalışacağız.
Bu bölümde bir önceki bölümde görmüş olduğumuz ara katman yazılımlarının paketleştirilip bizim kullanımımıza sunulan hallerini öğreniyoruz. Bunlar express için bir çok projede kullanılan ara katman yazılımlarıdır. Bunun yanında express tarafından da önerilir.
Bu bölümde Express içerisinde ekstra methodlar kurmamıza olanak sunan yapıyı anlamaya çalışıyoruz.
Bu bölümde express-actuator isimli modülü ara katman yazılımı olarak kullanarak çalışan http sunucumuzun durumuyla ilgili bilgileri http server'ımız üzerinden okuyabiliyoruz.
Bu bölümde PM2 isimle işlem yöneticisini kullanarak işlememizin sonsuza kadar çalışmasını sağlıyoruz. Bu sayede terminali kapatsak dahi bilgisayar kapanmadığı sürece sunumuz ölmüyor.
PM2 alternatifleri olarak
forever
nodemon
docker
kullanılabilir
Bu bölümde leftpad isimli bir modülü ve modülü kapsayacak proje yapısını yazıyoruz. Daha sonrasında bu kodu npm üzerinde açık kaynak olarak yayınlayacağız ve hem bu kodun başkaları tarafından kullanılmasını sağlayacak hem de dünyanın herhangi bir yerinden npm üzerinden bu kodun indirilebilmesini sağlayacağız.
Bu bölümde kodumuzu npm üzerinde paylaşmak için gerekli ayarları yapıp kodumuzu açık kaynak haline getiriyoruz.
Npm üzerinden paylaştığımız kodu şimdi başka bir projede kullanabilmek için npm install komutunu kullanarak kuruyoruz. Daha sonrasında bir test programı yazıp sorunsuz çalıştığını görüyoruz.
Bu bölümde açık kaynak kodlu olacak olan random-coordinate-generator isimli modülü kendi kullanıcı adımızı kullanarak yayınlıyoruz. Bu sayede ikinci safhada sunucu projemize bunu bir modül gibi çağırma şansına sahip oluyoruz.
Bu bölümde sunumuzun kodlarını yazıyoruz ve gerekli modülleri entegre ediyoruz. Bu sunucu kısmında babeljs kullanmıyoruz onun yerine NodeJs içerisindeki esm yani experimental modules kısmını kullanıyoruz.
Bu bölümde 5. bölümde gördüğümüz pm2 ile sunucumuzu yayına almaya hazırlanıyoruz.
Bu eğitimde NodeJs 'e sıfırdan bir giriş yapıp eğitimin sonunda açık kaynak kod yazma seviyesine ulaşacağız.
NodeJs, JavaScript, BabelJS, ExpressJs, PM2 gibi paketlerin kullanımlarını sağlayacağız. NPM üzerinden kodlarımızı açık kaynak hale getirip bunları kendi projelerimiz üstünde kullanabileceğiz.
Bu sayede bir paketi belki de onlarca projede kullanırken tek bir yerden yönetmeyi sağlayacağız.
JavaScript'in ES5, ES6, ES7, ES8 vb. gibi gelen değişikliklerin NodeJs tarafında nasıl kullanacağımızı da öğreneceğiz.
NodeJs insanlar için çoğu zaman kafa karıştırıcı olabiliyor bunun temel sebebini de JavaScript'in kullanım alanındaki genişlikle açıklayabiliriz.
Bu eğitimde NodeJs ile ilgili kısımlarda kafanızdaki oluşabilecek karışıklıkları da gidermeyi amaçladım.
NodeJs çoğu zaman bir dil olarak nitelendiriliyor fakat bunun böyle olmadığını çok iyi biliyoruz. Çünkü NodeJs aslında bir çalışma ortamıdır. Bu çalışma ortamı Google v8 javascript motorunu kullanmaktadır. Bu sebep ile NodeJs kendi içerisinde JavaScript çalıştırabilliyor. Bu bir kazan kazan durumu çünkü JavaScript'i bilgisayar terminalinde çalıştırabilecek herhangi bir araç bulunmuyordu. NodeJs javascript'i bilgisayar terminalinde çalıştırarak JavaScript'e ayrı bir boyut kazandırdı. Bunun yanında Google v8 motorunun sadece tarayıcılar için değil bilgisayarlar için kullanılmasının önü de açıldı. Bu sayede hem JavaScript tarayıcı ve bilgisayar terminalinde çalışabildi hem de JavaScript için daha öncesinde geliştirilmiş kodlar hızlıca NodeJs'e entegre edilebildi. Bu sayede kodlarımız hem ön yüzde hem de arka yüzde benzer şekilde çalışabileceği bir hale gelmiş oldu. Bu bir çok şirket için hızlı geliştirme anlamına gelmektedir.