ব্যবহারকারীরা যে বৈশিষ্ট্য বলে মনে করেছিলেন যে কীভাবে বাগগুলি চিকিত্সা করবেন?


15

প্রশ্ন :

কোনও ত্রুটি-বিহীন ব্যবহারকারী যে বৈশিষ্ট্য বলে মনে করেছিল এটি সম্বোধনের সঠিক উপায় কী?

সম্প্রসারণ :

আমি অনুমান করছি যে যদি ব্যবহারকারীদের একটি বিশাল শতাংশ এটি বৈশিষ্ট্য হিসাবে প্রত্যাশিত হয় তবে এটি আরও "স্থিত" বা "স্থির" হয়ে আরও স্থিতিশীল থাকতে হবে? তবে, যদি খুব কম শতাংশ ব্যবহারকারীরা এটির বৈশিষ্ট্য হিসাবে প্রত্যাশা করেন ... তবে 0.1% বা 1% বলুন এবং এই বাগটি অবশ্যই ঠিক করা উচিত।

তাত্ত্বিকভাবে, যেহেতু এটি একটি সামান্য বাগ ফিক্স কারণ এটি সিএমেন্টিক সংস্করণ দ্বারা বিবেচিত হিসাবে প্যাচএইচসি হিসাবে যোগ্যতা অর্জন করতে পারে: xyZ তবে, যেহেতু এটি পিছনের সামঞ্জস্যতা (এমনকি কেবলমাত্র কয়েকটি ব্যবহারকারীর জন্য) ভেঙে যায় তবে এটি মেজর বৃদ্ধি হওয়া উচিত: জাইজ সঠিক? এটি নথিভুক্ত না হওয়া অবধি কি এটি প্যাচ হিসাবে যোগ্য হতে পারে (যেহেতু এটি কোনও বৈশিষ্ট্য হিসাবে নয়)?

সম্পাদনা: এই নির্দিষ্ট ক্ষেত্রে, এটি অভ্যন্তরীণভাবে ব্যবহৃত লাইব্রেরির এপিআই-তে একটি বাগ যা অন্য বিকাশকারীরা ব্যবহার করে।


8
সমস্ত বাগ বৈশিষ্ট্য নয়? ;)
লরেন্স আইলো

2
নতুন সংস্করণে একটি স্যুইচ সরবরাহ করে যা ডিফল্টরূপে বন্ধ থাকে এবং চালু করা হলে পুরানো আচরণ অনুকরণ করা যায়? সব সময় ঘটে। কোনও খবর নেই, এগিয়ে যান
রোবং


কখনও কখনও বৈশিষ্ট্য বিপণন বিভাগ দ্বারা বর্ণিত ত্রুটি ছাড়া কিছুই না।
ড্যান পিচেলম্যান

অভ্যন্তরীণভাবে ব্যবহৃত লাইব্রেরিতে এটি একটি বাগ রয়েছে তা স্পষ্ট করতে মূল পোস্টটি আপডেট করেছে; আমি মনে করি এটি গ্রাহকদের কাছে বিক্রি হওয়া কোনও পণ্যের বাগের চেয়ে আলাদা ঘটনা কারণ এটি কর্মপ্রবাহ বা ব্যবহারযোগ্যতার উপর প্রভাব ফেলে না।
robodude666

উত্তর:


7

আমি অনুমান করছি যে যদি ব্যবহারকারীদের একটি বিশাল শতাংশ এটি বৈশিষ্ট্য হিসাবে প্রত্যাশিত হয় তবে এটি আরও "স্থিত" বা "স্থির" হয়ে আরও স্থিতিশীল থাকতে হবে?

বাগ কি মান যুক্ত করে? যদি তা হয় তবে এটি আরও বৈশিষ্ট্যযুক্ত। কখনও কখনও "বাগ" মান-যোগ "বৈশিষ্ট্য হিসাবে শেষ হতে পারে।"

এটির যথাযথভাবে উত্তর দেওয়া শক্ত কারণ প্রতিটি একক পরিস্থিতি আলাদা হবে।

এই নির্দিষ্ট ক্ষেত্রে, এটি অভ্যন্তরীণভাবে ব্যবহৃত লাইব্রেরির এপিআই-তে একটি বাগ যা অন্য বিকাশকারীরা ব্যবহার করে।

এই ক্ষেত্রে, আমি পিছনের সামঞ্জস্যের সাথে সম্মতিতে আপনার পরবর্তী ব্রেকিং পরিবর্তনের অংশ হিসাবে একটি স্থিরতা অন্তর্ভুক্ত করব। আপনি বেশিরভাগ পরিবেশে কেবল এটি নিয়মিতভাবে করতে পারবেন না এবং এটির জন্য সম্ভবত একটি সময়সূচী / সময়সীমা রয়েছে।

একজন বিকাশকারী হিসাবে আমি শেষ জিনিসটি মোকাবেলা করতে চাই এমন একটি এপিআই যা ভুল বা বেমানান আচরণ করে। বাগগুলি এটি বিবেচনা করা হয়।

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


10

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

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



2
আর একটি দুর্দান্ত ভিডিও গেমের উদাহরণ হ'ল স্ট্রিট ফাইটার ( en.wikedia.org/wiki/… ) এর পুরাতন সংস্করণগুলিতে অন্যান্য চালগুলিতে স্থানান্তর বাতিল করার ক্ষমতা । মূলত একটি বাগ, এটি একটি "বৈশিষ্ট্য" হিসাবে আরোহণ করেছে।
মাইকেল

8

যেহেতু বাগটি একটি লাইব্রেরিতে রয়েছে তাই এখানে আপনি নিতে পারেন এমন আরও একটি পদ্ধতি:

  1. ভ্রান্ত লাইব্রেরি ফাংশনের ক্লোন তৈরি করুন। অনেক ক্ষেত্রে লোকেরা কেবলমাত্র 2এই ক্ষেত্রে ফাংশনটির নামের সাথে সংযোজন করে থাকে, তবে, যদি আপনার অন্য পরিবর্তনগুলি হয় যা আপনি সেই ফাংশনের ইন্টারফেসে প্রয়োগ করতে চান তবে আপনি এটি একেবারে আলাদা নামও দিতে পারেন।

  2. শুধুমাত্র ক্লোনটিতে বাগটি ঠিক করুন (এবং আপনি যখন থাকবেন তখন আপনি চান এমন সমস্ত অন্যান্য ইন্টারফেস পরিবর্তনগুলি প্রয়োগ করুন)।

  3. মূল ফাংশনটি অবচিত হিসাবে ঘোষণা করুন।

  4. আসন্ন কিছু বড় রিলিজে আসল ফাংশনটি সরান।

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


1
এই বিশেষ ক্ষেত্রে, "ভাঙ্গা" ফাংশন অনির্দিষ্টকালের জন্য বেঁচে থাকতে পারে কারণ এটি মৌলিকভাবে আলাদা (এবং মূল্যবান) আচরণ সরবরাহ করে।
রাবারডাক 30'15

এই ক্লোনটি কীভাবে শব্দার্থক সংস্করণ ব্যবহার করে নতুন বড় সংস্করণটির চেয়ে আরও ভাল কিছু করতে পারে?
কেট

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

4

এই নির্দিষ্ট ক্ষেত্রে, এটি অভ্যন্তরীণভাবে ব্যবহৃত লাইব্রেরির এপিআই-তে একটি বাগ যা অন্য বিকাশকারীরা ব্যবহার করে।

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

  • আপনার বাগ সংশোধন করা কি সত্যই গুরুত্বপূর্ণ, উদাহরণস্বরূপ কারণ আপনার API এর ব্যবহারকারীদের ত্রুটি সংশোধন না করা হলে তাদের অ্যাপ্লিকেশন ক্র্যাশ করার ঝুঁকি রয়েছে? বা এটি কেবলমাত্র এপিআইয়ের ধারাবাহিকতা সম্পর্কে?

  • বা বিদ্যমান সফ্টওয়্যারটি স্থিতিশীল রাখা এবং আপনার গ্রন্থাগারটি পিছনের দিকে সামঞ্জস্যপূর্ণ করা আরও বেশি গুরুত্বপূর্ণ?

প্রশ্নের উত্তর সর্বদা সহজ নয়, আপনাকে আপনার এপিআইয়ের সম্ভাব্য ব্যবহারকারীর সংখ্যা বিবেচনা করতে হবে, তাদের সফটওয়্যারটি পরিবর্তন করতে হবে তাদের কতটা সম্ভাব্য কাজের পরিমাণ, সফটওয়্যারের পরিমাণ যা আপনার অ্যাপ্লিকেশন পরিবর্তন করলে ভাঙবে , তবে আপনি যদি এপিআই ঠিক না করেন তবে কী হতে পারে তার ঝুঁকিও রয়েছে ।

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

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


1

এটা আলিঙ্গন. এটি আপনার পুরো পণ্যটিকে তৈরি করতে পারে।

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

তারা শেষ পর্যন্ত এটি ঠিক করেছিল, কিন্তু লোকেরা এতোই ঘৃণা করেছিল যে ডেভরা গুরুতরভাবে এটি আবার ফিরে পেয়েছিল।

সুতরাং আমার উত্তর স্থিতিশীল এবং এটি বজায় রাখে (প্রয়োজনে রিফ্যাক্টর)।


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

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