Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ciamar a tha Java eadar-dhealaichte bho chànanan mòr-chòrdte eile? Carson a bu chòir Java a bhith mar a’ chiad chànan airson ionnsachadh? Cruthaichidh sinn plana a chuidicheas tu gus Java ionnsachadh bhon fhìor thoiseach agus le bhith a’ cleachdadh sgilean prògramadh ann an cànanan eile. Feuch an dèan sinn liosta de na h-eadar-dhealachaidhean eadar cruthachadh còd toraidh ann an Java agus leasachadh ann an cànanan eile. Leugh Mikhail Zatepyakin an aithisg seo aig coinneamh airson com-pàirtichean san àm ri teachd inntearnasan Yandex agus luchd-leasachaidh tòiseachaidh eile - Java Junior meetup.


- Halo a h-uile duine, is e Misha an t-ainm a th’ orm. Tha mi nam leasaiche bho Yandex.Market, agus an-diugh innsidh mi dhut carson a dh’ ionnsaich thu Java agus mar a nì thu e gu h-èifeachdach. Is dòcha gun cuir thu ceist reusanta: carson a bhios mi ag innse na sgeòil seo, agus chan e leasaiche làidir le mòran bhliadhnaichean de eòlas? Is e an fhìrinn gun do rinn mi sgrùdadh air Java o chionn ghoirid, timcheall air bliadhna gu leth air ais, agus mar sin tha cuimhne agam fhathast cò ris a bha e coltach agus dè na duilgheadasan a th’ ann.

O chionn bliadhna fhuair mi inntearnas aig Yandex.Market. Leasaich mi an backend airson Beru, airson a’ Mhargaidh fhèin, is dòcha gun do chleachd thu e. A-nis tha mi a’ leantainn orm ag obair an sin, ann an sgioba eile. Bidh sinn a’ cruthachadh àrd-ùrlar anailis airson Yandex.Market airson com-pàirtichean gnìomhachais.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Feuch an tòisich sinn. Carson ionnsachadh Java bho shealladh practaigeach? Is e an fhìrinn gu bheil Java na chànan prògramaidh gu math ainmeil. Tha coimhearsnachd glè mhòr ann.

Mar eisimpleir, tha clàr-amais TIOBE mar sin ann, clàr-amais mòr-chòrdte air cho mòr sa tha cànanan prògramaidh, agus tha Java a’ ruith an toiseach an sin. Cuideachd, air làraich obrach, is dòcha gun mothaich thu gu bheil a’ mhòr-chuid de na dreuchdan bàna mu dheidhinn Java, is e sin, le bhith a’ leasachadh ann an Java, faodaidh tu obair a lorg an-còmhnaidh.

Leis gu bheil a’ choimhearsnachd glè mhòr, gheibh ceist sam bith a th’ agad freagairt air cuid de Stack Overflow no làraich eile. Cuideachd, nuair a bhios tu a’ leasachadh ann an Java, tha thu dha-rìribh a’ sgrìobhadh còd air an JVM, gus an urrainn dhut atharrachadh gu furasta gu Kotlin, Scala agus cànanan eile a chleachdas an JVM.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Dè a tha math mu Java bho shealladh ideòlach? Tha diofar chànanan prògramaidh ann. Bidh iad a’ fuasgladh diofar dhuilgheadasan, tha fios agad air sin. Mar eisimpleir, tha Python sgoinneil airson sgriobtaichean aon-loidhne a sgrìobhadh gus fuasgladh fhaighinn air duilgheadasan luath.

Air an taobh adhartach, faodaidh tu làn smachd a chumail air a’ chòd so-ghnìomhaichte. Mar eisimpleir, tha càraichean againn, càraichean gun draibhear Yandex, tha an còd aca sgrìobhte ann am buannachdan. Carson? Tha leithid de rud aig Java - Garbage Collector. Bidh e a’ glanadh RAM de nithean neo-riatanach. Bidh an rud seo a 'tòiseachadh gu neo-eisimeileach agus a' stad air an t-saoghal, is e sin, bidh e a 'stad a' chòrr den phrògram agus a 'dol a chunntadh nithean, cuimhne soilleir air nithean. Ma dh’ obraicheas a leithid ann an drone, chan eil e fionnar. Bidh an drone agad a’ draibheadh ​​​​dìreach, aig an àm seo a’ glanadh a chuimhne agus gun a bhith a’ coimhead air an rathad idir. Mar sin, tha an drone sgrìobhte air na buannachdan.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Dè na duilgheadasan a tha Java a’ fuasgladh? Is e cànan a th’ ann gu sònraichte airson prògraman mòra a leasachadh a tha air an sgrìobhadh thar bhliadhnaichean, le dusanan no ceudan de dhaoine. Gu sònraichte, tha tòrr den backend ann Yandex.Market sgrìobhte ann an Java. Tha sgioba sgaoilte againn ann an grunn bhailtean, deichnear anns gach fear. Agus tha an còd furasta a chumail suas, tha e air taic fhaighinn airson deich bliadhna no barrachd, agus aig an aon àm bidh daoine ùra a 'tighinn a-steach agus a' tuigsinn a 'chòd seo.

Dè na feartan a bu chòir a bhith aig cànan gus am bi e furasta taic a thoirt don chòd innte agus gus an tèid a leasachadh gu furasta ann an sgiobaidhean mòra. An toiseach, bu chòir dha a bhith furasta a leughadh le còd, agus bu chòir dha a bhith furasta fuasglaidhean ailtireil iom-fhillte a chuir an gnìomh. Is e sin, bu chòir gum biodh e furasta geàrr-chunntasan àrd-ìre a sgrìobhadh, msaa. Is e seo uile a tha Java a’ toirt dhuinn. Is e cànan cuspaireil a tha seo. Tha e gu math furasta tarraingean àrd-ìre agus ailtireachd iom-fhillte a chuir an gnìomh.

Tha tòrr fhrèaman agus leabharlannan ann airson Java cuideachd, leis gu bheil an cànan còrr is 15 bliadhna a dh'aois. Rè na h-ùine seo, chaidh a h-uile dad a ghabhadh a sgrìobhadh a sgrìobhadh air, agus mar sin tha tonna de leabharlannan ann airson a h-uile dad a dh ’fheumas tu.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Dè na sgilean bunaiteach, nam bheachd-sa, a bu chòir a bhith aig cluicheadair JA tòiseachaidh? An toiseach, is e seo eòlas air prìomh chànan Java. An ath rud tha seòrsa de fhrèam In-stealladh Dependency. Bruidhnidh an ath neach-labhairt, Kirill, mu dheidhinn seo nas mionaidiche. Cha tèid mi ro dhomhainn. An ath rud tha na pàtrain ailtireachd agus dealbhaidh. Feumaidh sinn a bhith comasach air còd a tha breagha a thaobh ailtireachd a sgrìobhadh gus tagraidhean mòra a sgrìobhadh. Agus is e seo seòrsa de SQL no ORM airson gnìomhan a bhith ag obair leis an stòr-dàta. Agus tha seo a 'buntainn barrachd ris an cùl-raon.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Rach! Java bunaiteach. Chan fhaigh mi a-mach Ameireagaidh an seo - feumaidh fios a bhith agad air a’ chànan fhèin. Dè bu chòir dhut aire a thoirt dha. An toiseach, tha Java air tòrr dhreachan fhoillseachadh anns na bliadhnachan mu dheireadh, is e sin, ann an 2014-2015 chaidh an seachdamh a leigeil ma sgaoil, an uairsin an ochdamh, naoidheamh, an deicheamh, tòrr dhreachan ùra, agus chaidh tòrr rudan fionnar ùra a thoirt a-steach annta. , mar eisimpleir, an Java Stream API , lambda, msaa Rudan fìor fhionnar, ùr, fionnar a thathas a’ cleachdadh ann an còd toraidh, na bhios iad a’ faighneachd mu dheidhinn ann an agallamhan agus air am feum fios a bhith agad. Mar sin, cha bu chòir dhut leabhar a thoirt bhon sgeilp ann an leabharlann Java-4 agus a dhol ga ionnsachadh. Is e seo ar plana: bidh sinn ag ionnsachadh Java-8 no nas àirde.

Bidh sinn a’ toirt aire mhionaideach do innleachdan leithid Stream API, var, msaa. Is e sin, tha an Stream API tòrr nas fhuaire na lùban, san fharsaingeachd, rud gu math fionnar. Dèan cinnteach gun toir thu aire.

Agus tha a h-uile seòrsa rud ann mar iterators, Exceptions agus mar sin air adhart. Rudan a tha coltach nach eil cudromach dhut fhad ‘s a sgrìobhas tu còd beag thu fhèin. Chan fheum thu na h-eisgeadan sin, cò a tha feumach orra co-dhiù? Ach thèid faighneachd dhaibh gu cinnteach aig agallamhan, bidh iad gu cinnteach feumail dhut ann an riochdachadh. San fharsaingeachd, bu chòir dhut aire a thoirt do eisgeachdan, iterators agus rudan eile.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Structaran dàta. Chan urrainn dhut a dhol às aonais structaran, ach bidh e math mura h-eil fios agad gu bheil seataichean, faclairean agus duilleagan ann. Agus cuideachd diofar structaran a chur an gnìomh. Mar eisimpleir, tha iomadh gnìomh aig an aon fhaclair ann an Java, nam measg HashMap agus TreeMap. Tha asymptotics eadar-dhealaichte aca, tha structar eadar-dhealaichte aca a-staigh. Feumaidh fios a bhith agad mar a tha iad eadar-dhealaichte agus cuin a chleachdas tu am fear.

Bidh e gu math fionnar cuideachd ma tha fios agad mar a tha na structaran dàta sin ag obair air an taobh a-staigh. Is e sin, chan eil e furasta fios a bhith aca air na asymptotics aca - dè an ìre a bhios an geall ag obair, dè cho fada ‘s a bhios am pas ag obair, ach mar a tha an structar ag obair a-staigh - mar eisimpleir, dè a th’ ann am bucaid ann an HashMap.

Is fhiach cuideachd aire a thoirt do chraobhan agus grafaichean. Is iad sin rudan nach eil gu math cumanta ann an còd toraidh, ach tha fèill mhòr orra ann an agallamhan. Mar sin, feumaidh tu a bhith comasach air a dhol thairis air craobhan, grafaichean ann an leud agus doimhneachd. Tha iad sin uile nan algorithms sìmplidh.

Cho luath ‘s a thòisicheas tu a’ sgrìobhadh còd mòr sam bith, iom-fhillte, a ’cleachdadh leabharlannan, còd ioma-chlas, tuigidh tu gu bheil e duilich dhut gun siostaman a thogail agus eisimeileachd fhuasgladh. Is iad sin Maven agus Gradle sa mhòr-chuid. Leigidh iad leat leabharlannan a thoirt a-steach don phròiseact agad ann an aon loidhne. Is e sin, bidh thu a’ sgrìobhadh xml aon-loidhne agus a’ toirt a-steach leabharlannan a-steach don phròiseact. Siostaman sàr-mhath. Tha iad timcheall air an aon rud, cleachd an dàrna cuid - Maven no Gradle.

An ath - seòrsa de shiostam smachd dreach. Tha mi a’ moladh Git oir tha fèill mhòr air agus tha tonna de chlasaichean oideachaidh ann. Bidh cha mhòr a h-uile duine a’ cleachdadh Git, is e rud fionnar a th’ ann, chan urrainn dhut a bhith beò às aonais.

Agus seòrsa de àrainneachd leasachaidh. Tha mi a’ moladh IntelliJ Idea. Bidh e gu mòr a ’luathachadh a’ phròiseas leasachaidh, gad chuideachadh gu mòr, a ’sgrìobhadh a h-uile còd boilerplate dhut, san fharsaingeachd, tha e fionnar.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ceanglaichean bhon sleamhnag: SQLZOO, habrapost

SQL. Beagan mu dheidhinn backenders. Gu dearbh bha cùis èibhinn an seo. Dà latha ron dàrna agallamh inntearnas agam, chuir nighean HR fios thugam agus thuirt i gum feumadh mi ionnsachadh ann an dà latha gum biodh iad a’ faighneachd dhomh mu SQL agus HTTP. Agus cha mhòr nach robh fios agam air SQL no HTTP. Agus lorg mi an làrach sgoinneil seo - SQLZOO. Dh'ionnsaich mi SQL air ann an 12 uairean, tha mi a 'ciallachadh, co-chòrdadh SQL, mar a sgrìobhas tu ceistean SELECT, JOIN, msaa. Làrach fìor fhionnar, tha mi ga mholadh gu mòr. Gu dearbh, ann an 12 uairean dh'ionnsaich mi 90% de na tha fios agam a-nis.

Agus tha e math cuideachd eòlas fhaighinn air ailtireachd stòr-dàta. Is iad seo a h-uile seòrsa iuchraichean, clàran-amais, gnàthachadh. Tha sreath de phuist mu dheidhinn seo air Habré.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ann an Java, a bharrachd air SQL, tha a h-uile seòrsa de shiostaman mapaidh co-cheangailte ri Rud leithid JPA. Tha beagan còd ann. Anns a 'chiad dhòigh tha cuid de chòd SQL - SELECT id name FROM info.users WHERE id IN userIds. Bho stòr-dàta an luchd-cleachdaidh, bhon chlàr, gheibhear na IDan agus na h-ainmean aca.

An ath rud, tha mapper sònraichte ann a thionndaidheas rud bhon bhonn gu rud Java. Agus tha treas dòigh gu h-ìosal a chuireas an còd seo an gnìomh. Faodar seo uile a chuir na àite le bhith a ’cleachdadh JPA le aon loidhne, a tha sgrìobhte gu h-ìosal. Bidh e a’ dèanamh an aon rud - lorg All ByIdIn. Is e sin, stèidhichte air ainm a’ mhodh, bidh e a’ gineadh ceist SQL dhut.

Rud gu math fionnar. Chleachd mi fhìn, nuair nach robh mi eòlach air SQL, JPA. San fharsaingeachd, thoir an aire. Ma tha thu ro leisg airson SQL ionnsachadh, is e mòr-thubaist a th’ ann. Agus, san fharsaingeachd, teine!

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Earrach. Cò a chuala mu leithid de rud ri frèam an Earraich? Am faic thu cia mheud agaibh a tha ann? Chan ann gun adhbhar. Tha an earrach air a ghabhail a-steach ann an riatanasan gach dàrna beàrn backend Java. Às aonais, chan eil àite sam bith ann an leasachadh mòr. Dè th' ann an Earrach? An toiseach, is e seo frèam In-stealladh Dependency. Mu dheidhinn seo cuideachd innsidh an ath neach-labhairt. Ach ann an ùine ghoirid, is e seo rud a leigeas leat a dhèanamh nas fhasa eisimeileachd cuid de chlasaichean a thoirt a-steach gu feadhainn eile. Is e sin, tha eòlas air eisimeileachd air a dhèanamh nas sìmplidhe.

Is e pìos Earrach a th’ ann an Spring Boot a leigeas leat an tagradh frithealaiche agad a ruith le aon phutan. Thèid thu gu THID, brùth putan no dhà, agus a-nis tha an tagradh frithealaiche agad ag obair air localhost 8080. Is e sin, chan eil thu air aon loidhne de chòd a sgrìobhadh fhathast, ach tha e ag obair mu thràth. Rud gu math fionnar. Ma sgrìobhas tu rudeigin dhut fhèin, teine!

Tha an earrach na fhrèam fìor mhòr. Chan e a-mhàin gu bheil e a’ togail an tagradh frithealaiche agad agus a’ fuasgladh In-stealladh eisimeileachd. Leigidh e leat dòrlach de rudan a dhèanamh, a’ toirt a-steach cruthachadh dhòighean REST API. Is e sin, sgrìobh thu dòigh air choireigin agus cheangail thu an nota mapa Get ris. Agus a-nis tha dòigh air choireigin agad mu thràth air localhost a sgrìobhas Hello world dhut. Dà loidhne de chòd agus tha e ag obair. Stuth fionnar.

Bidh an earrach cuideachd a’ dèanamh deuchainnean sgrìobhaidh nas fhasa. Chan eil dòigh ann gun deuchainn ann an leasachadh mòr. Feumar an còd a dhearbhadh. Airson an adhbhair seo, tha leabharlann fionnar aig Java JUnit 5. Agus JUnit san fharsaingeachd, ach is e an dreach as ùire an còigeamh fear. Tha a h-uile dad ann airson deuchainn, a h-uile seòrsa dearbhaidhean agus rudan eile.

Agus tha frèam Mockito uamhasach ann. Smaoinich gu bheil comas-gnìomh agad a tha thu airson a dhearbhadh. Bidh an comas-gnìomh a’ dèanamh tòrr rudan, a’ toirt a-steach, am badeigin sa mheadhan, bidh e a’ logadh a-steach gu VKontakte leis an ID agad, mar eisimpleir, agus a’ faighinn a’ chiad ainm agus an t-ainm mu dheireadh aig neach-cleachdaidh VKontakte bhon ID. Is dòcha nach toir thu a-steach VKontakte anns na deuchainnean, tha sin neònach. Ach feumaidh tu an comas-gnìomh a dhearbhadh, agus mar sin rinn thu an clas seo, a’ cleachdadh Mockito, mok e, dèan aithris air.

Canaidh tu nuair a thig iarrtas chun chlas seo le ID mar sin agus an leithid, gun till e ainm mu dheireadh, mar eisimpleir, Vasya Pupkin. Agus obraichidh e. Is e sin, nì thu deuchainn air a h-uile gnìomh airson mok aon chlas. Rud gu math fionnar.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ceangal bho slide

Pàtranan dealbhaidh. Dè th' ann? Is iad seo teamplaidean airson fuasgladh fhaighinn air duilgheadasan àbhaisteach a thig am bàrr ann an leasachadh. Ann an leasachadh, bidh duilgheadasan co-ionann no coltach gu tric ag èirigh gum biodh e math fuasgladh fhaighinn air dòigh air choireigin. Mar sin, thàinig daoine suas leis na cleachdaidhean as fheàrr, cuid de theamplaidean, air mar a dh ’fhuasglas iad na duilgheadasan sin.

Tha làrach-lìn ann leis na pàtrain as mòr-chòrdte - refactoring.guru, faodaidh tu a leughadh, faighinn a-mach dè na pàtrain a th ’ann, leugh dòrlach de theòiridh. Is e an duilgheadas a th 'ann gu bheil e cha mhòr gun fheum. Gu dearbh, chan eil pàtrain gun chleachdadh gu sònraichte feumail.

Cluinnidh tu mu chuid de phàtranan leithid Singletone no Builder. Cò a chuala na briathran seo? Tòrr dhaoine. Tha pàtrain cho sìmplidh ann as urrainn dhut fhèin a chuir an gnìomh. Ach a 'mhòr-chuid de na pàtranan: ro-innleachd, factaraidh, aghaidh - chan eil e soilleir càite an cuir iad an sàs iad.

Agus gus am faic thu ann an cleachdadh ann an còd cuideigin eile àite ris a bheil am pàtran seo air a chuir an sàs, cha bhith e comasach dhut a chuir an sàs thu fhèin. Mar sin, tha cleachdadh glè chudromach le pàtrain. Agus dìreach leughadh mun deidhinn air refactoring.guru chan eil e air leth cuideachail, ach gu cinnteach is fhiach e a dhèanamh.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Carson a tha feum air pàtrain? Canaidh sinn gu bheil clas cleachdaiche sònraichte agad. Tha Id agus Ainm air. Feumaidh an dà chuid Id agus Ainm a bhith aig gach cleachdaiche. Gu h-àrd air an taobh chlì tha an seòmar-sgoile.

Dè na dòighean a th 'ann gus cleachdaiche a thòiseachadh? Tha dà roghainn ann - an dàrna cuid neach-togail no neach-seata. Dè na h-eas-bhuannachdan a tha aig an dà dhòigh-obrach?

Neach-togail. cleachdaiche ùr (7, "Bond"), ceart gu leòr. A-nis canaidh sinn nach eil clas Cleachdaiche againn, ach fear eile, le seachd raointean àireamhach. Bidh neach-togail agad anns a bheil seachd àireamhan leantainneach. Chan eil e soilleir dè a th’ anns na h-àireamhan sin agus cò dhiubh leis am buin an t-seilbh. Chan eil an dealbhaiche fìor mhath.

Is e an dàrna roghainn neach-gleidhidh. Bidh thu a’ sgrìobhadh gu soilleir: setId(7), setName (“Bond”). Tha thu a’ tuigsinn dè an t-seilbh a bhuineas don raon sin. Ach tha duilgheadas aig an neach-ionaid. An toiseach, is dòcha gu bheil thu a 'dìochuimhneachadh rudeigin a shònrachadh, agus san dàrna àite, bidh an nì agad a' tionndadh a-mach gu bhith comasach. Chan e snàithlean sàbhailte a tha seo agus tha e a’ lughdachadh beagan leughaidh a’ chòd. Sin as coireach gun tàinig daoine suas le pàtran fionnar - Neach-togail.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Cò mu dheidhinn a tha seo? Feuchaidh sinn ri buannachdan an dà dhòigh-obrach - suidhiche agus neach-togail - a chur còmhla ann an aon. Bidh sinn a’ dèanamh nì sònraichte, Builder, aig am bi raointean Id agus Ainm cuideachd, a thèid a thogail ann fhèin stèidhichte air an t-seata, agus aig am bi dòigh Togail a bheir cleachdaiche ùr dhut leis na paramadairean gu lèir. Bidh sinn a 'faighinn rud nach gabh atharrachadh agus seata. Tarraingeach!

Dè na duilgheadasan a th’ ann? An seo tha an neach-togail clasaigeach againn. Is e an duilgheadas a th ’ann gum faod sinn fhathast dìochuimhneachadh sgrùdadh a dhèanamh ann an cuid de raon. Agus ma dhìochuimhnich sinn tadhal air an ID, anns a’ chùis seo ann an Builder tha e air a thòiseachadh gu neoni, leis nach eil an seòrsa int neo-ghluasadach. Agus ma nì sinn an t-ainm “Bond” agus ma dhìochuimhnicheas sinn tadhal air an oifis ID, bidh cleachdaiche ùr againn le id “0” agus an t-ainm “Bond”. Chan eil fionnar.

Feuchaidh sinn ri sabaid an seo. Ann an Builder atharraichidh sinn int gu int gus am bi e null. A-nis tha a h-uile dad fìor mhath.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ma dh’ fheuchas sinn ri Cleachdaiche a chruthachadh leis an ainm “Bond”, a’ dìochuimhneachadh an ID aige a chuir, gheibh sinn eisgeachd puing null, leis nach eil an ID neo-ghluasadach, agus tha eisgeachd puing null, sònraichte aig an Neach-togail.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ach faodaidh sinn fhathast dìochuimhneachadh ainm a chuir, agus mar sin chuir sinn ath-chluich cuspair gu null. A-nis, nuair a thogas sinn ar nì bho Builder, bidh e a’ dèanamh cinnteach nach gabh an raon a chuir air falbh. Agus chan e sin uile.

Bheir sinn sùil air an eisimpleir mu dheireadh. Anns a’ chùis seo, ma chuireas sinn dòigh air choireigin ann an ùine ruith an ID, bhiodh e math fios a bhith agad sa bhad gun do rinn thu e agus chan eil e math gu bheil thu a’ dèanamh mearachd a-nis.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Feumaidh tu mearachd a thilgeil chan ann aig àm cruthachadh cleachdaiche, ach nuair a shuidhicheas tu null chun ID. Mar sin, ann an Builder atharraichidh sinn an t-sreathadair Integer gu int, agus bheir e mionnachadh sa bhad gun do thilg iad a-mach null.

Ann an ùine ghoirid, dè a ’phuing a th’ ann? Tha pàtran neach-togail sìmplidh ann, ach tha beagan subtleties aig eadhon a bhuileachadh, agus mar sin tha e gu math fionnar coimhead air diofar bhuileachadh de phàtranan. Tha dusanan de bhuileachadh aig gach pàtran. Tha seo uile gu math inntinneach.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Ciamar a sgrìobhas sinn Builder ann an còd toraidh? Seo an cleachdaiche againn. Bidh sinn a’ ceangal cuairteachadh Builder bho leabharlann Lombok ris, agus bidh e fhèin a’ gineadh Neach-togail dhuinn. Is e sin, cha bhith sinn a’ sgrìobhadh còd sam bith, ach tha Java mu thràth den bheachd gu bheil neach-togail aig a ’chlas seo, agus is urrainn dhuinn a ghairm mar seo.

Tha mi air a ràdh mar-thà gu bheil leabharlannan aig Java airson cha mhòr a h-uile càil, nam measg Lombok, leabharlann fionnar a leigeas leat sgrìobhadh boilerplate a sheachnadh. Fear-togail, GET.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Faodaidh pàtrain a bhith ailtireil - co-cheangailte chan ann a-mhàin ri aon chlas, ach ris an t-siostam gu h-iomlan. Tha prionnsapal cho fionnar ann an dealbhadh siostam: Prionnsabal Uallach Singilte. Cò mu dheidhinn a tha e a’ bruidhinn? Is e an fhìrinn gum feum gach clas a bhith cunntachail airson cuid de na gnìomhan aige fhèin. Anns a’ chùis seo, tha Rianadair againn a bhios a’ conaltradh ri luchd-cleachdaidh, nithean JSON. Tha Facade ann, a thionndaidheas nithean JSON gu modalan leis am bi an tagradh Java ag obair an uairsin. Tha Seirbheis ann aig a bheil loidsig iom-fhillte a bhios ag obair leis na modalan sin. Tha Rud Ruigsinneachd Dàta ann a chuireas na modailean sin a-steach don stòr-dàta agus gan toirt air ais bhon stòr-dàta. Agus tha an stòr-dàta fhèin ann. Ann am faclan eile, chan eil e uile ann an aon chlas, ach tha sinn a’ dèanamh còig clasaichean eadar-dhealaichte, agus sin pàtran eile.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Aon uair ‘s gu bheil thu air barrachd no nas lugha ionnsachadh Java, tha e math do phròiseact fhèin a sgrìobhadh aig am bi stòr-dàta, obrachadh le APIan eile, agus an tagradh frithealaiche agad a nochdadh do luchd-dèiligidh REST API. Bhiodh seo na rud math airson a chuir ris an ath-thòiseachadh agad, bhiodh e na chrìoch math air d’ fhoghlam. Le seo faodaidh tu a dhol agus obair fhaighinn.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Seo eisimpleir den tagradh frithealaiche agam. Anns an dàrna bliadhna agam, sgrìobh mi pàipear teirm leis na balaich. Bha iad a’ sgrìobhadh tagradh gluasadach airson tachartasan a chuir air dòigh. An sin, b 'urrainn do luchd-cleachdaidh logadh a-steach tro VKontakte, puingean a chur air a' mhapa, tachartasan a chruthachadh, cuireadh a thoirt dha na caraidean aca, sàbhail ìomhaighean de thachartasan, msaa.

Dè rinn mi sa phròiseact? Sgrìobh mi tagradh frithealaiche ann an Spring Boot gun a bhith a’ cleachdadh SQL. Cha robh mi eòlach air, chleachd mi JPA. Dè a b’ urrainn dha a dhèanamh? Log a-steach gu VK tro OAuth-2. Gabh comharra an neach-cleachdaidh, rachaibh gu VK leis, dèan cinnteach gur e fìor neach-cleachdaidh a th’ ann. Faigh fiosrachadh mu luchd-cleachdaidh tro VKontakte. Bha e comasach dha fiosrachadh a shàbhaladh ann an stòr-dàta, cuideachd tro JPA. Sàbhail gu sgileil dealbhan agus faidhlichean eile ann an cuimhne coimpiutair, agus sàbhail ceanglaichean riutha san stòr-dàta. Aig an àm sin cha robh fios agam gu robh stuthan CLOB anns an stòr-dàta, agus mar sin rinn mi e mar seo. Bha REST API ann airson luchd-cleachdaidh, tagraidhean teachdaiche. Agus bha deuchainnean aonaid ann airson comas-gnìomh bunaiteach.

[…] Eisimpleir bheag den ionnsachadh soirbheachail agam air Java. Anns a’ chiad bhliadhna agam san oilthigh, chaidh C# a theagasg dhomh agus fhuair mi tuigse air prògramadh OOP - dè na clasaichean, eadar-aghaidh, tarraing-às, agus carson a tha feum orra. Chuidich e mi gu mòr. Às aonais seo, tha ionnsachadh Java gu math duilich; chan eil e soilleir carson a tha feum air clasaichean.

Carson ionnsachadh Java agus mar a nì thu e gu h-èifeachdach. Yandex aithisg

Anns an dàrna bliadhna agam aig an oilthigh, bha iad a-rithist a’ teagasg cridhe Java, ach cha do stad mi an sin, chaidh mi a sgrùdadh Spring mi fhìn agus sgrìobh mi pàipear cùrsa, am pròiseact agam, air an tug mi iomradh gu h-àrd. Agus leis a h-uile càil seo, chaidh mi airson inntearnas aig Yandex, chaidh mi seachad air agallamh, agus chaidh mi a-steach do Yandex.Market. An sin sgrìobh mi an deireadh-sheachdain airson Beru, is e seo ar margaidh, agus airson Yandex.Market fhèin.

Às deidh sin, sia mìosan air ais, ghluais mi gu sgioba eile taobh a-staigh an aon mhargaidh. Bidh sinn a’ dèanamh anailis airson com-pàirtichean gnìomhachais. Tha sinn san àrd-ùrlar anailis, tha triùir againn air an deireadh-sheachdain, agus mar sin tha buaidh mhòr agam air a’ phròiseact. Tha e glè inntinneach, gu dearbh. 'S e sin, tha sinn dha-rìribh a' toirt seachad dàta air a 'mhargaidh - dè an reic, dè na roinnean-seòrsa, dè na modailean, airson com-pàirtichean gnìomhachais, companaidhean mòra ainmeil. Agus chan eil ann ach triùir againn, bidh sinn a’ sgrìobhadh a’ chòd seo, agus tha e gu math fionnar.

Tapadh leat! Ceanglaichean feumail:
- "Java 8. Leabhar-iùil Luchd-tòiseachaidh".
- Structaran Dàta.
- SQLZOO.
- Normalachadh stòr-dàta.
- Pàtranan dealbhaidh.
- Pàtranan Dealbhaidh.
- Còd Glan.
- Java gu h-èifeachdach.

Source: www.habr.com

Cuir beachd ann