with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau...

Post on 22-Aug-2021

4 views 0 download

Transcript of with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau...

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/