Commentaires sur MQL5 - page 7

 
Renat Fatkhullin:

La description des règles par un styliste ne peut être résumée en quelques lignes de texte de fiction.

Elle met en forme la voie que nous avons tracée.

Bonjour !

Le fait que le styler ne formate que la façon dont vous l'avez posé et rien d'autre est un peu étrange. Laissez-moi vous expliquer.

MT est une plateforme Windows. Le principal outil de développement pour Windows est MSVC, tandis que MT est écrit en MFC. Cette bibliothèque adopte la variante de Kernighan et Ritchie de la norme d'indentation et de formatage. Ainsi, pour une personne qui a passé toute sa vie en MSVC (et il y en a beaucoup sous Windows), voir 3 espaces comme tabulation et 2 espaces supplémentaires avant "{" et aussi aucun espace entre les accolades (si, pour...) et les parenthèses suivantes est un peu ridicule et perturbe la lecture du code. Je comprends que vous ayez adopté ce format comme norme d'entreprise, mais il ne s'applique pas aux autres développeurs.

C'est pourquoi je suggère d'introduire des paramètres de stylisme, tout le monde vous dira un très grand merci.

 
SeriousRacoon:

Bonjour !

Le fait que le styliste ne formate que de la manière dont vous voulez qu'il le fasse et pas d'une autre manière est un peu étrange. Laissez-moi vous expliquer.

MT est une plateforme Windows. Le principal outil de développement pour Windows est MSVC, la bibliothèque MT est écrite en MFC. Cette bibliothèque adopte la variante de Kernighan et Ritchie de la norme d'indentation et de formatage. Ainsi, pour une personne qui a passé toute sa vie en MSVC (et il y en a beaucoup sous Windows), voir 3 espaces comme tabulation et 2 espaces supplémentaires avant "{" et aussi aucun espace entre les accolades (si, pour...) et les parenthèses suivantes est un peu ridicule et perturbe la lecture du code. Je comprends que vous ayez adopté ce format comme norme d'entreprise, mais il ne s'applique pas aux autres développeurs.

Je vous propose donc d'introduire des paramètres de stylisme, tout le monde vous dira un grand merci.

Une petite correction, le codestyle Microsoft n'est pas une norme K&R. La norme K&R est essentiellement une différence entre crochets, elle est conçue pour faire tenir autant de lignes que possible sur l'écran du PDP-11 et d'autres écrans alphanumériques - 80 caractères * 25 lignes. Au fait, voici un lien vers le livre, peut-être que quelqu'un le trouvera utile http://rabus.ru/KernighanRitchie_C/index.html#content.

/* подсчет строк, слов и символов */
main()
{
    int с, nl, nw, nc, state;
    state = OUT;
    nl = nw = nc = 0;
    while ((с = getchar()) != EOF) {
        ++nc;
        if (c == '\n')
            ++nl;
        if (c == ' ' || c == '\n' || c == '\t')
            state = OUT;
        else if (state == OUT) {
            state = IN;
            ++nw;
        }
    }
    printf(“%d %d %d\n”, nl, nw, nc);
}

Sinon, je suis d'accord et cela a été écrit environ 100500 fois déjà. Personnellement, j'apporte tous les textes tiers MQL au studio et je les reformate sur place.

 
Alexey Volchanskiy:

Légère correction, le codestyle de Microsoft n'est pas un standard K&R. La norme K&R est principalement une différence entre crochets, elle est conçue pour faire tenir autant de lignes que possible sur l'écran du PDP-11 et d'autres écrans alphanumériques - 80 caractères * 25 lignes. Au fait, voici un lien vers le livre, peut-être que quelqu'un le trouvera utile http://rabus.ru/KernighanRitchie_C/index.html#content.

Sinon, je suis d'accord et cela a été écrit environ 100500 fois déjà. Personnellement, j'apporte tous les textes tiers MQL au studio et je les reformate sur place.

Oui, la différence se situe au niveau de la parenthèse ouvrante, sinon c'est similaire, c'est pourquoi je l'ai appelé une "variante".

Ce serait plus facile si l'environnement МТ avait des outils d'utilisateur, ainsi je pourrais attacher un embellisseur tiers, mais ce n'est pas possible. Il est possible d'utiliser un éditeur tiers prenant en charge la sortie stdout des outils utilisateur (Editplus est un classique, mais il existe des solutions plus intéressantes), mais ce n'est qu'une béquille supplémentaire. J'utilise Unscrutify configuré dans UniversalIndentGUI.

 
 
urusov:

S'il vous plaît :

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

Nommez un langage couramment utilisé où je ne peux pas attribuer une adresse différente à un pointeur ? Nommez un autre langage largement utilisé où je ne peux pas assigner une référence du même type à un objet différent ? Où d'autre serais-je obligé de décrire un constructeur ou une fonction de copie en raison de ces limitations de votre langage ?

Et si la contrôlabilité est primordiale pour vous, pourquoi les autres langues contrôlées n'imposent-elles pas des restrictions similaires ?

Personnellement, pour moi, ce ne sont pas la sécurité et la contrôlabilité qui priment, mais la rapidité avec laquelle je peux mettre en œuvre une idée ; c'est extrêmement vrai dans le contexte des idées de trading ; ceux qui ne sont pas d'accord avec cela surestiment la valeur de leurs systèmes, ou programment pour le plaisir de programmer, et non pour un résultat spécifique.

Le C#, vous le savez, est un langage industriel maintenant, il a déjà largement remplacé le C++ dans les applications professionnelles/Internet. Il n'y a donc pas de pointeurs, ou plutôt ils sont là, mais non sécurisés, et personne n'a besoin de code non sécurisé, seulement pour les bricolages personnels.
 
Alexey Volchanskiy:
Le C#, vous le savez, est un langage industriel maintenant, il a déjà largement remplacé le C++ dans les applications professionnelles/Internet. Il n'y a donc pas de pointeurs, ou plutôt il y en a, mais non sécurisés, et personne n'a besoin de code non sécurisé, seulement pour les bricolages personnels.
y a-t-il des avantages de c sharp pour les gens ordinaires ?
 

Et pourquoi un pointeur nu est-il si mauvais ? Si vous ne faites pas d'optimisations strictes de l'aliasing, les pointeurs sont assez sûrs en général (msvc l'a fait).

D'une manière générale, tout ce discours sur la sécurité ne fait que masquer les véritables raisons, comme cela a déjà été dit. Et la raison est simple, je pense - ne pas permettre de connaître de quelque manière que ce soit les adresses des fonctions à passer à la dll. Un système enterré n'a pas besoin du monde extérieur.

 
Ou est-ce que le MC accepte les colbacks normaux ? J'ai une idée, le sujet est-il hors limites ?
 
Alexey Volchanskiy:
Le C# que vous connaissez, c'est maintenant un langage industriel, il a déjà largement remplacé le C++ dans les applications business/internet. Il n'y a donc pas de pointeurs, ou plutôt, ils sont là, mais non sécurisés, et personne n'a besoin de code non sécurisé, seulement pour les bricolages personnels.

D'ailleurs !

J'ai rencontré un jour une comparaison entre les langages C et Pascal .

Le langage C, c'est conduire une Ferrari sur une route de montagne à 180 km/heure,

et le langage Pascal est une promenade tranquille dans une limousine sur une large route à sens unique à 40 km/h.

C était censé être, comme, une vraie langue d'homme).

Dans le C, il faut garder les yeux sur les panneaux indicateurs :-) Le langage C n'est pas pour les âmes sensibles, car si vous ne suivez pas les indications, vous risquez de sortir de la piste dans un virage en épingle à cheveux.

Le C est le langage des systèmes d'exploitation et des utilitaires, des pilotes. Le C a été écrit à l'origine par des pros qui ont écrit les systèmes d'exploitation et les utilitaires pour les utilisateurs.

Pascal a été écrit à l'origine en C pour les étudiants. Pascal a été écrit comme un langage d'enseignement.

La différence d'objectif et d'utilisation des outils est évidente.

MQL est essentiellement un dérivé de C, le choix des développeurs de MetaQuotes est professionnellement très correct.

 
Yuriy Zaytsev:

D'ailleurs !

Il était une fois une comparaison entre C et Pascal .

Le langage C est comme une véritable Ferrari roulant sur une route de montagne à 180 km/heure,

et le langage Pascal est une promenade tranquille dans une limousine sur une large route à sens unique à 40 km/h.

C était censé être, comme, une vraie langue d'homme).

Dans le C, il faut garder les yeux sur les panneaux indicateurs :-) Le langage C n'est pas pour les âmes sensibles, car si vous ne suivez pas les indications, vous risquez de sortir de la piste dans un virage en épingle à cheveux.

Le C est le langage des systèmes d'exploitation et des utilitaires, des pilotes. Le C a été écrit à l'origine par des pros qui ont écrit les systèmes d'exploitation et les utilitaires pour les utilisateurs.

Pascal a été écrit à l'origine en C pour les étudiants. Pascal a été écrit comme un langage d'enseignement.

La différence d'objectif et d'utilisation des outils est évidente.

MQL est essentiellement un dérivé de C. Le choix des développeurs de MetaQuotes est professionnellement très correct.

Quelle différence cela fait-il de savoir dans quelle langue écrire ?

(Après tout, vous pouvez écrire les pilotes et tout le reste en Pascal).

Il est important de comprendre ce que l'on fait et comment on le fait, et le langage de programmation est une double affaire !

Raison: