1.1 Programe mari

Am învățat deja cum să scriem programe mici, așa că acum vom învăța cum să scriem programe mari. După cum știți, cu cât programul este mai mare și mai complex, cu atât se plătesc mai mulți bani pentru dezvoltarea lui :) Și să începem cu un mic context ...

Pe măsură ce programele cresc în dimensiune, dezvoltatorii se confruntă cu două noi provocări:

  • Un număr mare de oameni lucrează la același program.
  • Nu există o astfel de persoană care să cunoască întregul cod al programului.

Foarte des, au început să apară situații când un programator a remediat o eroare într-un loc al programului și, în același timp, a spart ceva în altul. Documentația de lansare are chiar și această glumă:

Lista modificărilor:

  • S-au remediat erori vechi :)
  • S-au adaugat altele noi :(

Apoi au venit cu două abordări pentru a rezolva această problemă: tehnică și managerială.

Abordarea tehnică a fost că programele au fost împărțite în părți: biblioteci și module . Fiecare astfel de modul a fost o cărămidă mică din care au fost apoi construite proiecte mari. Bibliotecile sunt astfel de componente universale care pot fi utilizate în diferite programe.

Abordarea managerială a fost și mai interesantă - au limitat numărul de oameni care puteau lucra la un proiect/biblioteca. Din punct de vedere empiric, chiar au venit cu o regulă: echipa ar trebui să fie atât de mare încât „s-ar putea hrăni cu două pizza ” . Acest lucru înseamnă de obicei că, dacă există mai mult de 8 persoane care lucrează la un proiect , atunci acesta trebuie împărțit în două proiecte.

A devenit popular în comunitatea de dezvoltatori Java să scrie biblioteci pentru toate ocaziile și să le facă disponibile public. Astfel, programatorii Java nu puteau scrie din nou același cod (care era adesea brut și conținea erori), ci să folosească soluții gata făcute și dovedite .

Un stimulent suplimentar a fost faptul că limbajul Java a câștigat o mare popularitate la scrierea soluțiilor pe partea de server (a funcționat pe backend). În primul rând, software-ul server are cerințe mai mari de fiabilitate, iar utilizarea bibliotecilor testate în timp este întotdeauna de preferat în locul scrierii propriului cod.

În al doilea rând, serverele nu au practic limite în ceea ce privește dimensiunea codului. Dezvoltatorul unei aplicații mobile încearcă să o înghesuie în 10 megaocteți, o aplicație desktop - în 100 megaocteți. Și un dezvoltator Java backend poate înghesui câteva zeci de gigaocteți de biblioteci într-un proiect și nimeni nu-i va spune un cuvânt :)

Apropo, aceasta nu este o glumă. Puteți întâlni cu ușurință un proiect de backend cu câteva zeci de module și câteva sute de biblioteci. Dar a devenit extrem de dificil să descrii (și să schimbi!) scripturi de construcție pentru astfel de proiecte.

Și apoi a apărut Maven.

1.2 Introducere în Maven

Maven este un „cadru” special pentru managementul proiectelor. Standardizează 3 lucruri:
  • Descrierea proiectului;
  • Scripturi de construire a proiectelor;
  • Dependențe între biblioteci.

Predecesorul lui Maven a fost Ant , iar succesorul său este Gradle . Dar Maven a fost cel care a dezvoltat și perfecționat cele trei standarde enumerate și, de asemenea, a reglementat interacțiunea lor. El a fost cel care a adus munca comunităților Java la un nou nivel. Să ne uităm la asta mai detaliat.

Maven

Din punct de vedere tehnic, Maven este un program/serviciu special, al cărui scop principal este gestionarea procesului de construire a proiectelor. Poate fi pur și simplu descărcat ca arhivă și dezambalat în orice director. Nu aveți nevoie de un instalator special pentru asta.

Ea nu are o interfață grafică - toate comenzile îi sunt date folosind consola . Pentru a face și mai confortabil lucrul cu acesta, se recomandă să înregistrați variabile speciale de mediu în sistemul de operare.

Maven are, de asemenea, un depozit special (director / folder) unde stochează bibliotecile pe care le folosește la construirea proiectelor. Va trebui să selectați un folder de pe disc și să îl atribuiți ca depozit.

Un alt lucru interesant este prezența unui depozit Maven global pentru toate bibliotecile, dar despre asta vom vorbi puțin mai târziu.

1.3 Descărcați și instalați Maven

Maven are un site oficial maven.apache.org . Există multă documentație despre proiect, așa că dacă aveți dificultăți sau întrebări suplimentare - intrați, nu vă sfiați.

Tot pe pagina de descărcări ( https://maven.apache.org/download.cgi ) puteți descărca arhiva maven (apache-maven-3.8.5-bin.zip). Arhiva dezambalată va dura undeva în jur de 10 MB, deși depozitul maven local va necesita în cele din urmă câteva sute de megaocteți de memorie.

Maven este scris în Java și necesită un JRE de cel puțin versiunea 7, precum și variabile de mediu JAVA_HOME definite.

Doar creați un folder pentru Maven pe computer, de exemplu, d:\devtools și extrageți arhiva cu Maven în ea. Ca rezultat, ar trebui să obțineți un folder precum d:\devtools\maven\bin , unde vor fi localizate principalele binare ale proiectului.

1.4 Variabile de mediu

După aceea, trebuie să adăugați calea către folderul bin din arhiva dezambalată la variabila de mediu PATH.

Pentru a seta variabila de mediu în Windows 10, trebuie să mergeți la Panou de control - Sistem - Setări avansate de sistem. Apoi faceți clic pe „Environment Variables”, găsiți PATH și selectați „Edit”, apoi adăugați calea d:\devtools\maven\bin la sfârșitul liniei. Atenție, calea trebuie să ducă exact la folderul bin.

Pe un sistem de operare bazat pe Unix, variabila de mediu poate fi adăugată cu o comandă de consolă:

export PATH=/opt/apache-maven-3.8.5/bin:$PATH

Dacă ați făcut totul corect, atunci în consolă trebuie să tastați comanda: „mvn -v”. Ca răspuns, veți vedea ceva de genul:

C:\Users\Zapp>mvn -v
Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 15:51:28+0200)
Maven home: T:\apache-maven-3.0.5\bin\..
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_65\jre
Default locale: en_US, platform encoding: Cp1251
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"

1.5 Maven Maven local

De asemenea, puteți seta un folder special în care Maven va stoca biblioteci jar pe care le va folosi atunci când construiește proiecte. Acest folder se numește depozitul Maven local .

Dacă nu este specificat un astfel de folder, Maven îl va crea în directorul principal al utilizatorului curent. Directorul meu este: C:\Users\Zapp\.m2

Dosarul are un nume destul de specific „.m2”. Deși nu îi sperie pe utilizatorii Linux - există o abordare destul de comună pentru denumirea diferitelor „depozite” și/sau orice altă stocare a informațiilor despre servicii.

Important! Nu plasați Maven în folderele de sistem, deoarece va avea nevoie de permisiuni de scriere în aceste foldere în timpul funcționării, ceea ce poate fi de interes nesănătos pentru antivirus sau pentru sistemul de operare.

Înainte de versiunea 3.5, Maven necesita o variabilă de mediu numită M2_HOME, dar aceasta nu mai este necesară.

Puteți citi mai multe despre configurarea Maven la link: https://maven.apache.org/configure.html