View
4
Download
0
Category
Preview:
Citation preview
with style
By Valentin Stanciu
“People have been known to achieve more as a result of working with others than against them.”
Dr. Allan Fromme
Comunicarea cu echipaTrebuie sa fii inteles de ceilaltiTrebuie sa ii intelegi pe ceilalti
Trebuie sa existe un set de reguli de comunicareS‐au creeat standarde de a scrie cod(=“Coding Standards”; abreviat CS)
Aceste standarde au rolul de a mentine codulconsistent, usor de citit si usor de intretinut
Coding StandardsIdentare cu 4 spatii, fara tab (depinde de fiecare proiect)O instructiune pe linieNumele variabilelor locale sa contina doar litere miciCu separatorul de cuvinte ‘_’Constantele globale sa contina doar litere mariNume de variabile si functii care sa denote scopulFara variabile “chestia2” sau nume de functii “BagaMare”Fara constructii ‘smechere’ pe o singura linie ce combina mai multe instructiuni.Daca chiar sunt necesare, ele trebuie documentate.Exemplu negativ:for (int i=1, t=0; i<=A[0]; ++i) A[i] += (t = (A[i] -= B[i] + t) < 0) * 10; // A-=B pe nr mariExemplul de mai sus are si un mic bugMult mai multe detalii vezi [1]
Coding Standards –
PHP
Example
Mentine standardul!
Code Beautification:Aranjeaza codul sa fie usor de cititGNU Indent – C/C++ – [2]Abraxas CodeCheck – C/C++ ‐ analiza completa a codului [3]
In editoareVIM – ‘=‘ ‘=%’ ‘==‘ commands – poate fi configurat safoloseasca stilul utilizatorului sau sa foloseasca GNU IndentEMACS – CTRL+ALT+’\’ commandVisual Studio – on the fly indent + [Ctrl‐K, Ctrl‐F] command
Coordonarea in echipa
Ce se intampla daca 2 oameni lucreaza la acelasi lucru in acelasi timp?Daca cineva gaseste o problema cum o raporteaza?Arhitectura proiectului?
Un proiect are nevoie de o metoda de versionare(Revision Control)In cazul in care se aduce o modificare nepotrivita sa se poata restabili o versiune functionabila cat mai usor
SubversionSubversion [4] ‐ Prescurtat SVN – Sistem de Versionare“Subversion is meant to be a better CVS”Tine atat versiunile curente ale fisierelor cat si versiunile precedenteSistem Client Server
Se poate integra cu apache (mod_dav_svn module)Poate fi configurat ca un server separat – svnserveServerul tine toate modificariile - repositoryul cu toata istoriaClientii iau o versiune, fac modificari pe ea, apoi adauga pe server nouaversiuneServerul tine toate modificarile ca un array de arbori unde fiecare index din array este o revizie
Revision 1 Revision 2 Revision 3 Revision 4 Revision 5
dir2dir1
file1 file2 file3
dir2dir1
file1 file2 file3
Revision 6
Subversion ‐ features
Operatii atomiceO operatie intrerupta nu produce inconsistente
Ramuri de dezvoltare (branching)O ramura cu versiunea stabila a proiectuluiO ramura cu versiunea de dezvoltare si integrare de facilitatiProiectul include modificari aduse altui proiect (vendor branching)
Utilitar ce ajuta: PistonTags
Ex: Cand se lanseaza o noua versiune se creeaza un tag cu numarul ei
Subversion – utilizare
Simplu de utilizatUtilizatorul vede un repository ca o structura clasicadirector/fisiere (serverul tine istoria)Windows ‐> TortoiseSVN [5]Debian Linux ‐> pachetul “subversion”
Creeaza o copie a unui repository in directorul curent:svn checkout http://hackers.devnet.ro/dav-svn/trunk
Fiecare modificare se face local, apoi se trimite la repository
Toate fisierele modificate ‘imbatranesc’ cu ultima versiuneDaca exista 2 modificari diferite aduse aceluiasi fisier se rezolva conflictele (overwrite, merge)
TracWeb‐based software project management and bug trackerDocumentatie pentru proiect in format wikiMentine o evidenta a taskurilor de rezolvat (tickets)
Features, bugsFiecare ticket are o descriere, o lista de discutii, un status
Are integrat un sistem de permisiuniInterfata cu SVN
SVN ExplorerSe pot vedea diferentele intre revizii
Tickete, revizii, documentatie intr‐un pachet unitar
Trac
‐ Browser
Trac –
Tickets
Resurse Utile
1.
C++ Coding Standard –
http://www.possibility.com/Cpp/CppCodingStandard.html2.
Indent –
http://www.gnu.org/software/indent/3.
CodeCheck
–
http://www.abxsoft.com/codchk.htm4.
Subversion ‐
http://subversion.tigris.org/5.
TortoiseSVN
‐
http://tortoisesvn.tigris.org/6.
Trac
‐
http://trac.edgewall.org/
Recommended