E-Dobavki - karûbarek malperê ji bo lêgerîna lêzêdekirina xwarinê li Java û Spring Boot, ku ji hêla xwendekarên min ve hatî nivîsandin

Pîrozbahiyê

Wusa çêbû ku ev nêzî du salên dawîn ez li yek ji dibistanên IT-ê li Kyivê fêrî bernamekirinê bûm. Min dest bi vê yekê kir Just For Fun. Min carekê blogek bernamesaziyê nivîsand, paşê min dev jê berda. Lê xwesteka ku ji kesên eleqedar re tiştên bikêr bêje neçûye.

Zimanê min ê sereke Java ye. Min lîstikên ji bo têlefonên desta, nermalava ji bo ragihandina radyoyê, û karûbarên webê yên cihêreng li ser wê nivîsî. Û ez Java hîn dikim.

Li vir ez dixwazim çîroka perwerdeya koma xwe ya dawî vebêjim. Çawa ew ji destpêkirina perwerdehiyê derbasî nivîsandina karûbarek tevnvî ya xebatê bûn. Karûbarek malperê ya kêrhatî ji bo dîtina pêvekên xwarinê. Belaş, bê reklam, qeydkirin û SMS.

Xizmet bixwe li vir e - E-Dobavki.com.

E-Dobavki - karûbarek malperê ji bo lêgerîna lêzêdekirina xwarinê li Java û Spring Boot, ku ji hêla xwendekarên min ve hatî nivîsandin

Proje perwerdeyî ye û ti reklam tê de nîne. Wekî ku ez ji fêm dikim vê weşanê, hûn dikarin lînkên projeyên weha peyda bikin.

Berî ku ez proje bi xwe rave bikim, ez ê hinekî li ser pêvajoya fêrbûna komê ji we re vebêjim; bêyî vê yekê, wêne dê ne temam be.

9 meh perwerde

Li dibistana ku ez lê ders didim, qursa Java li 2 beşan tê dabeş kirin. Bi tevahî, qurs nêzîkê 9 mehan digire, digel hemî betlaneyan (betlaneyên Sersalê, dema nivîsandina projeyên navîn).

Di beşa yekem de têgehên bingehîn ên ziman xwendekaran dide nasîn. Guherîn, rêbaz, bingehên OOP û hemî tiştên ku.

Beşa duyemîn a qursê dide ku xwendekar jixwe kêm-zêde kêm-zêde fêm dike ka meriv çawa di Java-yê de dinivîse, û dikare ji wî re stûnek teknolojiyê ya "mezin" were dayîn. Ew hemî bi SQL dest pê dike, paşê JDBC, Hibernate. Dûv re HTTP, servlets. Pêşî Bihar e, hinekî li ser git û maven. Û xwendekar projeyên dawîn dinivîsin.

Hemî perwerdehî li modulan têne dabeş kirin. Min heftê du caran ders didan. Demjimêra yek dersê du saet e.

Nêzîkatiya min a fêrbûnê

Min 5 kom berdan. Ji bo du salan pir xuya dike, lê min hema hema her gav 2 kom bi hev re rêberî kir.

Min nêzîkatiyên cûda ceriband.

Vebijarka yekem ev e ku yek cotek ji bo pêşkêşiyek bi teoriyê ve tê veqetandin. Cotê duyemîn pratîka paqij e. Ev nêzîkatî bi rengek xebitî, lê bi dîtina min ne pir bi bandor bû.

Vebijarka duyemîn a ku ez hatim û ya ku ez niha li ser dixebitim ev e ku ez bi tevahî cotek teoriyê venaşêrim. Di şûna wê de, ez beşên kurt ên teoriyê 5-10 hûrdem tevlihev dikim, û tavilê wan bi mînakên pratîkî re xurt dikim. Ev nêzîkatî çêtir dixebite.

Ger wext hebe ez bangî xwendekaran dikim li cihê xwe, wan li ber laptopa xwe rûdinim û ew bi xwe mînakên pratîkî dikin. Ew pir baş dixebite, lê mixabin ew pir dem digire.

Her kes heta dawiyê nake

Ji bo min vedîtinek ev bû ku grûp tev nagihîje dawiya qursê.

Li gorî dîtinên min, tenê nîvê xwendekaran projeya dawîn dinivîsin. Piraniya wan di beşa yekem a qursê de têne derxistin. Û yên ku gihîştine beşa duyemîn bi gelemperî nakevin.

Ew ji ber sedemên cûda derdikevin.

Ya yekem tevlihev e. Ew çi dibêjin bila bibêjin, Java ne zimanê herî hêsan e. Ji bo nivîsandina bernameya herî hêsan jî, hûn hewce ne ku têgîna çînek, rêbazek fêm bikin. Û ji bo fêmkirina çima hûn hewce ne ku binivîsin sereke valahiya statîk a giştî (String[] arg) Çend têgînên din jî hene ku werin fahm kirin.

Vê yekê bi Turbo Pascal re bidin hev, ya ku gelek kesan pê dest pê kir, tevî min:

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

Bi qasî ku ez dizanim, dibistan dê vê pirsgirêkê bi danasîna ceribandinên zêde çareser bike. Naha her kes nikare Java-yê bixwîne. Ev hîn di qonaxa konseptê de ye, lê gav bi eşkere ya rast e.

Û sedema duyemîn jî di wêneya jêrîn de ye:

E-Dobavki - karûbarek malperê ji bo lêgerîna lêzêdekirina xwarinê li Java û Spring Boot, ku ji hêla xwendekarên min ve hatî nivîsandin

Gelek caran mirov difikire ku bername bi nivîsandina gelek nivîsan û wergirtina gelek pereyan ji bo wê ye. Mîna kopînivîserek, tenê bêtir drav.

Rastî hinekî cuda ye. Gelek kodên rûtîn, xeletiyên ne diyar, pêvajoyek hînbûnê ya domdar. Ew balkêş e, lê ne ji bo her kesî.

Ev îstatîstîk in. Di destpêkê de ew min xemgîn kir, min fikir kir ku dibe ku ez tiştek xelet dikim. Naha ez fam dikim ku statîstîk ji bo pir qursan bi qasî hev in. Niha ez xema wê nakim, lê wan kesên ku pê re eleqedar dibin fêr bikim.

Fikra xizmetê

Dema ku xwendekaran tevahiya qursê qedandin, dema nivîsandina projeya dawî bû. Fikrên cuda hebûn. Wan pelên ToDo, projeyên rêveberiya projeyê, û tiştek din pêşkêş kirin.

Min dixwest tiştek hêsan lê kêrhatî bikim. Pîvana min hêsan bû - gelo ez û hevalên xwe dikarin wê bikar bînin. Karûbarek malperê ya ji bo lêgerîna lêzêdekirina xwarinê van hewcedariyên xwe bicîh anî.

Fikir sade ye. Dema ku hûn hilberek li firotgehekê bikirin, hûn di nav pêkhateyê de celebek E-zêdeyê dibînin. Ji kodê ne diyar e ka ew çiqas xeternak e an na (û pêvekên xeternak jî hene ku li gelek welatan qedexe ne).

Hûn malperê vedikin, navê pêvekê (hejmar, yek ji navên alternatîf) binivîsin û kurteya pêvekê bistînin:

E-Dobavki - karûbarek malperê ji bo lêgerîna lêzêdekirina xwarinê li Java û Spring Boot, ku ji hêla xwendekarên min ve hatî nivîsandin

Projeyên bi vî rengî hene. Her weha hûn dikarin bi tenê pêvekê li Google binivîsin, her çend ew her gav agahdariya rast nîşan nade.

Lê ji ber ku proje perwerde ye, zehmetiyên li jor me nehişt :)

Реализация

Her kesî bi Java nivîsî, koda çavkaniyê ya projeyê li ser Github.

Em 7 kes bûn, ez jî di nav de. Her kesî daxwaza vekişînê kir, û min, an kesek din ji komê, ev daxwaza vekişînê qebûl kir.

Pêkanîna projeyê bi qasî mehekê dom kir - ji vegotina ramanê heya dewleta ku hûn niha dibînin.

Parsing additives

Yekem tiştê ku yek ji xwendekaran kir, ji xeynî çêkirina bingehîn a çarçoveyek li dora databasê (saz, depo, hwd.), parkirina pêvekên ji malperek agahdariya heyî bû.

Ev ji bo ceribandina xalên mayî hewce bû. Ji bo tijekirina databasê kodek zêde ne hewce ye. Piştî ku em zû çend pêvekan pars kirin, me dikaribû UI, rêzkirin û fîlterkirin bêtir ceribandin.

Spring Boot dihêle hûn pir profîlan biafirînin. Profîl pelek bi mîhengan e.

Ji bo hawîrdora dev, me profîlek bi H2 DBMS-ya herêmî û porta HTTP-ya xwerû (8080) bikar anî. Bi vî rengî, her carê ku serîlêdan hate destpêkirin, databas hate paqij kirin. Parser di vê rewşê de tiştê ku me xilas kir bû.

Lêgerîn û fîlterkirin

Xaleke girîng lêgerîn û fîlterkirin e. Divê kesek di firotgehekê de zû li ser koda pêvekê, an yek ji navan bikirtînin û encamê bistînin.

Ji ber vê yekê, sazûmana Additive çend qadan hene. Ev koda lêzêdekirinê, navên alternatîf, şirove ye. Lêgerîn bi karanîna Like di hemî qadan de di heman demê de tête kirin. Û eger hûn têkevin [123] an [amaranth], hûn ê heman encamê bistînin.

Me ev hemî li ser bingeha Taybetmendiyan kir. Ev beşek ji Springê ye ku dihêle hûn şert û mercên lêgerînê yên bingehîn diyar bikin (mîna hin zeviyan, mînakî), û dûv re van şertan (OR an Û Û) bi hev re bikin.

Bi nivîsandina dehan taybetmendiyan, hûn dikarin pirsên tevlihev ên mîna "hemû lêzêdekarên rengîn ên xeternak ên ku di ravekirinê de peyva [sor] heye" bipirsin.

Di warê xebata bi databasa Biharê de, ez wê pir rehet dibînim. Ev bi taybetî dema ku bi pirsên tevlihev re dixebitin rast e. Ez fêm dikim ku ev serê xwe heye, û pirsek SQL ya bi destan hatî nivîsandin û xweşbînkirî dê zûtir bimeşîne.

Lê ez di heman demê de pabendî vê nêrînê jî ne ku ne hewce ye ku her tiştî pêşwext xweş bikin. Pêdivî ye ku guhertoya yekem dest pê bike, bixebite û destûrê bide guheztina parçeyên kesane. Û heke barek hebe, pêdivî ye ku ev beşên kesane ji nû ve werin nivîsandin.

Ewlekarî

Ew hêsan e. Bikarhênerên bi rola ADMIN-ê hene - ew dikarin pêvekan biguherînin, jêbikin û yên nû lê zêde bikin.

Û bikarhênerên din jî hene (qeydkirî an na). Ew tenê dikarin navnîşa pêvekan bigerin û li yên ku hewce ne bigerin.

Ewlekariya Biharê ji bo veqetandina mafan hat bikaranîn. Daneyên bikarhêner di databasek de têne hilanîn.

Bikarhêner dikarin qeyd bikin. Niha tiştek nade. Ger xwendekar pêşvebirina karûbarê bidomînin û hin fonksiyonên kesane destnîşan bikin, wê hingê qeydkirin dê bi kêrî were.

Bersiv û Bootstrap

Xala din adaptasyon e. Di rewşa karûbarê me de (bi kêmanî awayê ku me ew dît), piraniya bikarhêneran dê bi têlefonên desta bin. Û hûn hewce ne ku zû pêvekê ji têlefona xweya desta bibînin.

Ji bo ku bi CSS re cefayê nekişînin, me Bootstrap girt. Erzan, dilxweş, û xweş xuya dike.

Ez nikarim navberê îdeal bibêjim. Rûpelê sereke hê hindiktir e, û rûpela ji bo danasîna hûrgulî ya lêzêdeyê teng e; li ser têlefonên desta divê ew berfirehtir were çêkirin.

Ez tenê dikarim bibêjim ku min hewl da ku bi qasî ku gengaz dibe astengî li xebatê bikim. Ev hê jî projeyeke xwendekaran e. Û bê guman, dê xort karibin paşê demên weha rast bikin.

Deqeyek ji Optimîzasyona SEO

Ji ber ku ez ji du salan zêdetir e ku ez ji nêz ve tevli malper û her tiştê ku bi SEO-yê ve girêdayî ye, min nekaribû projeyek bi kêmî ve xweşbîniya SEO ya bingehîn derxînim.

Bi rastî, min ji bo her pêvekê nifşek şablonek Sernav û Danasîn çêkir. URL hema hema CNC e, her çend ew dikare kurtir were çêkirin.

Min hejmarên beşdarbûnê jî zêde kir. Malper li Yandex Webmaster û Google Search Console zêde kir da ku hişyariyên ji motorên lêgerînê bişopîne.

Ne bes e. Her weha hûn hewce ne ku robots.txt û sitemap.xml lê zêde bikin ji bo îndekskirina tevahî. Lê dîsa, ev projeyek xwendekar e. Ez ê ji wan re bibêjim ka çi divê bê kirin, ger bixwazin dê bikin.

Hûn hewce ne ku sertîfîkayek SSL-ê pêve bikin. Belaş Let's Encrypt jî dê bixebite. Min ev ji bo Spring Boot kir. Çêkirina wê ne zehmet e û baweriya PS zêde dibe.

Pêşî ji bo projeyê çi ye?

Dûv re, bi rastî, bijarte li ser xortan e. Fikra orîjînal a projeyê di heman demê de databasek hilberan bi girêdanên pêvekan jî vedihewîne.

Têkeve "Snickers" û bibînin ka çi lêzêdekirina xwarinê tê de heye.

Di destpêka projeyê de jî min zanibû ku dê tu berhem tunebin :) Ji ber vê yekê me tenê bi lêzêdekirinan dest pê kir.

Naha hûn dikarin hilberan lê zêde bikin û yên din destnîşan bikin. buns. Ger ew databasek berfireh be, dê bikarhêner hebin.

Dabeşandin

Proje li ser VPS, Aruba Cloud hate bicîh kirin. Ev VPS-ya herî erzan e ku em dikarin bibînin. Ez ji salek zêdetir ji bo projeyên xwe vê pêşkêşker bikar tînim, û ez jê kêfxweş im.

Taybetmendiyên VPS: 1 GB RAM, 1 CPU (Ez di derheqê frekansê de nizanim), 20 GB SSD. Ji bo projeya me ev bes e.

Proje bi karanîna pakêta paqij a mvn ya asayî hatî çêkirin. Encam jarek qelew e - pelek birêkûpêk bi hemî ve girêdayî ye.

Ji bo ku van hemîyan hinekî otomatîk bikim, min çend nivîsarên bash nivîsandin.

Skrîpta yekem pelê jar-a kevn jê dike û yek nû ava dike.

Skrîpta duyemîn jara civandî dest pê dike, navê profîla pêwîst jê re derbas dike. Ev profîl agahdariya girêdana databasê dihewîne.

DB - MySQL li ser heman VPS.

Bi tevahî ji nû ve destpêkirina projeyê tê de:

  • bi SSH ve têkevin VPS-ê
  • Guhertinên git yên herî dawî dakêşin
  • run herêmî-jar.ş
  • bikuje sepana xebitandinê
  • run launch-production.sh

Ev prosedur sê deqîqe digire. Ev ji bo projeyek wusa piçûk ji min re hilbijartinek biaqil xuya dike.

Zehmetiyên

Di afirandina projeyê de zehmetiyên sereke yên rêxistinî bûn.

Komek mirovan heye ku dixuye ku meriv çawa bernamekirinê dizane, lê ne pir baş. Ew tiştek dizanin, lê dîsa jî ew bi rastî nikarin wê bicîh bikin. Û niha jî divê di mehekê de projeyê biqedînin.

Min di vê komê de serokê tîmek şertî nas kir. Wî Google Doc bi navnîşek peywiran vekir, peywiran belav kir, û pejirandina wan kontrol kir. Wî jî daxwazên vekişînê qebûl kir.

Min jî ji xwendekaran xwest ku her êvar li ser xebatên ku li ser projeyê kirine raporek kurt binivîsin. Heke we tiştek nekir, baş e, tenê "tiştek nekir" binivîsin. Ev pratîkek mezin e û we hinekî teng dike. Her kes li pey vê qaîdeyê nebû, mixabin.

Armanca hemû vê tevgerê hêsan bû. Tîmek ava bikin, her çend ji bo demek kurt be jî, bi hev re bixebitin.

Min dixwest ku xort hest bikin ku karê wan girîng e. Fêm bikin ku ew koda spherîkî di valahiyê de nanivîsin. Û ya ku ew bi hev re dikin projeyek e ku mirov wê hingê bikar bîne.

Hefteya pêşîn an du hefteyan ava kirin. Enstîtu û peymanên piçûk bi şikestî hatin kirin. Hêdî hêdî min ew dihejand, û kar bêtir kêfxweş bû. Têkiliya di sohbetê de geştir bû, xwendekaran pêvekên xwe pêşkêş kirin.

Ez di wê baweriyê de me ku armanc pêk hatiye. Proje qediya, xortan ezmûnek piçûk di tîmekê de xebitîn. Encamek xuya, berbiçav heye ku dikare ji hevalan re were xuyang kirin û bêtir pêşve bibe.

vebiguherin

Fêrbûn balkêş e.

Piştî her dersê ez bi hestyarî vegerîyam. Ez hewl didim ku her cotek bêhempa bikim û bi qasî ku pêkan zanînê ragihînim.

Dema koma ku ez ders didim digihîje fînalê xweş e. Bi taybetî xweş e dema ku xort dinivîsin "Min karek girt, her tişt baş e, spas." Her çend ew ciwanek be jî, di destpêkê de ne pereyê herî mezin be jî. Lê ya herî girîng ew e ku ber bi daxwazên xwe ve gav avêtin û bi ser ketin.

Her çend gotar pir berfireh derketibe jî, bê guman ne gengaz bû ku hemî xalan bigire. Ji ber vê yekê, pirsên xwe di şîroveyan de binivîsin.

Source: www.habr.com

Add a comment