GitHub, Environment-uri, Deployment Pull/Push, Multi-Machine, CI/CD
Intrebare rapida: cine a pierdut vreodata un fisier important? Un document, o poza, un proiect de facultate la 3 dimineata?
[Pauza - toata lumea a patit-o, asteapta zambete dureroase]
Acum imaginati-va ca pierdeti codul aplicatiei pe care ati lucrat 3 sesiuni. Asta e cosmar. GitHub rezolva problema asta. Si face mult mai mult.
Azi trecem de la 'lucrez singur pe laptopul meu' la 'lucrez profesional, de oriunde, cu backup automat si deployment la un click distanta'. E ca si cum ati trece de la un atelier din garaj la o fabrica moderna.
Git e un sistem de version control. Suna fancy. Dar stiti ce e de fapt? E un 'Ctrl+Z' pe steroizi. Nu doar ultimul pas, ci FIECARE pas. Din TOATA istoria proiectului.
[Pauza]
GitHub e locul unde traieste codul vostru online. Ganditi-va la el ca la un seif in cloud. Codul e acolo, versiunile sunt acolo, istoricul e acolo. Daca vi se strica laptopul, nu pierdeti nimic. Zero. Nada.
Regula de aur a commit-urilor: commit-ul trebuie sa spuna CE ai facut, nu cum. 'Adaugat pagina de login' - bun. 'Modificat fisiere' - rau. E ca diferenta intre 'Am gatit spaghete' si 'Am facut ceva in bucatarie'.
[Pauza pentru ras]
Creeaza un repo pe GitHub, fa un commit, arata istoricul. 3 minute. Subliniaza cat de simplu e.
Ati auzit de 'a lucra in productie'? E echivalentul digital al a opera pe cord deschis. Orice greseala o vede toata lumea. Azi invatam sa evitam asta.
[Pauza]
Analogia perfecta: Dev e bucataria restaurantului. Aici experimentezi retete, faci mizerie, gresesti. Staging e degustarea cu prietenii. Production e cand deschizi restaurantul si vin clientii. Nu le servesti experimentele din bucatarie.
[Pauza - lasa analogia sa se aseze]
In practica: avem branch-uri diferite pe GitHub pentru fiecare mediu. Branch-ul 'main' e productia. Branch-ul 'dev' e atelierul. Niciodata nu modifici direct pe main.
Exista doua moduri prin care codul ajunge pe server. Pull: serverul vine si ia codul. Push: tu trimiti codul la server. Ca diferenta intre a comanda mancare acasa (pull) si a duce tu mancarea la cineva (push).
[Pauza]
Recomandarea mea? Incepeti cu push ca sa intelegeti procesul. Apoi treceti pe pull cand va simtiti confortabil. E ca si cum inveti sa conduci cu schimbator manual inainte de automat. Intelegi mai bine ce se intampla sub capota.
Arata ambele metode. Push: rsync fisierele. Pull: git pull pe server. Compara viteza si simplitatea.
Imaginati-va scenariul: lucrati pe laptop acasa. Ajungeti la birou, deschideti PC-ul. Faceti 'git pull'. Tot ce ati facut acasa e acolo. Continuati exact de unde ati ramas. Fara stick USB, fara email catre voi insiva, fara Google Drive.
[Pauza]
Stiti cate email-uri cu 'final_v2_FINAL_asta_e_bun.zip' ati trimis in viata voastra? Cu GitHub, zero. Niciodata. Este o singura sursa de adevar, si e in cloud.
[Pauza pentru ras]
Singurul lucru de care trebuie sa aveti grija: MEREU faceti pull inainte de a incepe sa lucrati. Daca uitati si lucrati pe o versiune veche, o sa aveti ce se numeste 'merge conflict'. Si merge conflict-ul e ca o cearta intre doi prieteni care au rescris aceeasi pagina din carte diferit.
Cere participantilor sa faca un commit pe un dispozitiv si un pull pe altul (sau simuleaza cu doua foldere). Sa vada ca merge.
CI/CD. Continuous Integration, Continuous Deployment. Suna corporatist? E de fapt foarte simplu: faci push pe GitHub si serverul se actualizeaza singur. Automat. Fara sa te conectezi prin SSH, fara sa copiezi fisiere, fara nimic.
[Pauza - lasa efectul wow]
E ca si cum ai pune o scrisoare in cutia postala si ea s-ar livra singura, s-ar deschide singura, si destinatarul ar citi-o instant. Magie? Nu. Automatizare.
Acesta e momentul in care va simtiti ca adevarati ingineri software. Push, astepti 30 de secunde, refresh in browser, si noua versiune e live. E ca un superpotere.
Fa o modificare mica (schimba un text sau o culoare), commit, push, arata cum se actualizeaza pe server automat. Impactul e enorm.
[Asteapta reactia - de obicei e 'Whoa!']
CI/CD pe main inseamna ca orice push pe main ajunge instant la utilizatori. De aceea testam pe branch-ul dev INAINTE. CI/CD fara teste e ca un avion pe pilot automat fara radar. Zboara, dar nu stii in ce.
Hai sa vedem unde suntem. In 4 sesiuni, am mers de la o idee pe o foaie la: o aplicatie cu design modern, multi-limba, dark mode, autentificare, securizata, pe un server in cloud, cu version control pe GitHub, si deployment automat.
[Pauza lunga - lasa impactul]
Asta e ceea ce o echipa de 3-4 oameni face in cateva saptamani. Voi ati facut-o in 4 sesiuni. Fara sa scrieti cod manual. Bine ati venit in era AI.
In ultima sesiune, punem totul cap la cap. Incepem o aplicatie noua de la zero si parcurgem tot fluxul: idee, documentatie, design, cod, deployment, GitHub, CI/CD. Tot. De la 0 la produs functional in 60 de minute. E testul final. Si o sa fie spectaculos.
Intrebari? Confuzii cu GitHub? Cu CI/CD? Acum rezolvam tot. Sesiunea 5 trebuie sa fie fluida.
| Pas | Timp |
|---|---|
| Deschidere + Recap Sesiunea 3 | 4 min |
| Pasul 1 - Concepte GitHub | 10 min |
| Pasul 2 - Environment-uri | 8 min |
| Pasul 3 - Deployment Pull/Push | 10 min |
| Pasul 4 - Multi-Machine | 8 min |
| Pasul 5 - CI/CD | 12 min |
| Q&A | 8 min |
| TOTAL | ~60 min |