JavaRush /Java Blog /Random-TL /Java Trends sa 2021: Kotlin, Microservices Architecture a...

Java Trends sa 2021: Kotlin, Microservices Architecture at Kubernetes

Nai-publish sa grupo
Ang mundo ng pag-unlad ay mabilis na nagbabago. Upang makasabay sa mga pagbabago, kailangan mong maunawaan kung ano ang nangyayari sa mundong ito. Ang pag-alam sa mga uso ay nagbibigay-daan sa iyo na umangkop sa mabilis na pagbabago ng mga uso. Ang artificial intelligence, isang pagtaas sa bilang ng mga pagsasama, at ang Internet ng mga bagay ay bahagi lamang ng mga pandaigdigang uso sa programming. Tinanong ng JavaRush ang Java programming specialist at lecturer na si Andrey Rodionov kung ano ang mangyayari sa Java sa 2021.Mga trend ng Java sa 2021: Kotlin, arkitektura ng microservice at Kubernetes - 1

Para sa anong mga lugar ang Java pa rin ang tanging solusyon?

Ang Java sa malapit na hinaharap ay mananatiling isa sa mga pangunahing platform para sa pagbuo ng mga enterprise application ( iyon ay, mga corporate application na ginagamit ng malalaking kumpanya upang kumita ng pera. Ang mga naturang application ay may malaking code base at mataas na mga kinakailangan sa pagiging maaasahan - ed. ) at backend. Ang Java ay angkop sa arkitektura ng microservice, bagama't hindi lamang ito ang alternatibo para sa pagsulat ng mga microservice.

Ano ang mga prospect para sa iba pang mga wika ng JVM, sa partikular na Kotlin, kumpara sa Java?

Pagkatapos ng hype sa paligid ng mga wikang Groovy at Scala, ang Kotlin ay kasalukuyang nangungunang JVM na wika . Ito ay naging isang pamantayan para sa pag-unlad ng Android, ngunit sa mundo ng Java enterprise ay hindi pa ito nakakapanalo sa lugar nito. Maraming sikat na frameworks ( Spring , Vert.x , gRPC , RSocket ) ang umaasa din dito, na nagpapahintulot na magamit ito sa kanilang sarili.

Ang Kotlin ay isang statically typed, object-oriented programming language na tumatakbo sa ibabaw ng Java Virtual Machine at binuo ng JetBrains. Nag-compile din sa JavaScript at sa executable code sa isang bilang ng mga platform sa pamamagitan ng imprastraktura ng LLVM.

Mga tampok ng Kotlin: nag-compile sa JVM bytecode o JavaScript, open source, madaling basahin ang syntax, maaaring gamitin ng mga Kotlin program ang mga umiiral nang Java frameworks at library.

Magkakaroon ba ng pagbaba sa kalidad ng Java dahil sa mas maikling mga agwat ng paglabas?

Hindi ito: mga inobasyon lang sa wika ang ilalabas kapag handa na ang mga ito, sa halip na maghintay ng ilang taon hanggang sa susunod na paglabas, gaya ng nangyari noon. Ang ilang release ay hindi mapapansin ng mga developer, dahil hindi sila magdadala ng anumang sobrang sikat na inobasyon.

Spring framework: magpapatuloy ba itong palawakin ang ecosystem nito upang umangkop sa magkakaibang pangangailangan?

Ang Spring ecosystem ay patuloy na aktibong umuunlad, at panaka-nakang natutuklasan ko ang isa pa sa mga subproject nito, na hindi ko pa naririnig noon. Kapansin-pansin din na ang Project Reactor at r2dbc, na lumitaw bilang mga subproject ng Spring, ay masasabi na ngayon na naging mga pamantayan para sa reaktibong diskarte.

Ang Project Reactor ay isang library ng Java 8 na nagpapatupad ng reactive programming model. Ito ay binuo sa ibabaw ng detalye ng Reactive Streams, isang pamantayan para sa pagbuo ng mga reaktibong application.

Ang R2DBC (Reactive Relational Database Connectivity) ay isang open source na proyekto na nakatuon sa reaktibong programming para sa SQL.

Ano ang mga uso sa pagbuo ng mga imprastraktura ng ulap IaaS, SaaS, PaaS? Paano pinapadali ng cloud ang pag-develop, pag-deploy, pagpapanatili, at pag-scale ng imprastraktura?

Ang pangunahing trend dito ay patuloy na Kubernetes at ang imprastraktura sa paligid nito sa anyo ng isang Service mesh. Ang bawat self-respecting Cloud provider ay nagbibigay ng pagkakataong gumamit ng Kubernetes cluster. At kung ang isang application ay isinulat upang tumakbo sa Kubernetes, ginagawa nitong mas madali ang pag-deploy at pag-scale.

Ang Kubernetes (K8s) ay open source software para sa pag-automate ng deployment, pag-scale, at pamamahala ng mga containerized na application.

Pinagpangkat-pangkat ng Kubernetes ang mga container na bumubuo sa isang application sa mga lohikal na unit para sa mas madaling pamamahala at pagtuklas.

Ang Kubernetes ay namamahala at nagpapatakbo ng mga container sa isang malaking bilang ng mga host, at nagbibigay-daan sa co-location at pagtitiklop ng malaking bilang ng mga container. Ang proyekto ay sinimulan ng Google at ngayon ay sinusuportahan ng maraming kumpanya, kabilang ang Microsoft, RedHat, IBM at Docker.

Ano ang iba pang mga uso sa pag-unlad na dapat bigyang pansin sa 2021?

Isa sa mga kawili-wiling uso na patuloy pa ring tumataas ay ang GraalVM Native Image, na nagbibigay-daan sa iyong gawing binary ang isang tradisyunal na aplikasyon ng Java na hindi mangangailangan ng JVM at mga kaugnay na aklatan upang gumana. Ang nasabing binary file ay akma nang husto sa microservice architecture at serverless approach, dahil pinapayagan ka nitong mabilis na magsimula ng bagong instance ng application at hindi nangangailangan ng "warming up" sa JVM.

Nagbago ba kamakailan ang mga kinakailangan para sa mga batang developer dahil sa pag-unlad ng Java?

Kasama pa rin sa karamihan ng mga proyekto ang mga inobasyon ng Java 8, kahit na gumagamit ang mga developer ng mas bagong bersyon ng Java. Samakatuwid, ang pangunahing kinakailangan ay kaalaman sa Stream API at mga functional na elemento ng programming . Mainam din na magkaroon ng pang-unawa sa arkitektura ng microservice , Docker at Kubernetes , dahil sa isang modernong proyekto ay kailangang harapin kaagad ito ng isang baguhang developer.

Ang Stream API ay isang bagong paraan upang gumana sa mga istruktura ng data sa isang functional na istilo. Ang Stream API (isang paglalarawan ng mga paraan kung saan maaaring makipag-ugnayan ang isang computer program sa isa pang program), sa kaibuturan nito, isang stream ng data.

Sa pagdating ng Java 8, pinahintulutan ng Stream API ang mga programmer na isulat nang mas maikli kung ano ang dating kinuha ng maraming linya ng code, ibig sabihin, upang gawing simple ang trabaho sa mga set ng data, lalo na, upang gawing simple ang pag-filter, pag-uuri at iba pang mga operasyon sa pagmamanipula ng data. Kung wala kang mga intermediate na operasyon, magagawa mo at dapat madalas mong gawin nang walang stream, kung hindi, ang code ay magiging mas kumplikado kaysa sa walang stream.

Ang Docker ay software para sa pag-automate ng deployment at pamamahala ng mga application sa mga containerized na kapaligiran.

Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION