OOP jest często uważany za skuteczną strategię zarządzania złożonością oprogramowania, w przeciwieństwie do programowania proceduralnego innego niż OOP.
Czy były jakieś badania sprawdzające to pojęcie? Czy udowodniono, że OOP często pomaga zarządzać złożonością w dużych projektach?
object-oriented
case-studies
Aviv Cohn
źródło
źródło
Odpowiedzi:
Nie znam żadnych badań z wymiernymi pomiarami. Jak wspomnieli inni w komentarzach do twojego pytania, osiągnięcie tego jest praktycznie niemożliwe. Są jednak dokumenty filozoficzne, które próbują na nie odpowiedzieć.
Mój ulubiony artykuł na ten temat to Out of the Tar Pit Ben Moseley & Peter Marks . Wynika z różnych stwierdzeń z wiarygodnych źródeł o złożonym projekcie systemu do całkiem interesujących wyników.
Out of the Tar Pit stwierdza, że programowanie funkcji jest w rzeczywistości najlepszym paradygmatem do wspierania proponowanych przez nich rozwiązań. Ma to sens, ponieważ z mojego doświadczenia wynika, że złożone systemy OOP z czasem stają się bardzo zbliżone do proceduralnych, a procedury zaczynają wyglądać jak OOP (nie mają składni i innych atrybutów, ale przepływ wykonywania może stać się całkiem podobny). Prawdziwa różnica wynika z innego paradygmatu lub przez połączenie go z OOP. W tej chwili takim paradygmatem jest programowanie funkcjonalne, które w końcu staje się użyteczne w popularnych aplikacjach biznesowych przez zwykłych programistów (wciąż się do nich zbliża).
źródło
Tak, były pewne badania. Oto jeden: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf
Zasadniczo stwierdza, że nie ma mierzalnej różnicy między produktywnością kodu proceduralnego a produktywnością języka OO .... ale prawda jest taka, że tego rodzaju pytania są tak wrażliwe na kontekst, że żadne badanie nie powie ci, co powinieneś zrobić w danej sytuacji .
źródło