Styler nel terminale di trading MetaTrader 5 - pagina 5

 
Renat :

Signori, per chi è stato scritto il codice?


Sono abbastanza sicuro che sia per altri programmatori. È molto sgradevole per loro leggere il codice non formattato di altre persone.


È proprio per risolvere questo problema che abbiamo creato la funzione built-in styler. Se volete che le altre persone (non voi, ma altre persone) siano disposte a guardare il vostro codice, fareste meglio a renderlo il più semplice e non ambiguo possibile. E la parola chiave qui è "persone", non "voi".


Renat, per chi è stato scritto lo styler?


Sono abbastanza sicuro che sia stato scritto per altri utenti. Ma è molto sgradevole per loro leggere il codice formattato nello stile di qualcun altro.


È per risolvere questo problema che suggeriamo di estendere le funzioni dello styler regolare. Se volete che altre persone (non voi, ma altre persone) vogliano usare la vostra styler, fareste meglio a renderla il più conveniente e personalizzabile possibile. E la parola chiave qui è "persone", non "voi".



I programmatori non scrivono codice per se stessi, anche se pensano erroneamente che sia per loro. Lo sai, vero?



ps: questa scusa di CodeBase è assurda, cosa c'entra lo styler incorporato nell'editor?

 
komposter :

ps: la scusa di CodeBase è assurda, cosa c'entra lo styler incorporato...?

Quando si costruisce, si mantiene e si paga Code Base da soli, la domanda sparirà subito. O pensate che tutto quello che c'è in giro si fa gratis?


In questo momento, tutto ciò di cui stiamo parlando è la posizione di principio del "è male solo perché non è personalizzabile".


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

 
Renat :

Ora tutti i discorsi riguardano solo la posizione di principio "è male solo perché non è accordabile".

Non sono d'accordo.

Io, per esempio, ho la seguente posizione: "quello che abbiamo non è buono perché non soddisfa gli standard di codifica generalmente accettati". I mezzi per soddisfare il risultato non hanno importanza".


Lei ha una posizione di principio, e non solo su questo tema.

E lei è categoricamente non disposto ad ascoltare gli argomenti degli altri, anche se gli argomenti sono abbastanza ragionevoli e razionali.

Passiamo ai punti specifici - indicare quale punto e perché è fatto male dalla styler.

Styler fa tutto correttamente. Ma il risultato non è quello desiderato (accettabile).
 
TheXpert :

Non sono d'accordo.

Per esempio, la mia posizione è la seguente: "ciò che non è soddisfatto perché non soddisfa gli standard generalmente accettati per la codifica. mentre non è soddisfatto, non lo userò, quando è soddisfatto, lo userò. I mezzi per soddisfare il risultato non hanno importanza".


Lei ha una posizione di principio, e non solo su questo tema.

E lei è irremovibilmente poco disposto ad ascoltare gli argomenti degli altri, anche se sono abbastanza ragionevoli e razionali.

Styler fa tutto correttamente. Ma il risultato non è quello che vuoi (accettabile).

+1. Su tutti i fronti.

Basta una decisione per tornare agli stili standard. Semplicemente non vogliono ammettere gli errori commessi in passato adottando uno stile disonesto.

 
marketeer :

+1. Su tutti i fronti.

Basta una decisione per tornare agli stili standard. Semplicemente non vogliono ammettere gli errori commessi in passato adottando uno stile disonesto.


Non sono d'accordo con la "curvatura".

Ha un sapore più "gustoso" e più "brillante" per loro... Non discuterne.

E a proposito della personalizzazione, dicono - torniamo sull'argomento più tardi

;)

 
Sorento :


Non sono d'accordo con la 'curvatura'.

Ha un sapore più "gustoso" e più "brillante" per loro... Non discuterne.

E per quanto riguarda le impostazioni, dicono - torniamo all'argomento più tardi

;)

Cosa vuol dire che non sei d'accordo? Ci sono standard de facto con cui non si può essere in disaccordo, bisogna solo seguirli. Non gli è venuto in mente di generare rapporti nel proprio HTML con una sovversione - hanno fatto esattamente in quello standard. È lo stesso con lo stile. La programmazione è un'industria globale, gli stili sono definiti, e MetaQuotes non può andare contro le masse con tale "innovazione".

 

Si prega di specificare quale elemento e perché non viene fatto correttamente dalla styler.


Preferibilmente con una dimostrazione di pezzi di codice formattati.

 
Renat :

Si prega di specificare quale articolo e perché è stato fatto in modo errato dallo styler.

Preferibilmente con dimostrazione di pezzi di codice formattati.

https://www.mql5.com/ru/forum/122145, solo lì le schede sono piccole -- 2 caratteri, ma non è così cruciale, anche se sono normali 3-4.

La dimostrazione è nel primo post. Non c'è la virgola, dovrebbe essere come in questa frase.


Se sei serio, posso citare degli estratti del nostro accordo di stile aziendale.

Вот это стиль! :) - MQL4 форум
  • www.mql5.com
Вот это стиль! :) - MQL4 форум
 
Renat :

Si prega di specificare quale articolo e perché è stato fatto in modo errato dallo stilista.

Sarebbe auspicabile la dimostrazione di frammenti di codice formattati.


Renat, questo è già antisportivo ;)

MQL è il TUO linguaggio, non c'è uno standard per esso, quindi hai il diritto di fissare i TUOI standard. E non vi dimostreremo nulla.

Ma MQL è un linguaggio simile al C. E C ha diversi standard generalmente accettati. Eccoli: https://en.wikipedia.org/wiki/Indent_style.

Personalmente preferisco lo stile Allman (bsd in Emacs).

Lo stile mette la parentesi associata a un'istruzione di controllo sulla riga successiva, indentata allo stesso livello dell'istruzione di controllo. Le affermazioni all'interno delle parentesi sono indentate al livello successivo.

mentre (x == y)
{
qualcosa();
{ somethingelse();
}
finalthing();


Mi sembra che il problema di difendere il proprio punto di vista sia assolutamente inverosimile. Se vuoi vedere il tuo testo formattato così, fai pure! Ma ci sono altre persone che vogliono vederlo formattato in modo diverso. Queste persone (che non hanno accesso al corpo) ti chiedono di considerare le loro esigenze e di fare degli aggiustamenti alla formattazione in modo che possa essere formattata sia a modo tuo che a modo loro. Solo voi, gli sviluppatori, potete farlo. Questo è ciò che ci rivolgiamo a voi con questa richiesta. O ci venite incontro a metà strada o ci rimandate tutti al vostro standard. Scegliete la vostra opzione e annunciatela.

Indent style - Wikipedia, the free encyclopedia
  • en.wikipedia.org
Indentation is not a requirement of most programming languages, where it is used as secondary notation. Rather, programmers indent to better convey the structure of their programs to human readers. In particular, indentation is used to show the relationship between control flow constructs such as conditions or loops and code contained within...
 

Solo un paio di paragrafi per aggiungere perché penso che questa domanda sia importante e perché penso che lo stile Allman (bsd in Emacs) sia quello giusto. Dimentichiamo per un po' chi è abituato a cosa e facciamo appello alla nuda logica.

Perché è necessario formattare il testo? Per isolare e dividere i singoli blocchi logici in esso, utilizzando proprio questa formattazione.


Diamo un'occhiata a un normale mentre. Ha due blocchi logicamente isolati: l'"intestazione" del ciclo e il corpo del ciclo. Per non confonderli, devono essere messi su linee separate. Per questo motivo, aprire una parentesi nella stessa riga di while (per me personalmente) provoca sconcerto (è come un uomo che entra per metà in una stanza - tutto il corpo è nella stanza e la testa è ancora "lasciata" dietro la porta).


Ora la seconda domanda è: spingere le staffe o no? In linea di principio, le parentesi non si riferiscono direttamente all'intestazione e sono piuttosto una parte del corpo del ciclo. Tuttavia, solo i comandi eseguibili dovrebbero essere spinti all'interno, cioè qualcosa che ha la sua logica separata. Ma c'è almeno un esempio sensato di un ciclo senza corpo:

while ( TradingServerNotAvailable() )
{
}

Semplicemente non abbiamo niente da fare mentre il server commerciale non è disponibile - quindi non facciamo niente e il ciclo del corpo è vuoto. In questo caso, le parentesi spinte all'interno sembrano (dal mio punto di vista) - un po' strane: spostate a destra e vuoto evidenziato.

Quando un ciclo ha un corpo, viene spostato a destra e lo spazio a sinistra è reso disponibile per trovare coppie di parentesi di chiusura:

while ( TradingServerNotAvailable() )
{
Sleep ( 1000 );
}

Questa è un'altra ragione per cui le parentesi di apertura non dovrebbero essere messe nella stessa linea dell'intestazione del ciclo - sono più difficili da trovare lì quando si cercano le parentesi di chiusura. Nella mia versione, si vede chiaramente una parentesi in questa posizione e la sua controparte in un'altra linea ma nella stessa posizione. Inoltre, la linea con una sola parentesi (anche senza commenti!) serve come un ulteriore elemento visivo, evidenziando e separando il blocco interno da quello esterno.


Come vedi: niente di personale - solo la logica della percezione visiva del testo!


Ed è dal punto di vista di questa logica (piuttosto che delle preferenze e abitudini personali) che il testo nell'attuale formattazione dello styler mi risulta incomprensibile:

// чего вдавлен внутрь кусок кода - в котором кода нет и выделять там нечего
while ( TradingServerNotAvailable() )
{
}
// каждый отступ вправо ассоциируется с новым уровнем вложенности, а здесь визуально ТРИ уровня!
while ( TradingServerNotAvailable() ) // первый уровень
  { // второй уровень
   Sleep(1000); // третий уровень
  }

E se, nella scrittura ispirata a GNU, è solo poltiglia.

if ( TradingServerNotAvailable() ) {
  ....
} else { // вот тут в одной строке ТРИ элемента разных блоков: закрытие предыдущего, разделитель, начало следующего :(((
  ....
}

e come puoi dire se non hai perso le parentesi di apertura o messo una parentesi di chiusura in più? È così:

if ( TradingServerNotAvailable() ) 
{
  ....
}
else
{
  ....
}
Ancora una volta: non sono le mie abitudini personali o altro - solo la logica della percezione visiva del testo!
Indent style - Wikipedia, the free encyclopedia
  • en.wikipedia.org
Indentation is not a requirement of most programming languages, where it is used as secondary notation. Rather, programmers indent to better convey the structure of their programs to human readers. In particular, indentation is used to show the relationship between control flow constructs such as conditions or loops and code contained within...