Created with to build something
Version: 5.0.5
cover-nestjs-framework-bagus-yang-membingungkan

Codding

NestJS : Framework Bagus Yang Membingungkan !

NestJS merupakan salah satu web framework yang menggunakan typescript dalam melakukan pengembangan aplikasi dan dikhususkan untuk membuat arsitektur.

Jul 22, 2020

Sambil menunggu adonis 5 dirilis yang nantinya menggunakan typescript, saya berencana untuk melakukan pencarian ke internet terkait framework yang menggunakan typescript. Dalam pencarian saya sangat sulit untuk menemukannya, kalaupun ada mungkin framework tersebut masih baru bahkan ada juga yang masih dalam pengembangan, mungkin karena typescript yang menurut pribadi saya tidak ada bedanya dengan javascript hanya saja terlalu ketat saat melakukan pendefinisian variabel sehingga jarang yang menyediakan web framework dengan typescript.

alt images Pencarian Web Framework Yang Menggunakan Typescript

Saya sempat terbayang ingin menggunakan express js dengan menggunakan typescript untuk mencoba mempelajari typescript, akan tetapi hati saya bergetar untuk tidak mencobanya karena terlihat ya nggak ada bedanya dengan javascript. Jadinya saya mencoba untuk mencari sesuatu yang lain hingga akhirnya saya melirik framework yang satu ini, framework satu ini identik dengan kucing yang kebetulan saya juga senang kucing. Framework ini disebut - sebut akan disukai oleh orang yang pernah menggunakan express js karena terlalu fleksibelnya dan banyak mendukung library pihak ketiga sehingga anda mungkin tidak perlu mempelajari library yang baru untuk kebutuhan yang sama.

alt images

NestJS merupakan salah satu framework yang menggunakan typescript sebagai bahasa utama dalam melakukan pengembangan (hasil compilenya pasti juga menggunakan javascript), framework kucing ini saya pertama kali kenal melalui sebuah course gratis hanya saja waktu itu saya belum begitu mengenalinya lebih jauh karena saya males melihatnya karena selalu error video coursenya saat diputar.

Nah jika kamu pernah menggunakan express js dalam mengembangkan sebuah API Endpoint untuk kamu gunakan pada aplikasi klien yang kamu buat, nah mungkin kamu akan familiar dalam pengembangan nest js. Beberapa library yang biasa ditemui seperti TypeORM atau Sequelize untuk membuat sebuah modul ORM dan jsonwebtoken untuk membuat JWT Authorization Token dan lain sebagainya terdapat pada nestjs, bedanya nestjs menjembatani library tersebut agar bisa digunakan pada nestjs sehingga kamu tidak perlu pusing lagi mempelajari library - library berikut.

First Impression

Pada pertama kali mencoba NestJS ini berbeda dengan framework yang sudah populer lebih dahulu, anggap saja pemain besarnya seperti Laravel atau Ruby On Rails. Karena NestJS berfokus pada problem arsitektur mungkin struktur direktorinya begitu asing namun tidak bagi pengguna djanggo (tapi ini masih asumsi saya), membagi sebuah modul dalam sebuah direktori mungkin hal yang tidak pernah terpikirkan bagi saya akan tetapi ini lebih menarik bagi saya karena ini memudahkan saya dalam memanage project per modul.

alt images Struktur direktori project

Ok nestjs menggunakan typescript untuk pengembangannya, selagi kamu bisa menggunakan atau bahkan menguasai javascript atau pernah menggunakan bahasa pemrograman yang strong typed mungkin kamu akan familiar dengan typescript. Dalam menggunakan typescript pastinya kamu perlu mengetahui terlebih dahulu fundamental javascript dan sedikit tidaknya mengerti penggunakan basic typescript.

Library yang didukung lumayan banyak

Pertama kali saya menggunakan nestjs sungguh saya lumayan bingung dengan library yang didukung, cukup banyak memang dengan kegunaan yang berbeda - beda. Enaknya library tersebut tidak disertakan saat melakukan init project, akan tetapi ini adalah kelebihan ketika kamu ingin berhemat kapasitas ruangan.

alt images

Selain itu nestjs juga menjembatani library - library tersebut sehingga konfigurasi pada nestjs akan terlihat lebih mudah dan cepat, namun di satu sisi ini akan sedikit menyulitkan saya ketika ingin melakukan automated testing. NestJS memang bisa menjembatani library tersebut untuk dapat digunakan pada core nestjs, akan tetapi nestjs tidak dapat mengakses proses internal library tersebut sehingga mungkin ini akan menyulitkan dalam menggunakan data fake untuk melakukan automated test sehingga browser test adalah pilihan terakhir yang hanya bisa dilakukan.

Dokumentasi Kurang Lengkap

Salah satu komplain terbesar saya dalam menggunakan nestjs adalah dokumentasi yang kurang lengkap, pada framework yang pernah saya pelajari saya setidaknya membutuhkan waktu 1 minggu untuk memahaminya tapi sayangnya pada nestjs karena dokumentasi kurang lengkap saya baru bisa memahami cara penggunaannya dalam waktu 2 minggu.

Meskipun begitu hal ini bisa ditolong dengan melihat sample yang dibuat oleh tim internal nestjs, setiap halaman dokumentasi (meskipun tidak semuanya) memiliki sample terkait dokumentasi. Jadi jika di dokumentasi tidak begitu jelas, nah kamu bisa melihat sample codenya atau kalau perlu langsung saja lihat sample codenya jika dirasa dokumentasi yang dibuat tidak lengkap.

Ntah juga saya sendiri juga bingung apakah framework dengan menggunakan javascript dokumentasinya selalu tidak lengka ?.

Kesimpulan

Mari saya mulai kesimpulan untuk nestjs, selama saya mempelajari nestjs saya sendiri tertantang dalam menggunakannya mungkin karena terlalu sering error sampai saya penasaran atau karena memang saya belum tahu typescript. Ada beberapa hal yang mungkin bisa jadi pertimbangan dalam menggunakan nestjs, seperti :

  1. Jika kamu terbiasa dengan framework dengan model MVC sepertinya ini tidak cocok, meskipun pada dokumentasinya penggunaan MVC sangat memungkinkan akan tetapi hal tersebut akan menjadi terlihat sedikit membingungkan.
  2. Lingkungan typescript akan tidak sangat cocok untuk anda yang belum pernah menggunakan bahasa pemrograman yang strong typed seperti Java, akan tetapi anda bisa menggunakan ini jika ingin mencoba - coba dengan syarat pahami dulu javascriptnya.
  3. Nest JS menggunakan library yang sudah ada untuk menghadirkan beberapa fitur seperti ORM atau Testing, sebaiknya anda mengetahui hal tersebut karena ada beberapa hal yang tidak dapat di selaraskan sehingga anda perlu mengambil jalan tengah yang tidak biasa.
  4. Harap dicatat dokumentasi pada nest js cenderung tidak lengkap, bahkan anda sendiri akan bingung dengan informasi yang terdapat pada dokumentasi. Untuk menimalisir hal tersebut terjadi, silahkan lihat sample code yang terdapat pada dokumentasi. Pada poin ini saya boleh jujur kalau informasi yang terdapat pada dokumentasi kadang tidak tepat bahkan ada sedikit yang tidak sama.
  5. Tidak cocok untuk orang yang tidak mau belajar !

Jika kamu ingin melihat hasil belajar saya (ceritanya pamer) bisa sekali - sekali untuk melihat repositori yang saya buat pada repositori nestjs-training, pada repositori tersebut saya membuat CRUD biasa untuk memanage pengguna. Repositori tersebut tujuannya untuk membuat sebuah API Endpoint yang bisa diakses melalui aplikasi klien, pada repositori tersebut saya menggunakan puppeteer untuk melakukan automated test dengan menggunakan browser test.

Oke Sip !

Ingin Berkomentar ?

Gunakan fitur komentar dengan bijak demi keamanan dan kenyamanan anda saat berselancar di dunia maya ini, mungkin undang - undang atau peraturan dari sebagian wilayah akan menjerat aktivitas yang ada pada kolom komentar.