JavaRush /Blog Java /Random-MS /Coffee break #131. Peranan Java dalam pembangunan aplikas...

Coffee break #131. Peranan Java dalam pembangunan aplikasi web dan mudah alih. Pengaturcaraan fungsional - kebaikan dan keburukan

Diterbitkan dalam kumpulan

Peranan Java dalam pembangunan aplikasi web dan mudah alih

Sumber: DZone Java adalah salah satu bahasa pengaturcaraan yang paling banyak digunakan. Ia digunakan secara aktif dalam pembangunan aplikasi korporat, web dan mudah alih. Java mempunyai aplikasi dalam industri teknologi terkemuka, daripada Sains Data kepada AR/VR. Walaupun pembangunan perusahaan di Jawa adalah kes penggunaan paling popular untuk bahasa ini, aplikasi web dan mudah alih juga dianggap sebagai salah satu kawasan di mana Java digunakan. Coffee break #131.  Peranan Java dalam pembangunan aplikasi web dan mudah alih.  Pengaturcaraan fungsional - kebaikan dan keburukan - 1Mari kita lihat mengapa pembangunan Java telah menjadi begitu popular di web dan peranti mudah alih sejak dua dekad yang lalu. Salah satu sebab utama untuk menggunakan Java untuk web dan mudah alih ialah ia adalah bahasa pengaturcaraan berprestasi tinggi. Ia memastikan bahawa aplikasi anda boleh berjalan dengan cepat dan tanpa sebarang ralat pemprosesan. Terdapat juga sebab lain:

1. Sumber terbuka

Sebagai bahasa pengaturcaraan sumber terbuka, Java mempunyai beberapa kelebihan. Pertama, ia mengurangkan kos proses pembangunan aplikasi. Kedua, pembangun dengan mudah menukar bahasa dan mengemas kininya dengan kerap kerana ia adalah sumber terbuka. Selain itu, Java mempunyai sintaks yang mudah dibaca yang memudahkan untuk membangunkan aplikasi untuk web dan peranti mudah alih. Akhir sekali, pembangun boleh menggunakan pangkalan kod bahasa sedia ada dan memperbaikinya.

2. Merentas platform

Satu lagi faedah pengaturcaraan di Java ialah ia adalah bahasa merentas platform. Pembangun boleh menulis kod pada Windows dan menjalankannya pada macOS dan Linux. Prinsip "tulis sekali, lari ke mana-mana" terpakai di sini. Ini memudahkan pembangun bekerja pada sistem yang berbeza dan memudahkan proses ujian pada mesin yang berbeza. Sebagai contoh, pembangun boleh menguji sama ada program akan berjalan dengan betul pada saiz skrin dan sistem pengendalian yang berbeza.

3. Mesra mudah alih

Java ialah teknologi popular untuk aplikasi mudah alih. Pembangun aplikasi Android terutamanya menggunakan bahasa Java kerana ia mudah dilaksanakan, mempunyai ciri keselamatan dan keupayaan merentas platform. Android memerlukan bahasa yang berkuasa untuk menskalakan aplikasi, tetapi Java menawarkan keupayaan penskalaan yang menakjubkan. Ia juga memudahkan proses menguji aplikasi Android. Semua ini menunjukkan bahawa ia adalah bahasa pengaturcaraan yang boleh dipercayai dan dinamik untuk mencipta aplikasi mudah alih.

4. Alatan dan perpustakaan

Salah satu kelebihan Java yang paling ketara ialah keserasiannya dengan pelbagai alat. Rangka kerja seperti Spring, Hibernate, Struts, Spark dan lain-lain sangat memudahkan proses pembangunan. Semua alat ini menawarkan pelbagai ciri untuk mencipta aplikasi interaktif dan dinamik. Perpustakaan seperti Apache Commons, Java Standard Libraries, Maven, Jackson, dsb. membenarkan pembangun menambah fungsi tanpa menulis kod dari awal.

5. Komuniti yang aktif

Terdapat lebih daripada 7.6 juta pembangun Java di dunia. Mereka sentiasa mengemas kini bahasa pengaturcaraan dan menambah ciri baharu padanya. Memandangkan Java dikemas kini setiap 6 bulan, pembangun mempunyai peluang untuk belajar dengan cepat dan mencipta produk yang lebih baik. Anda juga boleh menggunakan komuniti Java untuk mencari jawapan kepada pelbagai soalan.

Kebangkitan Java dalam Pembangunan Aplikasi Web

Sejak dicipta pada tahun 1995 oleh Sun Microsystems, bahasa Java telah menjadi salah satu keutamaan dalam industri pengaturcaraan. Hari ini, syarikat dari seluruh dunia menggunakan bahasa pengaturcaraan ini untuk mencipta aplikasi web. Google, Netflix, Spotify dan Pinterest hanyalah beberapa syarikat yang menggunakan Java dalam tindanan teknologi mereka. Pakar menganggarkan bahawa lebih daripada 60% syarikat yang bekerja dalam IT menggunakan Java dalam satu bentuk atau yang lain. Selain itu, ia kekal sebagai bahasa pengaturcaraan yang popular kerana penggunaannya dalam bidang pembangunan web yang lain, iaitu pengkomputeran awan, media sosial, pembangunan perusahaan, AR, VR dan banyak lagi. Ia adalah bahasa pengaturcaraan yang sangat baik dan berkuasa untuk digunakan dalam perusahaan yang kini memerlukan seni bina berasaskan awan. Apabila digabungkan dengan JavaScript, Java membolehkan anda mencipta aplikasi web berprestasi tinggi yang boleh dijalankan pada mana-mana platform.

Kebangkitan Java dalam Kes Penggunaan Moden

Selain daripada pembangunan web dan pembangunan mudah alih, Java telah membuat tandanya dalam dunia teknologi moden. Hari ini, Java ialah bahasa pengaturcaraan yang sangat berguna untuk aplikasi saintifik. Ia menawarkan persekitaran yang selamat, pantas dan mudah alih untuk pengkomputeran saintifik. MATLAB ialah salah satu perpustakaan paling popular untuk aplikasi saintifik berasaskan Java.
  • Java juga berguna dalam pembangunan bahagian hadapan dan belakang bagi aplikasi saintifik. Anda boleh menggunakan Struts dan Halaman Pelayan Java untuk pembangunan bahagian hadapan dan Teras Java untuk pembangunan bahagian belakang aplikasi saintifik.

  • Java juga berguna untuk analisis data. Ia membolehkan pembangun mencipta penyelesaian analitik data menggunakan pelbagai perpustakaan dan alatan. Hari ini, Java telah menemui aplikasi dalam segmen Internet of Things. Ia merupakan teknologi utama dalam sistem terbenam seperti kad pintar dan penderia. Oleh itu, syarikat menggunakan bahasa pengaturcaraan ini dalam industri automasi rumah. Di samping itu, ia digunakan secara aktif dalam pembangunan teknologi peranti penstriman dan TV Pintar.

  • Platform data besar Hadoop ditulis dalam Java. Oleh kerana ia adalah bahasa sumber terbuka dan berorientasikan objek, ia adalah asas untuk aplikasi Data Besar. Bahasa pengaturcaraan seperti Scala boleh dijalankan dengan mudah pada Mesin Maya Java dan memudahkan analisis data besar.

  • Permainan ialah industri yang baru muncul dan berkembang pesat di mana Java digunakan secara meluas untuk pelbagai aplikasi permainan. Sebagai contoh, ia menawarkan sokongan untuk jMonkeyEngine, enjin pembangunan permainan 3D sumber terbuka terbesar. Selain itu, Mesin Maya Dalvik (DVM) disokong terutamanya oleh Java dan digunakan untuk mencipta permainan interaktif untuk Android.

Pengaturcaraan fungsional - kebaikan dan keburukan

Sumber: Dev.to Walaupun saya meragui tradisional terhadap teknologi yang tidak dikenali, saya menyedari faedah pengaturcaraan berfungsi. Di bawah ialah senarai anggaran kelebihan yang menerangkan paradigma pengaturcaraan ini. Coffee break #131.  Peranan Java dalam pembangunan aplikasi web dan mudah alih.  Pengaturcaraan fungsional - kebaikan dan keburukan - 2

Concurrency Selamat

Pendekatan kefungsian menggalakkan konkurensi yang selamat, iaitu, keupayaan untuk menjalankan kerja dalam utas berasingan tanpa menyebabkan konflik benang atau perlanggaran pengubahsuaian. Sebabnya ialah tidak seperti pendekatan objek, anda tidak berkongsi objek yang keadaannya boleh diubah semasa pemprosesan. Terdapat pintu masuk dan keluar, dan pintu masuk tidak berubah kerana anda. Di Java, walaupun anda menggunakan objek "selamat benang", anda tidak boleh menjamin bahawa ia akan mempunyai nilai yang sama apabila kaedah anda dipanggil. Dalam contoh di bawah, kita dapat melihat bahawa gelung yang memproses elemen satu demi satu boleh diproses secara selari dengan mudah menggunakan fungsi lambda di dalam benang.
for( String item : items ) {
   process(item);
}
Dan kini ia menjadi:
items.parallelStream().forEach( item -> process(item) );

I/O pantas

Pengaturcaraan fungsional menyokong pendekatan yang berbeza daripada multithreading. Ini bermakna kami tidak lagi mempunyai utas berasingan menunggu respons I/O seperti panggilan pangkalan data. Iaitu, kami memaksimumkan penggunaan CPU dan lebar jalur. Untuk aplikasi berprestasi tinggi ini adalah kelebihan yang jelas. Ini dilaksanakan dengan idea bahawa panggilan fungsi boleh mengembalikan Masa Depan, yang bukan hasil sebenar panggilan, sebaliknya janji untuk mengembalikan hasilnya pada satu ketika pada masa hadapan. Pada satu ketika pada masa hadapan, nilai pulangan diperoleh yang menjalankan fungsi. Ini bermakna bahawa benang pemproses tidak menunggu pangkalan data atau panggilan REST selesai dan boleh melakukan sesuatu yang lain.

Ringkasnya ungkapan

Pembangun perisian mahu dapat menyatakan idea yang kompleks dengan anggun. Pengaturcaraan fungsional membolehkan anda melakukan ini dengan ringkas. Sebagai contoh, binaan biasa seperti untuk gelung boleh digantikan dengan benang, yang mengabstrakkan yang biasa untuk operasi yang gelung digunakan. Tidak dinafikan bahawa penambahan fungsi dan utas Lambda ke Java telah mengembangkan keupayaan untuk menyatakan idea-idea yang sebelum ini mustahil.

Mengapa tidak menjadi berfungsi?

Hanya untuk mengulangi perkara di atas: terdapat banyak faedah untuk pengekodan berfungsi, jadi artikel ini tidak cuba untuk menyamaratakan segala-galanya ke dalam satu kes dan mengatakan bahawa anda mesti melakukan pengaturcaraan berfungsi atau sebaliknya. Keputusan ini mesti dibuat dengan pemahaman yang jelas tentang sebab-sebab peralihan dan kemungkinan masalah.

Ia sentiasa sukar untuk difahami secara intuitif

Semasa menulis kod, adakah anda cuba berkomunikasi dengan komputer? Jika komunikasi dengan komputer sangat penting kepada anda, mengapa tidak menulis dalam kod mesin? Sudah tentu, ini sangat sukar, jadi bahasa komputer dicipta untuk memudahkannya. Mereka juga membenarkan pengaturcara mencipta ungkapan yang boleh difahami oleh pengaturcara lain. Apabila perisian menjadi lebih besar dan lebih kompleks, kami memerlukan strategi untuk mengurus kerumitan. Kami mencapai ini melalui abstraksi dan penyembunyian maklumat. Kelas yang anda gunakan dalam Java untuk menghantar e-mel agak rumit, tetapi antara muka kelas ini mudah. Ia menyembunyikan pelaksanaan terperinci, mendedahkan kepada kami hanya bahagian luar kawalan. Ciri bahasa seperti kurungan kerinting dan kurungan segi empat sama memberitahu kita struktur seperti pernyataan bersyarat dan gelung. Hanya sekarang kita memindahkan gelung, atau sebaliknya rekursi, dan syarat ke dalam fungsi:
for( String item : items ) {
    System.out.println(item);
}
Kesudahannya:
items.foreach( item -> System.out.println(item) );
Pendekatan penstriman dan lambda pastinya lebih pendek. Anda boleh menyatakan fungsi yang sama dengan kurang kod. Masalahnya ialah kita kini menyembunyikan tingkah laku sebenar di dalam kaedah yang perlu kita ketahui. Gelung dalam Java menggunakan kata kunci. Sebaliknya, fungsi lambda boleh melaksanakan pelbagai bentuk rekursi, dan hanya nama di sini menunjukkan apa yang ia lakukan. Sebagai contoh:
boo.fooble( item -> System.out.println(item) );
Anda tidak boleh lagi membaca kod untuk memahami struktur. Ini menyukarkan untuk mengesan aliran pelaksanaan. Ciri lain ialah rantaian fungsi, di mana hasil daripada satu fungsi adalah input seterusnya tanpa memberikan pembolehubah perantaraan.
boolean result = boo
    .fooble( /*some code*/ )
    .bobble( /*some code*/)
    .goober( /*some code*/);
Ini mungkin masuk akal kepada pengarang kod ini kerana dia nampaknya telah menulis setiap fungsi dan tahu apa yang dilakukannya. Walau bagaimanapun, bagi mereka yang baru menggunakan kod, ini tidak memberitahu anda banyak tentang parameter, proses atau nilai pulangan setiap fungsi. Tetapi jika anda menulis perkara yang sama dalam sesuatu yang menetapkan jenis, anda akan mendapat:
Car car = boo.fooble( /*some parameters*/);
Tyre tyre = car.bobble( /*some parameters*/);
int pressure = tyre.goober( /*some parameters*/);
Ini mungkin bukan analogi yang sempurna, kerana parameter dan fungsi tanpa nama bukanlah perkara yang sama, tetapi maksudnya di sini ialah ayat yang panjang dengan keputusan dan parameter yang tidak diketahui sukar dibaca tanpa pemahaman yang lebih mendalam tentang fungsi yang diterangkan di bawah. Oleh itu, ada kemungkinan bahawa pengaturcaraan berfungsi kedua-duanya sangat ekspresif dalam segmen kod yang mengejutkan, tetapi tidak dapat difahami oleh orang yang baru menggunakan perisian. Tujuan kelas dan antara muka adalah untuk menyembunyikan data, untuk mencipta kepingan kod yang boleh digunakan semula yang tidak memerlukan pembangun untuk memahami atau mungkin melihat pelaksanaannya. Mereka wujud supaya pembangun boleh bekerja pada sistem yang besar dan kompleks tanpa sakit kepala. Ini ialah cara yang mudah untuk mengatur kod yang dikaitkan dengan entiti tertentu. Walau bagaimanapun, saya mempunyai sedikit pemahaman tentang bagaimana pengaturcaraan berfungsi membantu menstruktur projek kompleks yang besar. Mungkin ada sebab subjektif untuk ini.

Untuk menarik perhatian orang lain dengan kemahiran anda

Sesetengah pembangun perisian sangat tidak selamat dalam kemahiran mereka sehingga mereka cuba menarik perhatian dengan menulis kod yang tidak perlu rumit. Sebagai pembangun kanan, saya tidak begitu mengagumi pembangun perisian lain yang cuba menulis kod pintar. Sudah tentu, ini bukan sahaja terpakai kepada pengaturcaraan berfungsi; perkara yang sama boleh berlaku dalam mana-mana gaya pengekodan. Tetapi saya telah melihat kesombongan intelektual tertentu di kalangan penyokong pengaturcaraan berfungsi. Intinya ialah pembangun perisian tidak berfungsi dalam ruang hampa. Kod "pintar" ini perlu dikekalkan, dan jika ia sukar difahami, maka ia akan menjadi sukar untuk dibaca dan diubah, dan sukar untuk nyahpepijat. Apabila mengurus pasukan, kami mempunyai orang di semua peringkat, jadi perkara paling bijak untuk dilakukan ialah menulis kod dengan cara yang semua orang yang terlibat boleh faham. Inilah sebabnya kami mempunyai nama pembolehubah panjang yang jelas, jadi kami mengehadkan panjang kaedah. Kod "Pintar" akan mengambil masa tambahan, jadi ia tidak begitu bijak untuk menulisnya. Saya percaya bahawa pengaturcaraan berfungsi menggunakan hujah yang sama tentang ungkapan ringkas dan berkuasa yang Perl buat bertahun-tahun yang lalu. Penyokong Perl berbangga dengan ekspresifnya, cara mereka boleh menulis program yang sangat berkuasa dalam hanya beberapa baris kod. Memang benar. Masalahnya ialah mereka sukar difahami. Mungkin pengaturcaraan berfungsi telah jatuh ke dalam perangkap yang sama.

Kerana ia adalah fesyen baru

Sentiasa ada teknologi atau paradigma baharu yang "panas". Teknologi, bahasa dan pendekatan baharu sentiasa muncul. Kita mesti sentiasa mencabar diri sendiri dan belajar perkara baru. Menjadi pembangun perisian bermakna memajukan teknologi. Tetapi sebagai pembangun perisian, kita mesti menilai sendiri teknologi yang kita perlukan untuk mencipta produk. Mempelajari teknologi popular baharu hanya kerana ia popular bukanlah penggunaan masa yang bijak. Ini tidak bermakna anda tidak sepatutnya mempelajari pengaturcaraan berfungsi, sebaliknya anda harus menilai kebaikan dan keburukan paradigma ini untuk aplikasi yang anda tulis.

Kerana ini adalah satu-satunya cara yang benar

Banyak kali sebelum ini, saya telah melihat pembangun mempromosikan pendekatan ini atau itu sebagai satu-satunya yang betul. Tetapi seperti yang kawan memberitahu saya, pekerjaan yang berbeza memerlukan alat yang berbeza. Sebagai contoh, saya secara peribadi menggunakan Python dan PyTorch untuk kecerdasan buatan, walaupun terdapat banyak alat dan teknologi lain, masing-masing mempunyai kelebihan dan kekurangan mereka sendiri. Terdapat sebab yang baik untuk mempertimbangkan pengaturcaraan berfungsi sebagai pilihan untuk perkhidmatan yang memerlukan skalabiliti yang ketara. Ini disebabkan oleh keselamatan serentak yang ditawarkan oleh pendekatan ini. Tetapi anda juga harus sedar tentang kos dan potensi risiko. Beberapa tahun yang lalu saya mempunyai pengalaman yang sama dengan suntikan pergantungan dan Spring dianggap yang terbaik untuk pekerjaan itu. Apabila saya bertanya kepada penyokong Spring apa faedah yang dibawanya, mereka tidak memberi saya jawapan yang jelas. Saya melihat sesuatu yang serupa sekarang dengan beberapa ahli pengaturcaraan berfungsi yang nampaknya terlibat dalam beberapa jenis kempen keagamaan dan bukannya penilaian yang saksama terhadap teknologi. Ngomong-ngomong, suntikan pergantungan adalah idea yang bagus dan saya kini boleh mengenal pasti dengan jelas faedahnya. Begitu juga, saya fikir kebimbangan saya tentang pengaturcaraan berfungsi mempunyai kaitan dengan cara ia digunakan, bukannya sama ada ia adalah pendekatan yang berguna dan sah.

Kesimpulan

Maksud artikel ini bukanlah untuk memberikan jawapan yang jelas kepada persoalan sama ada anda perlu melakukan pengaturcaraan berfungsi. Intinya ialah bagaimana anda menilai mana-mana teknologi atau pendekatan baharu. Perkara utama: jangan biarkan ego anda menghalang penilaian objektif daripada anda. Pembangunan perisian bukanlah bukti keupayaan intelek anda atau kualiti peribadi anda. Ia mengenai mencipta nilai dalam dunia sebenar. Jika pengaturcaraan berfungsi membantu anda, gunakannya.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION