Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kā Java atŔķiras no citām populārām valodām? Kāpēc Javai vajadzētu bÅ«t pirmajai valodai, kas jāapgÅ«st? Izveidosim plānu, kas palÄ«dzēs apgÅ«t Java gan no nulles, gan pielietojot programmÄ“Å”anas prasmes citās valodās. UzskaitÄ«sim atŔķirÄ«bas starp ražoÅ”anas koda izveidi Java un izstrādi citās valodās. Mihails Zatepjakins nolasÄ«ja Å”o ziņojumu nākamo dalÄ«bnieku sanāksmē prakses Yandex un citi iesācēji izstrādātāji - Java Junior meetup.


- Sveiki visiem, mani sauc MiÅ”a. Es esmu Yandex.Market izstrādātājs, un Å”odien es jums pastāstÄ«Å”u, kāpēc mācÄ«ties Java un kā to izdarÄ«t efektÄ«vi. JÅ«s varat uzdot saprātÄ«gu jautājumu: kāpēc es stāstÄ«Å”u Å”o stāstu, nevis kāds spēcÄ«gs izstrādātājs ar daudzu gadu pieredzi? Fakts ir tāds, ka es pats nesen, apmēram pirms pusotra gada, studēju Java, tāpēc es joprojām atceros, kā tas bija un kādas ir tās nepilnÄ«bas.

Pirms gada es stažējos Yandex.Market. Izstrādāju aizmuguri priekÅ” Beru, paÅ”am tirgum, tu droÅ”i vien izmantoji. Tagad turpinu tur strādāt, citā komandā. Mēs izveidojam analÄ«tisko platformu Yandex.Market biznesa partneriem.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Sāksim. Kāpēc mācÄ«ties Java no praktiskā viedokļa? Fakts ir tāds, ka Java ir ļoti slavena programmÄ“Å”anas valoda. Tajā ir ļoti liela kopiena.

Piemēram, ir tāds TIOBE indekss, populārs programmÄ“Å”anas valodu popularitātes indekss, un Java tur ieņem pirmo vietu. Tāpat darba vietnēs, iespējams, pamanÄ«sit, ka lielākā daļa vakanču ir par Java, proti, attÄ«stoties Java, vienmēr var atrast darbu.

Tā kā kopiena ir ļoti liela, uz jebkuru jūsu jautājumu atbildi atradīsiet dažās Stack Overflow vai citās vietnēs. Turklāt, izstrādājot Java, jūs faktiski rakstāt kodu JVM, lai jūs varētu viegli pārslēgties uz Kotlin, Scala un citām valodām, kurās tiek izmantots JVM.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kas ir labs Java no ideoloÄ£iskā viedokļa? Ir dažādas programmÄ“Å”anas valodas. Viņi atrisina dažādas problēmas, jÅ«s to zināt. Piemēram, Python ir lieliski piemērots vienas rindas skriptu rakstÄ«Å”anai, lai atrisinātu ātras problēmas.

PozitÄ«vi ir tas, ka varat pilnÄ«bā kontrolēt izpildāmo kodu. Piemēram, mums ir automaŔīnas, Yandex bezvadÄ«tāja automaŔīnas, to kods ir rakstÄ«ts plusos. Kāpēc? Javai ir tāda lieta - Garbage Collector. Tas attÄ«ra RAM no nevajadzÄ«giem objektiem. Å Ä« lieta sākas spontāni un aptur pasauli, tas ir, tā aptur pārējo programmu un dodas uz objektu skaitÄ«Å”anu, notÄ«rot objektu atmiņu. Ja tāda lieta darbojas dronā, tas nav forÅ”i. JÅ«su drons brauks taisni, Å”ajā brÄ«dÄ« iztÄ«rÄ«s atmiņu un vispār neskatÄ«sies uz ceļu. Tāpēc drons ir rakstÄ«ts uz plusiem.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kādas problēmas risina Java? Tā galvenokārt ir valoda lielu programmu izstrādei, kuras ir rakstÄ«juÅ”i gadu gaitā desmitiem vai simtiem cilvēku. Jo Ä«paÅ”i liela daļa Yandex.Market aizmugursistēmas ir rakstÄ«ta Java valodā. Mums ir sadalÄ«ta komanda vairākās pilsētās, katrā pa desmit cilvēkiem. Un kodu ir viegli uzturēt, tas tiek atbalstÄ«ts desmit vai vairāk gadus, un tajā paŔā laikā ienāk jauni cilvēki un saprot Å”o kodu.

Kādām Ä«paŔībām vajadzētu bÅ«t valodai, lai tajā esoÅ”ais kods bÅ«tu viegli atbalstÄ«ts un lai to varētu viegli izstrādāt lielās komandās. Pirmkārt, tam ir jābÅ«t salasāmam kodam, un tajā jābÅ«t viegli Ä«stenojamiem sarežģītiem arhitektÅ«ras risinājumiem. Tas nozÄ«mē, ka jābÅ«t viegli rakstÄ«t augsta lÄ«meņa abstrakcijas utt. Tas viss ir tas, ko Java mums sniedz. Å Ä« ir uz objektu orientēta valoda. Ir patieŔām viegli ieviest augsta lÄ«meņa abstrakcijas un sarežģītas arhitektÅ«ras.

Javai ir arÄ« daudz ietvaru un bibliotēku, jo valodai ir vairāk nekā 15 gadu. Å ajā laikā tajā tika uzrakstÄ«ts viss, ko varēja uzrakstÄ«t, tāpēc ir daudz bibliotēku visam, kas jums varētu bÅ«t nepiecieÅ”ams.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kādām pamatprasmēm, manuprāt, vajadzētu bÅ«t iesācējam JA spēlētājam? Pirmkārt, tās ir Java pamatvalodas zināŔanas. Nākamais ir sava veida atkarÄ«bas injekcijas ietvars. Nākamais runātājs Kirils par to runās pilnÄ«gāk. Es neiedziļināŔos. Nākamais ir arhitektÅ«ras un dizaina modeļi. Mums ir jāspēj uzrakstÄ«t arhitektoniski skaistu kodu, lai rakstÄ«tu lielas lietojumprogrammas. Un tas ir sava veida SQL vai ORM uzdevumiem darbam ar datu bāzi. Un tas vairāk attiecas uz aizmuguri.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Aiziet! Java kodols. Ameriku es Å”eit Ä«sti neatklāŔu ā€” jums ir jāzina pati valoda. Kam vajadzētu pievērst uzmanÄ«bu. Pirmkārt, Java pēdējos gados ir izlaidusi daudz versiju, tas ir, 2014.-2015. gadā tika izlaista septÄ«tā, pēc tam astotā, devÄ«tā, desmitā, tajās tika ieviests daudz jaunu versiju un daudz jaunu forÅ”u lietu. , piemēram, Java Stream API , lambda utt. Ä»oti forÅ”as, svaigas, forÅ”as lietas, kas tiek izmantotas ražoÅ”anas kodā, par ko viņi jautā intervijās un kas jums jāzina. Tāpēc nevajadzētu ņemt grāmatu no plaukta Java-4 bibliotēkā un doties mācÄ«ties. Å is ir mÅ«su plāns: mēs apgÅ«stam Java-8 vai jaunāku versiju.

Mēs pievērÅ”am lielu uzmanÄ«bu jauninājumiem, piemēram, Stream API, var uc Tie tiek jautāti interviju laikā un tiek pastāvÄ«gi izmantoti ražoÅ”anā. Tas ir, Stream API ir daudz forŔāka nekā cilpas, kopumā ļoti forÅ”a lieta. Noteikti pievērsiet uzmanÄ«bu.

Un ir visādas lietas, piemēram, iteratori, izņēmumi un tā tālāk. Lietas, kas jums Ŕķiet nesvarÄ«gas, ja vien jÅ«s pats uzrakstāt nelielu kodu. Jums Å”ie izņēmumi nav vajadzÄ«gi, kam tie vispār ir vajadzÄ«gi? Bet viņi noteikti tiks jautāti intervijās, viņi noteikti jums noderēs ražoÅ”anā. Kopumā jums vajadzētu pievērst uzmanÄ«bu izņēmumiem, iteratoriem un citām lietām.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Datu struktÅ«ras. JÅ«s nevarat iztikt bez struktÅ«rām, taču tas bÅ«s lieliski, ja nezināt, ka ir komplekti, vārdnÄ«cas un lapas. Un arÄ« dažādas konstrukciju realizācijas. Piemēram, tai paÅ”ai Java vārdnÄ«cai ir daudz implementāciju, tostarp HashMap un TreeMap. Viņiem ir atŔķirÄ«ga asimptotika, tie ir atŔķirÄ«gi strukturēti iekÅ”pusē. Jums jāzina, kā tie atŔķiras un kad kuru izmantot.

BÅ«s arÄ« ļoti forÅ”i, ja zināt, kā Ŕīs datu struktÅ«ras darbojas iekŔēji. Tas ir, nav viegli zināt viņu asimptotiku - cik daudz derÄ«bas darbojas, cik ilgi darbojas caurlaide, bet gan to, kā darbojas struktÅ«ra iekÅ”pusē - piemēram, kas ir spainis programmā HashMap.

Ir vērts pievērst uzmanÄ«bu arÄ« kokiem un grafikiem. Tās ir lietas, kas ražoÅ”anas kodā nav Ä«paÅ”i izplatÄ«tas, taču tās ir populāras intervijās. AttiecÄ«gi jums ir jāspēj Ŕķērsot kokus, grafikus platumā un dziļumā. Tie visi ir vienkārÅ”i algoritmi.

TiklÄ«dz jÅ«s sākat rakstÄ«t lielu kodu, sarežģītu, izmantojot bibliotēkas, vairāku klaÅ”u kodu, jÅ«s sapratÄ«sit, ka jums ir grÅ«ti bez sistēmu veidoÅ”anas un atkarÄ«bu novērÅ”anas. Tie galvenokārt ir Maven un Gradle. Tie ļauj vienā rindā importēt bibliotēkas savā projektā. Tas nozÄ«mē, ka jÅ«s rakstāt vienas rindas xml un importējat bibliotēkas projektā. Lieliskas sistēmas. Tie ir aptuveni vienādi, izmantojiet vienu - Maven vai Gradle.

Nākamais - kaut kāda versiju kontroles sistēma. Es iesaku Git, jo tas ir populārs un ir daudz pamācību. Gandrīz visi izmanto Git, tā ir lieliska lieta, bez tā nevar dzīvot.

Un kaut kāda attÄ«stÄ«bas vide. Es iesaku IntelliJ Idea. Tas ievērojami paātrina izstrādes procesu, ļoti palÄ«dz, uzraksta visu standarta kodu, kopumā tas ir forÅ”i.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Saites no slaida: SQLZOO, habraposts

SQL. Mazliet par backenderiem. PatiesÄ«bā Å”eit bija smieklÄ«gs gadÄ«jums. Divas dienas pirms manas otrās intervijas prakses laikā man piezvanÄ«ja HR meitene un teica, ka pēc divām dienām man jautās par SQL un HTTP, man tas jāiemācās. Un es gandrÄ«z neko nezināju par SQL vai HTTP. Un es atradu Å”o forÅ”o vietni - SQLZOO. Es uzzināju SQL 12 stundās, proti, SQL sintaksi, kā rakstÄ«t SELECT vaicājumus, JOIN utt. Ä»oti forÅ”a vietne, ļoti iesaku. PatiesÄ«bā 12 stundu laikā es uzzināju 90% no tā, ko zinu tagad.

Ir arÄ« lieliski zināt datu bāzes arhitektÅ«ru. Tie ir visu veidu atslēgas, indeksi, normalizācija. Vietnē HabrĆ© ir virkne ziņu par to.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Java valodā papildus SQL ir arÄ« visa veida objektu relāciju kartÄ“Å”anas sistēmas, piemēram, JPA. Ir kāds kods. Pirmajā metodē ir kāds SQL kods - SELECT id name FROM info.users WHERE id IN userIds. No lietotāju datu bāzes, no tabulas tiek iegÅ«ti viņu ID un vārdi.

Tālāk ir noteikts kartētājs, kas objektu no bāzes pārvērÅ” par Java objektu. Un tālāk ir treŔā metode, kas faktiski izpilda Å”o kodu. To visu, izmantojot JPA, var aizstāt ar vienu rindiņu, kas rakstÄ«ta zemāk. Tas dara to paÅ”u ā€” atrodiet All ByIdIn. Tas ir, pamatojoties uz metodes nosaukumu, tā Ä£enerē jums SQL vaicājumu.

Ä»oti forÅ”a lieta. Es pats, kad nezināju SQL, izmantoju JPA. Kopumā pievērsiet uzmanÄ«bu. Ja esat pārāk slinks, lai apgÅ«tu SQL, tā ir katastrofa. Un vispār ā€“ uguns!

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Pavasaris. KurÅ” ir dzirdējis par tādu lietu kā pavasara karkass? Vai jÅ«s redzat, cik daudz jÅ«su ir? Ne velti. Pavasaris ir iekļauts katras otrās Java aizmugursistēmas vakances prasÄ«bās. Bez tā nav Ä«sti nekur lielas attÄ«stÄ«bas. Kas ir pavasaris? Pirmkārt, Ŕī ir atkarÄ«bas injekcijas sistēma. ArÄ« par Å”o pateiks nākamais runātājs. Bet Ä«si sakot, Ŕī ir lieta, kas ļauj vieglāk importēt dažu klaÅ”u atkarÄ«bas uz citām. Tas ir, zināŔanas par atkarÄ«bām ir vienkārÅ”otas.

Spring Boot ir Spring daļa, kas ļauj palaist servera lietojumprogrammu ar vienu pogu. JÅ«s atverat THID, nospiežat pāris pogas, un tagad jÅ«su servera lietojumprogramma ir izveidota un darbojas uz localhost 8080. Tas ir, jÅ«s vēl neesat uzrakstÄ«jis nevienu koda rindiņu, bet tas jau darbojas. Ä»oti forÅ”a lieta. Ja raksti kaut ko savu, uguns!

Pavasaris ir ļoti liels ietvars. Tas ne tikai uztver jÅ«su servera lietojumprogrammu un atrisina atkarÄ«bas injekciju. Tas ļauj veikt vairākas darbÄ«bas, tostarp izveidot REST API metodes. Tas ir, jÅ«s uzrakstÄ«jāt kādu metodi un pievienojāt tai anotāciju IegÅ«t kartÄ“Å”anu. Un tagad jums jau ir kāda metode vietnē localhost, kas jums raksta Hello world. Divas koda rindas un tas darbojas. ForÅ”as lietas.

Pavasaris atvieglo arÄ« kontroldarbu rakstÄ«Å”anu. Nav izejas bez testÄ“Å”anas lielajā attÄ«stÄ«bā. Kods ir jāpārbauda. Å im nolÅ«kam Java ir forÅ”a bibliotēka JUnit 5. Un JUnit vispār, bet jaunākā versija ir piektā. Ir viss testÄ“Å”anai, visādi apgalvojumi un citas lietas.

Un ir lieliska Mockito sistēma. Iedomājieties, ka jums ir kāda funkcionalitāte, kuru vēlaties pārbaudÄ«t. Funkcionalitāte veic daudzas lietas, tostarp, kaut kur pa vidu, tā, piemēram, piesakās VKontakte ar jÅ«su ID, un no ID saņem VKontakte lietotāja vārdu un uzvārdu. JÅ«s, iespējams, neiekļausit VKontakte testos, tas ir dÄ«vaini. Bet jums ir jāpārbauda funkcionalitāte, tāpēc jÅ«s izveidojāt Å”o klasi, izmantojot Mockito, mok it, imitējot to.

JÅ«s teiksiet, kad uz Å”o klasi atnāk pieprasÄ«jums ar tādu un tādu ID, tas atgriež kādu uzvārdu, piemēram, Vasja Pupkina. Un tas darbosies. Tas ir, jÅ«s pārbaudÄ«sit visu mok vienas klases funkcionalitāti. Ä»oti forÅ”a lieta.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Saite no slaida

Dizaina modeļi. Kas tas ir? Å Ä«s ir veidnes tipisku problēmu risināŔanai, kas rodas izstrādes procesā. Izstrādē bieži rodas identiskas vai lÄ«dzÄ«gas problēmas, kuras bÅ«tu lieliski atrisināt kaut kā labi. Tāpēc cilvēki nāca klajā ar labāko praksi, noteiktas veidnes, kā Ŕīs problēmas atrisināt.

Ir vietne ar populārākajiem modeļiem - refaktoring.guru, to var palasÄ«t, uzzināt, kādi modeļi ir, palasÄ«t teoriju gÅ«zmu. Problēma ir tā, ka tas ir praktiski bezjēdzÄ«gi. PatiesÄ«bā modeļi bez prakses nav Ä«paÅ”i noderÄ«gi.

JÅ«s dzirdēsit par dažiem modeļiem, piemēram, Singletone vai Builder. KurÅ” dzirdēja Å”os vārdus? Daudz cilvēku. Ir tik vienkārÅ”i modeļi, kurus varat Ä«stenot pats. Bet lielākā daļa modeļu: stratēģija, rÅ«pnÄ«ca, fasāde - nav skaidrs, kur tos piemērot.

Un, kamēr praksē neredzat citas personas kodā vietu, kurai tiek piemērots Å”is modelis, jÅ«s pats nevarēsit to lietot. Tāpēc prakse ir ļoti svarÄ«ga ar modeļiem. Un tikai lasÄ«Å”ana par tām vietnē refaktoring.guru nav Ä«paÅ”i noderÄ«ga, taču to noteikti ir vērts darÄ«t.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kāpēc ir nepiecieÅ”ami modeļi? Pieņemsim, ka jums ir noteikta lietotāju klase. Tam ir ID un nosaukums. Katram lietotājam ir jābÅ«t gan ID, gan vārdam. AugŔējā kreisajā stÅ«rÄ« ir klase.

Kādi ir lietotāja inicializācijas veidi? Ir divas iespējas ā€“ vai nu konstruktors, vai noteicējs. Kādi ir abu pieeju trÅ«kumi?

Konstruktors. jauns lietotājs (7, "Bond"), labi. Tagad pieņemsim, ka mums nav Lietotāju klase, bet kāda cita, ar septiņiem ciparu laukiem. Jums bÅ«s konstruktors, kas satur septiņus secÄ«gus skaitļus. Kādi ir Å”ie skaitļi un kurÅ” no tiem kuram Ä«paÅ”umam pieder, nav skaidrs. Dizaineris nav izcils.

Otrā iespēja ir iestatÄ«tājs. JÅ«s skaidri rakstāt: setId(7), setName(ā€œBondā€). JÅ«s saprotat, kurÅ” Ä«paÅ”ums kuram laukam pieder. Bet seterim ir problēma. Pirmkārt, jÅ«s varat aizmirst kaut ko pieŔķirt, un, otrkārt, jÅ«su objekts izrādās mainÄ«gs. Tas nav pavedienam droÅ”s un nedaudz samazina koda lasāmÄ«bu. Tāpēc cilvēki izdomāja forÅ”u modeli ā€“ Builder.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Par ko ir runa? Mēģināsim apvienot abu pieeju ā€” iestatÄ«tāja un konstruktora ā€” priekÅ”rocÄ«bas vienā. Mēs izveidojam noteiktu objektu Builder, kuram bÅ«s arÄ« lauki Id un Name, kas pats tiks izveidots, pamatojoties uz iestatÄ«tāju, un kuram bÅ«s Build metode, kas atgriež jums jaunu lietotāju ar visiem parametriem. Mēs iegÅ«stam nemainÄ«gu objektu un seteru. ForÅ”i!

Kādas ir problēmas? Å eit mums ir klasiskais Builder. Problēma ir tā, ka mēs joprojām varam aizmirst pārbaudÄ«t kādā laukā. Un, ja mēs aizmirsām apmeklēt ID, Å”ajā gadÄ«jumā Builder tas tiek inicializēts uz nulli, jo int tips nav nullējams. Un, ja mēs izveidosim Vārdu ā€œBondā€ un aizmirsÄ«sim apmeklēt ID biroju, mums bÅ«s jauns Lietotājs ar ID ā€œ0ā€ un vārdu ā€œBondā€. Nav forÅ”i.

Mēģināsim ar to cīnīties. Programmā Builder mēs mainīsim int uz int, lai tas būtu nullējams. Tagad viss ir lieliski.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Ja mēģināsim izveidot Lietotāju ar vārdu ā€œBondā€, aizmirstot ievietot viņa ID, mēs saņemsim nulles rādÄ«tāja izņēmumu, jo ID nav nullējams, un Builder ir nulles, konkrēti pointera izņēmums.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Bet mēs joprojām varam aizmirst ievietot nosaukumu, tāpēc objekta atkārtoÅ”anu iestatÄ«jām uz nulli. Tagad, kad mēs veidojam objektu no Builder, tas pārbauda, ā€‹ā€‹vai lauks nav nullējams. Un tas vēl nav viss.

ApskatÄ«sim pēdējo piemēru. Å ajā gadÄ«jumā, ja ID izpildlaikā kaut kādā veidā ievietotu nulli, bÅ«tu lieliski uzreiz uzzināt, ka jÅ«s to izdarÄ«jāt, un nav forÅ”i, ka tagad pieļaujat kļūdu.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kļūda jāmet nevis Lietotāja izveides brÄ«dÄ«, bet gan tad, kad ID iestatāt nulli. Tāpēc programmā Builder mēs nomainÄ«sim iestatÄ«tāju Integer uz int, un viņŔ nekavējoties zvēr, ka viņi izmeta nulli.

ÄŖsāk sakot, kāda jēga? Ir vienkārÅ”s Builder modelis, taču pat tā ievieÅ”anai ir daži smalkumi, tāpēc ir ļoti forÅ”i aplÅ«kot dažādus modeļu ievieÅ”anas veidus. Katram modelim ir desmitiem ievieÅ”anu. Tas viss ir ļoti interesanti.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kā mēs ierakstām Builder ražoÅ”anas kodā? Å eit ir mÅ«su lietotājs. Mēs tam pievienojam Builder rotāciju no Lombok bibliotēkas, un tas pats mums Ä£enerē Builder. Tas ir, mēs nerakstām nekādu kodu, bet Java jau domā, ka Å”ai klasei ir Builder, un mēs to varam saukt Ŕādi.

Es jau teicu, ka Java ir bibliotēkas gandrÄ«z visam, ieskaitot Lombok ā€” forÅ”u bibliotēku, kas ļauj izvairÄ«ties no teksta rakstÄ«Å”anas. Celtnieks, GET.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Raksti var bÅ«t arhitektoniski ā€“ saistÄ«ti ne tikai ar vienu klasi, bet ar visu sistēmu kopumā. Sistēmas projektÄ“Å”anā ir tik forÅ”s princips: vienotas atbildÄ«bas princips. par ko viņŔ runā? Fakts, ka katrai klasei ir jāatbild par savu funkcionalitāti. Å ajā gadÄ«jumā mums ir kontrolieris, kas sazinās ar lietotājiem, JSON objektiem. Ir Fasāde, kas pārveido JSON objektus modeļos, ar kuriem tad darbosies Java lietojumprogramma. Ir pakalpojums, kuram ir sarežģīta loÄ£ika, kas darbojas ar Å”iem modeļiem. Ir datu piekļuves objekts, kas Å”os modeļus ievieto datu bāzē un izgÅ«st no datu bāzes. Un tur ir pati datubāze. Citiem vārdiem sakot, tas viss nav vienā klasē, bet mēs veidojam piecas dažādas klases, un tas ir cits modelis.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Kad esat vairāk vai mazāk apguvis Java, ir lieliski uzrakstīt savu projektu, kuram būs datu bāze, darbs ar citiem API un pakļauts jūsu servera lietojumprogrammai REST API klientiem. Tas būtu lieliski, ko pievienot savam CV, tas būtu forŔs beigas jūsu izglītībai. Ar to jūs varat doties un iegūt darbu.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Å eit ir mana servera lietojumprogrammas piemērs. Otrajā kursā kopā ar puiÅ”iem rakstÄ«ju kursa darbu. Viņi rakstÄ«ja mobilo aplikāciju pasākumu organizÄ“Å”anai. Tur lietotāji varēja pieteikties, izmantojot VKontakte, izvietot punktus kartē, izveidot pasākumus, uzaicināt uz tiem savus draugus, saglabāt notikumu attēlus utt.

Ko es darÄ«ju projektā? UzrakstÄ«ja servera lietojumprogrammu Spring Boot, neizmantojot SQL. Es viņu nepazinu, izmantoju JPA. Ko tas varētu darÄ«t? Piesakieties VK, izmantojot OAuth-2. Paņemiet lietotāja marÄ·ieri, dodieties uz VK ar to, pārbaudiet, vai tas ir Ä«sts lietotājs. Saņemiet informāciju par lietotājiem, izmantojot VKontakte. Tā varēja saglabāt informāciju datu bāzē, arÄ« ar APA starpniecÄ«bu. PrasmÄ«gi saglabājiet attēlus un citus failus datora atmiņā un saglabājiet saites uz tiem datu bāzē. Toreiz es nezināju, ka datu bāzē ir CLOB objekti, tāpēc es to darÄ«ju Ŕādi. Bija REST API lietotājiem, klientu lietojumprogrammām. Un bija vienÄ«bu testi pamata funkcionalitātei.

[ā€¦] Neliels piemērs manai veiksmÄ«gai Java apguvei. Pirmajā universitātes gadā man mācÄ«ja C# un deva izpratni par OOP programmÄ“Å”anu ā€“ kas ir klases, saskarnes, abstrakcija un kāpēc tās ir vajadzÄ«gas. Tas man ļoti palÄ«dzēja. Bez tā Java apguve ir diezgan sarežģīta; nav skaidrs, kāpēc ir vajadzÄ«gas nodarbÄ«bas.

Kāpēc mācīties Java un kā to izdarīt efektīvi. Yandex pārskats

Manā otrajā kursā universitātē viņi atkal mācÄ«ja Java kodolu, bet es neapstājos ar to, es pats devos studēt pavasari un uzrakstÄ«ju kursa darbu, savu projektu, par kuru es minēju iepriekÅ”. Un ar visu to es devos uz praksi Yandex, nokārtoju interviju un iekļuvu Yandex.Market. Tur es uzrakstÄ«ju aizmugurprogrammu Beru, tas ir mÅ«su tirgus, un paÅ”am Yandex.Market.

Pēc tam pirms seÅ”iem mēneÅ”iem es pārgāju uz citu komandu tajā paŔā tirgÅ«. Mēs veicam analÄ«zi biznesa partneriem. Mēs atrodamies analÄ«tiskajā platformā, aizmugurē esam trÄ«s, tāpēc man ir ļoti liela ietekme uz projektu. Tas ir ļoti interesanti, patiesÄ«bā. Tas ir, mēs faktiski sniedzam datus par tirgu ā€“ kādi ir pārdoÅ”anas apjomi, kādās kategorijās, kādos modeļos, biznesa partneriem, lieliem pazÄ«stamiem uzņēmumiem. Un mēs esam tikai trÄ«s, mēs rakstām Å”o kodu, un tas ir ļoti forÅ”i.

Paldies! Noderīgas saites:
Sākot no "Java 8. Rokasgrāmata iesācējiem".
Sākot no Datu struktūras.
Sākot no SQLZOO.
Sākot no Datu bāzes normalizÄ“Å”ana.
Sākot no Dizaina modeļi.
Sākot no Dizaina modeļi.
Sākot no Tīrs kods.
Sākot no Efektīva Java.

Avots: www.habr.com

Pievieno komentāru