Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu ka Java si dị iche na asụsụ ndị ọzọ a ma ama? Gịnị kpatara Java ji bụrụ asụsụ mbụ ịmụ? Ka anyị mepụta atụmatụ ga-enyere gị aka ịmụta Java site na ọkọ ma site n'itinye nkà mmemme n'asụsụ ndị ọzọ. Ka anyị depụta ọdịiche dị n'etiti ịmepụta koodu mmepụta na Java na imepe emepe n'asụsụ ndị ọzọ. Mikhail Zatepyakin gụrụ akụkọ a na nzukọ maka ndị sonyere n'ọdịnihu internships Yandex na ndị mmepe mmalite ndị ọzọ - Java Junior meetup.


- Ndewo onye ọ bụla, aha m bụ Misha. Abụ m onye nrụpụta site na Yandex.Market, taa, m ga-agwa gị ihe mere ị ga-eji mụta Java na otu esi eme ya nke ọma. Ị nwere ike ịjụ ajụjụ ezi uche dị na ya: gịnị kpatara m ga-eji na-akọ akụkọ a, ọ bụghịkwa onye nrụpụta siri ike nwere ahụmahụ ọtụtụ afọ? Nke bụ́ eziokwu bụ na mụ onwe m mụrụ Java n’oge na-adịbeghị anya, ihe dị ka otu afọ na ọkara gara aga, n’ihi ya, m ka na-echeta otú ọ dị na ọnyà ndị e nwere.

Otu afọ gara aga, enwetara m ọzụzụ na Yandex.Market. M mepụtara azụ azụ maka Beru, maka Ahịa n'onwe ya, ị nwere ike iji ya. Ugbu a, m na-anọgide na-arụ ọrụ n'ebe ahụ, n'òtù dị iche. Anyị na-emepụta ikpo okwu nyocha maka Yandex.Market maka ndị mmekọ azụmahịa.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Ka anyị malite. Gịnị kpatara ịmụta Java site na echiche bara uru? Nke bụ́ eziokwu bụ na Java bụ asụsụ mmemme ama ama. O nwere obodo buru ibu.

Dịka ọmụmaatụ, enwere ndepụta TIOBE dị otú ahụ, ndepụta aha ama ama nke asụsụ mmemme na-ewu ewu, Java na-ebute ụzọ n'ebe ahụ. Ọzọkwa, na saịtị ọrụ, ị ga-achọpụta na ọtụtụ n'ime ohere bụ maka Java, ya bụ, site na ịmepụta na Java, ị nwere ike ịchọta ọrụ mgbe niile.

Ebe ọ bụ na obodo buru ibu, ajụjụ ọ bụla ị nwere ga-ahụ azịza na ụfọdụ Stack Overflow ma ọ bụ saịtị ndị ọzọ. Ọzọkwa, mgbe ị na-etolite na Java, ị na-ede koodu na JVM, yabụ ị nwere ike ịgbanwe ngwa ngwa gaa na Kotlin, Scala na asụsụ ndị ọzọ na-eji JVM.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu ihe dị mma maka Java site na echiche echiche? Enwere asụsụ mmemme dị iche iche. Ha na-edozi nsogbu dị iche iche, ị maara nke ahụ. Dịka ọmụmaatụ, Python dị mma maka ide edemede otu ahịrị iji dozie nsogbu ngwa ngwa.

N'akụkụ gbakwunyere, ị nwere ike ijikwa koodu arụ ọrụ nke ọma. Dịka ọmụmaatụ, anyị nwere ụgbọ ala, Yandex ụgbọ ala na-enweghị ọkwọ ụgbọ ala, edere koodu ha na pluses. Gịnị kpatara? Java nwere ihe dị otú ahụ - Achịkọta ahịhịa. Ọ na-ehichapụ RAM nke ihe ndị na-adịghị mkpa. Ihe a na-amalite n'onwe ya ma kwụsị-ụwa, ya bụ, ọ na-akwụsị ihe omume ndị ọzọ ma na-aga ịgụta ihe, ebe nchekwa doro anya nke ihe. Ọ bụrụ na ihe dị otú ahụ na-arụ ọrụ na drone, ọ dịghị mma. Drone gị ga-anya ụgbọ ala kwụ ọtọ, n'oge a kpochapụ ebe nchekwa ya ma ghara ileba anya n'okporo ụzọ ma ọlị. Ya mere, a na-ede drone na uru.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu nsogbu Java na-edozi? Ọ bụ isi asụsụ maka ịmepụta nnukwu mmemme nke edere ọtụtụ afọ, site n'ọtụtụ iri ma ọ bụ narị otu narị mmadụ. Karịsịa, a na-ede ọtụtụ n'ime azụ azụ na Yandex.Market na Java. Anyị nwere otu ndị kesara n'ọtụtụ obodo, mmadụ iri na nke ọ bụla. Na koodu ahụ dị mfe ịnọgide na-enwe, a kwadoro ya ruo afọ iri ma ọ bụ karịa, ma n'otu oge ahụ ndị ọhụrụ na-abata ma ghọta koodu a.

Kedu àgwà asụsụ kwesịrị inwe nke mere na koodu dị na ya na-akwado ngwa ngwa nakwa ka ọ dị mfe ịmepụta na nnukwu ìgwè. Nke mbụ, ọ ga-abụ koodu a na-agụ, ma ọ ga-adị mfe iji mejuputa ngwọta ụlọ dị mgbagwoju anya. Ya bụ, ọ ga-adị mfe ịde abstractions dị elu, wdg. Ihe a niile bụ ihe Java na-enye anyị. Nke a bụ asụsụ gbadoro ụkwụ n'ihe. Ọ dị nfe n'ezie iji mejuputa abstractions dị elu na ụlọ mgbagwoju anya.

Enwekwara ọtụtụ usoro na ọba akwụkwọ maka Java, n'ihi na asụsụ a karịrị afọ iri na ise. N'oge a, a na-ede ihe niile e nwere ike ide n'elu ya, ya mere enwere ọtụtụ ọba akwụkwọ maka ihe ọ bụla ị ga-achọ.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu nkà bụ isi, n'uche nke m, onye mbido JA kwesịrị inwe? Nke mbụ, nke a bụ ihe ọmụma nke asụsụ isi Java. Nke na-esote bụ ụfọdụ ụdị usoro ịgba ọgwụ dabere. Onye na-ekwu okwu na-esote, Kirill, ga-ekwu maka nke a nke ọma. Agaghị m aga omimi. Ihe na-esote bụ ụkpụrụ ụlọ na ụkpụrụ imewe. Anyị kwesịrị inwe ike ide koodu mara mma nke ọma iji dee nnukwu ngwa. Na nke a bụ ụfọdụ ụdị SQL ma ọ bụ ORM maka ọrụ nke na-arụ ọrụ na nchekwa data. Na nke a na-emetụta karịa na azụ azụ.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Gaba! Java isi. Agaghị m achọpụta America ebe a-ịkwesịrị ịmara asụsụ ahụ n'onwe ya. Ihe ị kwesịrị ịṅa ntị. Mbụ, Java ewepụtala ọtụtụ nsụgharị n'afọ ndị na-adịbeghị anya, ya bụ, na 2014-2015 nke asaa ewepụtara, nke asatọ, nke itoolu, nke iri, ọtụtụ nsụgharị ọhụrụ, na ọtụtụ ihe ọhụrụ dị jụụ ewebata n'ime ha. , dịka ọmụmaatụ, Java Stream API , lambda, wdg. Dị nnọọ mma, ọhụrụ, ihe dị mma nke a na-eji na koodu mmepụta, ihe ha na-ajụ banyere ajụjụ ọnụ na nke ị kwesịrị ịma. Ya mere, ị gaghị ewere akwụkwọ site na shelf dị n'ọbá akwụkwọ Java-4 wee gaa mụọ ya. Nke a bụ atụmatụ anyị: anyị na-amụta Java-8 ma ọ bụ karịa.

Anyị na-aṅa ntị nke ọma na ihe ọhụrụ dị ka Stream API, var, wdg. A na-ajụ ha n'oge ajụjụ ọnụ ma na-eji ya eme ihe mgbe niile. Ya bụ, Stream API dị jụụ karịa loops, n'ozuzu, ihe dị mma nke ukwuu. Jide n'aka na ị ga-aṅa ntị.

Na e nwere ụdị ihe niile dị ka ndị na-emegharị ihe, Mpụga na ihe ndị ọzọ. Ihe ndị yiri ka ha adịghị gị mkpa ma ọ bụrụhaala na ị na-ede obere koodu n'onwe gị. Ịchọghị Mwepu ndị a, onye chọrọ ha agbanyeghị? Ma a ga-ajụrịrị ha na ajụjụ ọnụ, ha ga-abara gị uru na mmepụta. N'ozuzu, ị kwesịrị ị na-aṅa ntị na Ewepụghị, iterators na ihe ndị ọzọ.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Ọdịdị data. Ị nweghị ike ịga na-enweghị ihe owuwu, ma ọ ga-adị mma ma ọ bụrụ na ị maghị na e nwere nhazi, akwụkwọ ọkọwa okwu, na mpempe akwụkwọ. Nakwa dị iche iche mmejuputa iwu nke owuwu. Dịka ọmụmaatụ, otu akwụkwọ ọkọwa okwu na Java nwere ọtụtụ mmejuputa, gụnyere HashMap na TreeMap. Ha nwere asymptotics dị iche iche, a na-ahazi ha dị iche iche n'ime. Ị kwesịrị ịma otú ha si dị iche na mgbe ị ga-eji nke.

Ọ ga-adịkwa mma ma ọ bụrụ na ị maara ka usoro data ndị a si arụ ọrụ n'ime. Nke ahụ bụ, ọ dịghị mfe ịmata asymptotics ha - ole nzọ na-arụ ọrụ, ogologo oge ngafe na-arụ ọrụ, mana ka usoro ahụ si arụ ọrụ - dịka ọmụmaatụ, kedu ihe ịwụ na HashMap.

Ọ dịkwa mma ịṅa ntị na osisi na eserese. Ihe ndị a bụ ihe anaghị adịkarị na koodu mmepụta, mana ha na-ewu ewu na ajụjụ ọnụ. N'ihi ya, ị ga-enwe ike ịgafe osisi, eserese na obosara na omimi. Ndị a niile bụ algọridim dị mfe.

Ozugbo ịmalitere ide koodu ọ bụla buru ibu, mgbagwoju anya, iji ụlọ akwụkwọ, koodu ọtụtụ klas, ị ga-achọpụta na ọ na-esiri gị ike na-enweghị wulite usoro ma dozie ịdabere na ya. Ndị a bụ isi Maven na Gradle. Ha na-enye gị ohere ibubata ọba akwụkwọ n'ime ọrụ gị n'otu ahịrị. Ya bụ, ị na-ede xml otu ahịrị wee bubata ọba akwụkwọ n'ime ọrụ ahụ. Sistemụ arụmọrụ. Ha dị ihe dịka otu, jiri otu - Maven ma ọ bụ Gradle.

Na-esote - ụfọdụ ụdị usoro njikwa ụdị. Ana m akwado Git n'ihi na ọ na-ewu ewu yana enwere ọtụtụ nkuzi. Ihe fọrọ nke nta ka ọ bụrụ onye ọ bụla na-eji Git, ọ bụ ihe dị mma, ị nweghị ike ibi ndụ na-enweghị ya.

Na ụfọdụ ụdị mmepe gburugburu ebe obibi. Ana m akwado echiche IntelliJ. Ọ na-eme ka usoro mmepe ahụ dị ngwa ngwa, na-enyere gị aka nke ukwuu, na-edere gị koodu ikpo ọkụ niile, n'ozuzu, ọ dị mma.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Njikọ sitere na slide ahụ: SQLZOO, habrapost

SQL. Obere banyere backnders. Enwere ikpe na-atọ ọchị ebe a. Ụbọchị abụọ tupu ajụjụ ọnụ nke abụọ m, otu nwa agbọghọ HR kpọrọ m ma kwuo na n'ime ụbọchị abụọ ha ga-ajụ m gbasara SQL na HTTP, ọ dị m mkpa ịmụta ya. Ma ọ fọrọ nke nta ka m mara ihe ọ bụla gbasara SQL ma ọ bụ HTTP. Achọkwara m saịtị a mara mma - SQLZOO. M mụtara SQL na ya n'ime awa iri na abụọ, m pụtara, SQL syntax, ka esi ede ajụjụ ajụjụ, JOIN, wdg. Ebe dị mma nke ukwuu, ana m akwado ya. N'ezie, n'ime awa 12 m mụtara 12% nke ihe m maara ugbu a.

Ọ dịkwa oke mma ịmara ụkpụrụ nchekwa data. Ndị a bụ ụdị igodo niile, indexes, normalization. Enwere akwụkwọ akụkọ gbasara nke a na Habré.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Na Java, na mgbakwunye na SQL, e nwere ụdị ihe ọ bụla nke ihe-mmekọrịta maapụ usoro dị ka JPA. Enwere koodu ụfọdụ. Na usoro nke mbụ enwere ụfọdụ koodu SQL - Họrọ id aha SITE info.users Ebe id IN userIds. Site na nchekwa data ndị ọrụ, site na tebụl, enwetara ID na aha ha.

Na-esote, e nwere ụfọdụ map nke na-atụgharị ihe site na isi ka ọ bụrụ ihe Java. Ma enwere usoro nke atọ n'okpuru nke na-eme koodu a n'ezie. Enwere ike dochie ihe a niile site na iji JPA nwere otu ahịrị, nke edere n'okpuru. Ọ na-eme otu ihe ahụ - chọta All ByIdIn. Ya bụ, dabere na aha usoro ahụ, ọ na-ewepụta ajụjụ SQL maka gị.

Ihe dị mma. Mụ onwe m, mgbe m na-amaghị SQL, ji JPA. N'ozuzu, ṅaa ntị. Ọ bụrụ na ị dị umengwụ ịmụ SQL, ọ bụ ọdachi. Na, n'ozuzu, ọkụ!

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Mmiri. Ònye nụworo ihe dị otú ahụ dị ka Spring framework? Ị hụrụ ole n'ime unu dị? Ọ bụghị n'enweghị ihe kpatara ya. Agụnyere oge opupu ihe ubi na ihe achọrọ maka ohere ohere azụ azụ Java nke abụọ ọ bụla. Na-enweghị ya, ọ dịghị ebe ọ bụla na nnukwu mmepe. Kedu ihe bụ mmiri? Nke mbụ, nke a bụ usoro injection dabere. Banyere nke a kwa ga-agwa ọkà okwu na-esote. Mana na nkenke, nke a bụ ihe na-enye gị ohere ime ka ọ dịrị gị mfe ibubata ndabere nke klaasị ụfọdụ na ndị ọzọ. Ya bụ, ihe ọmụma nke ịdabere na-adị mfe.

Spring Boot bụ mpempe mmiri na-enye gị ohere iji otu bọtịnụ rụọ ngwa nkesa gị. Ị na-aga na THID, pịa bọtịnụ ole na ole, ma ugbu a ị nwere ngwa nkesa gị na-arụ ọrụ na localhost 8080. Ya bụ, idebebeghị otu ahịrị koodu, mana ọ na-arụ ọrụ. Ihe dị mma. Ọ bụrụ na ị dee ihe nke gị, ọkụ!

Mmiri bụ nnukwu usoro. Ọ bụghị naanị na ọ na-ebuli ngwa nkesa gị wee dozie ịgbanye ndabere. Ọ na-enye gị ohere ịme ọtụtụ ihe, gụnyere ịmepụta ụzọ API REST. Ya bụ, ị dere ụfọdụ usoro wee tinye nkọwa Get mapping na ya. Ma ugbu a ị nweela usoro ụfọdụ na localhost nke na-edere gị ndewo ụwa. Ahịrị abụọ nke koodu na ọ na-arụ ọrụ. Ihe dị mma.

Mmiri na-emekwa ka ule ederede dị mfe. Ọ dịghị ụzọ na-enweghị ule na nnukwu mmepe. Ekwesịrị ịnwale koodu ahụ. Maka ebumnuche a, Java nwere ọbá akwụkwọ mara mma JUnit 5. Na JUnit n'ozuzu ya, mana ụdị kachasị ọhụrụ bụ nke ise. Enwere ihe niile maka ule, ụdị nkwupụta na ihe ndị ọzọ.

Ma enwere usoro Mockito dị egwu. Were ya na ị nwere ụfọdụ ọrụ ịchọrọ ịnwale. Ọrụ a na-eme ọtụtụ ihe, gụnyere, ebe n'etiti, ọ na-abanye na VKontakte na ID gị, dịka ọmụmaatụ, na-enweta aha mbụ na aha ikpeazụ nke onye ọrụ VKontakte site na ID. Eleghị anya ị gaghị etinye VKontakte na ule, nke ahụ dị ịtụnanya. Mana ịkwesịrị ịnwale ọrụ ahụ, yabụ ị mere klas a, na-eji Mockito, mok ya, na-eṅomi ya.

Ị ga-ekwu na mgbe arịrịọ na-abịa na klas a nwere ID dị otú ahụ, ọ na-eweghachite aha ikpeazụ, dịka ọmụmaatụ, Vasya Pupkin. Ọ ga-arụkwa ọrụ. Ya bụ, ị ga-anwale ọrụ niile maka mok otu klas. Ihe dị mma.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Njikọ sitere na slide

Nhazi ụkpụrụ. Kedu ihe ọ bụ? Ndị a bụ ndebiri maka idozi nsogbu ndị a na-ahụkarị na-ebilite na mmepe. Na mmepe, nsogbu ndị yiri ya ma ọ bụ ndị yiri ya na-ebilite na ọ ga-adị mma iji dozie nke ọma. Ya mere, ndị mmadụ wepụtara usoro kachasị mma, ụfọdụ ndebiri, maka otu esi edozi nsogbu ndị a.

Enwere webụsaịtị nwere ụkpụrụ kachasị ewu ewu - refactoring.guru, ị nwere ike ịgụ ya, chọpụta ụdị usoro dị, gụọ ụyọkọ tiori. Nsogbu bụ na ọ abaghị uru. N'ezie, ụkpụrụ na-enweghị omume adịghị uru karịsịa.

Ị ga-anụ maka ụfọdụ ụkpụrụ dị ka Singletone ma ọ bụ Nrụpụta ihe. Ònye nụrụ okwu ndị a? Ọtụtụ mmadụ. Enwere usoro dị mfe dị otú ahụ nke ị nwere ike mejuputa onwe gị. Ma ọtụtụ n'ime ụkpụrụ: atụmatụ, ụlọ ọrụ mmepụta ihe, facade - ọ bụghị ihe doro anya ebe a ga-etinye ha.

Ma ruo mgbe ị hụrụ n'omume na koodu onye ọzọ ebe a na-etinye ụkpụrụ a, ị gaghị enwe ike itinye ya n'onwe gị. Ya mere, omume dị ezigbo mkpa na ụkpụrụ. Na naanị ịgụ banyere ha na refactoring.guru abụghị nnukwu aka, mana ọ bara uru ịme.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu ihe kpatara achọrọ ụkpụrụ? Ka anyị kwuo na ị nwere klaasị onye ọrụ. O nwere Id na aha. Onye ọrụ ọ bụla ga-enwerịrị ma ID yana aha. N'elu aka ekpe bụ klaasị.

Kedu ụzọ isi malite onye ọrụ? Enwere nhọrọ abụọ - ma ọ bụ ihe nrụpụta ma ọ bụ ihe nrụpụta. Kedu ihe ọghọm nke ụzọ abụọ a?

Onye nrụpụta. Onye ọrụ ọhụrụ (7, "Bond"), ọ dị mma. Ugbu a, ka anyị kwuo na anyị enweghị klaasị Onye ọrụ, mana nke ọzọ, nwere mpaghara ọnụọgụ asaa. Ị ga-enwe onye nrụpụta nwere ọnụọgụ asaa n'usoro. Amabeghị ihe ọnụọgụ ndị a bụ na nke n'ime ha bụ nke ihe onwunwe. Onye mmebe adịghị mma.

Nhọrọ nke abụọ bụ setter. Ị na-ede nke ọma: setId(7), setName("Bond"). Ị ghọtara nke ihe onwunwe bụ nke ubi. Mana onye nrụpụta nwere nsogbu. Nke mbụ, ị nwere ike ichefu inye ihe, na nke abụọ, ihe gị na-atụgharị na-agbanwe agbanwe. Nke a adịghị mma eri ma na-ebelata ntakịrị ọgụgụ nke koodu. Ọ bụ ya mere ndị mmadụ ji wepụta ụkpụrụ dị mma - Onye nrụpụta.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu ihe nke a gbasara? Ka anyị gbalịa ijikọta uru nke ụzọ abụọ ahụ-setter na constructor-na otu. Anyị na-eme otu ihe, Nrụpụta, nke ga-enwekwa Id na Aha ubi, nke a ga-ewu n'onwe ya dabere na ntọala ahụ, nke ga-enwe usoro nrụpụta nke na-eweghachi gị Onye ọrụ ọhụrụ na paramita niile. Anyị na-enweta ihe na-adịghị agbanwe agbanwe na ihe nhazi. Jụụ!

Gịnị bụ nsogbu? Ebe a anyị nwere kpochapụwo Nrụpụta. Nsogbu bụ na anyị ka nwere ike ichefu ịlele na mpaghara ụfọdụ. Ma ọ bụrụ na anyị chefuru ileta ID ahụ, na nke a na Onye Nrụpụta, a na-ebute ya na efu, n'ihi na ụdị int abụghị ihe efu. Ma ọ bụrụ na anyị emee Aha "Bond" ma chefuo ịga na ụlọ ọrụ ID, anyị ga-enwe onye ọrụ ọhụrụ nwere id "0" na aha "Bond". Ọ dịghị mma.

Ka anyị gbalịa ịlụso nke a ọgụ. Na Builder anyị ga-agbanwe int ka ọ bụrụ ihe efu. Ugbu a ihe niile dị mma.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Ọ bụrụ na anyị na-agbalị ịmepụta onye ọrụ nwere aha "Bond", na-echefu itinye ID ya, anyị ga-enweta ihe nkwụsịtụ efu, n'ihi na ID ahụ adịghị agwụ agwụ, na onye na-emepụta ihe nwere ihe efu, kpọmkwem pointer iche.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Mana anyị ka nwere ike chefuo itinye aha, yabụ anyị na-edegharị ihe ka ọ bụrụ ihe efu. Ugbu a, mgbe anyị na-ewu ihe anyị site na Onye Nrụpụta, ọ na-achọpụta na ubi ahụ enweghị ike imebi. Ma nke ahụ abụghị nanị.

Ka anyị leba anya n’ihe atụ ikpeazụ. N'okwu a, ọ bụrụ na anyị etinye ihe efu na oge ID ID, ọ ga-adị mma ịmara ozugbo na ị mere ya na ọ dịghị mma na ị na-emehie ihe ugbu a.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Ịkwesịrị ịtụfu njehie ọ bụghị n'oge okike nke onye ọrụ, mana mgbe ịtọlite ​​​​null na ID ahụ. Ya mere, na Builder anyị ga-agbanwe setter Integer ka int, ọ ga-aṅụ iyi ozugbo na ha tụpụrụ efu.

Na nkenke, gịnị bụ isi ihe? Enwere usoro ihe nrụpụta dị mfe, mana ọbụlagodi mmejuputa ya nwere ụfọdụ aghụghọ, yabụ na ọ dị mma ileba anya na mmemme dị iche iche nke ụkpụrụ. Ụkpụrụ ọ bụla nwere ọtụtụ mmejuputa iwu. Ihe a niile na-atọ ụtọ.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Kedu ka anyị ga-esi dee Nrụpụta na koodu mmepụta? Nke a bụ onye ọrụ anyị. Anyị na-etinye ntụgharị nke Onye nrụpụta site na ọbá akwụkwọ Lombok na ya, ya onwe ya na-ewepụtara anyị Onye Nrụpụta Ihe. Ya bụ, anyị anaghị ede koodu ọ bụla, mana Java echelarị na klas a nwere Onye Nrụpụta ihe, anyị nwere ike ịkpọ ya dị ka nke a.

Ekwuwo m na Java nwere ọba akwụkwọ maka ihe fọrọ nke nta ka ọ bụrụ ihe niile, gụnyere Lombok, ọbá akwụkwọ mara mma nke na-enye gị ohere ịzenarị ịde efere efere. Onye nrụpụta, nweta.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Ụdị nwere ike ịbụ ụkpụrụ ụlọ - metụtara ọ bụghị naanị otu klas, mana na usoro n'ozuzu ya. Enwere ụkpụrụ dị mma dị na nhazi sistemu: Ụkpụrụ Ọrụ Otu. Gịnị ka ọ na-ekwu? Eziokwu ahụ bụ na klaasị ọ bụla ga-ahụrịrị maka ụfọdụ ọrụ nke ya. N'okwu a, anyị nwere onye njikwa na-ekwurịta okwu na ndị ọrụ, ihe JSON. Enwere Facade, nke na-agbanwe ihe JSON ka ọ bụrụ ụdị nke ngwa Java ga-arụ ọrụ. Enwere Ọrụ nke nwere mgbagha mgbagwoju anya nke na-arụ ọrụ na ụdị ndị a. Enwere ihe nnweta data nke na-etinye ụdị ndị a na nchekwa data wee weghachite ha na nchekwa data. Na e nwere nchekwa data n'onwe ya. N'ikwu ya n'ụzọ ọzọ, ọ bụghị ihe niile na otu klas, ma anyị na-eme klas ise dị iche iche, nke ahụ bụkwa ụkpụrụ ọzọ.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Ozugbo ị mụtachara Java ma ọ bụ karịa, ọ dị mma ide ọrụ nke gị nke ga-enwe nchekwa data, rụọ ọrụ na API ndị ọzọ, wee kpughee ngwa nkesa gị n'aka ndị ahịa REST API. Nke a ga-abụ nnukwu ihe ịgbakwunye na resume gị, ọ ga-abụ njedebe dị mma na agụmakwụkwọ gị. Site na nke a ị nwere ike ịga nweta ọrụ.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

Nke a bụ ọmụmaatụ nke ngwa nkesa m. N'afọ nke abụọ m, m na ụmụ okorobịa ahụ dere akwụkwọ akụkọ. Ha nọ na-ede ngwa mkpanaka maka ịhazi mmemme. N'ebe ahụ, ndị ọrụ nwere ike ịbanye site na VKontakte, tinye isi na maapụ, mepụta ihe omume, kpọọ ndị enyi ha ka ha bịa, chekwaa foto nke ihe omume, wdg.

Kedu ihe m mere na oru ngo? Dee ngwa nkesa na Spring Boot na-ejighi SQL. Amaghị m ya, ejiri m JPA. Gịnị ka ọ ga-eme? Banye na VK site na OAuth-2. Were akara onye ọrụ, jiri ya gaa na VK, lelee na ọ bụ ezigbo onye ọrụ. Nweta ozi gbasara ndị ọrụ site na VKontakte. Ọ nwere ike ịchekwa ozi na nchekwa data, sitekwa na JPA. Jiri nka chekwaa foto na faịlụ ndị ọzọ na ebe nchekwa kọmputa, wee chekwaa njikọ ha na nchekwa data. N'oge ahụ, amaghị m na e nwere ihe CLOB dị na nchekwa data, n'ihi ya, m mere ya otú a. Enwere API REST maka ndị ọrụ, ngwa ndị ahịa. Ma enwere ule otu maka ịrụ ọrụ nkiti.

[…] Obere ihe atụ nke mmụta Java na-aga nke ọma. N'afọ mbụ m na mahadum, a kụziiri m C # ma nye m nghọta nke mmemme OOP - kedu klaasị, interfaces, abstraction bụ, na ihe kpatara ha ji chọọ. O nyeere m aka nke ukwuu. Na-enweghị nke a, ịmụ Java siri ezigbo ike; o doghị anya ihe kpatara achọrọ klaasị.

Kedu ihe kpatara ịmụta Java na otu esi eme ya nke ọma. Yandex akụkọ

N'afọ nke abụọ m na mahadum, ha kuziri Java core ọzọ, ma akwụsịghị m ebe ahụ, agara m akwụkwọ ọmụmụ Spring onwe m wee dee akwụkwọ nkuzi, ọrụ m, nke m kwuru n'elu. Na ihe a niile, agara m maka ọzụzụ na Yandex, gafere ajụjụ ọnụ, wee banye na Yandex.Market. N'ebe ahụ, m dere backend maka Beru, nke a bụ ahịa anyị, na Yandex.Market n'onwe ya.

Mgbe nke ahụ gasịrị, ọnwa isii gara aga, agafere m otu ọzọ n'ime otu Ahịa ahụ. Anyị na-eme nyocha maka ndị mmekọ azụmahịa. Anyị nọ na ikpo okwu nyocha, enwere anyị atọ na azụ azụ, yabụ enwere m oke oke mmetụta na ọrụ ahụ. Ọ na-adọrọ mmasị nke ukwuu, n'ezie. Nke ahụ bụ, anyị n'ezie na-enye data na ahịa - ihe ahịa bụ, kedu ụdị, n'ụdị, maka ndị mmekọ azụmahịa, nnukwu ụlọ ọrụ a ma ama. Ma enwere naanị atọ n'ime anyị, anyị na-ede koodu a, ọ dịkwa mma nke ukwuu.

Daalụ! Njikọ bara uru:
- "Java 8. Ntuziaka mmalite".
- Ọdịdị data.
- SQLZOO.
- Nhazi nchekwa data.
- Ụkpụrụ imewe.
- Ụdị Nhazi.
- Usoro Dị Ọcha.
- Java dị irè.

isi: www.habr.com

Tinye a comment