টিডিডির "স্পষ্ট বাস্তবায়ন" এর অর্থ কোডটি কি প্রথমে পরীক্ষা করা উচিত?


11

আমার বন্ধু এবং আমি তুলনামূলকভাবে নতুন টিডিডি এবং "স্পষ্ট বাস্তবায়ন" কৌশল সম্পর্কে বিতর্ক রয়েছে (কেন্ট বেকের "টিডিডি বাই উদাহরণ" থেকে)। আমার বন্ধুটি বলছে এর অর্থ হল যে বাস্তবায়ন যদি সুস্পষ্ট হয় তবে আপনার এগিয়ে যাওয়া উচিত এবং এটি লিখতে হবে - সেই নতুন আচরণের জন্য কোনও পরীক্ষার আগে । এবং প্রকৃতপক্ষে বইটি বলে:

কীভাবে আপনি সাধারণ অপারেশনগুলি বাস্তবায়ন করেন? শুধু তাদের বাস্তবায়ন।

এছাড়াও:

কখনও কখনও আপনি নিশ্চিত হন যে কোনও অপারেশন বাস্তবায়ন করতে আপনি জানেন। এগিয়ে যান.

আমি মনে করি লেখকের অর্থ কী তা হল আপনার প্রথমে পরীক্ষা করা উচিত, এবং তারপরে এটি "স্রেফ বাস্তবায়ন করুন" - "ফেক ইট ('আপনি এটি তৈরি করুন)" এবং অন্যান্য কৌশলগুলির বিপরীতে, যার বাস্তবায়নের পর্যায়ে ছোট পদক্ষেপ প্রয়োজন। এছাড়াও এই উক্তিগুলির পরে লেখক "রেড বার" পাওয়ার (পরীক্ষায় ব্যর্থ হওয়া) "স্পষ্ট বাস্তবায়ন" করার বিষয়ে কথা বলেছেন - আপনি কীভাবে পরীক্ষা ছাড়াই একটি লাল বার পেতে পারেন?

তবুও বইটি থেকে "স্পষ্ট" বলতে এখনও কোন উদ্ধৃতি পাওয়া যায়নি, এর অর্থ প্রথমে পরীক্ষা।

আপনি কি মনে করেন? বাস্তবায়নটি "স্পষ্টত" (অবশ্যই টিডিডি অনুসারে) অবশ্যই আমাদের প্রথম বা তার পরে পরীক্ষা করা উচিত? আপনি কি এমন কোনও বই বা ব্লগ পোস্ট জানেন যা ঠিক বলছে?


3
আমি আপনার ব্যাখ্যার সাথে একমত সমস্যাটি পুনরাবৃত্তি ছাড়াই সমাধান করা যথেষ্ট সহজ হলে প্রথমে পরীক্ষা করুন এবং "ঠিক বাস্তবায়ন করুন"। তবে অবশ্যই প্রথম পরীক্ষা করুন।
কার্ল ম্যানাস্টার

1
এটা স্পষ্টতই স্পষ্ট যে যে কোনও কোড কেবল এটি লেখার পরেই পরীক্ষা করা যেতে পারে ...
থমাসএক্স

উত্তর:


11

আমি আপনার ব্যাখ্যার সাথে একমত - এটি এখনও রেড গ্রিন রিফ্যাক্টর, কেবলমাত্র রেফ্যাক্টর বিট বাদ দিয়ে;)

সুতরাং, প্রথমে একটি ব্যর্থ পরীক্ষা লিখুন, তারপরে ধীরে ধীরে "সহজতম সম্ভব" এর নকশা তৈরির পরিবর্তে সুস্পষ্ট সমাধানটি প্রয়োগ করুন।


6

আপনি কি এমন কোনও বই বা ব্লগ পোস্ট জানেন যা ঠিক বলছে?

আমি তর্ক করব যে বেক বইটি ঠিক তাই বলে।

সে বলতে থাকে

তবে, কেবলমাত্র স্পষ্ট বাস্তবায়ন ব্যবহার করে আপনি নিজের পরিপূর্ণতার দাবি করছেন। মনস্তাত্ত্বিকভাবে, এটি একটি ধ্বংসাত্মক পদক্ষেপ হতে পারে। আপনি যা লিখছেন তা যদি সত্যই সবচেয়ে সহজ পরিবর্তন না হয় যা পরীক্ষায় উত্তীর্ণ হতে পারে? যদি আপনার সঙ্গী আপনাকে আরও সাধারণ একটি দেখায়? তুমি ব্যর্থতা! আপনার পৃথিবী চারপাশে ভেঙে যায়! তুমি মর. আপনি জমে যান।

কোডটি লেখার আগে কোডটি উপস্থিত না থাকলে আপনি কীভাবে পরীক্ষাটি পাস করার জন্য পাস করতে পারেন?


1

স্পষ্টতই এখানে কোন কঠোর এবং দ্রুত নিয়ম নেই, সর্বোপরি চটজলদি ছিল তাই আমরা পুনরাবৃত্ত হওয়ার সাথে সাথে মানিয়ে নিতে পারি এবং :)

আংশিকভাবে এটি সহজ অপারেশনের উপর নির্ভর করবে এবং আপনি আরও বেশি করে টিডিডি অনুশীলন করার সাথে সাথে আপনি নিয়মিত যে জিনিসগুলি খারাপভাবে পরীক্ষা করেছেন বা বাস্তবে মোটেও পরীক্ষা করেননি এমন জিনিসগুলি নিয়মিত পাবেন, এটি শেখার বক্ররের সমস্ত অংশ।

এছাড়াও ভুলে যাবেন না যে টিডিডি আপনাকে লাইভ কোডে প্রতিশ্রুতি দেওয়ার আগে ইন্টারফেস এবং প্রয়োগের পরীক্ষা করতে দেয়।

আপনি কীভাবে কোনও কিছু বাস্তবায়ন করতে পারেন তবে কতবার আপনি নিখুঁত শ্রেণি / পদ্ধতি ইত্যাদি লিখছেন প্রথম বার পথে কিছুটা টুইট ছাড়াই বা কোডে একবারে দু'বার এবং ছয়-মাস পরে পদক্ষেপ না রেখে যখন আপনি কিছু পরিবর্তন করতে পারেন তখন আরও আত্মবিশ্বাস এবং আবার পরীক্ষার স্যান্ডবক্সে।

অবশ্যই, পরীক্ষাগুলির অর্থ এই নয় যে আপনি প্রথমবারের মতো কোডটি আরও সঠিকভাবে লিখেছেন তবে আপনার পরিবর্তনগুলি পরীক্ষার দ্বারা চালিত হয় এবং পরীক্ষাগুলি কোডের প্রথম ক্লায়েন্ট হয়ে যায় এবং পরীক্ষাগুলি খুব স্বল্প ব্যয়বহুল এবং আরও গুরুত্বপূর্ণভাবে পরিবর্তন হওয়ার কোনও ঝুঁকি নেই are আপনার আত্মবিশ্বাস এবং স্বাধীনতা বিকাশকালে রয়েছে।

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


1

আমি শিখেছি তুচ্ছ কোডের জন্য কোনও ইউনিটেস্ট হওয়া উচিত নয়।

উদাহরণ: আপনার যদি জাভা গেটর / সেটার পদ্ধতি থাকে যা কোনও স্থানীয় ভেরিয়েবলের কাছে কোনও পদ্ধতি মানচিত্র করে তবে এর জন্য ইউনিটেস্ট ওভারকিল হবে।

এটি হতে পারে যা লেখক এর অর্থ দিয়েছিলেন

> "How do you implement simple operations? Just implement them."
> "Sometimes you are sure you know how to implement an operation. Go ahead."
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.