MQL5に関するご意見・ご感想 - ページ 7

 
Renat Fatkhullin:

スタイリストのルール説明は、数行の架空の文章にまとめることはできません。

それは、私たちが敷設した方法をフォーマットすることです。

こんにちは。

スタイリング 剤は、寝かせた方法だけをフォーマットして、それ以外は何もしないというのは、ちょっと不思議な感じです。説明しよう。

MTはWindowsプラットフォームです。Windowsの主な開発ツールはMSVCで、MTはMFCで書かれています。本ライブラリは、KernighanとRitchieのインデントとフォーマットの規格の変種を採用しています。だから、MSVCでずっと過ごしてきた人(Windowsに多い)にとって、タブに3つのスペース、"{"の前に2つの余計なスペース、さらにストレート(if, for...)と次の括弧の間にスペースがないのは、ちょっとばかしコードを読むのに支障があるのです。このフォーマットを企業標準として採用しているとのことですが、他のデベロッパーには適用されないのですね。

そこで、スタイリストの設定を導入することを提案すると、みんなから「ありがとう」と言われます。

 
SeriousRacoon:

こんにちは。

スタイラーは、あなたが望む書式にのみ書式を設定し、他の書式には設定しないというのは、ちょっと不思議なことです。説明しよう。

MTはWindowsプラットフォームです。Windowsの主な開発ツールはMSVCで、MTライブラリはMFCで記述されています。本ライブラリは、KernighanとRitchieのインデントとフォーマットの規格の変種を採用しています。だから、MSVCでずっと過ごしてきた人(Windowsにはそういう人が多い)にとって、タブに3つのスペース、"{"の前に2つの余計なスペース、さらにプロパティ(if, for...)とそれに続くブラケットの間にスペースがないのは、ちょっとばかし、コードを読む妨げになるのです。このフォーマットを企業標準として採用しているとのことですが、他のデベロッパーには適用されないのですね。

そこで、スタイリストの設定を導入することを提案すると、みんなから「ありがとう」と言われます。

少し訂正すると、マイクロソフトのコードスタイルはK&Rの標準ではありません。K&R規格は基本的に中括弧の差分で、PDP-11などの英数字ディスプレイの画面にできるだけ多くの行を収められるように、80文字*25行で設計されているんだ。ちなみに、この本のリンクはこちらです。もしかしたら、誰かが役に立つかもしれませんよ。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);
}

それ以外は同意で、もう100500回くらい書かれてる。個人的には、MQLのサードパーティ製テキストはすべてスタジオに持ち込んで、そこで再フォーマットしています。

 
Alexey Volchanskiy:

若干の訂正、マイクロソフトのコードスタイルはK&Rの規格ではありません。K&R規格は、ほとんどが中括弧の差分で、PDP-11などの英数字ディスプレイの画面にできるだけ多くの行を収められるように、80文字*25行で設計されているんだ。ちなみに、この本のリンクはこちらです。もしかしたら、誰かが役に立つかもしれませんよ。http://rabus.ru/KernighanRitchie_C/index.html#content。

それ以外は同意で、もう100500回くらい書かれてる。個人的には、MQLのサードパーティ製テキストはすべてスタジオに持ち込んで、そこで再フォーマットしています。

そうですね、冒頭の括弧が違うだけで、それ以外は似ているので「バリアント」と呼びました。

МТ環境にユーザーツールがあれば、サードパーティ製のビューティファイアを添付することができるので楽なのですが、そうもいきません。オプションとして、ユーザーツールからstdout出力をサポートするサードパーティ製エディタ(Editplusが定番ですが、もっと面白いソリューションもあります)を使用することもできますが、それは単なる余分な松葉杖に過ぎません。UniversalIndentGUIで設定したUnscrutifyを使用しています。

 
 
urusov:

お願いします。

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

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

ポインタに異なるアドレスを割り当てることができない、よく使われる言語を1つ挙げてください。同じ型の参照を別のオブジェクトに割り当てることができない、広く使われている他の言語を1つ挙げてください。このような言語の制限のために、コンストラクタやコピー関数を記述することを余儀なく される場所が他にあるでしょうか?

また、制御性を最重要視するのであれば、なぜ他の制御言語では同様の制限を課さないのでしょうか?

個人的には、安全性や制御性が第一ではなく、アイデアを実現するスピードが重要です。これは、トレーディングのアイデアという文脈では非常に正しいことです。これに反対する人は、自分のシステムの価値を過大評価しているか、特定の結果ではなく、プログラミングのためにプログラミングしているのでしょう。

C#は今や産業用言語であり、ビジネスやインターネット・アプリケーションではすでにC++に取って代わられていますね。だから、ポインターはない、というより、あっても安全でない、そして誰も安全でないコードを必要としない、個人的な工芸品のためだけだ。
 
Alexey Volchanskiy:
C#は今や産業用言語であり、ビジネスやインターネット・アプリケーションではすでにC++に取って代わられていますね。だから、ポインターはない、というか、あっても安全ではない、誰も安全ではないコードを必要としない、個人的な工芸品のためだけである。
Cシャープを使うメリットは何ですか?
 

そして、なぜ裸のポインターが悪いのか?厳密なエイリアス最適化でやらないなら、ポインターは一般的にかなり安全です(msvcはそうしています)。

だいたい、安全性云々というのは、さっきから言われているように、本当の理由を隠しているに過ぎないんです。その理由は簡単で、DLLに渡される関数のアドレスを一切知ることができないからだと思います。埋もれたシステムには、外界は必要ないのです。

 
それとも、MCは通常のコルバックでOKなのでしょうか?思いついたのですが、この話題は禁句でしょうか?
 
Alexey Volchanskiy:
C#はご存知の通り、今や産業用言語であり、ビジネスやインターネットのアプリケーションではすでにC++に大きく取って代わられています。だから、ポインターはない、というか、あっても安全でない。安全でないコードを必要とする人はいない、個人的な工作のためだけだ。

ちなみに!?

昔々、C 言語とPascal 言語の比較に出会ったことがある

C 言語は、山道を時速180kmで フェラーリを 走らせているようなものだ。

パスカル 言語は、広い一方通行の道路を時速40 kmで走るリムジンに静かに乗っているようなものです。

C言語は、本当の男言葉みたいなものだったんだ)。

Cでは、道標から目を離さないことです :-)C言語は気の弱い人には向かない。道標に従わなければ、ヘアピンカーブでコースから外れてしまう危険性があるからだ。

C言語は、OSやユーティリティ、ドライバの言語です。 C言語はもともと、ユーザーのためにOSやユーティリティを書くプロによって書かれたものです。

Pascalはもともと学生向けにC言語で書かれたものです。 Pascalは教育用言語として書かれたものです。

道具の目的や使い方の違いは一目瞭然です。

MQLは本質的にC言語から派生したものであり、MetaQuotesの開発者の選択はプロフェッショナルとして非常に正しいものです。

 
Yuriy Zaytsev:

ちなみに!?

昔々、C言語Pascalの 比較に出会ったことがある。

C 言語は、山道を時速180km で走る本物のフェラーリの ようなものだ。

パスカル 言語は、広い一方通行の道路を時速40 kmで走るリムジンに静かに乗っているようなものです。

C言語は、本当の男言葉みたいなものだったんだ)。

Cでは、道標から目を離さないことです :-)C言語は気の弱い人には向かない。標識に従わなければ、ヘアピンカーブでコースから外れてしまう危険性があるからだ。

C言語は、OSやユーティリティ、ドライバの言語です。 C言語はもともと、ユーザーのためにOSやユーティリティを書くプロによって書かれたものです。

Pascalはもともと学生向けにC言語で書かれたものです。 Pascalは教育用言語として書かれたものです。

道具の目的や使い方の違いは一目瞭然です。

MQLは基本的にC言語の派生言語であり、MetaQuotesの開発者の選択はプロフェッショナルとして非常に正しい。

何語で書くかは全く関係ないのですか?

(例えば、ドライバも何もかもPascalで書くことができます)。

何をどうやるのかが重要で、プログラミング言語は二の次です