OOP vs programmazione procedurale - pagina 9

 
Реter Konow:
Capisco perché non lo capisco, non è il mio codice, inoltre è solo una parte di esso. Ma sembra che nemmeno lei lo capisca - o mi sbaglio?

Non uso puntatori...

Prima lavoravo nel tuo stesso modo, solo con le funzioni, ma con il tempo dovevano essere memorizzate in qualche modo, poi dovevo cercarle, ogni funzione faceva le sue azioni extra.

Ora ho ricostruito tutto in classi e quando chiamo la classe Order ottengo tutto ciò di cui ho bisogno e una lista di funzioni e metodi disponibili...

 
Реter Konow:
Ecco perché mi piace fare grandi blocchi generici di codice.

Non si può nemmeno credere all'autore di una buona GUI senza OOP

Risparmiare righe di codice?!

 
СанСаныч Фоменко:

No, il tuo esempio è molto buono.

Non si tratta di programmazione procedurale.

C'è un criterio molto più importante della qualità del programma: la chiarezza del codice.

La soluzione che avete dato è terribile: non è affatto chiaro quale funzione viene chiamata in modo significativo. Scriverei un normale interruttore e un commento per ogni chiamata. Questo è il codice giusto.

Dal tuo esempio concludo che l'OOP è una cosa dannosa.


E perché passare da 100 varianti se si sa in anticipo che solo 1 sarà usata?

Che senso ha uno spool di 100 varianti di switch rispetto a tre righe di codice?

Non è giusto rendere complesso, grande e lento ciò che può essere fatto in modo razionale, ottimale (anche perfetto).

L'OOP è dannoso solo se lo si usa in modo scorretto.

Si prega di rispondere a questo commento.

 
Реter Konow:
Ecco perché mi piace fare grandi blocchi di codice universali.

Cosa li rende universali?

 
Dmitry Fedoseev:

Perché avete bisogno di un interruttore a 100 varianti quando sapete in anticipo che solo 1 sarà usato?

Qual è la chiarezza di un interruttore di 100 varianti rispetto a tre righe di codice?

Fare cose complesse, grandi e lente che possono essere fatte in modo razionale, ottimale (anche perfetto) non è l'approccio giusto.

Si prega di rispondere a questo commento.


Non è uno spoiler - è una documentazione della funzionalità del programma combinata con il testo del programma. Questa è la cosa più importante, non ciò che funzionerà da solo

 
Vladimir Pastushak:

Non uso puntatori...

Prima lavoravo nel tuo stesso modo, solo con le funzioni, ma con il tempo dovevano essere memorizzate in qualche modo, poi dovevo cercarle, ogni funzione faceva le sue azioni extra.

Ora ho ricostruito tutto in classi e quando chiamo la classe Order ottengo tutto ciò di cui ho bisogno e una lista di funzioni e metodi disponibili...

Se è più conveniente per voi, non ho nulla in contrario. Dalla mia esperienza piuttosto ricca nella programmazione, posso dire che qualsiasi compito può essere risolto senza OOP in modo altrettanto efficace, se si applica l'universalizzazione e la compressione alle soluzioni. Questa è un'esperienza confermata da una grande pratica. Forse l'uno o l'altro approccio è legato alle peculiarità individuali del nostro pensiero. Questo è il punto principale che vorrei trasmettere.
 
СанСаныч Фоменко:

Questo non è uno spoiler - è una documentazione della funzionalità del programma combinata con il testo del programma. Questa è la cosa più importante, non ciò che funzionerà da solo


Sia lo slop che la zavorra. Le mosche devono essere separate, le cotolette separate. La documentazione è importante, ma non dovrebbe interferire con il funzionamento del programma.

 
Dmitry Fedoseev:

Cosa li rende universali?

Per esempio, avete bisogno di un blocco che posizioni gli oggetti grafici l'uno rispetto all'altro creando dei controlli. Allo stesso tempo, lo stesso blocco controlla il fenomeno degli oggetti, cioè nasconde alcuni oggetti e ne rivela altri. Calcola anche le dimensioni della barra di scorrimento e le dimensioni complessive della finestra. Calcola anche il movimento del cursore nella barra di scorrimento. Questo è il blocco universale delle relazioni tra oggetti.


O un blocco che controlla la dimensione della finestra quando la maniglia della finestra viene afferrata. O un blocco che controlla gli stati dei controlli. O il blocco che calcola su quale elemento si trova il cursore e contemporaneamente mette a fuoco molti parametri globali...

 
Реter Konow:
Per esempio, avete bisogno di un blocco che posizioni gli oggetti grafici l'uno rispetto all'altro creando dei controlli. Allo stesso tempo, lo stesso blocco controlla il fenomeno degli oggetti, cioè nasconde alcuni oggetti e ne rivela altri. Calcola anche le dimensioni della barra di scorrimento e le dimensioni complessive della finestra. Calcola anche il movimento del cursore nella barra di scorrimento. Questo è il blocco di relazione universale degli oggetti.

Ma questo è implementato attraverso if and switch, vero?

 
Dmitry Fedoseev:

Ma questo è implementato attraverso if and switch, vero?

Sì, questi blocchi hanno entrambi. Ma credetemi - sono compressi al massimo e versatili, perché risolvono una vasta gamma di problemi.
Motivazione: