I decoratori / annotazioni sono il risultato di cattive decisioni di progettazione?

1

Parlando genericamente, ci sono linguaggi di programmazione che fanno uso più o meno di annotazioni e decoratori.

Sia per aggiungere informazioni di tipo alle variabili in un linguaggio tipizzato dinamicamente o per aggiungere "metadati" a metodi e classi in un contesto di framework. Lo "scopo" di questi è sempre quello di estendere in qualche modo la lingua nelle sue capacità o renderla più flessibile in un certo modo.

Ora sembra tutto a posto, vero? Usando un linguaggio tipizzato in modo dinamico e vuoi aggiungere alcune informazioni di tipo alle tue variabili? - Basta usare i decoratori. Devi fare in modo che quella classe sia gestita da remoto da un app-server? Dillo aggiungendo un'annotazione.

Queste cose mi sembrano sintomi. I sintomi sono causati da un problema di progettazione sottostante. O mi sbaglio moltissimo su questo?

    
posta Robin 21.12.2015 - 14:36
fonte

1 risposta

5

Stai molto male in proposito. ;)

Un decoratore in Python è più di una semplice informazione. È un codice eseguibile. Ciò significa che puoi applicare le preoccupazioni in modo dichiarativo. Uno stile dichiarativo mantiene il tuo codice in ordine - non c'è bisogno di torturare il tuo impianto idraulico / design per esprimere relazioni e intenti. I decoratori sono assolutamente brillanti nell'applicare middleware .

Nei sistemi di tipo statico, le annotazioni sono informazioni, ma sono informazioni incredibilmente preziose. Se riesco a identificare, benché le annotazioni, le caratteristiche di un'unità di codice, posso quindi assegnare / modificare in modo generico i comportamenti in base a tali caratteristiche. Di nuovo, questo consente di apportare delle semplici modifiche dichiarative contro l'hacking del mio modello di software per esprimere lo stesso intento.

    
risposta data 21.12.2015 - 14:59
fonte

Leggi altre domande sui tag