Java untuk bahagian hadapan - adakah ia benar-benar mungkin?
Ramai orang percaya bahawa menggunakan Java untuk pembangunan bahagian hadapan adalah mustahil: lagipun, Java direka untuk bahagian belakang. Ya, lama dahulu, applet Java dan Java Webstart membenarkan anda menjalankan aplikasi Java daripada penyemak imbas. Tetapi ini adalah sejarah purba, setua pemalam Flash. Tetapi walaupun tanpa applet, terdapat cara untuk menggunakan Java untuk bahagian hadapan - ini adalah JSP (Java Server Pages), yang banyak pelajar sekolah belajar dalam pelajaran sains komputer. Walau bagaimanapun, walaupun JSP masih dibincangkan dalam beberapa buku Java, teknologi itu telah ditamatkan sejak 2010-an. Adakah ia benar-benar satu lagi jalan buntu? Terdapat juga rangka kerja yang membenarkan pembangun Java untuk "transpile" (mengubah dalam cara yang kompleks) kod mereka ke dalam JavaScript menggunakan Google Web Toolkit (GWT, ia bukan super baru sama ada ) atau melalui J2Cl (juga daripada Google). Adalah penting untuk ambil perhatian bahawa GWT dan J2Cl tidak sesuai untuk pemula, ia adalah lebih banyak alat perusahaan yang dibangunkan oleh Google untuk digunakan dalam projek besar.Wira Java yang tidak didendang untuk bahagian hadapan: Jakarta Faces (JSF)
Java Server Faces (JSF), kini dikenali sebagai "Jakarta Faces," telah wujud sejak sekurang-kurangnya awal 2010-an. Saya sentiasa terkejut bahawa ia kurang diketahui dan jarang disebut kerana rangka kerja ini memudahkan untuk membangunkan aplikasi web dengan cepat, selamat dan boleh dipercayai. JSF mudah dipelajari dan memanfaatkan sepenuhnya ekosistem Java. Begini caranya, sebagai contoh, anda membuat halaman web dengan kandungan dinamik:- Buat halaman html (dengan sambungan .xhtml).
- Tukar teg html <head> dan <body> kepada teg <h:head> dan <h:body>.
- Sekarang, untuk memaparkan kandungan dinamik dengan memanggil beberapa harta di bahagian belakang, hanya letakkan kod ini selepas hashtag dan antara bar kawalan:
#{backendscript.myText}
Adakah JSF rumit? Apakah kelebihannya?
JSF tidak rumit sama sekali. Selain itu:- Ia disepadukan dengan baik dengan IDE Java klasik (NetBeans, IntelliJ IDEA dan Eclipse). Setiap IDE menyediakan:
- Projek templat yang mengisi templat untuk konfigurasi Maven (yang sebenarnya, sangat mudah).
- Alat penyahpepijatan (dengan muat semula panas, sekurang-kurangnya untuk NetBeans).
- Alat autolengkap, pemfaktoran semula, navigasi dan ralat yang berkuasa untuk ekosistem Java. IDE boleh memberikan maklumat berguna tentang mana-mana kelas yang anda sebutkan dalam halaman html (seperti #{backendscript.myText} yang dinyatakan di atas). Halaman HTML sebenarnya akan disepadukan dengan pangkalan kod anda yang lain!
- Ia mengendalikan variasi kod kompleks pada halaman html dengan sangat mudah.
- Adakah anda perlu memuat semula sebahagian halaman dengan klik butang mudah? Tambahkan sifat kemas kini pada butang anda, diikuti dengan ID komponen yang ingin anda kemas kini.
- Mengenai pengemaskinian dan kandungan dinamik: Saya sangat menyukai kesederhanaan JSF: bahagian hadapan mengemas kini bahagian belakang, mengemas kini dirinya sendiri atau bahagian belakang mengemas kini bahagian hadapan. Semua ini adalah keperluan asas aplikasi web dan ia ada di sini.
- Jika anda mahu pengguna boleh memuat turun fail atau beberapa fail dengan syarat untuk jenis dan saiz fail, cuma tambah satu baris pada kod dengan parameter yang jelas .
- Perlu membuat tapak web dalam pelbagai bahasa? Tambahkan teg <f:view> pada html anda dan dapatkan bahasa pengguna dengan hanya satu baris di bahagian belakang.
- Anda boleh menambah dan mencampurkan tag HTML, skrip JS dan CSS, dan semuanya dioptimumkan SEO.
Primefaces: Senarai besar komponen dan tema JSF percuma
JSF datang dengan senarai panjang komponen sedia untuk digunakan yang mencipta bahagian klasik halaman html, jadi anda tidak perlu melakukannya sendiri. Contohnya, gunakan teg <h:dataTable> untuk membuat jadual yang memaparkan data khusus yang dimuatkan dari bahagian belakang anda—tanpa perlu mencipta semula dari awal. Dan terdapat pilihan yang lebih baik: Prime Tek telah membangunkan set sumber terbuka komponen yang dipanggil Primefaces . Mereka datang dengan ciri tambahan dan mempunyai beberapa kelebihan. Sebagai contoh, bukannya <h:dataTable>, hanya gunakan teg Primefaces <p:dataTable>. Ini mencipta jadual data asas yang mana anda boleh menambah suis lajur , lajur dinamik atau mengedit fungsi dengan mudah dalam jadual.Tetapi Java lambat dan berat?
1. Adakah Java lambat?
Tidak. Perkara yang lucu ialah rangka kerja JS seperti React, Angular dan Vue telah dicipta dengan janji menjadi lebih pantas dan lebih pintar daripada JSF di Jawa, kerana mereka segera menghantar semua logik aplikasi ke penyemak imbas pelawat tapak. JSF berfungsi secara berbeza: apabila pengguna memanggil halaman (cth https://nocodefunctions.com), aplikasi di bahagian belakang menjana html untuk halaman itu sahaja dan menghantarnya kembali. Ini dipanggil "penyediaan sisi pelayan" (SSR). Dalam amalan, aplikasi satu halaman boleh memerlukan masa yang sangat lama untuk pengguna mendapatkan dan memuatkan fail javascript yang membentuk keseluruhan aplikasi. Ini boleh membawa kepada pengalaman pengguna yang lemah (terpaksa menunggu halaman pertama dimuatkan) dan isu SEO. Hasilnya, pemaparan bahagian pelayan gaya Java telah mendapat semula populariti kerana ia dianggap lebih unggul daripada pemaparan bahagian pelanggan dari segi kelajuan dan prestasi. Rangka kerja SSR baharu sedang muncul yang memerlukan pembangun terbiasa dengan pemaparan sisi klien untuk mengendalikan dan mencampurkan dua logik berbeza ini.2. Adakah Java sukar?
Tidak. Perkara yang anda perlukan untuk menggunakan aplikasi JSF:- Aplikasi itu sendiri. Aplikasi "hello world" JSF yang mudah mungkin berukuran 10KB atau kurang.
- Pilihan adalah Primefaces (dibincangkan di atas) jika anda memerlukan komponen berkualiti tinggi. Ini adalah tambahan 4.5 MB .
-
Mempunyai pelayan di awan atau di tempat lain. Untuk versi ujian Nocodefunctions (https://test.nocodefunctions.com) saya menggunakan Hetzner, di mana saya menyewa pelayan logam kosong dengan 2 GB RAM untuk 4.15 euro sebulan. Saya boleh menggunakan kurang RAM, tetapi aplikasi saya menyediakan beberapa perkhidmatan intensif data dan ia perlu dimuatkan dalam ingatan. Versi sebenar (bukan ujian) fungsi nocode berjalan pada pelayan yang lebih besar (juga dengan Hetzner) untuk menyokong lebih banyak tugas intensif data pengguna secara selari - kurang daripada €50 sebulan.
-
Anda mesti memasang Java. Ini ialah muat turun fail tunggal di bawah 200 MB untuk Mac, Win atau Linux, percuma sepenuhnya walaupun untuk kegunaan komersial.
-
Anda perlu mempunyai pelayan web Java untuk menjalankannya. Ramai daripada mereka. Secara peribadi, saya menggunakan Payara Micro (Edisi Komuniti), yang percuma dan muat turun fail 77MB tunggal.
-
Lancarkan aplikasi anda.
GO TO FULL VERSION