E-Dobavki - seirbheis lìn airson a bhith a’ lorg cuir-ris bìdh ann an Java agus Spring Boot, air a sgrìobhadh leis na h-oileanaich agam

Ro-ràdh

Tha e mar sin a thachair gu bheil mi air a bhith a’ teagasg prògramadh aig aon de na sgoiltean IT ann an Kyiv airson faisg air dà bhliadhna. Thòisich mi air seo a dhèanamh Just For Fun. Sgrìobh mi blog prògramadh aon uair, an uairsin thug mi seachad e. Ach chan eil am miann a bhith ag innse rudan feumail do dhaoine le ùidh air falbh.

'S e Java mo phrìomh chànan. Sgrìobh mi geamannan airson fònaichean-làimhe, bathar-bog airson conaltradh rèidio, agus diofar sheirbheisean lìn air. Agus tha mi a 'teagasg Java.

An seo tha mi airson an sgeulachd innse mu thrèanadh na buidhne mu dheireadh agam. Mar a chaidh iad bho bhith a’ tòiseachadh air trèanadh gu bhith a’ sgrìobhadh seirbheis lìn obrach. Seirbheis lìn feumail airson stuthan beathachaidh a lorg. A saor ' s an asgaidh gun chlàradh, gun SMS.

Tha an t-seirbheis fhèin an seo - E-Dobavki.com.

E-Dobavki - seirbheis lìn airson a bhith a’ lorg cuir-ris bìdh ann an Java agus Spring Boot, air a sgrìobhadh leis na h-oileanaich agam

Tha am pròiseact foghlaim agus chan eil sanasachd sam bith ann. Mar a tha mi a 'tuigsinn bho am foillseachadh seo, faodaidh tu ceanglaichean a thoirt do leithid de phròiseactan.

Mus toir mi cunntas air a’ phròiseact fhèin, innsidh mi beagan dhut mu phròiseas ionnsachaidh na buidhne; às aonais seo, bidh an dealbh neo-choileanta.

9 mìosan de thrèanadh

Aig an sgoil far a bheil mi a’ teagasg, tha an cùrsa Java air a roinn ann an 2 phàirt. Gu h-iomlan, bheir an cùrsa timcheall air 9 mìosan, agus bidh a h-uile briseadh (saor-làithean na Bliadhn ’Ùire, ùine airson pròiseactan eadar-mheadhanach a sgrìobhadh).

Tha a’ chiad phàirt a’ toirt eòlas do dh’oileanaich air bun-bheachdan cànain. Caochlaidhean, dòighean-obrach, bunaitean OOP agus an stuth sin uile.

Tha an dàrna pàirt den chùrsa ag innse gu bheil an oileanach mar-thà gu ìre mhòr a’ tuigsinn mar a sgrìobhas e ann an Java, agus faodar stac teicneòlais “inbheach” a thoirt dha. Bidh e uile a’ tòiseachadh le SQL, an uairsin JDBC, Hibernate. An uairsin HTTP, servlets. An ath tha an t-Earrach, beagan mu dheidhinn git agus maven. Agus bidh oileanaich a’ sgrìobhadh pròiseactan deireannach.

Tha a h-uile trèanadh air a roinn ann am modalan. Rinn mi clasaichean dà uair san t-seachdain. Tha fad aon leasan dà uair a thìde.

Mo dhòigh air ionnsachadh

Sgaoil mi 5 buidhnean. Tha e coltach gu mòr airson dà bhliadhna, ach cha mhòr nach robh mi an-còmhnaidh a’ stiùireadh 2 bhuidheann aig an aon àm.

Tha mi air diofar dhòighean-obrach fheuchainn.

Is e a’ chiad roghainn gum bi aon phaidhir air a riarachadh airson taisbeanadh le teòiridh. Tha an dàrna paidhir na chleachdadh fìor. Dh'obraich an dòigh-obrach seo dòigh air choireigin, ach cha robh e gu math èifeachdach, nam bheachd-sa.

Is e an dàrna roghainn air an tàinig mi agus air a bheil mi ag obair a-nis gun a bhith a’ toirt càraid slàn gu teòiridh. An àite sin, bidh mi a 'measgachadh earrannan goirid de theòiridh airson 5-10 mionaidean, agus gan daingneachadh sa bhad le eisimpleirean practaigeach. Tha an dòigh-obrach seo ag obair nas fheàrr.

Ma tha ùine gu leòr ann, cuiridh mi fios gu na h-oileanaich chun àite agam, suidh sìos iad aig an laptop agam, agus nì iad eisimpleirean practaigeach iad fhèin. Tha e ag obair gu math, ach gu mì-fhortanach bheir e tòrr ùine.

Chan eil a h-uile duine ga dhèanamh chun na crìche

B’ e foillseachadh dhòmhsa nach eil a’ bhuidheann gu lèir a’ ruighinn deireadh a’ chùrsa.

A rèir mo bheachdan, chan eil ach leth nan oileanach a’ sgrìobhadh a’ phròiseict mu dheireadh. Tha a 'mhòr-chuid dhiubh air an cur às anns a' chiad phàirt den chùrsa. Agus mar as trice cha bhith an fheadhainn a tha air an dàrna pàirt a ruighinn a’ tuiteam dheth.

Bidh iad a’ falbh airson diofar adhbharan.

Tha a 'chiad fhear iom-fhillteachd. Ge bith dè a chanas iad, chan e Java an cànan as sìmplidhe. Gus am prògram as sìmplidh a sgrìobhadh, feumaidh tu bun-bheachd clas, modh a thuigsinn. Agus airson tuigsinn carson a dh'fheumas tu sgrìobhadh prìomh àite falamh statach poblach (String [] arg) Tha beagan bhun-bheachdan eile ri thuigsinn.

Dèan coimeas eadar seo agus Turbo Pascal, agus is e sin a thòisich mòran dhaoine, mise nam measg:

begin
    writeln("Первая программа");
end.

Cho fad ‘s as aithne dhomh, fuasglaidh an sgoil an duilgheadas seo le bhith a’ toirt a-steach deuchainnean a bharrachd. A-nis chan urrainn dha a h-uile duine ionnsachadh Java. Tha seo fhathast aig ìre bun-bheachd, ach tha e soilleir gur e an ceum an tè cheart.

Agus tha an dàrna adhbhar mar a tha san dealbh gu h-ìosal:

E-Dobavki - seirbheis lìn airson a bhith a’ lorg cuir-ris bìdh ann an Java agus Spring Boot, air a sgrìobhadh leis na h-oileanaich agam

Gu tric bidh daoine a’ smaoineachadh gu bheil prògramadh mu dheidhinn a bhith a’ sgrìobhadh tòrr teacsa agus a’ faighinn tòrr airgid air a shon. Coltach ri sgrìobhadair-copaidh, dìreach barrachd airgid.

Tha an fhìrinn beagan eadar-dhealaichte. Tòrr de chòd àbhaisteach, biastagan neo-fhaicsinneach, pròiseas ionnsachaidh seasmhach. Tha e inntinneach, ach chan ann airson a h-uile duine.

Is iad seo na staitistig. An toiseach chuir e dragh orm, bha mi a’ smaoineachadh gur dòcha gu robh mi a’ dèanamh rudeigin ceàrr. A-nis tha mi a’ tuigsinn gu bheil na staitistig timcheall air an aon rud airson a’ mhòr-chuid de chùrsaichean. A-nis chan eil dragh orm mu dheidhinn, ach teagaisg dhomh na daoine sin aig a bheil ùidh ann.

Beachd seirbheis

Aon uair ‘s gu robh oileanaich air a’ chùrsa gu lèir a chrìochnachadh, bha an t-àm ann am pròiseact mu dheireadh a sgrìobhadh. Bha diofar bheachdan ann. Thairg iad duilleagan ToDo, pròiseactan stiùireadh pròiseict, agus rudeigin eile.

Bha mi airson rudeigin sìmplidh ach feumail a dhèanamh. Bha an slat-tomhais agam sìmplidh - am b’ urrainn dha mo charaidean agus mise a chleachdadh. Bha seirbheis lìn airson a bhith a’ lorg stuthan bìdh a’ coinneachadh ris na riatanasan sin.

Tha am beachd sìmplidh. Nuair a cheannaicheas tu toradh ann an stòr, chì thu seòrsa de chur-ris E anns an sgrìobhadh. Chan eil e soilleir bhon chòd dè cho cunnartach ‘s a tha e no nach eil (agus tha cuir-ris cunnartach ann cuideachd a tha toirmisgte ann an iomadh dùthaich).

Bidh thu a’ fosgladh an làrach-lìn, cuir a-steach ainm an leas-phàipear (àireamh, aon de na h-ainmean eile), agus faigh geàrr-chunntas air an leasachan:

E-Dobavki - seirbheis lìn airson a bhith a’ lorg cuir-ris bìdh ann an Java agus Spring Boot, air a sgrìobhadh leis na h-oileanaich agam

Tha pròiseactan coltach ris. Faodaidh tu cuideachd dìreach an tuilleadan a thaipeadh a-steach do Google, ged nach eil e an-còmhnaidh a’ sealltainn an fhiosrachaidh gu ceart.

Ach leis gu bheil am pròiseact foghlaim, cha do chuir na duilgheadasan gu h-àrd stad oirnn :)

Реализация

Sgrìobh a h-uile duine ann an Java, còd stòr a’ phròiseict air Github.

Bha 7 againn, mise nam measg. Rinn a h-uile duine iarrtas tarraing, agus ghabh mise, no neach eile bhon bhuidheann, ris an iarrtas tarraing seo.

Thug buileachadh a 'phròiseict timcheall air mìos - bho bhith a' cur an cèill a 'bheachd chun na stàite a chì thu a-nis.

A’ parsadh stuthan cur-ris

B’ e a’ chiad rud a rinn aon de na h-oileanaich, a bharrachd air cruthachadh bunaiteach frèam timcheall an stòr-dàta (buidhnean, stòran, msaa), a bhith a’ parsadh tuilleadan bho làrach fiosrachaidh a bha ann mu thràth.

Bha seo riatanach gus na puingean a bha air fhàgail a dhearbhadh. Chan eil feum air còd a bharrachd gus an stòr-dàta a lìonadh. Às deidh dhuinn grunn stuthan cur-ris a pharsadh gu sgiobalta, b’ urrainn dhuinn tuilleadh deuchainn a dhèanamh air an UI, òrdachadh agus sìoladh.

Leigidh Spring Boot leat grunn phròifil a chruthachadh. Is e faidhle le roghainnean a th’ ann am pròifil.

Airson an àrainneachd dev, chleachd sinn pròifil le H2 DBMS ionadail agus am port àbhaisteach HTTP (8080). Mar sin, a h-uile uair a chaidh an tagradh a chuir air bhog, chaidh an stòr-dàta a ghlanadh. B' e am parser sa chùis seo an rud a shàbhail sinn.

Lorg agus sìoladh

Is e puing cudromach sgrùdadh agus sìoladh. Feumaidh neach ann an stòr briogadh gu sgiobalta air còd an leasachaidh, no aon de na h-ainmean, agus an toradh fhaighinn.

Mar sin, tha grunn raointean aig an eintiteas Additive. Is e seo an còd cuir-ris, ainmean eile, tuairisgeul. Tha an sgrùdadh air a dhèanamh a’ cleachdadh Like anns a h-uile raon aig an aon àm. Agus ma thèid thu a-steach [123] no [amaranth], gheibh thu an aon toradh.

Rinn sinn seo uile stèidhichte air Sònrachaidhean. Is e seo pàirt den Earrach a leigeas leat cunntas a thoirt air suidheachaidhean sgrùdaidh bunaiteach (mar cuid de raon, mar eisimpleir), agus an uairsin na cumhaichean sin (OR no AND) a chur còmhla.

Às deidh dhut dusan sònrachadh a sgrìobhadh, faodaidh tu ceistean iom-fhillte faighneachd mar “a h-uile cuir-ris dathte cunnartach aig a bheil am facal [dearg] san tuairisgeul.”

A thaobh a bhith ag obair le stòr-dàta an Earraich, tha e gu math goireasach dhomh. Tha seo gu sònraichte fìor nuair a bhios tu ag obair le ceistean iom-fhillte. Tha mi a’ tuigsinn gu bheil a chosgais fhèin aig seo, agus ruithidh ceist SQL le làimh agus làn-leasaichte nas luaithe.

Ach bidh mi cuideachd a’ cumail ris a’ bheachd nach eil feum air a h-uile càil a bharrachadh ro-làimh. Feumaidh a 'chiad dreach tòiseachadh, obrachadh, agus leigeil le pàirtean fa leth a chur an àite. Agus ma tha luchd ann, feumar na pàirtean fa leth sin ath-sgrìobhadh.

tèarainteachd

Tha e sìmplidh. Tha luchd-cleachdaidh ann leis an dreuchd ADMIN - faodaidh iad cuir-ris a dheasachadh, an sguabadh às, agus feadhainn ùra a chur ris.

Agus tha luchd-cleachdaidh eile ann (clàraichte no nach eil). Chan urrainn dhaibh ach sùil a thoirt air liosta nan stuthan cur-ris agus lorg an fheadhainn a tha a dhìth orra.

Chaidh Tèarainteachd an Earraich a chleachdadh gus còraichean a sgaradh. Tha dàta luchd-cleachdaidh air a stòradh ann an stòr-dàta.

Faodaidh luchd-cleachdaidh clàradh. A-nis chan eil e a 'toirt rud sam bith. Ma chumas oileanaich orra a’ leasachadh na seirbheis agus a’ toirt a-steach cuid de ghnìomhan pearsanaichte, bidh clàradh feumail.

Freagarrach agus Bootstrap

Is e an ath phuing sùbailteachd. A thaobh ar seirbheis (co-dhiù mar a chunnaic sinn e), bidh a’ mhòr-chuid de luchd-cleachdaidh le fònaichean-làimhe. Agus feumaidh tu an leasachan fhaicinn gu sgiobalta bhon fhòn-làimhe agad.

Gus nach bi sinn a’ fulang le CSS, ghabh sinn Bootstrap. Saor, sunndach, agus a’ coimhead math.

Chan urrainn dhomh an eadar-aghaidh foirfe a ghairm. Tha a’ phrìomh dhuilleag eadhon nas lugha, agus tha an duilleag airson tuairisgeul mionaideach air a’ chur-ris cumhang; air fònaichean-làimhe feumar a dhèanamh nas fharsainge.

Chan urrainn dhomh ach a ràdh gun do dh’ fheuch mi ri casg a chuir air an obair cho beag ’s a b’ urrainn dhomh. Is e pròiseact oileanach a tha seo fhathast. Agus gu dearbh, bidh e comasach dha na balaich amannan mar sin a cheartachadh nas fhaide air adhart.

Geàrr-chunntas de SEO Optimization

Leis gu bheil mi air a bhith gu dlùth an sàs ann an làraich-lìn agus a h-uile càil co-cheangailte ri SEO airson còrr is dà bhliadhna, cha b 'urrainn dhomh pròiseact a leigeil ma sgaoil às aonais co-dhiù optimization SEO bunaiteach.

Gu dearbh, rinn mi ginealach teamplaid de thiotal is tuairisgeul airson gach tuilleadan. Tha an URL cha mhòr CNC, ged a dh'fhaodar a dhèanamh nas giorra.

Chuir mi cuideachd cunntairean frithealaidh. Chuir sinn an làrach ri Yandex Webmaster agus Google Search Console gus sùil a chumail air rabhaidhean bho einnseanan luirg.

Chan eil e gu leòr. Feumaidh tu cuideachd robots.txt agus sitemap.xml a chuir ris airson làn chlàr-amais. Ach a-rithist, is e pròiseact oileanach a tha seo. Innsidh mi dhaibh dè a dh'fheumar a dhèanamh, agus ma tha iad ag iarraidh, nì iad e.

Feumaidh tu teisteanas SSL a cheangal. Obraichidh an Let's Encrypt an-asgaidh cuideachd. Rinn mi seo airson Spring Boot. Chan eil e doirbh a dhèanamh, agus tha earbsa an PS ag àrdachadh.

Dè an ath cheum dhan phròiseact?

An uairsin, gu dearbh, tha an roghainn an urra ris na balaich. Bha beachd tùsail a’ phròiseict cuideachd a’ toirt a-steach stòr-dàta de thoraidhean le ceanglaichean gu stuthan cur-ris.

Cuir a-steach "Snickers" agus faic dè na stuthan beathachaidh a th 'ann.

Fiù 's aig toiseach a' phròiseict, bha fios agam nach biodh bathar sam bith againn :) Mar sin, thòisich sinn dìreach le stuthan cur-ris.

A-nis faodaidh tu toraidhean a chuir ris agus feadhainn a bharrachd a thoirt a-steach. bunan. Mas e stòr-dàta farsaing a th’ ann, bidh luchd-cleachdaidh ann.

Cleachdadh

Chaidh am pròiseact a chleachdadh air VPS, Aruba Cloud. Is e seo an VPS as saoire a lorg sinn. Tha mi air a bhith a’ cleachdadh an t-solaraiche seo airson còrr air bliadhna airson na pròiseactan agam, agus tha mi air leth toilichte leis.

Feartan VPS: 1 GB RAM, 1 CPU (chan eil fios agam mun tricead), 20 GB SSD. Airson ar pròiseact tha seo gu leòr.

Tha am pròiseact air a thogail a’ cleachdadh a’ phacaid àbhaisteach mvn glan. Is e an toradh jar geir - faidhle so-ghnìomhaichte leis a h-uile eisimeileachd.

Gus seo uile a dhèanamh fèin-ghluasadach beagan, sgrìobh mi sgriobt bash no dhà.

Bidh a 'chiad sgriobt a' sguabadh às an t-seann fhaidhle jar agus a 'togail fear ùr.

Bidh an dàrna sgriobt a’ cur air bhog am jar cruinn, a’ toirt seachad ainm a’ phròifil a tha a dhìth air. Tha fiosrachadh ceangail stòr-dàta sa phròifil seo.

DB - MySQL air an aon VPS.

Tha ath-thòiseachadh iomlan a’ phròiseict a’ toirt a-steach:

  • log a-steach gu VPS tro SSH
  • Luchdaich a-nuas an tionndadh as ùire de git
  • ruith local-jar.sh
  • tagradh ruith a mharbhadh
  • ruith launch-production.sh

Bheir am modh-obrach seo trì mionaidean. Tha e coltach gur e roghainn snasail a tha seo dhomh airson pròiseact cho beag.

Duilgheadasan

B’ e nàdar eagrachaidh na prìomh dhuilgheadasan ann a bhith a’ cruthachadh a’ phròiseict.

Tha buidheann de dhaoine ann a tha coltach gu bheil eòlas aca air prògramadh, ach nach eil glè mhath. Tha fios aca air rudeigin, ach chan urrainn dhaibh fhathast a chuir an sàs. Agus a-nis feumaidh iad am pròiseact a chrìochnachadh ann am mìos.

Chomharraich mi stiùiriche sgioba cùmhnantail sa bhuidheann seo. Chùm e Google Doc le liosta ghnìomhan, sgaoil e gnìomhan, agus chuir e smachd air an gabhail riutha. Ghabh e cuideachd ri iarrtasan tarraing.

Dh’iarr mi cuideachd air na h-oileanaich aithisg ghoirid a sgrìobhadh gach feasgar air an obair a rinn iad air a’ phròiseact. Mura do rinn thu dad, ceart gu leòr, dìreach sgrìobh “Cha do rinn thu dad.” Is e deagh chleachdadh a tha seo agus bheir e beagan ùine dhut. Cha do lean a h-uile duine an riaghailt seo, gu mì-fhortanach.

Bha adhbhar a 'ghluasaid seo gu lèir sìmplidh. Cruthaich sgioba, eadhon ged a bhiodh e dìreach airson ùine ghoirid, airson obrachadh còmhla.

Bha mi airson gum biodh na balaich a’ faireachdainn gu robh an obair aca cudromach. Tuig nach sgrìobh iad còd spherical ann am falamh. Agus ’s e na tha iad a’ dèanamh còmhla ri pròiseact a chleachdas daoine an uairsin.

Bha a’ chiad seachdain no dhà na chruinneachadh. Chaidh aonadan agus geallaidhean beaga a dhèanamh gu slaodach. Beag air bheag dhùisg mi suas iad, agus dh'fhàs an obair na bu spòrsail. Dh’ fhàs conaltradh sa chat na bu bheothaiche, thabhainn oileanaich na rudan a bharrachd aca.

Tha mi a’ creidsinn gun deach an amas a choileanadh. Tha am pròiseact deiseil, fhuair na balaich beagan eòlais ag obair ann an sgioba. Tha toradh faicsinneach, faicsinneach ann a dh'fhaodar a shealltainn do charaidean agus a leasachadh nas fhaide.

toraidhean

Tha ionnsachadh inntinneach.

Às deidh gach clas thàinig mi air ais le faireachdainn tòcail. Bidh mi a’ feuchainn ri gach paidhir a dhèanamh gun samhail agus nas urrainn dhomh de eòlas a thoirt seachad.

Tha e math nuair a ruigeas a’ bhuidheann a tha mi a’ teagasg na cuairtean deireannach. Tha e gu sònraichte fionnar nuair a bhios balaich a’ sgrìobhadh “Fhuair mi obair, tha a h-uile dad gu math, tapadh leat.” Eadhon ged a tha e òg, eadhon ged nach e an t-airgead as motha a th’ ann an toiseach. Ach is e an rud as cudromaiche gun do ghabh iad ceum a dh'ionnsaigh am miann, agus gun do shoirbhich leotha.

Ged a thionndaidh an artaigil gu bhith gu math voluminous, gu cinnteach cha robh e comasach na puingean gu lèir a chòmhdach. Mar sin, sgrìobh do cheistean anns na beachdan.

Source: www.habr.com

Cuir beachd ann