Saya baru di StackExchange, tetapi saya pikir Anda akan dapat membantu saya.
Kami sedang membuat aplikasi Java Enterprise baru, menggantikan solusi JSP lawas. Karena banyak perubahan, UI dan bagian-bagian dari logika bisnis sepenuhnya akan dipikirkan ulang dan diterapkan kembali.
Pikiran pertama kami adalah JSF, karena ini adalah standar di Java EE. Awalnya saya memiliki kesan yang baik. Tetapi sekarang saya mencoba untuk mengimplementasikan prototipe fungsional, dan memiliki beberapa kekhawatiran serius tentang penggunaannya.
Pertama-tama, itu menciptakan campuran pseudo-HTML / CSS / JS tidak sah terburuk, paling berantakan yang pernah saya lihat. Itu melanggar setiap aturan tunggal yang saya pelajari dalam pengembangan web. Lebih jauh lagi, ini menjadi satu, yang seharusnya tidak begitu erat digabungkan: Layout, Desain, Logika dan Komunikasi dengan server. Saya tidak melihat bagaimana saya dapat memperpanjang output ini dengan nyaman, baik dengan styling dengan CSS, menambahkan permen UI (seperti hot-key yang dapat dikonfigurasi, widget drag-and-drop) atau apa pun.
Kedua, ini terlalu rumit. Kompleksitasnya luar biasa. Jika Anda bertanya kepada saya, itu adalah abstraksi yang buruk dari teknologi web dasar, pada akhirnya lumpuh dan tidak berguna. Apa manfaat yang saya miliki? Tidak ada, jika Anda memikirkannya. Ratusan komponen? Saya melihat sepuluh ribu cuplikan HTML / CSS, sepuluh ribu cuplikan JavaScript dan ribuan plug-in jQuery sebagai tambahan. Ini memecahkan banyak masalah - kita tidak akan memiliki jika kita tidak akan menggunakan JSF. Atau pola pengontrol depan sama sekali.
Dan Terakhir, saya pikir kita harus memulai dari awal, katakanlah 2 tahun. Saya tidak melihat bagaimana saya bisa menerapkan semua mock-up GUI pertama kami (Selain itu, kami tidak memiliki Ahli JSF di tim kami). Mungkin kita bisa meretasnya bersama-sama. Dan akan ada lebih banyak. Saya yakin kita bisa meretas retas kita. Tetapi pada titik tertentu, kita akan mandek. Karena segala sesuatu di atas tingkat layanan mengendalikan JSF. Dan kita harus memulai dari awal.
Saran saya adalah mengimplementasikan api REST, menggunakan JAX-RS. Kemudian buat klien HTML5 / Javascript dengan sisi klien MVC. (atau sedikit rasa MVC ..) Ngomong-ngomong; kita akan memerlukan api REST, karena kami juga mengembangkan front-end Android parsial.
Saya ragu, JSF adalah solusi terbaik saat ini. Ketika internet berkembang, saya benar-benar tidak mengerti mengapa kita harus menggunakan 'rake' ini.
Sekarang, apa pro / kontra? Bagaimana saya bisa menekankan poin saya untuk tidak menggunakan JSF? Apa poin kuat menggunakan JSF atas saran saya?