যদি টিডিডি ডিজাইন সম্পর্কে থাকে তবে আমার এটির কেন দরকার? [বন্ধ]


10

টিডিডি গুরু আরও বেশি করে আমাদের জানান যে টিডিডি পরীক্ষাগুলির বিষয়ে নয়, এটি নকশা সম্পর্কে । তাই আমি এমন কিছু বিকাশকারীকে জানি যারা টিডিডি ছাড়াই সত্যই দুর্দান্ত নকশা তৈরি করে। তাদের কি তখন টিডিডি অনুশীলন করা উচিত?


14
যদি তারা এটি না করে ভাল করে চলে তবে তাদের দরকার নেই don't প্রতিটি "সেরা অনুশীলন" সবার জন্য কাজ করে না।
দাড়কাক

উত্তর:


18

টিডিডি আমাকে কেবল সেরা চূড়ান্ত নকশায় আসতে সহায়তা করে না, এটি আমাকে কম চেষ্টাতে পেতে সহায়তা করে।

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

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


4
কম চেষ্টা, সত্যিই?
সাইবেরিয়ানগুই

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

4
দেখুন, আবার সেই শব্দ আছে forced,। আমি জানি না কেন লোকেরা "জোর করে" শব্দের ফ্রিকোয়েন্সি দ্বারা প্রায়শই বিরক্ত হয় না কারণ এটি টিডিডি সম্পর্কে আলোচনার ক্ষেত্রে ঘটে। কাউকে সঠিকভাবে কোনও ডিজাইনের জন্য জোর করা উচিত নয় ; তাদের কীভাবে জিনিসগুলি সঠিকভাবে ডিজাইন করা যায় তা শিখতে হবে এবং তারপরে বাধ্য করা ছাড়া এটি করা চালিয়ে যাওয়া উচিত, বিশেষত যখন যখন বাধ্যতামূলক আচরণটি অবিশ্বাস্যভাবে সময়সাপেক্ষ হয়।
রি মিয়াসাকা

3
@ রেই: লোকেরা বেশিবার বিরক্ত হয় না কারণ তারা জানে যে অন্য ব্যক্তির সত্যিকার অর্থেই "ধাক্কা" বা "গাইডেড" বা ... এবং আপনি যখন টেস্ট ড্রাইভড ডেভেলপমেন্টের কথা বলছেন ... সম্ভবত "চালিত" । এবং হ্যাঁ, কারও কারও মনে হতে পারে যে তারা চালিত না হয়ে প্রাকৃতিকভাবে সেভাবেই ভাবেন, আমি পোস্টে এটি বলেছিলাম। তবে আপনি এখনও আপনার সফ্টওয়্যারটি পরীক্ষা করে দেখতে পেয়েছেন যাতে আপনি এতটা ভাল না হন।
পিডিআর

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

12

এই বিশেষ টিডিডি গুরু সত্যই যা বলার চেষ্টা করছেন তা টিডিডি একটি নকশা প্রক্রিয়া নয় (যদিও বেশিরভাগ লোক দুর্ভাগ্যক্রমে সেভাবে এটি ব্যাখ্যা করেছেন)। এখানে বার্তাটি হ'ল টিডিডি-র মতো কোনও প্রক্রিয়া ব্যবহার করা যদি আপনি এটি সঠিকভাবে করেন তবে আপনার সামগ্রিক ডিজাইনের উন্নতি করতে ঝোঁক।

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

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

আপনি টেস্টগুলি না লিখলে আপনি টেস্টাবিলিটির জন্য সত্যই ডিজাইন করছেন কিনা তা আপনি জানতে পারবেন না এবং কেবল 15% কোডের কভারেজের সাথে হাফজার্ড "বৈশিষ্ট্য পরীক্ষা" নেই don't

অবশ্যই আপনি কোনও একক পরীক্ষা না লিখে ভাল ডিজাইন তৈরি করতে পারেন - তবে আপনি কি নিশ্চিত যে এগুলি দুর্দান্ত ডিজাইন? আপনি কীভাবে জানবেন, যদি আপনি সেগুলি পরীক্ষার মাধ্যমে স্পষ্টভাবে নির্দিষ্ট না করে থাকেন? পরীক্ষার ফলে অনেকগুলি সমস্যা উদ্ঘাটিত হয় এবং যখন QA প্রক্রিয়াটি দৃশ্যমান ত্রুটিগুলি খুঁজে পেতে পারে তবে তারা দুর্বল নকশার সিদ্ধান্তগুলি উদঘাটন করবে না


1
একটি ভাল ডিজাইনের পয়েন্টটি কেবল পরীক্ষা করা হচ্ছে না। তবে হ্যাঁ, ত্রুটিযুক্ত ডিজাইনগুলি সনাক্ত করার জন্য টিডিডি একটি ভাল সরঞ্জাম।
ডেডালনিক্স

4

টিডিডি শেখার প্রয়াস পাওয়া কারও কাছ থেকে সরল উত্তর আসছে: আপনার এটির দরকার নেই , তবে এটি আপনাকে দেয় সবচেয়ে বড় সুবিধাটি হ'ল যথেষ্ট সহজ, আত্মবিশ্বাস : আপনার অ্যাপ্লিকেশন কাজ করে এমন আত্মবিশ্বাস। আত্মবিশ্বাস যে ব্যবহারের ক্ষেত্রে সন্তুষ্ট। আপনার যুক্তি "ফুবার" মডিউলটির পক্ষে দৃ is় বিশ্বাস sound আত্মবিশ্বাস যে আপনার কোডটি রাস্তার নিচে ছয় মাস ধরে রক্ষণাবেক্ষণযোগ্য এবং এক্সটেনসিবল হওয়ার জন্য যথাযথভাবে কাঠামোগত করা হয়েছে যখন সিইও তাঁর সম্পর্কে পড়া নতুন কোনও ক্রেজি বৈশিষ্ট্য যুক্ত করতে চায়। আত্মবিশ্বাস যে, যখন আপনার অ্যাপ্লিকেশনটি বৃদ্ধি পাবে, তখন স্থাপত্যটির জন্য ভিত্তি স্থাপন করা হয়েছে যাতে জুরি-রিগের নতুন বৈশিষ্ট্যগুলির জন্য নষ্ট হওয়া বা অগোছালো হ্যাকের গোবসের প্রয়োজন হয় না।

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


+1 টিডিডি হল প্রতিক্রিয়া। মতামতের বেশিরভাগ পদক্ষেপ যেমন চলেছে, এটি মোটামুটি উদ্দেশ্যমূলক এবং সম্পূর্ণ স্বয়ংক্রিয়ভাবে, তাই এটি সমস্ত দক্ষতার স্তরের দলের সদস্যরা ভাগ করে নিতে পারেন। টিডিডির আগে ভাল কোডটি এমন কিছু ছিল যা আপনি "অনুভূত" হয়েছিলেন, বা ব্যবহারকারীরা সফ্টওয়্যার পাওয়ার কিছু পরে তা নিশ্চিত হয়ে গেছে। লুপটি যত ছোট হবে, আপনি তত বেশি আত্মবিশ্বাসী বোধ করবেন। দুর্ভাগ্যক্রমে টিডিডি একটি ভাল নকশাকে "অনুভূতি" হিসাবে অতিরিক্ত আত্মবিশ্বাসের ঝুঁকিপূর্ণ, তবে এটি স্ব-সংশোধন করা অনেক সহজ।
স্টিভ জ্যাকসন

2

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

  • টিডিডি আমার প্রয়োগের আগে আমাকে ভাবতে বাধ্য করে, যা সাধারণত খুব ভাল অনুশীলন যা প্রচুর অঙ্কুর প্রতিরোধ করে এবং সমাধানগুলি ভুলে যায়
  • এটি আমাকে সমস্যার ক্ষুদ্র অংশে চিন্তা করতে বাধ্য করে, আমাকে একসাথে ফিট হওয়া ছোট ছোট টুকরাগুলির সমাধান বিচ্ছিন্ন করতে বাধ্য করে।
  • এটি আমাকে খুব ডিউপলড কোড লিখতে বাধ্য করে কারণ যখনই আমি সমস্যার মধ্যে খাপ খায় না এমন মজাদার / উপহাস / নকল কিছু করতে হয় তবে আমি স্বাভাবিকভাবেই একটি "ডাব্লুটিএফএফ নিক্ষেপ করি, যদি আমি এর সাথে মিলিত না হয় তবে কেন আমি এটি করব?" । এবং এটি আমাকে জিনিসের মধ্যে সংযোগগুলি আরও ভালভাবে উপলব্ধি করে।
  • এটি আমার কোডের জন্য সহজেই নির্বাহযোগ্য চেকগুলির সেট দেয়, সুতরাং আমাকে কোডটি ডিবাগ করার জন্য বেদনাদায়ক "var_dump", "p", "pp", "প্রতিধ্বনি" শৈলীর মধ্য দিয়ে যেতে হবে না। এটি কেবল কী ভুল, কখন ভুল তা রিপোর্ট করে। এবং যদি আমার এখনও এটির জন্য চেক না থাকে তবে বার বার এটি পরীক্ষা করার জন্য এটি সাধারণ পরীক্ষা যুক্ত করার বিষয়।
  • এটি আমাকে নিশ্চিত করে তোলে যে আমাদের স্থাপনার আগে যদি সমস্ত পরীক্ষা পাস হয় তবে আমার কোড কাজ করে। তারপরে আমার নখগুলি খাওয়ার পরিবর্তে আমি একটি কেক খাওয়া এবং কফ খেতে এবং আমার দুপুরে উপভোগ করি।
  • আপনাকে কিছু রিফ্যাক্টর করতে হবে এমন ক্ষেত্রে উচ্চ স্তরের পরীক্ষাগুলি খুব দুর্দান্ত। যদি আমার মডিউলটিকে বাইরের বিশ্বের কিছু কার্যকারিতা সরবরাহ করতে হয় এবং এটি সঠিকভাবে কাজ করছে তা প্রমাণ করার জন্য আমি কার্যকরী / ইন্টিগ্রেশন / শসা টেস্টগুলি বিকাশ করেছি আমি সেই কোডটি থেকে দূরে থাকার জন্য খুব সাহসী হব। বেশ কয়েকবার আমার কাছে কোডটির মুখোমুখি হয়েছিল যার পরীক্ষাগুলি নেই এবং এটিকে পুনরুদ্ধার করার প্রয়োজন নেই। সেক্ষেত্রে অনুশীলনে যাওয়ার দুটি উপায় ছিল। 1) কোডটি ড্রপ 2) পরিবর্তনগুলি এড়িয়ে যান এবং এটি যেমন হয় তেমন ছেড়ে যান।

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

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


1

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

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


1
আপনি প্রায় অবশ্যই জলপ্রপাত প্রক্রিয়া দ্বারা উত্পাদিত কোডে এই একই বৈশিষ্ট্যগুলি খুঁজে পেয়েছেন, যেমন সামরিক, স্থান ইত্যাদির জন্য I দৈনন্দিন প্রকল্পের জন্য বেশিরভাগ সংস্থা
অ্যারোনআউট

@ অ্যারোনচট মঙ্গল গ্রহের জলবায়ু অরবিটার দলটিকে এটি বলুন । :-)
এরিক কিং

90 এর দশকে আমি অস্ত্রহীন সামরিক প্রকল্পগুলির জলপ্রপাত প্রক্রিয়া এবং অন্যান্য সামরিক অ্যাপ্লিকেশনগুলির অভিজ্ঞদের সাথে প্রচুর জল-কুলার আলোচনার অভিজ্ঞতা অর্জন করেছি had সাধারণ sensকমত্য ছিল জলপ্রপাতের পদ্ধতি এবং ব্যয়বহুল বিলিংগুলি বগি সিস্টেমগুলি তৈরি করেছিল যা বজায় রাখা খুব কঠিন ছিল।
কেভিন cline
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.