Aspect 지향 프로그래밍 패러다임 사용의 장점과 단점은 무엇입니까?


10

여기에 문제가 있습니다 : Aspect 지향 프로그래밍 패러다임의 장점과 단점은 무엇입니까?

지금까지 나의 장점과 단점 :

장점 :

  • 객체 방향을 보완합니다.
  • 코드 유지 관리 성과 이해도를 향상시키는 교차 절단 문제를 모듈화합니다.

불리:

  • 파악하기 가장 쉬운 개념은 아님-OO만큼 문서화되지 않음
  • OO는 우려를 분리하는 데 충분합니다 ...

누구든지 이것들 중 하나에 도전하고 싶습니까?

많은 감사, J


1
이미 많은 학습 자료가 있습니다. AOP에 대한 소개 - dotnetslackers.com/articles/net/... . PostSharp (AOP 프레임 워크를) 알아보기 - programmersunlimited.wordpress.com/postsharp-principals을
DustinDavis

답변:


3

"Keep It Simple Stupid"를 모토로하는 프로그래머의 관점에서 이러한 모델의 사용을 평가하는 것은 위험합니다. 달성하려는 노력으로 인해 프로그램을 이해하기가 훨씬 어려워지고 깨지기 쉽습니다.

좋은 프로그래밍의 천재성은 그 아이러니하게 단순하다. 복잡한 프로그램은 작동하지만 유지 관리와 관련하여 악몽이며, 프로그래머가 보낸 시간의 3 분의 2가 프로그램의 오류를 수정하는 데 걸린다고 생각하면 결국에는 돈을 지불하지 않습니다.


2

운영 현장에서 기능을 배포하면 복잡성과 거리 별 행동 문제가 증가합니다.

시스템이 처음에는 설계되지 않고 깔끔한 작동을 요구하기 때문에 그러한 설계 방식이 진화해야 할 것으로 생각합니다.


2

추가 장점 (모두는 아님)

  • 모듈화 덕분에 클래스 및 측면 재사용
  • 모듈화 및 재사용으로 인한 코딩 비용 절감
  • 여러 클래스로 구현 (분산) 될 수있는 코드를 사용하는 기능 덕분에 코드가 짧아짐
  • 주요 책임과 관련이없는 코드를 클래스에 도입하지 않고 클래스에 동작을 추가하는 기능
  • 클라이언트 클래스에 알리지 않고 메소드 / 클래스의 의미를 재정의하는 기능

단점

  • cflow와 같은 일부 구문 사용시 런타임 오버 헤드

0

단점 : 툴체인 지원 부족 :-디버거와 프로파일 러는 "Aspect Oriented Programming"에 대해 알지 못할 수 있습니다. 이러한 이유로 인해 모든 측면이 절차 코드로 대체 된 것처럼 코드에서 작동 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.