This shows you the differences between two versions of the page.
|
mps:laboratoare:laborator-04 [2018/09/21 22:57] iulia.stanica [Lucru cu Git (20 de minute)] |
mps:laboratoare:laborator-04 [2025/10/28 13:07] (current) maria.popescu2812 [Aplicații web pentru MPS - GitHub] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Aplicații web pentru MPS - GitHub ===== | ===== Aplicații web pentru MPS - GitHub ===== | ||
| - | Aplicațiile web pentru managementul proiectelor software integrează mai multe aplicații folosite pentru a asigura o bună comunicare între membrii echipei și monitorizare a evoluției proiectului: wiki, source-code browser, tichete (buguri și solicitări de implementare), calendar (roadmap) etc. [[http://trac.edgewall.org/|Trac]], [[http://www.redmine.org/|Redmine]], [[http://code.google.com|Google Code]] și [[https://github.com|GitHub]] reprezintă cele mai cunoscute platforme ale acestei categorii de aplicații. | + | Aplicațiile web pentru managementul proiectelor software integrează mai multe aplicații folosite pentru a asigura o bună comunicare între membrii echipei și monitorizare a evoluției proiectului: wiki, source-code browser, tichete (buguri și solicitări de implementare), calendar (roadmap) etc. [[http://trac.edgewall.org/|Trac]], [[http://www.redmine.org/|Redmine]], [[http://code.google.com|Google Code]] și [[https://github.com/about|GitHub]] reprezintă cele mai cunoscute platforme ale acestei categorii de aplicații. |
| GitHub oferă următoarele funcționalități: | GitHub oferă următoarele funcționalități: | ||
| Line 25: | Line 25: | ||
| Pentru a vă familiariza cu funcționalitățile sale de bază, accesați [[https://help.github.com/|pagina de ajutor]] a platformei GitHub. | Pentru a vă familiariza cu funcționalitățile sale de bază, accesați [[https://help.github.com/|pagina de ajutor]] a platformei GitHub. | ||
| - | În caz de hazarde naturale, instrucțiunile sunt disponibile [[http://abload.de/img/in_case_of_fireirrtb.jpg|aici]]. | + | <del>În caz de hazarde naturale, instrucțiunile sunt disponibile [[http://abload.de/img/in_case_of_fireirrtb.jpg|aici]].</del> |
| Line 38: | Line 38: | ||
| În activitatea de proiectare se realizează numeroase grafice pentru a descrie componentele și modulele aplicației, legăturile între acestea și cazuri de utilizare. | În activitatea de proiectare se realizează numeroase grafice pentru a descrie componentele și modulele aplicației, legăturile între acestea și cazuri de utilizare. | ||
| - | Una dintre cele mai cunoscute aplicații pentru realizarea de diagrame este [[http://office.microsoft.com/en-us/visio/default.aspx|Microsoft Visio]]. Alternativa lightweight a acestuia este [[http://projects.gnome.org/dia/|Dia]]. Alternativa din familia OpenOffice este [[http://www.openoffice.org/product/draw.html|OpenOffice Draw]]. Toate aceste aplicații conțin un set de imagini/module predefinite (utilizatori, sisteme de calcul, elemente de rețelistică, forme predefinite de imagini de componente). Recomandăm folosirea acestor aplicații pentru realizarea diagramelor și graficelor în realizarea documentației pentru toate proiectele unde este necesar. Aplicațiile de mai sus oferă o interfață grafică user-friendly și permit exportarea într-un număr vast de formate. | + | Una dintre cele mai cunoscute aplicații pentru realizarea de diagrame este [[https://products.office.com/ro-ro/visio/flowchart-software|Microsoft Visio]]. Alternativa lightweight a acestuia este [[http://projects.gnome.org/dia/|Dia]]. Alternativa din familia OpenOffice este [[http://www.openoffice.org/product/draw.html|OpenOffice Draw]]. Toate aceste aplicații conțin un set de imagini/module predefinite (utilizatori, sisteme de calcul, elemente de rețelistică, forme predefinite de imagini de componente). Recomandăm folosirea acestor aplicații pentru realizarea diagramelor și graficelor în realizarea documentației pentru toate proiectele unde este necesar. Aplicațiile de mai sus oferă o interfață grafică user-friendly și permit exportarea într-un număr vast de formate. |
| - | Pentru modelarea arhitecturii (în special pentru SDD) amintim [[http://staruml.io/|StarUML]] (cu suport pentruMacOSX, Linux, Windows) și [[https://www.draw.io/|DrawIO]], soluție online care poate exporta rezultatul atât ca imagine cât și ca pdf. Schema este salvată sub forma unui XML, ceea ce face posibilă salvarea și încărcarea cu ușurință a fișierelor de pe device-ul local direct în aplicația online si invers, pentru editare ulterioară. | + | Pentru modelarea arhitecturii (în special pentru SDD) amintim [[http://staruml.io/|StarUML]] (cu suport pentruMacOSX, Linux, Windows) și [[https://www.draw.io/|DrawIO]], soluție online care poate exporta rezultatul atât ca imagine cât și ca pdf. Schema este salvată sub forma unui XML, ceea ce face posibilă salvarea și încărcarea cu ușurință a fișierelor de pe device-ul local direct în aplicația online si invers, pentru editare ulterioară. Alte aplicatii: [[https://www.visual-paradigm.com/|Visual Paradigm]] sau [[http://astah.net/|Astah]] |
| ===== Limbaje de programare, biblioteci, framework-uri, coding style ===== | ===== Limbaje de programare, biblioteci, framework-uri, coding style ===== | ||
| Line 48: | Line 48: | ||
| Una din ideile importante în alegerea unui limbaj sau biblioteci este că nu există un super-limbaj sau un super-framework care să rezolve toate problemele, indiferent de natura acestora. Domeniul de software engineering s-a dezvoltat tocmai pentru a găsi cele mai bune opțiuni și proceduri pentru o situație dată. | Una din ideile importante în alegerea unui limbaj sau biblioteci este că nu există un super-limbaj sau un super-framework care să rezolve toate problemele, indiferent de natura acestora. Domeniul de software engineering s-a dezvoltat tocmai pentru a găsi cele mai bune opțiuni și proceduri pentru o situație dată. | ||
| - | Alegerea unui limbaj, a unui framework sau a unor utilitare pentru dezvoltare/testare se aleg, în general, ținând cont de două aspecte: | + | Alegerea unui limbaj, a unui framework sau a unor utilitare pentru dezvoltare/testare se realizează, în general, ținând cont de două aspecte: |
| * cât de potrivit este acel limbaj sau framework pentru proiectul dat; | * cât de potrivit este acel limbaj sau framework pentru proiectul dat; | ||
| * cât de acomodați sunt viitorii dezvoltatori cu acel limbaj/framework. | * cât de acomodați sunt viitorii dezvoltatori cu acel limbaj/framework. | ||
| Line 71: | Line 71: | ||
| * [[http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9&manpath=FreeBSD+5.0-current|Kernel Normal Form]] | * [[http://www.freebsd.org/cgi/man.cgi?query=style&sektion=9&manpath=FreeBSD+5.0-current|Kernel Normal Form]] | ||
| * [[http://www.python.org/dev/peps/pep-0008/|PEP 8 -- Style Guide for Python Code]] | * [[http://www.python.org/dev/peps/pep-0008/|PEP 8 -- Style Guide for Python Code]] | ||
| - | * [[http://pear.php.net/|pear Coding Standards]] | + | * [[https://pear.php.net/manual/en/standards.php|pear Coding Standards]] |
| - | * [[http://java.sun.com/docs/codeconv/|Code Conventions for the Java Programming Language]] | + | * [[https://www.oracle.com/java/technologies/javase/codeconventions-contents.html|Code Conventions for the Java Programming Language]] |
| În general, convențiile de codare diferă dar urmăresc aspecte comune: | În general, convențiile de codare diferă dar urmăresc aspecte comune: | ||
| Line 94: | Line 94: | ||
| ===== Exerciții ===== | ===== Exerciții ===== | ||
| - | ==== Responsabilități în echipă (15 minute) ==== | ||
| - | |||
| - | Fiecare membru al echipei scrie pe o foaie mică (A6) două elemente: ce rol are în cadrul echipei și ce tehnologie preferă. Apoi asistentul spune cele două elemente iar membrii echipei spun despre cine era vorba. | ||
| Line 103: | Line 100: | ||
| ==== Lucru la organizarea proiectului (50 de minute) ==== | ==== Lucru la organizarea proiectului (50 de minute) ==== | ||
| - | * Creat infrastructură de prezentare pe GitHub | + | <note tip> |
| - | * fișier readme cu echipa (Nume, prenume, grupă, link către CV); | + | Pentru un tutorial de GitHub, parcurgeți [[https://guides.github.com/activities/hello-world/|ghidul aferent]]. |
| - | * pagină de wiki asociată proiectului; | + | </note> |
| - | * prezentarea generală a proiectului. Evitați repetarea cerinței. Link către cerință; | + | |
| + | * **Creat infrastructură de prezentare pe GitHub** | ||
| + | * fișier **readme** cu echipa (Nume, prenume, grupă, (opt.) link către CV); | ||
| + | * (optional, repo public)pagină de **wiki** asociată proiectului; | ||
| + | * prezentarea generală a proiectului. Evitați repetarea cerinței. [[https://ocw.cs.pub.ro/courses/mps/proiect|Cerința aici]] | ||
| * Rolurile membrilor echipei (dezvoltatori, testeri, team lead/manager, technical writer, analist, consultant); | * Rolurile membrilor echipei (dezvoltatori, testeri, team lead/manager, technical writer, analist, consultant); | ||
| * upload la imaginea arhitecturală; | * upload la imaginea arhitecturală; | ||
| Line 116: | Line 117: | ||
| * Creat infrastructură de bază în repository | * Creat infrastructură de bază în repository | ||
| * directoare pentru surse, documentație, branch-uri, subdirectoare ale acestora; | * directoare pentru surse, documentație, branch-uri, subdirectoare ale acestora; | ||
| - | * creat fișier **text** de tipul CodingStyle; un fișier pentru fiecare limbaj; poate fi inspirat din fișiere similare din proiecte mari; | + | * creat fișier **text** de tipul **CodingStyle**; un fișier pentru fiecare limbaj; poate fi inspirat din fișiere similare din proiecte mari; |
| * fișierul de CodingStyle poate apărea pe wiki; | * fișierul de CodingStyle poate apărea pe wiki; | ||
| * Ca în cadrul oricărui laborator, va debuta cu un scrum meeting (prezentarea de 1 minut a activităților realizate de fiecare membru al echipei) (opțional). | * Ca în cadrul oricărui laborator, va debuta cu un scrum meeting (prezentarea de 1 minut a activităților realizate de fiecare membru al echipei) (opțional). | ||
| + | * Detaliile tehnice stabilite pe github vor fi adaugate si in SDD (optional). | ||
| <note important> | <note important> | ||
| Line 124: | Line 126: | ||
| </note> | </note> | ||
| - | ==== De făcut acasă ==== | ||
| - | Stabilit recenzori pentru pull request-uri. Va exista un recenzor pentru fiecare pull request (poate fi unul singur, pot fi mai mulți). Acesta va comenta codul comis și, dacă totul e în regulă, îl va accepta. | ||
| - | Oricine are permisiuni de push în repository dar e recomandată urmărirea [[https://guides.github.com/introduction/flow/|workflow-ului GitHub]] și folosite pull request-uri (sau merge request-uri pe [[https://about.gitlab.com/2014/09/29/gitlab-flow/|GitLa]]b) pentru faza de recenzie. Este o formă de [[http://smartbear.com/all-resources/articles/what-is-code-review/|code review]] și o bună practică în dezvoltarea aplicațiilor. | + | ==== Exercitiu (15 minute) ==== |
| + | |||
| + | Stabiliți recenzori pentru pull request-uri. Va exista un recenzor pentru fiecare pull request (poate fi unul singur, pot fi mai mulți). Acesta va comenta codul comis și, dacă totul e în regulă, îl va accepta. | ||
| + | |||
| + | Oricine are permisiuni de push în repository dar e recomandată urmărirea [[https://guides.github.com/introduction/flow/|workflow-ului GitHub]] și folosite pull request-uri (sau merge request-uri pe [[https://about.gitlab.com/topics/version-control/what-is-gitlab-flow|GitLab]]) pentru faza de recenzie. Este o formă de [[http://smartbear.com/all-resources/articles/what-is-code-review/|code review]] și o bună practică în dezvoltarea aplicațiilor. | ||
| + | |||
| + | ==== De făcut acasă ==== | ||
| - | Apoi continuați lucrul la proiect. Urmăriți: | + | Continuați lucrul la proiect. Urmăriți: |
| - Să existe cineva care are un rol de a monitoriza activitățile și respectarea termenelor. | - Să existe cineva care are un rol de a monitoriza activitățile și respectarea termenelor. | ||
| - Să fiți pe aceeași pagină, să știți unde vreți să ajungeți. | - Să fiți pe aceeași pagină, să știți unde vreți să ajungeți. | ||
| - | - Să pătrați minute ale întâlnirilor. | + | - Să redactati agenda fiecărei întâlniri. |
| - Să știe fiecare ce are de făcut. Să discutați și să agreați acțiuni, responsabilități și termene. | - Să știe fiecare ce are de făcut. Să discutați și să agreați acțiuni, responsabilități și termene. | ||
| - Să recenzați codul scris de alții. | - Să recenzați codul scris de alții. | ||
| - Să comunicați intern dacă întâmpinați probleme sau dacă nu vă puteți îndeplini la timp atribuțiile. | - Să comunicați intern dacă întâmpinați probleme sau dacă nu vă puteți îndeplini la timp atribuțiile. | ||