বাগগুলি তদন্ত করতে শেখা [বন্ধ]


11

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

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

আমি যদি সত্যবাদী হয়ে থাকি তবে আমার মনে হয় যে আমি ভুল হতে পারে এমন বিষয়গুলির কল্পনা করতে খুব বেশি সময় পাচ্ছি যাতে আমি সেগুলি পরীক্ষা করতে পারি এবং আশা করি, সমাধান খুঁজে বের করতে পারি।

আমি কীভাবে সেই দক্ষতা বিকাশ করতে যাব? আমার প্রজেক্টটি সম্ভবত ভেঙে যেতে পারে এমন উপায় নিয়ে দৃশ্যত আমার সীমাবদ্ধ কল্পনা করতে সহায়তা করার জন্য আমাকে কী করতে হবে? অনুশীলন (সম্ভবত ধাঁধা?) কি আমাকে আরও ভাল করে তুলতে পারে? আমি জানি যে সম্ভবত সবচেয়ে বড় নিরাময়ে কেবল অভিজ্ঞতা ... তবে আমি আশা করি যদি সম্ভব হয় তবে প্রক্রিয়াটি আরও ত্বরান্বিত করতে সহায়তা করবেন। একবারে কয়েক ঘন্টার জন্য আমার কম্পিউটারের স্ক্রিনটি ফাঁকাভাবে দেখার পক্ষেও মজাদার কিছু নয় ...


3
আপনি কীভাবে এটি কাজ করতে পারেন তা কল্পনা করুন এবং অনুসন্ধানের পথ খুঁজে বের করার জন্য আউটপুট থেকে ইনপুটগুলিতে পিছনের দিকে কাজ করুন
স্টিভেন এ লো লো

1
আমি সেখানে একটি লিঙ্ক টস করব - একজন প্রোগ্রামার কীভাবে হবেন - তালিকাভুক্ত প্রথম দক্ষতাটি হ'ল "ডিবাগ শিখুন"।

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

আপনি কোডের প্রতিটি লাইনের অধীনে একটি printfবা printlnযা যা ব্যবহার করেন তা লিখুন 100% নিশ্চিত হয়ে যা কিছু আপনি কাজ করতে চান তা হাহা কাজ করে। তারপরে আপনার কনসোল অ্যাপ্লিকেশনটি চালান App > out.txtতারপরে বিশাল ফাইলটি দেখার শক্ত অংশটি আসে .. কখনও কখনও আমার লগ ফাইলগুলি কয়েক মিলিয়ন লাইনের বেশি হয়ে যায় এবং এতে কিছুটা সময় লাগতে পারে। অবশ্যই সঠিক উপায়টি একটি ডিবাগার এবং ব্রেকপয়েন্টগুলি ব্যবহার করা হবে তবে কখনও কখনও এটি করা সম্ভব হয় না।
এসএসপোক

1
পিরসিগের জেন এবং মোটরসাইকেলের রক্ষণাবেক্ষণের আর্টটি পড়ুন amazon.com/Zen-Art-
জেফ্রি কেম্প

উত্তর:


11

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

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


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

2
@ জায়েকার: " ভুল হওয়ার ধারণার প্রতি মানসিকভাবে প্রতিরোধী " - আপনি যদি ভুলকে ভুলের পরিবর্তে শিক্ষার উত্স হিসাবে দেখার চেষ্টা করেন তবে কী হবে? যতক্ষণ আপনি সেখানে থামেন না ততক্ষণ ভুল হওয়ার কিছু নেই।
জেনসজি

14

আমার প্রজেক্টটি সম্ভবত ভেঙে যেতে পারে এমন উপায় নিয়ে দৃশ্যত আমার সীমাবদ্ধ কল্পনা করতে সহায়তা করার জন্য আমাকে কী করতে হবে?

বেশিরভাগ ক্ষেত্রে, আমি একেবারে কিছুই বলি না। আপনি এমন কিছু স্বপ্ন দেখার চেষ্টা করবেন না যা প্রোগ্রামটি ভেঙে দিতে পারে। আপনি ধারাক্রমে নির্ধারণের কি হওয়া উচিত হয় তা ভঙ্গ ঘটাচ্ছে।

আপনি নিম্নলিখিত তথ্য টুকরা দিয়ে ডিবাগিং প্রক্রিয়ায় যেতে হবে:

  • ত্রুটি তৈরির জন্য নেওয়া পদক্ষেপগুলি এবং মানগুলি প্রবেশ করানো হয়েছিল;
  • এই পদক্ষেপ এবং ইনপুট দেওয়া হলে প্রোগ্রামটি কী করা উচিত ;
  • এই পদক্ষেপ এবং ইনপুট দেওয়া হলে প্রোগ্রামটি কী করছে।

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

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

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

যদি এর কোনওটিই সহায়তা না করে, তবে আপনার ডিবাগারটি জ্বালিয়ে দিন। যদি আপনি এটিকে কোডের এমন কোনও অংশে সংকুচিত করে থাকেন যা আপনি জানেন যে সমস্যাটি সৃষ্টি করছে - তবে আপনি ঠিক জানেন না কোন রেখা (গুলি) - তারপরে পদক্ষেপ দিন। যদি তা না হয় তবে পুরো জিনিসটি নিয়ে পদক্ষেপ দিন। এটিই যেখানে আপনাকে প্রদত্ত ইনপুটগুলির সাথে প্রোগ্রামটি ঠিক কী করা উচিত তা জানতে হবে কারণ আপনাকে প্রতিটি লাইনের পরে প্রতিটি মান দেখতে হবে এবং আপনি এটির अपेक्षा করছেন যা থেকে এটি কোথায় বিচ্যুত হচ্ছে তা ঠিক নির্ধারণ করতে হবে।

তবুও কি সমস্যা নেই তা সম্পর্কে একটি ক্লু নেই? সাহায্যের জন্য কাউকে জিজ্ঞাসা করুন । সহকর্মী, বন্ধু, একটি অনলাইন সম্প্রদায়। আপনি সবে যে কাজ করেছেন সেগুলি তাদের দেখান। তাদের ত্রুটি বার্তা, স্ট্যাকট্রেসগুলি প্রদর্শন করুন, প্রোগ্রামটি সাধারণ পদগুলিতে কী করে তা ব্যাখ্যা করে (যদি তারা ইতিমধ্যে না জানে), এই বিশেষ পরিস্থিতিতে এটি কী করা উচিত (যেমন মান 4 ফিরিয়ে দেওয়া), এটি আসলে কী করছে (উদাঃ মানটি 5) ফিরিয়ে দেওয়া। আপনি যদি এটি ডিবাগারে কোডের কয়েকটি লাইনকে সংকুচিত করেন, বলুন "আমি জানি কোডটিতে এই লাইনগুলির কারণে সমস্যাটি দেখা দিয়েছে, এটি X এর মান নির্ধারণ করবে যখন এটি Y হবে, তবে আমি দেখতে পাচ্ছি না কেন যে ঘটছে "।

আপনার স্ক্রিনে খালি খালি কয়েক ঘন্টা ব্যয় করা অবশ্যই মজাদার নয়, তবে আপনার এটি করার কোনও কারণ নেই। আপনার কোডটিতে যদি সমস্যা হয় তবে আপনার কোডটি পড়া বা পদক্ষেপ করা দরকার।


এই উত্তরটি বিচার করতে কিছুটা দ্রুত হতে পারে, আমি যখন এটি পড়েছিলাম তখন কিছুটা হতাশ হয়েছিল। ভাল উপদেশ. কিলিয়ানদের মন্তব্যগুলি আমার মনে হয় আমার সমস্যার অন্তরে আরও বেশি কথা বলেছে। এটি কেবলমাত্র কারণ পরিবর্তে এটি নির্বাচিত উত্তর নয়।
জে কার

4

কিছুটা হলেও, এটি কোনও ফৌজদারি মামলা তদন্ত করার মতো, বা মনের ঘোলাটে ধাঁধা।

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

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

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

  • আমি কীভাবে এই সময়ের অপচয়কে এড়িয়ে যেতে পারতাম?
  • আমি প্রথমে কোন বিষয়টিকে অগ্রাহ্য করেছি এবং কেন?
  • আমি কোন অবৈধ এবং / বা ভুল অনুমানের উপর নির্ভর করেছি?

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

সর্বশেষে সর্বদা স্মরণে রাখবেন না শার্লক হোমস আমাদের কী শিখিয়েছিল: আপনি যখন অসম্ভবকে নির্মূল করেছেন, তবে যা কিছুই অসম্ভব, অবশ্যই সত্য হওয়া উচিত।


3

আমার প্রজেক্টটি সম্ভবত ভেঙে যেতে পারে এমন উপায় নিয়ে দৃশ্যত আমার সীমাবদ্ধ কল্পনা করতে সহায়তা করার জন্য আমাকে কী করতে হবে?

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

এটি আপনাকে বিভিন্ন ধরণের জিনিসগুলির একটি ভাল ওভারভিউ দেবে যা আপনার পণ্যতে ভুল হয়। আপনি যদি বিশেষত সুরক্ষা-প্রভাবিত ত্রুটিগুলির উপর জোর দিয়ে সমস্ত ধরণের সফ্টওয়্যারটিতে কী ভুল হয় সে সম্পর্কে যদি আপনি আরও আগ্রহী হন তবে আমি প্রস্তাব দিচ্ছি যে আপনি সিডব্লিউই তালিকাটি পড়ুন: http://cwe.mitre.org/data/index.html


2

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

বিগত 10 বছরে সফটওয়্যার বিকাশ (Agile / XP / TDD ইত্যাদি) কেবলমাত্র স্পষ্ট প্রয়োজনীয়তার সাথে মিলিত হওয়া এবং তারপরে বৈশিষ্ট্যটি সমাপ্ত ঘোষণা করে এবং কোনও কিছু ভাঙার সম্ভাব্য উপায় খুঁজে না পাওয়া (সম্ভাব্য ব্যতিক্রম রয়েছে, যদি আপনি থাকেন তবে) নাসার পক্ষে কাজ করা বা হোয়াইট টুপি সুরক্ষা করা কিন্তু তারপরেও ব্যবহারকারী গল্পের গ্রহণযোগ্যতার মানদণ্ডে এই জাতীয় জিনিসগুলি কল করার জন্য একটি কেস তৈরি করতে হবে)।

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

কিছু লোক এই পরীক্ষাগুলির পক্ষে প্রয়োজনীয়তাগুলির স্পষ্ট ঘোষণা হিসাবে উকিল করেন, যেগুলি কোডের আগে অর্থাৎ টেস্ট ফার্স্ট (বা টেস্ট চালিত বিকাশ) এর আগে লিখতে হবে।

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

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


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