Saya mendekati akhir fase prototipe / bukti konsep untuk proyek sampingan yang sedang saya kerjakan, dan mencoba untuk memutuskan beberapa keputusan desain aplikasi berskala lebih besar. Aplikasi ini adalah sistem manajemen proyek yang lebih disesuaikan dengan proses pengembangan tangkas. Salah satu keputusan yang perlu saya buat adalah apakah akan menggunakan aplikasi multi-halaman tradisional atau satu halaman.
Saat ini prototipe saya adalah pengaturan multi-halaman tradisional, namun saya telah mencari backbone.js untuk membersihkan dan menerapkan beberapa struktur pada kode Javascript (jQuery) saya. Sepertinya sementara backbone.js dapat digunakan dalam aplikasi multi-halaman, itu lebih bersinar dengan aplikasi satu halaman. Saya mencoba untuk membuat daftar kelebihan dan kekurangan menggunakan pendekatan desain aplikasi satu halaman. Sejauh ini saya punya:
Keuntungan
Semua data harus tersedia melalui semacam API - ini adalah keuntungan besar untuk kasus penggunaan saya karena saya ingin memiliki API untuk aplikasi saya. Saat ini sekitar 60-70% panggilan saya untuk mendapatkan / memperbarui data dilakukan melalui REST API. Melakukan aplikasi satu halaman akan memungkinkan saya menguji REST API saya dengan lebih baik karena aplikasi itu sendiri akan menggunakannya. Ini juga berarti bahwa seiring pertumbuhan aplikasi, API itu sendiri akan tumbuh karena itulah yang digunakan oleh aplikasi; tidak perlu mempertahankan API sebagai tambahan pada aplikasi.
Aplikasi yang lebih responsif - karena semua data yang dimuat setelah halaman awal dijaga agar tetap minimum dan dikirimkan dalam format yang ringkas (seperti JSON), permintaan data umumnya akan lebih cepat, dan server akan melakukan pemrosesan yang sedikit lebih sedikit.
Kekurangan
- Duplikasi kode - misalnya, kode model. Saya harus membuat model di sisi server (PHP dalam hal ini) dan sisi klien dalam Javascript.
- Logika bisnis dalam Javascript - Saya tidak bisa memberikan contoh konkret tentang mengapa ini akan buruk tetapi tidak terasa benar bagi saya memiliki logika bisnis dalam Javascript yang dapat dibaca siapa pun.
- Kebocoran memori Javascript - karena halaman tidak pernah dimuat ulang, kebocoran memori Javascript dapat terjadi, dan saya bahkan tidak tahu harus mulai dari mana untuk debug.
Ada juga hal-hal lain yang seperti pedang bermata dua. Misalnya, dengan aplikasi satu halaman, data yang diproses untuk setiap permintaan bisa menjadi jauh lebih sedikit karena aplikasi akan meminta data minimum yang dibutuhkan untuk permintaan tertentu, namun itu juga berarti bahwa mungkin ada lebih banyak permintaan kecil untuk server. Saya tidak yakin apakah itu hal yang baik atau buruk.
Apa saja kelebihan dan kekurangan aplikasi web satu halaman yang harus saya ingat ketika memutuskan ke mana saya harus pergi untuk proyek saya?