রূপান্তরটি নিয়ে আমার অভিজ্ঞতা
বহু বছর ধরে আমি এই অপ্রয়োগের কবলে ছিলাম যে আমার কোডের জন্য ইউনিট পরীক্ষা লেখার মতো পর্যাপ্ত সময় আমার হাতে ছিল না। আমি যখন পরীক্ষাগুলি লিখি তখন সেগুলি ফুলে ওঠে, ভারী জিনিস যা আমাকে কেবল ভাবতে উত্সাহিত করেছিল যে যখন আমি জানতাম যে তাদের প্রয়োজন ছিল তখনই আমাকে কেবল ইউনিট পরীক্ষা লিখতে হবে।
সম্প্রতি আমি টেস্ট চালিত বিকাশ ব্যবহার করতে উত্সাহিত করেছি এবং আমি এটি সম্পূর্ণ প্রকাশ পেয়েছি। আমি এখন দৃ firm়ভাবে নিশ্চিত হয়েছি যে ইউনিট-টেস্ট না লেখার আমার কাছে সময় নেই ।
আমার অভিজ্ঞতায়, পরীক্ষার কথা মাথায় রেখে আপনি ক্লিনার ইন্টারফেস, আরও ফোকাসযুক্ত ক্লাস এবং মডিউল এবং সাধারণত আরও সলিড , পরীক্ষামূলক কোড সহ শেষ করেন।
আমি যখনই লিগ্যাসি কোড নিয়ে কাজ করি যার ইউনিট পরীক্ষা নেই এবং ম্যানুয়ালি কোনও কিছুর পরীক্ষা করতে হবে, আমি ভাবতে থাকি "এই কোডটি ইতিমধ্যে ইউনিট পরীক্ষা করে থাকলে এটি এত দ্রুত হবে"। যতবারই আমাকে উচ্চ সংযুক্তির সাথে কোডে ইউনিট পরীক্ষার কার্যকারিতাটি যুক্ত করতে হবে, আমি ভাবতে থাকি "এটি যদি একটি ডি-কাপলড উপায়ে লেখা হত তবে এটি এত সহজ"।
আমি যে দুটি পরীক্ষামূলক স্টেশনকে সমর্থন করি তার তুলনা এবং বিপরীতে। একটি কিছু সময়ের জন্য প্রায় হয়েছে এবং লিগ্যাসি কোডের একটি দুর্দান্ত চুক্তি রয়েছে, অন্যটি অপেক্ষাকৃত নতুন।
পুরানো ল্যাবটিতে কার্যকারিতা যুক্ত করার সময়, এটি প্রায়শই ল্যাবটিতে নেমে আসার এবং তাদের প্রয়োজনীয় কার্যকারিতার ইমপ্লিকেশনগুলির সাথে কাজ করার জন্য অনেক ঘন্টা সময় ব্যয় করার ক্ষেত্রে ঘটে থাকে এবং অন্য কোনও কার্যকারিতা প্রভাবিত না করে কীভাবে আমি সেই কার্যকারিতা যুক্ত করতে পারি। অফ-লাইন পরীক্ষার অনুমতি দেওয়ার জন্য কোডটি সহজভাবে সেট আপ করা হয় না, তাই অন-লাইনে সবকিছুই বিকাশ করতে হয়। আমি যদি অফ-লাইন বিকাশের চেষ্টা না করে থাকি তবে যুক্তিসঙ্গত হওয়ার চেয়ে আমি আরও মক অবজেক্ট দিয়ে শেষ করব ।
নতুন ল্যাবটিতে, আমি সাধারণত আমার ডেস্কে অফ-লাইনটি বিকাশ করে কার্যকারিতা যুক্ত করতে পারি, কেবল তাত্ক্ষণিকভাবে প্রয়োজনীয় জিনিসগুলি উপহাস করে এবং তারপরেই কেবলমাত্র অল্প সময়ের জন্য ল্যাবটিতে ব্যয় করা হয়, বাকী সমস্ত সমস্যা সমাধান না করে ing লাইন।
আমার উপদেশ
দেখে মনে হচ্ছে আপনি ভালই শুরু করেছেন, যে কোনও সময় আপনি আপনার বিকাশের কর্মপ্রবাহে বড় পরিবর্তন আনতে যাচ্ছেন, আপনাকে অবশ্যই নিশ্চিত করতে হবে যে সবাই সিদ্ধান্ত গ্রহণে জড়িত রয়েছে, এবং আদর্শভাবে যে সবচেয়ে বেশি লোকেরা এটি কিনে নিয়েছে। আপনার প্রশ্ন থেকে দেখে মনে হচ্ছে আপনি এই অধিকার পেয়েছেন। লোকেরা যদি এই ধারণার প্রতি উত্সাহ না রাখে তবে হয় ব্যর্থ হয় বা খারাপ ইচ্ছা উত্পন্ন হয় do
আপনি যদি কোনও বাধ্যতামূলক ব্যবসায়ের ক্ষেত্রে উপস্থাপন করতে না পারেন তবে আমি আপনার পুরো সিস্টেমের জন্য ইউনিট টেস্ট এবং স্পেসিফিকেশনগুলি গ্রাউন্ড আপ প্রয়োগের প্রস্তাব দেব না । আমি উপরে উল্লেখ করেছি, যদি কোনও সিস্টেম ডিজাইন না করা হয় পরীক্ষার বিষয়টি মাথায় রেখে , তবে এটির জন্য স্বয়ংক্রিয় পরীক্ষাগুলি লেখা খুব কঠিন হতে পারে।
পরিবর্তে আমি ছোট শুরু এবং বয় স্কাউট বিধিটি ব্যবহার করার পরামর্শ দেব :
আপনি যতটা খুঁজে পেয়েছেন তার চেয়ে ক্যাম্পগ্রাউন্ড ক্লিনারটি সর্বদা ছেড়ে যান।
আপনি যদি এই কোডবেসে কোনও কিছু প্রয়োগ করছেন, আপনি বিদ্যমান আচরণটি পরীক্ষা করার জন্য প্রয়োজনীয় নির্দিষ্ট পরীক্ষাগুলি সনাক্ত করতে পারেন এবং পুরানো আচরণ থেকে নতুনতে রূপান্তর করতে পারেন, তবে আপনি উভয়ই অনুমানের পরিবর্তনটি নথিভুক্ত করেছেন এবং এর জন্য ইউনিট পরীক্ষাগুলি বাস্তবায়ন শুরু করেছেন আপনার সিস্টেম
আপনি যে মডিউলগুলি স্পর্শ করেন না সেগুলি ইউনিট পরীক্ষাগুলি পায় না, তবে আপনি যদি তাদের স্পর্শ না করে থাকেন তবে এটি সম্ভবত কারণ সেগুলি ইতিমধ্যে ব্যবহারে ভালভাবে পরীক্ষা করা হয়েছে এবং কোনও পরিবর্তনের প্রয়োজন নেই, বা সেগুলি কখনও ব্যবহার করা হয় না।
আপনি যা এড়াতে চান তা বিকাশকারী প্রচেষ্টার লেখার পুরো পরীক্ষার অপচয় করে যা কখনই প্রয়োজন হয় না ( YAGNI পরীক্ষার কোডের পাশাপাশি প্রডাকশন কোড * 8 'এর মতো কাজ করে), আর কখনও ব্যবহৃত হবে না এবং লোককে হতাশায় পরিণত করবে না পরীক্ষাগুলি সব পরে অকেজো যে ভেবে।
সারসংক্ষেপ
ছোট শুরু করুন, ক্রমবর্ধমান পরীক্ষাগুলির উপর আস্থা তৈরি করুন এবং কখন এবং কোথায় আপনার দলকে সবচেয়ে বেশি উপকৃত করবেন তা পরীক্ষার বিকাশ থেকে ব্যবসায়িক মূল্য অর্জন করুন।