Feedback su MQL5 - pagina 7

 
Renat Fatkhullin:

La descrizione delle regole di uno stilista non può essere riassunta in poche righe di narrativa.

Formatta il modo in cui abbiamo stabilito.

Ciao!

Il fatto che la styler formatti solo il modo in cui hai steso e nient'altro è un po' strano. Lasciatemi spiegare.

MT è una piattaforma Windows. Il principale strumento di sviluppo per Windows è MSVC, mentre MT è scritto in MFC. Questa libreria adotta la variante di Kernighan e Ritchie dello standard di indentazione e formattazione. Così, per una persona che ha passato tutta la sua vita in MSVC (e ce ne sono molti in Windows) vedere 3 spazi come tab e 2 spazi extra prima di "{" e anche nessuno spazio tra gli stretti (se, per...) e le parentesi seguenti è un po' ridicolo e disturba la lettura del codice. Capisco che avete adottato questo formato come standard aziendale, ma non si applica ad altri sviluppatori.

Quindi suggerisco di introdurre alcune impostazioni di styler, tutti diranno un grande grazie.

 
SeriousRacoon:

Ciao!

Il fatto che lo styler formatti solo il modo in cui vuoi tu e non lo formatti in nessun altro modo è un po' strano. Lasciatemi spiegare.

MT è una piattaforma Windows. Il principale strumento di sviluppo per Windows è MSVC, la libreria MT è scritta in MFC. Questa libreria adotta la variante di Kernighan e Ritchie dello standard di indentazione e formattazione. Così, per una persona che ha passato tutta la sua vita in MSVC (e ce ne sono molti in Windows) vedere 3 spazi come tab e 2 spazi extra prima di "{" e anche nessuno spazio tra gli stretti (se, per...) e le parentesi seguenti è un po' ridicolo e disturba la lettura del codice. Capisco che avete adottato questo formato come standard aziendale, ma non si applica ad altri sviluppatori.

Quindi suggerisco di introdurre alcune impostazioni di styler, tutti diranno un grande grazie.

Una piccola correzione, il codestyle Microsoft non è uno standard K&R. Lo standard K&R è fondamentalmente una differenza tra parentesi graffe, è progettato per adattarsi al maggior numero possibile di linee sullo schermo del PDP-11 e altri display alfanumerici - 80 caratteri * 25 linee. A proposito, ecco un link al libro, forse qualcuno lo troverà 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);
}

Per il resto sono d'accordo ed è già stato scritto circa 100500 volte. Personalmente, porto tutti i testi di terzi MQL allo studio e li riformatto lì.

 
Alexey Volchanskiy:

Piccola correzione, il codestyle di Microsoft non è uno standard K&R. Lo standard K&R è per lo più una differenza tra parentesi graffe, è progettato per adattarsi al maggior numero possibile di linee sullo schermo del PDP-11 e altri display alfanumerici - 80 caratteri * 25 linee. A proposito, ecco un link al libro, forse qualcuno lo troverà utile http://rabus.ru/KernighanRitchie_C/index.html#content

Per il resto sono d'accordo ed è già stato scritto circa 100500 volte. Personalmente, porto tutti i testi di terzi MQL allo studio e li riformatto lì.

Sì, la differenza è con la parentesi di apertura, per il resto simile, ecco perché l'ho chiamata "variante".

Sarebbe più facile se l'ambiente МТТ avesse User Tools, così potrei allegare l'abbellitore di terze parti, ma non è possibile. Opzionalmente usate un editor di terze parti con supporto per l'output stdout degli strumenti utente (Editplus è un classico, ma ci sono soluzioni più interessanti), ma è solo una stampella in più. Uso Unscrutify configurato in UniversalIndentGUI.

 
I commenti non relativi a questo argomento sono stati spostati in "Discussione su "Perché l'hosting condiviso in MetaTrader 4 e MetaTrader 5 è meglio di un normale VPS".
 
urusov:

Per favore:

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

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

Nominate un linguaggio di uso comune in cui non posso assegnare un indirizzo diverso a un puntatore? Nominate un altro linguaggio molto usato in cui non posso assegnare un riferimento dello stesso tipo a un oggetto diverso? Dove altro sarei costretto a descrivere un costruttore o una funzione di copia a causa di queste limitazioni del vostro linguaggio?

E se la controllabilità è fondamentale per voi, perché gli altri linguaggi controllati non impongono restrizioni simili?

Personalmente, per me, non è la sicurezza e la controllabilità che viene prima, ma la velocità con cui posso implementare un'idea; questo è estremamente vero nel contesto delle idee di trading; coloro che non sono d'accordo con questo o sopravvalutano il valore dei loro sistemi, o programmano per il gusto di programmare, non per un risultato specifico.

C# si sa, è un linguaggio industriale ora, ha già ampiamente sostituito C++ nelle applicazioni business/internet. Quindi non ci sono puntatori, o meglio ci sono, ma non sicuri, e nessuno ha bisogno di codice non sicuro, solo per l'artigianato personale.
 
Alexey Volchanskiy:
C# si sa, è un linguaggio industriale ora, ha già ampiamente sostituito C++ nelle applicazioni business/internet. Quindi non ci sono puntatori, o meglio ci sono, ma non sicuri, e nessuno ha bisogno di codice non sicuro, solo per l'artigianato personale.
qualche vantaggio di c sharp per la gente comune?
 

E perché un puntatore nudo è così brutto? Se non si fa con ottimizzazioni rigorose dell'aliasing, i puntatori sono abbastanza sicuri in generale (msvc lo ha fatto).

In generale, tutti questi discorsi sulla sicurezza non fanno che velare le vere ragioni, come è stato detto prima. E la ragione è semplice, credo - non permettere di conoscere in alcun modo gli indirizzi delle funzioni da passare alla dll. Un sistema sepolto non ha bisogno del mondo esterno.

 
O l'MC è a posto con i colback normali? Ho un'idea, l'argomento è off-limits?
 
Alexey Volchanskiy:
C# si sa, è ormai un linguaggio industriale, ha già ampiamente sostituito C++ nelle applicazioni business/internet. Quindi non ci sono puntatori, o meglio, ci sono, ma non sicuri, e nessuno ha bisogno di codice non sicuro, solo per l'artigianato personale.

A proposito!

Una volta ho incontrato un confronto tra i linguaggi C e Pascal

Il linguaggio C è guidare una Ferrari su una strada di montagna a 180 km/h,

e il linguaggio di Pascal è un viaggio tranquillo in una limousine su una strada larga e a senso unico a 40 km/h.

C doveva essere, tipo, un linguaggio da veri uomini).

Nella C, devi tenere gli occhi sui cartelli :-) Il linguaggio C non è per i deboli di cuore, perché se non si seguono le indicazioni si rischia di volare fuori pista su un tornante.

Il C è il linguaggio dei sistemi operativi e delle utility, dei driver. Il C è stato originariamente scritto da professionisti che scrivevano i sistemi operativi e le utility per gli utenti.

Pascal è stato originariamente scritto in C per gli studenti. Pascal è stato scritto come un linguaggio didattico.

La differenza di scopo e di uso degli strumenti è evidente.

MQL è essenzialmente un derivato del C, la scelta degli sviluppatori di MetaQuotes è professionalmente molto corretta.

 
Yuriy Zaytsev:

A proposito!

Una volta ho incontrato un confronto tra C e Pascal .

Il linguaggio C è come una vera Ferrari che guida su una strada di montagna a 180 km/h,

e il linguaggio di Pascal è un viaggio tranquillo in una limousine su una strada larga e a senso unico a 40 km/h.

C doveva essere, tipo, un linguaggio da veri uomini).

Nella C, devi tenere gli occhi sui cartelli :-) Il linguaggio C non è per i deboli di cuore, perché se non si seguono le indicazioni si rischia di volare fuori pista su un tornante.

Il C è il linguaggio dei sistemi operativi e delle utility, dei driver. Il C è stato originariamente scritto da professionisti che scrivevano i sistemi operativi e le utility per gli utenti.

Pascal è stato originariamente scritto in C per gli studenti. Pascal è stato scritto come un linguaggio didattico.

La differenza di scopo e di uso degli strumenti è evidente.

MQL è essenzialmente un derivato del C. La scelta degli sviluppatori di MetaQuotes è professionalmente molto corretta.

Che differenza fa la lingua in cui scrivere?

(Per esempio, si possono scrivere driver e tutto il resto in Pascal).

È importante capire cosa e come si fa, e il linguaggio di programmazione è una doppia questione!