Saya telah menggunakan teknik ini secara eksklusif untuk aplikasi web yang sedang kami kerjakan. Backend saya di-host di Google App Engine menggunakan Java SDK, dan frontend saya menggunakan HTML, CSS, dan JavaScript (dengan jQuery).
Proyek ini lebih kecil dengan hanya saya dan desainer Web, dan kami berdua merasa bahwa metode ini telah membantu kami bekerja lebih cepat dan mendapatkan sesuatu untuk dipasarkan lebih cepat.
Keuntungan: Bekerja dengan Desainer Web
Keuntungan utama dari teknik ini adalah bahwa desainer Web, yang tahu beberapa PHP tetapi tidak menganggap dirinya seorang programmer, dapat bekerja tanpa terbebani dalam HTML dan CSS tanpa harus menyeberang melalui garis JSP yang tak terhitung jumlahnya, tag taglib, dan sisi server lainnya markup yang telah kami beri tahu selama bertahun-tahun seharusnya membuat hidup seorang pengembang front-end jauh lebih mudah.
Tanpa semua markup sisi server, kami sudah lebih gesit. Perancang web telah bertukar dan merevisi desain aslinya 3 atau 4 kali, dengan sedikit perubahan pada bagian saya.
Komentarnya kepada saya adalah bahwa dia merasa HTML itu hidup karena dia dapat mengeditnya dan kemudian segera melihat perubahan pada mesinnya dengan data dinamis. Kami sama-sama mendapat manfaat dari ini karena integrasi sebagian besar otomatis.
Kode sisi server dan Handoff HTML / CSS
Dalam proyek-proyek sebelumnya, dia harus menyerahkan HTML dan CSS ke pengembang Java yang kemudian akan mengambil HTML dan CSS-nya dan sepenuhnya menulis ulang menggunakan teknologi JSP. Ini akan membutuhkan banyak waktu, dan biasanya akan menghasilkan perbedaan yang halus namun penting dalam rendering halaman yang sebenarnya serta validasinya di validator W3C.
Secara keseluruhan, kami berdua cukup senang dengan teknik ini, dan saya masih memiliki nol halaman JSP atau kode sisi server di halaman HTML saya.
Perangkap Teknik REST / JSON
Mungkin jebakan terbesar adalah yang belum kita temui. Saya sepenuhnya berharap untuk memiliki beberapa ketidaksepakatan dengan pengembang Java yang lebih berpengalaman yang telah dicuci otak oleh apa yang dikatakan oleh yayasan Apache dan tim Spring mengenai bagaimana perpustakaan tag memudahkan para pengembang frontend untuk bekerja dengan kode tersebut. Saya sepenuhnya berharap akan ada kurva belajar ketika proyek ini berkembang dan kami mengambil lebih banyak pengembang yang mungkin harus melepaskan teknik usang yang, dalam pengalaman saya, telah membuat pekerjaan para desainer Web lebih sulit .
Perangkap lain adalah bahwa kode JavaScript telah menjadi sangat besar. Ini lebih merupakan masalah mungkin karena saya menggunakan teknik ini untuk pertama kalinya, dan karena kami telah memperkenalkan sedikit hutang teknis dalam bekerja menuju rilis cepat. Mungkin memilih kerangka kerja yang lebih baik akan membantu meringankan sebagian besar kode. Menurut pendapat saya, semua ini tidak menjadi showstopper, dan saya didorong untuk terus menggunakan teknik ini dan memperbaiki keterampilan saya di bidang ini.
Keuntungan: Aplikasi Lain Dapat Dibangun Pada Platform
Terakhir, saya harus menyebutkan keuntungan tersembunyi. Karena ada tingkat pemisahan yang bagus antara layanan Web RESTful backend saya dan frontend saya, saya juga membuat platform yang saya dapat dengan mudah diperluas.
Salah satu operasi kami ingin mencoba pembuktian konsep di aplikasi lain, dan terima kasih kepada layanan RESTful saya, kami dapat membuat antarmuka aplikasi yang sama sekali berbeda untuk menyelesaikan masalah yang sama sekali berbeda. Bukti konsep yang dikembangkan dengan cepat menggunakan HTML, CSS, dan JavaScript sendiri, tetapi menggunakan layanan RESTful sebagai sumber data dan backend.
Pada akhirnya, manajer proyek lain melihat apa yang telah saya lakukan, dan segera menjadi jelas bahwa fitur tersebut perlu lebih dari sekadar bukti konsep, sehingga timnya mengimplementasikannya.
Saya tidak dapat cukup menekankan betapa dapat digunakannya kembali arsitektur ini, baik pada level aplikasi maupun level HTML / CSS / JavaScript, dan saya pasti akan mendorong Anda untuk mencoba ini di proyek berikutnya.