Unelte și strategii refactorizare Django

python
refactoring
django

(Stanciu Bogdan Mircea) #1

Salutare! Am sub mentenanță un proiect dezvoltat in Django. Este un Dashboard clasic în care se crează administratori cu diferite nivele de permisiuni ce pot la rândul lor crea utilizatori și niște obiecte de tip licențe.

Utilizatorii și licențele nu sunt relevante. La început exista un singur tip de Administrator, să ii spunem root. Pentru asta a fost creată o aplicație Django (pentru cei ce nu cunosc Django asta este echivalentului unui pachet/componentă). Aici s-au definit niște endpoint-uri cu diferite functionalități.

Când a fost nevoie de un nou tip de Administrator, pentru a salva timp, s-a duplicat aplicația de admin existentă și s-a modificat cod pe colo, pe colo.

Astfel s-au creat 3 tipuri de aplicații. Fiecare face cam același lucru doar că un pic diferit. Dacă vreau acum să adaug o functionalitate nouă administratorilor trebuie să duplic codul pentru toate cele 3 aplicații. Plus teste unitare pentru toate.

Mă gândesc serios să reunesc cele 3 intr-o singură aplicație. Momentan îmi fac o strategie și poate aveți ceva recomandări pentru mine.

Există tool-uri ce mă pot ajuta? Am urmărit o parte din seria de tutoriale ale lui Christopher Okhravi, recomandată de iamtz, de acolo mi-a venit idea folosirii de diagrame UML pentru a vizualiza ce metode utilizează fiecare aplicație.


(cosmos) #2

Presupanand ca folosesti un ide(PyCharm) cred ca ar trebui sa stie sa iti genereze el diagrama UML


(Stanciu Bogdan Mircea) #3

Da, folosesc Pycharm dar din păcate doar versiunea comercială oferă extensia Diagrame.

Am găsit un software simpluț DIA, merge și pe Ubuntu. O să schițez acolo diagramele apoi am să caut un tool cu care să fac o diferență intre fișere, să pot compara metodele.