Elm:
ডিবাগার ব্যবহার করা
কিভাবে:
ঐতিহ্যগত অর্থে Elm-এ বিল্ট-ইন ডিবাগার নেই, যেমনটা বলা যায়, JavaScript-এ ব্রাউজার ডেভ টুলস সাথে আছে। তবে, Elm সম্প্রদায় এই ফাঁকটি পূরণের জন্য টুলস তৈরি করেছে। আপনার Elm অ্যাপ ডিবাগ করতে elm-debug-transformer
ব্যবহার করার নির্দেশিকা নিম্নরূপ:
-- elm-debug-transformer ইনস্টল করুন (নোড প্যাকেজ)
1. npm install -g elm-debug-transformer
-- আপনার অ্যাপ শুরু করতে elm-debug-transformer ব্যবহার করুন
2. elm-debug-transformer --port=8000 yourMainElmFile.elm
elm-debug-transformer
চালু হয়ে গেলে, এটি লগিংয়ের জন্য একটি WebSocket সংযোগ তৈরি করে। আপনার ব্রাউজারের কনসোলে আপনি ডিবাগ তথ্য দেখতে পাবেন যেখানে আপনি আপনার অ্যাপ্লিকেশনের নির্দিষ্ট পয়েন্টে আপনার প্রোগ্রামের ডেটা স্ট্রাকচারগুলি পরিদর্শন করতে পারেন।
Elm 0.19 এবং পরবর্তীতে, Debug
মডিউলের ফাংশন যেমন Debug.log
এবং Debug.todo
আপনার মানগুলি ট্র্যাক করতে এবং আপনার কোডের অসম্পূর্ণ অংশগুলি সচেতনভাবে চিহ্নিত করতে সাহায্য করতে পারে। Debug.log ব্যবহার করার উপায় এখানে দেওয়া হল:
import Debug
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
Increment ->
( Debug.log "Incrementing" { model | count = model.count + 1 }, Cmd.none )
Decrement ->
( Debug.log "Decrementing" { model | count = model.count - 1 }, Cmd.none )
আপনি আপনার ব্রাউজারের কনসোলে “Incrementing” অথবা “Decrementing” বার্তাগুলি দেখতে পাবেন যা সাথে model
-এর নতুন অবস্থা দেখাবে।
গভীর ডুব
Elm-এর লেখক, ইভান চাজপ্লিকি, এমন এক ভাষা তৈরি করতে চেয়েছিলেন যেখানে সাধারণ ত্রুটিগুলি অসম্ভব অথবা সহজে ধরা পড়বে এই দর্শনই কেন Elm-এর মূলে ঐতিহ্যগত ডিবাগিং ফাংশন অন্তর্ভুক্ত নেই। Elm-এর স্ট্যাটিক বিশ্লেষণ এবং টাইপ ইনফারেন্স রানটাইম ত্রুটিগুলি কমাতে বিশাল অবদান রাখে, যা জটিল রানটাইম ডিবাগিংয়ের প্রয়োজন হ্রাস করে। ইতিহাসগত বিকল্পগুলি অন্তর্ভুক্ত করে এখন অপ্রচলিত elm-reactor
ব্যবহার করা যা সময়-ভ্রমণ ডিবাগিং অফার করে - আপনার অ্যাপে ক্রিয়াকলাপগুলি পুনরায় উল্টানো এবং পুনরায় চালানোর একটি উপায়।
আজ, elm-debug-transformer
এবং Elm-এর Debug
মডিউলের ব্যবহার ফাঁকটি পূরণ করে। যদিও Debug
মডিউলটি বিকাশ পর্যায়ে ব্যবহারের জন্য উদ্দিষ্ট এবং উৎপাদন নির্মাণের আগে মুছে ফেলা উচিত, এটি রাষ্ট্র পরিবর্তনগুলি নির্দিষ্ট করা এবং লগিং করার জন্য একটি অমূল্য সরঞ্জাম।
মনে রাখবেন যে Elm-এর স্থাপত্য এবং Elm রানটাইমের স্টেট আপডেট পরিচালনা করার কারণে, ব্রেকপয়েন্ট বা ধাপে ধাপে নির্বাহের মতো ঐতিহ্যগত JavaScript ডিবাগিং কৌশল সরাসরি Elm-এ প্রযোজ্য নয়। Elm আপনাকে আপনার প্রোগ্রামকে এমনভাবে গঠন করার উপদেশ দেয় যাতে ডেটা প্রবাহ স্পষ্ট হয় এবং কঠোর টাইপ এবং অপরিবর্তনীয়তা গ্যারান্টি অনুসরণ করে, যা ডিবাগিং প্রয়োজনের ক্ষেত্রগুলি ন্যূনতম করে।
আরও দেখুন
- রানটাইম ব্যাত্যয়গুলি হ্যান্ডলিং সম্পর্কে Elm-এর অফিসিয়াল গাইড: https://guide.elm-lang.org/error_handling/
elm-debug-transformer
GitHub রিপোজিটরি: https://github.com/kraklin/elm-debug-transformer- ডিবাগিং কৌশল নিয়ে আলোচনা করা Elm ডিসকোর্স থ্রেড: https://discourse.elm-lang.org/c/show-and-tell/debugging
- Elm-এর
Debug
মডিউল ডকুমেন্টেশন: https://package.elm-lang.org/packages/elm/core/latest/Debug