Nu cred ca e nevoie de un framework la framework. Daca partea de prezentare depinde de business logic, la o schimbare, in mod ideal, efectele trebuie sa se revada doar in prezentare. De exemplu daca partea ta de business logic borbeste JSON, orice framework ai folosi, in orice limbaj, il poti interfata cu business logic-ul, fara modificarea acestuia din urma.
Cat despre starea proiectului in 10 ani. Tocmai asta este problema. Ai un proiect. Ai investit 10 ani in dezvoltarea sa. Daca ai o echipa de 10 oameni care au facut asta, costurile de a ajunge unde esti sunt imense. Sa zicem 25mii euro pe luna, timp de 10 ani, aprox 3milioane de euro.
Acum, frameworkul pe care ai construit, pur si simplu devine abandonat. Si acest lucru, reiterez, sigur se va intampla. Ce faci? Vei avea nevoie de alti 10 ani si alti 3 milioane de euro sa rescrii aplicatia. Ea nu mai e de 10mii de linii, este de miloane.
Nici sa continui cu ce ai nu poti, decat daca e un framework opensource, iar tu decizi ca il intretii pe costurile tale. Poate mai angajezi 5 programatori pentru asta. Rezultatul? Mai amani inevitabilul inca vreo 5 ani.
In urma cu 5-6 ani, toata lumea jura ca Prototype pentru JS este sfant. Este atotputernic. Stabil. Sigur. Si nu va disparea niciodata. Then JQuery came…
Acum, daca ai o aplicatie strans legata de Prototype, trebuie sa il schimbi. Ce faci? Investesti luni de zile (in cazuri fericite) sa treci pe JQuery? Aceste luni au pret dublu: costul productiei si costul oportunitatii pierdute.
In opinia mea, in acest caz ai o singura cale rationala pe care sa mergi. Renunti la Prototype, treci pe JQuery, dar in asa fel incat toata comunicarea cu JQuery sa fie separata de un layer de adaptoare. Aplicatia ta va sti si lucra doar cu metode din adaptoare.
Cand JQuery va disparea, schimbarea va fi simpla. Va trebui sa iti modifici doar layer-ul de adaptoare. Schimbare localizata, redusa, rapida.
Iata o alta poveste. Cand am inceput lucrul la StorageOS, CakePHP era dumnezeul frameworkurilor. Au trecut 5-6 ani. Acum este codasul listei. Laravel si AngularJS duc trena. Ce ma fac? Vreau sa schimb. Trebuie sa schimb.
Norocul nostru este ca avem o separare destul de buna, dezvoltata in ultimii 2-3 ani, de framework. Da, va trebui sa lucram, dar probabil doar vreo 2 luni, nu ani. Ah, si vrem sa trecem, probabil pe Angular care este JS. Backend-ul nostru este in PHP. Interfatarea cu Cake este in PHP. Va trebui sa dezvoltam un layer de JSON. Dar acest lucru va fi relativ usor, pentru ca toata comunicarea cu business logic-ul se face prin Fatade bine definite, izolate de CakePHP.
Si daca va intrebati, este un proiect destul de mare.