Saya membuat aplikasi web bisnis baru dan saya ingin mencapai:
- Gunakan teknologi terbaik dari bidangnya masing-masing. Saya ingin kerangka backend yang andal dengan ORM solid. Dan saya ingin kerangka SPA (aplikasi halaman tunggal) paling canggih dengan penggunaan fitur HTML dan Javascript paling mutakhir untuk aplikasi frontend
- Mengekspos entitas backend dan layanan bisnis untuk penggunaan dari berbagai jenis aplikasi - mis. Aplikasi web, seluler (Android) dan mungkin jenis lainnya (perangkat pintar, dll.)
Jadi - untuk memenuhi kedua persyaratan, saya cenderung benar-benar memisahkan aplikasi saya di aplikasi backend dan frontend dan mengatur komunikasi di antara mereka menggunakan REST API (JSON). Apakah pendekatan ini masuk akal?
Pemisahan seperti itu bukanlah solusi desain yang jelas, karena banyak teknologi aplikasi web memiliki lapisan tampilan terintegrasi di mana aplikasi sisi server lebih atau kurang mengontrol pembuatan tampilan dan sebagian menangani respons dari tampilan (misalnya SpringMVC dengan lapisan tampilan, PHP Yii dengan tampilan layer, Java JSF / Facelets benar-benar menyimpan status komponen mereka di server). Jadi - ada banyak teknologi di sekitar yang mengusulkan kopling yang lebih kuat dan menjanjikan waktu pengembangan yang lebih cepat dan perjalanan jalur yang lebih standar. Jadi - saya harus berhati-hati ketika mulai menggunakan teknologi dengan cara yang tidak banyak digunakan.
Seperti yang saya pahami maka frontend SPA yang sepenuhnya terpisah biasanya muncul dari keharusan untuk menggunakan API pihak ketiga. Tapi apakah desain suara decoupling seperti itu ketika backend dan frontend dikembangkan oleh satu perusahaan?
Pilihan teknologi saya saat ini adalah Java / Spring backend dan Angular2 / Web Components / Polymer untuk frontend - jika saya boleh mengatakan ini. Tetapi itu tidak relevan untuk pertanyaan ini, karena pertanyaan ini adalah tentang desain umum dan bukan tentang pilihan teknologi konkret?
So - I must be cautious when starting to use technologies in manner which is not widely used.
Ya, Anda harus berhati-hati jika Anda berencana menggunakan palu untuk melempar sutra. Mungkin itu bukan alat yang tepat.