with style...nume de variabile si functii care sa denote scopul fara variabile “chestia2” sau...

14
with style By Valentin Stanciu

Upload: others

Post on 22-Aug-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

with style

By Valentin Stanciu

Page 2: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

“People have been known to achieve more as a result  of working with others than against them.”

Dr. Allan Fromme

Page 3: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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

Page 4: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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]

Page 5: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

Coding Standards –

PHP

Example

Page 6: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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

Page 7: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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

Page 8: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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

Page 9: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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

Page 10: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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)

Page 11: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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

Page 12: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

Trac

‐ Browser

Page 13: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

Trac –

Tickets

Page 14: with style...Nume de variabile si functii care sa denote scopul Fara variabile “chestia2” sau nume de functii “BagaMare” y Fara constructii ‘smechere’ pe o singura linie

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/