Che cos'è la "visibilità della semantica"?

7

Sto leggendo 97 cose che ogni programmatore dovrebbe sapere , ora sono posizionato in "Applica principi di programmazione funzionale", e c'è un paragrafo che dice:

...A leading cause of defects in imperative code is attributable to mutable variables. Everyone reading this will have investigated why some value is not as expected in a particular situation. Visibility semantics can help to mitigate these insidious defects, or at least to drastically narrow down their location, but their true culprit may in fact be the providence of designs that employ inordinate mutability...

Qual è l'obiettivo della visibilità semantica in questo contesto? Come applicare questo approccio per risolvere i difetti insidiosi delle variabili mutevoli?

    
posta InfZero 13.04.2013 - 23:59
fonte

2 risposte

4

Non sicuro al 100%, ma sembra che parlino di come un linguaggio gestisce l'ambito logico delle variabili. Il caso peggiore sarebbe un linguaggio con solo variabili globali. La mutabilità consente di cambiare "accidentalmente" una variabile. Quindi, se puoi limitare le visibilità (o l'ambito) delle variabili al livello di una funzione, una classe, uno spazio dei nomi, un modulo o unità simili più simili il rischio di cambiare qualcosa che viene utilizzato in luoghi diversi sarebbe molto più basso.

    
risposta data 14.04.2013 - 00:15
fonte
2

Questo si riferisce alla visibilità e alla portata delle variabili. Se hai familiarità con Java, potresti riconoscere l'utilizzo di termini come Pubblico , Privato , Protetto e così via. L'uso corretto di questi termini fa parte di incapsulamento ed è fondamentale per le buone pratiche di programmazione della programmazione orientata agli oggetti.

Rendere variabili private significa che non è possibile accedervi dal codice al di fuori del codice in questione. Il vantaggio è che si può essere certi che non è cambiato o altrimenti disturbato in alcun modo che non si conosce. In altre parole, dovresti solo guardare il codice all'interno di quel singolo file per vedere cosa potrebbe essere fatto a quella variabile, invece di preoccuparti di una base di codice di oltre 1.000.000 e sapere che potrebbe essere cambiato ovunque. Quest'ultimo caso è un problema molto reale per le lingue come un COBOL, in cui tutte le variabili sono globali e qualsiasi codice può influenzare qualsiasi variabile. Gli incubi sono generati in questo modo.

    
risposta data 14.04.2013 - 10:40
fonte

Leggi altre domande sui tag