E-Dobavki - usa ka serbisyo sa web alang sa pagpangita sa mga additives sa pagkaon sa Java ug Spring Boot, nga gisulat sa akong mga estudyante

Pasiuna

Nahitabo kini nga sa miaging hapit duha ka tuig nagtudlo ako sa programming sa usa sa mga eskuylahan sa IT sa Kyiv. Nagsugod ko sa pagbuhat niini Just For Fun. Nagsulat ako usa ka blog sa pagprograma, dayon gibiyaan nako kini. Apan ang tinguha sa pagsulti sa mapuslanong mga butang ngadto sa mga interesado wala mawala.

Ang akong nag-unang pinulongan mao ang Java. Nagsulat kog mga dula para sa mga mobile phone, software para sa komunikasyon sa radyo, ug lain-laing serbisyo sa web niini. Ug nagtudlo ko sa Java.

Dinhi gusto nako isulti ang istorya sa pagbansay sa akong katapusan nga grupo. Giunsa nila pag-adto gikan sa pagsugod sa pagbansay hangtod sa pagsulat sa usa ka nagtrabaho nga serbisyo sa web. Usa ka mapuslanon nga serbisyo sa web alang sa pagpangita sa mga suplemento sa nutrisyon. Libre, walay advertising, registration ug SMS.

Ang serbisyo mismo ania dinhi - E-Dobavki.com.

E-Dobavki - usa ka serbisyo sa web alang sa pagpangita sa mga additives sa pagkaon sa Java ug Spring Boot, nga gisulat sa akong mga estudyante

Ang proyekto kay pang-edukasyon ug walay bisan unsa nga advertising. Sa akong nasabtan gikan sa niini nga publikasyon, makahatag ka ug mga link sa maong mga proyekto.

Sa dili pa ihulagway ang proyekto mismo, isulti ko kanimo ang gamay bahin sa proseso sa pagkat-on sa grupo; kung wala kini, ang litrato dili kompleto.

9 ka bulan nga pagbansay

Sa eskwelahan nga akong gitudloan, ang kurso sa Java gibahin sa 2 ka bahin. Sa kinatibuk-an, ang kurso nagkinahanglan og gibana-bana nga 9 ka bulan, uban sa tanan nga mga pahulay (mga holiday sa Bag-ong Tuig, panahon sa pagsulat sa mga intermediate nga proyekto).

Ang unang bahin nagpaila sa mga estudyante sa batakang mga konsepto sa pinulongan. Mga variable, pamaagi, sukaranan sa OOP ug tanan nga butang.

Ang ikaduha nga bahin sa kurso naghatag nga ang estudyante mas daghan o dili kaayo nakasabut kung giunsa pagsulat sa Java, ug mahimo siyang hatagan usa ka "hamtong" nga stack sa teknolohiya. Nagsugod kini tanan sa SQL, unya JDBC, Hibernate. Unya HTTP, servlets. Sunod mao ang Spring, gamay bahin sa git ug maven. Ug ang mga estudyante nagsulat sa katapusang mga proyekto.

Ang tanan nga pagbansay gibahin sa mga module. Nagdumala ako mga klase kaduha sa usa ka semana. Ang gidugayon sa usa ka leksyon duha ka oras.

Ang akong pamaagi sa pagkat-on

Gipagawas nako ang 5 ka grupo. Morag daghan kini sulod sa duha ka tuig, apan halos kanunay kong nanguna sa 2 ka grupo nga magkaparehas.

Gisulayan nako ang lainlaing mga pamaagi.

Ang una nga kapilian mao nga ang usa ka pares gigahin alang sa usa ka presentasyon nga adunay usa ka teorya. Ang ikaduha nga pares lunsay nga praktis. Kini nga pamaagi sa usa ka paagi nagtrabaho, apan kini dili kaayo epektibo, sa akong opinyon.

Ang ikaduha nga kapilian nga akong naabut ug nga akong gitrabaho karon mao ang dili paggahin sa usa ka tibuuk nga magtiayon sa teorya. Hinuon, gisagol nako ang mubu nga mga seksyon sa teorya sa 5-10 minuto, ug gipalig-on dayon kini sa praktikal nga mga pananglitan. Kini nga pamaagi mas maayo.

Kung adunay igo nga oras, tawagan nako ang mga estudyante sa akong lugar, palingkod sila sa akong laptop, ug sila mismo ang naghimog praktikal nga mga ehemplo. Maayo kini nga pagtrabaho, apan sa kasubo nagkinahanglan kini og daghang oras.

Dili tanan makahimo niini hangtod sa katapusan

Usa ka pagpadayag alang kanako mao ang kamatuoran nga dili ang tibuok grupo makaabot sa katapusan sa kurso.

Sumala sa akong obserbasyon, katunga lang sa mga estudyante ang nagsulat sa kataposang proyekto. Kadaghanan kanila giwagtang sa unang bahin sa kurso. Ug kadtong nakaabot sa ikaduhang bahin kasagaran dili mahulog.

Mibiya sila tungod sa lainlaing mga hinungdan.

Ang una mao ang pagkakomplikado. Bisan unsa pa ang ilang isulti, ang Java dili ang pinakasimple nga pinulongan. Aron masulat bisan ang pinakasimple nga programa, kinahanglan nimo nga masabtan ang konsepto sa usa ka klase, usa ka pamaagi. Ug aron masabtan kung ngano nga kinahanglan nimo isulat public static void main(String[] arg) Adunay pipila pa nga mga konsepto nga masabtan.

Itandi kini sa Turbo Pascal, nga gisugdan sa daghang mga tawo, lakip ako:

begin
    writeln("ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°");
end.

Sa akong nahibal-an, ang eskuylahan masulbad kini nga problema pinaagi sa pagpaila sa dugang nga pagsulay. Karon dili tanan makatuon sa Java. Anaa pa kini sa yugto sa konsepto, apan ang lakang klaro nga husto.

Ug ang ikaduhang rason sama sa hulagway sa ubos:

E-Dobavki - usa ka serbisyo sa web alang sa pagpangita sa mga additives sa pagkaon sa Java ug Spring Boot, nga gisulat sa akong mga estudyante

Ang mga tawo kanunay nga naghunahuna nga ang pagprograma bahin sa pag-type sa daghang teksto ug pagkuha daghang salapi alang niini. Sama sa usa ka copywriter, mas daghang kwarta.

Ang reyalidad kay medyo lahi. Daghang naandan nga code, dili makita nga mga bug, usa ka kanunay nga proseso sa pagkat-on. Kini makapaikag, apan dili alang sa tanan.

Kini ang mga estadistika. Sa una nasuko ko, naghunahuna ko nga basin naa koy gibuhat nga sayop. Karon akong nasabtan nga ang mga estadistika halos parehas sa kadaghanan sa mga kurso. Karon wala ko nabalaka bahin niini, apan tudloi kadtong mga tawo nga interesado niini.

Ideya sa serbisyo

Sa dihang nahuman na sa mga estudyante ang tibuok kurso, panahon na sa pagsulat sa katapusang proyekto. Adunay lain-laing mga ideya. Nagtanyag sila og mga sheet sa ToDo, mga proyekto sa pagdumala sa proyekto, ug uban pa.

Gusto nakong buhaton ang usa ka butang nga yano apan mapuslanon. Simple ra ang akong sukdanan - kung magamit ba nako kini sa akong mga higala. Usa ka serbisyo sa web alang sa pagpangita sa mga additives sa pagkaon nakab-ot kini nga mga kinahanglanon.

Simple ra ang ideya. Kung nagpalit ka usa ka produkto sa usa ka tindahan, nakita nimo ang usa ka matang sa E-additive sa komposisyon. Dili klaro sa code kung unsa kini ka delikado o dili (ug adunay usab mga delikado nga additives nga gidili sa daghang mga nasud).

Giablihan nimo ang website, isulod ang ngalan sa suplemento (numero, usa sa mga alternatibong ngalan), ug pagkuha og summary sa suplemento:

E-Dobavki - usa ka serbisyo sa web alang sa pagpangita sa mga additives sa pagkaon sa Java ug Spring Boot, nga gisulat sa akong mga estudyante

Adunay susama nga mga proyekto. Mahimo usab nimo nga i-type lang ang additive sa Google, bisan kung dili kini kanunay nga ipakita ang kasayuran sa husto.

Apan tungod kay edukasyonal ang proyekto, ang mga kalisdanan sa ibabaw wala makapugong kanamo :)

Pagpatuman

Ang tanan nagsulat sa Java, source code sa proyekto sa Github.

7 mi, apil ko. Ang tanan mihimo og pull request, ug ako, o laing tawo gikan sa grupo, midawat niini nga pull request.

Ang pagpatuman sa proyekto niabot ug mga usa ka bulan - gikan sa pagpahayag sa ideya ngadto sa estado nga imong nakita karon.

Mga additives sa parsing

Ang unang butang nga gibuhat sa usa sa mga estudyante, gawas sa batakang paghimo sa usa ka gambalay sa palibot sa database (mga entidad, mga repositoryo, ug uban pa), mao ang pag-parse sa mga add-on gikan sa usa ka kasamtangan nga site sa impormasyon.

Kinahanglan kini aron masulayan ang nahabilin nga mga punto. Walay dugang nga code ang gikinahanglan aron mapuno ang database. Sa dali nga pag-parse sa daghang mga additives, mahimo pa namon nga masulayan ang UI, paghan-ay, ug pagsala.

Ang Spring Boot nagtugot kanimo sa paghimo og daghang mga profile. Ang usa ka profile usa ka file nga adunay mga setting.

Alang sa dev environment, migamit kami og profile nga adunay lokal nga H2 DBMS ug ang default HTTP port (8080). Busa, sa matag higayon nga ang aplikasyon gilusad, ang database gilimpyohan. Ang parser niini nga kaso mao ang butang nga nagluwas kanamo.

Pangita ug pagsala

Usa ka importante nga punto mao ang pagpangita ug pagsala. Ang usa ka tawo sa usa ka tindahan kinahanglan nga dali nga mag-klik sa code sa suplemento, o usa sa mga ngalan, ug makuha ang resulta.

Busa, ang Additive entity adunay daghang mga natad. Kini ang additive code, alternatibong mga ngalan, paghulagway. Ang pagpangita gihimo gamit ang Like sa tanang field sa samang higayon. Ug kung mosulod ka [123] o [amaranth], makuha nimo ang parehas nga sangputanan.

Gibuhat namo kining tanan base sa Specifications. Kini usa ka bahin sa Tingpamulak nga nagtugot kanimo sa paghulagway sa sukaranang mga kondisyon sa pagpangita (sama sa pipila ka field, pananglitan), ug dayon isagol kini nga mga kondisyon (O o UG).

Sa pagsulat sa usa ka dosena nga mga detalye, mahimo kang mangutana sa komplikado nga mga pangutana sama sa "tanan nga peligroso nga mga additives sa pagkolor nga adunay pulong [pula] sa paghulagway."

Sa mga termino sa pagtrabaho kauban ang database sa Spring, nakit-an nako nga dali kaayo. Tinuod kini labi na kung nagtrabaho uban ang komplikado nga mga pangutana. Nasabtan nako nga kini adunay kaugalingon nga overhead, ug ang usa ka mano-mano nga gisulat ug gi-optimize nga SQL nga pangutana mas paspas nga modagan.

Apan gisunod usab nako ang punto sa panglantaw nga dili kinahanglan nga i-optimize ang tanan nga daan. Ang unang bersyon kinahanglang magsugod, molihok, ug motugot sa pag-ilis sa tagsa-tagsa ka bahin. Ug kung adunay usa ka load, kini nga mga indibidwal nga mga bahin kinahanglan nga isulat pag-usab.

Security

Yano ra. Adunay mga tiggamit nga adunay tahas sa ADMIN - mahimo nilang usbon ang mga pagdugang, pagtangtang niini, ug pagdugang mga bag-o.

Ug adunay ubang mga tiggamit (registered o wala). Mahimo ra nila nga ma-browse ang lista sa mga additives ug pangitaon ang mga kinahanglan nila.

Ang Spring Security gigamit sa pagbulag sa mga katungod. Ang datos sa tiggamit gitipigan sa usa ka database.

Ang mga tiggamit mahimong magparehistro. Karon wala kini naghatag bisan unsa. Kung ang mga estudyante magpadayon sa pagpalambo sa serbisyo ug pagpaila sa pipila ka mga personal nga gimbuhaton, nan ang pagrehistro magamit.

Pagtubag ug Bootstrap

Ang sunod nga punto mao ang adaptability. Sa kaso sa among serbisyo (labing menos sa paagi nga among nakita), ang kadaghanan sa mga tiggamit adunay mga mobile phone. Ug kinahanglan nimo nga dali nga tan-awon ang suplemento gikan sa imong mobile phone.

Aron dili mag-antos sa CSS, gikuha namo ang Bootstrap. Barato, malipayon, ug desente tan-awon.

Dili nako matawag nga sulundon ang interface. Ang panguna nga panid labi ka gamay, ug ang panid alang sa usa ka detalyado nga paghulagway sa additive hiktin; sa mga mobile phone kini kinahanglan nga himuon nga labi ka lapad.

Makaingon lang ko nga gisulayan nako nga manghilabot sa trabaho kutob sa mahimo. Kini usa pa ka proyekto sa estudyante. Ug siyempre, ang mga lalaki makahimo sa pagtul-id sa ingon nga mga higayon sa ulahi.

Usa ka Minuto sa SEO Optimization

Tungod kay ako nalambigit pag-ayo sa mga website ug sa tanang butang nga may kalabutan sa SEO sulod sa kapin sa duha ka tuig, dili ako makapagawas sa usa ka proyekto nga walay bisan usa ka batakang SEO optimization.

Sa tinuud, naghimo ako usa ka template nga henerasyon sa Title ug Deskripsyon alang sa matag add-on. Ang URL hapit CNC, bisan kung kini mahimo nga mas mubo.

Nagdugang sab kog attendance counters. Gidugang ang site sa Yandex Webmaster ug Google Search Console aron mamonitor ang mga pasidaan gikan sa mga search engine.

Dili kini igo. Kinahanglan mo usab nga idugang ang robots.txt ug sitemap.xml alang sa hingpit nga pag-indeks. Apan pag-usab, kini usa ka proyekto sa estudyante. Sultihan ko sila kung unsa ang kinahanglan buhaton, ug kung gusto nila, buhaton nila kini.

Kinahanglan nimo nga maglakip sa usa ka sertipiko sa SSL. Ang libre nga Let's Encrypt magamit usab. Gibuhat nako kini para sa Spring Boot. Dili kini lisud buhaton, ug ang pagsalig sa PS nagdugang.

Unsa ang sunod alang sa proyekto?

Unya, sa tinuud, ang pagpili naa sa mga lalaki. Ang orihinal nga ideya sa proyekto naglakip usab sa usa ka database sa mga produkto nga adunay mga link sa mga additives.

Pagsulod sa "Snickers" ug tan-awa kung unsang mga nutritional additives ang anaa niini.

Bisan sa pagsugod sa proyekto, nahibal-an nako nga wala kami mga produkto :) Busa, nagsugod kami sa mga additives.

Karon mahimo nimong idugang ang mga produkto ug ipaila ang mga dugang. mga tinapay. Kung kini usa ka halapad nga database, adunay mga tiggamit.

Pagpadala

Ang proyekto gi-deploy sa VPS, Aruba Cloud. Kini ang labing barato nga VPS nga among makit-an. Gigamit nako kini nga tighatag sobra sa usa ka tuig alang sa akong mga proyekto, ug nalipay ako niini.

Mga kinaiya sa VPS: 1 GB RAM, 1 CPU (wala ko kahibalo bahin sa frequency), 20 GB SSD. Para sa among proyekto igo na kini.

Ang proyekto gitukod gamit ang naandan nga mvn clean package. Ang resulta usa ka tambok nga garapon - usa ka executable nga file nga adunay tanan nga mga dependency.

Aron ma-automate kining tanan gamay, nagsulat ako og pipila ka mga bash script.

Ang una nga script nagtangtang sa daan nga jar file ug nagtukod og bag-o.

Ang ikaduha nga script naglansad sa gitigum nga garapon, nga gipasa kini sa ngalan sa gikinahanglan nga profile. Kini nga profile adunay impormasyon sa koneksyon sa database.

DB - MySQL sa parehas nga VPS.

Ang kinatibuk-ang pagsugod pag-usab sa proyekto naglakip sa:

  • pag-log in sa VPS pinaagi sa SSH
  • i-download ang pinakabag-o nga mga pagbag-o sa git
  • pagdagan local-jar.sh
  • pagpatay sa nagdagan nga aplikasyon
  • pagdagan launch-production.sh

Kini nga pamaagi nagkinahanglan og tulo ka minuto. Kini daw usa ka maalamon nga pagpili alang kanako alang sa usa ka gamay nga proyekto.

Mga Kalisdanan

Ang nag-unang mga kalisdanan sa paghimo sa proyekto kay sa usa ka organisasyonal nga kinaiya.

Adunay usa ka grupo sa mga tawo nga daw nahibal-an kung unsaon pagprograma, apan dili kaayo maayo. May nahibal-an sila, apan dili gihapon nila kini magamit. Ug karon kinahanglan nila nga makompleto ang proyekto sa usa ka bulan.

Nakaila ko og conditional team leader niini nga grupo. Nagtipig siya og Google Doc nga adunay listahan sa mga buluhaton, nag-apod-apod sa mga buluhaton, ug nagkontrolar sa ilang pagdawat. Gidawat usab niya ang mga hangyo sa pagbitad.

Gihangyo usab nako ang mga estudyante sa pagsulat og mubo nga report kada gabii sa trabaho nga ilang gihimo sa proyekto. Kung wala ka’y nahimo, ok, isulat lang ang β€œwala’y nahimo.” Nindot kini nga praktis ug makapakurat ka. Dili tanan misunod niini nga lagda, sa kasubo.

Ang katuyoan sa tanan niini nga kalihokan yano ra. Paghimo og usa ka team, bisan sa mubo nga panahon, aron magtinabangay.

Gusto nako nga mabati sa mga lalaki nga hinungdanon ang ilang trabaho. Sabta nga wala sila magsulat spherical code sa usa ka vacuum. Ug ang ilang gibuhat nga magkauban usa ka proyekto nga gamiton unya sa mga tawo.

Ang una o duha ka semana usa ka pagtukod. Ang mga entidad ug gagmay nga mga pasalig gihimo nga hinay. Sa hinay-hinay akong gipukaw sila, ug ang trabaho nahimong mas makalingaw. Ang komunikasyon sa chat nahimong mas buhi, ang mga estudyante nagtanyag sa ilang mga pagdugang.

Nagtuo ko nga nakab-ot na ang tumong. Ang proyekto nahuman na, ang mga lalaki adunay gamay nga kasinatian sa pagtrabaho sa usa ka team. Adunay usa ka makita, mahikap nga resulta nga mahimong ipakita sa mga higala ug dugang nga mapalambo.

kaplag

Makapainteres ang pagkat-on.

Human sa matag klase mibalik ko nga nasamok. Gisulayan nako nga himuon ang matag pares nga talagsaon ug ipahayag ang daghang kahibalo kutob sa mahimo.

Nindot kung maabot sa finals ang grupo nga akong gitudloan. Labi na kung ang mga lalaki nagsulat "Naa koy trabaho, maayo ang tanan, salamat." Bisan kung kini usa ka junior, bisan kung kini dili ang pinakadako nga salapi sa una. Apan ang labing importante nga butang mao nga sila mihimo og usa ka lakang ngadto sa ilang mga tinguha, ug sila milampos.

Bisan tuod ang artikulo nahimong daghan kaayo, dili gayod posible nga hisgotan ang tanang punto. Busa, isulat ang imong mga pangutana sa mga komento.

Source: www.habr.com

Idugang sa usa ka comment