Styler nel terminale di trading MetaTrader 5 - pagina 6

 
Renat :

Quando raccoglierete, gestirete e pagherete voi stessi il Code Base, la domanda cadrà immediatamente.

No, state ridendo dopo tutto.

Come si relaziona lo styler con la base? Come si relaziona lo strumento di un programmatore (che usa per facilitare il suo lavoro) con le regole di pubblicazione (che possono non avere niente a che fare con il suo lavoro)?

Lei stesso ha detto che tutti i codici saranno automaticamente "pettinati" dallo stilista prima della pubblicazione. Quindi lasciatelo "pettinare" nel vostro stile prima della pubblicazione, nessuno discute su questo!

Separate i concetti di "base" e "styler", e tutto andrà a posto.



Renat:

O pensi che tutto qui sia fatto gratis?

Renat, sai bene che la base porta reddito (anche se indirettamente).

E per qualche motivo stai dando via anche il terminale gratis.



Renat:

Ora tutto il discorso è solo su "è male solo perché non è personalizzabile" per una questione di principio.

Passiamo a punti specifici - indicare quale punto e perché non è fatto correttamente dalla styler.

Ciò che è sbagliato non è un'azione specifica, ma l'approccio stesso.

È inaccettabile soffermarsi su un (qualsiasi) stile. Non siete pionieri, e diversi stili di programmazione sono già stati stabiliti prima di voi. Ognuno ha i suoi vantaggi e svantaggi, e ognuno è familiare al suo utente.

Scegliere un'opzione significa rifiutare automaticamente più della metà dei programmatori. Non li costringerete a riqualificarsi. Inoltre, molti iniziano a scrivere in MQL dopo una solida esperienza di programmazione in altri linguaggi.


La soluzione è semplice e ovvia: rendere i parametri personalizzabili e alcuni stili standard. Metti il tuo di default, ma permetti di cambiare le sue impostazioni. Credetemi, i neofiti (se siete improvvisamente preoccupati che comincino a scrivere "male") non entreranno mai in queste impostazioni!


Esempi di impostazioni da elencare? ;)

 
Grazie, un punto "quanti spazi prima di una parentesi graffa" è stato fatto. Noi mettiamo 2 e voi mettete 0.


Passiamo ai prossimi punti.

 
Renat :
Grazie, un punto "quanti spazi prima di una parentesi graffa" è stato espresso. Noi mettiamo 2 e voi mettete 0.


Passiamo ai prossimi punti.

  1. Spazi intorno a = += -= *= /* -- ++ + - * /, dopo "(", dopo "," e prima di ")";
  2. Un tab al posto di 3 spazi nell'indentazione sarebbe ottimo a tutti.
 
Renat :

Passiamo ai prossimi punti.

Non soffrire così tanto. "Tutto è già stato rubato prima di noi".

Prendete la lista di oggetti di Astyle. Probabilmente non sarete ispirati dalla lista completa di uncrustify, e probabilmente non è necessario, ma è molto chiara e concisa - potete scegliere quello che vi serve.

Artistic Style
  • astyle.sourceforge.net
becomes (with break‑after‑logical):
 
komposter :
  1. Spazi intorno a = += -= *= /* -- ++ + - * /, dopo "(", dopo "," e prima di ")";
  2. I tabs al posto dei 3 spazi nell'indentazione sarebbero fantastici.


sul punto 2: la tabulazione è il male - prova a guardare lo stesso codice in diversi editor... galleggerà, per usare un eufemismo
 
mql5 :


sul punto 2: la tabulazione è il male - prova a guardare lo stesso codice in diversi editor... galleggerà a dir poco
komposter:
  1. Spazi intorno a = += -= *= /* -- ++ + - * /, dopo "(", dopo "," e prima di ")";
  2. I tabs al posto dei 3 spazi nell'indentazione sarebbero fantastici.


Per questo non devi pettinarlo a modo tuo. Ognuno ha i suoi scarafaggi nella sua testa. Date al popolo pane e circo. Sceglieremo da soli ciò che ci piace.

 
mql5 :


sul punto 2: la tabulazione è il male - prova a guardare lo stesso codice in diversi editor... per dirla tutta, galleggerà

La soluzione è semplice, il tab (rientro) è fatto o dal carattere di tabulazione (allora può fluttuare) o dal giusto numero di spazi (allora tutto sarà uguale ovunque).

Artistic Style
  • astyle.sourceforge.net
becomes (with break‑after‑logical):
 

Il secondo punto "separa le operazioni con degli spazi" viene espresso.


Ci sono altri punti?

 
Renat :

Il secondo punto di "spazi operativi separati" è espresso.

Altri punti?


class Class
{ // скобка на уровне объявления
private: // спецификаор на уровне объявления
   // приватные типы
   definition; // объявления и определения функций и членов с отступом
  
protected:
   // защищённые типы
   definition;
public:
   // публичные типы
   definition;

public:
   definition;
  
protected:
   definition;
  
private:
   definition;

}; // скобка на уровне объявления

Enum:

enum ProceedObject
{ // скобка на уровне объявления
   EPO_BAT,
   EPO_LEFT_BORDER,
   EPO_RIGHT_BORDER,
   EPO_UP_BORDER,
   EPO_DOWN_BORDER,
   EPO_FLOOR,
   EPO_CEILING,
   EPO_BRICKS, // значения по отступу,
}; // скобка на уровне объявления

Se:

if(condition1) 
{
   DoSomething();
   //...
}
else if(condition2)
{
   DoSomethingOther();
   //...
}
else
{
   DoSomethingOtherAgain();
   //...
}

Dolci

switch(condition) 
{
    case 1:
    case 2:
        x = ...;
    break;
    case 3:
{
         x = ...;
//...
}
    break;
    default:
        x = ...;
    break;
}
 

I punti specifici di interesse sono "ora funziona così e dovrebbe funzionare così".


L'allineamento delle parentesi è già stato espresso.