টিডিডি গুরু আরও বেশি করে আমাদের জানান যে টিডিডি পরীক্ষাগুলির বিষয়ে নয়, এটি নকশা সম্পর্কে । তাই আমি এমন কিছু বিকাশকারীকে জানি যারা টিডিডি ছাড়াই সত্যই দুর্দান্ত নকশা তৈরি করে। তাদের কি তখন টিডিডি অনুশীলন করা উচিত?
টিডিডি গুরু আরও বেশি করে আমাদের জানান যে টিডিডি পরীক্ষাগুলির বিষয়ে নয়, এটি নকশা সম্পর্কে । তাই আমি এমন কিছু বিকাশকারীকে জানি যারা টিডিডি ছাড়াই সত্যই দুর্দান্ত নকশা তৈরি করে। তাদের কি তখন টিডিডি অনুশীলন করা উচিত?
উত্তর:
টিডিডি আমাকে কেবল সেরা চূড়ান্ত নকশায় আসতে সহায়তা করে না, এটি আমাকে কম চেষ্টাতে পেতে সহায়তা করে।
আমার মনে হয় কোন নকশাটি সবচেয়ে ভাল বলে সিদ্ধান্ত নেওয়ার আগে আমার কোনও সমস্যায় দু'টি ছুরিকাঘাত হত। এখন, ঠিক একই সময়টি পরীক্ষা লিখতে এবং সঠিক ডিজাইনে আমার মনকে কেন্দ্র করে ব্যয় করেছে। এবং, একটি বোনাস হিসাবে, এটি আমাকে পুনরাবৃত্তিযোগ্য পরীক্ষাগুলির সাথে সরিয়ে দেয়। উইন!
এটি বলেছিল, অনিবার্যভাবে এমন লোক হতে চলেছে যাদের জন্য টিডিডি কিছুই দেয় না। যতক্ষণ না তারা এখনও স্বয়ংক্রিয়ভাবে শেষ হয়েছে, পুনরাবৃত্তিযোগ্য পরীক্ষাগুলি শেষে এটি ঠিক আছে fine
forced
,। আমি জানি না কেন লোকেরা "জোর করে" শব্দের ফ্রিকোয়েন্সি দ্বারা প্রায়শই বিরক্ত হয় না কারণ এটি টিডিডি সম্পর্কে আলোচনার ক্ষেত্রে ঘটে। কাউকে সঠিকভাবে কোনও ডিজাইনের জন্য জোর করা উচিত নয় ; তাদের কীভাবে জিনিসগুলি সঠিকভাবে ডিজাইন করা যায় তা শিখতে হবে এবং তারপরে বাধ্য করা ছাড়া এটি করা চালিয়ে যাওয়া উচিত, বিশেষত যখন যখন বাধ্যতামূলক আচরণটি অবিশ্বাস্যভাবে সময়সাপেক্ষ হয়।
এই বিশেষ টিডিডি গুরু সত্যই যা বলার চেষ্টা করছেন তা টিডিডি একটি নকশা প্রক্রিয়া নয় (যদিও বেশিরভাগ লোক দুর্ভাগ্যক্রমে সেভাবে এটি ব্যাখ্যা করেছেন)। এখানে বার্তাটি হ'ল টিডিডি-র মতো কোনও প্রক্রিয়া ব্যবহার করা যদি আপনি এটি সঠিকভাবে করেন তবে আপনার সামগ্রিক ডিজাইনের উন্নতি করতে ঝোঁক।
মূল ধারণাটি টিডিডি থেকে অনেক পুরানো; পরীক্ষার জন্য নকশা । আপনি যদি সলিড নীতিগুলি, বিশেষত একক দায়িত্বের নীতিমালার কঠোরভাবে অনুসরণ করেন তবে আপনি পরীক্ষার জন্য খুব সহজ কোডটি পেয়ে যাবেন। অন্যদিকে, আপনি যদি নিজের ডিজাইনে কিছুটা opালু হয়ে থাকেন, আপনি সম্ভবত ইউনিট পরীক্ষাগুলি লেখার প্রক্রিয়াটি আপনাকে প্রায়শই এটি করতে বাধ্য করবেন, (ক) কী প্রয়োজন তা খুঁজে বের করার হতাশা এড়াতে পরীক্ষা করা হবে এবং (খ) প্রকৃত পরীক্ষাগুলি লেখার চেয়ে নির্ভরতা নির্ধারণে বেশি সময় ব্যয় করা উচিত।
আপনি না আছে TDD- এ অনুসরণ করতে এই সুবিধাগুলো পেতে, কিন্তু এটা করে টেস্ট লিখবেন সাহায্যের গোড়ার দিকে - আপনি আগে বা সময় না হলে একটি বর্গ বাস্তবায়ন বাঞ্ছনীয় খুব শীঘ্রই। আপনি যদি খুব বেশি অপেক্ষা করেন, তবে লেখক যে "নোংরা হাইব্রিড" পরীক্ষার বিষয়ে কথা বলছেন তার ঝুঁকিটি চালান, যার খুব বেশি মূল্য নেই কারণ এগুলি ভঙ্গুর এবং নিরপেক্ষ রিফ্যাক্টরিংয়ের সময় ভেঙে যাওয়ার প্রবণতা - বড় করার বিষয়টি উল্লেখ না করে -সকলে একটি উদ্দীপনাজনিতভাবে কঠিন প্রক্রিয়াটিকে নতুনভাবে ডিজাইন করা হয়েছে।
আপনি টেস্টগুলি না লিখলে আপনি টেস্টাবিলিটির জন্য সত্যই ডিজাইন করছেন কিনা তা আপনি জানতে পারবেন না এবং কেবল 15% কোডের কভারেজের সাথে হাফজার্ড "বৈশিষ্ট্য পরীক্ষা" নেই don't
অবশ্যই আপনি কোনও একক পরীক্ষা না লিখে ভাল ডিজাইন তৈরি করতে পারেন - তবে আপনি কি নিশ্চিত যে এগুলি দুর্দান্ত ডিজাইন? আপনি কীভাবে জানবেন, যদি আপনি সেগুলি পরীক্ষার মাধ্যমে স্পষ্টভাবে নির্দিষ্ট না করে থাকেন? পরীক্ষার ফলে অনেকগুলি সমস্যা উদ্ঘাটিত হয় এবং যখন QA প্রক্রিয়াটি দৃশ্যমান ত্রুটিগুলি খুঁজে পেতে পারে তবে তারা দুর্বল নকশার সিদ্ধান্তগুলি উদঘাটন করবে না ।
টিডিডি শেখার প্রয়াস পাওয়া কারও কাছ থেকে সরল উত্তর আসছে: আপনার এটির দরকার নেই , তবে এটি আপনাকে দেয় সবচেয়ে বড় সুবিধাটি হ'ল যথেষ্ট সহজ, আত্মবিশ্বাস : আপনার অ্যাপ্লিকেশন কাজ করে এমন আত্মবিশ্বাস। আত্মবিশ্বাস যে ব্যবহারের ক্ষেত্রে সন্তুষ্ট। আপনার যুক্তি "ফুবার" মডিউলটির পক্ষে দৃ is় বিশ্বাস sound আত্মবিশ্বাস যে আপনার কোডটি রাস্তার নিচে ছয় মাস ধরে রক্ষণাবেক্ষণযোগ্য এবং এক্সটেনসিবল হওয়ার জন্য যথাযথভাবে কাঠামোগত করা হয়েছে যখন সিইও তাঁর সম্পর্কে পড়া নতুন কোনও ক্রেজি বৈশিষ্ট্য যুক্ত করতে চায়। আত্মবিশ্বাস যে, যখন আপনার অ্যাপ্লিকেশনটি বৃদ্ধি পাবে, তখন স্থাপত্যটির জন্য ভিত্তি স্থাপন করা হয়েছে যাতে জুরি-রিগের নতুন বৈশিষ্ট্যগুলির জন্য নষ্ট হওয়া বা অগোছালো হ্যাকের গোবসের প্রয়োজন হয় না।
আমি বুঝতে পারলাম উপরেরটি কিছুটা ধর্মপ্রচারক শোনায় তবে আমি টিডিডির সুবিধাটি দেখতে পাচ্ছি। এমনকি আপনি যদি টিডিডি ব্যবহার করে ভাল, সলিড, সু-আর্কিটেটেড ডিজাইন তৈরি করতে পারেন তবে আপনার হাতকে জিনিসগুলি সঠিক করতে বাধ্য করে এবং তারপরে প্রমাণ করে যে জিনিসগুলি সঠিকভাবে করা হয়েছে এবং আরও গুরুত্বপূর্ণভাবে জিনিসগুলি ঠিক রাখার জন্য একটি বেসলাইন সরবরাহ করে । খুব অল্প সময় থেকেই আমি টিডিডিতে ছুঁড়েছি, এটি ব্যবহার করে আমাকে কোডটি পরিষ্কার করতে এবং সঠিক সফ্টওয়্যার ইঞ্জিনিয়ারিং ধারণাগুলি অনুসরণ করতে বাধ্য করেছিল, অন্যথায় আমি "দ্রুততম জিনিস সম্ভব" করতাম যার ফলে প্রায়শই অগোছালো "হ্যাক" কোড আসে।
আমি কেবল আমার অভিজ্ঞতা থেকেই কথা বলতে পারি। আমার জন্য টিডিডি বেশ কয়েকটি জিনিস এনেছিল যা আমার বিকাশের শৈলীর অভ্যাস টুলবক্সে আগে ছিল না। যদিও, আবার বলা বাহুল্য যে টিডিডি সবকিছুর সমাধান নয়। আমি সর্বদা অনুসন্ধান এবং উত্পাদন প্রস্তুত বাস্তবায়ন পৃথক করার চেষ্টা করি। অনুসন্ধানের পর্যায়ে টিডিডি একেবারেই প্রয়োজন হয় না এবং এমনকি ধীর হয়ে যাচ্ছে। প্রোডাক্ট রেডি কোডের পক্ষে অন্যদিকে এটি বেশ কয়েকটি সুবিধা নিয়ে আসে যা প্রকল্পের বিকাশকারী ও কর্মের মানসিক স্বাস্থ্যের জন্য স্বল্প ও দীর্ঘমেয়াদী অত্যন্ত মূল্যবান।
একটি জিনিস আছে যা টিডিডি ঠিক করে না। আপনি যে জিনিসটি তৈরি করছেন তা কীভাবে তৈরি করতে হয় তা আপনি যদি জানেন না, তবে টিডিডি আপনার জন্য সমাধান তৈরি করবে না। আপনার সমস্যা এবং সমাধান সম্পর্কে মোটামুটি "নকশা" বা ওভারভিউ থাকা দরকার। টিডিডি আপনাকে আরও উন্নত মানের কোড সহ আরও মার্জিত এবং রক্ষণাবেক্ষণ পদ্ধতিতে এটি বাস্তবায়িত করবে।
শেষ অবধি, আমি বিডিডি পদে চিন্তা করতে পছন্দ করি যা টিডিডি অনুশীলনের উপর ঝুঁকে থাকে। বিডিডি আমাকে ডোমেনের ভোকাবুলারি ব্যবহার করে সমাধানটি প্রয়োগ করতে এবং সফ্টওয়্যারটিকে সমস্যার আরও ভাল করে তুলতে সহায়তা করে।
দুর্দান্ত নকশা অর্জনের জন্য অনেকগুলি উপায় থাকতে পারে এবং "দুর্দান্ত" - বা "ভাল" যা গঠন করে তার সন্দেহাতীত অনেকগুলি ব্যাখ্যা রয়েছে। আমার সন্দেহ হয় যে বেশিরভাগ টিডিডার্স সংজ্ঞাটি নিয়ে আপনার সাথে একমত হবেন না - আমরা আপনাকে যে কোডটি দুর্দান্ত বলে মনে করি তা যদি আমরা দেখতে পাই তবে আমরা এটিকে দুর্দান্ত থেকে কম বিবেচনা করব। টিডিডি আমাদের কয়েকটি খুব নির্দিষ্ট গুনের দিকে চালিত করে এবং এই গুণগুলি টিডিডি নন-কোডে খুব কমই পাওয়া যায়।
টেস্টিবিলিটি, স্পষ্টতই, সেই গুণগুলির মধ্যে একটি এবং অতিশয় বৈশিষ্ট্য। অত্যন্ত ছোট পদ্ধতি এবং ক্লাসগুলি সম্ভবত একটি উপ-বৈশিষ্ট্যযুক্ত এবং এটি দুর্দান্ত নামকরণের দিকে পরিচালিত করে। হয়তো আপনি প্রোগ্রামারদের জানেন যারা টিডিডি না করে এই গুণগুলি অর্জন করেন, তবে আমি তা করি না।