Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Si ndryshon Java nga gjuhët e tjera të njohura? Pse Java duhet të jetë gjuha e parë që duhet mësuar? Le të krijojmë një plan që do t'ju ndihmojë të mësoni Java nga e para dhe duke aplikuar aftësi programimi në gjuhë të tjera. Le të rendisim ndryshimet midis krijimit të kodit të prodhimit në Java dhe zhvillimit në gjuhë të tjera. Mikhail Zatepyakin e lexoi këtë raport në një takim për pjesëmarrësit e ardhshëm praktikat Yandex dhe zhvillues të tjerë fillestarë - Takimi Java Junior.


- Përshëndetje të gjithëve, emri im është Misha. Unë jam një zhvillues nga Yandex.Market, dhe sot do t'ju tregoj pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Ju mund të bëni një pyetje të arsyeshme: pse do ta tregoj unë këtë histori, dhe jo ndonjë zhvillues i fortë me përvojë shumëvjeçare? Fakti është që unë vetë studiova Java kohët e fundit, rreth një vit e gjysmë më parë, kështu që mbaj mend ende se si ishte dhe çfarë grackash ka.

Një vit më parë mora një praktikë në Yandex.Market. Unë zhvillova backend-in për Beru, për vetë Tregun, ju ndoshta e keni përdorur atë. Tani vazhdoj të punoj atje, në një ekip tjetër. Ne krijojmë një platformë analitike për Yandex.Market për partnerët e biznesit.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Le të fillojmë. Pse të mësoni Java nga një këndvështrim praktik? Fakti është se Java është një gjuhë programimi shumë e famshme. Ka një komunitet shumë të madh.

Për shembull, ekziston një indeks i tillë TIOBE, një indeks popullor i popullaritetit të gjuhëve programuese, dhe Java renditet e para atje. Gjithashtu, në faqet e punës, ndoshta do të vini re se shumica e vendeve të lira të punës kanë të bëjnë me Java, domethënë duke u zhvilluar në Java, gjithmonë mund të gjeni një punë.

Meqenëse komuniteti është shumë i madh, çdo pyetje që keni do të gjeni një përgjigje në disa Stack Overflow ose sajte të tjera. Gjithashtu, kur zhvilloni në Java, në të vërtetë po shkruani kod në JVM, kështu që lehtë mund të kaloni në Kotlin, Scala dhe gjuhë të tjera që përdorin JVM.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Çfarë është e mirë për Java nga pikëpamja ideologjike? Ka gjuhë të ndryshme programimi. Ata zgjidhin probleme të ndryshme, ju e dini këtë. Për shembull, Python është i shkëlqyeshëm për të shkruar skriptet me një rresht për të zgjidhur probleme të shpejta.

Në anën pozitive, ju mund të kontrolloni plotësisht kodin e ekzekutueshëm. Për shembull, ne kemi makina, makina pa shofer Yandex, kodi i tyre është shkruar në pluse. Pse? Java ka një gjë të tillë - Mbledhësi i mbeturinave. Pastron RAM-in nga objektet e panevojshme. Kjo gjë fillon spontanisht dhe bën stop-the-world, domethënë ndalon pjesën tjetër të programit dhe shkon për të numëruar objektet, memorie të pastër të objekteve. Nëse një gjë e tillë funksionon në një dron, nuk është mirë. Droni juaj do të ecë drejt, në këtë moment pastroni kujtesën e tij dhe mos shikoni fare rrugën. Prandaj, droni është shkruar në pro.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Çfarë problemesh zgjidh Java? Ajo është kryesisht një gjuhë për zhvillimin e programeve të mëdha që shkruhen me kalimin e viteve, nga dhjetëra apo qindra njerëz. Në veçanti, shumë nga prapavija në Yandex.Market janë shkruar në Java. Ne kemi një ekip të shpërndarë në disa qytete, dhjetë persona në secilin. Dhe kodi është i lehtë për t'u ruajtur, ai është mbështetur për dhjetë vjet ose më shumë, dhe në të njëjtën kohë njerëz të rinj hyjnë dhe e kuptojnë këtë kod.

Çfarë karakteristikash duhet të ketë një gjuhë që kodi në të të mbështetet lehtësisht dhe që të mund të zhvillohet lehtësisht në ekipe të mëdha. Para së gjithash, duhet të jetë kod i lexueshëm dhe të jetë i lehtë për të zbatuar zgjidhje komplekse arkitekturore. Kjo do të thotë, duhet të jetë e lehtë të shkruhen abstraksione të nivelit të lartë, etj. E gjithë kjo është ajo që na ofron Java. Kjo është një gjuhë e orientuar nga objekti. Është vërtet e lehtë të zbatosh abstraksione të nivelit të lartë dhe arkitektura komplekse.

Ka gjithashtu shumë korniza dhe biblioteka për Java, sepse gjuha është më shumë se 15 vjeç. Gjatë kësaj kohe, gjithçka që mund të shkruhej ishte shkruar në të, kështu që ka mijëra biblioteka për gjithçka që mund t'ju nevojitet.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Çfarë aftësish bazë, sipas mendimit tim, duhet të ketë një lojtar fillestar JA? Para së gjithash, kjo është njohja e gjuhës bazë Java. Tjetra është një lloj kornize e injektimit të varësisë. Folësi tjetër, Kirill, do të flasë për këtë më gjerësisht. Nuk do të shkoj shumë thellë. Tjetra është arkitektura dhe modelet e dizajnit. Ne duhet të jemi në gjendje të shkruajmë kode të bukura arkitektonike në mënyrë që të shkruajmë aplikacione të mëdha. Dhe ky është një lloj SQL ose ORM për detyrat e punës me bazën e të dhënave. Dhe kjo vlen më shumë për backend-in.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Shkoni! bërthama Java. Nuk do ta zbuloj vërtet Amerikën këtu - ju duhet të dini vetë gjuhën. Ajo që duhet t'i kushtoni vëmendje. Së pari, Java ka lëshuar shumë versione vitet e fundit, domethënë në 2014-2015 u lëshua i shtati, më pas i teti, i nënti, i dhjeti, shumë versione të reja dhe shumë gjëra të reja interesante u prezantuan në to. , për shembull, Java Stream API , lambda, etj. Gjëra shumë të lezetshme, të freskëta, të lezetshme që përdoren në kodin e prodhimit, për çfarë pyesin në intervista dhe që duhet të dini. Prandaj, nuk duhet të merrni një libër nga rafti në bibliotekën Java-4 dhe të shkoni ta mësoni. Ky është plani ynë: ne mësojmë Java-8 ose më të lartë.

Ne i kushtojmë vëmendje inovacioneve si Stream API, var, etj. Ato kërkohen gjatë intervistave dhe përdoren vazhdimisht në prodhim. Kjo do të thotë, API Stream është shumë më i freskët se sythe, në përgjithësi, një gjë shumë e lezetshme. Sigurohuni t'i kushtoni vëmendje.

Dhe ka të gjitha llojet e gjërave si përsëritësit, Përjashtimet dhe kështu me radhë. Gjëra që ju duken të parëndësishme përderisa shkruani vetë ndonjë kod të vogël. Nuk ju duhen këto Përjashtimet, kujt i duhen gjithsesi? Por ata patjetër do të pyeten në intervista, ato patjetër do të jenë të dobishme për ju në prodhim. Në përgjithësi, duhet t'i kushtoni vëmendje Përjashtimeve, përsëritësve dhe gjërave të tjera.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Strukturat e të dhënave. Ju nuk mund të shkoni pa struktura, por do të jetë mirë nëse nuk e dini vetëm se ka grupe, fjalorë dhe fletë. Dhe gjithashtu zbatime të ndryshme të strukturave. Për shembull, i njëjti fjalor në Java ka shumë zbatime, duke përfshirë HashMap dhe TreeMap. Ata kanë asimptotikë të ndryshëm, janë të strukturuar ndryshe brenda. Ju duhet të dini se si ndryshojnë ato dhe kur të përdorni cilin.

Do të jetë gjithashtu shumë interesante nëse e dini se si funksionojnë këto struktura të dhënash nga brenda. Kjo do të thotë, nuk është e lehtë të dish asimptotikën e tyre - sa funksionon basti, sa kohë funksionon kalimi, por si funksionon struktura brenda - për shembull, çfarë është një kovë në HashMap.

Vlen gjithashtu t'i kushtohet vëmendje pemëve dhe grafikëve. Këto janë gjëra që nuk janë shumë të zakonshme në kodin e prodhimit, por janë të njohura në intervista. Prandaj, duhet të jeni në gjendje të përshkoni pemët, grafikët në gjerësi dhe thellësi. Të gjitha këto janë algoritme të thjeshta.

Sapo të filloni të shkruani ndonjë kod të madh, kompleks, duke përdorur biblioteka, kod me shumë klasa, do të kuptoni se është e vështirë për ju pa ndërtuar sisteme dhe pa zgjidhur varësitë. Këta janë kryesisht Maven dhe Gradle. Ato ju lejojnë të importoni bibliotekat në projektin tuaj në një rresht. Kjo do të thotë, ju shkruani një xml me një rresht dhe importoni bibliotekat në projekt. Sisteme të shkëlqyera. Ato janë afërsisht të njëjta, përdorni ose një - Maven ose Gradle.

Tjetra - një lloj sistemi i kontrollit të versionit. Unë rekomandoj Git sepse është popullor dhe ka shumë udhëzime. Pothuajse të gjithë përdorin Git, është një gjë e lezetshme, nuk mund të jetosh pa të.

Dhe një lloj mjedisi zhvillimi. Unë rekomandoj IntelliJ Idea. Përshpejton shumë procesin e zhvillimit, ju ndihmon shumë, shkruan të gjithë kodin e bojlerplate për ju, në përgjithësi, është mirë.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Lidhje nga sllajdi: SQLZOO, habrapost

SQL. Pak për backenders. Në fakt kishte një rast qesharak këtu. Dy ditë para intervistës sime të dytë të praktikës, një vajzë HR më thirri dhe më tha se pas dy ditësh do të më pyesnin për SQL dhe HTTP, më duhej ta mësoja. Dhe nuk dija pothuajse asgjë për SQL ose HTTP. Dhe gjeta këtë faqe të lezetshme - SQLZOO. Mësova SQL në të në 12 orë, dua të them, sintaksën SQL, si të shkruaj pyetjet SELECT, JOIN, etj. Një faqe shumë e lezetshme, e rekomandoj shumë. Në fakt, në 12 orë mësova 90% të asaj që di tani.

Dhe është gjithashtu e mrekullueshme të njohësh arkitekturën e bazës së të dhënave. Këto janë të gjitha llojet e çelësave, indekseve, normalizimit. Ka një seri postimesh në lidhje me këtë në Habré.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Në Java, përveç SQL, ekzistojnë të gjitha llojet e sistemeve të hartës relacionale të objekteve si JPA. Ka një kod. Në metodën e parë ka disa kode SQL - SELECT id name FROM info.users WHERE id IN userIds. Nga baza e të dhënave të përdoruesve, nga tabela merren ID-të dhe emrat e tyre.

Më pas, ekziston një hartues i caktuar që e kthen një objekt nga baza në një objekt Java. Dhe ka një metodë të tretë më poshtë që në të vërtetë ekzekuton këtë kod. E gjithë kjo mund të zëvendësohet duke përdorur JPA me një rresht, i cili është shkruar më poshtë. Bën të njëjtën gjë - gjeni All ByIdIn. Kjo do të thotë, bazuar në emrin e metodës, ajo gjeneron një pyetje SQL për ju.

Gjë shumë e lezetshme. Unë vetë, kur nuk e dija SQL, përdora JPA. Në përgjithësi, kushtojini vëmendje. Nëse jeni shumë dembel për të mësuar SQL, është një fatkeqësi. Dhe, në përgjithësi, zjarri!

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Pranvera. Kush ka dëgjuar për një gjë të tillë si korniza Spring? E shihni sa prej jush jeni? Jo pa arsye. Pranvera përfshihet në kërkesat e çdo të dyte të lirë pune në fund të Java. Pa të, në të vërtetë nuk ka askund në një zhvillim të madh. Çfarë është Pranvera? Para së gjithash, ky është një kornizë e injektimit të varësisë. Edhe për këtë do të tregojë folësi tjetër. Por me pak fjalë, kjo është një gjë që ju lejon të lehtësoni importimin e varësive të disa klasave tek të tjerët. Kjo është, njohja e varësive është thjeshtuar.

Spring Boot është një pjesë e Spring që ju lejon të ekzekutoni aplikacionin e serverit tuaj me një buton. Shkoni te THID, shtypni disa butona dhe tani keni aplikacionin e serverit tuaj të hapur dhe të ekzekutuar në localhost 8080. Kjo do të thotë, ju nuk keni shkruar ende një rresht të vetëm kodi, por tashmë po funksionon. Gjë shumë e lezetshme. Nëse shkruani diçka nga vetja, zjarri!

Pranvera është një kornizë shumë e madhe. Ai jo vetëm që mbledh aplikacionin e serverit tuaj dhe zgjidh Injeksionin e Varësisë. Kjo ju lejon të bëni një sërë gjërash, duke përfshirë krijimin e metodave REST API. Kjo do të thotë, ju keni shkruar një metodë dhe i keni bashkangjitur asaj shënimin Get mapping. Dhe tani ju tashmë keni një metodë në localhost që ju shkruan Hello world. Dy rreshta kodi dhe funksionon. Gjëra të ftohta.

Pranvera gjithashtu e bën më të lehtë testet me shkrim. Nuk ka asnjë mënyrë pa testim në zhvillim të madh. Kodi duhet të testohet. Për këtë qëllim, Java ka një bibliotekë të lezetshme JUnit 5. Dhe JUnit në përgjithësi, por versioni i fundit është i pesti. Ka gjithçka për testim, të gjitha llojet e pohimeve dhe gjëra të tjera.

Dhe ekziston një kornizë e mrekullueshme Mockito. Imagjinoni që keni disa funksione që dëshironi të provoni. Funksionaliteti bën shumë gjëra, duke përfshirë, diku në mes, ai regjistrohet në VKontakte me ID-në tuaj, për shembull, dhe merr emrin dhe mbiemrin e përdoruesit të VKontakte nga ID-ja. Ju ndoshta nuk do të përfshini VKontakte në teste, kjo është e çuditshme. Por ju duhet të provoni funksionalitetin, kështu që e keni krijuar këtë klasë, duke përdorur Mockito, mok it, imituar atë.

Ju do të thoni se kur një kërkesë vjen në këtë klasë me një ID të tillë dhe të tillë, ajo kthen një mbiemër, për shembull, Vasya Pupkin. Dhe do të funksionojë. Kjo do të thotë, ju do të testoni të gjithë funksionalitetin për klasën mok one. Gjë shumë e lezetshme.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Lidhje nga rrëshqitja

Modelet e projektimit. Cfare eshte? Këto janë shabllone për zgjidhjen e problemeve tipike që lindin në zhvillim. Në zhvillim, shpesh lindin probleme identike ose të ngjashme që do të ishte mirë t'i zgjidhnin disi mirë. Prandaj, njerëzit dolën me praktikat më të mira, modele të caktuara, se si t'i zgjidhni këto probleme.

Ekziston një faqe interneti me modelet më të njohura - refactoring.guru, mund ta lexoni, të zbuloni se çfarë modelesh ka, të lexoni një sërë teorish. Problemi është se është praktikisht i padobishëm. Në fakt, modelet pa praktikë nuk janë veçanërisht të dobishme.

Do të dëgjoni për disa modele si Singleton ose Builder. Kush i dëgjoi këto fjalë? Shumë njerëz. Ka modele kaq të thjeshta që mund t'i zbatoni vetë. Por shumica e modeleve: strategjia, fabrika, fasada - nuk është e qartë se ku t'i zbatoni ato.

Dhe derisa të shihni në praktikë në kodin e një personi tjetër një vend në të cilin zbatohet ky model, nuk do të mund ta zbatoni vetë. Prandaj, praktika është shumë e rëndësishme me modelet. Dhe thjesht të lexosh rreth tyre në refactoring.guru nuk është shumë e dobishme, por padyshim që ia vlen ta bësh.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Pse nevojiten modelet? Le të themi se keni një klasë të caktuar Përdoruesi. Ka një ID dhe një emër. Çdo përdorues duhet të ketë një ID dhe një Emër. Sipër majtas është klasa.

Cilat janë mënyrat për të inicializuar Përdoruesin? Ka dy opsione - ose një konstruktor ose një vendosës. Cilat janë disavantazhet e të dyja qasjeve?

Konstruktor. Përdoruesi i ri (7, "Bond"), në rregull. Tani le të themi se nuk kemi një klasë User, por një tjetër, me shtatë fusha numerike. Do të keni një konstruktor që përmban shtatë numra të njëpasnjëshëm. Nuk është e qartë se cilët janë këta numra dhe cili prej tyre i përket cilës pronë. Dizajneri nuk është i shkëlqyeshëm.

Opsioni i dytë është vendosësi. Ju shkruani qartë: setId(7), setName (“Bond”). Ju e kuptoni se cila pronë i përket cilës fushë. Por seteri ka një problem. Së pari, mund të harroni të caktoni diçka, dhe së dyti, objekti juaj rezulton të jetë i ndryshueshëm. Kjo nuk është e sigurt për temat dhe pakëson lexueshmërinë e kodit. Kjo është arsyeja pse njerëzit dolën me një model të lezetshëm - Builder.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Për çfarë bëhet fjalë? Le të përpiqemi të kombinojmë avantazhet e të dy qasjeve - vendosës dhe konstruktor - në një. Ne bëjmë një objekt të caktuar, Builder, i cili do të ketë gjithashtu fushat Id dhe Name, i cili vetë do të ndërtohet në bazë të seterit dhe që do të ketë një metodë Build që ju kthen një përdorues të ri me të gjitha parametrat. Marrim një objekt të pandryshueshëm dhe një seter. E bukur!

Cilat janë problemet? Këtu kemi Ndërtuesin klasik. Problemi është se ne ende mund të harrojmë të kontrollojmë në disa fusha. Dhe nëse kemi harruar të vizitojmë ID-në, në këtë rast në Builder ai inicializohet në zero, sepse lloji int nuk është i pavlefshëm. Dhe nëse bëjmë Emrin “Bond” dhe harrojmë të vizitojmë zyrën e ID-së, do të kemi një Përdorues të ri me ID “0” dhe emrin “Bond”. Jo mirë.

Le të përpiqemi ta luftojmë këtë. Në Builder ne do të ndryshojmë int në int në mënyrë që të jetë i pavlefshëm. Tani gjithçka është e mrekullueshme.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Nëse përpiqemi të krijojmë një Përdorues me emrin "Bond", duke harruar të vendosim ID-në e tij, do të marrim një përjashtim të treguesit null, sepse ID-ja nuk është e anulueshme dhe Ndërtuesi ka një përjashtim null, veçanërisht treguesin.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Por ne ende mund të harrojmë të vendosim një emër, kështu që vendosim rishikimin e objektit në null. Tani, kur ndërtojmë objektin tonë nga Builder, ai kontrollon që fusha të mos jetë e pavlefshme. Dhe kjo nuk është e gjitha.

Le të shohim shembullin e fundit. Në këtë rast, nëse vendosim disi null në kohën e funksionimit të ID-së, do të ishte mirë të dimë menjëherë se e bëtë atë dhe nuk është mirë që po bëni një gabim tani.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Ju duhet të hidhni një gabim jo në momentin e krijimit të Përdoruesit, por kur vendosni null në ID. Prandaj, në Builder ne do ta ndryshojmë setterin Integer në int, dhe ai menjëherë do të betohet se ata hodhën jashtë null.

Me pak fjalë, cila është qëllimi? Ekziston një model i thjeshtë Builder, por edhe zbatimi i tij ka disa hollësi, kështu që është shumë interesante të shikosh zbatime të ndryshme të modeleve. Çdo model ka dhjetëra zbatime. E gjithë kjo është shumë interesante.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Si e shkruajmë Builder në kodin e prodhimit? Këtu është Përdoruesi ynë. Ne i bashkojmë një rotacion Builder nga biblioteka Lombok dhe ai vetë gjeneron një Builder për ne. Kjo do të thotë, ne nuk shkruajmë asnjë kod, por Java tashmë mendon se kjo klasë ka një Builder, dhe ne mund ta quajmë atë kështu.

Unë kam thënë tashmë se Java ka biblioteka për pothuajse çdo gjë, duke përfshirë Lombok, një bibliotekë e lezetshme që ju lejon të shmangni shkrimin e boilerplate. Ndërtues, GET.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Modelet mund të jenë arkitekturore - të lidhura jo vetëm me një klasë, por me sistemin në tërësi. Ekziston një parim kaq i lezetshëm në hartimin e sistemit: Parimi i Përgjegjësisë së Vetëm. Për çfarë po flet? Fakti që çdo klasë duhet të jetë përgjegjëse për disa nga funksionet e saj. Në këtë rast, ne kemi një Controller që komunikon me përdoruesit, objektet JSON. Ekziston Fasada, e cila konverton objektet JSON në modele me të cilat aplikacioni Java do të punojë më pas. Ekziston një shërbim që ka logjikë komplekse që funksionon me këto modele. Ekziston një objekt i aksesit të të dhënave që i vendos këto modele në bazën e të dhënave dhe i merr ato nga baza e të dhënave. Dhe ekziston vetë baza e të dhënave. Me fjalë të tjera, nuk është e gjitha në një klasë, por ne po bëjmë pesë klasa të ndryshme, dhe ky është një model tjetër.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Pasi të keni mësuar pak a shumë Java, është mirë të shkruani projektin tuaj që do të ketë një bazë të dhënash, të punojë me API të tjera dhe të ekspozojë aplikacionin e serverit tuaj ndaj klientëve REST API. Kjo do të ishte një gjë e shkëlqyeshme për të shtuar në CV-në tuaj, do të ishte një fund i lezetshëm për arsimimin tuaj. Me këtë ju mund të shkoni dhe të gjeni një punë.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Këtu është një shembull i aplikacionit tim të serverit. Në vitin e dytë, shkrova një punim terminor me djemtë. Ata po shkruanin një aplikacion celular për organizimin e ngjarjeve. Atje, përdoruesit mund të identifikoheshin nëpërmjet VKontakte, të vendosnin pika në hartë, të krijonin ngjarje, të ftonin miqtë e tyre në to, të ruanin imazhe të ngjarjeve, etj.

Çfarë bëra në projekt? Shkruani një aplikacion serveri në Spring Boot pa përdorur SQL. Nuk e njihja, përdora JPA. Çfarë mund të bënte? Hyni në VK nëpërmjet OAuth-2. Merrni shenjën e përdoruesit, shkoni në VK me të, kontrolloni nëse është një përdorues i vërtetë. Merrni informacione rreth përdoruesve përmes VKontakte. Ai ishte në gjendje të ruante informacionin në një bazë të dhënash, gjithashtu nëpërmjet JPA. Ruani me mjeshtëri fotografitë dhe skedarët e tjerë në kujtesën e kompjuterit dhe ruani lidhjet me to në bazën e të dhënave. Në atë kohë nuk e dija që kishte objekte CLOB në bazën e të dhënave, kështu që e bëra në këtë mënyrë. Kishte një API REST për përdoruesit, aplikacionet e klientëve. Dhe kishte teste njësi për funksionalitetin bazë.

[...] Një shembull i vogël i të mësuarit tim të suksesshëm të Java. Në vitin e parë në universitet, mësova C# dhe më dhanë një kuptim të programimit OOP - çfarë janë klasat, ndërfaqet, abstraksioni dhe pse nevojiten. Më ndihmoi shumë. Pa këtë, mësimi i Java është mjaft i vështirë; nuk është e qartë pse nevojiten klasa.

Pse të mësoni Java dhe si ta bëni atë në mënyrë efektive. Raporti Yandex

Në vitin e dytë në universitet, ata përsëri mësuan Java core, por nuk u ndala me kaq, shkova të studioja vetë Spring dhe shkrova një punim kursi, projektin tim, të cilin e përmenda më lart. Dhe me gjithë këtë, unë shkova për një praktikë në Yandex, kalova një intervistë dhe hyra në Yandex.Market. Aty shkrova backend-in për Beru, ky është tregu ynë dhe për vetë Yandex.Market.

Pas kësaj, gjashtë muaj më parë, u transferova në një ekip tjetër brenda të njëjtit Market. Ne bëjmë analiza për partnerët e biznesit. Jemi në platformën analitike, jemi tre në fund, kështu që unë kam një pjesë shumë të madhe të ndikimit në projekt. Është shumë interesante, në fakt. Kjo do të thotë, ne në fakt ofrojmë të dhëna për tregun - çfarë janë shitjet, në cilat kategori, në çfarë modele, për partnerët e biznesit, kompanitë e mëdha të njohura. Dhe ne jemi vetëm tre, ne e shkruajmë këtë kod dhe është shumë i lezetshëm.

Faleminderit! Lidhje të dobishme:
- "Java 8. Udhëzues për fillestarët".
- Strukturat e të dhënave.
- SQLZOO.
- Normalizimi i bazës së të dhënave.
- Modelet e Dizajnit.
- Modelet e Dizajnit.
- Kodi i pastër.
- Java efektive.

Burimi: www.habr.com

Shto një koment