Écrire du code en russe. Avantages et inconvénients d'un tel programme. - page 4

 
Nikolay Demko:

Pas de problème, le 47ème chromosome est le pouvoir.

La programmation opérationnelle a été créée par les personnes les plus intelligentes, les professeurs. Ils ont passé des années à le peaufiner et à le modifier pour qu'il réponde aux besoins des programmeurs et qu'il soit le plus pratique possible pour écrire des programmes.

La POO de MQ est également affinée en termes de sécurité du code.

Vous voulez devenir le prophète d'une nouvelle religion ? Pas de problème, après tout, c'est votre heure.

Chacun est libre de programmer comme il l'entend. Je voulais juste savoir ce qui n'était pas clair pour moi depuis longtemps...
 
Alexander Antoshkin:

Si le monde est tordu, alors mon esprit l'est aussi, mais je ne vois dans cette relative agitation ni idéologie, ni vision du monde...

mais aux connards qui m'entourent, un bâton, pour qu'ils se résignent à leur perte. )))))))

De quoi parlez-vous ?
 

Les noms de variables russes peuvent se transformer en abracadabra à un moment donné et vous ne pouvez rien y faire. De cette façon, il est impossible de savoir quelle variable est la bonne. Utiliser des noms de variables en cyrillique semble très dangereux.

Mais l'autre jour, j'ai été surpris de constater que les variables d'entrée ne sont pas les seules à être suivies d'un commentaire. Si, après la déclaration d'une variable, je mets un commentaire dans la langue maternelle russe, lorsque je tape cette variable, j'obtiens une indication de sa signification.

Quelque chose comme ça

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

voici ce que nous voyons.


Peut-être vaut-il mieux ne pas prendre le risque ?

 
Alexey Viktorov:

Les noms de variables russes peuvent se transformer en abracadabra à un moment donné et vous ne pouvez rien y faire. De cette façon, il est impossible de savoir quelle variable est la bonne. Utiliser des noms de variables en cyrillique semble très dangereux.

Mais l'autre jour, j'ai été surpris de constater que les variables d'entrée ne sont pas les seules à être suivies d'un commentaire. Si, après la déclaration d'une variable, je mets un commentaire dans la langue maternelle russe, lorsque je tape cette variable, j'obtiens une indication de sa signification.

Quelque chose comme ça

voici ce que nous voyons.


Peut-être vaut-il mieux ne pas prendre le risque ?

C'est étrange... J'ai programmé entièrement en russe pendant trois ans et cela n'est jamais arrivé... Peut-être une ancienne construction ?
 
Реter Konow:

Le principe de mon approche est le suivant :

1. nous indexons les appels aux fonctions logicielles. Nous divisons les fonctions elles-mêmes en fonctions qui vérifient les événements (fonctions logiques, - retournant oui/non), en fonctions procédurales (fonctions exécutives) et en fonctions de calcul.

2. Créer un noyau logique sous la forme d'un tableau global à trois dimensions. Nous attribuons ici des index de fonctions logiques dans une certaine hiérarchie (séparées selon l'importance des événements qu'elles vérifient : événements globaux et locaux). Nous créons une sorte de périmètre de ces événements dans le champ du noyau.

3. Nous indexons les fonctions procédurales et computationnelles aux extrémités des chaînes logiques.

4. Créez un moteur logique qui boucle sur les événements du périmètre dans le noyau à la fréquence d'une minuterie et appelle les fonctions requises via leurs index.

5. Reconstruire le programme consistera uniquement à reconstruire des chaînes logiques spécifiques ou à en construire de nouvelles.

Imaginez à quoi ressemblera ce code sur votre noyau :

#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:

Imaginez à quoi ressemblerait ce code sur votre noyau :

Vous n'avez pas tout à fait raison. Les fonctions ne seront pas du tout commandées. Ils seront ordonnés par les index de leurs appels dans le noyau, et seront dans les chaînes logiques que le moteur suivra.

Exemple : Nous écrivons toutes les fonctions dont nous avons besoin et les empilons. Nous devons seulement organiser leurs appels. Dans le noyau. Dans les chaînes logiques. Toute l'organisation du programme sera créée non pas dans des classes héritées les unes des autres, mais dans un tableau sous forme de chaînes d'index d'appels de fonctions particulières.

Les fonctions elles-mêmes seront divisées en trois types : logique (vérification des conventions), procédurale et computationnelle...

 
Реter Konow:
C'est étrange... Je programme exclusivement en russe depuis trois ans et je n'ai jamais rien eu de tel... Peut-il s'agir d'une ancienne construction ?

Une fois, j'ai installé le logiciel de mathématiques d'un ami, il travaillait dessus, tout allait bien, mais ensuite j'ai dû le déplacer sur un nouvel ordinateur et il s'est perdu. D'une certaine manière, il était difficile à pirater et il a été installé en copiant certains dossiers et fichiers. Mais une nouvelle version avec générateur de clé est apparue sur le web... Tout est bien réglé, fonctionne, comprend l'alphabet cyrillique, mais le travail de l'ancienne version, ne comprenait pas l'alphabet cyrillique. Comme je n'ai pas essayé, rien n'a fonctionné.

Et la deuxième raison est que si le code est placé dans CodeBase ou un produit sur le marché, le code ou le produit est dupliqué sur d'autres sites et là Aglian est préférable.

 
Реter Konow:

Vous avez tout faux. L'alternative à la POO sous la forme d'un noyau ne serait que dans l'organisation du programme. Au lieu de séparer les fonctions et les variables en classes, elles seront réparties sur leurs fonctions. Les fonctions ne seront pas du tout commandées. Ce qui sera ordonné sera les index de leurs appels dans le noyau, et se trouvera dans les chaînes logiques que le moteur suivra.

Exemple : Nous écrivons toutes les fonctions dont nous avons besoin et les empilons. Nous devons seulement organiser leurs appels. Dans le noyau. Dans les chaînes logiques. L'organisation entière du programme sera créée non pas dans des classes héritées les unes des autres, mais dans un tableau sous forme de chaînes d'appels de fonctions particulières.

Les fonctions elles-mêmes seront divisées en trois types : logique (vérification des événements), procédurale et computationnelle...

N'avez-vous pas eu l'occasion de voir le code décompilé pendant ces trois années ?

J'ai peur que les chaînes d'index soient aussi difficiles à lire que les variables décompilées.

 
Alexey Viktorov:

Une fois, j'ai installé le logiciel de mathématiques d'un ami, il a travaillé dessus, tout allait bien, mais ensuite j'ai dû le déplacer sur un nouvel ordinateur et il s'est perdu. D'une certaine manière, il était difficile à pirater et il a été installé en copiant certains dossiers et fichiers. Mais une nouvelle version avec générateur de clé est apparue sur le web... Tout est bien réglé, fonctionne, comprend l'alphabet cyrillique, mais le travail de l'ancienne version, ne comprenait pas l'alphabet cyrillique. Comme je n'ai pas essayé, rien n'a fonctionné.

Et la deuxième raison, si le code est placé dans CodeBase ou le produit dans le marché, le code ou le produit est dupliqué à d'autres sites et là il est préférable aglitskiy.

Un cas intéressant.

À propos de la place de marché, le code n'est-il pas fermé pour les logiciels qui s'y trouvent ?

 
Реter Konow:

Un cas intéressant.

À propos du marché, il s'agit d'un code logiciel fermé, n'est-ce pas ?

Qu'en est-il des impressions et des alertes ? Et des commentaires sur les variables d'entrée.
Raison: