Stack Overflow কপি-পেস্ট: শিল্প না অপরাধ?

· 2 min read · Syed Omar Faruk Towaha
Stack Overflow কপি-পেস্ট: শিল্প না অপরাধ?

একটা পুরনো কৌতুক আছে: সিনিয়র আর জুনিয়র প্রোগ্রামারের মধ্যে পার্থক্য কী? দুজনেই Stack Overflow থেকে কপি করে, কিন্তু সিনিয়র জানে কোন উত্তরটা কপি করতে হবে।

কৌতুক হলেও এর মধ্যে অনেক সত্যি আছে।

কপি করা কি অন্যায়?

একদমই না। পৃথিবীর কোনো প্রোগ্রামার সব কিছু মুখস্থ রাখে না। ডেট ফরম্যাট, রেগুলার এক্সপ্রেশন, কোনো লাইব্রেরির অদ্ভুত প্যারামিটার, এসব খুঁজে দেখা খুবই স্বাভাবিক। ডাক্তাররাও বই দেখেন, ইঞ্জিনিয়াররাও টেবিল দেখেন।

সমস্যা কপি করায় না। সমস্যা না বুঝে কপি করায়।

অন্ধ কপির বিপদ

# বিপজ্জনক: অনেক পুরনো উত্তরে এরকম দেখবেন
query = "SELECT * FROM users WHERE name = '" + name + "'"   # SQL injection!

# নিরাপদ
cursor.execute("SELECT * FROM users WHERE name = %s", (name,))

প্রথম লাইনটা কাজ করবে। দেখতেও ঠিক লাগবে। যতক্ষণ না কেউ নামের জায়গায় দুষ্টু কিছু লিখে আপনার ডেটাবেস মুছে দেয়।

দায়িত্বশীল কপির পদ্ধতি

Copy-paste workflow
কপি করুন, কিন্তু বুঝে।

১. এরর মেসেজ হুবহু সার্চ করুন। কোটেশনের ভেতরে দিলে ভালো ফল পাবেন।

২. শুধু কোড না, ব্যাখ্যা পড়ুন। সবচেয়ে বেশি ভোট পাওয়া উত্তরের নিচের কমেন্টগুলোও পড়ুন; সেখানে প্রায়ই লেখা থাকে "এটা নতুন ভার্সনে কাজ করে না"।

৩. প্রতিটা লাইন বুঝুন। কোনো লাইন না বুঝলে সেটা নিয়ে আরেকবার সার্চ করুন।

৪. নিজের কোডের সাথে মানিয়ে নিন। ভেরিয়েবলের নাম, স্টাইল, এরর হ্যান্ডলিং।

৫. টেস্ট করুন। শুধু "চলছে" দেখে থেমে যাবেন না; ভুল ইনপুট দিয়েও দেখুন।

AI যুগে একই নিয়ম

এখন অনেকে Stack Overflow এর বদলে AI চ্যাটবট থেকে কোড নেয়। নিয়মটা একই, বরং আরও জরুরি। AI কখনো কখনো এমন ফাংশনও বানিয়ে দেয় যেটা কোনো লাইব্রেরিতেই নেই, আর এত আত্মবিশ্বাসের সাথে দেয় যে সন্দেহই হয় না।

উপসংহার

কপি-পেস্ট শিল্প হয়ে ওঠে যখন আপনি বোঝেন কী কপি করছেন, কেন করছেন, আর কোথায় এটা ভাঙতে পারে। অপরাধ হয়ে ওঠে যখন আপনি প্রোডাকশনে এমন কোড পাঠান যেটা আপনি নিজেই ব্যাখ্যা করতে পারবেন না। সার্চ করুন, শিখুন, বুঝুন। আর কেউ সাহায্য করলে Stack Overflow এ একটা আপভোট দিয়ে আসবেন, ভালো মানুষের লক্ষণ।

// related

// prefer the terminal?

Open the terminal blog and type read stack-overflow-copy-paste-shilpo-na-oporadh.