Facebook massage

Friday, December 30, 2016

আপনার প্রোগ্রামটি ডিবাগ করবেন কিভাবে?

আপনার প্রোগ্রামটি ডিবাগ করবেন কিভাবে?
আমরা অনেকেই কোড করার পর নিজের কোডের ভূল খুজে বের করতে পারি না।আজকে আমরা দেখব কিভাবে নিজের প্রোগ্রামের বাগগুলো খুজে বের করবেন।
প্রোগ্রাম তৈরি করার আগে এলগোরিদম সেট করে নিয়ে কোডিং শুরু করুন।যখন পুরো কোড লিখা শেষ, রান করে দেখুন আপনি যা চাচ্ছেন তা আউটপুট আসছে কিনা।যদি না আসে, তবে আমার নোট পড়ার জন্য আপনি যোগ্য।
আমাদের জানতে হবে প্রোগ্রামে বাগ ঠিক কোথায় কোথায় দেখা যায়।
হতে পারে আপনি যেখানে ইনপুট নিচ্ছেন, সেটার ফরম্যাট স্পেসিফায়ার অথবা ভেরিয়েবল নেইম আপনি ভূল লিখে ফেলেছেন।হতে পারে আপনার সেট করা কন্ডিশন আপনারই অজান্তে এমনভাবে দিয়ে দিয়েছেন যার কারনে ফলাফলই ভিন্ন আসছে।আবার এমন হতে পারে, বড় সংখ্যার জন্য ফলাফল আসছে না কারন আপনি কম মেমরি সেট করে দিয়েছেন।সিনট্যাক্স এরর এর সমাধানে না গেলাম, সেটা নিজের জ্ঞান দিয়ে সমাধান করে নিবেন।আমার নোটের উদ্দেশ্য, আপনাকে সেইসব অতিক্ষুদ্র ভুল সম্পর্কে অবগত করা যেখানে আপনার চোখ যাবার আগেই আপনি আরেকজনের কাছে সাহায্যের জন্য চলে যান।পোগ্রামিং এর ক্ষেত্রে আপনার সেরাটা দিয়ে নিজের ভুল সমাধান করার চেষ্টা করেও যদি কিছু কুলাতে না পারেন, তবে সাহায্যের জন্য যেতে পারেন।
তো, আমরা কোড করার সময় ভুল পেলাম না, এখন এই ভুল কই হচ্ছে, তা বের করব কিভাবে?
আমাদের সেইসব জায়গায় চেক করতে হবে যেখানে সাধারনত ভুল হয়ে থাকে।তো, চলুন দেখা যাক কিভাবে বাগ ফিক্স করা যায়।
নিজের কাজগুলো করতে পারেনঃ
প্রথমে আপনার ইনপুট ভেরিয়েবলের ভ্যালু ইনপুট নেবার সাথে সাথেই প্রিন্ট করে দেখুন।ভুল থাকতে পারে।ভেরিয়েবল নামগুলো আবার দেখুন।যেখানে গানিতিক কাজ করেছেন, সেখানে ভেরিয়েবলে কি সেভ হচ্ছে অথবা আপনার যেরকম ফলাফল দরকার সেরকম ফলাফল আসছে কিনা।ভুল বের হয়ে যাবে।কন্ডিশনাল লজিক,কম্পারিজন অপারেটর এর কোন একটা কম লিখে ফেললেন কিনা পুনরায় চেক করুন।এর পরেও সমাধান না পেলে কোড আবার প্রথম থেকে সিনট্যাক্স সহ কোথায় কি করেছেন, কি বেশি লিখেছেন অথবা লিখতে ভুলে গেছেন তা চেক করে নিন।এর পরেও যদি না হয়, আপনার এলগোরিদম এ ভুল আছে :) নতুন করে এলগরিদম অনুযায়ী এগুতে হবে আপনাকে।অথবা বিশেষজ্ঞ কারো সাহায্য নিতে পারেন :)
প্রোগ্রামিং করার সময় কমেন্ট করে করে প্রোগ্রাম লিখার অভ্যাস করুন, এতে আপনার জন্য যেমন ভাল, আপনার কোড যে দেখবে, তারও আপনার এপ্রোচ বুঝতে সুবিধা হবে।আর হ্যা, আরেকটা জিনিস হল মেমরি এলোকেশন।আপনার কত বড় ডাটা নিতে হবে তার উপর ভিত্তি করে ভেরিয়েবল সেট করে নিন।এরর এবং এক্সেপশন হ্যান্ডেল করে কোড করুন যাতে করে আপনার কোড আপনার প্রোগ্রাম ব্যবহারকারী ভুল ইনপুট দিলে একটা এরর ম্যাসেজ দিয়ে সতর্ক করে দিতে পারে।কমেন্ট করে করে প্রোগ্রাম লিখার একটা সুবিধা হল আপনার প্রয়োজনমতো এলগোরিদম চলছে কিনা চেক করে করে কোড করতে পারবেন :) এবং আপনার এলগোরিদম ভুল হলে নিজেই বুঝতে পারবেন যে আপনি তো কোড ঠিক করছেন না!
কম্পিটিটিভ প্রোগ্রামিং(এসিএম) করতে চেষ্টা করুন।এতে আপনি ইফিশিয়েন্ট প্রোগ্রাম ডেভেলপার হতে পারবেন :) একজন সাধারন প্রোগ্রামার এবং এসিএম প্রোগ্রামার এর মধ্যে পার্থক্য হল, সাধারন প্রোগ্রামার এর থেকে এসিএম প্রোগ্রামার এর কোড অনেক বেশি বাগমুক্ত এবং ইফিশিয়েন্ট কারন, সে জানে তার প্রোগ্রাম এর জন্য কি কি জিনিস এর প্রতি খেয়াল রাখা লাগে।আপনি হয়তো মেমরি,টাইম কমপ্লেক্সিটি,বাগ নিয়ে চিন্তাও করবেন না, কিন্তু এসিএম প্রোগ্রামার সেটা নিয়ে চিন্তা করতে পারে এবং আপনার প্রোগ্রাম হতে তার প্রোগ্রাম অনেক বেশি গ্রহনযোগ্য হবে।কম্পিটিটিভ প্রোগ্রামিং(এসিএম) করার অনেক ব্লগ গুগলে আছে, ফলো করতে পারেন।
সব কথার শেষ কথা, প্রোগ্রামিং জিনিসটা ব্রেইনের চিন্তা করার উপর নির্ভর করে।আপনি যদি ক্রিয়েটিভ এবং দ্রুত এলগোরিদম বের/তৈরি করতে না পারেন, ভাল প্রোগ্রামার হতে পারবেন না।আর হ্যা, হাজার হাজার প্রোগ্রামিং ভাষা শিখার চেয়ে একটা ভাষায় বস হয়ে যান, লাইফ হয়ে যাবে :D
বেস্ট অফ লাক...

No comments:

Post a Comment