টিডিডি (এবং কয়েকটি ব্যতিক্রম সহ) সহ একটি দুর্দান্ত গী
বিতর্কিত ঠিক আছে, তবে আমি যুক্তি দিয়ে বলছি যে যে কেউ এই প্রশ্নের 'না' উত্তর দেয় সে টিডিডির একটি মৌলিক ধারণা অনুপস্থিত।
আমার জন্য, আপনি টিডিডি অনুসরণ করলে উত্তরটি হ'ল হ্যাঁ । আপনি যদি না হন তবে কোনও উত্তর দেওয়ার মতো উত্তর নেই।
টিডিডিতে ডিডিডি
টিডিডি প্রায়শই আপনাকে প্রধান বেনিফিট বলে উল্লেখ করা হয়।
- প্রতিরক্ষা
- কোডটি নিশ্চিত করা পরিবর্তিত হতে পারে তবে এর আচরণ নয় ।
- এটি রিফ্যাক্টরিংয়ের এত গুরুত্বপূর্ণ অনুশীলনকে মঞ্জুরি দেয় ।
- আপনি এই টিডিডি অর্জন করেন বা না করেন।
- নকশা
- আপনি উল্লেখ কি কিছু করা উচিত যে, তা কিভাবে আচরণ করবে উচিত বাস্তবায়নের আগে এটি।
- এই প্রায়ই আরো ওয়াকিবহাল মানে বাস্তবায়ন সিদ্ধান্ত ।
- নথিপত্র
- পরীক্ষার স্যুটটি স্পেসিফিকেশন (প্রয়োজনীয়তা) ডকুমেন্টেশন হিসাবে পরিবেশন করা উচিত ।
- এই জাতীয় উদ্দেশ্যে টেস্ট ব্যবহার করার অর্থ ডকুমেন্টেশন এবং প্রয়োগকরণ সর্বদা সুসংগত অবস্থায় থাকে - একের পরিবর্তনের অর্থ অন্যটিতে পরিবর্তন। পৃথক শব্দ নথিতে প্রয়োজনীয়তা এবং নকশা রাখার সাথে তুলনা করুন।
বাস্তবায়ন থেকে দায়িত্ব পৃথক করুন
প্রোগ্রামার হিসাবে, এটি বৈশিষ্ট্যগুলি তাত্পর্যপূর্ণ এবং গেটার্স এবং সেটারকে কোনও ধরণের ওভারহেড হিসাবে কিছু হিসাবে বিবেচনা করতে ভীষণ লোভনীয়।
তবে বৈশিষ্ট্যগুলি একটি বাস্তবায়নের বিশদ, যখন সেটার এবং গেটারগুলি চুক্তিভিত্তিক ইন্টারফেস যা প্রকৃতপক্ষে প্রোগ্রামগুলিকে কাজ করে।
কোনও বানানের উচিত এমন বানানটি আরও বেশি গুরুত্বপূর্ণ:
এর ক্লায়েন্টদের এর অবস্থা পরিবর্তন করার অনুমতি দিন
এবং
এর ক্লায়েন্টদের তার অবস্থা জিজ্ঞাসা করার অনুমতি দিন
তাহলে কীভাবে এই রাজ্যটি আসলে সংরক্ষণ করা হয় (যার জন্য কোনও বৈশিষ্ট্য সর্বাধিক সাধারণ, তবে একমাত্র উপায় নয়)।
যেমন একটি পরীক্ষা
(The Painter class) should store the provided colour
টিডিডি এর ডকুমেন্টেশন অংশের জন্য গুরুত্বপূর্ণ ।
চূড়ান্ত বাস্তবায়ন তুচ্ছ (বৈশিষ্ট্য) এবং কোনও প্রতিরক্ষা সুবিধা বহন করে না এমন বিষয়টি আপনি যখন পরীক্ষাটি লেখেন তখন অজানা হওয়া উচিত।
রাউন্ড ট্রিপ ইঞ্জিনিয়ারিংয়ের অভাব ...
সিস্টেম ডেভলপমেন্ট ওয়ার্ল্ডের অন্যতম প্রধান সমস্যা হ'ল রাউন্ড ট্রিপ ইঞ্জিনিয়ারিং 1 এর অভাব - একটি সিস্টেমের বিকাশ প্রক্রিয়াটি বিচ্ছিন্ন উপ-প্রক্রিয়াগুলিতে বিভক্ত হয়ে যায় যাগুলির নিদর্শনগুলি (ডকুমেন্টেশন, কোড) প্রায়শই বেমানান হয়।
1 ব্রোডি, মাইকেল এল। "জন মেলোপল্লো: ধারণামূলক মডেলিংয়ের বীজ সেলাই করছেন।" ধারণামূলক মডেলিং: ভিত্তি এবং অ্যাপ্লিকেশন। স্প্রিঞ্জার বার্লিন হাইডেলবার্গ, ২০০৯. ১-৯।
... এবং টিডিডি কীভাবে এটি সমাধান করে
এটি টিডিডির ডকুমেন্টেশন অংশ যা এটি নিশ্চিত করে যে সিস্টেমের কোড এবং এর কোড সবসময় সামঞ্জস্যপূর্ণ।
প্রথমে ডিজাইন করুন, পরে বাস্তবায়ন করুন
টিডিডির মধ্যে আমরা প্রথমে ব্যর্থতা গ্রহণযোগ্যতা পরীক্ষা লিখি, কেবলমাত্র তখনই কোডটি লিখি যা তাদের পাস হতে দেয়।
উচ্চ-স্তরের বিডিডি-র মধ্যে আমরা প্রথমে দৃশ্যাবলী লিখি, তারপরে সেগুলি পাস করি।
কেন আপনার সেটার এবং গেটর বাদ দেওয়া উচিত?
তত্ত্বগতভাবে, একজনের পক্ষে পরীক্ষা লেখার পক্ষে টিডিডি-র মধ্যে একেবারে সম্ভব, এবং অন্যটি কোডটি পাস করে এমনটি প্রয়োগ করে।
তাই নিজেকে জিজ্ঞাসা করুন:
কোনও শ্রেণীর জন্য পরীক্ষা লেখার ব্যক্তিটি গেটার এবং সেটারের উল্লেখ করে।
যেহেতু গেটার্স এবং সেটটারগুলি একটি শ্রেণীর কাছে সর্বজনীন ইন্টারফেস, উত্তরটি অবশ্যই হ্যাঁ , বা কোনও অবজেক্টের স্থিতি স্থাপন বা অনুসন্ধানের কোনও উপায় থাকবে না।
স্পষ্টতই, আপনি যদি কোডটি প্রথমে লিখেন তবে উত্তরটি এতটা ক্লিয়ারকুট নাও হতে পারে।
ব্যতিক্রমসমূহ
এই নিয়মের কিছু সুস্পষ্ট ব্যতিক্রম রয়েছে - ফাংশনগুলি যা ক্লিয়ারকুট বাস্তবায়ন বিশদ এবং স্পষ্টভাবে সিস্টেমের ডিজাইনের অংশ নয়।
উদাহরণস্বরূপ, একটি স্থানীয় পদ্ধতি 'বি ()':
function A() {
// B() will be called here
function B() {
...
}
}
বা ব্যক্তিগত ফাংশন square()
এখানে:
class Something {
private:
square() {...}
public:
addAndSquare() {...}
substractAndSquare() {...}
}
বা অন্য কোনও ফাংশন যা public
ইন্টারফেসের অংশ নয় যা সিস্টেম উপাদানগুলির নকশায় বানানের প্রয়োজন।