Comentariile sunt printre cele mai folosite si abuzate moduri de a documenta codul. Desi acestea nu sunt recomandate pentru toate cazurile acestea pot fi folosite pentru a ascunde diverse imperfectiuni ale codul sau proiectului ca nume neinspirate ale variabilelor sau functiilor, design slab al codului sau lipsa uneltelor de proces (sistem de versionare, issue tracking etc.). Comentariile pot fi utile pentru a explica de ce este facut un lucru in cod, pentru a documenta un design bazat pe pseudo-cod sau pentru a referentia lucruri conexe.
// TODO
Uneltele de documentare a API-urilor au devenit extrem de comune in prezent. Acestea:
Unul dintre cele mai cunoscute unelte de documentare a API-urilor. In acest laborator vom folosi Docstring-uri fiind cea mai utilizata conventie de scriere a comentariilor in cadrul limbajului Python. DoxyGen va genera documentatia automat folosindu-se de prezenta comentariilor in format Docstring.
””” …”””
, implicit procesate ca si comentarii@author <authorName>
, @param <name> <description>
, @return <description>
etc.Pentru a instala DoxyGen puteti folosi comanda:
sudo apt install doxygen
Pentru a putea genera documentatia aceasta are nevoie de un fisier de configurare, Doxyfile. Pentru a genera un template pentru acest fisier puteti folosi comanda:
doxygen -g
Pentru a rula DoxyGen, puteti rula direct in terminal:
doxygen
Daca sunt necesare alte configuratii, atunci va fi necesara schimbarea fisierului Doxyfile.
In cadrul Continuous integration practicile de version control, compilarea si testarea automata sunt combinate astfel incat schimbarile care ajung in repository-ul de version control sunt automat verificate, testate si regenerate rapoartele aferente. Este de preferat sa se faca aceste lucruri complet sau partial pentru a reduce riscul ca schimbarile noi sa introduca probleme ca erori de compilare sau bug-uri.
Pentru ca sunt multi pasi necesari in a executa un plan de Continuous Integration, durata poate sa fie extrem de mare. Datorita acestui fapt, de fiecare data cand se introduc schimbari noi se va prefera rularea unui plan redus(de exemplu care include compilarea si analiza statica, dar nu include testare si analiza dinamica). Planul complet poate sa fie rulat ocazional, cum ar fi peste noapte, cand poate sa dureze mult mai mult.
Pentru a putea beneficia de Continuous Integration, un proiect trebuie sa aiba mai multe caracteristici:
Avantaje:
Dezavantaje:
Un server de Continuous Integration este o masina accesibila din retea care:
Un CI runner (sau nod) e un proces pe o masina care:
Cand un runner este notificat de serverul de CI, acesta:
GitHub furnizeaza o solutie integrata de Continuous Integration printr-un serviciu numit “Actions”.
Acest serviciu poate fi accesat din pagina proiectului, selectand tab-ul Actions, de exemplu.
Pentru a creea un Action nou, este necesara creearea unui fisier de workflow la calea .github/workflows/
din repository. Acest lucru se poate face atat local cat si din GitHub. Fisierul de workflow are extensia .yml
pentru ca foloseste sintaxa YAML si contine indicatii legate de cand si ce este executat in cadrul unui action. Un exemplu de fisier de workflow gasiti aici.
Fisierele ce pot rezulta in urma rularii anumitor pasi pot fi publicate ca artefacte si in cadrul GitHub Actions. Pentru a face acest lucru, puteti folosi urmatoarea sintaxa, dupa pasul de generare al fisierului dorit:
- name: Upload a Build Artifact uses: actions/upload-artifact@v3.0.0 with: # Artifact name name: # optional # Destination path path: # optional
html/index.html
pentru a observa ce functii sunt deja documentate.tree.py
.(TODO 1)_printPreorderTree
si _printPostorderTree
si scrieti cel putin 2 unit teste pentru functia _find
.main
. Pentru a putea face acest lucru, faceti un fork al repository-ului si actualizati branch-ul main
al fork-ului nou creat.