Pengalaman menggunakan NestJs

I am a Junior Fullstack Developer who currently study at University of Merdeka Malang majoring in Management Information Systems. Interested in Devops, Cloud Computing and Microservice.
Sudah beberapa bulan sejak aku menggunakan Framework Nestjs ini dan kali ini aku akan membagikan pengalamanku selama menggunakan NestJs ini.
Bagi yang belum tau apa itu NestJS, jadi NestJs itu adalah salah satu Backend Framework di Nodejs yang style nya itu mirip seperti Angular dan sistemnya berbasis module. Maksudnya module disini adalah jadi semua logic aplikasi itu dipisah menjadi beberapa module sehingga kode kita lebih rapi dan clean.
Ketika pertama kali menggunakan Nestjs aku bingung banget, soalnya aku sendiri basicnya laravel trus coba pindah ke Nestjs itu beda banget. Banyak banget perbedaannya mulai dari migration, module, controller, service, orm, microservice dst.
Ini mungkin poin-poin utama ketika pertama kali aku menggunakan NestJs:
- Controller dipisah berdasarkan module. Ketika kita pake Laravel biasanya kan kita langsung ke controllernya, tetapi di NestJs engga. Di Nestjs kita perlu bikin module nya dulu terus import module nya ke root module (AppModule). Menurutku disini prosesnya cukup ribet tapi lama kelamaan menurutku cara ini juga masuk akal.
- Banyak pilihan ORM. Di Nestjs banyak sekali pilihan ORM, ada yang TypeORM, Sequelize, sama Prisma. Dari sini kita harus nentuin mana yang terbaik, mudah dan performanya bagus. Aku udh pernah nyoba semuanya dan yang menurutku cocok sama kebutuhan ku ya TypeORM. Disini tipsku buat yang baru belajar adalah pilih salah satu dan jangan gonta-ganti. Kalau udh pake TypeORM ya seterusnya pake TypeORM, jangan gonta ganti ke Sequelize atau Prisma. Cukup satu aja.
- Dependency Injection (DI). Fitur DI ini sebenarnya sudah ada di framework - framework lain seperti Laravel, AdonisJS, Spring, dsb. Aku sendiri ketika pertama kali coba framework Nestjs ini bingung banget gmn cara kerjanya si DI ini. Alhasil mau nggak mau aku pelajari dulu cara kerja DI di youtube. Terus setelah aku tau, paham dan pake fitur DI ini, lama - lama aku ketagihan banget sama kelebihan2 yang ditawarkan. Performa aplikasi makin bagus dan kode makin clean. Dari sini aku tau kalo fitur DI itu wajib banget untuk semua Framework Backend.
- Fitur install sendiri. Jadi disini itu fitur - fitur Nestjs perlu install sendiri jadi nggak built in langsung dari Nestjs-nya. Beda dengan Laravel yang hampir semua fiturnya itu udh built-in di Laravelnya. Inilah alasan kenapa performa si Nestjs ini cepet banget untuk awal-awal.
- Tidak cocok untuk Fullstack MVC. Walaupun sebenarnya bisa untuk dibuat MVC tetapi Nestjs ini nggak cocok untuk MVC. Kenapa? Karena perlu banyak sekali waktu buat konfigurasi seperti Templating Engine, Middleware, Misah Logic, Testing dsb. Dari pengalamanku ini aku mungkin bisa saranin kalau untuk MVC lebih baik menggunakan Laravel yang fitur - fiturnya udh disediain ketimbang menggunakan Nestjs ini. Nestjs ini cocoknya digunakan buat Backend aja.
- Support Microservice. Ketika pertama kali menggunakan Nestjs ini aku baru tau kalau kita bisa bikin Microservice yang bisa saling komunikasi tanpa menggunakan Rest API ataupun Message Broker. Jadi kita komunikasinya langsung melalui protokol TCP nya. Nestjs ini cocok banget buat bikin aplikasi Microservice dan recommended banget. Banyak pilihan protocol mulai dari TCP, Kafka, RabbitMQ, GRPC, dsb.
- Susah bikin Mock Test. Untuk buat mock class di Nestjs itu susah banget, aku searching best practice2 buat bikin Mock di Nestjs itu susah banget dan kodenya itu banyak banget.
Itu dia poin - poin yang bisa aku share ketika menggunakan framework NestJS. Kemudian aku juga akan share plus minus ketika menggunakan framework ini:
Kelebihan
- Performa Bagus
- Clean Code dengan Module Pattern
- Support Microservice
- Size Docker Image kecil (250mb - 300mb)
- Cocok untuk aplikasi kecil - aplikasi besar
Kekurangan
- Dokumentasi kurang lengkap dan susah dimengerti untuk pemula
- Kebanyakan ORM
- Fitur Migration & Seeder perlu cari dan install sendiri
Jadi itu plus minus menurutku ketika menggunakan Nestjs. Ini semua dari pengalaman aku sendiri selama beberapa bulan membuat projek sendiri menggunakan framework ini. Overall menurutku framework ini cukup mirip seperti Spring Boot dan framework ini mungkin akan aku terus pake kalau sewaktu-waktu ada projekan yang mengguakan Nodejs. Framework Backend Nodejs paling bagus menurutku sampai sekarang ya Nestjs ini.
Oke mungkin itu saja yang bisa aku share, jika temen - temen ada pertanyaan bisa tanya melalui kolom komentar dan terimakasih juga sudah meluangkan waktu buat membaca artikel ini. Sampai jumpa di artikel selanjutnya.

