جاوا اسکرپٹ کی حکمت عملی کو کروم براؤزر میں ڈیو ٹولز ڈیبگ کرنے کے لئے دوبارہ آزمائیں

مصنف:چھوٹا سا خواب, تخلیق: 2022-06-22 14:23:26, تازہ کاری: 2023-09-18 20:24:01

img

جاوا اسکرپٹ کی حکمت عملی کو کروم براؤزر میں ڈیو ٹولز ڈیبگ کرنے کے لئے دوبارہ آزمائیں

عام طور پر صرف ریگولیٹر سسٹم میں ڈیبگنگ کی حکمت عملی کے لئے استعمال کیا جاتا ہے.Log()اس طرح کا ڈی بی یو جی بہت کم موثر ہے اور پروگرام ٹیسٹنگ میں کم تجربے والے نئے آنے والوں کے لئے کچھ مشکل ہے۔JavaScriptزبان کی حکمت عملی ڈیبگنگ کے لئےChromeبراؤزر میں بہتر معاونت ہے۔ آپ ریٹرن ٹائم بریک ڈیبگنگ ، سنگل اسٹیپ ڈیبگنگ ، متغیر کی نگرانی ، اظہار کی نگرانی وغیرہ کو قابل بناسکتے ہیں۔ اب آئیے ہم مل کر سیکھیں کہ FMZ پر اس طرح کا استعمال کیسے کریں۔Javascriptزبان کی پالیسی کو دوبارہ جانچنے پر DEBUG کریں۔ نوٹ کریں کہ FMZ پر صرفJavascriptزبان کی حکمت عملی اس طرح کے ڈیکوریشن کے طریقہ کار کی حمایت کرتی ہے۔

FMZ پلیٹ فارم پرdebuggerہدایات

ایف ایم زیڈ پر جاوا اسکرپٹ کی پالیسی کوڈ میں داخل کریںdebuggerایک ہدایت جو پروگرام کو دوبارہ جانچ پڑتال کے دوران روکنے کے لئے اجازت دیتی ہے۔

ہم نے مندرجہ ذیل ٹیسٹنگ حکمت عملی کوڈ استعمال کیا:

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

function main() {
    var n = 1 
    while (true) {
        var t = exchange.GetTicker()
        debugger
        var r = exchange.GetRecords()
        if (n == 1) {
            // 下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性,属性名区分大小写
            var id = exchange.Buy(t.buy, 0.1)    
            var orderBuy = exchange.GetOrder(id)
        }
        Sleep(500)
    }
}

کوڈ کو دوبارہ ترتیب دیں

/*backtest
start: 2022-03-21 09:00:00
end: 2022-06-21 15:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

جیسا کہ آپ دیکھ سکتے ہیں کہ جب ہم نے جائزہ لیا تو ایک اور تبادلے کو شامل کیا گیا تھا جو کہ Binance (بائنین) کی جگہ پر ہے اور اس کی ترتیب اسکرین شاٹ کی طرح ہے:

img

اور اگر ہم اس کوڈ کو دیکھتے رہیں تو ہم یہ دیکھ سکتے ہیں کہvar t = exchange.GetTicker()اس جملے کے نیچے ہم لکھتے ہیں:debuggerاسٹریٹجک کوڈ میں ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔ اسٹریٹجک کوڈ میں ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔ اسٹریٹجک کوڈ میں ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔debuggerاس کے علاوہ ، یہ سفارش نہیں کی جاتی ہے کہ آپ کسی جگہ پر صرف ایک وقفے پر کلک کریں ، اور بعد میں وقفے کو براؤزر کے ڈیو ٹولز ڈیبگنگ کی خصوصیت میں ترتیب دیا جاسکتا ہے۔

آپ کو Chrome براؤزر کھولنے کی ضرورت ہےDevToolsپھر دوبارہ جانچ پڑتال کریں، پالیسی کوڈ میں مقرر کردہdebuggerاس کے علاوہ، آپ کو اس کے بارے میں مزید جاننے کی ضرورت نہیں ہے.debuggerاس کے بعد، آپ کو اس بات کا یقین کرنے کی ضرورت نہیں ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے کہ آپ نے پہلے سے ہی اس بات کا یقین کر لیا ہے.DevToolsایک بار جب پالیسی دوبارہ ترتیب دی جاتی ہے، تو پالیسی کا پروگرام پہلے سیٹ پر رک جاتا ہے۔debuggerمقام،debuggerآپ کو اسٹریٹجک کوڈ کے عالمی دائرہ کار میں بھی سیٹ کیا جاسکتا ہے۔

ہم کھولتے ہیں، کروم براؤزرDevToolsیہ دو طریقے ہیں:

  • 1، ہم دائیں کلک کے ساتھ صفحے کے پاپ اپ مینو کو کھولنے کے لئے.

    img

    اگر ہم "چیک کریں" پر کلک کریں تو ہمیں ڈیو ٹولز انٹرفیس دکھایا جائے گا۔

  • 2، شارٹ کٹ استعمال کریں

    آپ اسے کھولنے کے لئے ایک مختصر بٹن کا استعمال کر سکتے ہیں.Command+Option+I (Mac)یاControl+Shift+I(Windows、Linux)کھولیںDevTools

کھولیںDevToolsاس کے بعد یہ ہے:

img

جاوا اسکرپٹ زبان کی پالیسی کے براؤزر میں ڈیبگ کا انٹرفیس

اس کے بعد مندرجہ بالا ٹیسٹ میں، جب ہم "شروع دوبارہ ترتیب" کے بٹن پر کلک کرتے ہیں تو، دوبارہ ترتیب کی پالیسی کو تبدیل کر دیا جاتا ہے کیونکہ یہ کوڈ میں مقرر کیا گیا ہے.debuggerہدایات، حکمت عملیوں میں وقفے سے متعلقہ پوزیشنوں میں انتظار کریں۔ دوبارہ شروع کرنے کے لئے یہ گڑبڑ کی طرح ہے، جیسا کہ ذیل میں دکھایا گیا ہے:

img

آپ دیکھ سکتے ہیں، حکمت عملی میںdebuggerنشان لگا دیا جائے گا کہ وقفے کی جگہ، پورے پروگرام صرف n تفویض 1 کے طور پر انجام دیا، t تفویض 1 کے طور پر.GetTickerفنکشن کی واپسی کی سرگرمیوں کا ڈیٹا۔ مندرجہ بالا گراف میں سرخ باکس میں مخصوص متغیرات کی قدر دیکھی جاسکتی ہے ، تاکہ حکمت عملی چلتے وقت متغیرات کی قدر کو دیکھنا آسان ہو۔

دستی طور پر بریک پوائنٹ ڈیبگنگ

ہم کوڈ کے بائیں جانب لائن نمبر پر کلک کر سکتے ہیں اور نقطۂٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔٔ کا اضافہ کر سکتے ہیں۔

img

اسکرپٹ کے عمل کو دوبارہ شروع کرنے کے لیے "resume script execution" پر کلک کریں۔ اسکرپٹ اگلے وقفے تک چلتا رہے گا اور اگر کوئی وقفہ نہیں ہے یا پروگرام میں کوئی غلطی ہے جس کی وجہ سے کوئی غیر معمولی بات ہوئی ہے تو دوبارہ جانچ ختم ہوجائے گی۔

img

اس کے علاوہ کچھ بٹن بھی ہیں جو آپ استعمال کرسکتے ہیں: اگلے فنکشن کو چھوڑیں، اگلے فنکشن کو کال کریں، موجودہ فنکشن کو کال کریں، ایک قدم پر عمل کریں، تمام وقفوں کو نظر انداز کریں وغیرہ۔

img

اس ٹیسٹ کوڈ کو ڈیبگ کریں

img

اس وقت، جب ہم "resume script execution" کے بٹن پر کلک کرتے ہیں تو اسکرپٹ کو جاری رکھنے کے لئے، اسٹریٹجک پروگرام میں ایک غیر معمولی واقعہ ہوتا ہے، دوبارہ جانچ پڑتال ختم ہوتی ہے اور غیر معمولی غلطی کا پیغام شائع کرتی ہے.

main:17:31 - TypeError: Cannot convert "undefined" to double

یہ ایک عام غلطی ہے جو نئے آنے والوں کے لئے ہوتی ہے، کسی ساختہ خصوصیت کے نام کے لئے بڑے اور چھوٹے سائز کا فرق نہیں ہوتا ہے۔

var id = exchange.Buy(t.buy, 0.1)  //  下买单,此处有错误,会报错,返回null,GetTicker返回数据t,只有Buy属性,没有buy属性。

导致传入exchange.Buy函数的价格是一个undefined变量,引起程序异常,回测结束。

جب پروگرام ٹوٹنے کی پوزیشن پر رک جاتا ہے تو ، اس لائن کا کوڈ عمل میں نہیں آتا ہے۔ ہم "اسٹیپ ان اگلی فنکشن کال" کے بٹن پر کلک کرتے ہیں۔

img

跳转到exchange.Buy函数调用中。

img

قیمت کو ایک غیر متعین متغیر کے طور پر دیکھتے ہیں۔

مندرجہ بالا طریقوں کا استعمال کرتے ہوئے ، پروگرام کی غلطی کو قدم بہ قدم تلاش کرنا آسان ہے۔ بہت سے نئے آنے والوں کی غلطیوں میں سے ایک: جیسے کہ صفوں کے انڈیکس تک رسائی کی حد کو عبور کرنا ، غیر متعین متغیرات کا حوالہ دینا ، اظہار کی غلطی وغیرہ۔ اس طرح سے پروگرام کو ڈیبگ کرنا آسان ہے۔


متعلقہ

مزید

fmzeroسونے کے کمرے، اور یہ بھی کر سکتے ہیں، 666، ہاہاہا