E-Dobavki - servizz tal-web għat-tiftix tal-addittivi tal-ikel f'Java u Spring Boot, miktub mill-istudenti tiegħi

Introduzzjoni

Ġara li għal dawn l-aħħar kważi sentejn ilni ngħallem l-ipprogrammar f’waħda mill-iskejjel tal-IT f’Kiev. Bdejt nagħmel dan Just For Fun. Darba ktibt blog tal-ipprogrammar, imbagħad ċedah. Iżda x-xewqa li tgħid affarijiet utli lin-nies interessati ma marretx.

Il-lingwa ewlenija tiegħi hija Java. Jien ktibt logħob għall-mowbajls, softwer għall-komunikazzjoni bir-radju, u diversi servizzi tal-web fuqha. U ngħallem Java.

Hawnhekk irrid nirrakkonta l-istorja tat-taħriġ tal-aħħar grupp tiegħi. Kif marru mill-bidu tat-taħriġ għall-kitba ta’ servizz tal-web li jaħdem. Servizz tal-web utli biex jinstabu supplimenti nutrizzjonali. B'xejn, mingħajr reklamar, reġistrazzjoni u SMS.

Is-servizz innifsu qiegħed hawn - E-Dobavki.com.

E-Dobavki - servizz tal-web għat-tiftix tal-addittivi tal-ikel f'Java u Spring Boot, miktub mill-istudenti tiegħi

Il-proġett huwa edukattiv u ma fih l-ebda reklamar. Kif nifhem minn din il-pubblikazzjoni, tista' tipprovdi links għal proġetti bħal dawn.

Qabel ma niddeskrivi l-proġett innifsu, ngħidlek ftit dwar il-proċess tat-tagħlim tal-grupp; mingħajr dan, l-istampa ma tkunx kompluta.

9 xhur taħriġ

Fl-iskola fejn ngħallem, il-kors tal-Java huwa maqsum f'2 partijiet. B'kollox, il-kors jieħu madwar 9 xhur, bil-pawżi kollha (vaganzi tas-Sena l-Ġdida, ħin biex tikteb proġetti intermedji).

L-ewwel parti tintroduċi lill-istudenti għall-kunċetti bażiċi tal-lingwa. Varjabbli, metodi, punti bażiċi OOP u dak l-għalf kollu.

It-tieni parti tal-kors tipprovdi li l-istudent diġà ftit jew wisq jifhem kif jikteb bil-Java, u jista 'jingħata munzell ta' teknoloġija "adult". Kollox jibda b'SQL, imbagħad JDBC, Hibernate. Imbagħad HTTP, servlets. Li jmiss huwa tar-Rebbiegħa, ftit dwar git u maven. U l-istudenti jiktbu proġetti finali.

It-taħriġ kollu huwa maqsum f'moduli. Jien għamilt klassijiet darbtejn fil-ġimgħa. It-tul ta' lezzjoni waħda huwa sagħtejn.

L-approċċ tiegħi għat-tagħlim

Ħarġejt 5 gruppi. Jidher li ħafna għal sentejn, imma kważi dejjem mexxa 2 gruppi b'mod parallel.

Jiena ppruvajt approċċi differenti.

L-ewwel għażla hija li par wieħed jiġi allokat għal preżentazzjoni b'teorija. It-tieni par huwa prattika pura. Dan l-approċċ b'xi mod ħadem, iżda ma kienx effettiv ħafna, fl-opinjoni tiegħi.

It-tieni għażla li wasalt għaliha u li qed naħdem fuqha issa hija li ma niddedikax koppja sħiħa għat-teorija. Minflok, inħallat sezzjonijiet qosra ta 'teorija għal minuti 5-10, u immedjatament insaħħaħhom b'eżempji prattiċi. Dan l-approċċ jaħdem aħjar.

Jekk ikun hemm biżżejjed ħin, insejjaħ lill-istudenti għandi, noqgħod bilqiegħda fuq il-laptop tiegħi, u huma jagħmlu eżempji prattiċi huma stess. Taħdem tajjeb, iżda sfortunatament tieħu ħafna ħin.

Mhux kulħadd jasal sal-aħħar

Rivelazzjoni għalija kienet il-fatt li mhux il-grupp kollu jasal fl-aħħar tal-kors.

Skont l-osservazzjonijiet tiegħi, nofs l-istudenti biss jiktbu l-proġett finali. Ħafna minnhom huma eliminati matul l-ewwel parti tal-kors. U dawk li jkunu waslu fit-tieni parti normalment ma jaqgħux.

Jitilqu għal diversi raġunijiet.

L-ewwel hija l-kumplessità. Jgħidu x'jgħidu, Java mhix l-aktar lingwa sempliċi. Biex tikteb anke l-aktar programm sempliċi, trid tifhem il-kunċett ta 'klassi, metodu. U biex tifhem għaliex għandek bżonn tikteb public static void main(String[] arg) Hemm ftit aktar kunċetti li wieħed jifhem.

Qabbel dan ma' Turbo Pascal, li huwa dak li bdew bih ħafna nies, inkluż jien:

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

Sa fejn naf jien, l-iskola se ssolvi din il-problema billi tintroduċi testijiet addizzjonali. Issa mhux kulħadd jista 'jistudja Java. Dan għadu fl-istadju tal-kunċett, iżda l-pass huwa b'mod ċar dak it-tajjeb.

U t-tieni raġuni hija bħal fl-istampa hawn taħt:

E-Dobavki - servizz tal-web għat-tiftix tal-addittivi tal-ikel f'Java u Spring Boot, miktub mill-istudenti tiegħi

In-nies spiss jaħsbu li l-ipprogrammar huwa dwar ittajpjar ta 'ħafna test u jġib ħafna flus għaliha. Bħal copywriter, biss aktar flus.

Ir-realtà hija ftit differenti. Ħafna kodiċi ta 'rutina, bugs mhux ovvji, proċess ta' tagħlim kostanti. Huwa interessanti, iżda mhux għal kulħadd.

Dawn huma l-istatistika. Għall-ewwel iddejjaqni, ħsibt li forsi kont qed nagħmel xi ħaġa ħażina. Issa nifhem li l-istatistika hija bejn wieħed u ieħor l-istess għall-biċċa l-kbira tal-korsijiet. Issa ma ninkwietax dwarha, imma ngħallem lil dawk in-nies li huma interessati fiha.

Idea tas-servizz

Ladarba l-istudenti temmew il-kors kollu, kien wasal iż-żmien li jiktbu l-proġett finali. Kien hemm ideat differenti. Huma offrew folji ToDo, proġetti ta 'ġestjoni ta' proġetti, u xi ħaġa oħra.

Ridt nagħmel xi ħaġa sempliċi imma utli. Il-kriterju tiegħi kien sempliċi - jekk jien u sħabi stajniex nużawh. Servizz tal-web għat-tiftix għall-addittivi tal-ikel issodisfa dawn ir-rekwiżiti.

L-idea hija sempliċi. Meta tixtri prodott f'maħżen, tara xi tip ta 'E-addittiv fil-kompożizzjoni. Mhuwiex ċar mill-kodiċi kemm huwa perikoluż jew le (u hemm ukoll addittivi perikolużi li huma pprojbiti f'ħafna pajjiżi).

Int tiftaħ il-websajt, daħħal l-isem tas-suppliment (numru, wieħed mill-ismijiet alternattivi), u tikseb sommarju tas-suppliment:

E-Dobavki - servizz tal-web għat-tiftix tal-addittivi tal-ikel f'Java u Spring Boot, miktub mill-istudenti tiegħi

Hemm proġetti simili. Tista 'wkoll sempliċement ittajpja l-addittiv fil-Google, għalkemm mhux dejjem turi l-informazzjoni b'mod korrett.

Imma peress li l-proġett huwa edukattiv, id-diffikultajiet ta' hawn fuq ma waqqfuna :)

Реализация

Kulħadd kiteb bil-Java, kodiċi tas-sors tal-proġett fuq Github.

Konna 7 minna, inkluż jien. Kulħadd għamel pull request, u jien, jew persuna oħra mill-grupp, aċċettajt din it-talba pull.

L-implimentazzjoni tal-proġett ħadet madwar xahar - mill-vuċi tal-idea għall-istat li qed tara issa.

Parsing addittivi

L-ewwel ħaġa li għamel wieħed mill-istudenti, minbarra l-ħolqien bażiku ta’ qafas madwar id-database (entitajiet, repożitorji, eċċ.), kienet li parsing add-ons minn sit ta’ informazzjoni eżistenti.

Dan kien meħtieġ biex jiġu ttestjati l-punti li fadal. L-ebda kodiċi addizzjonali mhu meħtieġ biex timla d-database. Wara li analizzajna malajr diversi addittivi, nistgħu nittestjaw aktar l-UI, issortjar u filtrazzjoni.

Spring Boot jippermettilek li toħloq profili multipli. Profil huwa fajl b'settings.

Għall-ambjent dev, użajna profil b'DBMS H2 lokali u l-port HTTP default (8080). Għalhekk, kull darba li tnediet l-applikazzjoni, id-database kienet ikklerjata. Il-parser f'dan il-każ kien il-ħaġa li salvatna.

Tiftix u filtrazzjoni

Punt importanti huwa t-tfittxija u l-iffiltrar. Persuna f'maħżen trid tikklikkja malajr fuq il-kodiċi tas-suppliment, jew wieħed mill-ismijiet, u tikseb ir-riżultat.

Għalhekk, l-entità Addittiv għandha diversi oqsma. Dan huwa l-kodiċi tal-addittiv, ismijiet alternattivi, deskrizzjoni. It-tfittxija ssir bl-użu Like fl-oqsma kollha fl-istess ħin. U jekk tidħol [123] jew [amaranth], ikollok l-istess riżultat.

Għamilna dan kollu bbażat fuq Speċifikazzjonijiet. Din hija parti mir-Rebbiegħa li tippermettilek tiddeskrivi kundizzjonijiet bażiċi ta’ tfittxija (bħal xi qasam, pereżempju), u mbagħad tgħaqqad dawn il-kundizzjonijiet (JEW jew U).

Wara li tkun ktibt tużżana speċifikazzjonijiet, tista’ tistaqsi mistoqsijiet kumplessi bħal “l-addittivi koloranti perikolużi kollha li għandhom il-kelma [aħmar] fid-deskrizzjoni.”

F'termini ta 'ħidma mad-database tar-Rebbiegħa, insibha konvenjenti ħafna. Dan huwa veru speċjalment meta taħdem ma 'mistoqsijiet kumplessi. Nifhem li dan għandu l-overhead tiegħu stess, u mistoqsija SQL miktuba manwalment u ottimizzata se taħdem aktar malajr.

Imma nżomm ukoll mal-perspettiva li m'hemmx bżonn li kollox jiġi ottimizzat minn qabel. L-ewwel verżjoni trid tibda, taħdem, u tippermetti s-sostituzzjoni ta 'partijiet individwali. U jekk ikun hemm tagħbija, dawn il-partijiet individwali jeħtieġ li jerġgħu jinkitbu.

Sigurtà

Huwa sempliċi. Hemm utenti bir-rwol ta 'ADMIN - jistgħu jeditjaw żidiet, iħassruhom, u jżidu oħrajn ġodda.

U hemm utenti oħra (reġistrati jew le). Jistgħu biss jibbrawżjaw il-lista ta 'addittivi u jfittxu dawk li jeħtieġu.

Is-Sigurtà tar-Rebbiegħa ntużat biex tissepara d-drittijiet. Id-dejta tal-utent hija maħżuna f'database.

L-utenti jistgħu jirreġistraw. Issa ma tagħti xejn. Jekk l-istudenti jkomplu jiżviluppaw is-servizz u jintroduċu xi funzjonijiet personalizzati, allura r-reġistrazzjoni tkun utli.

Reazzjoni u Bootstrap

Il-punt li jmiss huwa l-adattabilità. Fil-każ tas-servizz tagħna (mill-inqas il-mod kif rajna), il-maġġoranza tal-utenti se jkunu bil-mowbajls. U għandek bżonn tara malajr is-suppliment mill-mowbajl tiegħek.

Sabiex ma nbatux bis-CSS, ħadna Bootstrap. Irħis, ferrieħa, u jidher diċenti.

Ma nistax insejjaħ l-interface ideali. Il-paġna ewlenija hija saħansitra inqas, u l-paġna għal deskrizzjoni dettaljata tal-addittiv hija dejqa; fuq il-mowbajls jeħtieġ li ssir usa '.

Nista’ ngħid biss li ppruvajt nindaħal fix-xogħol mill-inqas possibbli. Dan għadu proġett tal-istudenti. U ovvjament, il-guys ikunu jistgħu jikkoreġu mumenti bħal dawn aktar tard.

Minuta ta 'Ottimizzazzjoni SEO

Peress li kont involut mill-qrib fil-websajts u dak kollu relatat mas-SEO għal aktar minn sentejn, ma stajtx nirrilaxxa proġett mingħajr għall-inqas ottimizzazzjoni bażika tas-SEO.

Fil-fatt, għamilt ġenerazzjoni ta 'mudell ta' Titolu u Deskrizzjoni għal kull add-on. Il-URL huwa kważi CNC, għalkemm jista 'jsir iqsar.

Żidt ukoll il-bankijiet tal-attendenza. Żid is-sit ma' Yandex Webmaster u Google Search Console biex jimmonitorja t-twissijiet mill-magni tat-tiftix.

Mhuwiex biżżejjed. Għandek bżonn ukoll iżżid robots.txt u sitemap.xml għal indiċjar sħiħ. Iżda għal darb'oħra, dan huwa proġett tal-istudenti. Jien ngħidilhom x’għandu jsir, u jekk iridu, jagħmlu dan.

Għandek bżonn tehmeż ċertifikat SSL. L-Ejja Encrypt b'xejn se taħdem ukoll. Għamilt dan għal Spring Boot. Mhuwiex diffiċli li tagħmel, u l-fiduċja tal-PS tiżdied.

X'inhu jmiss għall-proġett?

Imbagħad, fil-fatt, l-għażla hija f'idejn il-guys. L-idea oriġinali tal-proġett kienet tinkludi wkoll database ta 'prodotti b'links għal addittivi.

Daħħal "Snickers" u ara x'addittivi nutrizzjonali fih.

Anke fil-bidu tal-proġett, kont naf li ma jkollna l-ebda prodott :) Għalhekk, bdejna biss bl-addittivi.

Issa tista 'żżid prodotti u tintroduċi oħrajn addizzjonali. pasti. Jekk hija database estensiva, se jkun hemm utenti.

Skjerament

Il-proġett ġie skjerat fuq VPS, Aruba Cloud. Dan huwa l-irħas VPS li stajna nsibu. Ilni nuża dan il-fornitur għal aktar minn sena għall-proġetti tiegħi, u ninsab kuntent bih.

Karatteristiċi tal-VPS: 1 GB RAM, 1 CPU (ma nafx dwar il-frekwenza), 20 GB SSD. Għall-proġett tagħna dan huwa biżżejjed.

Il-proġett huwa mibni bl-użu tal-pakkett tas-soltu mvn clean. Ir-riżultat huwa vażett tax-xaħam - fajl eżekutibbli bid-dipendenzi kollha.

Biex awtomat ftit dan kollu, ktibt ftit skripts bash.

L-ewwel skript iħassar il-fajl vażett il-qadim u jibni wieħed ġdid.

It-tieni kitba tniedi l-vażett immuntat, u jgħaddiha l-isem tal-profil meħtieġ. Dan il-profil fih informazzjoni dwar il-konnessjoni tad-database.

Id-database hija MySQL fuq l-istess VPS.

Il-bidu mill-ġdid totali tal-proġett jinkludi:

  • idħol fil-VPS permezz ta' SSH
  • niżżel l-aħħar bidliet git
  • run local-jar.sh
  • joqtlu applikazzjoni running
  • run launch-production.sh

Din il-proċedura tieħu tliet minuti. Din tidher għażla intelliġenti għalija għal proġett daqshekk żgħir.

Diffikultajiet

Id-diffikultajiet ewlenin fil-ħolqien tal-proġett kienu ta’ natura organizzattiva.

Hemm grupp ta’ nies li donnhom jafu jipprogrammaw, iżda mhux tajjeb ħafna. Jafu xi ħaġa, iżda xorta ma jistgħux verament japplikawha. U issa jridu jlestu l-proġett f'xahar.

I identifikat mexxej tat-tim kundizzjonali f'dan il-grupp. Huwa żamm Google Doc b'lista ta 'kompiti, qassam il-kompiti, u kkontrolla l-aċċettazzjoni tagħhom. Huwa aċċetta wkoll pull requests.

Tlabt ukoll lill-istudenti biex kull filgħaxija jiktbu rapport qasir dwar ix-xogħol li għamlu fuq il-proġett. Jekk ma għamilt xejn, ok, ikteb "għamilt xejn." Din hija prattika kbira u jġiblek ftit tensjoni. Mhux kulħadd segwa din ir-regola, sfortunatament.

L-iskop ta’ dan il-moviment kollu kien sempliċi. Ifforma tim, anke jekk għal żmien qasir biss, biex jaħdmu flimkien.

Ridt li l-ġuvini jħossu li x-xogħol tagħhom kien importanti. Ifhem li ma jiktbux kodiċi sferiku fil-vakwu. U dak li qed jagħmlu flimkien huwa proġett li mbagħad jużaw in-nies.

L-ewwel ġimgħa jew tnejn kienet build-up. Entitajiet u commits żgħar saru bil-mod. Ftit ftit qajjthom, u x-xogħol sar aktar pjaċevoli. Il-komunikazzjoni fiċ-chat saret aktar vivaċi, l-istudenti offrew iż-żidiet tagħhom.

Nemmen li l-għan intlaħaq. Il-proġett huwa lest, il-guys kisbu ftit esperjenza ta 'ħidma f'tim. Hemm riżultat viżibbli, tanġibbli li jista 'jintwera lill-ħbieb u żviluppat aktar.

Sejbiet

It-tagħlim huwa interessanti.

Wara kull klassi ġejt lura emozzjonalment aġitat. Nipprova nagħmel kull par uniku u nwassal kemm jista' jkun għarfien.

Huwa sabiħ meta l-grupp li ngħallem jasal sal-finali. Huwa speċjalment jibred meta l-ġuvini jiktbu "Ksibt xogħol, kollox tajjeb, grazzi." Anke jekk huwa junior, anke jekk mhux l-akbar flus għall-ewwel. Imma l-iktar ħaġa importanti hija li għamlu pass lejn ix-xewqat tagħhom, u rnexxielhom.

Għalkemm l-artiklu rriżulta li kien pjuttost voluminuż, żgur li ma kienx possibbli li jiġu koperti l-punti kollha. Għalhekk, ikteb il-mistoqsijiet tiegħek fil-kummenti.

Sors: www.habr.com

Żid kumment