E-Dobavki - yon sèvis entènèt pou chèche aditif manje nan Java ak Spring Boot, ekri pa elèv mwen yo

Entwodiksyon

Sa te rive ke pou prèske de dènye ane yo mwen te anseye pwogram nan youn nan IT lekòl yo nan Kyiv. Mwen te kòmanse fè sa jis pou plezi. Yon fwa mwen te ekri yon blog pwogramasyon, Lè sa a, mwen te abandone li. Men, dezi a di bagay itil nan moun ki enterese pa te ale.

Lang prensipal mwen an se Java. Mwen te ekri jwèt pou telefòn mobil yo, lojisyèl pou kominikasyon radyo, ak plizyè sèvis entènèt sou li. Apre sa, mwen anseye Java.

Isit la mwen vle rakonte istwa a nan fòmasyon an nan dènye gwoup mwen an. Ki jan yo te ale nan kòmanse fòmasyon nan ekri yon sèvis entènèt k ap travay. Yon sèvis entènèt itil pou jwenn sipleman nitrisyonèl. Gratis, pa gen piblisite, enskripsyon ak SMS.

Sèvis nan tèt li isit la - E-Dobavki.com.

E-Dobavki - yon sèvis entènèt pou chèche aditif manje nan Java ak Spring Boot, ekri pa elèv mwen yo

Pwojè a se edikasyon epi li pa gen okenn piblisite. Jan mwen konprann de piblikasyon sa a, ou ka bay lyen ki mennen nan pwojè sa yo.

Anvan ou dekri pwojè a li menm, mwen pral di w yon ti kras sou pwosesis aprantisaj gwoup la; san sa, foto a pral enkonplè.

9 mwa fòmasyon

Nan lekòl kote m ap anseye a, kou Java a divize an 2 pati. An total, kou a pran apeprè 9 mwa, ak tout repo ( jou ferye Nouvèl Ane a, tan pou ekri pwojè entèmedyè).

Premye pati a entwodui elèv yo nan konsèp debaz yo nan lang. Varyab, metòd, baz POO ak tout bagay sa yo.

Dezyèm pati nan kou a bay elèv la deja plis oswa mwens konprann ki jan yo ekri nan Java, epi yo ka bay li yon pil teknoloji "granmoun". Li tout kòmanse ak SQL, Lè sa a, JDBC, Hibernate. Lè sa a, HTTP, servlets. Next se Spring, yon ti kras sou git ak maven. Epi elèv yo ekri pwojè final yo.

Tout fòmasyon divize an modil. Mwen te fè kou de fwa pa semèn. Dire a nan yon leson se de èdtan.

Apwòch mwen pou aprann

Mwen lage 5 gwoup. Li sanble anpil pou de ane, men mwen prèske toujou dirije 2 gwoup nan paralèl.

Mwen te eseye diferan apwòch.

Premye opsyon a se ke yo resevwa yon pè pou yon prezantasyon ak yon teyori. Dezyèm pè a se pi bon kalite pratik. Apwòch sa a yon jan kanmenm te travay, men li pa t 'trè efikas, nan opinyon mwen.

Dezyèm opsyon mwen te vin jwenn e mwen ap travay kounye a se pa konsakre yon koup antye nan teyori. Olye de sa, mwen melanje seksyon kout nan teyori pou 5-10 minit, epi imedyatman ranfòse yo ak egzanp pratik. Apwòch sa a travay pi byen.

Si gen ase tan, mwen rele elèv yo lakay mwen, mwen chita yo sou laptop mwen an, epi yo fè egzanp pratik tèt yo. Li travay anpil, men malerezman li pran anpil tan.

Se pa tout moun ki rive nan fen

Yon revelasyon pou mwen se lefèt ke pa tout gwoup la rive nan fen kou a.

Dapre obsèvasyon mwen yo, sèlman mwatye nan elèv yo ekri pwojè final la. Pifò nan yo elimine pandan premye pati kou a. Ak moun ki te rive nan dezyèm pati a anjeneral pa tonbe.

Yo kite pou plizyè rezon.

Premye a se konpleksite. Kèlkeswa sa yo di, Java se pa lang ki pi senp. Pou ekri menm pwogram ki pi senp lan, ou bezwen konprann konsèp yon klas, yon metòd. Epi konprann poukisa ou bezwen ekri piblik static void prensipal (String[] arg) Genyen kèk lòt konsèp pou w konprann.

Konpare sa a ak Turbo Pascal, ki se sa anpil moun te kòmanse avèk mwen, tankou mwen:

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

Dapre mwen konnen, lekòl la pral rezoud pwoblèm sa a nan entwodwi tès adisyonèl. Koulye a, se pa tout moun ki ka etidye Java. Sa a se toujou nan etap nan konsèp, men etap la se klèman youn nan dwa.

Ak dezyèm rezon an se tankou nan foto ki anba a:

E-Dobavki - yon sèvis entènèt pou chèche aditif manje nan Java ak Spring Boot, ekri pa elèv mwen yo

Moun souvan panse ke pwogramasyon se sou tape yon anpil nan tèks ak jwenn anpil lajan pou li. Tankou yon copywriter, sèlman plis lajan.

Reyalite a se yon ti kras diferan. Yon anpil nan kòd woutin, pinèz evidan, yon pwosesis aprantisaj konstan. Li enteresan, men se pa pou tout moun.

Sa yo se estatistik yo. Okòmansman li te fache m ', mwen te panse ke petèt mwen te fè yon bagay ki mal. Kounye a mwen konprann ke estatistik yo apeprè menm pou pifò kou. Koulye a, mwen pa enkyete sou li, men anseye moun sa yo ki enterese nan li.

Lide sèvis

Yon fwa elèv yo te fini tout kou a, li te tan yo ekri pwojè final la. Te gen lide diferan. Yo ofri dra ToDo, pwojè jesyon pwojè, ak yon lòt bagay.

Mwen te vle fè yon bagay senp men itil. Kritè mwen an te senp - si wi ou non zanmi m 'ak mwen te kapab itilize li. Yon sèvis entènèt pou chèche aditif manje satisfè kondisyon sa yo.

Lide a se senp. Lè ou achte yon pwodwi nan yon magazen, ou wè kèk kalite E-aditif nan konpozisyon an. Li pa klè nan kòd la ki jan li danjere oswa ou pa (e gen tou aditif danjere ki entèdi nan anpil peyi).

Ou louvri sit entènèt la, antre non sipleman an (nimewo, youn nan non altènatif yo), epi jwenn yon rezime sipleman an:

E-Dobavki - yon sèvis entènèt pou chèche aditif manje nan Java ak Spring Boot, ekri pa elèv mwen yo

Gen pwojè menm jan an. Ou kapab tou senpleman tape aditif la nan Google, byenke li pa toujou montre enfòmasyon an kòrèkteman.

Men, piske pwojè a se edikasyon, difikilte ki anwo yo pa t anpeche nou :)

Aplikasyon

Tout moun te ekri nan Java, kòd sous pwojè a sou Github.

Te gen 7 nan nou, enkli mwen. Tout moun te fè yon demann rale, epi mwen menm oswa yon lòt moun nan gwoup la, te aksepte demann rale sa a.

Aplikasyon an nan pwojè a te pran apeprè yon mwa - soti nan vwa lide a nan eta a ke ou wè kounye a.

Analiz aditif

Premye bagay youn nan etidyan yo te fè, san konte kreyasyon debaz yon fondasyon alantou baz done a (antite, depo, elatriye), se te analize adisyonèl ki soti nan yon sit enfòmasyon ki egziste deja.

Sa a te nesesè yo teste pwen ki rete yo. Pa gen okenn lòt kòd ki nesesè pou peple baz done a. Èske w gen byen vit analize plizyè aditif, nou te kapab plis teste UI a, klasman, ak filtraj.

Spring Boot pèmèt ou kreye plizyè pwofil. Yon pwofil se yon dosye ki gen paramèt.

Pou anviwònman dev la, nou te itilize yon pwofil ak yon DBMS H2 lokal ak pò HTTP default (8080). Kidonk, chak fwa aplikasyon an te lanse, baz done a te otorize. Analyseur a nan ka sa a se bagay ki te sove nou.

Rechèch ak filtraj

Yon pwen enpòtan se rechèch ak filtraj. Yon moun nan yon magazen dwe byen vit klike sou kòd sipleman an, oswa youn nan non yo, epi jwenn rezilta a.

Se poutèt sa, antite aditif la gen plizyè jaden. Sa a se kòd aditif la, non altènatif, deskripsyon. Rechèch la fèt lè l sèvi avèk Like nan tout jaden an menm tan. Epi si w antre [123] oswa [amaranth], w ap jwenn menm rezilta a.

Nou te fè tout bagay sa yo ki baze sou Espesifikasyon. Sa a se yon pati nan Spring ki pèmèt ou dekri kondisyon rechèch debaz (tankou kèk jaden, pou egzanp), ak Lè sa a, konbine kondisyon sa yo (OSWA oswa AK).

Lè w fin ekri yon douzèn espesifikasyon, ou ka poze kesyon konplèks tankou "tout aditif koloran danjere ki gen mo [wouj] nan deskripsyon an."

An tèm de travay ak baz done Spring, mwen jwenn li trè pratik. Sa a se laverite espesyalman lè w ap travay ak demann konplèks. Mwen konprann ke sa a gen pwòp tèt li yo, ak yon rekèt SQL manyèlman ekri ak optimize ap kouri pi vit.

Men, mwen tou respekte pwen de vi ke pa gen okenn nesesite pou optimize tout bagay davans. Premye vèsyon an dwe kòmanse, travay, epi pèmèt ranplasman pati endividyèl yo. Men, si gen yon chaj, pati endividyèl sa yo bezwen reekri.

sekirite

Li senp. Gen itilizatè ki gen wòl ADMIN - yo ka edite adisyon yo, efase yo epi ajoute nouvo.

Epi gen lòt itilizatè (ki anrejistre oswa ou pa). Yo ka sèlman browse lis aditif yo epi chèche sa yo bezwen yo.

Spring Sekirite te itilize pou separe dwa. Done itilizatè yo estoke nan yon baz done.

Itilizatè yo ka anrejistre. Kounye a li pa bay anyen. Si elèv yo kontinye devlope sèvis la epi prezante kèk fonksyon pèsonalize, Lè sa a, enskripsyon an ap vin an bon.

Reyaksyon ak Bootstrap

Pwen kap vini an se adaptabilite. Nan ka sèvis nou an (omwen fason nou te wè li), majorite itilizatè yo pral ak telefòn mobil yo. Epi ou bezwen byen vit wè sipleman an nan telefòn mobil ou.

Pou nou pa soufri ak CSS, nou te pran Bootstrap. Bon mache, kè kontan, ak sanble desan.

Mwen pa ka rele koòdone ideyal la. Paj prensipal la se menm mwens, ak paj la pou yon deskripsyon detaye aditif la se etwat; sou telefòn mobil li bezwen fè pi laj.

Mwen ka sèlman di ke mwen te eseye entèfere ak travay la pi piti ke posib. Sa a se toujou yon pwojè etidyan. Ak nan kou, mesye yo pral kapab korije moman sa yo pita.

Yon minit nan optimize SEO

Depi mwen te patisipe sere nan sit entènèt ak tout bagay ki gen rapò ak SEO pou plis pase de ane, mwen pa t 'kapab lage yon pwojè san omwen debaz optimize SEO.

An reyalite, mwen te fè yon jenerasyon modèl Tit ak Deskripsyon pou chak ajoute. URL la se prèske CNC, byenke li ka fè pi kout.

Mwen te ajoute tou kontè prezans yo. Te ajoute sit la nan Yandex Webmaster ak Google Search Console pou kontwole avètisman motè rechèch yo.

Li pa ase. Ou bezwen tou ajoute robots.txt ak sitemap.xml pou endèks konplè. Men ankò, sa a se yon pwojè etidyan. Mwen pral di yo sa yo dwe fè, epi si yo vle, yo pral fè li.

Ou bezwen tache yon sètifika SSL. Gratis Let's Encrypt la pral travay tou. Mwen te fè sa pou Spring Boot. Li pa difisil pou fè, ak konfyans nan PS la ogmante.

Ki sa kap vini pou pwojè a?

Lè sa a, an reyalite, chwa a se jiska mesye yo. Lide orijinal la nan pwojè a te gen ladan tou yon baz done nan pwodwi ak lyen ki mennen nan aditif.

Antre nan "Snickers" epi wè ki aditif nitrisyonèl li genyen.

Menm nan kòmansman pwojè a, mwen te konnen ke nou pa ta gen okenn pwodwi :) Se poutèt sa, nou te kòmanse sèlman ak aditif.

Koulye a, ou ka ajoute pwodwi epi prezante lòt. pen. Si li se yon baz done vaste, pral gen itilizatè yo.

Deplwaman

Pwojè a te deplwaye sou VPS, Aruba Cloud. Sa a se pi bon mache VPS nou te kapab jwenn. Mwen te itilize founisè sa a pou plis pase yon ane pou pwojè mwen yo, e mwen trè kontan ak li.

Karakteristik VPS: 1 GB RAM, 1 CPU (mwen pa konnen sou frekans lan), 20 GB SSD. Pou pwojè nou an sa ase.

Pwojè a konstwi lè l sèvi avèk pakè mvn clean abityèl la. Rezilta a se yon bokal grès - yon dosye ègzèkutabl ak tout depandans.

Pou otomatize tout bagay sa yo yon ti kras, mwen te ekri yon koup nan scripts bash.

Premye script la efase ansyen fichye bokal la epi li kreye yon nouvo.

Dezyèm script la lanse bokal la reyini, pase li non pwofil ki nesesè yo. Pwofil sa a gen enfòmasyon koneksyon baz done.

DB - MySQL sou menm VPS la.

Rekòmanse total pwojè a gen ladan:

  • konekte nan VPS atravè SSH
  • telechaje dènye chanjman git yo
  • kouri lokal-jar.sh
  • touye aplikasyon kouri
  • kouri lansman-production.sh

Pwosedi sa a pran twa minit. Sa a sanble tankou yon chwa entelijan pou mwen pou yon ti pwojè konsa.

Difikilte

Difikilte prensipal yo nan kreye pwojè a te nan yon nati òganizasyonèl.

Gen yon gwoup moun ki sanble konnen ki jan yo pwograme, men pa trè byen. Yo konnen yon bagay, men yo toujou pa ka vrèman aplike li. Epi, koulye a yo bezwen fini pwojè a nan yon mwa.

Mwen idantifye yon lidè ekip kondisyonèl nan gwoup sa a. Li te kenbe yon Google Doc ak yon lis travay, distribye travay, ak kontwole akseptasyon yo. Li te aksepte tou demann rale.

Mwen te mande elèv yo tou pou yo ekri yon ti rapò chak aswè sou travay yo te fè sou pwojè a. Si ou pa t 'fè anyen, ok, jis ekri "pa fè anyen." Sa a se gwo pratik ak vin ou yon ti kras tansyon. Se pa tout moun ki te swiv règ sa a, malerezman.

Objektif tout mouvman sa a te senp. Fòme yon ekip, menm si sèlman pou yon ti tan, pou travay ansanm.

Mwen te vle mesye yo santi ke travay yo te enpòtan. Konprann ke yo pa ekri kòd esferik nan yon vakyòm. Ak sa yo ap fè ansanm se yon pwojè ke moun pral Lè sa a, sèvi ak.

Premye semèn oswa de se te yon ogmantasyon. Antite ak ti komite yo te fè paresseux. Ti kras pa ti kras mwen te brase yo, ak travay la te vin pi plezi. Kominikasyon nan chat la te vin pi vivan, elèv yo ofri ajoute yo.

Mwen kwè ke objektif la te reyalize. Pwojè a fini, mesye yo fè yon ti eksperyans travay nan ekip. Gen yon rezilta vizib, byen mèb ki ka montre zanmi ak plis devlope.

Jwenn

Aprantisaj se enteresan.

Apre chak klas mwen te retounen emosyonèlman ajite. Mwen eseye fè chak pè inik epi transmèt konesans otank posib.

Li bèl lè gwoup mwen anseye a rive nan final la. Li espesyalman fre lè mesye yo ekri "Mwen te jwenn yon travay, tout bagay anfòm, mèsi." Menm si se yon jinyò, menm si se pa pi gwo lajan an premye. Men, bagay ki pi enpòtan an se ke yo te fè yon etap nan direksyon dezi yo, epi yo te reyisi.

Malgre ke atik la te tounen byen volumineuz, li sètènman pa posib yo kouvri tout pwen yo. Se poutèt sa, ekri kesyon ou yo nan kòmantè yo.

Sous: www.habr.com

Add nouvo kòmantè