Sto seguendo un corso di programmazione intermedio che sottolinea l'uso di invarianti. Non li ho mai usati prima e sembrano impiegare più tempo per creare. L'industria dell'ingegneria del software sottolinea l'uso degli invarianti?Usi le invarianti quando programmi?
risposta
Dipende da chi chiedi: io uso gli invarianti semplicemente perché facilita la vita. Imparare le invarianti è come imparare a scrivere alla cieca. Ogni volta che usi un invariante, ne sai di più sul tuo codice. Se inserisci l'invariante come commento nel tuo loop, aiuta il lettore A LOT. Direi che l'uso di invarianti rende la creazione e il mantenimento del codice sorgente molto più economico, e ti rende in grado di creare algoritmi molto più sofisticati, che sono ancora mantenibili.
E in contrasto con OOP, non ho mai visto nessuno perdere tempo usando gli invarianti.
Non penso molto alle invarianti, non tanto alle pre/post-condizioni. Probabilmente dovrei pensare più alle invarianti, ad essere onesti.
Una cosa da considerare è l'immutabilità: se si utilizza un linguaggio OO ma si rendono immutabili i tipi dove è possibile, non è necessario preoccuparsi di invarianti quanto: se lo stato è valido per iniziare, rimarrà valido
Sembra proprio che il tuo corso sottolinei un po 'troppo gli invarianti ... ma dipende da cosa stai facendo. Sono più appropriati in alcune situazioni rispetto ad altri. Forse il tuo docente è solo un grande fan di loro con tanta esperienza in settori in cui sono davvero utili.
Dopo aver appreso cosa sono e cosa significano gli invarianti, tende a cambiare il modo in cui ragionate sul codice. Voglio dire, raramente scrivo invarianti espliciti. Ma spesso ho una mia idea dell'invarianza nel codice che sto scrivendo. Questo ti porta a scrivere codice che è molto più semplice. Nella maggior parte dei casi si finisce con un codice così semplice che non è necessario scrivere un commento esplicito sull'invarianza. Eppure le persone che non conoscono le invarianti scrivono il codice che è molto più complicato :)
- 1. Usi le costanti quando lavori con NSDictionary?
- 2. Quando usi 'self' in Python?
- 3. Cosa succede dietro le quinte quando usi super()
- 4. Quando utilizzare HTML5 in Android? quando non usi?
- 5. Accedi due volte quando usi SyncAdapters
- 6. Dovresti mai usare this.setState() quando usi redux?
- 7. Quando usi encodeWithCoder: e initWithCoder: su iPhone?
- 8. Usufruisci del serializzatore Kryo quando usi Pyspark?
- 9. Specifica invarianti sui costruttori di valore
- 10. Disaccoppiare i programmi utilizzando le code
- 11. Alcune lingue e usi per le monadi
- 12. Usi asserzioni?
- 13. Usi comuni per i puntatori?
- 14. Esiste uno strumento di individuazione invariabile statico per i programmi C?
- 15. MATLAB - esegui il distruttore di oggetti quando usi 'clear'?
- 16. Usi il metodo onPostCreate()?
- 17. Come puoi riprovare dopo un'eccezione in Javascript quando usi le promesse?
- 18. Puoi tu e in che modo incorpori le immagini in un'email quando usi l'API di Gmail?
- 19. Quando si attivano i programmi di caricamento classi Java?
- 20. Devi sfuggire a una barra in avanti quando usi mod_rewrite?
- 21. Usi NDepend?
- 22. virgola mobile zero implementazioni C (IEEE 754 invarianti?)
- 23. quali sono le differenze di condizione pre, condizione post e invarianti nella terminologia informatica
- 24. cmd.exe: quando usare chiamata per eseguire programmi esterni
- 25. CPU ad alto kernel quando si eseguono più programmi python
- 26. .Net di file app.config ignorato quando sotto c: \ Programmi \
- 27. come scrivere su file quando usi gulp e mocha?
- 28. Mantieni i nomi delle righe quando usi rbind.fill in R
- 29. Come mostrare diversi usi delle funzioni quando si utilizza varargin (...)?
- 30. Hai sempre bisogno di una classe ObjectFactory quando usi JAXB?
non è una domanda, si vota per chiudere – cletus
È molto importante. La parola "Sondaggio" potrebbe essere fuorviante, la domanda dovrebbe probabilmente avere il titolo "Dovremmo usare gli invarianti?" o qualcosa di simile. –
Potresti approfondire cosa intendi usandoli, ad es. dato un esempio? È possibile che le persone usino ciò di cui stai parlando senza rendersi conto che questo è ciò che intendi per "invariante". – Edmund