Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Hvernig er Java frábrugðið öðrum vinsælum tungumálum? Af hverju ætti Java að vera fyrsta tungumálið til að læra? Við skulum búa til áætlun sem mun hjálpa þér að læra Java bæði frá grunni og með því að beita forritunarkunnáttu á öðrum tungumálum. Við skulum telja upp muninn á því að búa til framleiðslukóða í Java og þróa á öðrum tungumálum. Mikhail Zatepyakin las þessa skýrslu á fundi fyrir framtíðarþátttakendur starfsnám Yandex og aðrir byrjandi forritarar - Java Junior Meetup.


— Halló allir, ég heiti Misha. Ég er verktaki frá Yandex.Market og í dag mun ég segja þér hvers vegna þú ættir að læra Java og hvernig á að gera það á áhrifaríkan hátt. Þú gætir spurt sanngjarnrar spurningar: hvers vegna ætla ég að segja þessa sögu, en ekki einhver sterkur verktaki með margra ára reynslu? Staðreyndin er sú að ég lærði sjálfur á Java nýlega, fyrir um einu og hálfu ári síðan, svo ég man enn hvernig þetta var og hvaða gildrur það eru.

Fyrir ári síðan fékk ég starfsnám hjá Yandex.Market. Ég þróaði bakendann fyrir Beru, fyrir markaðinn sjálfan, þú notaðir hann líklega. Núna held ég áfram að vinna þar, í öðru liði. Við búum til greiningarvettvang fyrir Yandex.Market fyrir viðskiptafélaga.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Byrjum. Af hverju að læra Java frá hagnýtu sjónarhorni? Staðreyndin er sú að Java er mjög frægt forritunarmál. Það hefur mjög stórt samfélag.

Til dæmis er slík TIOBE vísitala, vinsæl vísitala yfir vinsældir forritunarmála, og þar er Java í fyrsta sæti. Einnig á vinnusíðum muntu líklega taka eftir því að flest laus störf snúast um Java, það er að segja með því að þróa í Java geturðu alltaf fundið vinnu.

Þar sem samfélagið er mjög stórt, munu allar spurningar sem þú hefur fundið svar á einhverjum Stack Overflow eða öðrum síðum. Einnig, þegar þú þróar í Java, ertu í raun að skrifa kóða á JVM, svo þú getur auðveldlega skipt yfir í Kotlin, Scala og önnur tungumál sem nota JVM.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Hvað er gott við Java frá hugmyndafræðilegu sjónarhorni? Það eru mismunandi forritunarmál. Þeir leysa mismunandi vandamál, þú veist það. Til dæmis er Python frábært til að skrifa einlínu forskriftir til að leysa fljótleg vandamál.

Það jákvæða er að þú getur stjórnað keyranlega kóðanum að fullu. Til dæmis höfum við bíla, Yandex ökumannslausa bíla, kóðinn þeirra er skrifaður með plús-merkjum. Hvers vegna? Java hefur svoleiðis - Garbage Collector. Það hreinsar vinnsluminni af óþarfa hlutum. Þessi hlutur byrjar af sjálfu sér og stoppar heiminn, það er að segja að hann stoppar restina af forritinu og fer í að telja hluti, hreinsa minni hluti. Ef slíkt virkar í dróna er það ekki flott. Dróninn þinn mun keyra beint, á þessari stundu hreinsa minni hans og horfa alls ekki á veginn. Þess vegna er dróninn skrifaður á kostina.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Hvaða vandamál leysir Java? Það er fyrst og fremst tungumál til að þróa stór forrit sem eru skrifuð í gegnum árin, af tugum eða hundruðum manna. Sérstaklega er mikið af bakendanum í Yandex.Market skrifað á Java. Við erum með dreifð lið í nokkrum borgum, tíu manns í hverri. Og kóðinn er auðveldur í viðhaldi, hann hefur verið studdur í tíu ár eða lengur og á sama tíma kemur nýtt fólk inn og skilur þennan kóða.

Hvaða eiginleika ætti tungumál að hafa svo að kóðinn í því sé auðveldlega studdur og þannig að auðvelt sé að þróa hann í stórum teymum. Í fyrsta lagi ætti það að vera læsilegur kóða og það ætti að vera auðvelt að innleiða flóknar byggingarlausnir. Það er að segja að það ætti að vera auðvelt að skrifa útdrátt á háu stigi osfrv. Allt þetta er það sem Java gefur okkur. Þetta er hlutbundið tungumál. Það er mjög auðvelt að innleiða abstrakt abstrakt og flókinn arkitektúr á háu stigi.

Það er líka mikið af ramma og bókasöfnum fyrir Java, því tungumálið er meira en 15 ára gamalt. Á þessum tíma var allt sem hægt var að skrifa skrifað á það, svo það eru fullt af bókasöfnum fyrir allt sem þú gætir þurft.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Hvaða grunnfærni ætti byrjandi JA leikmaður að hafa að mínu mati? Í fyrsta lagi er þetta þekking á Java kjarnamálinu. Næst er einhvers konar Dependency Injection ramma. Næsti ræðumaður, Kirill, mun fjalla nánar um þetta. Ég skal ekki fara of djúpt. Næst er arkitektúr og hönnunarmynstur. Við þurfum að geta skrifað byggingarlega fallegan kóða til að geta skrifað stór forrit. Og þetta er einhvers konar SQL eða ORM fyrir verkefni við að vinna með gagnagrunninn. Og þetta á meira við um bakhliðina.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Farðu! Java kjarna. Ég mun ekki uppgötva Ameríku hér - þú þarft að kunna tungumálið sjálft. Það sem þú ættir að borga eftirtekt til. Í fyrsta lagi hefur Java gefið út fullt af útgáfum á undanförnum árum, það er að segja að á árunum 2014-2015 kom sú sjöunda, svo áttunda, níunda, tíunda, fullt af nýjum útgáfum og fullt af nýjum flottum hlutum var kynnt í þeim td Java Stream API , lambda o.s.frv. Mjög flottir, ferskir, flottir hlutir sem eru notaðir í framleiðslukóða, hvað þeir spyrja um í viðtölum og sem þú þarft að vita. Þess vegna ættir þú ekki að taka bók úr hillunni í Java-4 bókasafninu og fara að læra hana. Þetta er áætlun okkar: við lærum Java-8 eða hærra.

Við fylgjumst vel með nýjungum eins og Stream API, var o.fl. Þeir eru spurðir í viðtölum og eru stöðugt notaðir í framleiðslu. Það er, Stream API er miklu svalara en lykkjur, almennt séð mjög flottur hlutur. Vertu viss um að fylgjast með.

Og það eru alls konar hlutir eins og endurtekningar, undantekningar og svo framvegis. Hlutir sem virðast ekki mikilvægir fyrir þig svo lengi sem þú skrifar smá kóða sjálfur. Þú þarft ekki þessar undantekningar, hver þarf þær samt? En þeir verða örugglega spurðir í viðtölum, þeir munu örugglega nýtast þér í framleiðslu. Almennt ættir þú að borga eftirtekt til undantekningar, endurtekningar og annarra hluta.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Gagnauppbygging. Þú getur ekki farið án mannvirkja, en það verður frábært ef þú veist ekki bara að það eru sett, orðabækur og blöð. Og einnig mismunandi útfærslur á mannvirkjum. Til dæmis, sama orðabók í Java hefur margar útfærslur, þar á meðal HashMap og TreeMap. Þeir hafa mismunandi einkennalausa eiginleika, þeir eru mismunandi uppbyggðir að innan. Þú þarft að vita hvernig þeir eru mismunandi og hvenær á að nota hvaða.

Það verður líka mjög flott ef þú veist hvernig þessi gagnaskipulag virkar innbyrðis. Það er, það er ekki auðvelt að vita einkennaleysi þeirra - hversu mikið veðmálið virkar, hversu lengi sendingin virkar, heldur hvernig uppbyggingin virkar inni - til dæmis hvað er fötu í HashMap.

Það er líka þess virði að borga eftirtekt til trjáa og línurita. Þetta eru hlutir sem eru ekki mjög algengir í framleiðslukóða, en þeir eru vinsælir í viðtölum. Í samræmi við það þarftu að geta farið yfir tré, línurit á breidd og dýpt. Þetta eru allt einföld reiknirit.

Um leið og þú byrjar að skrifa stóran kóða, flókinn, með því að nota bókasöfn, fjölflokka kóða, muntu átta þig á því að það er erfitt fyrir þig án þess að byggja kerfi og leysa ósjálfstæði. Þetta eru fyrst og fremst Maven og Gradle. Þeir gera þér kleift að flytja bókasöfn inn í verkefnið þitt í einni línu. Það er, þú skrifar einnar línu xml og flytur bókasöfn inn í verkefnið. Frábær kerfi. Þeir eru um það bil eins, notaðu annað hvort einn - Maven eða Gradle.

Næst - einhvers konar útgáfustýringarkerfi. Ég mæli með Git vegna þess að það er vinsælt og það eru fullt af námskeiðum. Næstum allir nota Git, það er töff hlutur, þú getur ekki lifað án þess.

Og einhvers konar þróunarumhverfi. Ég mæli með IntelliJ Idea. Það flýtir mjög fyrir þróunarferlinu, hjálpar þér mikið, skrifar allan ketilskóðann fyrir þig, almennt séð er það flott.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Tenglar úr glærunni: SQLZOO, habrapost

SQL. Smá um bakenda. Það var reyndar fyndið mál hérna. Tveimur dögum fyrir annað starfsviðtalið mitt hringdi HR stelpa í mig og sagði að eftir tvo daga myndu þeir spyrja mig um SQL og HTTP, ég þyrfti að læra það. Og ég vissi nánast ekkert um SQL eða HTTP. Og ég fann þessa flottu síðu - SQLZOO. Ég lærði SQL á því á 12 tímum, ég meina, SQL setningafræði, hvernig á að skrifa SELECT queries, JOIN osfrv. Mjög flott síða, mæli eindregið með henni. Reyndar lærði ég 12% af því sem ég kann núna á 90 tímum.

Og það er líka frábært að þekkja gagnagrunnsarkitektúr. Þetta eru alls kyns lyklar, vísitölur, normalization. Það er röð af færslum um þetta á Habré.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Í Java, auk SQL, eru alls kyns hlutbundin kortlagningarkerfi eins og JPA. Það er einhver kóða. Í fyrstu aðferðinni er einhver SQL kóða - SELECT id name FROM info.users WHERE id IN userIds. Úr gagnagrunni notenda, úr töflunni, eru auðkenni þeirra og nöfn fengin.

Næst er ákveðinn kortlagningarmaður sem breytir hlut frá grunni í Java hlut. Og það er þriðja aðferðin fyrir neðan sem raunverulega keyrir þennan kóða. Allt þetta er hægt að skipta út með JPA með einni línu, sem er skrifuð hér að neðan. Það gerir það sama - finndu All ByIdIn. Það er, byggt á nafni aðferðarinnar, býr hún til SQL fyrirspurn fyrir þig.

Mjög flott atriði. Ég sjálfur, þegar ég þekkti ekki SQL, notaði JPA. Almennt séð, gaum að. Ef þú ert of latur til að læra SQL, þá er það hörmung. Og almennt eldur!

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Vor. Hver hefur heyrt um eitthvað sem heitir Vor ramma? Sérðu hvað þið eruð mörg? Ekki að ástæðulausu. Vorið er innifalið í kröfunum fyrir hvert annað laust starf í Java backend. Án þess er í raun hvergi í stórri þróun. Hvað er vor? Í fyrsta lagi er þetta ramma fyrir innspýting á ósjálfstæði. Um þetta líka mun segja næsti ræðumaður. En í stuttu máli, þetta er hlutur sem gerir þér kleift að gera það auðveldara að flytja ósjálfstæði sumra flokka yfir á aðra. Það er að segja að þekking á ósjálfstæði er einfölduð.

Spring Boot er stykki af Spring sem gerir þér kleift að keyra netþjónaforritið þitt með einum hnappi. Þú ferð í THID, ýtir á nokkra hnappa og nú ertu með netþjónaforritið þitt í gangi á localhost 8080. Það er, þú hefur ekki skrifað eina línu af kóða ennþá, en það er nú þegar að virka. Mjög flott atriði. Ef þú skrifar eitthvað af þér, eldaðu!

Vorið er mjög stór umgjörð. Það tekur ekki aðeins upp netþjónaforritið þitt og leysir Dependency Injection. Það gerir þér kleift að gera fullt af hlutum, þar á meðal að búa til REST API aðferðir. Það er að segja, þú skrifaðir einhverja aðferð og hengdir Fá kortlagningarskýringuna við hana. Og nú ertu nú þegar með einhverja aðferð á localhost sem skrifar Halló heimur til þín. Tvær línur af kóða og það virkar. Flott efni.

Vorið auðveldar líka ritunarpróf. Það er engin leið án þess að prófa í stórri þróun. Kóðann þarf að prófa. Í þessu skyni er Java með flott bókasafn JUnit 5. Og JUnit almennt, en nýjasta útgáfan er sú fimmta. Þar er allt til að prófa, alls kyns fullyrðingar og annað.

Og það er æðislegur Mockito rammi. Ímyndaðu þér að þú hafir einhverja virkni sem þú vilt prófa. Virknin gerir ýmislegt, þar á meðal einhvers staðar í miðjunni skráir hún sig til dæmis inn á VKontakte með auðkenninu þínu og fær fornafn og eftirnafn VKontakte notanda frá auðkenninu. Þú munt líklega ekki taka VKontakte með í prófunum, það er skrítið. En þú þarft að prófa virknina, svo þú gerðir þennan flokk með því að nota Mockito, mok það, líkja eftir honum.

Þú munt segja að þegar beiðni kemur til þessa bekkjar með auðkenni eins og slíks, þá skilar það einhverju eftirnafni, til dæmis Vasya Pupkin. Og það mun virka. Það er, þú munt prófa alla virkni fyrir mok one class. Mjög flott atriði.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Tengill af glæru

Hönnun mynstur. Hvað það er? Þetta eru sniðmát til að leysa dæmigerð vandamál sem koma upp í þróun. Í þróun koma oft upp sams konar eða svipuð vandamál sem væri frábært að leysa einhvern veginn vel. Þess vegna komu menn með bestu starfsvenjur, ákveðin sniðmát, um hvernig ætti að leysa þessi vandamál.

Það er vefsíða með vinsælustu mynstrin - refactoring.guru, þú getur lesið hana, fundið út hvaða mynstur það eru, lesið fullt af kenningum. Vandamálið er að það er nánast gagnslaust. Reyndar eru mynstur án æfinga ekki sérstaklega gagnleg.

Þú munt heyra um sum mynstur eins og Singletone eða Builder. Hver heyrði þessi orð? Mikið af fólki. Það eru til svo einföld mynstur sem þú getur útfært sjálfur. En flest mynstur: stefnu, verksmiðju, framhlið - það er ekki ljóst hvar á að beita þeim.

Og þar til þú sérð í reynd í kóða einhvers annars manns stað sem þetta mynstur er notað á, munt þú ekki geta beitt því sjálfur. Þess vegna er æfing mjög mikilvæg með mynstur. Og bara að lesa um þá á refactoring.guru er ekki mjög gagnlegt, en það er svo sannarlega þess virði að gera það.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Af hverju þarf mynstur? Segjum að þú sért með ákveðinn User class. Það hefur auðkenni og nafn. Hver notandi verður að hafa bæði auðkenni og nafn. Efst til vinstri er kennslustofan.

Hverjar eru leiðirnar til að frumstilla notanda? Það eru tveir valkostir - annað hvort smiður eða settur. Hverjir eru ókostir beggja aðferða?

Smiður. nýr notandi (7, "Bond"), allt í lagi. Segjum nú að við séum ekki með User class, heldur einhvern annan, með sjö talnareitum. Þú munt hafa smið sem inniheldur sjö tölur í röð. Ekki er ljóst hverjar þessar tölur eru og hver þeirra tilheyrir hvaða eign. Hönnuðurinn er ekki frábær.

Annar valkosturinn er setter. Þú skrifar greinilega: setId(7), setName(“Bond”). Þú skilur hvaða eign tilheyrir hvaða sviði. En setter á í vandræðum. Í fyrsta lagi gætirðu gleymt að úthluta einhverju og í öðru lagi reynist hluturinn þinn vera breytilegur. Þetta er ekki þráðaröryggi og dregur aðeins úr læsileika kóðans. Þess vegna kom fólk með flott mynstur - Builder.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Um hvað snýst þetta? Við skulum reyna að sameina kosti beggja aðferðanna - settur og smiður - í einni. Við búum til ákveðinn hlut, Builder, sem mun einnig hafa Id og Name reiti, sem sjálfur verður byggður út frá setjanum, og sem mun hafa Build aðferð sem skilar þér nýjum notanda með öllum breytum. Við fáum óbreytanlegan hlut og setter. Flott!

Hver eru vandamálin? Hér höfum við klassíska Builder. Vandamálið er að við getum samt gleymt að kíkja á einhvern reit. Og ef við gleymdum að heimsækja auðkennið, í þessu tilfelli í Builder er það frumstillt á núll, vegna þess að int-gerðin er ekki núllhæf. Og ef við gerum nafnið „Bond“ og gleymum að heimsækja ID skrifstofuna, munum við hafa nýjan notanda með auðkenni „0“ og nafninu „Bond“. Ekki svalt.

Við skulum reyna að berjast gegn þessu. Í Builder munum við breyta int í int þannig að það sé núllhæft. Nú er allt frábært.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Ef við reynum að búa til notanda með nafninu „Bond“, og gleymum að setja auðkenni hans, fáum við núllbendisundtekningu, vegna þess að auðkennið er ekki núllhæft og byggirinn hefur núll, sérstaklega bendiundantekningu.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

En við getum samt gleymt að setja nafn, svo við stilltum endurspilun hlut á núll. Nú, þegar við byggjum hlutinn okkar úr Builder, athugar hann að reiturinn sé ekki núllhæfur. Og það er ekki allt.

Lítum á síðasta dæmið. Í þessu tilfelli, ef við setjum núll í ID keyrslutímann, þá væri frábært að vita strax að þú gerðir það og það er ekki flott að þú sért að gera mistök núna.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Þú þarft að henda villu ekki á því augnabliki sem notandinn er búinn til, heldur þegar þú stillir núll á auðkennið. Þess vegna, í Builder munum við breyta setjanum Integer í int, og hann mun strax sverja að þeir hafi kastað út null.

Í stuttu máli, hver er tilgangurinn? Það er til einfalt Builder mynstur, en jafnvel útfærsla þess hefur nokkra fínleika, svo það er mjög flott að skoða mismunandi útfærslur á mynstrum. Hvert mynstur hefur heilmikið af útfærslum. Þetta er allt mjög áhugavert.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Hvernig skrifum við Builder í framleiðslukóða? Hér er notandi okkar. Við festum Builder snúning frá Lombok bókasafninu við það og það býr sjálft til Builder fyrir okkur. Það er, við skrifum engan kóða, en Java heldur nú þegar að þessi flokkur sé með Builder og við getum kallað það svona.

Ég er búinn að segja að Java er með bókasöfn fyrir næstum allt, þar á meðal Lombok, flott bókasafn sem gerir þér kleift að forðast að skrifa boilerplate. Byggingaraðili, GET.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Mynstur geta verið byggingarlist - tengd ekki aðeins einum flokki heldur kerfinu í heild. Það er svo flott meginregla í kerfishönnun: Single Responsibility Principle. Hvað er hann að tala um? Sú staðreynd að hver flokkur verður að bera ábyrgð á sumum eigin virkni. Í þessu tilfelli höfum við stjórnanda sem hefur samskipti við notendur, JSON hluti. Það er Facade, sem breytir JSON hlutum í líkön sem Java forritið mun síðan vinna með. Það er þjónusta sem hefur flókna rökfræði sem vinnur með þessum gerðum. Það er Data Access Object sem setur þessi líkön inn í gagnagrunninn og sækir þau úr gagnagrunninum. Og þar er gagnagrunnurinn sjálfur. Með öðrum orðum, þetta er ekki allt í einum flokki, heldur erum við að búa til fimm mismunandi flokka, og það er annað mynstur.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Þegar þú hefur meira og minna lært Java er frábært að skrifa þitt eigið verkefni sem mun hafa gagnagrunn, vinna með öðrum API og afhjúpa netþjónaforritið þitt fyrir REST API viðskiptavinum. Þetta væri frábært að bæta við ferilskrána þína, það væri flottur endir á menntun þinni. Með þessu geturðu farið og fengið vinnu.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Hér er dæmi um netþjónaforritið mitt. Á öðru ári skrifaði ég kennsluverkefni með strákunum. Þeir voru að skrifa farsímaforrit til að skipuleggja viðburði. Þar gátu notendur skráð sig inn í gegnum VKontakte, sett punkta á kortið, búið til viðburði, boðið vinum sínum til sín, vistað myndir af atburðum o.s.frv.

Hvað gerði ég í verkefninu? Skrifaði netþjónaforrit í Spring Boot án þess að nota SQL. Ég þekkti hann ekki, ég notaði JPA. Hvað gæti það gert? Skráðu þig inn á VK í gegnum OAuth-2. Taktu tákn notandans, farðu með það í VK, athugaðu hvort þetta sé raunverulegur notandi. Fáðu upplýsingar um notendur í gegnum VKontakte. Það var hægt að vista upplýsingar í gagnagrunni, einnig í gegnum JPA. Vistaðu myndir og aðrar skrár af kunnáttu í minni tölvunnar og vistaðu tengla á þær í gagnagrunninum. Á þeim tíma vissi ég ekki að það væru CLOB hlutir í gagnagrunninum, svo ég gerði það á þennan hátt. Það var REST API fyrir notendur, viðskiptavinaforrit. Og það voru einingaprófanir fyrir grunnvirkni.

[…] Lítið dæmi um árangursríkt nám mitt á Java. Fyrsta árið mitt í háskóla var mér kennt C# og fékk ég skilning á OOP forritun - hvað flokkar, viðmót, abstrakt eru og hvers vegna þeirra er þörf. Það hjálpaði mér mikið. Án þessa er nokkuð erfitt að læra Java; það er ekki ljóst hvers vegna þörf er á námskeiðum.

Af hverju að læra Java og hvernig á að gera það á áhrifaríkan hátt. Yandex skýrsla

Á öðru ári í háskólanum kenndu þeir aftur Java kjarna, en ég hætti ekki þar, ég fór sjálfur í nám í Vor og skrifaði námskeiðsritgerð, verkefnið mitt, sem ég nefndi hér að ofan. Og með allt þetta fór ég í starfsnám hjá Yandex, stóðst viðtal og komst inn á Yandex.Market. Þar skrifaði ég bakendann fyrir Beru, þetta er markaðstorgið okkar, og fyrir Yandex.Market sjálft.

Eftir það, fyrir sex mánuðum, fór ég yfir í annað lið á sama markaði. Við gerum greiningar fyrir viðskiptafélaga. Við erum í greiningarvettvangi, við erum þrjú á bakhliðinni, þannig að ég hef mjög stóran hluta af áhrifum á verkefnið. Það er mjög áhugavert, reyndar. Það er, við gefum í raun gögn um markaðinn - hver sala er, í hvaða flokkum, í hvaða gerðum, fyrir viðskiptafélaga, stór vel þekkt fyrirtæki. Og við erum aðeins þrjú, við skrifum þennan kóða og hann er mjög flottur.

Þakka þér fyrir! Gagnlegar tenglar:
- "Java 8. Leiðbeiningar fyrir byrjendur".
- Gagnauppbyggingar.
- SQLZOO.
- Normalization gagnagrunns.
- Hönnunarmynstur.
- Hönnunarmynstur.
- Hreint kóða.
- Árangursrík Java.

Heimild: www.habr.com

Bæta við athugasemd