Scrivere codice in russo. Pro e contro di un tale programma. - pagina 4

 
Nikolay Demko:

Nessun problema, il 47° cromosoma è il potere.

OOP è stato creato dalle persone più intelligenti, i professori. Hanno passato anni a metterlo a punto e a modificarlo per soddisfare le esigenze dei programmatori in modo che fosse più conveniente per scrivere programmi.

L'OOP di MQ è anche raffinato in termini di sicurezza del codice.

Vuoi diventare un profeta di una nuova religione? Nessun problema, dopo tutto, è il tuo momento.

Ognuno è libero di programmare come vuole. Volevo solo scoprire ciò che non mi è stato chiaro per molto tempo...
 
Alexander Antoshkin:

Se il mondo è storto, allora la mia mente è storta, ma non vedo in questo tumulto relativo non ideologia, non visione del mondo

ma per gli stronzi che mi circondano, un bastone, per farli rassegnare al loro destino. )))))))

Di cosa stai parlando?
 

I nomi delle variabili russe possono trasformarsi in abracadabra ad un certo punto e non c'è niente da fare. In questo modo è impossibile scoprire quale variabile è quale. Usare nomi di variabili in cirillico sembra molto pericoloso.

Ma l'altro giorno sono stato sorpreso di scoprire che non solo le variabili di input hanno un commento dopo la variabile. Se dopo la dichiarazione di una variabile metto un commento nella lingua nativa russa, allora quando digito questa variabile ottengo un suggerimento sul suo significato.

Qualcosa del genere

int ticket1 = 0; // Это тикет ордеров на покупку.

Ecco cosa vediamo.


Forse è meglio non correre il rischio?

 
Alexey Viktorov:

I nomi delle variabili russe possono trasformarsi in abracadabra ad un certo punto e non c'è niente da fare. In questo modo è impossibile scoprire quale variabile è quale. Usare nomi di variabili in cirillico sembra molto pericoloso.

Ma l'altro giorno sono stato sorpreso di scoprire che non solo le variabili di input hanno un commento dopo la variabile. Se dopo la dichiarazione di una variabile metto un commento nella lingua nativa russa, allora quando digito questa variabile ottengo un suggerimento sul suo significato.

Qualcosa del genere

Ecco cosa vediamo.


Forse è meglio non correre il rischio?

Strano... Ho programmato interamente in russo per tre anni e questo non è mai successo... Può essere qualche vecchia costruzione?
 
Реter Konow:

Il principio del mio approccio è il seguente:

1. indicizziamo le chiamate alle funzioni software. Dividiamo le funzioni stesse in quelle che controllano gli eventi (funzioni logiche, - restituiscono sì/no), funzioni procedurali (funzioni esecutive), e funzioni computazionali.

2. Crea un kernel logico come array globale tridimensionale. Qui assegniamo gli indici delle funzioni logiche in una certa gerarchia (separati secondo l'importanza degli eventi che controllano: eventi globali e locali). Creiamo una sorta di perimetro di questi eventi nel campo del kernel.

3. Indicizziamo le funzioni procedurali e computazionali alle estremità delle catene logiche.

4. Creare un motore logico che gira intorno agli eventi perimetrali nel kernel alla frequenza del timer e chiama le funzioni richieste tramite i loro indici.

5. Ricostruire il programma consisterà solo nel ricostruire specifiche catene logiche o nel costruirne di nuove.

Immaginate come sarà questo codice sul vostro kernel:

#include <Math\Alglib\complex.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   complex a; a.re=3; a.im=2;
   complex b; b.re=1; b.im=4;

   a+=b; // тут мы складываем два комплексных числа а и b, и присваиваем результат в а

   Print("a(",a.re,":",a.im,")");
   Print("a(re:im)");
   
  }
//+------------------------------------------------------------------+
 
Nikolay Demko:

Immaginate come sarebbe questo codice sul vostro kernel:

Non hai capito bene: le funzioni non saranno affatto ordinate. Saranno ordinati in base agli indici delle loro chiamate nel kernel, e saranno nelle catene logiche che il motore seguirà.

Esempio: Scriviamo tutte le funzioni di cui abbiamo bisogno e le impiliamo insieme. Dobbiamo solo organizzare le loro chiamate. Nel nucleo. In catene logiche. L'intera organizzazione del programma sarà creata non in classi ereditate l'una dall'altra, ma in un array sotto forma di catene di indici di chiamate di funzioni particolari.

Le funzioni stesse saranno divise in tre tipi: logiche (controllo delle convenzioni), procedurali e computazionali...

 
Реter Konow:
È strano... Ho programmato esclusivamente in russo per tre anni e non ho mai avuto niente del genere... Può essere una vecchia costruzione?

Una volta ho installato il software di matematica di un amico, ci stava lavorando, tutto andava bene, ma poi ho dovuto spostarlo su un nuovo computer e si è perso. In qualche modo è stato difficile da hackerare ed è stato installato copiando alcune cartelle e file. Ma una nuova versione con generatore di chiavi è apparsa sul web... Tutto impostato bene, corre, capisce l'alfabeto cirillico, ma il lavoro della vecchia versione, non ha capito l'alfabeto cirillico. Come non ho provato nulla non ha funzionato.

E la seconda ragione è che se il codice è messo in CodeBase o un prodotto nel mercato, il codice o il prodotto è duplicato in altri siti e lì Aglian è preferibile.

 
Реter Konow:

Hai sbagliato tutto. L'alternativa a OOP sotto forma di kernel sarebbe solo nell'organizzazione del programma. Invece di separare le funzioni e le variabili in classi, saranno distribuite nelle loro funzioni. Le funzioni non saranno affatto ordinate. Ciò che sarà ordinato saranno gli indici delle loro chiamate nel kernel, e saranno nelle catene logiche che il motore seguirà.

Esempio: Scriviamo tutte le funzioni di cui abbiamo bisogno e le impiliamo insieme. Dobbiamo solo organizzare le loro chiamate. Nel nucleo. In catene logiche. L'intera organizzazione del programma sarà creata non in classi ereditate l'una dall'altra, ma in una matrice sotto forma di catene di chiamate di funzioni particolari.

Le funzioni stesse saranno divise in tre tipi: logiche (controllo degli eventi), procedurali e computazionali...

Non avete avuto la possibilità di vedere il codice decompilato di questi tre anni?

Ho paura che le catene di indici siano difficili da leggere come le variabili decompilate.

 
Alexey Viktorov:

Una volta ho installato il software di matematica di un amico, ci ha lavorato, tutto andava bene, ma poi ho dovuto spostarlo su un nuovo computer e si è perso. In qualche modo è stato difficile da hackerare ed è stato installato copiando alcune cartelle e file. Ma una nuova versione con generatore di chiavi è apparsa sul web... Tutto impostato bene, corre, capisce l'alfabeto cirillico, ma il lavoro della vecchia versione, non ha capito l'alfabeto cirillico. Come non ho provato nulla non ha funzionato.

E la seconda ragione, se il codice è posto in CodeBase o prodotto nel mercato, il codice o prodotto è duplicato in altri siti e lì è preferibile aglitskiy.

Caso interessante.

Per quanto riguarda il mercato, il codice non è chiuso per il software lì?

 
Реter Konow:

Caso interessante.

Per quanto riguarda il mercato, è un codice software chiuso, vero?

E le stampe e gli avvisi? E commenti sulle variabili di input.