Quali sono i vantaggi e gli svantaggi dell'uso di un paradigma di programmazione orientato all'aspetto [chiuso]

10

Ok, ecco la domanda: quali sono i vantaggi e gli svantaggi dell'uso di un paradigma di programmazione orientato all'aspetto.

I miei vantaggi e svantaggi finora:

Vantaggi:

  • Complemento dell'orientamento agli oggetti.
  • Modula le preoccupazioni trasversali migliorando la manutenibilità e la comprensibilità del codice.

Svantaggi:

  • Non il più semplice dei concetti da cogliere - non ben documentato come O-O
  • O-O va abbastanza lontano nella separazione delle preoccupazioni ...

Qualcuno vorrebbe sfidare qualcuno di questi / aggiungere il proprio?

Molte grazie, J

    
posta JHarley1 12.01.2011 - 11:06
fonte

4 risposte

2

Dal punto di vista di un programmatore il cui motto è "Keep it Simple Stupid", valutare l'utilizzo di tali modelli è pericoloso. Per quello che tenta di realizzare, rende un programma molto più difficile da comprendere e di conseguenza più facile da rompere.

Il genio della buona programmazione è nella sua semplicità ironicamente. Programmi complessi potrebbero funzionare, ma sono incubi quando si tratta di manutenzione, e quando si considera che i 2/3 del tempo speso da un programmatore è posto nel correggere errori nei programmi, alla fine non ripaga.

    
risposta data 12.01.2011 - 13:14
fonte
2

La distribuzione delle funzionalità fuori dal luogo di funzionamento aumenta la complessità e i problemi di azione a distanza.

Considero tali approcci progettuali come qualcosa in cui dovremmo evolverci perché il sistema richiede un funzionamento pulito, non progettato all'inizio.

    
risposta data 12.01.2011 - 17:36
fonte
2

Vantaggi aggiuntivi (non tutti)

  • Riutilizzo di classi e aspetti, grazie alla modularità
  • Riduzione dei costi di codifica grazie alla modularità e al riutilizzo
  • Codice più breve grazie alla possibilità di avere un aspetto con il codice che altrimenti sarebbe implementato (sparsi) in più classi
  • Possibilità di aggiungere un comportamento a una classe senza introdurre codice non correlato alla sua responsabilità principale
  • Capacità di ridefinire la semantica di metodi / classi senza che le classi client ne siano a conoscenza

Svantaggi

  • Sovraccarico di runtime quando si utilizzano alcuni costrutti, ad es. CFLOW
risposta data 07.02.2012 - 21:31
fonte
0

Svantaggi: Supporto della catena di strumenti scadente: - il debugger e il profiler potrebbero non conoscere la "programmazione orientata agli aspetti", per questo motivo potrebbero funzionare sul codice come se tutti gli aspetti fossero stati sostituiti da un codice procedurale.

    
risposta data 07.09.2014 - 11:19
fonte

Leggi altre domande sui tag