OOPと手続き型プログラミングの比較 - ページ 27 1...202122232425262728293031323334...48 新しいコメント Georgiy Merts 2017.08.15 03:28 #261 Реter Konow: 関数型プロシージャプログラミングでは、あなたが言うようなアクセスの問題は存在しません。関数のオーバーロードもなく、フィールドやオブジェクトもなく、ポインタもなく、どこからでもアクセスできるすべてのグローバル 変数のための1つのメモリしかないのに、どうして間違った関数が呼び出されるのでしょうか?どのようなアクセスエラーが発生する可能性がありますか?全部覚えるのも楽だしね。最も単純なエラーは、値に近い値を含む間違った変数を参照することである。 このようなミスは、長い間発見されないかもしれませんが、意地悪の法則によって、この場所でミスのない仕事がとても必要な時に「ひょっこり」現れるのです そして、それは、ああ、とても難しいことになる...。TSが取引を閉じるべきでないのに、Expert Advisorが良いトレンドで取引を閉じてしまった理由を理解しようとしている - そして、それができない。すべて正常に動作しているようです。 これはまさに最も不愉快な間違いの1つで、変数の非初期化、あるいは間違った変数のアドレス指定、しかし値としては近いものです。そして、プログラムのこの部分やあの部分で利用できる変数が多ければ多いほど、このエラーが発生する確率は高くなるのです。 ええ、もちろん、グローバルにアクセスできるグラフィカルなコアがあり、オーダーを扱うのであれば、間違った変数にアクセスするのは本当に難しいことです。しかし、それ以前のブロックでは、注文を開始する必要性を検出し、この目的のために、おそらくユーザーの行動に従ってインジケータをアドレスします - 変数を混在させることはかなり可能です。システム全体の構造をメモリ上に保持するだけなので、何の問題もないのですが、構造物が増え、重要な部分がメモリ上から定期的に消えていくような場合は、グローバルアクセスが問題の原因であり、絶対に使用しない方がよいという結論に至ります。そして、コードはできるだけ覚えないように書くべきだということです。各ブロックには機能を示す名前がついており、入力時にはその機能に必要かつ十分なデータを受け取り、あとは「外から」他の知識を入れずに機能を実現するだけ、というのが理想的だ。 Реter Konow 2017.08.15 03:53 #262 George Merts:これは単純なミスで、近い値を含む間違った変数を参照することです。 このようなミスは、長い間発見されないかもしれませんが、意地悪の法則によって、この場所でミスのない仕事がとても必要な時に「ひょっこり」現れるのです そして、それは、ああ、とても難しいことになる...。TSが取引を閉じるべきでないのに、Expert Advisorが良いトレンドで取引を閉じてしまった理由を理解しようとしている - そして、それができない。すべて正常に動作しているようです。 これはまさに最も不愉快な間違いの一つで、変数の非初期化、あるいは間違った変数のアドレス指定、しかし値としては近いものです。そして、プログラムのこの部分やあの部分で利用できる変数が多ければ多いほど、このエラーが発生する確率は高くなるのです。 ええ、もちろん、グローバルにアクセスできるグラフィカルなコアがあり、オーダーを扱うのであれば、間違った変数にアクセスするのは本当に難しいことです。しかし、それ以前のブロックでは、注文を開始する必要性を検出し、この目的のために、おそらくユーザーの行動に従ってインジケータをアドレスします - 変数を混在させることはかなり可能です。システム全体の構造をメモリ上に保持するだけなので、何の問題もないのですが、構造物が増え、重要な部分がメモリ上から定期的に消えていくような場合は、グローバルアクセスが問題の元凶であり、絶対に使用しない方が良いという結論に至ります。そして、コードはできるだけ覚えないように書くべきだということです。各ブロックは、その機能を示す名前を持ち、入力時にその機能に必要かつ十分なデータを受け取り、あとは機能を実装するだけで、「外から」他の知識を巻き込まないことが理想的です。まあ、全部名前が違うのに、どうやって間違った変数を呼び出すんだ?一意な名前を持ち、オーバーロードがない場合、どうして間違った関数が呼び出されるのでしょうか?カーネル配列の内部では、すべてのセルのインデックスに人語の名前が付けられている。ここで何を勘違いしたのでしょうか?あなたが言っている問題は、まったく存在しないことを理解してください。カーネルの構造体だけをメモリ上に保持する、とてもシンプルなものです。オブジェクトのプロパティの一覧も知っています。すべてのオブジェクトは同じプロパティを持ち、値だけが異なっています。全部で140の物件を持っていますが、重要なものだけ30くらいを記憶しています。あとは必要なときに思い出します。そのために、definesでファイルを開き、プロパティの全リストを見るのです。難しいことは何もありません。OBJECT" や "WINDOW" などのフォーカスされたグローバル 変数は、記憶する必要は全くありません。しかも、他のものと混ぜることは不可能です。 私の変数にはロシア語で意味のある名前がついています。乱痴気パーティーの後では混乱するしかない)。 Реter Konow 2017.08.15 05:21 #263 私のグローバル 変数は、フォーカスで使われる変数で、カーネルを「ターゲット」にして、カーソルの動きに合わせて移動させるものです。 例えば、変数 "WINDOW "は、カーソルがあるウィンドウの番号を常に保持する。変数 "OBJECT "は、カーソルが位置するそのオブジェクトの番号です。 G_CORE[WINDOW][OBJECT][_NAME] や G_CORE[WINDOW][OBJECT][_OBJECT_GROUP] など、カーネル内の特定のウィンドウやオブジェクト、プロパティをアドレス指定します。どの関数でも、オブジェクトのX座標が欲しければG_CORE[WINDOW][OBJECT][_X]から、オブジェクトの高さが欲しければG_CORE[WINDOW][OBJECT][_Y_SIZE]などから取得することになります。全部で100個くらいのグローバル変数を個別に宣言しているのですが、配列の中のセルがすべて変数なので、グローバルカーネルの配列には何千個もの変数があるんです。しかし、この数の変数は順番に並んでいるため、非常に管理がしやすいのです。カーネル内の各ウィンドウは配列フィールドであり、各行は140個のプロパティからなる1つのオブジェクトである。この場合の要素とは、オブジェクトの集合のことです。各要素にはマスターオブジェクトがあり、要素全体の主要なプロパティが含まれています。各要素に属するオブジェクトは、特殊なインデックスでリンクされており、オブジェクトがフォーカスされると、それが属する要素もフォーカスされる。それが描かれたキャンバスも同様です。カーネルの明示的なアーキタイプと、どの関数からも直接アクセスできるおかげで、カーネルの配列セルで表される何千もの変数を、何も忘れることなく、あちこち移動することなく管理することができるのです。 Alexey Volchanskiy 2017.08.15 06:43 #264 СанСаныч Фоменко: 全く無意味な会話:コードを「良い」「悪い」と分類 する基準はありません。そのため、OOPについては明確ではありません。私にとっては、作者や第三者がコードを読み、修正に使用し、かなり長い時間をかけてバグを探すことができる......という事実が示す、コードのフィージビリティがその基準となっています。ここでは、上記のフェドセーエフがOOPスイッチを交換しました。この例は、不幸中の幸いかもしれませんが、私にとってはOOPの悪質さを証明するものです。100ポジションのスイッチを持つ明確なコードが、1行で置き換えられています。このラインを理解するためには、どこかに行かなければならない。私にとっては許されないことです。ジョージ・マーツ 氏による上記2番目の例デバッグ後、クリアコードをNOTクリアコードに置き換えた場合。私の基準では、質の高い(読みやすい)コードは、私にとって受け入れがたいコードに置き換えられていました。OOPを 適用するとプログラムはより鮮明に なり、Fedoseyevがスイッチで示した例は失敗なのか、逆にFedoseyevの例は非常に正確にOOPを特徴づけていて、OOPはほとんどの場合、鮮明さを失わせるのか?まあ、すべてはCCでクリアしているのですが。彼の理解のレベルより上のものはすべて見苦しい。でも、彼はRの字を知っている ))))))))))))))))))))))))))))))))))))))))))) СанСаныч Фоменко 2017.08.15 08:14 #265 Alexey Volchanskiy: まあ、CCはクリアなんですけどね。彼の理解力以上の ものは、魅力がない のです。でも、彼はRの字を知っている )))))))))))))))))))))))))))))))))))))))))))中国語、日本語も加えて...。なぜPLOなのか?なぜ、それが良いのでしょうか?可視化とは、デバッグや修正を容易にすることです。なぜなら、世界はすべてオブジェクトに対するアクションに基づいていますが、その逆はないからです。機能への分解が、入力を出力に変換する順序から導かれる場合。例えば、BUY|SELLの入力を出力に変換するには、ACTIONを指定することで初めて可能になります。これが、人間の思考というものです。PS. Rについてのコメントについて。バカにするんですか?ごく稀にですが、お答えします。 Georgiy Merts 2017.08.15 09:25 #266 Реter Konow:全部違う名前なのに、一体どうやって間違った変数を呼び出すんだ?一意な名前を持ち、オーバーロードもないのに、どうして間違った関数が呼び出されるのか?カーネル配列の内部では、すべてのセルのインデックスに人語の名前がつけられている。ここで何を勘違いしたのでしょうか?あなたが言っている問題は、まったく存在しないことを理解してください。まあ、そういうケースは何度かありましたね。 多くの場合、このようなエラーは、他の場所からコードをコピーして、現在のブロックに従って「修正」したときに発生します。グローバルなアクセス権を持っている場合、変数の一つを変更し損ねる可能性があります。この場合、自分が作業しなければならないものにしかアクセスできないのであれば - コピーした後に - コンパイラ自身が、変更する必要のあるすべての変数と場所のリストを表示します。タグコノウ。私の記憶にはカーネル構造しかなく、とてもシンプルです。オブジェクトのプロパティの一覧も知っています。すべてのオブジェクトのプロパティは同じで、値だけが異なっています。全部で140の物件を持っていますが、重要なものだけ30くらいを記憶しています。あとは必要なときに思い出します。そのために、definesでファイルを開き、プロパティの全リストを見るのです。難しいことは何もありません。 30物件ですか......それは、私には受け入れられませんね。覚えていないわけではないが、記憶に頼りたくない。各ブロックでは、はるかに良い - あなたは常に正確にそれらの変数を持って、このブロックで処理する必要があり、他のへのアクセスはありません。 でも、覚えなきゃいけないのがストレスで...。そして、あなたにとって難しいことではないのだから、不必要なOOPいじりをする意味がないのも理解できる。 Реter Konow 2017.08.15 09:54 #267 George Merts:まあ、こういうケースは何度かあったんですけどね。 この種のエラーの多くは、他の場所からコードの一部をコピーして、現在のブロックに合うように「修正」したときに発生します。グローバルなアクセス権を持っている場合、変数の一つを変更しそこなうことも十分にあり得ます。この場合、自分が作業しなければならないものにしかアクセスできないのであれば - コピーした後に - コンパイラ自身が、変更する必要のあるすべての変数と場所のリストを表示します。30物件ですか......それはちょっといただけませんね。覚えていないわけではないのですが、記憶に頼りたくないのです。各ブロックでは、はるかに良い - あなたは常に正確にそれらの変数を持って、このブロックで処理されるべきであり、単に他のへのアクセスがありません。 でも、覚えなきゃいけないのがストレスで...。そして、あなたにとって難しいことではないのだから、不必要なOOPトランザクションを行う必要がないのも理解できる。まあ、率直に言って、いろいろなことを覚えていますよ。スナップオブジェクトの略語_X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C etc.を見てみるといい。はそれぞれ、あるオブジェクトの他のオブジェクトに対する位置を定義する。これらは、パラメータ A1,B1,C1,A2,B2,C2,A3,B3,C3,A4,B4,C4,A5... に含まれる。また、オブジェクトのカテゴリとサブカテゴリの名前を数十個、ウィンドウのプロパティを数十個(100個以上)覚えています。例えば、ビルドブロックには数十の関数があり、4000行以上のコードを占有しています。たくさんナビゲートして覚えなければならないのです。しかし、思い出すということは、一度にではなく、少しずつ長い間練習することで得られるものです。以前はエンティティの量やコードの大きさに頭が重くなっていましたが、だんだん詰め込まれてシンプルになってきました。 Alexey Oreshkin 2017.08.15 10:02 #268 Реter Konow: まあ、率直に言って、いろいろなことを覚えていますよ。オブジェクトリファレンスの略称 _X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C, etc...。各パラメータは、あるオブジェクトの別のオブジェクトに対する特定の位置を定義し、パラメータA1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4、A5...になります。また、オブジェクトのカテゴリとサブカテゴリの名前を数十個、ウィンドウのプロパティを数十個(100個以上)覚えています。例えば、ビルドブロックには数十の関数があり、4000行以上のコードを占有しています。たくさんナビゲートして覚えなければならないのです。しかし、思い出すということは、一度にではなく、少しずつ長い間練習することで得られるものです。以前はエンティティの数やコードの大きさに頭が膨らんでいたのですが、そのうち全部が詰まってシンプルになりました。気晴らしに、何もかも忘れて、1ヶ月間、コードのことを考えずに休暇を過ごすことです。そして戻ってきたら、a1, b1, などを見て、ヒステリックになるんだ :) Реter Konow 2017.08.15 10:23 #269 Alexey Oreshkin :気が散って、すべてを忘れて、コードについて考えずに1か月間休暇を取ります。来た後、これらすべてのa1、b1などを参照してください。ヒステリックになります:)たとえば、これはプロトコアの「チェックボックス」要素がどのように見えるかです。 _OBJECTS_SET, CHECKBOX, //============================================================================================================================================================================================================================================================================================================================================================================================================================================ //------------T------X----Y----W-----H----B_TYPE-- MOB---PXL-----------G-----C------SG---SC--OBJSCR--NEUTRAL-----------A1--B1--C1-----------A2----B2--C2----------A3----B3--C3--------A4--B4--C4-------OBH--OBI--C5--D5--E5--------------------------------------------------------------------------------------------------------------ACT-STATUS--CURRENT-----CURRENT---LAST-------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //Основание чекбокса-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _NEW_OBJECT, 5 , 0 , 0 , 200 , 17 , _STRIP, _CNVS, 0 , _aq1,CHECKBOX, 0 ,_MOB, 0 , _aq1, _NS_gr1, A1, _C2C,_CNVS, 0 , A2, _C2C,_CNVS, 0 , A3,_W2T, _aq3, 30 , A4, 0 , 0 , 0 , A5, 0 , 0 , 0 , 0 , 0 , A6, 0 , A7, 1 , _aq1, CHECKBOX, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , A8, 0 , 0 , 0 , A9, _OBJECT_RELEASED, _NS_gr1, 0 , 0 , 0 , 0 , 0 , 0 , _PL_END, //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //Лейбл чекбокса-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _NEW_OBJECT, 5 , 0 , 0 , 0 , 0 , _LABEL, _CNVS, 0 , _aq2,CHECKBOX, 0 , 0 , 0 , _aq1, _NS_gr3, A1, _X2X,_aq1, 0 , A2, _Y2Y,_aq1, 0 , A3, 0 , 0 , 0 , A4, 0 , 0 , 0 , A5, 0 ,_CHECKBOX_OFF, 0 , 0 , 0 , A6, 0 , A7, 2 , _aq1, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , A8, 0 , 0 , 0 , A9, _OBJECT_RELEASED, _NS_gr4, _CHECKBOX_ON, 0 , 0 , _NS_gr5, _NS_gr6, _NS_gr7, _NS_gr7, _PL_END, //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //Наименование чекбокса-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _NEW_OBJECT, 5 , 0 , 0 , 0 , 0 , _TEXT_, _CNVS, 0 , _aq3,CHECKBOX,_OCN, 0 , 0 , _aq1, _NS_gr2, A1, _X2X,_aq1, 25 , A2, _Y2Y,_aq2, 2 , A3, 0 , 0 , 0 , A4, 0 , 0 , 0 , A5, 0 , 0 , 0 , 0 , 0 , A6, 0 , A7, 3 , _aq1, 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , A8, 0 , 0 , 0 , A9, _OBJECT_RELEASED, _NS_gr2, 0 , 0 , 0 , _NS_gr9, _NS_gr9, _NS_gr10, _NS_gr10, _PL_END, //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- _END_, //============================================================================================================================================================================================================================================================================================================================================================================================================================================ //_NEUTRAL_STATE //==================================================================================================================================================================================================================================================== // X Y PIXEL_0 ALFA_0 PIXEL_1 ALFA_1 PIXEL_2 ALFA_2 PIXEL_3 ALFA_3 PIXEL_4 ALFA_4 PIXEL_5 ALFA_5 PIXEL_6 ALFA_6 PIXEL_7 ALFA_7 //==================================================================================================================================================================================================================================================== _NS_gr1, 0 , 0 , 0 , 0 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //==================================================================================================================================================================================================================================================== //========================================================================================================================================================================================================================================== //-------------X-----------Y--------TEXT COLOR-----TEXT_ALFA FONT----FONT SIZE-----ANGLE------POSITION----------STYLE--------------------------------------------------------------------------------------------------------------------------------------- //========================================================================================================================================================================================================================================== _NS_gr2, 0 , 0 , clrBlack , 255 , 1 , 10 , 0 , TA_LEFT | TA_TOP , FW_NORMAL , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //======================================================================================================================================================================================================================================= //========================================================================================================================================================================================================================================== //-------------X-----------Y--------TEXT COLOR-----TEXT_ALFA FONT----FONT SIZE-----ANGLE------POSITION----------STYLE--------------------------------------------------------------------------------------------------------------------------------------- //========================================================================================================================================================================================================================================== _NS_gr9, 0 , 0 , clrBlue , 155 , 1 , 10 , 0 , TA_LEFT | TA_TOP , FW_NORMAL , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //======================================================================================================================================================================================================================================= //========================================================================================================================================================================================================================================== //-------------X-----------Y--------TEXT COLOR-----TEXT_ALFA FONT----FONT SIZE-----ANGLE------POSITION----------STYLE--------------------------------------------------------------------------------------------------------------------------------------- //========================================================================================================================================================================================================================================== _NS_gr10, 0 , 0 , C'150,150,150' , 255 , 1 , 10 , 0 , TA_LEFT | TA_TOP , FW_NORMAL , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , - 1 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //======================================================================================================================================================================================================================================= //LABEL _NEUTRAL_STATE //==================================================================================================================================================================================================================================================== // X Y PIXEL_0 ALFA_0 PIXEL_1 ALFA_1 PIXEL_2 ALFA_2 PIXEL_3 ALFA_3 PIXEL_4 ALFA_4 PIXEL_5 ALFA_5 PIXEL_6 ALFA_6 PIXEL_7 ALFA_7 //==================================================================================================================================================================================================================================================== _NS_gr3, 0 , 0 , C'255,255,255' , 255 , C'253,253,253' , 255 , C'80,80,80' , 255 , C'140,140,140' , 255 , C'200,200,200' , 255 , C'245,245,245' , 255 , C'240,240,240' , 255 , 0 , 0 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //==================================================================================================================================================================================================================================================== //LABEL _ACTIVATED_STATE //==================================================================================================================================================================================================================================================== // X Y PIXEL_0 ALFA_0 PIXEL_1 ALFA_1 PIXEL_2 ALFA_2 PIXEL_3 ALFA_3 PIXEL_4 ALFA_4 PIXEL_5 ALFA_5 PIXEL_6 ALFA_6 PIXEL_7 ALFA_7 //==================================================================================================================================================================================================================================================== _NS_gr4, 0 , 0 , C'255,255,255' , 255 , C'253,253,253' , 255 , C'80,80,80' , 255 , C'140,140,140' , 255 , C'200,200,200' , 255 , C'245,245,245' , 255 , C'240,240,240' , 255 , 0 , 0 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //==================================================================================================================================================================================================================================================== //_OBJECT_NEUTRAL_HIGHLIGHTED //==================================================================================================================================================================================================================================================== // X Y PIXEL_0 ALFA_0 PIXEL_1 ALFA_1 PIXEL_2 ALFA_2 PIXEL_3 ALFA_3 PIXEL_4 ALFA_4 PIXEL_5 ALFA_5 PIXEL_6 ALFA_6 PIXEL_7 ALFA_7 //==================================================================================================================================================================================================================================================== _NS_gr5, 0 , 0 , clrWhite , 255 , clrWhite , 255 , C'80,80,80' , 255 , C'140,140,140' , 255 , C'200,200,200' , 255 , C'245,245,245' , 255 , C'240,240,240' , 255 , clrBlue , 255 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //==================================================================================================================================================================================================================================================== //_OBJECT_ACTIVATED_HIGHLIGHTED //==================================================================================================================================================================================================================================================== // X Y PIXEL_0 ALFA_0 PIXEL_1 ALFA_1 PIXEL_2 ALFA_2 PIXEL_3 ALFA_3 PIXEL_4 ALFA_4 PIXEL_5 ALFA_5 PIXEL_6 ALFA_6 PIXEL_7 ALFA_7 //==================================================================================================================================================================================================================================================== _NS_gr6, 0 , 0 , C'255,255,255' , 255 , C'253,253,253' , 255 , C'80,80,80' , 255 , C'140,140,140' , 255 , C'200,200,200' , 255 , C'245,245,245' , 255 , C'240,240,240' , 255 , clrBlue , 255 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //==================================================================================================================================================================================================================================================== //_OBJECT_NEUTRAL_BLOCKED/ACTIVATED_BLOCKED //==================================================================================================================================================================================================================================================== // X Y PIXEL_0 ALFA_0 PIXEL_1 ALFA_1 PIXEL_2 ALFA_2 PIXEL_3 ALFA_3 PIXEL_4 ALFA_4 PIXEL_5 ALFA_5 PIXEL_6 ALFA_6 PIXEL_7 ALFA_7 //==================================================================================================================================================================================================================================================== _NS_gr7, 0 , 0 , C'245,245,245' , 255 , C'245,245,245' , 255 , C'180,180,180' , 255 , C'180,180,180' , 255 , C'200,200,200' , 255 , C'245,245,245' , 255 , C'235,235,235' , 255 , C'245,245,245' , 255 , _PL_END, //+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //==================================================================================================================================================================================================================================================== Реter Konow 2017.08.15 10:41 #270 30以上ある要素のうちのひとつに過ぎないのです。そして、最も小さいものの一つです。でも、すごいのは--本を開くように読んだことです。何を表しているのか、説明するのに苦労することはありません。もうひとつ不思議なのは、このような要素は、他の似たような要素をコピーして、多少の修正を加えることで、非常に速く作られることです。怖そうに見えるけど、実はとても簡単なんです。 1...202122232425262728293031323334...48 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
関数型プロシージャプログラミングでは、あなたが言うようなアクセスの問題は存在しません。関数のオーバーロードもなく、フィールドやオブジェクトもなく、ポインタもなく、どこからでもアクセスできるすべてのグローバル 変数のための1つのメモリしかないのに、どうして間違った関数が呼び出されるのでしょうか?どのようなアクセスエラーが発生する可能性がありますか?全部覚えるのも楽だしね。
最も単純なエラーは、値に近い値を含む間違った変数を参照することである。
このようなミスは、長い間発見されないかもしれませんが、意地悪の法則によって、この場所でミスのない仕事がとても必要な時に「ひょっこり」現れるのです
そして、それは、ああ、とても難しいことになる...。TSが取引を閉じるべきでないのに、Expert Advisorが良いトレンドで取引を閉じてしまった理由を理解しようとしている - そして、それができない。すべて正常に動作しているようです。
これはまさに最も不愉快な間違いの1つで、変数の非初期化、あるいは間違った変数のアドレス指定、しかし値としては近いものです。そして、プログラムのこの部分やあの部分で利用できる変数が多ければ多いほど、このエラーが発生する確率は高くなるのです。
ええ、もちろん、グローバルにアクセスできるグラフィカルなコアがあり、オーダーを扱うのであれば、間違った変数にアクセスするのは本当に難しいことです。しかし、それ以前のブロックでは、注文を開始する必要性を検出し、この目的のために、おそらくユーザーの行動に従ってインジケータをアドレスします - 変数を混在させることはかなり可能です。
システム全体の構造をメモリ上に保持するだけなので、何の問題もないのですが、構造物が増え、重要な部分がメモリ上から定期的に消えていくような場合は、グローバルアクセスが問題の原因であり、絶対に使用しない方がよいという結論に至ります。そして、コードはできるだけ覚えないように書くべきだということです。各ブロックには機能を示す名前がついており、入力時にはその機能に必要かつ十分なデータを受け取り、あとは「外から」他の知識を入れずに機能を実現するだけ、というのが理想的だ。
これは単純なミスで、近い値を含む間違った変数を参照することです。
このようなミスは、長い間発見されないかもしれませんが、意地悪の法則によって、この場所でミスのない仕事がとても必要な時に「ひょっこり」現れるのです
そして、それは、ああ、とても難しいことになる...。TSが取引を閉じるべきでないのに、Expert Advisorが良いトレンドで取引を閉じてしまった理由を理解しようとしている - そして、それができない。すべて正常に動作しているようです。
これはまさに最も不愉快な間違いの一つで、変数の非初期化、あるいは間違った変数のアドレス指定、しかし値としては近いものです。そして、プログラムのこの部分やあの部分で利用できる変数が多ければ多いほど、このエラーが発生する確率は高くなるのです。
ええ、もちろん、グローバルにアクセスできるグラフィカルなコアがあり、オーダーを扱うのであれば、間違った変数にアクセスするのは本当に難しいことです。しかし、それ以前のブロックでは、注文を開始する必要性を検出し、この目的のために、おそらくユーザーの行動に従ってインジケータをアドレスします - 変数を混在させることはかなり可能です。
システム全体の構造をメモリ上に保持するだけなので、何の問題もないのですが、構造物が増え、重要な部分がメモリ上から定期的に消えていくような場合は、グローバルアクセスが問題の元凶であり、絶対に使用しない方が良いという結論に至ります。そして、コードはできるだけ覚えないように書くべきだということです。各ブロックは、その機能を示す名前を持ち、入力時にその機能に必要かつ十分なデータを受け取り、あとは機能を実装するだけで、「外から」他の知識を巻き込まないことが理想的です。
まあ、全部名前が違うのに、どうやって間違った変数を呼び出すんだ?一意な名前を持ち、オーバーロードがない場合、どうして間違った関数が呼び出されるのでしょうか?カーネル配列の内部では、すべてのセルのインデックスに人語の名前が付けられている。ここで何を勘違いしたのでしょうか?あなたが言っている問題は、まったく存在しないことを理解してください。
カーネルの構造体だけをメモリ上に保持する、とてもシンプルなものです。オブジェクトのプロパティの一覧も知っています。すべてのオブジェクトは同じプロパティを持ち、値だけが異なっています。全部で140の物件を持っていますが、重要なものだけ30くらいを記憶しています。あとは必要なときに思い出します。そのために、definesでファイルを開き、プロパティの全リストを見るのです。難しいことは何もありません。OBJECT" や "WINDOW" などのフォーカスされたグローバル 変数は、記憶する必要は全くありません。しかも、他のものと混ぜることは不可能です。
私の変数にはロシア語で意味のある名前がついています。乱痴気パーティーの後では混乱するしかない)。私のグローバル 変数は、フォーカスで使われる変数で、カーネルを「ターゲット」にして、カーソルの動きに合わせて移動させるものです。
例えば、変数 "WINDOW "は、カーソルがあるウィンドウの番号を常に保持する。変数 "OBJECT "は、カーソルが位置するそのオブジェクトの番号です。
G_CORE[WINDOW][OBJECT][_NAME] や G_CORE[WINDOW][OBJECT][_OBJECT_GROUP] など、カーネル内の特定のウィンドウやオブジェクト、プロパティをアドレス指定します。どの関数でも、オブジェクトのX座標が欲しければG_CORE[WINDOW][OBJECT][_X]から、オブジェクトの高さが欲しければG_CORE[WINDOW][OBJECT][_Y_SIZE]などから取得することになります。
全部で100個くらいのグローバル変数を個別に宣言しているのですが、配列の中のセルがすべて変数なので、グローバルカーネルの配列には何千個もの変数があるんです。しかし、この数の変数は順番に並んでいるため、非常に管理がしやすいのです。カーネル内の各ウィンドウは配列フィールドであり、各行は140個のプロパティからなる1つのオブジェクトである。この場合の要素とは、オブジェクトの集合のことです。各要素にはマスターオブジェクトがあり、要素全体の主要なプロパティが含まれています。各要素に属するオブジェクトは、特殊なインデックスでリンクされており、オブジェクトがフォーカスされると、それが属する要素もフォーカスされる。それが描かれたキャンバスも同様です。カーネルの明示的なアーキタイプと、どの関数からも直接アクセスできるおかげで、カーネルの配列セルで表される何千もの変数を、何も忘れることなく、あちこち移動することなく管理することができるのです。
全く無意味な会話:コードを「良い」「悪い」と分類 する基準はありません。そのため、OOPについては明確ではありません。
私にとっては、作者や第三者がコードを読み、修正に使用し、かなり長い時間をかけてバグを探すことができる......という事実が示す、コードのフィージビリティがその基準となっています。
ここでは、上記のフェドセーエフがOOPスイッチを交換しました。この例は、不幸中の幸いかもしれませんが、私にとってはOOPの悪質さを証明するものです。100ポジションのスイッチを持つ明確なコードが、1行で置き換えられています。このラインを理解するためには、どこかに行かなければならない。私にとっては許されないことです。
ジョージ・マーツ 氏による上記2番目の例
デバッグ後、クリアコードをNOTクリアコードに置き換えた場合。私の基準では、質の高い(読みやすい)コードは、私にとって受け入れがたいコードに置き換えられていました。
OOPを 適用するとプログラムはより鮮明に なり、Fedoseyevがスイッチで示した例は失敗なのか、逆にFedoseyevの例は非常に正確にOOPを特徴づけていて、OOPはほとんどの場合、鮮明さを失わせるのか?
まあ、すべてはCCでクリアしているのですが。彼の理解のレベルより上のものはすべて見苦しい。でも、彼はRの字を知っている )))))))))))))))))))))))))))))))))))))))))))
まあ、CCはクリアなんですけどね。彼の理解力以上の ものは、魅力がない のです。でも、彼はRの字を知っている )))))))))))))))))))))))))))))))))))))))))))
中国語、日本語も加えて...。
なぜPLOなのか?なぜ、それが良いのでしょうか?
可視化とは、デバッグや修正を容易にすることです。なぜなら、世界はすべてオブジェクトに対するアクションに基づいていますが、その逆はないからです。
機能への分解が、入力を出力に変換する順序から導かれる場合。例えば、BUY|SELLの入力を出力に変換するには、ACTIONを指定することで初めて可能になります。
これが、人間の思考というものです。
PS.
Rについてのコメントについて。
バカにするんですか?
ごく稀にですが、お答えします。
全部違う名前なのに、一体どうやって間違った変数を呼び出すんだ?一意な名前を持ち、オーバーロードもないのに、どうして間違った関数が呼び出されるのか?カーネル配列の内部では、すべてのセルのインデックスに人語の名前がつけられている。ここで何を勘違いしたのでしょうか?あなたが言っている問題は、まったく存在しないことを理解してください。
まあ、そういうケースは何度かありましたね。
多くの場合、このようなエラーは、他の場所からコードをコピーして、現在のブロックに従って「修正」したときに発生します。グローバルなアクセス権を持っている場合、変数の一つを変更し損ねる可能性があります。この場合、自分が作業しなければならないものにしかアクセスできないのであれば - コピーした後に - コンパイラ自身が、変更する必要のあるすべての変数と場所のリストを表示します。
タグコノウ。
私の記憶にはカーネル構造しかなく、とてもシンプルです。オブジェクトのプロパティの一覧も知っています。すべてのオブジェクトのプロパティは同じで、値だけが異なっています。全部で140の物件を持っていますが、重要なものだけ30くらいを記憶しています。あとは必要なときに思い出します。そのために、definesでファイルを開き、プロパティの全リストを見るのです。難しいことは何もありません。
30物件ですか......それは、私には受け入れられませんね。覚えていないわけではないが、記憶に頼りたくない。各ブロックでは、はるかに良い - あなたは常に正確にそれらの変数を持って、このブロックで処理する必要があり、他のへのアクセスはありません。
でも、覚えなきゃいけないのがストレスで...。そして、あなたにとって難しいことではないのだから、不必要なOOPいじりをする意味がないのも理解できる。
まあ、こういうケースは何度かあったんですけどね。
この種のエラーの多くは、他の場所からコードの一部をコピーして、現在のブロックに合うように「修正」したときに発生します。グローバルなアクセス権を持っている場合、変数の一つを変更しそこなうことも十分にあり得ます。この場合、自分が作業しなければならないものにしかアクセスできないのであれば - コピーした後に - コンパイラ自身が、変更する必要のあるすべての変数と場所のリストを表示します。
30物件ですか......それはちょっといただけませんね。覚えていないわけではないのですが、記憶に頼りたくないのです。各ブロックでは、はるかに良い - あなたは常に正確にそれらの変数を持って、このブロックで処理されるべきであり、単に他のへのアクセスがありません。
でも、覚えなきゃいけないのがストレスで...。そして、あなたにとって難しいことではないのだから、不必要なOOPトランザクションを行う必要がないのも理解できる。
まあ、率直に言って、いろいろなことを覚えていますよ。スナップオブジェクトの略語_X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C etc.を見てみるといい。はそれぞれ、あるオブジェクトの他のオブジェクトに対する位置を定義する。これらは、パラメータ A1,B1,C1,A2,B2,C2,A3,B3,C3,A4,B4,C4,A5... に含まれる。また、オブジェクトのカテゴリとサブカテゴリの名前を数十個、ウィンドウのプロパティを数十個(100個以上)覚えています。例えば、ビルドブロックには数十の関数があり、4000行以上のコードを占有しています。たくさんナビゲートして覚えなければならないのです。しかし、思い出すということは、一度にではなく、少しずつ長い間練習することで得られるものです。以前はエンティティの量やコードの大きさに頭が重くなっていましたが、だんだん詰め込まれてシンプルになってきました。
まあ、率直に言って、いろいろなことを覚えていますよ。オブジェクトリファレンスの略称 _X2X, Y2Y, B2B, R2R, H2Y, W2X, Y2H, X2W, C2C, etc...。各パラメータは、あるオブジェクトの別のオブジェクトに対する特定の位置を定義し、パラメータA1、B1、C1、A2、B2、C2、A3、B3、C3、A4、B4、C4、A5...になります。また、オブジェクトのカテゴリとサブカテゴリの名前を数十個、ウィンドウのプロパティを数十個(100個以上)覚えています。例えば、ビルドブロックには数十の関数があり、4000行以上のコードを占有しています。たくさんナビゲートして覚えなければならないのです。しかし、思い出すということは、一度にではなく、少しずつ長い間練習することで得られるものです。以前はエンティティの数やコードの大きさに頭が膨らんでいたのですが、そのうち全部が詰まってシンプルになりました。
気晴らしに、何もかも忘れて、1ヶ月間、コードのことを考えずに休暇を過ごすことです。そして戻ってきたら、a1, b1, などを見て、ヒステリックになるんだ :)
気が散って、すべてを忘れて、コードについて考えずに1か月間休暇を取ります。来た後、これらすべてのa1、b1などを参照してください。ヒステリックになります:)
たとえば、これはプロトコアの「チェックボックス」要素がどのように見えるかです。