আমি কি এটা ঠিক করছি? ঠিক যদি না হয় তবে আমাকে বদলাতে হবে
এটা ঠিক যে সংক্ষিপ্ত বর্ণনা থেকে বলা কঠিন, কিন্তু আমি সন্দেহ, না, আপনি হয় না এটি সঠিকভাবে করলে। দ্রষ্টব্য: আমি বলছি না যে আপনি যা করছেন তা কার্যকর হয় না বা কোনওভাবে খারাপ হয় তবে আপনি টিডিডি করছেন না। মাঝের "ডি" অর্থ "চালিত", পরীক্ষাগুলি সবকিছু চালিয়ে যায়, বিকাশ প্রক্রিয়া, কোড, নকশা, আর্কিটেকচার, সবকিছু ।
পরীক্ষাগুলি আপনাকে কী লিখতে হবে, কখন লিখতে হবে, পরবর্তীটি কী লিখতে হবে, কখন লেখা বন্ধ করতে হবে তা বলে। তারা আপনাকে নকশা এবং আর্কিটেকচার বলে। (কোডটি রিফ্যাক্টরিংয়ের মাধ্যমে ডিজাইন এবং আর্কিটেকচারের উত্থান)) টিডিডি পরীক্ষার বিষয়ে নয়। এটি প্রথম টেস্ট লেখার বিষয়েও নয়: টিডিডি পরীক্ষাগুলি আপনাকে চালিত হতে দেয়, প্রথমে সেগুলি লেখার জন্য এটি কেবল একটি প্রয়োজনীয় পূর্বশর্ত।
আপনি কোডটি প্রকৃতপক্ষে লিখেছেন বা পুরোপুরি ফুসকুড়ি করে দিয়েছেন তা বিবেচ্য নয়: আপনি আপনার মাথায় কোড (কঙ্কালের) লিখছেন, তারপরে সেই কোডটির জন্য পরীক্ষা লিখছেন। এটি টিডিডি নয়।
সেই অভ্যাসটি ছেড়ে দেওয়া শক্ত । সত্যিই, খুব কঠিন। এটি অভিজ্ঞ প্রোগ্রামারদের জন্য বিশেষত শক্ত বলে মনে হচ্ছে।
কিথ ব্রেথওয়েট একটি অনুশীলন তৈরি করেছেন তিনি টিডিডিকে যেমন আপনি মেন্ট ইট বলে । এটি নিয়মের একটি সেট নিয়ে গঠিত ( চাচা বব মার্টিনের তিনটি টিডিডির উপর ভিত্তি করে , তবে অনেক কঠোর) যা আপনাকে অবশ্যই কঠোরভাবে অনুসরণ করতে হবে এবং এটি আপনাকে আরও কঠোরভাবে টিডিডি প্রয়োগের দিকে চালিত করার জন্য ডিজাইন করা হয়েছে। এটি জুড়ি প্রোগ্রামিং (যাতে আপনার জুড়িটি আপনি বিধিগুলি ভঙ্গ করছেন না তা নিশ্চিত করতে পারে) এবং একজন প্রশিক্ষকের সাথে সবচেয়ে ভাল কাজ করে।
বিধিগুলি হ'ল:
- ঠিক একটি নতুন পরীক্ষা লিখুন, আপনি করতে পারেন এমন সবচেয়ে ছোট পরীক্ষা যা কোনও সমাধানের দিকে নির্দেশ করে
- এটি ব্যর্থ দেখুন; সংকলন ব্যর্থতা ব্যর্থতা হিসাবে গণনা
- পরীক্ষা পদ্ধতিতে আপনি করতে পারেন এমন ন্যূনতম বাস্তবায়ন কোডটি লিখে (১) পাস থেকে পরীক্ষা করুন ।
- সদৃশ অপসারণ অপসারণ, এবং অন্যথায় নকশা উন্নত করতে প্রয়োজন হিসাবে। এই পদক্ষেপগুলি ব্যবহার সম্পর্কে কঠোর হন:
- আপনি একটি নতুন পদ্ধতি চান ref রিফ্যাক্টরিং অবধি অপেক্ষা করুন, তারপরে ... এর মধ্যে একটি করে নতুন (পরীক্ষা না করা) পদ্ধতি তৈরি করুন এবং অন্য কোনও উপায়ে:
- পছন্দসই: পরীক্ষার ক্লাসে একটি নতুন পদ্ধতি তৈরি করতে (3) হিসাবে তৈরি করা প্রয়োগের কোডে এক্সট্র্যাক্ট পদ্ধতি করুন বা
- যদি আপনার অবশ্যই হয়: (3) হিসাবে বাস্তবায়ন কোডটি একটি বিদ্যমান বাস্তবায়ন পদ্ধতিতে সরান
- আপনি একটি নতুন ক্লাস চান ref রিফ্যাক্টরিং অবধি অপেক্ষা করুন, তারপরে ... একটি সরানো পদ্ধতির জন্য গন্তব্য সরবরাহ করার জন্য এবং অন্য কোনও কারণে বিনা-পরীক্ষা ক্লাস তৈরি করুন
- মুভ মেথড করে অন্য কোন উপায়ে পদ্ধতি প্রয়োগের সাথে ক্লাসগুলি স্থাপন করুন
সাধারণত, এটি আপনার মাথার মধ্যে নকশাটি কী হবে তা কল্পনা করার "টি-সিউডো-টিডিডি পদ্ধতি" এর তুলনায় একেবারে ভিন্ন ডিজাইনের দিকে পরিচালিত করবে, তারপরে সেই নকশাকে বাধ্য করার জন্য পরীক্ষাগুলি লিখতে হবে, আপনার নকশাটি লেখার আগে আপনি যে নকশাটি ইতিমধ্যে কল্পনা করেছিলেন তা বাস্তবায়ন করবে পরীক্ষা "।
যখন একদল লোক সিউডো-টিডিডি ব্যবহার করে টিক ট্যাক টো গেমের মতো কিছু প্রয়োগ করে, তখন তারা সাধারণত Board
3 × 3 অ্যারের এসের সাথে কিছু শ্রেণির সাথে জড়িত খুব অনুরূপ ডিজাইনের সাথে শেষ হয় Integer
। এবং প্রোগ্রামারদের কমপক্ষে একটি অংশ অবশ্যই এই ক্লাসটি পরীক্ষা ছাড়াই লিখেছিল কারণ তারা "জানেন যে তাদের এটি প্রয়োজন হবে" বা "এর বিরুদ্ধে তাদের পরীক্ষা লেখার জন্য কিছু প্রয়োজন" need যাইহোক, আপনি যখন সেই একই গোষ্ঠীকে টিডিডি প্রয়োগ করতে বাধ্য করেন যেমন আপনি যেমন এটি করেন তবে এগুলি প্রায়শই বিভিন্ন ধরণের ডিজাইনের বিস্তৃত বৈচিত্র্যের সাথে সমাপ্ত হয়, প্রায়শই এগুলির সাথে দূরবর্তী অনুরূপ কোনও কিছু নিযুক্ত করে না Board
।
আপনি লিখেছেন পরীক্ষা যথেষ্ট কিনা তা চিহ্নিত করার কোনও উপায় আছে কি?
যখন তারা ব্যবসায়ের সমস্ত প্রয়োজনীয়তা কভার করে। টেস্টগুলি সিস্টেমের প্রয়োজনীয়তার একটি এনকোডিং।
খুব সাধারণ কার্যকারিতার জন্য পরীক্ষা লেখার পক্ষে কি অনুশীলন যা 1 + 1 = 2 এর সমান হতে পারে বা এটি কেবল একটি ওভারপ্লে?
আবার, আপনার এটি পিছনের দিকে রয়েছে: আপনি কার্যকারিতার জন্য পরীক্ষা লেখেন না। আপনি পরীক্ষার জন্য কার্যকারিতা লিখুন। পরীক্ষায় উত্তীর্ণ হওয়ার কার্যকারিতা যদি তুচ্ছ বলে প্রমাণিত হয় তবে তা দুর্দান্ত! আপনি কেবল একটি সিস্টেমের প্রয়োজনীয়তা পূরণ করেছেন এবং এর জন্য কঠোর পরিশ্রমও করতে হয়নি!
প্রয়োজনীয়তা পরিবর্তন হলে কার্যকারিতা পরিবর্তন করা এবং তদনুযায়ী পরীক্ষা করা কি ভাল?
না। যদি কোনও প্রয়োজনের পরিবর্তন হয়, আপনি সেই পরীক্ষার পরিবর্তন করেন যা সেই প্রয়োজনের সাথে মিলে যায়, এটি ব্যর্থ হয় তা দেখুন, তারপরে পাস করার জন্য কোড পরিবর্তন করুন। পরীক্ষা সর্বদা প্রথম আসে।
এটি করা কঠিন। আপনার কয়েক দশকের প্রয়োজন হতে পারে, কয়েক ধরণের "মাংসপেশীর স্মৃতি" তৈরি করার জন্য কয়েক ঘন্টা ইচ্ছাকৃত অনুশীলনের দরকার হয়, যেখানে যখন সময়সীমাটি পড়ে থাকে এবং আপনি চাপের মধ্যে থাকেন, তখন আপনাকে এমনকি এটি সম্পর্কেও ভাবতে হবে না , এবং এটি করা কাজ করার দ্রুততম এবং সবচেয়ে প্রাকৃতিক উপায়ে পরিণত হয়।