NestJS'ye Giriş [+6 Öğrenme Kaynakları]
Yayınlanan: 2023-01-06NestJS, ölçeklenebilir, verimli ve güvenilir sunucu tarafı uygulamaları oluşturmaya yönelik ilerici bir Node.js çerçevesidir.
NestJS, düzensiz kod tabanlarını ortadan kaldırmak için oluşturuldu. Modüler yapısı, kodu farklı modüller halinde düzenlemeyi kolaylaştırır.
NestJS, TypeScript üzerine kurulmuştur ve kaputun altında ExpressJS kullanır. NestJS, TypeScript'in tip denetleme gücünden yararlanmak isteyen geliştiriciler tarafından sevilir. NestJS, İşlevsel Reaktif Programlama (FRP), Nesne Yönelimli Programlama (OOP) ve İşlevsel Programlamanın (FP) farklı yönlerini birleştirir.
Neden NestJS?
NestJS, iyi bir yapıya ve kullanımı kolay Komut Satırı Arayüzü (CLI) araçlarına sahip olduğu için yeni başlayanlar için uygundur. Böylece geliştiriciler, bu Node.js çerçevesini kullanırken tek bir komutla yeni bir özellik oluşturabilirler.
NestJS, başlamanız için modül, hizmet, denetleyici ve test yığınını sağlar. Ayrıca, geliştirme yolculuğunuzu kolaylaştırmak için mevcut olan birçok şablon ve şablona güvenebilirsiniz.
NestJS için öğrenme eğrisi, JavaScript ve Angular'da döngüler, sözdizimi ve koşullar hakkında bilgi sahibi olanlar için kolay olacaktır.
NestJS'nin Özellikleri
TypeScript üzerine kurulu
NestJS, JavaScript'in bir üst simgesi olan TypeScript üzerine kurulmuştur. TypeScript, kodda bir şeyi her değiştirdiğinizde hataları manuel olarak kontrol etmeniz gerekmediğinden daha iyi bir geliştirme deneyimi sağlar. TypeScript temel olarak JavaScript'in tüm özelliklerini sunar, ancak bazı ek işlevlerle birlikte gelir.
Bağımlılık Enjeksiyon Kabı
Bağımlılık enjeksiyonu, sınıfın kullandığı nesnelerin başlatılmasını sınıfın kendisinden ayırır. Böyle bir durumda, sınıfa 'istemci', sınıf bağımlılıklarına ise 'hizmetler' adı verilir. NestJS'deki bu yerleşik DI, uygulamaları daha verimli ve modüler hale getirir.
Güçlü Komut Satırı Arayüzü (CLI)
NestCLI'yi kullanarak tüm NestJS uygulamalarınızı başlatabilir, geliştirebilir ve bakımını yapabilirsiniz. Nest CLI'yi kullanarak yapabileceğiniz pek çok şey vardır, örneğin;
- Proje iskelesi
- Projeyi geliştirme modunda sunmak
- Üretim dağıtımı için uygulama oluşturun ve paketleyin
modülerleştirme
Her NestJS uygulamasının en az bir modülü vardır. 'root' modülü en temel olanıdır. Tipik bir NestJS uygulamasında, uygulamanın her mantıksal parçası aynı etki alanı sınırında (modül) yaşar. Böyle bir ayar, bir uygulamanın birbiriyle yakından ilişkili yeteneklere sahip birden çok modüle sahip olacağı durumlarda bileşenlerin düzenlenmesini kolaylaştırır.
Birim testi
Otomatik test, birçok avantajla birlikte gelir. Bununla birlikte, bu tür testleri belirleme süreci çok daha kapsamlı olabilir. NestJS, ekiplerin testleri oluşturmasına ve otomatikleştirmesine yardımcı olacak çeşitli özelliklere sahiptir. NestJS ile ilgili iyi olan şey, çeşitli test araçlarıyla kullanılabilmesidir. Nest bağımlılık enjeksiyon sistemi, bileşenlerle kolayca alay etmek için test sırasında kullanıma sunulur.
Veritabanı agonisti
NestJS ile çalışırken ihtiyaçlarınıza ve tercihlerinize göre herhangi bir SQL veya NoSQL veritabanı ile kolayca entegrasyon yapabilirsiniz. Uygun bir Node.js sürücüsü yüklemeniz gerektiğinden NestJS'yi bir veritabanına bağlamak çok basittir.
Çeşitli kitaplıkları destekleyin
NestJS, uygulama geliştirmeyi hızlandıran çeşitli araçlarla uyumludur. Bu çerçeve, fazladan bir yapılandırma olmaksızın Günlüğe Kaydetme, Doğrulama, Önbelleğe Alma, WebSockets, TypeORM, Mongoose ve GraphQL'yi destekler.
NestJS Mimarisi ve İş Akışı
NestJS, denetleyiciler, sağlayıcılar ve modüllerden oluşan 3 katmanlı bir mimariye sahiptir. Geliştiriciler böylece çakışmayan temiz kodlar oluşturabilir.
Kontrolörler
NestJS'deki denetleyiciler, müşteri istekleri ve yanıtları arasında bir köprü görevi görür. Yönlendirme mekanizması, bir HTTP isteği yapıldığında her zaman isteği uygun bir denetleyiciye yönlendirecektir. Çerçeve, denetleyiciler oluşturmak için dekoratörleri ve sınıfları kullanır. Her sınıf yöntemi daha sonra belirli bir isteği almak için yollara eşlenir.
Sağlayıcılar
Sağlayıcılar, NestJS'nin temelleri olarak tanımlanabilir. Sağlayıcılar, bağımlılıklar olarak enjekte edilir ve çeşitli nesneler arasında ilişkiler oluşturur. Yardımcılar, hizmetler veya havuzlar gibi NestJS'deki sınıflar, "@Injectable()" dekoratörü eklendikten sonra sağlayıcılar olarak ele alınabilir. Bu tür sağlayıcılar, yapıcı aracılığıyla bir sınıfa da enjekte edilebilir ve NestJS, bağımlılıkları çözecektir.
Modüller
NestJS'deki bir modül, yakından ilişkili bir dizi yeteneği bir araya getirir. Her NestJS uygulamasının, giriş noktası olarak kullanılan bir kök modülü vardır. Düzenli ve okunması kolay bir kod istiyorsanız, birden çok modülün kullanılması şiddetle tavsiye edilir. Nest'in `@Module()` dekoratörü, bir modül tanımlar ve ayrıca bu modülle birlikte kullanılacak bağımlılıklar, denetleyiciler ve sağlayıcılar gibi bilgiler sağlar.
NestJS'ye Başlarken
Node.js ve npm'nin kurulu olduğundan emin olun. Bir çalışma zamanı ortamına ihtiyacınız var ve Node.js bu kurulum için mükemmeldir. Sürüm >= 12'ye ihtiyacınız var, v13 hariç. Bu komutlar aracılığıyla Node.js ve npm kurulu olup olmadığını kontrol edebilirsiniz;
node -v
npm -v
Her ikisi de kuruluysa, buna yakın bir çıktı alırsınız.
Bunlara sahip değilseniz, resmi sayfa aracılığıyla yükleyin. Şans eseri, hem Node.js hem de npm birlikte yüklenir.
- Nest CLI'yi yükleyin. CLI'yi ve projeyi ayarlamak için aşağıdaki komutları kullanın;
npm i -g @nestjs/cli
nest new project-name
Gösterim amacıyla proje adını mynestapp olarak seçiyoruz. NestJS size TypeScript veya Vanilla JavaScript ile çalışma şansı verir. Size uygun olanı seçin ve enter tuşuna basın. Uygulamanın iskelesi kurulduktan sonra, dosya yapısı kurulacak ve 'src' klasörü, bu ekran görüntüsünde gösterildiği gibi birkaç çekirdek dosyayla birlikte gelecek.
- Uygulamayı çalıştırın/ilk merhaba dünyanız
Kurulum tamamlandıktan sonra, geliştirme sunucusunu çalıştırmak için bu komutları çalıştırın.
cd mynestapp
npm run start
Tarayıcınıza http://localhost:3000/ yazın ve NestJ'lerde ilk "Merhaba Dünyanız" görüntülenmelidir.
NestJS: Avantajlar
- Öğrenmesi kolay . Özellikle Angular'dansanız veya genel bir JavaScript bilginiz varsa, NestJS'de ustalaşmak kolaydır. Ayrıntılı dokümantasyon ayrıca bu güçlü çerçeveyle çalışma konusunda uzmanlaşmayı kolaylaştırır.
- esnek NestJS kullanarak pek çok şey inşa edebilirsiniz. Bu Node.js çerçevesini kullanarak MVC uygulamaları, GraphQL uygulamaları, RESTful API'leri ve web soketleri oluşturabilirsiniz.
- Binlerce modül ile birlikte gelir . Topluluk destekli modüller, geliştiricilerin sunucu tarafı uygulamalar oluştururken farklı özellikleri yapılandırmasını kolaylaştırır.
- Hızlı geliştirme ve İyi mimari . NestJS ile çalışırken her şeyi sıfırdan oluşturmak zorunda değilsiniz. Ancak, aynı çerçeve, kodunuzu anlamayı kolaylaştırmak için sağlam bir mimariye sahiptir.
NestJS: Dezavantajları
- TypeScript ve Angular geçmişi olanlar için uygun değil . NestJS, Angular mimarisinden çok şey ödünç alır ve bu tür bilgilere sahip olmayanların söz dizimini ve yapıyı anlaması zaman alabilir.
- Bazı alanlarda eksiklik . NestJS hala genç ve Python ve GO'ya dayalı bazı yerleşik çerçevelerle olumlu bir şekilde rekabet edemeyebilir.
NestJS kullanan şirketler
1 numara. adidas
Bir ayakkabı üreticisi ve tasarımcısı olan Adidas, NestJS kullanan şirketler arasında yer alıyor. NestJS'nin şaşırtıcı özellikleri, bu ayakkabı devini arka ucunda kullanmak için cezbetmiş olmalı.
2 numara. Capgemini
Capgemini, danışmanlık, teknoloji, dış kaynak kullanımı ve profesyonel hizmetler sunan çok uluslu bir Fransız şirketidir. Bu şirket, teknoloji yığınında NestJS kullanıyor.
#3. Roche
Roche, iki bölümü olan çok uluslu bir sağlık şirketidir; ilaç ve teşhis. Roche, ana web sitesinde teknoloji yığınlarından biri olarak NestJS'yi kullanıyor.
Öğrenme Kaynakları
1 numara. NestJS Sıfırdan Kahramana
NestJS Zero to Hero, geliştiricilere TypeScript ve Node.js kullanarak kurumsal arka uç uygulamalarının nasıl oluşturulacağını ve dağıtılacağını öğretir. Kurs, diğer pek çok şeyin yanı sıra API'lerin, Yetkilendirme ve Kimlik Doğrulamanın, Birim testi Nest uygulamalarının ve veritabanı etkileşimi için TypeORM'nin nasıl oluşturulacağını öğretir.
2 numara. NestJS: Eksiksiz Geliştirici Kılavuzu
Bu kurs, geliştiricilere Nest, TypeScript ve TypeORM kullanarak arka uç API'lerinin nasıl oluşturulacağını öğretir. Bu eksiksiz kılavuz, NestJS uygulama kodlamanızı ayarlama, test etme ve dağıtmaya kadar ihtiyacınız olan her şeyi içerir. Ayrıca NestJS web çerçevesinin perde arkasını da anlayacaksınız.
#3. Ana NestJS
Master NestJS, TypeScript kullanarak kurumsal düzeyde Node.js uygulamalarının nasıl geliştirileceğini öğretir. Kurs, doğrulama ve veri serileştirmeyi, JWT belirteçlerinin nasıl çalıştığını, NestCLI'nin nasıl kullanılacağını ve modern veritabanı soyutlamasını ve daha pek çok şeyi öğretir.
#4. Pratikte NestJ'ler (MongoDB ile)
NestJS in Practice, Modüller, Denetleyiciler, GuardsServices, Pipes ve Middleware'den NestJS hakkında öğrenmeniz gereken her şeyi öğretir. Kurs, kodladığınız ve kodunuzu her bölüm için indirilebilir zip dosyalarıyla GitHub'da barındırdığınız proje tabanlı bir yaklaşım benimsiyor.
# 5. Nest.js: Aşamalı Bir Node.js Çerçevesi
Bu kitap, geliştiricilere NestJS'yi ve JavaScript ile TypeScript'ten nasıl yararlanılacağını tanıtmaktadır. Kitap, NestJS uygulamanızı kısa sürede kurup çalıştırabilmeniz için nasıl yapılır formatında tasarlanmıştır.
Ön izleme | Ürün | Değerlendirme | Fiyat | |
---|---|---|---|---|
Nest.js: Aşamalı Bir Node.js Çerçevesi | $24.99 | Amazon'da satın al |
#6. Pratik Nest.js: Temiz MVC web uygulamaları geliştirin
Pratik Nest.js kitabı, çeşitli NestJS özelliklerini kullanan bir çevrimiçi mağaza uygulaması oluşturmak için proje tabanlı bir yaklaşım kullanır. Kitap, NestJS uygulamanızı oluştururken kısa tartışmalar, ipuçları ve yararlı ifadeler içerir.
Ön izleme | Ürün | Değerlendirme | Fiyat | |
---|---|---|---|---|
Pratik Nest.js: Temiz MVC web uygulamaları geliştirin | 16,99 $ | Amazon'da satın al |
Çözüm
Güçlü bir Node.js çerçevesi olmasının yanı sıra NestJS, günümüzde sunucu tarafı uygulamalar için en popüler TypeScript çerçevelerinden biridir. En iyi kodlama uygulamalarını ve standart bir geliştirme mimarisini sunması, uygulama oluştururken iş mantığı oluşturmaya odaklanmak isteyen birçok mühendisin ilgisini çekmesini sağlamıştır.