JavaRush /Blog Jawa /Random-JV /Ngopi #157. Nggunakake Java kanggo aplikasi web ngarep in...

Ngopi #157. Nggunakake Java kanggo aplikasi web ngarep ing 2022

Diterbitake ing grup
Sumber: Nocodefunctions Kita nggawa menyang manungsa waé artikel bab pengalaman ngembangaken aplikasi web independen nggunakake Jawa. Ngopi #157.  Nggunakake Java kanggo aplikasi web ngarep ing 2022 - 1

Jawa kanggo frontend - iku pancene bisa?

Akeh wong sing percaya yen nggunakake Jawa kanggo pangembangan ngarep mung ora mungkin: sawise kabeh, Jawa dirancang kanggo mburi mburi. Ya, biyen, applet Java lan Java Webstart ngidini sampeyan mbukak aplikasi Java saka browser. Nanging iki minangka sejarah kuno, kaya plugin Flash. Nanging sanajan tanpa applet, ana cara kanggo nggunakake basa Jawa kanggo mburi ngarep - iki JSP (Java Server Pages), sing akeh bocah sekolah sinau ing pelajaran ilmu komputer. Nanging, sanajan JSP isih dibahas ing sawetara buku Jawa, teknologi kasebut wis ora digunakake wiwit taun 2010-an. Apa tenan buntu liyane? Ana uga kerangka sing ngidini pangembang Java "transpile" (ngowahi kanthi cara sing rumit) kode kasebut menyang JavaScript nggunakake Google Web Toolkit (GWT, ora anyar banget ) utawa liwat J2Cl (uga saka Google). Wigati dimangerteni manawa GWT lan J2Cl ora cocog kanggo pamula, luwih akeh alat perusahaan sing dikembangake dening Google kanggo digunakake ing proyek gedhe.

Pahlawan Jawa tanpa tanda jasa kanggo frontend: Jakarta Faces (JSF)

Java Server Faces (JSF), saiki dikenal minangka "Jakarta Faces," wis ana wiwit paling ora awal 2010-an. Aku tansah kaget sing sethitik dikenal lan arang disebutake amarga framework iki nggampangake kanggo berkembang aplikasi web cepet, aman lan andal. JSF gampang disinau lan entuk manfaat saka ekosistem Jawa. Mangkene carane, contone, sampeyan nggawe kaca web kanthi konten dinamis:
  • Nggawe kaca html (karo ekstensi .xhtml).
  • Ganti tag html <head> lan <body> dadi tag <h:head> lan <h:body>.
  • Saiki, kanggo nampilake konten dinamis kanthi nelpon sawetara properti ing backend, mung nyelehake kode iki sawise hashtag lan ing antarane garis kontrol:

    #{backendscript.myText}
Banjur gawe file Backendscript.java ing backend sampeyan, tambahake variabel sing diarani String myText = "hi! welcome to my page!" . Bakal ditampilake ing kaca web. JSF pancen prasaja banget. Iku uga nyathet thanks kanggo akeh pitakonan ing Stackoverflow , dokumentasi resmi , sawetara buku ( link iki , lan aku uga seneng buku David Heffelfinger ) lan mesthi video Youtube .

Apa JSF rumit? Apa keuntungane?

JSF ora rumit kabeh. Kajaba iku:
  1. Iki uga terintegrasi karo IDE Java klasik (NetBeans, IntelliJ IDEA lan Eclipse). Saben IDE nyedhiyakake:
    • proyek Cithakan sing isi metu cithakan kanggo konfigurasi Maven (kang, dening cara, banget prasaja).
    • Alat debugging (kanthi reloading panas, paling ora kanggo NetBeans).
    • Autocompletion, refactoring, navigasi, lan piranti nyorot kesalahan sing kuat kanggo ekosistem Jawa. IDE bisa menehi informasi migunani babagan kelas apa wae sing sampeyan sebutake ing kaca html (kayata #{backendscript.myText} sing kasebut ing ndhuwur). Kaca HTML bakal bener nggabungake karo basis kode liyane!
  2. Gampang banget nangani variasi kode kompleks ing kaca html.
    • Apa sampeyan kudu refresh bagean saka kaca kanthi klik tombol prasaja? Tambahake properti nganyari menyang tombol, banjur ID komponen sing pengin dianyari.
    • Babagan nganyari lan konten dinamis: Aku seneng banget karo kesederhanaan JSF: frontend nganyari backend, nganyari dhewe, utawa backend nganyari frontend. Kabeh iki minangka syarat dhasar aplikasi web lan ana ing kene.
    • Yen sampeyan pengin pangguna bisa ndownload file utawa sawetara file kanthi syarat kanggo jinis lan ukuran file, tambahake siji baris menyang kode kanthi paramèter sing jelas .
    • Apa sampeyan kudu nggawe situs web ing pirang-pirang basa? Tambah tag <f:view> menyang html sampeyan lan entuk basa pangguna kanthi mung siji baris ing mburi.
  3. Sampeyan bisa nambah lan nyampur tag HTML, skrip JS lan CSS, lan kabeh SEO dioptimalake.
Sampeyan duwe kontrol lengkap babagan html sing digawe dening JSF lan sampeyan bisa nambah kode html lan js. Iki nggawe luwih gampang kolaborasi karo desainer lan pangembang ngarep sing ora ngerti utawa ora peduli karo JSF. Nalika aku nggarap CSS, aku duwe bantuan saka desainer sing bisa nggarap kaca HTML sing digawe nggunakake JSF, nggawe owah-owahan sing perlu tanpa ana kangelan. JSF ngasilake kode HTML sing bisa dideleng lan diwaca ing browser sampeyan. Iki mbiyantu banget kanggo debugging karo alat pangembangan reguler lan verifikasi manawa tumindak SEO sampeyan ditindakake kanthi bener.

Primefaces: Dhaptar akeh komponen lan tema JSF gratis

JSF dilengkapi dhaptar dawa komponen sing siap digunakake sing nggawe bagean klasik saka kaca html, dadi sampeyan ora kudu nindakake dhewe. Contone, gunakake tag <h:dataTable> kanggo nggawe tabel sing nampilake data tartamtu sing dimuat saka mburi sampeyan-tanpa kudu nggawe maneh saka awal. Lan ana pilihan sing luwih apik: Prime Tek wis ngembangake komponen open source sing diarani Primefaces . Padha teka karo fitur tambahan lan duwe sawetara kaluwihan. Contone, tinimbang <h:dataTable>, gunakake tag Primefaces <p:dataTable>. Iki nggawe tabel data dhasar sing bisa ditambahake kanthi gampang ngalih kolom , kolom dinamis , utawa fungsi suntingan ing tabel.

Nanging Jawa iku alon lan abot?

1. Jawa iku alon?

Ora. Sing lucu yaiku kerangka JS kaya React, Angular lan Vue digawe kanthi janji bakal luwih cepet lan luwih pinter tinimbang JSF ing Jawa, amarga langsung ngirim kabeh logika aplikasi menyang browser pengunjung situs. JSF dianggo beda: nalika pangguna nelpon kaca (contone https://nocodefunctions.com), aplikasi ing backend ngasilake html mung kanggo kaca kasebut lan dikirim maneh. Iki diarani "server side rendering" (SSR). Ing laku, aplikasi siji kaca bisa mbutuhake wektu sing suwe banget kanggo pangguna kanggo njupuk lan mbukak file javascript sing nggawe kabeh aplikasi. Iki bisa nyebabake pengalaman pangguna sing kurang apik (kudu ngenteni kaca pisanan dimuat) lan masalah SEO. Akibaté, rendering sisih server gaya Jawa wis entuk popularitas maneh amarga dianggep luwih unggul tinimbang rendering sisih klien ing babagan kacepetan lan kinerja. Kerangka SSR anyar muncul sing mbutuhake pangembang sing biasa karo rendering sisih klien kanggo nangani lan nyampur loro logika sing beda-beda iki.

2. Jawa iku angel?

Ora. Apa sing sampeyan butuhake kanggo masang aplikasi JSF:
  • Aplikasi kasebut dhewe. A JSF prasaja "hello world" aplikasi mbokmenawa 10KB utawa kurang.
  • Opsional yaiku Primefaces (dibahas ing ndhuwur) yen sampeyan butuh komponen kualitas sing luwih dhuwur. Iki minangka tambahan 4,5 MB .
Saiki mbukak kabeh ing server. Kanggo nindakake iki, sampeyan kudu:
  1. Nduwe server ing méga utawa ing papan liya. Kanggo versi test saka Nocodefunctions (https://test.nocodefunctions.com) Aku nggunakake Hetzner, ngendi aku nyewa server logam Bare karo 2 GB RAM kanggo 4,15 euro saben Sasi. Aku bisa nggunakake kurang RAM, nanging aplikasi menehi sawetara layanan data-intensif lan kudu pas ing memori. Versi nyata (non-test) nocodefunctions mlaku ing server sing luwih gedhe (uga karo Hetzner) kanggo ndhukung tugas-tugas intensif data pangguna liyane kanthi paralel - kurang saka € 50 saben wulan.

  2. Sampeyan kudu nginstal Java. Iki minangka undhuhan file siji ing sangisore 200 MB kanggo Mac, Win utawa Linux, gratis sanajan kanggo panggunaan komersial.

  3. Sampeyan kudu duwe server web Jawa kanggo mbukak. Akeh banget. Secara pribadi, aku nggunakake Payara Micro (Edisi Komunitas), sing gratis lan download file 77MB siji.

  4. Bukak aplikasi sampeyan.

Kesimpulan: Pikir Jawa!

Aku rumangsa kaya sawetara programer mikir yen Python, Ruby, PHP, NodeJS + React ... minangka pilihan mung nalika miwiti aplikasi web cilik. Nanging saiki aku ngarep-arep uga bakal nimbang Java + JSF kanggo proyek sabanjure.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION