Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Kodi Java ikusiyana bwanji ndi zinenero zina zotchuka? Chifukwa chiyani Java iyenera kukhala chilankhulo choyamba kuphunzira? Tiyeni tipange dongosolo lomwe lingakuthandizeni kuphunzira Java kuyambira poyambira komanso kugwiritsa ntchito luso lopanga mapulogalamu m'zilankhulo zina. Tiyeni titchule kusiyana pakati pa kupanga ma code opangira mu Java ndi kupanga zilankhulo zina. Mikhail Zatepyakin adawerenga lipotili pamsonkhano wa omwe adzakhale nawo m'tsogolo maphunziro ЯндСкса ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² β€” Java Junior meetup.


- Moni nonse, dzina langa ndine Misha. Ndine wopanga kuchokera ku Yandex.Market, ndipo lero ndikuwuzani chifukwa chake muyenera kuphunzira Java ndi momwe mungachitire bwino. Mutha kufunsa funso loyenera: chifukwa chiyani ndikhala ndikuwuza nkhaniyi, osati woyambitsa wamphamvu yemwe ali ndi zaka zambiri? Zoona zake n’zakuti inenso ndinaphunzira Java posachedwapa, pafupifupi chaka ndi theka chapitacho, kotero ndimakumbukirabe mmene zinalili ndi misampha imene ilipo.

Chaka chapitacho ndinalandira internship ku Yandex.Market. Ndinapanga kumbuyo kwa Beru, kwa Msika womwewo, mwina munaugwiritsa ntchito. Tsopano ndikupitiriza kugwira ntchito kumeneko, mu timu ina. Timapanga nsanja yowunikira Yandex.Market kwa ochita nawo bizinesi.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Π”Π°Π²Π°ΠΉΡ‚Π΅ приступим. Π—Π°Ρ‡Π΅ΠΌ ΡƒΡ‡ΠΈΡ‚ΡŒ Java с практичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния? Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Java β€” это ΠΎΡ‡Π΅Π½ΡŒ извСстный язык программирования. Π£ Π½Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ большоС ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ.

Mwachitsanzo, pali cholozera cha TIOBE, cholozera chodziwika bwino cha kutchuka kwa zilankhulo zamapulogalamu, ndi malo oyamba a Java. Komanso, pamalo ogwirira ntchito, mwina mudzazindikira kuti malo ambiri osagwira ntchito ndi okhudza Java, ndiko kuti, pakukulitsa Java, mutha kupeza ntchito nthawi zonse.

Popeza derali ndi lalikulu kwambiri, funso lililonse lomwe muli nalo lipeza yankho pa Stack Overflow kapena masamba ena. Komanso, popanga Java, mukulemba ma code pa JVM, kotero mutha kusintha mosavuta ku Kotlin, Scala ndi zilankhulo zina zomwe zimagwiritsa ntchito JVM.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Ubwino wa Java ndi chiyani pamalingaliro amalingaliro? Pali zilankhulo zosiyanasiyana zamapulogalamu. Amathetsa mavuto osiyanasiyana, mukudziwa zimenezo. Mwachitsanzo, Python ndiyabwino polemba zolemba za mzere umodzi kuti athetse mavuto mwachangu.

Kumbali yabwino, mutha kuwongolera code yomwe ingathe kuchitika. Mwachitsanzo, tili ndi magalimoto, Yandex magalimoto osayendetsa, malamulo awo amalembedwa pluses. Chifukwa chiyani? Java ili ndi chinthu choterocho - Wosonkhanitsa Zinyalala. Imachotsa RAM pazinthu zosafunikira. Izi zimayamba zokha ndipo zimayimitsa-dziko, ndiko kuti, zimayimitsa pulogalamu yonse ndikupita kuwerengera zinthu, kukumbukira bwino zinthu. Ngati chinthu choterocho chikugwira ntchito mu drone, sizozizira. Drone yanu idzayendetsa molunjika, pakadali pano yeretsani kukumbukira kwake ndipo osayang'ana msewu konse. Chifukwa chake, drone yalembedwa pazabwino.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Kodi Java imathetsa mavuto otani? Ndi chilankhulo chopangira mapulogalamu akulu omwe amalembedwa kwa zaka zambiri, ndi anthu ambiri kapena mazana. Makamaka, zambiri zakumbuyo ku Yandex.Market zimalembedwa ku Java. Tili ndi gulu logawidwa m'mizinda ingapo, anthu khumi mumtundu uliwonse. Ndipo codeyo ndi yosavuta kuisamalira, yakhala ikuthandizidwa kwa zaka khumi kapena kuposerapo, ndipo nthawi yomweyo anthu atsopano amabwera ndikumvetsetsa code iyi.

Ndi mikhalidwe yotani yomwe chilankhulo chiyenera kukhala nacho kuti code yomwe ilimo ithandizidwe mosavuta komanso kuti ikhale yopangidwa mosavuta m'magulu akuluakulu. Choyamba, iyenera kukhala nambala yowerengeka, ndipo ikhale yosavuta kugwiritsa ntchito njira zomangira zovuta. Ndiko kuti, ziyenera kukhala zosavuta kulemba zolemba zapamwamba, etc. Zonsezi ndi zomwe Java imatipatsa. Ichi ndi chinenero cholunjika pa chinthu. Ndikosavuta kukhazikitsa zotengera zapamwamba komanso zomangamanga zovuta.

Palinso ma frameworks ndi malaibulale ambiri a Java, chifukwa chinenerochi ndi zaka zoposa 15. Panthawiyi, zonse zomwe zingathe kulembedwa zinalembedwapo, kotero pali matani a malaibulale pazomwe mungafunike.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Ndi maluso ati oyambira, m'malingaliro anga, omwe wosewera wa JA ayenera kukhala nawo? Choyamba, ichi ndi chidziwitso cha chinenero cha Java core. Chotsatira ndi mtundu wina wa Dependency Injection framework. Wokamba nkhani wotsatira, Kirill, alankhula za izi mokwanira. Sindidzazama kwambiri. Chotsatira ndi mapangidwe ndi mapangidwe. Tiyenera kulemba zilembo zokongola kuti tilembe ntchito zazikulu. Ndipo uwu ndi mtundu wina wa SQL kapena ORM wa ntchito zogwirira ntchito ndi nkhokwe. Ndipo izi zimagwiranso ntchito ku backend.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Pitani! Java core. Sindipeza America pano-muyenera kudziwa chilankhulocho. Zomwe muyenera kulabadira. Choyamba, Java yatulutsa matembenuzidwe ambiri m'zaka zaposachedwa, ndiye kuti, mu 2014-2015 lachisanu ndi chiwiri linatulutsidwa, ndiye lachisanu ndi chitatu, lachisanu ndi chinayi, lakhumi, matembenuzidwe ambiri atsopano, ndi zinthu zambiri zatsopano zozizira zinayambitsidwa mwa iwo. , mwachitsanzo, Java Stream API , lambda, etc. Zinthu zozizira kwambiri, zatsopano, zozizira zomwe zimagwiritsidwa ntchito popanga ma code, zomwe amafunsa pazokambirana ndi zomwe muyenera kuzidziwa. Chifukwa chake, simuyenera kutenga buku kuchokera pa alumali mulaibulale ya Java-4 ndikupita kukaphunzira. Ili ndiye dongosolo lathu: timaphunzira Java-8 kapena kupitilira apo.

Timatchera khutu ku zatsopano monga Stream API, var, etc. Amafunsidwa panthawi yofunsa mafunso ndipo amagwiritsidwa ntchito nthawi zonse popanga. Ndiko kuti, Stream API ndiyozizira kwambiri kuposa malupu, kawirikawiri, chinthu chozizira kwambiri. Onetsetsani kuti mwatcheru.

И Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ всякиС ΡˆΡ‚ΡƒΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², Exceptions ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ΠΎ, Ρ‡Ρ‚ΠΎ каТСтся Π²Π°ΠΌ Π½Π΅Π²Π°ΠΆΠ½Ρ‹ΠΌ, ΠΏΠΎΠΊΠ° Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ малСнький ΠΊΠΎΠ΄ сами. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ эти Exceptions, ΠΊΠΎΠΌΡƒ ΠΎΠ½ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΡƒΠΆΠ½Ρ‹? Но ΠΈΡ… Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Π½Π° собСсСдованиях, ΠΎΠ½ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ Π²Π°ΠΌ пригодятся Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Exceptions, ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Mapangidwe a data. Simungapite popanda zomangira, koma zidzakhala zabwino ngati simungodziwa kuti pali ma seti, otanthauzira mawu, ndi mapepala. Komanso kukhazikitsidwa kwamitundu yosiyanasiyana. Mwachitsanzo, mtanthauzira mawu womwewo ku Java uli ndi machitidwe ambiri, kuphatikiza HashMap ndi TreeMap. Ali ndi ma asymptotics osiyanasiyana, amapangidwa mosiyanasiyana mkati. Muyenera kudziwa momwe amasiyana komanso nthawi yoti mugwiritse ntchito.

Zidzakhalanso zabwino kwambiri ngati mukudziwa momwe ma data awa amagwirira ntchito mkati. Ndiye kuti, sikophweka kudziwa ma asymptotics awo - kuchuluka kwa kubetcha kumagwirira ntchito, nthawi yayitali bwanji, koma momwe kapangidwe kake kamagwirira ntchito mkati - mwachitsanzo, ndowa yanji mu HashMap.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΈ Π³Ρ€Π°Ρ„Ρ‹. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΡˆΡ‚ΡƒΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½-ΠΊΠΎΠ΄Π΅, Π½ΠΎ ΠΈΡ… Π»ΡŽΠ±ΡΡ‚ Π½Π° собСсСдованиях. БоотвСтствСнно, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΡŒΡ, Π³Ρ€Π°Ρ„Ρ‹ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ, Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ. Π­Ρ‚ΠΎ всС ΠΏΡ€ΠΎΡΡ‚Π΅Π½ΡŒΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.

Mukangoyamba kulemba kachidindo kalikonse, zovuta, zogwiritsa ntchito malaibulale, ma code angapo, mudzazindikira kuti ndizovuta kwa inu popanda kumanga machitidwe ndikuthetsa kudalira. Izi makamaka ndi Maven ndi Gradle. Amakulolani kuti mulowetse malaibulale mu polojekiti yanu mumzere umodzi. Ndiye kuti, mumalemba xml ya mzere umodzi ndikulowetsa malaibulale mu projekiti. Kachitidwe kwakukulu. Zili zofanana, gwiritsani ntchito imodzi - Maven kapena Gradle.

Chotsatira - mtundu wina wa dongosolo lowongolera. Ndikupangira Git chifukwa ndiyotchuka ndipo pali maphunziro ambiri. Pafupifupi aliyense amagwiritsa ntchito Git, ndi chinthu chabwino, simungakhale popanda icho.

Ndipo mtundu wina wa chilengedwe chachitukuko. Ndikupangira IntelliJ Idea. Imafulumizitsa kwambiri ntchito yachitukuko, imakuthandizani kwambiri, imakulemberani zolemba zonse za boilerplate, nthawi zambiri, ndizabwino.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Maulalo a slide: SQLZOO, habrapost

SQL. Pang'ono za backners. Panalidi nkhani yoseketsa apa. Masiku awiri ndisanayambe kuyankhulana kwachiwiri kwa internship, mtsikana wina wa HR anandiitana ndipo adanena kuti m'masiku awiri adzandifunsa za SQL ndi HTTP, ndinafunika kuphunzira. Ndipo sindimadziwa chilichonse chokhudza SQL kapena HTTP. Ndipo ndidapeza tsamba labwino ili - SQLZOO. Ndinaphunzira SQL pa maola a 12, ndikutanthauza, SQL syntax, momwe mungalembere ZOSANKHA mafunso, JOIN, etc. Malo ozizira kwambiri, ndikuyamikira kwambiri. Ndipotu, mu maola 12 ndinaphunzira 90% ya zomwe ndikudziwa tsopano.

И Π΅Ρ‰Π΅ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ Π·Π½Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ всякиС ΠΊΠ»ΡŽΡ‡ΠΈ, индСксы, нормализация. ΠŸΡ€ΠΎ это Π΅ΡΡ‚ΡŒ сСрия постов Π½Π° Π₯Π°Π±Ρ€Π΅.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Ku Java, kuwonjezera pa SQL, pali mitundu yonse yamapu amtundu wa Object-relational monga JPA. Pali code. Mu njira yoyamba pali SQL code - SINANI id dzina KUCHOKERA info.users PALI id IN userIds. Kuchokera ku database ya ogwiritsa ntchito, kuchokera patebulo, ma ID awo ndi mayina amapezedwa.

Kenako, pali mapu ena omwe amasintha chinthu kuchokera pansi kukhala chinthu cha Java. Ndipo pali njira yachitatu m'munsimu yomwe imachitira izi. Zonsezi zitha kusinthidwa pogwiritsa ntchito JPA ndi mzere umodzi, womwe walembedwa pansipa. Imachita zomwezo - pezani Zonse ByIdIn. Ndiye kuti, kutengera dzina la njirayo, imakupatsirani funso la SQL kwa inu.

Chinthu chokoma kwambiri. Ine ndekha, pamene sindimadziwa SQL, ndinagwiritsa ntchito JPA. Nthawi zambiri, tcherani khutu. Ngati ndinu waulesi kuphunzira SQL, ndi tsoka. Ndipo, kawirikawiri, moto!

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Kasupe. Ndani adamvapo za chinthu chonga Spring framework? Mukuwona kuti muli angati? Osati popanda chifukwa. Spring ikuphatikizidwa pazofunikira pagawo lililonse lachiwiri la Java backend. Popanda izo, palibe paliponse mu chitukuko chachikulu. Kodi Spring ndi chiyani? Choyamba, ichi ndi chimango cha Dependency Injection. Za izinso adzanena wokamba wotsatira. Koma mwachidule, ichi ndi chinthu chomwe chimakupatsani mwayi wosavuta kuitanitsa kudalira kwa makalasi ena kwa ena. Ndiko kuti, kudziwa za kudalira kumakhala kosavuta.

Spring Boot ndi chidutswa cha Spring chomwe chimakupatsani mwayi woyendetsa pulogalamu yanu ya seva ndi batani limodzi. Mukapita ku THID, dinani mabatani angapo, ndipo tsopano muli ndi pulogalamu yanu ya seva yomwe ikuyenda pa localhost 8080. Ndiko kuti, simunalembe mzere umodzi wa code pano, koma ukugwira ntchito kale. Chinthu chokoma kwambiri. Ngati mulemba chinachake chanu, moto!

Spring ndi chimango chachikulu kwambiri. Sikuti imangotenga pulogalamu yanu ya seva ndikukhazikitsa Dependency Injection. Zimakulolani kuchita zinthu zambiri, kuphatikizapo kupanga njira za REST API. Ndiye kuti, mudalemba njira ina ndikuyikapo ndemanga ya Pezani mapu. Ndipo tsopano muli ndi njira ina pa localhost yomwe imakulemberani Hello world. Mizere iwiri ya code ndipo imagwira ntchito. Zinthu zabwino.

Spring imapangitsanso kulemba mayeso kukhala kosavuta. Palibe njira popanda kuyesa mu chitukuko chachikulu. Khodiyo iyenera kuyesedwa. Pachifukwa ichi, Java ili ndi laibulale yozizira JUnit 5. Ndipo JUnit ambiri, koma mtundu waposachedwa ndi wachisanu. Pali chilichonse choyesa, zongopeka zamitundu yonse ndi zina.

Ndipo pali mawonekedwe odabwitsa a Mockito. Tangoganizani kuti muli ndi magwiridwe antchito omwe mukufuna kuyesa. Kugwira ntchito kumachita zinthu zambiri, kuphatikizapo, kwinakwake pakati, kumalowetsa VKontakte ndi ID yanu, mwachitsanzo, ndikulandira dzina loyamba ndi lomaliza la wosuta VKontakte kuchokera ku ID. Mwinamwake simungaphatikizepo VKontakte mu mayesero, ndizodabwitsa. Koma muyenera kuyesa magwiridwe antchito, kotero mudapanga kalasi iyi, pogwiritsa ntchito Mockito, mok, kutsanzira.

Mudzanena kuti pempho likadzafika ku kalasi ili ndi chidziwitso chotere ndi chakuti, chimabweretsa dzina lomaliza, mwachitsanzo, Vasya Pupkin. Ndipo izo zigwira ntchito. Ndiye kuti, mudzayesa magwiridwe antchito onse a mok kalasi imodzi. Chinthu chokoma kwambiri.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Lumikizani ku slide

Zojambulajambula. Ndi chiyani? Awa ndi ma templates othetsera mavuto omwe amabwera pakukula. Pachitukuko, zovuta zofanana kapena zofanana nthawi zambiri zimabuka zomwe zingakhale zabwino kuthetsa mwanjira ina. Choncho, anthu adadza ndi machitidwe abwino, ma templates ena, momwe angathetsere mavutowa.

Pali tsamba lawebusayiti lomwe lili ndi machitidwe odziwika kwambiri - refactoring.guru, mutha kuwerenga, fufuzani zomwe zilipo, werengani malingaliro ambiri. Vuto ndiloti ndi zopanda pake. M'malo mwake, machitidwe opanda machitidwe sizothandiza kwenikweni.

Mumva zamitundu ina ngati Singletone kapena Builder. Ndani anamva mawu amenewa? Anthu ambiri. Pali njira zosavuta zomwe mungathe kuzitsatira nokha. Koma machitidwe ambiri: njira, fakitale, facade - sizikudziwika komwe angawagwiritse ntchito.

Ndipo mpaka mutawona muzochita za munthu wina malo omwe ndondomekoyi ikugwiritsidwa ntchito, simungathe kuigwiritsa ntchito nokha. Choncho, kuchita ndi kofunika kwambiri ndi machitidwe. Ndipo kungowerenga za iwo pa refactoring.guru sizothandiza kwambiri, koma ndikofunikira kuchita.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

N'chifukwa chiyani zitsanzo zili zofunika? Tiyerekeze kuti muli ndi gulu linalake la Ogwiritsa. Ili ndi Id ndi Dzina. Wogwiritsa ntchito aliyense ayenera kukhala ndi Id ndi Dzina. Pamwamba kumanzere ndi kalasi.

Njira zoyambira Ogwiritsa ntchito ndi ziti? Pali njira ziwiri - womanga kapena setter. Kodi kuipa kwa njira zonsezi ndi chiyani?

Womanga. Wogwiritsa ntchito watsopano (7, "Bond"), chabwino. Tsopano tiyeni tinene kuti tilibe kalasi ya Ogwiritsa, koma ina, yokhala ndi magawo asanu ndi awiri. Mudzakhala ndi womanga wokhala ndi manambala asanu ndi awiri otsatizana. Sizikudziwika kuti manambalawa ndi ati komanso kuti ndi yandani. Wopangayo si wamkulu.

Njira yachiwiri ndi setter. Mukulemba momveka bwino: setId (7), setName ("Bond"). Mumamvetsetsa kuti ndi katundu wanji. Koma setter ali ndi vuto. Choyamba, mutha kuyiwala kugawa china chake, ndipo chachiwiri, chinthu chanu chimakhala chosinthika. Izi sizotetezeka ulusi ndipo zimachepetsa pang'ono kuwerenga kwa code. Ndicho chifukwa chake anthu adabwera ndi chitsanzo chabwino - Womanga.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Ndi chiyani ichi? Tiyeni tiyese kuphatikiza ubwino wa njira zonse ziwiri-setter ndi omanga-mu imodzi. Timapanga chinthu china, Womanga, chomwe chidzakhalanso ndi minda ya Id ndi Dzina, yomwe yokha idzamangidwa motsatira setter, ndipo idzakhala ndi Njira Yomanga yomwe imakubwezerani Wogwiritsa ntchito watsopano ndi magawo onse. Timapeza chinthu chosasinthika ndi setter. Zabwino!

Mavuto ndi chiyani? Pano tili ndi Zomangamanga zapamwamba. Vuto ndiloti tikhoza kuiwala kuyang'ana malo ena. Ndipo ngati tinayiwala kukaona ID, mu nkhaniyi mu Builder imayambitsidwa mpaka zero, chifukwa mtundu wa int sungathe kusinthidwa. Ndipo ngati tipanga Dzinalo "Bond" ndikuyiwala kupita ku ofesi ya ID, tidzakhala ndi Wogwiritsa ntchito watsopano ndi id "0" ndi dzina "Bond". Osati zabwino.

Tiyeni tiyese kulimbana ndi izi. Mu Builder tidzasintha int kukhala int kuti ikhale yosatheka. Tsopano zonse nzabwino.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Ngati tiyesa kupanga Wogwiritsa ndi dzina lakuti "Bond", kuiwala kuyika ID yake, tidzapeza kusiyana kwa null pointer, chifukwa ID sichitha, ndipo Womangayo ali ndi null, makamaka pointer.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Koma titha kuyiwalabe kuyika dzina, kotero timayika chinthu chobwereza kuti chitha. Tsopano, tikamanga chinthu chathu kuchokera ku Builder, chimayang'ana kuti gawolo silingatheke. Ndipo si zokhazo.

Tiyeni tione chitsanzo chomaliza. Pachifukwa ichi, ngati mwanjira ina tiyika zopanda pake mu nthawi yogwiritsira ntchito ID, zingakhale bwino kudziwa kuti mwachita izi ndipo sizosangalatsa kuti mukulakwitsa tsopano.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Muyenera kuponya cholakwika osati panthawi yopanga Ogwiritsa, koma mukayika null ku ID. Chifukwa chake, mu Builder tidzasintha setter Integer kukhala int, ndipo adzalumbira nthawi yomweyo kuti adataya zopanda pake.

Mwachidule, mfundo yake ndi yotani? Pali njira yosavuta yomanga, koma ngakhale kukhazikitsa kwake kuli ndi zidziwitso zina, kotero ndizosangalatsa kwambiri kuyang'ana machitidwe osiyanasiyana. Mtundu uliwonse uli ndi machitidwe ambiri. Izi zonse nzosangalatsa kwambiri.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Kodi timalemba bwanji Builder mu code yopanga? Nayi Wogwiritsa wathu. Timalumikiza kasinthasintha wa Builder kuchokera ku laibulale ya Lombok kwa iyo, ndipo iyo yokha imapanga Womanga kwa ife. Ndiko kuti, sitilemba kachidindo kalikonse, koma Java akuganiza kale kuti kalasi ili ndi Womanga, ndipo tikhoza kuyitcha motere.

Ndanena kale kuti Java ili ndi malaibulale pafupifupi chilichonse, kuphatikiza Lombok, laibulale yabwino yomwe imakupatsani mwayi wopewa kulemba zolemba. Womanga, GET.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Zitsanzo zikhoza kukhala zomangamanga - zokhudzana ndi kalasi imodzi yokha, koma dongosolo lonse. Pali mfundo yabwino kwambiri yopangira dongosolo: Single Responsibility Principle. Kodi akunena chiyani? Mfundo yakuti kalasi iliyonse iyenera kukhala ndi udindo pazochita zake. Pankhaniyi, tili ndi Wolamulira yemwe amalumikizana ndi ogwiritsa ntchito, zinthu za JSON. Pali Facade, yomwe imasintha zinthu za JSON kukhala zitsanzo zomwe pulogalamu ya Java idzagwira ntchito. Pali Utumiki womwe uli ndi malingaliro ovuta omwe amagwira ntchito ndi zitsanzozi. Pali Data Access Object yomwe imayika zitsanzozi mu database ndikuzitenga kuchokera ku database. Ndipo pali database yokha. Mwa kuyankhula kwina, si onse mu kalasi imodzi, koma tikupanga makalasi asanu osiyana, ndipo ndi chitsanzo china.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Mukangophunzira pang'ono Java, ndibwino kuti mulembe pulojekiti yanu yomwe idzakhala ndi nkhokwe, kugwira ntchito ndi ma API ena, ndikuwonetsa pulogalamu yanu ya seva kwa makasitomala a REST API. Ichi chingakhale chinthu chachikulu kuti muwonjezere kuyambiranso kwanu, kungakhale mapeto abwino a maphunziro anu. Ndi izi mutha kupita kukapeza ntchito.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

Nachi chitsanzo cha ntchito yanga ya seva. M'chaka changa chachiwiri, ndinalemba pepala lachidule ndi anyamata. Iwo anali kulemba pulogalamu yam'manja yokonzekera zochitika. Kumeneko, ogwiritsa ntchito amatha kulowa kudzera pa VKontakte, kuyika malo pamapu, kupanga zochitika, kuyitanira anzawo, kusunga zithunzi za zochitika, ndi zina zotero.

Ndinachita chiyani mu polojekitiyi? Analemba ntchito ya seva mu Spring Boot osagwiritsa ntchito SQL. Sindimamudziwa, ndimagwiritsa ntchito JPA. Kodi izo zikanakhoza kuchita chiyani? Lowani ku VK kudzera pa OAuth-2. Tengani chizindikiro cha wosuta, pitani ku VK nacho, fufuzani kuti ndi wosuta weniweni. Pezani zambiri za ogwiritsa ntchito kudzera pa VKontakte. Inatha kusunga zambiri mu database, komanso kudzera mu JPA. Sungani mwaluso zithunzi ndi mafayilo ena pamtima pa kompyuta, ndikusunga maulalo ku database. Panthawiyo sindimadziwa kuti pali zinthu za CLOB mu database, kotero ndidachita motere. Panali REST API ya ogwiritsa ntchito, mapulogalamu a kasitomala. Ndipo panali mayeso a mayunitsi a magwiridwe antchito.

[…] Chitsanzo chaching'ono cha kuphunzira kwanga kopambana kwa Java. M'chaka changa choyamba ku yunivesite, ndinaphunzitsidwa C # ndikumvetsetsa za mapulogalamu a OOP - ndi makalasi otani, malo olumikizirana, kutulutsa, komanso chifukwa chake amafunikira. Zinandithandiza kwambiri. Popanda izi, kuphunzira Java ndikovuta; sizikudziwika chifukwa chake makalasi amafunikira.

Chifukwa chiyani muyenera kuphunzira Java komanso momwe mungachitire bwino. Ripoti la Yandex

M'chaka chachiwiri ku yunivesite, adaphunzitsanso Java pachimake, koma sindinayime pamenepo, ndinapita kukaphunzira Spring ndekha ndikulemba pepala la maphunziro, ntchito yanga, yomwe ndatchula pamwambapa. Ndipo ndi zonsezi, ndinapita ku internship ku Yandex, ndinadutsa kuyankhulana, ndipo ndinalowa mu Yandex.Market. Kumeneko ndinalemba kumbuyo kwa Beru, iyi ndi msika wathu, ndi Yandex.Market yokha.

Pambuyo pake, miyezi isanu ndi umodzi yapitayo, ndidasamukira ku gulu lina mkati mwa Msika womwewo. Timasanthula ma analytics a mabizinesi. Tili papulatifomu yowunikira, pali atatu aife kumbuyo, kotero ndili ndi gawo lalikulu kwambiri pantchitoyo. Ndizosangalatsa kwambiri, kwenikweni. Ndiko kuti, timaperekadi deta pamsika - zomwe malonda ali, m'magulu ati, ndi zitsanzo ziti, kwa ogwira nawo ntchito, makampani akuluakulu odziwika bwino. Ndipo ndife atatu okha, timalemba izi, ndipo ndizozizira kwambiri.

Zikomo! Maulalo othandiza:
- "Java 8. Buku Loyamba".
- Kapangidwe ka Data.
- SQLZOO.
- Kukhazikika kwa Database.
- Zojambula Zojambula.
- Dongosolo Lopanga.
- Code Yabwino.
- Effective Java.

Source: www.habr.com

Kuwonjezera ndemanga