Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Zertan desberdintzen da Java beste hizkuntza ezagunekin? Zergatik izan behar da Java ikasteko lehen hizkuntza? Sortu dezagun Java hutsetik eta beste hizkuntza batzuetan programatzeko trebetasunak aplikatuz ikasten lagunduko dizun plan bat. Zerrenda ditzagun produkzio-kodea Javan sortzearen eta beste hizkuntza batzuetan garatzearen arteko desberdintasunak. Mikhail Zatepyakinek txosten hau irakurri zuen etorkizuneko partaideentzako bilera batean praktikak Yandex eta beste garatzaile hasiberri batzuk - Java Junior topaketa.


- Kaixo guztioi, Misha dut izena. Yandex.Market-eko garatzailea naiz, eta gaur esango dizut zergatik ikasi Java eta nola egin eraginkortasunez. Arrazoizko galdera bat egin dezakezu: zergatik kontatuko dut istorio hau, eta ez urte askotako esperientzia duen garatzaile sendo bat? Kontua da nik neuk Java ikasi nuela duela gutxi, duela urte eta erdi inguru, eta, beraz, oraindik gogoan daukat nolakoa zen eta zein zorra dauden.

Duela urtebete Yandex.Market-en praktikak egin nituen. Berurako backend-a garatu nuen, Marketerako bera, seguruenik erabili zenuen. Orain hor jarraitzen dut lanean, beste talde batean. Yandex.Market-erako plataforma analitikoa sortzen dugu negozio-bazkideentzat.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Has gaitezen. Zergatik ikasi Java ikuspuntu praktikotik? Kontua da Java oso programazio lengoaia famatua dela. Oso komunitate handia du.

Adibidez, TIOBE indize bat dago, programazio lengoaien ospearen indize ezaguna, eta Java lehen postuan dago. Gainera, lan guneetan, ziurrenik, lanpostu gehienak Javari buruzkoak direla ohartuko zara, hau da, Javan garatuz, beti aurkituko duzu lana.

Komunitatea oso handia denez, egiten duzun edozein galdera Stack Overflow edo beste gune batzuetan aurkituko du erantzuna. Gainera, Javan garatzen ari zarenean, benetan JVMn kodea idazten ari zara, beraz, erraz alda dezakezu Kotlin, Scala eta JVM erabiltzen duten beste hizkuntza batzuetara.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Zer du ona Javak ikuspegi ideologikotik? Programazio-lengoaia desberdinak daude. Arazo desberdinak konpontzen dituzte, badakizu. Adibidez, Python bikaina da lerro bakarreko script-ak idazteko, arazo azkarrak konpontzeko.

Alde onean, kode exekutagarria guztiz kontrola dezakezu. Adibidez, autoak ditugu, Yandex gidaririk gabeko autoak, haien kodea plusetan idatzita dago. Zergatik? Javak badu horrelakorik - Zabor-biltzailea. RAM behar ez diren objektuetatik garbitzen du. Gauza hau berez hasten da eta stop-the-world egiten du, hau da, gainerako programa gelditzen du eta objektuak zenbatzera joaten da, objektuen memoria garbia. Horrelako gauza batek drone batean funtzionatzen badu, ez da polita. Zure droneak zuzen gidatuko du, une honetan memoria garbitu eta errepideari ez dio batere begiratu. Hori dela eta, dronea profesionaletan idatzita dago.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Zein arazo konpontzen ditu Javak? Batez ere, programa handiak garatzeko hizkuntza bat da, urteetan zehar dozenaka edo ehunka pertsonek idatzitakoak. Bereziki, Yandex.Market-en backend asko Javan idatzita dago. Hainbat hiritan banatutako taldea dugu, hamar pertsona bakoitzean. Eta kodea mantentzen erraza da, hamar urtez edo gehiagoz onartzen da eta, aldi berean, jende berria sartzen da eta kode hau ulertzen du.

Zein ezaugarri izan behar dituen hizkuntza batek bertan dagoen kodea erraz onar dadin eta talde handietan erraz garatu ahal izateko. Lehenik eta behin, kode irakurgarria izan behar du, eta arkitektura irtenbide konplexuak ezartzea erraza izan behar du. Hau da, erraza izan beharko luke goi-mailako abstrakzioak idaztea... Hori guztia da Javak eskaintzen diguna. Hau objektuetara zuzendutako hizkuntza bat da. Oso erraza da maila altuko abstrakzioak eta arkitektura konplexuak ezartzea.

Javarako framework eta liburutegi asko ere badaude, hizkuntzak 15 urte baino gehiago dituelako. Denbora horretan, idatz zitekeen guztia idatzita zegoen bertan, beraz, liburutegi ugari daude behar duzun guztiarentzat.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Zein oinarrizko gaitasun izan behar ditu, nire ustez, JA jokalari hasiberri batek? Lehenik eta behin, Java core hizkuntzaren ezagutza da. Ondoren, Dependency Injection esparru moduko bat dago. Hurrengo hizlariak, Kirillek, sakonago hitz egingo du honi buruz. Ez naiz gehiegi sakonduko. Hurrengoa arkitektura eta diseinu ereduak dira. Aplikazio handiak idazteko arkitektura aldetik kode ederra idazteko gai izan behar dugu. Eta hau datu-basearekin lan egiteko zereginetarako SQL edo ORM moduko bat da. Eta hau gehiago aplikatzen zaio backend-ari.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Joan! Java core. Ez dut benetan Amerika hemen ezagutuko; hizkuntza bera ezagutu behar duzu. Arreta eman behar diozunari. Lehenik eta behin, Javak bertsio asko kaleratu ditu azken urteotan, hau da, 2014-2015ean zazpigarrena kaleratu zen, gero zortzigarrena, bederatzigarrena, hamargarrena, bertsio berri asko eta gauza polit berri asko sartu ziren. , adibidez, Java Stream API , lambda, etab. Produkzio kodean erabiltzen diren gauza oso politak, freskoak eta politak, elkarrizketetan zeri buruz galdetzen duten eta jakin behar dituzunak. Hori dela eta, ez zenuke hartu Java-4 liburutegiko apaletik liburu bat eta joan ikastera. Hau da gure plana: Java-8 edo gehiago ikasten dugu.

Erreparatzen diegu Stream API, var... bezalako berrikuntzei. Elkarrizketetan galdetzen dira eta etengabe erabiltzen dira ekoizpenean. Hau da, Stream API begiztak baino askoz freskoagoa da, oro har, oso gauza polita. Ziurtatu arreta jartzen duzula.

Eta mota guztietako gauzak daude, hala nola iteratzaileak, Salbuespenak eta abar. Garrantzirik gabekoak iruditzen zaizkizun gauzak zuk zeuk idazten duzun bitartean. Ez dituzu Salbuespen hauek behar, nork behar ditu hala ere? Baina, zalantzarik gabe, elkarrizketetan galdetuko zaie, zalantzarik gabe ekoizpenean erabilgarriak izango zaizkizu. Oro har, Salbuespenak, iteratzaileak eta bestelako gauzei erreparatu behar diezu.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Datuen egiturak. Ezin zara egiturarik gabe joan, baina bikaina izango da multzoak, hiztegiak eta fitxak badirela ezagutzen ez baduzu. Baita egituren ezarpen desberdinak ere. Adibidez, Java-ko hiztegi berak inplementazio asko ditu, HashMap eta TreeMap barne. Asintotiko desberdinak dituzte, barrutik ezberdin egituratuta daude. Jakin behar duzu nola desberdinak diren eta noiz erabili zein den.

Oso polita izango da datu-egitura hauek barnean nola funtzionatzen duten badakizu. Hau da, ez da erraza haien asintotikak jakitea - apustuak zenbat funtzionatzen duen, zenbat denboran funtzionatzen duen paseak, baina egiturak nola funtzionatzen duen barruan - adibidez, zer den ontzi bat HashMap-en.

Zuhaitzei eta grafikoei ere arreta jartzea merezi du. Produkzio-kodean oso ohikoak ez diren gauzak dira, baina elkarrizketetan ezagunak dira. Horren arabera, zuhaitzak, grafikoak zabalera eta sakonera zeharkatzeko gai izan behar duzu. Hauek guztiak algoritmo sinpleak dira.

Edozein kode handi, konplexua, liburutegiak erabiliz, klase anitzeko kode idazten hasi bezain laster, konturatuko zara zaila dela zuretzat sistema eraiki eta mendekotasunak konpondu gabe. Hauek batik bat Maven eta Gradle dira. Liburutegiak zure proiektuan lerro bakarrean inportatzeko aukera ematen dizute. Hau da, lerro bateko xml bat idazten duzu eta liburutegiak inportatzen dituzu proiektuan. Sistema bikainak. Gutxi gorabehera berdinak dira, erabili bat - Maven edo Gradle.

Hurrengoa - bertsioak kontrolatzeko sistemaren bat. Git gomendatzen dut ezaguna delako eta tutorial asko daudelako. Ia denek erabiltzen dute Git, gauza polita da, ezin zara hura gabe bizi.

Eta garapen-ingurune motaren bat. IntelliJ Idea gomendatzen dut. Garapen-prozesua asko bizkortzen du, asko laguntzen dizu, boilerplate kode guztia idazten dizu, oro har, polita da.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Diapositibako estekak: SQLZOO, habrapost

SQL. Backennderei buruz pixka bat. Egia esan, kasu dibertigarri bat egon zen hemen. Nire bigarren praktika-elkarrizketa baino bi egun lehenago, HR-ko neska batek deitu zidan eta esan zidan bi egunetan SQL eta HTTP-ri buruz galdetuko zidatela, ikasi behar nuela. Eta ez nekien ia ezer SQL edo HTTP buruz. Eta gune polit hau aurkitu dut - SQLZOO. SQL ikasi nuen 12 ordutan, esan nahi dut, SQL sintaxia, nola idatzi SELECT kontsultak, JOIN, etab. Oso gunea polita, gomendatzen dizut. Izan ere, 12 ordutan orain dakidanaren %90 ikasi nuen.

Eta datu-baseen arkitektura ezagutzea ere oso ona da. Hauek mota guztietako gakoak, indizeak, normalizazioak dira. HabrΓ©-n honi buruzko mezu batzuk daude.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Javan, SQLz gain, objektu-erlaziozko mapak egiteko sistema mota guztiak daude, hala nola JPA. Kode batzuk daude. Lehenengo metodoan SQL kode batzuk daude - SELECT id name FROM info.users WHERE id IN userIds. Erabiltzaileen datu-basetik, taulatik, haien IDak eta izenak lortzen dira.

Ondoren, mapatzaile jakin bat dago oinarritik objektu bat Java objektu bihurtzen duena. Eta hirugarren metodo bat dago azpian kode hau benetan exekutatzen duena. Hori guztia JPA erabiliz ordezkatu daiteke lerro batekin, behean idatzita dagoena. Gauza bera egiten du: aurkitu All ByIdIn. Hau da, metodoaren izenaren arabera, SQL kontsulta bat sortzen dizu.

Oso gauza polita. Nik neuk, SQL ezagutzen ez nuenean, JPA erabiltzen nuen. Oro har, arreta jarri. SQL ikasteko alferra bazara, hondamendia da. Eta, oro har, sua!

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Udaberria. Nork entzun du Udaberriko markoa? Ikusten al duzu zenbat zareten? Ez arrazoirik gabe. Udaberria Java backend lanpostu huts bakoitzeko eskakizunetan sartzen da. Hori gabe, benetan ez dago garapen handi batean. Zer da Udaberria? Lehenik eta behin, hau Dependency Injection esparru bat da. Honi buruz ere esango du hurrengo hizlaria. Baina laburbilduz, hau klase batzuen menpekotasunak beste batzuetara errazago inportatzea ahalbidetzen duen gauza da. Hau da, mendekotasunen ezagutza erraztu egiten da.

Spring Boot botoi batekin zure zerbitzariaren aplikazioa exekutatzeko aukera ematen duen Spring zati bat da. THIDera joan, botoi pare bat sakatu eta orain zure zerbitzariaren aplikazioa martxan duzu localhost 8080-n. Hau da, oraindik ez duzu kode lerro bakar bat idatzi, baina dagoeneko funtzionatzen ari da. Oso gauza polita. Zure zerbait idazten baduzu, su!

Udaberria oso esparru handia da. Ez du soilik zure zerbitzariaren aplikazioa jasotzen eta Dependency Injection konpontzen. Gauza asko egiteko aukera ematen dizu, besteak beste, REST API metodoak sortzea. Hau da, metodoren bat idatzi eta Lortu maparen oharpena erantsi diozu. Eta orain badaukazu Kaixo mundua idazten dizun metodoren bat localhost-en. Bi kode lerro eta funtzionatzen du. Gauza politak.

Udaberriak idazketa probak ere errazten ditu. Garapen handietan probatu gabe ez dago modurik. Kodea probatu behar da. Horretarako, Java-k JUnit 5 liburutegi polita du. Eta JUnit, oro har, baina azken bertsioa bosgarrena da. Denetarik dago probak egiteko, era guztietako baieztapenak eta beste gauza batzuk.

Eta Mockito marko ikaragarria dago. Imajinatu probatu nahi dituzun funtzionalitate batzuk dituzula. Funtzionalitateak gauza asko egiten ditu, besteak beste, erdialdean, VKontakte-n saioa hasten du zure IDarekin, adibidez, eta VKontakte erabiltzailearen izena eta abizena jasotzen ditu IDtik. Ziurrenik ez duzu VKontakte probetan sartuko, bitxia da. Baina funtzionaltasuna probatu behar duzu, beraz, klase hau egin duzu, Mockito erabiliz, mok it, imitatu.

Esango duzu eskaera bat klase honetara NAN batekin iristen denean, abizen batzuk itzultzen dituela, adibidez, Vasya Pupkin. Eta funtzionatuko du. Hau da, mok one klaserako funtzionalitate guztiak probatuko dituzu. Oso gauza polita.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Esteka diapositibatik

Diseinu ereduak. Zer da hau? Garapenean sortzen diren arazo tipikoak konpontzeko txantiloiak dira. Garapenean, berdin-berdinak edo antzeko arazoak sortzen dira askotan, nolabait ondo konpontzea bikaina litzatekeena. Hori dela eta, jendeak arazo hauek konpontzeko praktika onak, txantiloi batzuk, asmatu zituen.

Eredu ezagunenak dituen webgune bat dago - refactoring.guru, irakurri dezakezu, ezagutu zein eredu dauden, teoria mordoa irakurri. Arazoa da ia ezertarako balio ez duela. Izan ere, praktikarik gabeko ereduak ez dira bereziki erabilgarriak.

Singletone edo Builder bezalako eredu batzuen berri izango duzu. Nork entzun zituen hitz hauek? Jende asko. Badaude eredu sinpleak zeure burua inplementa ditzakezun. Baina eredu gehienak: estrategia, fabrika, fatxada - ez dago argi non aplikatu.

Eta praktikan beste pertsona baten kodean eredu hori aplikatzen zaion leku bat ikusi arte, ezin izango duzu zuk zeuk aplikatu. Horregatik, praktika oso garrantzitsua da ereduekin. Eta refactoring.guru-n haiei buruz irakurtzea ez da oso lagungarria, baina merezi du, zalantzarik gabe.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Zergatik behar dira ereduak? Demagun Erabiltzaile klase jakin bat duzula. Id eta Izena ditu. Erabiltzaile bakoitzak ID bat eta Izena izan behar ditu. Goian ezkerrean ikasgela dago.

Zeintzuk dira Erabiltzailea hasieratzeko moduak? Bi aukera daude: eraikitzailea edo ezartzailea. Zeintzuk dira bi ikuspegien desabantailak?

Eraikitzailea. Erabiltzaile berria (7, "Bond"), ados. Orain demagun ez dugula Erabiltzaile klaserik, beste bat baizik, zazpi zenbaki-eremu dituena. Zazpi zenbaki jarraian dituen eraikitzaile bat izango duzu. Ez dago argi zeintzuk diren zenbaki horiek eta horietako zein jabetzari dagokion. Diseinatzailea ez da handia.

Bigarren aukera setter da. Argi eta garbi idazten duzu: setId(7), setName ("Lotura"). Ulertzen duzu zein jabetza zein eremuri dagokion. Baina setter-ak arazo bat du. Lehenik eta behin, baliteke zerbait esleitzea ahaztuko zaizu, eta, bigarrenik, zure objektua aldakorra dela bihurtzen da. Hau ez da hari segurua eta pixka bat murrizten du kodearen irakurgarritasuna. Horregatik, jendeak eredu polit bat sortu zuen - Builder.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Zeri buruz da hau? Saia gaitezen bi ikuspegien abantailak β€”ezartzailea eta eraikitzaileaβ€” bateratzen. Objektu jakin bat egiten dugu, Builder, Id eta Name eremuak ere izango dituena, bera ezartzailean oinarrituta eraikiko dena, eta parametro guztiekin Erabiltzaile berri bat itzultzen dizun Build metodo bat izango duena. Objektu aldaezina eta setter bat lortzen ditugu. Ederra!

Zeintzuk dira arazoak? Hemen dugu Builder klasikoa. Arazoa da oraindik ahaztu gaitezkeela eremuren batean egiaztatzea. Eta ID-a bisitatzea ahaztu bazaigu, kasu honetan Builder-en zerora hasieratzen da, int mota ez baita nulagarria. Eta β€œBond” izena egiten badugu eta NAN bulegora bisitatzea ahazten badugu, Erabiltzaile berri bat izango dugu id β€œ0” eta β€œBond” izena duena. Ez cool.

Saia gaitezen honi aurre egiten. Builder-en int int-ra aldatuko dugu nullagarria izan dadin. Orain dena bikaina da.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

β€œBond” izena duen Erabiltzaile bat sortzen saiatzen bagara, bere IDa jartzea ahaztuta, erakusle-salbuespen nulua lortuko dugu, ID-a ez baita nulagarria, eta Eraikitzaileak nulu bat du, zehazki erakusle-salbuespena.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Baina oraindik ahaztu dezakegu izena jartzeaz, beraz, objektuaren errepikapena null gisa ezarriko dugu. Orain, Builder-etik gure objektua eraikitzen dugunean, eremua nulagarria ez dela egiaztatzen du. Eta hori ez da guztia.

Ikus dezagun azken adibidea. Kasu honetan, nolabait IDaren exekuzioan null jartzen badugu, oso ondo legoke berehala jakitea egin duzula eta ez da ona orain akats bat egitea.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Errore bat bota behar duzu ez Erabiltzailea sortzeko unean, baizik eta ID-a nulua ezartzen duzunean. Hori dela eta, Builder-en Integer setter-a int-era aldatuko dugu, eta berehala zin egingo du null bota dutela.

Laburbilduz, zertarako balio du? Builder eredu sinple bat dago, baina bere inplementazioak ere sotiltasun batzuk ditu, beraz, oso polita da ereduen inplementazio desberdinak ikustea. Eredu bakoitzak dozenaka inplementazio ditu. Hau guztia oso interesgarria da.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Nola idazten dugu Builder ekoizpen-kodean? Hona hemen gure Erabiltzailea. Lombok liburutegitik Builder-en errotazio bat eransten diogu, eta berak Builder bat sortzen digu. Hau da, ez dugu koderik idazten, baina Javak dagoeneko uste du klase honek Builder bat duela, eta horrela deitu diezaiokegu.

Dagoeneko esan dut Javak ia denetarako liburutegiak dituela, Lombok barne, boilerplate idaztea saihesteko aukera ematen duen liburutegi polita. Eraikitzailea, GET.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Ereduak arkitektonikoak izan daitezke - klase batekin ez ezik, sistema osoarekin lotuta daude. Sistemaren diseinuan halako printzipio polita dago: Erantzukizun bakarraren printzipioa. Zertaz ari da? Klase bakoitzak bere funtzionaltasun batzuen arduraduna izan behar duela. Kasu honetan, erabiltzaileekin komunikatzen den Kontrolagailu bat dugu, JSON objektuak. Facade dago, JSON objektuak gero Java aplikazioak lan egingo dituen eredu bihurtzen dituena. Eredu hauekin lan egiten duen logika konplexua duen Zerbitzu bat dago. Datu-sarbiderako objektu bat dago, eredu hauek datu-basean sartu eta datu-basetik berreskuratzen dituena. Eta hor dago datu-basea bera. Alegia, dena ez dago klase batean, baina bost klase ezberdin egiten ari gara, eta hori beste eredu bat da.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Java gutxi gorabehera ikasi ondoren, oso ona da datu-base bat izango duen proiektu propioa idaztea, beste API batzuekin lan egitea eta zure zerbitzariaren aplikazioa REST API bezeroei erakustea. Hau zure curriculumean gehitzeko gauza bikaina izango litzateke, zure hezkuntzarako amaiera polita izango litzateke. Honekin joan zaitezke eta lan bat lor dezakezu.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Hona hemen nire zerbitzariaren aplikazioaren adibide bat. Bigarren urtean, hiruhilabeteko lan bat idatzi nuen mutilekin. Ekitaldiak antolatzeko aplikazio mugikor bat idazten ari ziren. Bertan, erabiltzaileak VKontakte-ren bidez saioa hasi, mapan puntuak jarri, gertaerak sortu, lagunak haietara gonbidatu, gertaeren irudiak gorde, etab.

Zer egin nuen proiektuan? Spring Boot-en zerbitzari-aplikazio bat idatzi SQL erabili gabe. Ez nuen ezagutzen, JPA erabili nuen. Zer egin zezakeen? Hasi saioa VK-n OAuth-2 bidez. Hartu erabiltzailearen tokena, joan VK-ra harekin, egiaztatu benetako erabiltzailea dela. Jaso erabiltzaileei buruzko informazioa VKontakte-ren bidez. Informazioa datu-base batean gorde ahal izan zuen, baita JPAren bidez ere. Gorde trebeki argazkiak eta bestelako fitxategiak ordenagailuaren memorian, eta gorde haietarako estekak datu-basean. Garai hartan ez nekien datu-basean CLOB objektuak zeudenik, beraz, horrela egin nuen. REST API bat zegoen erabiltzaileentzat, bezero aplikazioentzat. Eta oinarrizko funtzionaltasunerako unitate-probak zeuden.

[…] Java-ren ikaskuntza arrakastatsuaren adibide txiki bat. Unibertsitateko lehen urtean, C# irakatsi zidaten eta OOP programazioa ulertu zidaten - zer klase, interfazeak, abstrakzioa diren eta zergatik behar diren. Asko lagundu zidan. Hori gabe, Java ikastea nahiko zaila da; ez dago argi zergatik klaseak behar diren.

Zergatik ikasi Java eta nola egin eraginkortasunez. Yandex txostena

Unibertsitateko bigarren urtean, berriz, Java core irakatsi zuten, baina ez nintzen hor gelditu, ni neu Udaberria ikastera joan nintzen eta kurtsoko lan bat idatzi nuen, nire proiektua, goian aipatu dudana. Eta honekin guztiarekin Yandex-en praktikak egitera joan nintzen, elkarrizketa bat gainditu eta Yandex.Market-en sartu nintzen. Bertan idatzi nuen Beru-rako backend-a, hau da gure marketplace-a, eta Yandex.Market-erako bera.

Horren ostean, duela sei hilabete, Merkatu bereko beste talde batera pasatu nintzen. Enpresa-bazkideentzako analitika egiten dugu. Plataforma analitikoan gaude, hiru gara backend-ean, beraz, proiektuaren eragin handia daukat. Oso interesgarria da, egia esan. Hau da, benetan merkatuari buruzko datuak ematen ditugu: salmentak zer diren, zer kategoriatan, zein eredutan, negozio-bazkideentzat, enpresa ezagun handientzat. Eta hiru bakarrik gara, kode hau idazten dugu, eta oso polita da.

Eskerrik asko! Esteka erabilgarriak:
- "Java 8. Hastapenerako Gida".
- Datuen Egiturak.
- SQLZOO.
- Datu-basearen normalizazioa.
- Diseinu-ereduak.
- Diseinu ereduak.
- Kode garbia.
- Java eraginkorra.

Iturria: www.habr.com

Gehitu iruzkin berria