5 Framework Terbaik Untuk Membuat Backend Web 2020

Saat ini, programmer telah banyak terbantu dengan kehadiran framework. Framework telah menjadi bagian dari kebutuhan dan tidak dapat dilepaskan dari pengembangan aplikasi. Tak terkecuali untuk pengembangan website. Sebuah website memiliki dua bagian yang server-side (backend) dan client side (front-end). Kali ini TAS Official akan membahas mengenai 5 Framework Terbaik Untuk Membuat Backend Web 2020. Apa saja ya?

Laravel

Sumber : Google Sites

Laravel adalah salah satu framework backend yang paling populer. Lebih lanjut, framework ini memiliki konsep MVC (Model, View, Controller) yang akan memecahkan logika dengan tampilan. Bagian-bagian MVC secara lengkap meliputi

  1. Model, mewakili struktur data. Model berisikan fungsi-fungsi yang membantu kamu dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data dan lain-lain.
  2. View, View adalah bagian yang mengatur tampilan ke pengguna. Bagian inilah yang akan menjadi halaman suatu website
  3. Controller, Controller merupakan bagian yang menjembatani model dan view.

Laravel memiliki berbagai macam fitur yang tidak semua framework menyediakannya. Framewok Laravel ini juga merupakan framework yang modern sehingga kamu akan dapat melakukan berbagai hal menggunakan framework ini seperti proses otentifikasi terbaru.

Express

Sumber : Quora

Express adalah framework backend yang terkenal dalam dunia Node.Js. Sama halnya denga laravel, express juga merupakan salah satu framework yang paling populer loh. Dengan express, kamu bisa mengembangkan suatu website ataupun hanya sekadar restfull API. Untuk dapa menikmati framework ini, kamu harus terlebih dahulu meng-install node.Js .

Beberapa keunggulan Express.js antara lain:

  • Dukungan pembuatan middleware
  • Kompatibel dengan berbagai HTTP verb seperti POST, GET, PUT, DELETE, OPTION, HEAD, dan lainnya
  • Memiliki tempalte bawaan yakni template engine Jade
  • Manajemen file statik seperti CSS dan Javascript
  • Sangat bebas untuk dikostumisasi

Rails

Learning Ruby on Rails: An Overview | Hacker Noon
Sumber : Hacker Noon

Rails mengusung konsep yang sama dengan Laravel yakni Model, View, dan Controller. Bedanya jika Laravel menggunakan bahasa pemrograman PHP, maka Rails menggunakan bahasa Ruby. Rails adalah framework yang berperan dalam website-website besar seperti Airbnb, GitHub, Hulu, and Shopify. Fakta unik lainnya, hingga 2014 kemarin, Ruby on Rails masih menempati posisi pertama dalam gaji programmer tertinggi berdasarkan data Quartz. Rails memiliki komunitas yang besar yang siap membantu kamu jika mengalami kesulitan. Untuk memulai belajar Rails, kamu hanya perlu membaca dokumentasi Rails. Rails juga menyediakan dokumentasi API untuk menjelajah semua framework, class, dan method. 

Pencipta Rails juga memnyedia dua buku yang akan menuntunmu untuk menjadi expert yakni  ‘Agile Web Development with Rails’ dan ‘Crafting Rails for Application

Django

Sumber : Django Central

Django adalah framework pengembangan website dengan bahasa Python. Berbeda dengan laravel, Django memiliki arsitektur yang dikenal dengan istilah Model-View-Template . Google, Youtube, dan Instagram adalah beberapa website yang memanfaatkan framework ini. Sebenarnya, django bukan hanya framework backend, namun juga mendukung pengembangan frontend. Sisi unggulan django adalah tingkat keamanannya yang tinggi. Django juga fokus untuk membuat frameworknya cepat, aman dan memiliki skalabilitas tinggi(scalable).

Spring

Sumber : Spring

Framework backend terbaik lainnya adalah spring. Spring merupakan Model-View-Controller framework yang menggunakan bahas pemrograman Java. Contoh web yang dikembangkan menggunakan framework Spring adalah Wix, TicketMaster, dan BillGuard. Dengan spring, kamu bisa mengembangkan suatu website atau hanya RestFull APInya saja. Spring memiliki portabilitas tinggi, dapat berjalan pada JVM apapun. Untuk belajar Spring, kamu hanya perlu membaca panduan dan dokumentasi pada link ini.

Nah, itulah 5 Framework Terbaik Untuk Membuat Backend Web 2020. Apakah kamu memiliki jagoan framework lain?

Menilik Fitur Baru Laravel 8

Laravel adalah salah satu framework PHP paling populer saat ini. Framework laravel memiliki konsep MVC yang akan memecah source code sesuai fungsi masing-masing. Pada awal bulan lalu, tepatnya pada 8 September 2020 Laravel merilis versi terbarunya, Laravel 8. Namun, versi ini bukanlah versi LTS (Long Term Support). Developer akan terus mengembangkan dan memperbaiki bugsnya selama satu tahun mendatang. Nah, TAS Official akan mengajak kalian untuk menilik fitur baru Laravel 8. Apa saja?

Laravel Jetstream dan Laravel Fortify

Laravel Jetstream adalah suat kerangka scafolding yang akan membantu kita dalam penyediaan fitur-fitur umum yang sering digunakan. Beberapa fitur bawaan ini meliputi :

  • Authentication (login, dashboard, logout, password reset)
  • Two factor authentication (fitur ini menarik, seperti Google Authenticator)
  • Browser session management
  • API token management (Menggunakan Laravel Sanctum dan adanya hak akses)
  • Full “teams” functionality (user bisa membuat team, undang user ke team, dll)
  • User profile
  • Delete account functionality

Lebih lanjut, fitur terbaru ini akan menggantikan Laravel UI pada versi terdahulunya.

Direktori app/Models

Pada Laravel 8, secara default model akan berada pada folder app/Models. Kita dapat melihatnya secara langsung pada Github Branch master. Hal ini karena tingginya permintaan dari komunitas. Jika kita sudah upgrade ke laravel 8 maka perintah php artisan make:model akan membuat model baru pada app/Models

Job Batching

Fitur menarik lainnya dari Laravel 8 adalah Job Batching. Melalui fitur ini developer dapat mengeksekusi banyak jobs kemudian memanggilnya dengan perintah callback ketika selesai. Contoh enggunaan bus::batch adalah sebagai berikut

use App\Jobs\ProcessPodcast;
use App\Podcast;
use Illuminate\Bus\Batch;
use Illuminate\Support\Facades\Batch;
use Throwable;

$batch = Bus::batch([
    new ProcessPodcast(Podcast::find(1)),
    new ProcessPodcast(Podcast::find(2)),
    new ProcessPodcast(Podcast::find(3)),
    new ProcessPodcast(Podcast::find(4)),
    new ProcessPodcast(Podcast::find(5)),
])->then(function (Batch $batch) {
    // All jobs completed successfully...
})->catch(function (Batch $batch, Throwable $e) {
    // First batch job failure detected...
})->finally(function (Batch $batch) {
    // The batch has finished executing...
})->dispatch();

return $batch->id;

Migration Squashing

Perintah ini berfungsi untuk menyatukan file-file migration dalam satu file SQL. Fitur ini mendukung dua database management system besar yakni MySQL dan PostgreSQL. Perintah untuk melakukan migration squashing adalah sebagai berikut:

$ php artisan schema:dump

Perintah ini dapat sekaligus melakukan dump dan menghapus file migration dengan menambah parameter prune

$ php artisan schema:dump --prune

File hasil squash akan tersimpan dalam app/schema

Model Factory

Laravel melakukan banyak peningkatan pada model factory. Model Factory pada versi ini memberikan dukungan penuh pada relationship pada model kelas. Salah satu contoh penggunaannya adalah sebagai berikut:

<?php

namespace Database\Factories;

use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;

class UserFactory extends Factory
{
    protected $model = User::class;

    public function definition()
    {
        return [
            'name' => $this->faker->name,
            'email' => $this->faker->unique()->safeEmail,
            'email_verified_at' => now(),
            'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
            'remember_token' => Str::random(10),
        ];
    }
}

Model ini menambahkan trait hasFactory, sehingga kita dapat menggunakan perintah berikut ini pada model Factory :

<?php
use App\Models\User;

User::factory()->count(50)->create();

Maintenance Mode Yang Lebih Baik

Pada versi terdahulu, artisan-down dapat dilewatkan dengan perintah allow-list. Perintah allow-list ini dapat mendaftarkan alamat IP-Addres komputer untuk mengakses selama mode maintenance. Sedangkan pada Laravel 8 perintah ini diganti dengan token.

$ php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"

Untuk mengaksesnya, kita harus melewatkannya pada URL setelah domain utama. Misal

https://teknosejahtera.co.id/1630542a-246b-4b66-afa1-dd72a4c43515

Selain itu juga menambahkan perlakuan khusus agar segera menampilkan halaman ketika maintenance mode. Hal ini memungkinkan untuk developer melakukan update melalui composer dan pengguna langsung dapat melihat hasil update ini (pre-render). Perintah untuk melakukan pre-render adalah

$ php artisan down --render="errors::503"

Rate Limiting

Pada Laravel 8, Rate Limiting dapat dilakukan melalui facade. Perintah untuk melakukan Rate Limiting adalah sebagai berikut

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;

RateLimiter::for('global', function (Request $request) {
    return Limit::perMinute(1000);
});

Untuk memanggil Rate Limiting dapat dilakukan menggunakan Middleware Throtle

Route::get('/login')->middleware(['throttle:authentication']);

Time Testing Helpers

Fitur Time Testing Helper akan memudahkan kita dalam melakukan pengolahan waktu saat unit testing. Bahasa ini mendukung modifikasi waktu dengan perintah travel.

/ Travel into the future...
    $this->travel(5)->milliseconds();
    $this->travel(5)->seconds();
    $this->travel(5)->minutes();
    $this->travel(5)->hours();
    $this->travel(5)->days();
    $this->travel(5)->weeks();
    $this->travel(5)->years();

    // Travel into the past...
    $this->travel(-5)->hours();

    // Travel to an explicit time...
    $this->travelTo(now()->subHours(6));

    // Return back to the present time...
    $this->travelBack();

Wah, kaya time travelers ya!

Peningkatan Artisan Serve

Laravel 8 secara otomatis akan mendeteksi konfigurasi environment tanpa harus melakukan restart pada php artisan serve

Nah, setelah menilik fitur baru laravel 8, apakah kalian tertarik mencobanya?