OOP vs programmazione procedurale - pagina 25

 

1.Fatto alcune includono classi basate sull'articolo. Non capisco perché usare le classi invece di fare solo un file include con funzioni richiamabili?

2.Ho una domanda, per migliorare la velocità di ottimizzazione è meglio dividere i file include in diversi o mettere tutto in uno?

3. Ho la sensazione che se chiamo l'indicatore in un file include, piuttosto che in un Expert Advisor, la velocità di ottimizzazione è più veloce...?

 
forexman77:

1.Fatto alcune includono classi basate sull'articolo. Non capisco perché usare le classi invece di fare solo un file include con funzioni richiamabili?

2.Ho una domanda, per migliorare la velocità di ottimizzazione, è meglio dividere i file include in diversi o mettere tutto in uno?

3. Ho la sensazione che se chiamo l'indicatore in un file include, piuttosto che in un EA, la velocità di ottimizzazione è più veloce...?

1. Le classi saranno necessarie quando sarà necessario il polimorfismo, cioè le chiamate di diverse funzioni con scopo simile. L'esempio più semplice è quando un blocco riceve un puntatore a un ordine e abbiamo bisogno di ottenere il suo biglietto. Prendendo in considerazione gli ordini reali e storici, così come MT4 e MT5 - otteniamo quattro diverse funzioni con cui lavorare.

In caso di approccio procedurale - dobbiamo avere un certo interruttore che chiamerà la funzione necessaria a seconda del tipo di ordine. In caso di OOP - chiamiamo semplicemente la funzione per ottenere il biglietto. La funzione necessaria sarà chiamata automaticamente. Tuttavia, nel caso di OOP - abbiamo bisogno del lavoro preliminare per definire la gerarchia di classi e funzioni.

2. L'ottimizzazione viene effettuata secondo il modulo pronto per l'esecuzione. Quindi non importa se il codice sorgente è diviso in file o se è stipato in un unico grande file. La divisione in file è unicamente la scelta del programmatore, come gli conviene.

3. Non c'è assolutamente nessuna differenza. Personalmente, non chiamo mai nessun indicatore, preferendo calcolare i loro valori direttamente in un Expert Advisor.

 
George Merts:

1. Le classi saranno necessarie quando è necessario il polimorfismo - cioè chiamare diverse funzioni con scopi simili. L'esempio più semplice - un blocco riceve un puntatore a un ordine, abbiamo bisogno di ottenere il suo biglietto. Prendendo in considerazione gli ordini reali e storici, così come MT4 e MT5 - otteniamo quattro diverse funzioni con cui lavorare.

In caso di approccio procedurale - dobbiamo avere un certo interruttore che chiamerà la funzione necessaria a seconda del tipo di ordine. In caso di OOP - chiamiamo semplicemente la funzione per ottenere il biglietto. La funzione necessaria sarà chiamata automaticamente. Tuttavia, nel caso di OOP - abbiamo bisogno del lavoro preliminare per definire la gerarchia di classi e funzioni.

2. L'ottimizzazione viene effettuata secondo il modulo pronto per l'esecuzione. Quindi non importa se il codice sorgente è diviso in file o se è stipato in un unico grande file. Suddividerlo in file è interamente una scelta del programmatore che lo fa da solo.

3. Non c'è assolutamente nessuna differenza. Personalmente non chiamo mai nessun indicatore, preferendo calcolare i loro valori direttamente in un Expert Advisor.


Capisco. Grazie. Naturalmente, tutto ciò torna utile perché possiamo avvolgere un sacco di codice in file e classi e lasciare solo un paio di righe nell'Expert Advisor.

Separatamente, è più facile controllare i frammenti di codice per gli errori, aggiungere qualcosa di nuovo, ecc. Il codice diventa più facile da capire, specialmente per µl5.

 
Реter Konow:
Non è chiaro solo perché così tanti giardinieri locali sono diventati scavatori convinti e fanno una fossa nel loro terreno sotto un albero).

Devono aver deciso di costruire una casa anche sul loro terreno. Cosa c'è di sbagliato in questo?

Sì, certo, anche molti dei grandi canali che l'umanità oggi usa sono scavati con una pala. Ma allora, semplicemente, non c'erano escavatori. Allora perché scavare una fossa con una pala ora che ci sono gli escavatori?

 
Nikolai Semko:

Devono aver deciso di costruire una casa anche sul loro terreno. Cosa c'è di sbagliato in questo?

Sì, certo, anche molti dei grandi canali di cui l'umanità oggi gode sono scavati con una pala. Ma allora, semplicemente, non c'erano escavatori. Allora perché scavare una fossa con una pala ora che ci sono gli escavatori?


Il punto è che quello che tu intendi per "pala" non è affatto quello che io intendo per programmazione "procedurale". Non ne parlo affatto, si potrebbe dire. Sto dicendo che i metodi di risoluzione dei problemi che alcune persone usano qui sono molto deboli di per sé, quindi che differenza fa - escavatore o pala, se entrambi non sono usati efficacemente?


È una questione di professionalità, e la sua assenza non può essere sostituita da uno strumento...


E se avete professionalità, potete costruire montagne usando metodi procedurali. Credetemi.

 
Реter Konow:

Il punto è che quello che tu intendi per "shovelware" non è affatto quello che io intendo per programmazione "procedurale". Non ne parlo affatto, si potrebbe dire. Sto dicendo che i metodi di risoluzione dei problemi che alcune persone usano qui sono molto deboli di per sé, quindi che differenza fa - escavatore o pala, se entrambi non sono usati efficacemente?


È una questione di professionalità, e la sua assenza non può essere sostituita da uno strumento...


E se avete professionalità, potete costruire montagne usando metodi procedurali. Credetemi.


Non sono in disaccordo, ma preferisco spendere le mie energie per diventare un operatore professionista di escavatori piuttosto che uno scavatore professionista.

E non so cosa intendi per programmazione "procedurale", ma so che OOP è uno sviluppo evolutivo della programmazione procedurale.

 
forexman77:

1.Fatto alcune includono classi basate sull'articolo. Non capisco perché usare le classi invece di fare solo un file include con funzioni richiamabili?

2.Ho una domanda, per migliorare la velocità di ottimizzazione è meglio dividere i file include in diversi o mettere tutto in uno?

3. Ho la sensazione che se chiamo l'indicatore non nell'Expert Advisor, ma in un file include, la velocità di ottimizzazione è più veloce...?

Il mistero è chiaro - è un articolo :-) c'è del codice per il bene del codice e il volume dell'articolo stesso... "non leggere il giornale prima di mangiare" :-)


 
Реter Konow:

Il punto è che quello che tu intendi per "shovelware" non è affatto quello che io intendo per programmazione "procedurale". Non ne parlo affatto, si potrebbe dire. Sto dicendo che i metodi di risoluzione dei problemi che alcune persone usano qui sono molto deboli di per sé, quindi che differenza fa - escavatore o pala, se entrambi non sono usati efficacemente?


È una questione di professionalità, e la sua assenza non può essere sostituita da uno strumento...


E se avete professionalità, potete costruire montagne usando anche metodi procedurali. Fidatevi di me.


In generale, Peter, ho la sensazione che tu guardi la tua fossa, scavata con una pala, e guardi la fossa del vicino, scavata con un escavatore. Fai un confronto e vedi che il tuo trench è più grande e ha i bordi più piatti. E si conclude che è meglio scavare con una pala. Puoi immaginare se hai imparato a scavare con un escavatore... e puoi pareggiare i bordi con una pala.

 
Nikolai Semko:

E, in generale, Peter, ho la sensazione che tu guardi la tua fossa, scavata con una pala, e guardi la fossa del tuo vicino, scavata con un escavatore. Fai un confronto e vedi che il tuo trench è più grande e ha i bordi più piatti. E si conclude che è meglio scavare con una pala. Puoi immaginare se hai imparato a scavare con un escavatore... ...e puoi pareggiare i bordi con una pala.

Nikolai, se confronti gli strumenti, non stavo affatto scavando con una pala. È uno strumento diverso, molto più figo. Non ho ancora capito come chiamarlo, ma è molto probabile che non si riesca a tenere il passo con un escavatore. Il futuro lo dirà...


In generale, rispetto un escavatore come strumento, ma non ho avuto il tempo di studiarlo. Un'altra idea ha preso piede).

 
Реter Konow:

Nikolai, se confronti gli strumenti, non stavo affatto scavando con una pala. È uno strumento diverso, molto più figo. Non ho ancora capito come chiamarlo, ma è molto probabile che non riesca a tenere il passo nemmeno con un escavatore. Il futuro lo dirà...

In generale, rispetto un escavatore come strumento, ma non ho avuto il tempo di studiarlo. Un'altra idea ha preso piede).

Allora il tema dovrebbe suonare in modo diverso. Qualcosa come: "Un nuovo toolkit di programmazione" o "Un nuovo paradigma di programmazione"...
Se è vero che hai creato qualcosa di più figo di OOP, allora autograferai il tuo quando diventerai famoso?