コーディングスタイルについて - ページ 5 1234567 新しいコメント Sceptic Philozoff 2009.06.29 20:56 #41 MQL4,C- 4のクラスはどこにあるのですか?それに、開発者が「5では当分、継承はない」と言っていたような気がします。 Rashid Umarov 2009.06.30 05:28 #42 Mathemat >> : MQL4,C-4のクラスはどこにあるのですか?それに、開発者が「5では継承はしない」と言っていたような気がします。 すでにあるんですよ、いろいろと。また、テトリスでも(mq5ソースで)見ることができます。 Sceptic Philozoff 2009.06.30 17:43 #43 いやあ、面白いですね。玩具が発売されてから3ヶ月、今更ながら...。 Sergey Kravchuk 2009.06.30 18:43 #44 Mathemat >> : いやあ、面白いですね。玩具が発売されてから3ヶ月、今更ながら...。 見落としたかもしれない...。 この「すごい」という感嘆詞の意味は何でしょうか? ソースをテストするためのmt5があるのでしょうか? もしあれば、ダウンロードするためのリンクを教えてください。 Sceptic Philozoff 2009.06.30 18:58 #45 いやいや、MT5はまだ(凡人には)見えませんが、少なくともコードを見ることはできますよ。おおよそ予想がつきますね。 Sergey Kravchuk 2009.07.21 08:16 #46 MQLソースを解析して、使用された変数/関数の名前とテキスト中の「言及」数を何らかの形で出力できるアプリケーションをどなたかご紹介いただけないでしょうか? 例えば、捨てられたテキストから未使用の変数の残骸をキャッチしたり、ひどく省略された名前を誤って長く明確なものに変更してしまわないように、そしてそれが、ずっと前に忘れていた、コードのどこかに存在するグローバル変数の 名前であることが判明したりするのです。 Vasiliy Sokolov 2009.07.21 16:50 #47 YuraZ >> :私は好む if ( a > c ) codret = 3; if ( l < b ) codret = 5; ... ... if ( h != b ) codret = 100; // 特に,return の前にすべての出力に共通する追加操作がある場合 ... 例:ここで別のことをする retrun( codret); } 私がマルチリターン出力を使う理由の典型的な例が示されましたね。この例では、この関数は最初のトリガーではなく、最後にトリガーされたif()を返します。私の例では、この関数は最初のマッチを返します。実際には、条件を満たす最初の値を正確に返す必要があることがよくあり、最後にトリガーされたチェックを返す必要はほとんどない。この例では、戻り値が1つだからといって、関数が返す値をトレースしやすくなるわけではなく、逆に、たった1つの戻り値からすべてを予想することができる。 ちなみに、個人的には、肝心の「;」文字を式から切り離すのは嫌いなんです。 extern double max_price[100]; //直近100本分の最大値を格納 extern double max_price[100];//過去100バーの最大価格を保持 - 私はこの方法しか書きません。 СанСаныч Фоменко 2009.07.22 12:51 #48 70年代には「構造化プログラミング」という非常にファッショナブルなトレンドがあった。それについて多くの本が書かれた。最も記憶に残った文章は、関数が1枚に収まること(当時はディスプレイがなかった)、gotoがないこと、など本全体のことである。その後、オブジェクト指向プログラミングに変わったと言われている。もしかしたら、また車輪の再発明をしているのでは? Sceptic Philozoff 2009.07.22 16:51 #49 いや、ここではあくまでスタイルの話です。ちなみに、場合によってはgotoを全く気にしないこともあります。 TheXpert 2009.07.22 17:24 #50 C-4 >> : なぜ関数の中に関数を宣言するのか?個人的には、CとC++だけで育ったので、この方法は理解できません。 カプセル化...テンプレートを書いていて、非常にローカルな関数やファンクタやクラスを隠したいとき、非常に便利です。 そして、たいていの場合、無名の名前空間を使えば何とかなるものです。 2.私は、このような中括弧をつけるごく一般的なスタイルが嫌いです。 非常に無駄が多い。歯列矯正でいろいろな失敗をする温床に。従来は、省スペースと機能コードの大きさのルールが正当化されていました。 しかし、テラバイトの時代となった今、なぜ容量不足を残念がる必要があるのでしょうか。 5.関数の中に関数を使っています。 非効率(1回の呼び出しが数回ある)、中途半端、長い。特にUBの1つは、悪意のある非自明なエラーの温床となる。 さらに--コピペについて。とても迷惑なことです :)正直言って、使っていてよく失敗します。例えば、変数の名前を変えるのを忘れたとか、コメントを変更したとか、そういうことです。 だからこそ、コードレビューというのは非常に有用なものなのです。 パスカルについて :) .今までは、まだオリンピックのメイン言語として使われていたんです。理由は簡単で、キーワードが少なく、論理的な構成になっているからです。 長い間、私はPascal(というかDelphi)がC++より悪いとは思っていませんでしたが、C++の方が優れていることがわかるまでは。 今思うと、Pascalの方がバイナリコードを書くのが難しいという一面もありますね。 >>それから、コメントについてですが、特に30%についてはデタラメばかりです。 セルフ・ドキュメンテーションのコードを書けば、幸せになれる。MQL4ではクラスがないため、かなり難しいです。でも、授業を受ければ、もっと簡単になるはずです。 インデント、命名規則、アラインメントなど、それ以外はすべて推奨事項に過ぎない。 ところで、機能といえば。フォントはどうすればいいのでしょうか?1行でも長いとどうなる?何をするものなのかを明確にすることがメインで、あとは推奨事項です。 最も重要なことは、コードをメンテナンスする可能性のある人たちができるだけ理解できるようにすることです。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MQL4,C- 4のクラスはどこにあるのですか?それに、開発者が「5では当分、継承はない」と言っていたような気がします。
MQL4,C-4のクラスはどこにあるのですか?それに、開発者が「5では継承はしない」と言っていたような気がします。
すでにあるんですよ、いろいろと。また、テトリスでも(mq5ソースで)見ることができます。
いやあ、面白いですね。玩具が発売されてから3ヶ月、今更ながら...。
いやあ、面白いですね。玩具が発売されてから3ヶ月、今更ながら...。
見落としたかもしれない...。
この「すごい」という感嘆詞の意味は何でしょうか? ソースをテストするためのmt5があるのでしょうか? もしあれば、ダウンロードするためのリンクを教えてください。
いやいや、MT5はまだ(凡人には)見えませんが、少なくともコードを見ることはできますよ。おおよそ予想がつきますね。
MQLソースを解析して、使用された変数/関数の名前とテキスト中の「言及」数を何らかの形で出力できるアプリケーションをどなたかご紹介いただけないでしょうか?
例えば、捨てられたテキストから未使用の変数の残骸をキャッチしたり、ひどく省略された名前を誤って長く明確なものに変更してしまわないように、そしてそれが、ずっと前に忘れていた、コードのどこかに存在するグローバル変数の 名前であることが判明したりするのです。
私は好む
if ( a > c )
codret = 3;
if ( l < b )
codret = 5;
...
...
if ( h != b )
codret = 100;
// 特に,return の前にすべての出力に共通する追加操作がある場合
... 例:ここで別のことをする
retrun( codret);
}
私がマルチリターン出力を使う理由の典型的な例が示されましたね。この例では、この関数は最初のトリガーではなく、最後にトリガーされたif()を返します。私の例では、この関数は最初のマッチを返します。実際には、条件を満たす最初の値を正確に返す必要があることがよくあり、最後にトリガーされたチェックを返す必要はほとんどない。この例では、戻り値が1つだからといって、関数が返す値をトレースしやすくなるわけではなく、逆に、たった1つの戻り値からすべてを予想することができる。
ちなみに、個人的には、肝心の「;」文字を式から切り離すのは嫌いなんです。
extern double max_price[100]; //直近100本分の最大値を格納
extern double max_price[100];//過去100バーの最大価格を保持 - 私はこの方法しか書きません。
いや、ここではあくまでスタイルの話です。ちなみに、場合によってはgotoを全く気にしないこともあります。
なぜ関数の中に関数を宣言するのか?個人的には、CとC++だけで育ったので、この方法は理解できません。
カプセル化...テンプレートを書いていて、非常にローカルな関数やファンクタやクラスを隠したいとき、非常に便利です。
そして、たいていの場合、無名の名前空間を使えば何とかなるものです。
2.私は、このような中括弧をつけるごく一般的なスタイルが嫌いです。
非常に無駄が多い。歯列矯正でいろいろな失敗をする温床に。従来は、省スペースと機能コードの大きさのルールが正当化されていました。
しかし、テラバイトの時代となった今、なぜ容量不足を残念がる必要があるのでしょうか。
5.関数の中に関数を使っています。
非効率(1回の呼び出しが数回ある)、中途半端、長い。特にUBの1つは、悪意のある非自明なエラーの温床となる。
さらに--コピペについて。とても迷惑なことです :)正直言って、使っていてよく失敗します。例えば、変数の名前を変えるのを忘れたとか、コメントを変更したとか、そういうことです。
だからこそ、コードレビューというのは非常に有用なものなのです。
パスカルについて :) .今までは、まだオリンピックのメイン言語として使われていたんです。理由は簡単で、キーワードが少なく、論理的な構成になっているからです。
長い間、私はPascal(というかDelphi)がC++より悪いとは思っていませんでしたが、C++の方が優れていることがわかるまでは。
今思うと、Pascalの方がバイナリコードを書くのが難しいという一面もありますね。
>>それから、コメントについてですが、特に30%についてはデタラメばかりです。
セルフ・ドキュメンテーションのコードを書けば、幸せになれる。MQL4ではクラスがないため、かなり難しいです。でも、授業を受ければ、もっと簡単になるはずです。
インデント、命名規則、アラインメントなど、それ以外はすべて推奨事項に過ぎない。
ところで、機能といえば。フォントはどうすればいいのでしょうか?1行でも長いとどうなる?何をするものなのかを明確にすることがメインで、あとは推奨事項です。
最も重要なことは、コードをメンテナンスする可能性のある人たちができるだけ理解できるようにすることです。