Povestea cum am fost de a face magazin on-line pe Java

Ca o prefață

Cea mai mare parte a carierei sale profesionale, am fost în curs de dezvoltare aplicații de afaceri în Java. Software-ul destinat, de regulă, pentru o varietate de instituții financiare sau alte comparabile cu acestea în mărime de structuri comerciale. Care a fost dezvoltat pentru nivel de întreprindere de echipamente și serverele de aplicații. Este demn de remarcat faptul că o mulțime de Java -programmistov care lucrează în acest sector. Poate că vă imaginați ce este - echipamente scumpe, un canal larg, memorie rapidă, Oracle Database, precum și alte atribute ale unui confortabil IT-viață. Dar se întâmplă că condițiile se schimbă destul de contrariul.

Ce trebuie să faceți dacă doriți să creați o aplicație online pentru o companie mică pe un hosting cu resurse modeste?

Acum câțiva ani, sora mea a deschis un magazin de îmbrăcăminte în Nijni Novgorod. Ei prietena ei a dezvoltat modelul, a cumparat țesături și cusute în același loc în Nijni Novgorod.

Desigur, nu sa pus problema de servere mari, baze de date comerciale și alte jucării scumpe. A trebuit să facem ceva simplu, agil și la prețuri accesibile.

Din moment ce eu locuiesc în Moscova, și este în partea de jos, avea nevoie de un site web, informațiile pe care aceasta ar putea fi schimbată fără (sau minim meu) mea.

Am devenit imediat evidente două moduri: PHP sau Java. Pentru a face o selecție, am decis să efectueze un pic de cercetare, pentru că ei nu vor să reinventeze roata. Din moment ce acest segment al dezvoltării software-ului a fost nou pentru mine, am pus Denver uitat la soluții PHP-Nye, apoi descărcat un alt based java CMS-ki, a cerut gazdele pe care le pot ma sfatuiti, a cerut prieteni PHP -nikov.

Ca rezultat, am făcut pentru ei înșiși concluzii:

  • Web Gazduire ieftin (de mai multe ori în comparație cu Java, dacă nu ia în considerare a Google App Engine.)
  • multe soluții gata făcute pentru acest segment, atât plătite și gratuite.
  • Nu știu PHP și nu doresc să-l studieze
  • Hosting mai mult (nu contează Google App Engine, este o altă poveste)
  • cele mai multe decizii sunt grele, concepute pentru servere mari și groase. Chiar și pentru Pet Store Java, va trebui în continuare un server de utilizare normală.
  • Știu Java destul de bine, încă se confruntă cu mai mult de 8 ani, certificarea SCJP, SCWCD, SCEApart1. Nu mă Uber-programator ia în considerare, doar atunci când a fost de lucru cu Java, mă simt confortabil și încrezător.
  • dorința de a face acest lucru în Java

Datorita obstinație sale naturale, și, probabil, din cauza reticenței de a părăsi zona de confort, am ales a doua cale. Poate că eo prostie și irațional, dar salbatic a vrut să încerce. Nu vreau aceste gata monstruoasă dimensiunea CMS-ki, am vrut să fac ceva foarte simplu. Faceti o decizie privind LAMP numai Tomcat lui și Java 'oh.

Provocarea, așa cum arată experiența în continuare, o destul de simplu, a făcut totul singur.

Alegerea unui web gazdă

Cu toată bogăția de alegere, așa cum sa dovedit, nu prea multe alternative.

Opțiunea 1. brim.ru - cel mai faimos hosting din RuNet, specializat în Java, foarte bine.

Este nevoie de un tarif minim de 2112 ruble / an - (!) 32 MB RAM.

înregistrare nume de domeniu se poate face pe cont propriu, de exemplu prin nic.ru (+ 620 ruble / an), fie prin gazda - apoi gratuit. În cazul în care frica de a pierde domeniu, puteți solicita de la gazdă și apoi datele de pe contul său registrator și să se retragă.

Ce se poate face depinde de circumstanțe. În orice caz, va trebui să trimită scanează documentul de identificare (de exemplu, pașaport), astfel încât să fie gata pentru ea.

Zabugorny hosting va fi mai mult sau foarte mult reduse de oportunități. Puteți închiria un VPS și jocul va fi mulțumit cu ea la fel de mult ca tine, dar va fi de mai multe ori mai scumpe, și o poveste complet diferită.

Opțiunea 2.Google App Engine (GAE) - gratuit! + Înregistrarea domeniului GoDaddy.com ($ 10)

Funcționalitatea la fel. În plus, veți obține diferite chifle de la Google, dar aproape toate au diferențele lor, în special.

  • Vrei JSTL + EL? trebuie să adăugați <%@ page isELIgnored="false" %>
  • Baza sa de date
  • API pentru lucrul cu imagini
  • API-ul pentru autentificare integrat cu Google-servicii

Dacă itemize totul, vom obține o grămadă de cip diferite grebla, care va trebui să atace, dacă ați avut experiența de a scrie aplicatii web pentru Java. Pe de altă parte, Google a încurajat programatori o mulțime de lucruri interesante API (de exemplu lucrul cu XMMP, adică, chat). Cred că în viitor va face un post separat pe Google App Engine, care va spune despre experiența lor reală cu această platformă.

Acum, site-ul a fost de operare pentru mai mult de doi ani brimovskom hosting. Sunt destul de fericit cu serviciul lor.

arhitectură

Arhitectura este simplu, ca un ciocan. Există trei componente, să le numim: Front. Admin și depozitare.

Spațiul de stocare este necesar pentru a primi, stoca și șterge produse din cataloage. Cu alte cuvinte, acest borcan-IR în care DAO este setat (Data Access Object) pentru a lucra cu baza de date și un set de obiecte care reprezintă entități POJO (catalog de produse, etc.).

Front - site-ul în sine. Totul este simplu. Pentru depunerea de a utiliza JSP în colaborare cu JSTL și EL. În câteva locuri unde este mai convenabil model 2 folosind servlete convenționale înainte de a JSP-ku. Struts nu este necesară, și mai JSF. In spatele-Servlets JSP sunt ok cu clasice de logica de afaceri, care urca în seif.

Admin vă permite să adăugați, eliminați și editați informații despre produs și cataloage. Admin închise accesului publicului. Proiectat pentru utilizator mediu. Precum și partea din față și folosește clase din depozit.

Da, desigur, ar putea fi mâini năzdrăvană de a urca direct în baza de date dintr-un JSP-nuci sau folosite pentru aceste scopuri JSTL tag-uri SQL. Din păcate, această abordare face să mă gag reflex și nu am fost în stare să se depășească. A fost necesar să se respecte limitele minime de decență.

Stocare de date

Imediat a existat o întrebare dacă este sau nu ORM ORM?

Desigur, puteți utiliza:

  • Am experiență cu această platformă (eu știu, care sunt capcane, etc.)
  • cadru bine documentat
  • va mânca resursele, și am doar 32 Mb, nu într-adevăr.

În general, a vrut doar să spun pe Hibernate - simplifică cu siguranță viața programatorului, dar mulți nu au dat seama ce fac atunci când este utilizat. De exemplu, aici sunt grebla meu preferat, pe care mulți avansează continuu - grebla populare.

  • Mai puțin popular în comparație cu Hibernate, ca o consecință - mai puține informații.
  • Poshustree va, dar încă mai am deoarece 32 (!) Mb.
  • Folosit în Google App Engine. Dacă doriți să obțineți off și apoi pe GAE hosting, va fi mai ușor decât salt, împreună cu Hibernate.

iBatis - este posibil, dar de ce?

În general, pentru a închide această întrebare, părerea mea: ORM-e la îndemână atunci când aveți mai mult de o duzină de clase diferite de obiecte care trebuie să fie stocate în baza de date și fiecare superiorii saptamanii de lucru sau clientul te aruncă pentru cel puțin o pereche de noi, schimbarea vechi. Plus că nu economisi bani pe hardware-ul, dar nu e cazul meu. Și dacă nu este, atunci ORM nu este necesară. Dacă doriți să obțineți aplicații foarte rapid și robust, este mai bine să utilizați JDBC, și nu cred că, dacă vi se spune că JDBC (!) - este arhaic.

Personal, eu nu sunt foarte obosit să scrie câteva select, insert, update, șterge, înainte de toate făcut asta, și nimic, nu poplohelo.

Aici este un memento puțin că nu trebuie să uităm (pentru cei care nu știu):

  1. PreparedStatement utilizare
  2. Închideți conexiunea, declarația, și setul de rezultate
  3. Utilizați o conexiune piscină (DPCP sau c3p0)
  4. Nu uita despre indicii

idee

Plain JSP + JSTL + EL. Asta e tot ce ai nevoie cu adevărat. JavaServerFaces - nu este necesar.

Dacă nu aveți abilități artistice, este mai bine să nu încerce să-l faci singur. Design-ul ar trebui să ia profesională, și anume Trebuie să cumpere. I-am cumpărat de scurgere, ruble pentru 500. Ei bine, nu Artemy Lebedev, sunt de acord, dar pentru 500 de ruble va merge. Totul este relativ, deoarece, de exemplu, au o gustare în „rake“ sau „Mu-Mu“ va costa aproximativ aceeași bani.

Este mai bine sa cheltui bani pe design decât să o faci singur, dar în cele din urmă va fi un cacat (scuzati expresia). Chiar dacă prietenii și rudele vor spune, „Ei bine, cum ar fi ceva, așa că, pentru prima dată merge“, ei probabil că nu vreau să te jignesc.

Dacă decideți să o faci singur, folosiți paletele de culori cel mai puțin pregătite, Internet lor este plin.

Toate detaliile

Detalii, care este cheia problemei:

Deci, site-ul (magazin online de imbracaminte pentru femei gravide). mamberry.ru

Site-ul funcționează mai mult de doi ani. Din când în când, pe măsură ce devin disponibile timp liber am adăuga tot felul de lucruri.
SEO și promovare nu cheltui bani, este încă un magazin mic, scara nu este că, și să plătească bani de optimizare a nu vâna de principiu. Cred că va lua un pic de timp și clientul dvs. ne poate găsi. De exemplu, recent, în mod neașteptat am constatat că, la cerere Yandex „haine de maternitate Nijni Novgorod“, site-ul a ajuns la prima linie.

  • pentru primul an este cheltuit: Gazduire 2112 ruble / an + proiectare + 500 ruble Yandex 1000 de ruble = 3612 ruble.
  • Petrecut timp în valoare de week-end și serile petrecute în cursul anului, va da aproximativ o lună de lucru net.
  • Experiența Dobândite - neprețuit.
  • sora fericit, pentru care fratele a făcut magazinul online.

P.S. Cine are nevoie de consiliere sau care se confruntă cu o sarcină similară - a scrie, care poate solicita 😉

articole similare