Ok, oto pytanie: jakie są zalety i wady korzystania z paradygmatu programowania zorientowanego na aspekty.
Moje dotychczasowe zalety i wady:
Zalety:
- Uzupełnia orientację obiektu.
- Modularyzuje przekrojowe problemy poprawiające utrzymanie kodu i zrozumiałość.
Niekorzyść:
- Nie jest to najłatwiejsza koncepcja do uchwycenia - nie tak dobrze udokumentowana jak OO
- OO posuwa się wystarczająco daleko w rozdzielaniu obaw ...
Czy ktoś chciałby zakwestionować którekolwiek z nich / dodać własne?
Wielkie dzięki, J
learning
self-improvement
JHarley1
źródło
źródło
Odpowiedzi:
Z punktu widzenia programisty, którego motto brzmi „Keep It Simple Stupid”, ocena użycia takich modeli jest niebezpieczna. To, co próbuje osiągnąć, sprawia, że program jest znacznie trudniejszy do zrozumienia, a w konsekwencji łatwiejszy do złamania.
Geniusz dobrego programowania polega na prostocie jak na ironię. Złożone programy mogą działać, ale są koszmarami, jeśli chodzi o konserwację, a jeśli weźmiesz pod uwagę, że programista poświęca 2/3 czasu na naprawę błędów w programach, to w końcu się nie opłaca.
źródło
Dystrybucja funkcjonalności poza miejsce działania zwiększa złożoność i problemy z działaniem na odległość.
Uważam takie podejście do projektowania za coś, w co należy ewoluować, ponieważ system wymaga tego do czystej pracy, a nie od samego początku.
źródło
Dodatkowe zalety (nie wszystkie)
Niedogodności
źródło
Wada: słaba obsługa łańcucha narzędzi: - debugger i profiler mogą nie wiedzieć o „Programowaniu zorientowanym na aspekty” z tego powodu mogą pracować na kodzie, tak jakby wszystkie aspekty zostały zastąpione kodem proceduralnym.
źródło