This shows you the differences between two versions of the page.
poo-ca-cd:laboratoare:intro [2021/08/26 22:28] ioan_razvan.abagiu |
poo-ca-cd:laboratoare:intro [2022/10/01 22:54] (current) alexandru.olteanu [Laboratorul 0: Introducere] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 0: Introducere ===== | + | ===== Setup Environment ===== |
- | === Instalare Java 17 === | + | ==== Instalare Java 17 ==== |
Pentru POO vom folosi Java 17 și anume OpenJDK 17. | Pentru POO vom folosi Java 17 și anume OpenJDK 17. | ||
Line 9: | Line 9: | ||
==Ubuntu== | ==Ubuntu== | ||
- | 1. Deschideți un terminal - Ctrl + Alt + T | + | 1. Deschideți un terminal - ''Ctrl + Alt + T'' |
- | 2. Adăugați repository-ul de OpenJDK | + | 2. Faceți update la pachetele instalate deja in sistem |
<code bash> | <code bash> | ||
- | $ sudo add-apt-repository ppa:openjdk-r/ppa | + | $ sudo apt update |
</code> | </code> | ||
- | 3. Faceți update la repository | + | 3. Adăugați repository-ul de OpenJDK |
<code bash> | <code bash> | ||
- | $ sudo apt update | + | $ sudo add-apt-repository ppa:openjdk-r/ppa |
</code> | </code> | ||
Line 31: | Line 31: | ||
</code> | </code> | ||
- | 6. Setați variabila JAVA_HOME | + | 6. Setați variabila ''JAVA_HOME'' |
În terminalul deschis: | În terminalul deschis: | ||
Line 41: | Line 41: | ||
JAVA_HOME=”/usr/lib/jvm/java-17-openjdk-amd64” - path-ul poate să difere | JAVA_HOME=”/usr/lib/jvm/java-17-openjdk-amd64” - path-ul poate să difere | ||
- | {{ :poo-ca-cd:laboratoare:openjdk_env.png?nolink |}} | + | {{:poo-ca-cd:laboratoare:openjdk_env2.png?nolink&500|}} |
7. Salvați fișierul apoi închideți-l. În terminalul deschis: | 7. Salvați fișierul apoi închideți-l. În terminalul deschis: | ||
Line 54: | Line 54: | ||
</code> | </code> | ||
- | {{ :poo-ca-cd:laboratoare:java_version.png?nolink |}} | + | {{:poo-ca-cd:laboratoare:java_version.png?nolink&500|}} |
<note important> | <note important> | ||
Line 80: | Line 80: | ||
[[https://jdk.java.net/17/|java 17]] | [[https://jdk.java.net/17/|java 17]] | ||
- | 2. În C:/Program Files creați un folder denumit ‘java’ și mutați tot fișierul de OpenJDK înăuntrul fișierului java cu drepturi de administrator | + | 2. În C:/Program Files creați un folder denumit "java" și mutați tot fișierul de OpenJDK înăuntrul fișierului java cu drepturi de administrator |
+ | |||
+ | 3. Intrați în folderul "bin" din OpenJDK și click dreapta pe address bar iar apoi copy la path | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:java_windows_path.png?nolink&500|}} | ||
- | 3. Intrați în folderul ‘bin’ din OpenJDK și click dreapta pe address bar iar apoi copy la path | ||
- | {{ :poo-ca-cd:laboratoare:java_windows_path.png?nolink&300 |}} | ||
4. Apăsați tasta de windows + E apoi click dreapta pe This PC -> Properties | 4. Apăsați tasta de windows + E apoi click dreapta pe This PC -> Properties | ||
- | {{ :poo-că-cd:laboratoare:java_windows_properties.png?nolink |}} | + | |
+ | {{:poo-că-cd:laboratoare:java_windows_properties.png?nolink&500|}} | ||
5. Jos cu fereastra minimizată sau în dreapta cu fereastra fullscreen -> Advanced System Settings -> Environment Variables | 5. Jos cu fereastra minimizată sau în dreapta cu fereastra fullscreen -> Advanced System Settings -> Environment Variables | ||
- | {{ :poo-ca-cd:laboratoare:java_env_vars.png?nolink |}} | + | {{:poo-ca-cd:laboratoare:java_env_vars.png?nolink&500|}} |
- | 6. Selectați Path din secțiunea 'System variables' -> Edit | + | 6. Selectați Path din secțiunea "System variables" -> Edit |
7. Apăsați New și paste la path-ul pe care l-am copiat anterior -> OK | 7. Apăsați New și paste la path-ul pe care l-am copiat anterior -> OK | ||
- | 8. Selectați Path tot din 'System variables' -> New | + | 8. Selectați Path tot din "System variables" -> New |
- | * nume: JAVA_HOME | + | * nume: ''JAVA_HOME'' |
- | * value: C:\Program Files\java\jdk-17\ - același path anterior dar fară bin | + | * value: ''C:\Program Files\java\jdk-17\'' - același path anterior dar fară bin |
- | {{ :poo-ca-cd:laboratoare:java_windows_javahome.png?nolink |}} | + | {{:poo-ca-cd:laboratoare:java_windows_javahome.png?nolink&500|}} |
- | 9. Apăsați tasta de Windows + R -> tastați 'cmd' și Enter | + | 9. Apăsați tasta de ''Windows + R'' -> tastați "cmd" și Enter |
- | scrieți 'java - -version' pentru a vedea dacă s-a instalat corect. | + | scrieți ''java -version'' pentru a vedea dacă s-a instalat corect. |
- | {{ :poo-că-cd:laboratoare:java_windows_install.png?nolink |}} | + | {{:poo-ca-cd:laboratoare:java_windows_install.png?nolink&500|}} |
+ | ==Mac== | ||
+ | 1. Descărcați .dmg file de aici: | ||
+ | https://www.oracle.com/java/technologies/downloads/#jdk17-mac | ||
+ | |||
+ | 2. Double-click pe .pkg si urmati pasii de instalare a jdk-ului | ||
+ | |||
+ | 3. Verificati in terminal finalizarea instalarii ruland comanda: | ||
+ | <code bash> | ||
+ | $ java --version | ||
+ | </code> | ||
+ | ==== Instalare IntelliJ 2021.2 Community ==== | ||
+ | |||
+ | ==Ubuntu== | ||
+ | |||
+ | 1. Deschideți un terminal - ''Ctrl + Alt + T'' | ||
+ | |||
+ | 2. Instalați IntelliJ | ||
+ | <code bash> | ||
+ | $ sudo snap install intellij-idea-community --classic | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==Windows== | ||
+ | |||
+ | 1. Descărcați ".exe" de Community de [[https://www.jetbrains.com/idea/download/#section=windows|aici]] | ||
+ | |||
+ | 2. Configurați în acest mod următorul meniu pentru a ușura tot flow-ul | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:windows_intellij.png?nolink&500|}} | ||
+ | |||
+ | 3. Restart pentru a se face update la variabilele de mediu | ||
+ | |||
+ | ==== IntelliJ IDEA Ultimate Edition ==== | ||
+ | |||
+ | Fiecare student poate beneficia de o licență gratis de IntelliJ IDEA Ultimate Edition prin intermediul contului de mail de la facultate (cel cu domeniul @stud.acs.upb.ro). Versiunea de Ultimate a IDE-ului vine cu foarte multe beneficii care se rezumă principal la feature-uri noi și suport pentru mult mai multe limbaje de programare și tehnologii decât versiunea de Community. Pentru mai multe detalii, consultați pagina: https://www.jetbrains.com/idea/features/editions_comparison_matrix.html | ||
+ | |||
+ | Pentru a folosi licența, pașii sunt următorii: | ||
+ | - Accesați pagina: https://account.jetbrains.com/login unde introduceți adresa de mail cu care vreți să vă înregistrați contul în secțiunea "Create JetBrains Account" și dați click pe butonul de "Sign Up" | ||
+ | - Intrați pe link-ul trimis pe mail și finalizați procesul de creare a contului | ||
+ | - După ce v-ați creat contul și v-ați asigurat că sunteți logați pe site, accesați pagina https://www.jetbrains.com/community/education/#students și la secțiunea "For students and teachers" selectați "Apply now" | ||
+ | - Completați datele cerute de pagina. Este important ca la secțiunea de email să completați mail-ul primit de la facultate, cel cu domeniul menționat mai sus | ||
+ | - După finalizarea procesului, veți primi pe mailul de facultate o confirmare cum că ați primit licența cu succes. | ||
+ | |||
+ | În continuare, pentru a folosi IntelliJ IDEA Ultimate Edition, la pașii descriși mai sus se modifică următoarele: | ||
+ | |||
+ | ==Ubuntu== | ||
+ | În loc de comanda | ||
+ | <code bash> | ||
+ | $ sudo snap install intellij-idea-community --classic | ||
+ | </code> | ||
+ | folosiți comanda | ||
+ | <code bash> | ||
+ | $ sudo snap install intellij-idea-ultimate --classic | ||
+ | </code> | ||
+ | |||
+ | ==Windows== | ||
+ | Descărcați ".exe" de Ultimate de [[https://www.jetbrains.com/idea/download/#section=windows|aici]] | ||
+ | |||
+ | ==Final steps== | ||
+ | După instalarea IDE-ului, veți fi nevoiți să vă logați cu contul de IntelliJ IDEA proaspăt creat, după care puteți folosi versiunea Ultimate. | ||
+ | {{:poo-ca-cd:laboratoare:login_page_intellij.png?500|}} | ||
+ | ==== Cum creezi un proiect nou în IntelliJ? ==== | ||
+ | |||
+ | 1. Deschide IntelliJ. | ||
+ | |||
+ | 2. Mergi la meniul **File -> New -> Project**. | ||
+ | |||
+ | 3.Selectează proiectul Java, SDK-ul (recomandat **jdk 17**), apoi **Create project from template** și la final **Next**. | ||
+ | |||
+ | 4. Dă un nume proiectului tău și alege-i locația, după care apasă butonul **Finish**. | ||
+ | |||
+ | 5. Acum proiectul este creat, iar pentru a adaugă pachete și clase, apasă **click dreapta pe folderul src -> New -> Package/Java Class**. | ||
+ | |||
+ | <note important> | ||
+ | În cazul în care vreți să deschideți un proiect deja existent: **File-> Open** și selectați folder-ul care conține src. | ||
+ | </note> | ||
+ | |||
+ | ==== Cum rulăm cod? ==== | ||
+ | |||
+ | 1. Pentru exemplu, o să creăm clasa POO și vom scrie o bucata simplă de cod în interiorul acesteia: | ||
+ | |||
+ | <code java> | ||
+ | public class POO { | ||
+ | public static void main(String[] args) { | ||
+ | System.out.println("Hello, POO students!!!"); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | 2. Dacă nu există deja o configurație de Run pentru clasa noastră, o vom crea noi (**Edit Configurations**), dându-i un nume și selectând clasa care ne interesează, după care apăsam butonul **OK**. | ||
+ | |||
+ | 3. Acum putem apăsă pe **Run**, iar dacă nu sunt erori de compilare, programul va afișa output-ul în consolă. | ||
+ | |||
+ | {{:poo-ca-cd:laboratoare:run_config.png?nolink&800|}} | ||
+ | |||
+ | ==== Comenzi de formatere cod ==== | ||
+ | |||
+ | Toate se găsesc în meniul Refactor (click dreapta) și sunt foarte folositoare atunci când lucrezi la un proiect mai mare, dându-ți o mână de ajutor. | ||
+ | |||
+ | * **Rename** (va face automat modificări în constructori și în metoda main) | ||
+ | * **Replace Code Duplicates** (găsește bucăți de cod care se repetă și creează o metodă nouă pentru ele) | ||
+ | * **Copy Refactoring** (duplică o clasă, dar cu o altă denumire) | ||
+ | * **Move Refactoring** (mută o clasă cu totul în alt pachet) | ||
+ | * **Safe Delete** (șterge ceva ce nu este folosit deloc în proiect, iar daca încerci să ștergi ceva folosit vei primi un mesaj de eroare) | ||
+ | * **Change Signature** (poate schimba numele metodei, parametrii acesteia, tipul, ce returnează, etc.) | ||
+ | |||
+ | |||
+ | |||
+ | ==== Folosire Google Checkstyle în proiecte ==== | ||
+ | |||
+ | Veți folosi convenții de coding style la temă/proiect, dar este bine să le utilizați oricând scrieți cod, inclusiv la laborator. | ||
+ | |||
+ | |||
+ | Consultați tutorialul de [[https://ocw.cs.pub.ro/courses/poo-ca-cd/laboratoare/tutorial-checkstyle|aici]] | ||
+ | |||
+ | ==== Git ==== | ||
+ | |||
+ | Pentru integrare Git în IntelliJ consultați tutorialul de [[https://ocw.cs.pub.ro/courses/poo-ca-cd/resurse-utile/tutorial-intellij-git|aici]] | ||
+ | |||
+ | == Comenzi importante == | ||
+ | |||
+ | * **git clone:** clonează repo-ul local | ||
+ | * **git add:** adaugă fișierele modificate | ||
+ | * **git commit:** salvează fișierele | ||
+ | * **git push:** adaugă fișierele pe repo | ||
+ | * **git branch <nume branch>:** creează un nou branch | ||
+ | * **git checkout <nume branch>:** mută pe alt branch | ||
+ | * **git pull:** preia schimbările din repo și le adaugă local | ||
+ | * **git status:** arată statusul proiectului, ce fișiere au fost schimbate | ||
+ | * **git rebase** | ||
+ | |||
+ | == Workflow cu Git din Git Bash == | ||
+ | |||
+ | * git clone <link> | ||
+ | * pentru a adăuga repo-ul local (sau git pull dacă aveți deja clonat repo-ul pe local și s-au produs schimbări) | ||
+ | * git branch <nume branch> | ||
+ | * git checkout <nume branch> | ||
+ | * lucrăm în repo, modificăm și adaugăm fișiere | ||
+ | * git add <fișiere> | ||
+ | * git commit -m “Mesaj de commit” | ||
+ | * git push -u origin <name branch> | ||
+ | * intrăm pe GitHub și facem Pull Request | ||
+ | |||
+ | <note important> | ||
+ | * Tutorial: {{:poo-ca-cd:laboratoare:upload_git_with_gitbash.pdf|Workflow cu Git din Git Bash}} | ||
+ | * Dacă vreți să folosiți Git-ul integrat din IntelliJ: {{:poo-ca-cd:laboratoare:upload_git_with_inteliij.pdf|Workflow cu Git din IntelliJ}} | ||
+ | |||
+ | </note> | ||
+ | |||
+ | ==== GitHub Desktop ==== | ||
+ | |||
+ | GitHub Desktop este un tool dezvoltat de GitHub care simplifică lucrul cu Git. Avantajul acestuia este că acesta ajută printr-o interfață grafică user-friendly realizarea flow-ului descris mai sus și ușurează folosirea diferitelor comenzi disponibile. Momentan este disponibil pentru Windows si macOS. Acesta poate fi descărcat accesând acest [[https://desktop.github.com/|link]]. | ||
+ | |||
+ | <note important> | ||
+ | În continuare puteți găsi un tutorial de folosire a GitHub Desktop în care se crează un branch nou, se adaugă modificările făcute pe repository și se face rebase la branch-ul respectiv: {{:poo-ca-cd:laboratoare:tutorial_github_desktop.pdf|Tutorial}} | ||
+ | </note> |