Cara membangun frontend yang tangguh: progressive enhancement
-
Mulai dengan HTML
- Layanan pemerintah harus tetap fungsional hanya dengan HTML
- Lapisan HTML bersifat fault-tolerant, sehingga dapat tetap bekerja di browser lama
- Gunakan semantic markup yang benar dan susun struktur dokumen secara logis
-
Menggunakan CSS
- CSS dapat digunakan untuk memberi gaya pada layanan
- Lapisan CSS bersifat fault-tolerant karena deklarasi individual dapat diabaikan
- Teknologi seperti
CSS-in-JSsebaiknya dihindari
-
Menggunakan JavaScript
- JavaScript digunakan untuk menambahkan elemen interaktif
- Lapisan JavaScript tidak fault-tolerant dan dapat mengalami error
- Kompatibilitas dapat ditingkatkan melalui deteksi fitur untuk browser API, menyertakan polyfill, transpiling, dan sebagainya
- JavaScript harus berperan sebagai pelengkap bagi HTML dan CSS
-
Alternatif JavaScript
- Pertimbangkan solusi sederhana yang dapat memenuhi kebutuhan pengguna tanpa JavaScript
- Alternatifnya meliputi menampilkan tabel data, mengekspor data, dan melakukan pre-render grafik sebagai gambar
-
Menggunakan framework JavaScript sisi klien
- Jika bukan untuk antarmuka pengguna yang kompleks, penggunaan framework sebaiknya dihindari
- Penggunaan framework dapat menimbulkan masalah seperti membesarnya ukuran codebase, masalah performa, dan ketergantungan pada kode pihak ketiga
- Jika menggunakan framework, setiap antarmuka pengguna harus dirancang sebagai komponen terpisah
-
Alasan CSS atau JavaScript tidak dimuat atau tidak berjalan
- Penyebabnya bisa berupa error jaringan, browser extension, downtime vendor pihak ketiga, kegagalan lookup DNS, atau bug akibat pembaruan browser
- Sebagian pengguna mungkin sengaja menonaktifkan fitur browser
-
Single-page application (SPA)
- Jangan membangun layanan sebagai single-page application
- SPA dapat menghambat aksesibilitas dan menimbulkan masalah seperti pengelolaan fokus saat berpindah halaman, serta tombol back/forward yang tidak berfungsi
-
Pengujian layanan
- Komponen yang sangat bergantung pada JavaScript atau framework JavaScript harus dapat berjalan di berbagai browser dan perangkat
- Pengujian juga harus dilakukan untuk aksesibilitas
-
Studi kasus dan panduan terkait
- Mengapa menggunakan progressive enhancement
- Mendesain untuk berbagai perangkat
- Cara menguji performa frontend
- Memahami WCAG 2.2
Ringkasan GN⁺
- Progressive enhancement adalah metode membangun situs web dengan urutan HTML, CSS, lalu JavaScript
- Metode ini meningkatkan fault tolerance layanan dan memungkinkan situs bekerja di berbagai browser serta perangkat
- JavaScript harus berperan sebagai pelengkap, dan solusi alternatif perlu dipertimbangkan
- Single-page application sebaiknya dihindari karena masalah aksesibilitas
- Pengujian layanan harus memastikan aksesibilitas di berbagai lingkungan
1 komentar
Komentar Hacker News
Saat menggunakan framework JavaScript, harus bisa dibuktikan manfaatnya bagi pengguna
Hal-hal yang ditunjuk sebagai kekurangan SPA
Andai seluruh internet mengikuti saran ini
Solusi yang sederhana harus diprioritaskan
Penasaran kenapa Linux tidak ada dalam daftar
Sepertinya banyak orang menyukai pendekatan ini
Menggunakan HTML dan data yang sudah diambil lebih dulu dari server, lalu menangani di klien apa yang memang bisa dikerjakan di klien
Banyak SPA memang bermasalah, tetapi tidak semua SPA bermasalah
Server-side rendering juga tidak selalu baik tanpa syarat