Berbagai Hal yang Harus Dikuasai dalam Menggunakan Suatu Web Framework

Muhammad Arslan 19 Agustus 2017

Berbagai Hal yang Harus Dikuasai dalam Menggunakan Suatu Web Framework

Web Framework sebuah perkakas yang dapat mempermudah kita membangun aplikasi web. Hampir setiap bahasa pemrograman yang popular seperti PHP, Java, Python, dan Javascript sudah memiliki web framework yang digemari oleh komunitasnya masing - masing. Sebut saja web framework yang terkenal seperti Laravel, Yii2, CodeIgniter, Spring, Play, Django, Flask, Express.js, dan lainnya

Namun sayangnya penggunaan web framework ini bagi beberapa orang masih belum mendalam. Sebut saja fitur seperti Laravel Jobs Queue yang tidak banyak dimanfaatkan pengugnanya untuk menangani eksekusi kode yang berat di dalam aplikasi web mereka. Atau penggunaan CLI Tools yang dapat kita bangun sendiri di web framework Yii2. Atau penggunaan autogenerate model di Django yang dapat membuatkan model dan halaman admin dari database yang sudah pernah dibuat.

Banyak fitur - fitur canggih yang tidak pernah dijamah oleh penggunanya. Namun sebelum melangkah ke fitur - fitur canggih tersebut. Ada baiknya seorang pengguna web framework menguasai hal - hal berikut saat menggunakan web framework yang dipilihnya

###1. Cara Instalasi

Disadari atau tidak banyak orang yang tidak mau tahu cara melakukan instalasi suatu web framework terlebih dahulu. Dan tidak semua web framework dapat dijalankan seperti CodeIgniter yang tinggal ekstrak foldernya dan dijalankan diatas Apache Httpd.

Setiap web framework memiliki cara instalasi yang unik. Ada yang cukup dijalankan dengan perintah instalasi melalui NPM seperti di Node.js. Ada juga yang setelah diekstrak foldernya, harus didownlad semua library terkaitnya melalui tools seperti Composer.

Oleh karena itu hal yang wajib dikuasai dalam menggunakan suatu web framework adalah mengetahui dan mencoba cara instalasinya.

###2. URL Routing

URL routing adalah cara bagaimana suatu web framework dapat menugaskan suatu function atau method di dalam controller kepada URL yang diterimanya dengan parameter tertentu.

Ada web framework yang menulis definisi URLnya seperti di Laravel dan Django. Ada juga web framework yang dapat membaca otomatis controller yang sudah dibuat dan akan membuatkan URL sama persis dengan nama method di dalam controller tersebut.

Kamu harus menguasai dan memahami terlebih dahulu bagian yang satu ini sebelum lanjut ke bagian lain.

###3. Controller, Model, View

Sebuah web framework tidak akan pernah lepas dari ketiga sekawan ini. Setelah mempelajari URL routing, kamu harus tahu bagaimana cara membuat controller yang dapat memanggil model dan menampilkan view.

Jika kamu males untuk mempelajari hal ini. Jangan harap bisa menguasai web framework seluruhnya dan yang pasti. Kamu akan kesulitan membuat aplikasi web bila belum bisa paham apa itu controller, model, dan view.

###4. Form Validation

Data yang dikirimkan dari client akan diterima oleh server. Namun sebelum server menjalankan aksi, ada baiknya data yang dikirimkan divalidasi terlebih dahulu apakah sudah sesuai dengan rule atau ketentuan yang dibuat dari model yang kita definisikan.

Sejatinya aplikasi web terdiri dari form dan tampilan. Form bertugas mengirim data, sehingga data yang akan diterima di server harus divalidasi. Bila tidak lolos validasi, maka client tidak dapat memproses data yang dikirimkannya.

Selain itu form validation juga digunakan untuk memastikan bahwa bisnis proses yang ditentukan sudah jalan sesuai dengan spesifikasi yang dibutuhkan.

###5. Templating

Memasang web template yang dibuatkan oleh frontend designer atau mengintegrasikan free template seperti AdminLTE ataupun membeli template dari marketplace tentu tidak akan dibahas secara mendetail di dalam dokumentasi web framework. Kamu harus mempelajarinya sendiri dan ngulik hingga dapat mengintegrasikannya ke dalam web framework yang akan kamu gunakan. Tentunya setiap web framework memiliki karakteristik masing - masing.

Belum lagi ada beberapa web framework yang mendukung sistem theme dan widget yang dapat membuat kamu lebih mudah dalam membangun user interface. Kamu akan mempunyai nilai lebih dibandingkan bila hanya menggunakan web framework dan tidak tahu cara memasang web template.

###6. Integrasi CSS dan Javascript

Sebenarnya masih nyambung dengan bagian templating. Ada beberapa web framework yang sangat mudah mengintegrasikan static file. Ada juga yang harus konfigurasi sana sini untuk hanya mengintegrasikan static file. Ada juga yang harus memakai third party seperti Webpack karena diklaim dapat lebih rapih saat menggabungkan static file.

Cukup banyak newbie yang kelabakan dalam masalah static file ini. Belum lagi bila harus menggunakan static file di dalam web framework Javascript seperti Angular dan React.js. Cukup sulit untuk menintegrasikan static file di dalam web framework tersebut dan perlu ketelitian yang tinggi.

###7. Email

E-mail adalah salah satu cara memberikan notifikasi paling umum dan mudah ke client. Ada web framework yang harus menggunakan library tambahan. Ada juga yang sudah terintegrasi. Ada juga web framework yang mengandalkan message queue untuk pengiriman e-mail sehingga notifikasi tidak akan ada yang terlewat kepada client.

Masing - masing web framework memiliki cara yang unik untuk pengiriman e-mail kepada client. Selain itu ada juga yang sudah memiliki integrasi ke beberapa vendor email terkenal.

###8. Upload File

Apapun web framework yang dipakai, sudah pasti kamu harus menguasai bagaimana cara menangani upload file. Karena tidak semua konten dihasilkan oleh kita melainkan dihasilkan oleh user juga.

Salah satu yang paling umum dilakukan adalah upload file berupa foto profil atau dokumen yang diperlukan untuk pendaftaran mahasiswa atau siswa baru, misalnya.

Penanganannya pun harus dapat dikuasai antara yang upload file biasa, upload file via AJAX, upload file melalui JSON http request, dan lainnya.

###9. Session dan Authentication

Login, logout, register, forgot password, change password, group, role access, session, dan cookies wajib banget untuk dikuasai. Kenapa? karena ini adalah hal yang paling umum dalam membuat aplikasi web yang mempunyai akses terhadap banyak pengguna.

Ada web framework seperti Django yang sangat mudah untuk menerapkan autentikasi hingga pemberian hak akses tanpa coding sama sekali. Ada juga yang perlu pasang library tambahan seperti Express.js karena memang dia dirancang dari awal untuk minimalis. Ada juga yang punya autentikasi sangat lengkap seperti ASP.NET Core MVC dalam masalah autentikasi user ini sampai - sampai JWT dan OAuth pun sudah terpasang secara built-in.

###10. Command Line Tools

Tidak semua hal dapat dilakukan di halaman web. Ada kalanya ketika kamu ingin membuat super user atau melakukan backup database dengan parameter tertentu. Lebih mudah bila dilakukan via command line.

Ada beberapa web framework yang mendukung pembuatan command line tools seperti Laravel, Yii2, dan Django. Dimana kamu dapat dengan mudahnya membuat CLI Tools seperti membuat controller.

Dengan CLI tools ini pun beberapa model dapat digunakan untuk berinteraksi dengan system administrator atau pun web developer-nya.

###11. Configuration dan Deployment

Selain masalah implementasi business process, kita harus mengetahui juga bagaimana cara konfigurasi berbagai hal di dalam suatu web framework. Misal konfigurasi static file atau mode untuk development, local, dan production.

Selain itu kamu juga perlu tahu cara deployment suatu web framework. Ada yang tinggal taruh folder proyeknya seperti CodeIgniter. Ada juga yang perlu dipasang semua library-nya terlebih dahulu seperti Laravel dan Yii2 dengan menggunakan composer. Ada juga yang dapat memiliki setting khusus dengan versi Python-nya seperti Django.

Mengetahui bagian ini dapat membuat kamu lebih paham bagaimana web framework tersebut dapat unjuk gigi di server.

###12. Fitur - Fitur Eksklusif di Web Framework tersebut

Fitur ekslusif tentu menjadi fitur khusus dari web framework tersebut. Misal seperti ASP.NET Core yang memiliki autentikasi bawaan untuk JWT dan OAuth. Laravel yang memiliki fitur Jobs Queue yang di-backing oleh AWS SQS, Redis, atau MySQL, atau fitur migration database dan halaman admin auto-generate seperti Django. Semua mempunyai fiturnya masing - masing yang tidak dapat dimiliki web framework lain.

Untuk menguasai fitur - fitur eksklusif ini. Kamu harus rajin membaca dokumentasinya sampai khatam atau mencari tutorial yang bertebaran di blog - blog para pengguna web framework tersebut yang sudah mahir dan memang biasa menyediakan tutorial advance.

###13. Membaca Dokumentasinya

Web framework yang enak adalah dokumentasinya yang enak dibaca. Dalam membaca dokumentasinya pun perlu diperhatikan jenisnya. Ada dokumentasi untuk getting started, user guide, dan api guide.

Getting started biasanya diperuntukkan bagi pemula yang baru menggunakan suatu web framework. User guide biasanya berisi berbagai tips dan trik yang lebih detail untuk menggunakan web framework tersebut. Sedangkan api guide lebih ke penjelasan setiap function, class, maupun library yang dibuat di dalam web framework tersebut.

Sebelum bertanya di forum, pastikan kamu sudah menguasai dokumentasinya terlebih dahulu.

###14. Cara Membuat Ekstensi Sendiri untuk Web Framework tersebut

Tak lengkap bila kita cuma jadi pengguna saja. Salah satu hal besar yang dapat dilakukan pengguna web framework selain menggunakan web framework tersebut adalah membuat ekstensi, plugin, library, bahkan ikut mengembangkan web framework tersebut.

Namun tidak semua orang dapat melakukannya dan mau melakukannya. Misal untuk mengembangkan web framework Express.js kamu dapat membuat sebuah package dalam bentuk NPM. Sedangkan untuk Django kamu dapat membuatnya dalam package PIP. Dan untuk web framework berbasis PHP dapat kamu buat juga dalam bentuk library yang dikemas oleh Composer.

Dengan melakukan hal tersebut, kamu sudah ikut serta dalam memajukan web framework tersebut dan memberi manfaat banyak untuk khalayak yang menggunakan web framework tersebut.