Comment distinguer de manière programmatique un fœtus PROFESSIONNEL d'un fœtus DILIÉTAIRE ? - page 7

 

Toutes les fonctions de la chaîne sont coûteuses.

Toutes les fonctions graphiques sont coûteuses.

Plus le nombre d'éléments du graphique est élevé, plus il est lent (ainsi, pour accélérer le travail en mode visuel, supprimez périodiquement les icônes de commande (surtout s'il y en a beaucoup)).

Les plus gourmands en temps sont WinowsRedraw() et Comment() car le graphique est également redessiné lors de leur appel.

Voici à quoi cela ressemble à première vue.

 

Le problème est que le code peut être écrit par un professionnel et de manière très compétente (sans fonctionnalités et conceptions coûteuses), mais il peut incarner l'absurdité absolue pour laquelle il a été commandé.

Ce n'est plus intéressant.

 
Mathemat:

Le problème est que le code peut être écrit par un professionnel et de manière très compétente (sans fonctionnalités et conceptions coûteuses), mais il peut incarner l'absurdité absolue qui a été commandée.

Ce n'est plus intéressant.

À mon sens, un programmeur professionnel doit écrire pour lui-même, comme un écrivain ou un compositeur, et sur commande, également de manière professionnelle, avec nécessairement un résultat positif réel. Une autre chose est si on lui demande d'écrire sur l'idée du client (TOR), malgré le fait que son idée n'est pas concluante pour le programmeur, dans ce cas le programmeur prévient que le client est peu susceptible de travailler avec le conseil, mais le client insiste et le programmeur exécute la commande. Je comprends que les spécificités sont différentes ici et qu'aucun chef-d'œuvre ne résistera à l'épreuve du temps, mais je suis d'accord pour dire qu'il existe des exemples de longévité (vérifiés par le testeur) dans le marché sur MT5 pour toute l'histoire. Je pense que ce sera le point de départ pour déterminer le professionnalisme du programme et du programmeur, ainsi que du trader, non pas parce qu'il sait, sait comment, mais par le résultat. Bien entendu, ce travail professionnel doit être tarifé en conséquence. Et il n'est interdit à personne de faire du travail de mauvaise qualité, comme le font souvent les écrivains et les compositeurs, qui le traitent avec condescendance comme un travail à temps partiel forcé "pour soutenir leur pantalon". Pardonnez ma franchise, mais sans elle, pourquoi parler ?

 
L'inspiration n'est pas à vendre. Mais, vous pouvez vendre un manuscrit.
 

Dimitri, définissez ce que votre analyseur doit être capable de faire. Distinguer un bon code d'un mauvais est une tâche, distinguer une bonne idée d'une mauvaise en est une autre. Et si dans le premier cas, vous pouvez essayer de trouver des solutions automatiques, dans le second cas, c'est difficile à faire, même en mode manuel, et même en mode automatique, c'est tout simplement irréel. Mais puisque nous avons commencé à parler d'un analyseur capable de distinguer le bon code du mauvais, discutons-en :

Qu'est-ce qui distingue un professionnel d'un amateur en premier lieu ? Selon moi, il s'agit du niveau de connaissance de la langue, qui se manifeste par une variété de manières d'utiliser la langue. Ainsi, si un développeur utilise une notation non triviale et des algorithmes comme la récursion, il est plus probable qu'il soit un programmeur professionnel. Sur cette base, nous pouvons construire un système expert qui analyse le code et calcule le nombre de "trucs" utilisés dans celui-ci. Chaque puce reçoit des points. Si une puce est, au contraire, négative, des sanctions sont imposées. Vous obtenez donc un nombre ou un score total qui caractérise le code dans son ensemble. Par exemple, vous pouvez créer une sorte de tableau de pondération :

Le point est .
Score
Utilisation des tableaux
+1
Réutilisation du code (rapport entre les fonctions et les lignes de code)
+4
Opérateurs += -= /=
+1
Opérateurs % >> <<
+3
Appel de fonction récursif
+5
Utilisation des directives du préprocesseur
+3
Nombre de lignes commentées par rapport à la quantité de code
+5
Utilisation de fonctions "lentes
-3
Utilisation de variables de même type : time1, time2, time3, time4
-4

En conséquence, le système expert calcule le poids de chacun des paramètres et donne un score total caractérisant la qualité générale du code.

 

Les gars, la seule façon de faire la différence entre un code pro et un code débutant est d'avoir les résultats de l'optimisation du code. Vous ne serez pas en mesure de suivre une optimisation à 100%. Vous ne pouvez retrouver que certains de ses éléments. Et un novice peut également effectuer une optimisation partielle. Par exemple, remplacez l'opération "multiplier par deux" par l'opération "ajouter une valeur à elle-même". Laissez tomber, l'idée du suivi est trop gourmande en ressources par rapport au résultat qu'elle peut donner. Il n'est pas rentable d'investir dans un prog - c'est une tentative de couper une allumette à partir d'une bûche - une allumette comme produit, et le reste comme copeaux.

 
drknn:

Les gars, la seule façon de faire la différence entre un code pro et un code débutant est d'avoir les résultats de l'optimisation du code.

Têtes de noeuds ))
 

Signes d'un code professionnel :
Noms significatifs des variables et des fonctions ;
Bonne structure de programmenavigable;
Bons commentaires.

Vous ne pouvez rechercher ces fonctionnalités que manuellement dans le logiciel. L'automatisation ne fonctionnera pas.

SZY Tout cela doit être recherché dans les programmes écrits par un programmeur pour lui-même.
A notre époque, un programmeur qui se respecte ne donnera pas ce code à d'autres.

 
FAQ:

Toutes les fonctions de la chaîne sont coûteuses.

Toutes les fonctions graphiques sont coûteuses.

Plus le nombre d'éléments du graphique est élevé, plus il est lent (ainsi, pour accélérer le travail en mode visuel, supprimez périodiquement les icônes de commande (surtout s'il y en a beaucoup)).

Les plus gourmands en temps sont WinowsRedraw() et Comment() car le graphique est également redessiné lors de leur appel.

Voici à quoi cela ressemble à première vue.


Je suis intéressé par des optimisations plus rapides (les tests sont une question distincte) et une consommation de mémoire réduite.
La question de l'accélération des optimisations (les tests sont une question distincte) et de la réduction de la consommation de mémoire. Sur le forum, quelqu'un a mentionné qu'il était nécessaire d'empêcher l'"ajout" de graphiques.
pendant l'optimisation. En théorie, l'optimisation ne voit pas du tout les graphiques et je supposais qu'une telle
Je supposais que les commandes telles que ObjectCreate() sont simplement ignorées lors de l'optimisation.
Dois-je les bloquer ou non ?
Mais si vous devez toujours les désactiver, cela signifie que nous devons ajouter un contrôle à chaque fois que
if(IsOptimization()==false ) {
}
En même temps, ces contrôles affectent eux-mêmes la vitesse d'optimisation.
Les fonctions de vérification d'état sont-elles coûteuses ?
Est-il judicieux de les affecter à des variables et de les utiliser plus tard ?
J'ai presque toujours Comment() - doit-il aussi être verrouillé pendant l'optimisation ?
Qu'en est-il de l'alerte et de l'impression ? (à nouveau - pendant l'optimisation). Ils ne sont pas écrits dans le journal pendant l'optimisation, n'est-ce pas ?
 
chief2000:

Et si vous avez toujours besoin de les bloquer, cela signifie qu'à chaque fois vous devrez ajouter une vérification

Ne le faites pas.

if(IsOptimization()==false ) {
}

а

if( !IsOptimization() ) {
}

Mais c'est mieux de le faire de cette façon :

if ( !IsOptimization() && ( !IsTesting() || IsVisualMode() ) ) {

// ...

}

Cette condition peut être réalisée une fois et définir la valeur d'un certain drapeau, qui peut ensuite être utilisé pour vérifier si les informations textuelles et graphiques doivent être affichées sur le graphique.

PS.

Et en général, pourquoi êtes-vous si vif ? Le topicstarter indique de temps en temps que vous êtes ..., et de d'Artagnan.