সরাসরি টিডিডি ব্যবহার করে প্রাথমিক এপিআই কীভাবে পাবেন?


12

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

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

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


3
একটি পদ্ধতিতে 30 টি পরীক্ষা? এই পদ্ধতির মতো মনে হচ্ছে অনেক জটিলতা রয়েছে বা আপনি অনেকগুলি পরীক্ষা লিখছেন।
মিন্টোস

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

6
@ মিন্টোস: আমি আমার মাথার উপরের অংশের বাইরে 6 টি পরীক্ষার কথা ভাবতে পারি যে কোনও স্ট্রিং নেওয়া কোনও পদ্ধতি প্রায়শই ব্যর্থ হয় বা প্রথম খসড়া রচনায় খারাপভাবে সঞ্চালিত হয় (নাল, খালি, খুব দীর্ঘ, সঠিকভাবে স্থানীয়করণ হয় না, খারাপ পারফ স্কেলিং) । একইভাবে সংগ্রহ গ্রহণের পদ্ধতিগুলির জন্য। অপ্রয়োজনীয় পদ্ধতির জন্য 30 টি বড় শোনাচ্ছে তবে অবাস্তব নয়।
স্টিভেন এভার্স 21

উত্তর:


13

আপনি যাকে "বিগ ডিজাইন আপ ফ্রন্ট" বলছেন আপনার ক্লাস আর্কিটেকচারের বুদ্ধিমান পরিকল্পনা। "

ইউনিট পরীক্ষা থেকে আপনি কোনও আর্কিটেকচার বৃদ্ধি করতে পারবেন না can't এমনকি চাচা ববও তা বলেন।

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

http://s3.amazonaws.com/hanselminutes/hanselminutes_0171.pdf , পৃষ্ঠা 4

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

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


জিনিসটি হ'ল "বুদ্ধিমান পরিকল্পনা" দিয়েও আপনি এটির অনেকটা পরিবর্তনের প্রত্যাশা করেন। আমি সাধারণত আমার প্রাথমিক আর্কিটেকচারের প্রায় 80% এর মধ্যে কিছু পরিবর্তন সহ অক্ষত রেখে যাই। এই 20% হ'ল আমাকে বিরক্ত করছে।
Vytautas Mackonis

2
আমি মনে করি এটি কেবল সফটওয়্যার বিকাশের প্রকৃতি। আপনি প্রথম চেষ্টাতেই পুরো আর্কিটেকচারটি পাওয়ার আশা করতে পারেন না।
রবার্ট হার্ভে

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

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

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

3

আপনি যদি টিডিডি করেন। আপনি পরীক্ষার দ্বারা চালিত না করে স্বাক্ষর এবং আচরণ পরিবর্তন করতে পারবেন না। সুতরাং 30 টি পরীক্ষাগুলি ব্যর্থ হয় হয় প্রক্রিয়াতে মুছে ফেলা হয় বা কোড সহ পরিবর্তন / পুনরুদ্ধার করা হয়েছিল। বা এগুলি এখন অপ্রচলিত, মুছে ফেলা নিরাপদ।

আপনি আপনার লাল-সবুজ-চুল্লী চক্রের 30 গুণ লালকে উপেক্ষা করতে পারবেন না?

আপনার পরীক্ষাগুলি আপনার প্রোডাকশন কোডের পাশ দিয়ে পুনরুদ্ধার করা উচিত। আপনি যদি সামর্থ্য করতে পারেন তবে প্রতিটি পরিবর্তনের পরে সমস্ত পরীক্ষা আবার চালান।

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

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


1

রবার্ট হার্ভে যেমন বলেছিলেন, আপনি সম্ভবত এমন কোনও কিছুর জন্য টিডিডি ব্যবহার করার চেষ্টা করছেন যা একটি ভিন্ন ধারণাগত সরঞ্জাম দ্বারা পরিচালিত হওয়া উচিত (এটি: "ডিজাইন" বা "মডেলিং")।

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

এই সাধারণ পাবলিক ইন্টারফেস ধরে ধরে আপনার পরীক্ষাগুলি লিখুন।

আপনার ক্লাস এবং পদ্ধতির অভ্যন্তরীণ আচরণ পরিবর্তন করুন যখনই আপনার এটি প্রয়োজন।

যদি এবং আপনার নিজের সার্বজনীন ইন্টারফেস এবং আপনার পরীক্ষার স্যুট পরিবর্তন করার দরকার হয় তবে থামুন এবং ভাবেন। সম্ভবত এটি এমন একটি চিহ্ন যা আপনার এপিআই এবং আপনার ডিজাইন / মডেলিংয়ে কিছু ভুল আছে।

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

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


0

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

ডগ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.