E-Dobavki - e Webservice fir Nahrungsadditiven op Java a Spring Boot ze sichen, geschriwwen vu menge Studenten

Aféierung

Et ass geschitt, datt ech fir déi lescht bal zwee Joer Programmer an enger vun den IT Schoulen zu Kiew geléiert hunn. Ech hunn ugefaang dëst ze maachen Just For Fun. Ech hunn eng Kéier e Programméierungsblog geschriwwen, dunn hunn ech et opginn. Awer de Wonsch nëtzlech Saachen un interesséiert Leit ze soen ass net fort.

Meng Haaptsprooch ass Java. Ech geschriwwen Spiller fir Handyen, Software fir Radio Kommunikatioun, a verschidde Web Servicer op et. An ech léieren Java.

Hei wëll ech d'Geschicht vum Training vu mengem leschte Grupp erzielen. Wéi si vun der Ausbildung unzefänken fir en funktionnéierende Webservice ze schreiwen. En nëtzlechen Webservice fir Nahrungsergänzungen ze fannen. Gratis, keng Reklammen, Aschreiwung an SMS.

De Service selwer ass hei - E-Dobavki.com.

E-Dobavki - e Webservice fir Nahrungsadditiven op Java a Spring Boot ze sichen, geschriwwen vu menge Studenten

De Projet ass pädagogesch an enthält keng Reklammen. Wéi ech verstinn aus vun dëser Publikatioun, Dir kënnt Linken op esou Projeten ubidden.

Ier ech de Projet selwer beschreiwen, wäert ech Iech e bëssen iwwer de Léierprozess vum Grupp soen ouni dëst, d'Bild wäert onkomplett sinn.

9 Méint Training

An der Schoul wou ech léieren, ass de Java Cours an 2 Deeler opgedeelt. Am Ganzen dauert de Cours ongeféier 9 Méint, mat all Pausen (Neijoerschvakanz, Zäit fir Zwëscheprojeten ze schreiwen).

Den éischten Deel stellt d'Schüler d'Basiskonzepter vun der Sprooch vir. Variablen, Methoden, OOP Basics an all déi Saachen.

Den zweeten Deel vum Cours gesäit vir datt de Schüler scho méi oder manner versteet wéi een op Java schreift, an hien kann en "erwuessene" Technologiestack ginn. Et fänkt alles mat SQL un, dann JDBC, Hibernate. Dann HTTP, Servlets. Nächst ass Fréijoer, e bëssen iwwer Git a Maven. A Schüler schreiwen Finale Projeten.

All Training ass a Moduler opgedeelt. Ech hunn zweemol d'Woch Coursen gemaach. D'Dauer vun enger Lektioun ass zwou Stonnen.

Meng Approche fir ze léieren

Ech verëffentlecht 5 Gruppen. Et schéngt wéi vill fir zwee Joer, mee ech gefouert bal ëmmer 2 Gruppen parallel.

Ech hu verschidde Approche probéiert.

Déi éischt Optioun ass datt ee Pair fir eng Presentatioun mat enger Theorie zougewisen ass. Déi zweet Pair ass reng Praxis. Dës Approche huet iergendwéi geschafft, awer et war net ganz effektiv, menger Meenung no.

Déi zweet Optioun, op déi ech komm sinn an un déi ech elo schaffen, ass net eng ganz Koppel un der Theorie ze widmen. Amplaz mëschen ech kuerz Sektiounen vun der Theorie fir 5-10 Minutten, a verstäerken se direkt mat praktesche Beispiller. Dës Approche funktionnéiert besser.

Wann et genuch Zäit ass, ruffen ech d'Schüler op meng Plaz, setzen se um Laptop, a si maachen praktesch Beispiller selwer. Et funktionnéiert super, awer leider brauch et vill Zäit.

Net jiddereen mécht et bis zum Enn

Eng Offenbarung fir mech war d'Tatsaach, datt net de ganze Grupp um Enn vum Cours kënnt.

Mengen Observatioune no schreiwen nëmmen d'Halschent vun de Schüler den Ofschlossprojet. Déi meescht vun hinnen ginn am éischten Deel vum Cours eliminéiert. An déi, déi den zweeten Deel erreecht hunn, falen normalerweis net of.

Si verloossen aus verschiddene Grënn.

Déi éischt ass Komplexitéit. Egal wat se soen, Java ass net déi einfachst Sprooch. Fir souguer den einfachsten Programm ze schreiwen, musst Dir d'Konzept vun enger Klass verstoen, eng Method. A fir ze verstoen firwat Dir musst schreiwen ëffentlech statesch Void Main(String[] arg) Et ginn e puer méi Konzepter ze verstoen.

Vergläicht dëst mam Turbo Pascal, dat ass wat vill Leit ugefaang hunn, dorënner ech:

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

Souwäit ech weess, wäert d'Schoul dëse Problem léisen andeems se zousätzlech Tester aféieren. Elo kann net jiddereen Java studéieren. Dëst ass nach ëmmer an der Konzeptstadium, awer de Schrëtt ass kloer de richtege.

An den zweete Grond ass wéi op der Foto hei drënner:

E-Dobavki - e Webservice fir Nahrungsadditiven op Java a Spring Boot ze sichen, geschriwwen vu menge Studenten

D'Leit mengen dacks datt d'Programméierung drëm geet vill Text ze tippen a vill Sue dofir ze kréien. Wéi e Copywriter, nëmme méi Suen.

D'Realitéit ass e bëssen anescht. Vill Routine Code, onsichtbar Bugs, e konstante Léierprozess. Et ass interessant, awer net fir jiddereen.

Dëst sinn d'Statistiken. Am Ufank huet et mech opgeregt, ech hu geduecht datt ech vläicht eppes falsch maachen. Elo verstinn ech datt d'Statistike fir déi meescht Coursen ongeféier d'selwecht sinn. Elo maachen ech keng Suergen doriwwer, mee léieren déi Leit, déi et interesséiert sinn.

Service Iddi

Nodeems d'Schüler de ganze Cours ofgeschloss hunn, war et Zäit fir de Schlussprojet ze schreiwen. Et waren verschidden Iddien. Si hunn ToDo Blieder, Projektmanagementprojeten an eppes anescht ugebueden.

Ech wollt eppes einfach awer nëtzlech maachen. Mäi Critère war einfach - ob meng Frënn an ech et benotze kéinten. E Webservice fir d'Sich no Liewensmëtteladditive entsprécht dësen Ufuerderungen.

D'Iddi ass einfach. Wann Dir e Produit an engem Geschäft kaaft, gesitt Dir eng Zort E-Additiv an der Zesummesetzung. Et ass net kloer aus dem Code wéi geféierlech et ass oder net (an et ginn och geféierlech Zousatzstoffer déi a ville Länner verbuede sinn).

Dir öffnet d'Websäit, gitt den Numm vum Zousaz (Nummer, ee vun den alternativen Nimm) a kritt e Resumé vum Zousaz:

E-Dobavki - e Webservice fir Nahrungsadditiven op Java a Spring Boot ze sichen, geschriwwen vu menge Studenten

Et ginn ähnlech Projeten. Dir kënnt och einfach den Additiv op Google tippen, obwuel et d'Informatioun net ëmmer richteg weist.

Awer well de Projet pädagogesch ass, hunn d'Schwieregkeeten hei uewen eis net opgehalen :)

Ëmsetzung

Jiddereen huet op Java geschriwwen, Quellcode vum Projet op Github.

Et waren 7 vun eis, dorënner ech. Jiddereen huet eng Pull Ufro gemaach, an ech, oder eng aner Persoun aus der Grupp, hunn dës Pull Ufro ugeholl.

D'Ëmsetzung vum Projet huet ongeféier ee Mount gedauert - vun der Ausso vun der Iddi bis zum Staat deen Dir elo gesitt.

Parsing Zousatzstoffer

Dat éischt wat ee vun de Schüler gemaach huet, nieft der Basiskreatioun vun engem Kader ronderëm d'Datebank (Entitéiten, Repositories, etc.), war d'Parsing vun Add-ons vun enger existéierender Informatiounssite.

Dëst war néideg fir déi reschtlech Punkten ze testen. Keen zousätzleche Code ass néideg fir d'Datebank ze populéieren. Nodeems mir e puer Additive séier analyséiert hunn, kënne mir d'UI weider testen, d'Sortéieren a Filteren.

Fréijoer Boot erlaabt Iech verschidde Profiler ze kreéieren. E Profil ass e Fichier mat Astellungen.

Fir d'Dev Ëmfeld hu mir e Profil mat engem lokalen H2 DBMS an dem Standard HTTP Hafen (8080) benotzt. Also, all Kéier wann d'Applikatioun lancéiert gouf, gouf d'Datebank geläscht. De Parser an dësem Fall war d'Saach, déi eis gerett huet.

Sich a Filteren

E wichtege Punkt ass Sich a Filteren. Eng Persoun an engem Geschäft muss séier op de Code vum Zousaz klickt, oder ee vun den Nimm, an d'Resultat kréien.

Dofir huet d'Additiv Entitéit verschidde Felder. Dëst ass den additive Code, alternativ Nimm, Beschreiwung. D'Sich gëtt mat Like an alle Felder zur selwechter Zäit duerchgefouert. A wann Dir [123] oder [amaranth] gitt, kritt Dir datselwecht Resultat.

Mir hunn all dëst baséiert op Spezifikatioune gemaach. Dëst ass en Deel vum Fréijoer, deen Iech erlaabt Basis Sichbedéngungen ze beschreiwen (wéi e puer Feld, zum Beispill), an dann dës Konditiounen (ODER oder AN) kombinéieren.

Nodeems Dir eng Dosen Spezifikatioune geschriwwen hutt, kënnt Dir komplex Ufroe froen wéi "all geféierlech Faarfadditive déi d'Wuert [rout] an der Beschreiwung hunn."

Am Sënn vun der Aarbecht mat der Spring-Datebank fannen ech et ganz bequem. Dëst ass besonnesch wouer wann Dir mat komplexe Ufroen schafft. Ech verstinn datt dëst säin eegene Overhead huet, an eng manuell schrëftlech an optimiséiert SQL Ufro wäert méi séier lafen.

Mee ech halen och un de Standpunkt, datt et net néideg ass, alles am Viraus ze optimiséieren. Déi éischt Versioun muss ufänken, schaffen, an erlaben den Ersatz vun eenzel Deeler. A wann et eng Laascht ass, mussen dës eenzel Deeler ëmgeschriwwe ginn.

Sécherheet

Et ass einfach. Et gi Benotzer mat der ADMIN Roll - si kënnen Ergänzunge änneren, se läschen an nei addéieren.

An et ginn aner Benotzer (registréiert oder net). Si kënnen nëmmen d'Lëscht vun Zousätz duerchsichen a sichen no deenen déi se brauchen.

Fréijoer Sécherheet gouf benotzt Rechter ze trennen. Benotzerdaten ginn an enger Datebank gespäichert.

Benotzer kënnen aschreiwen. Elo gëtt et näischt. Wann d'Studenten de Service weider entwéckelen an e puer personaliséiert Funktiounen aféieren, da kënnt d'Aschreiwung praktesch.

Reaktiounsfäegkeet a Bootstrap

Den nächste Punkt ass Adaptabilitéit. Am Fall vun eisem Service (op d'mannst wéi mir et gesinn hunn), wäerten d'Majoritéit vun de Benotzer mat Handyen sinn. An Dir musst séier d'Ergänzung vun Ärem Handy kucken.

Fir net mat CSS ze leiden, hu mir Bootstrap geholl. Bëlleg, lëschteg a gesäit anstänneg aus.

Ech kann den Interface net ideal nennen. D'Haaptsäit ass nach manner, an d'Säit fir eng detailléiert Beschreiwung vum Additiv ass schmuel op Handyen et muss méi breet gemaach ginn.

Ech kann nëmme soen, datt ech probéiert hunn d'Aarbecht esou wéineg wéi méiglech ze stéieren. Dëst ass nach ëmmer e Studenteprojet. An natierlech kënnen d'Jongen esou Momenter spéider korrigéieren.

Eng Minutt SEO Optimisatioun

Well ech fir méi wéi zwee Joer enk u Websäiten involvéiert sinn an alles wat mam SEO verbonnen ass, konnt ech kee Projet ouni op d'mannst Basis SEO Optimiséierung fräiginn.

Tatsächlech hunn ech eng Schabloun Generatioun vun Titel a Beschreiwung fir all Add-on gemaach. D'URL ass bal CNC, obwuel et méi kuerz ka gemaach ginn.

Ech dobäi och Präsenz Konter. De Site op Yandex Webmaster a Google Search Console bäigefüügt fir Warnungen vu Sichmotoren ze iwwerwaachen.

Et geet net duer. Dir musst och robots.txt an sitemap.xml fir voll Indexéierung addéieren. Awer erëm, dëst ass e Studenteprojet. Ech soen hinnen wat muss gemaach ginn, a wa se wëllen, da maache se et.

Dir musst en SSL Zertifika befestegt. De gratis Let's Encrypt funktionnéiert och. Ech hunn dat fir Fréijoer Boot gemaach. Et ass net schwéier ze maachen, an d'Vertraue vum PS erhéicht.

Wat ass nächst fir de Projet?

Dann ass tatsächlech de Choix un de Kärelen. Déi originell Iddi vum Projet enthält och eng Datebank vu Produkter mat Linken op Zousatzstoffer.

Gitt "Snickers" a kuckt wéi eng Ernärungsadditive et enthält.

Schonn am Ufank vum Projet wousst ech datt mir keng Produkter hätten :) Dofir hu mir just mat Zousatzstoffer ugefaang.

Elo kënnt Dir Produkter derbäi an zousätzlech aféieren. Bunnen. Wann et eng extensiv Datebank ass, ginn et Benotzer.

Deployment

De Projet gouf op VPS, Aruba Cloud ofgesat. Dëst ass déi bëllegst VPS déi mir fanne konnten. Ech hunn dëse Provider fir méi wéi engem Joer fir meng Projeten benotzt, an ech sinn agreabel zefridden mat et.

VPS Charakteristiken: 1 GB RAM, 1 CPU (Ech weess net iwwer d'Frequenz), 20 GB SSD. Fir eise Projet geet dat duer.

De Projet gëtt mam übleche mvn clean Package gebaut. D'Resultat ass e Fett Jar - eng ausführbar Datei mat all Ofhängegkeeten.

Fir dëst alles e bëssen ze automatiséieren, hunn ech e puer Bash Scripte geschriwwen.

Den éischte Skript läscht déi al Jar-Datei a baut en neien.

Dat zweet Skript lancéiert de versammelt Jar, gitt et den Numm vum erfuerderleche Profil. Dëse Profil enthält Datenbankverbindungsinformatioun.

DB - MySQL op der selwechter VPS.

Total Projet Restart enthält:

  • aloggen op VPS iwwer SSH
  • Luet déi lescht Git Ännerungen erof
  • lafen local-jar.sh
  • ëmbréngen Lafen Applikatioun
  • lafen launch-production.sh

Dës Prozedur dauert dräi Minutten. Dëst schéngt mir eng intelligent Wiel fir sou e klenge Projet.

Schwieregkeeten

D'Haaptschwieregkeete beim Schafe vum Projet waren vun organisatorescher Natur.

Et gëtt eng Grupp vu Leit, déi schéngen ze wëssen, wéi programméiere, awer net ganz gutt. Si wëssen eppes, awer si kënnen et nach ëmmer net wierklech applizéieren. An elo musse se de Projet an engem Mount fäerdeg maachen.

Ech hunn e bedingte Teamleader an dësem Grupp identifizéiert. Hien huet e Google Doc mat enger Lëscht vun Aufgaben gehal, Aufgaben verdeelt a kontrolléiert hir Akzeptanz. Hien huet och Pull-Ufroen ugeholl.

Ech hunn d'Schüler och gefrot all Owend e kuerze Bericht ze schreiwen iwwer d'Aarbechten déi se um Projet gemaach hunn. Wann Dir näischt gemaach hutt, ok, schreift just "näischt gemaach." Dëst ass super Praxis a kritt Iech e bëssen ugespaant. Net jiddereen huet dës Regel gefollegt, leider.

Den Zweck vun all dëser Bewegung war einfach. Form eng Equipe, och wann nëmme fir eng kuerz Zäit, fir zesummen ze schaffen.

Ech wollt datt d'Jongen d'Gefill hunn datt hir Aarbecht wichteg war. Verstinn datt se kee kugelfërmege Code an engem Vakuum schreiwen. A wat se zesumme maachen ass e Projet deen d'Leit dann notzen.

Déi éischt Woch oder zwou war en Opbau. Entitéiten a kleng Verpflichtungen goufen lues gemaach. Lues a lues hunn ech se opgeruff, an d'Aarbecht gouf méi lëschteg. D'Kommunikatioun am Chat gouf méi lieweg, Studenten hunn hir Ergänzunge ugebueden.

Ech gleewen, datt d'Zil erreecht ass. De Projet ass fäerdeg, d'Jongen hunn e bëssen Erfahrung an engem Team geschafft. Et gëtt e siichtbar, konkret Resultat, dat de Frënn gewise ka ginn a weider entwéckelt.

Conclusiounen

Léieren ass interessant.

No all Klass sinn ech emotional opgereegt zréck. Ech probéieren all Paar eenzegaarteg ze maachen an sou vill Wëssen wéi méiglech ze vermëttelen.

Et ass schéin wann de Grupp, deen ech léieren, d'Finale erreecht. Et ass besonnesch cool wann Kärelen schreiwen "Ech hunn eng Aarbecht, alles ass gutt, merci." Och wann et e Junior ass, och wann et am Ufank net déi gréisste Suen ass. Awer déi wichtegst Saach ass datt si e Schrëtt a Richtung hir Wënsch gemaach hunn, a si hunn et gelongen.

Och wann den Artikel zimmlech voluminös erauskoum, war et sécherlech net méiglech all Punkten ze decken. Dofir schreift Är Froen an de Kommentaren.

Source: will.com

Setzt e Commentaire