"X এবং y এর মধ্যে" পরিবর্তনশীল হওয়া উচিত?


26

আমার অ্যাপ্লিকেশনটিতে কিছু পূর্বনির্ধারিত এক্সপ্রেশন টেম্পলেট রয়েছে যা ডেটা ফিল্টার করতে ব্যবহার করা যেতে পারে। তার মধ্যে একটি " between x and y"। একজন কিউএ ইঞ্জিনিয়ার দাবি করেছেন যে এর সংজ্ঞায় একটি ত্রুটি রয়েছে, কারণ " between 100 and 200" " between 200 and 100" "এর চেয়ে আলাদা ফলাফল দেয় । অভিব্যক্তিটি অভ্যন্তরীণভাবে " value >= x and value <= y" অনুবাদ করা হয়েছে , সুতরাং দ্বিতীয় সীমা যখন প্রথমটির চেয়ে কম হয় তখন কোনও ফল হয় না। আমি যাচাই করেছি যে একই আচরণ এসকিউএল - " between x and y" ধরে ধরেছে যে y> = x বা কোনও ফলাফল নেই। এর অর্থ হল অপারেটর কমপেটেভ নয়, কমপক্ষে এসকিউএল-তে

সুতরাং, কিউএ ঠিক আছে যে " between x and y" পরিবর্তনশীল হওয়া উচিত?


11
না, তবে কেউ আপনার ভুলটি পূরণ করলে সম্ভবত আপনার ইউআই লাল হওয়া উচিত।
ইভান

3
এছাড়াও, এটিগুলির মধ্যে একটি> = <= একচেটিয়া হওয়া উচিত যাতে আপনি ওভারল্যাপ না পেয়ে 100-> 200 200-> 300 ইত্যাদি চেইন করতে পারেন
ইওয়ান

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

11
এটি সঠিক বা ভুলের ঘটনা নয়। এটি একটি ক্ষেত্রে ... ব্যবসায় কীভাবে অ্যাপ্লিকেশনটি আচরণ করতে চায়? উত্তরটি কী কার্যকারিতা প্রত্যাশিত। প্রযুক্তিগত বিতর্কগুলি প্রয়োজনীয় কার্যকারিতা চালায় না। প্রয়োজনীয় কার্যকারিতা প্রযুক্তিগত বিতর্ককে চালিত করে এবং আশা করি ব্যবসায়ের জন্য সর্বোত্তম সমাধানটি অনুপ্রাণিত করে।
ব্র্যাড থমাস

2
প্রোগ্রামার কী প্রত্যাশা করে তার চেয়ে ব্যবহারকারী কী প্রত্যাশা করে সে সম্পর্কে এই প্রশ্নটি বেশি। এর মতো এটি ব্যবহারকারীর অভিজ্ঞতার ক্ষেত্রে আরও উপযুক্ত ।
মাকেন

উত্তর:


32

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

  • যত তাড়াতাড়ি সম্ভব এসকিউএল স্ট্যান্ডার্ড অনুসরণ করা
  • এর্গোনমিক্স, নির্দিষ্ট ব্যবহারের কেস বা অন্যান্য প্রয়োজনীয়তার কারণে এটি অনুসরণ করছেন না

আপনার দল যে সিদ্ধান্তই নেয় না কেন, আচরণ এবং সিদ্ধান্ত কেন নেওয়া হয়েছিল তার নথিভুক্ত করা ভাল ধারণা হতে পারে।


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

1
@MatthieuM। আমি মনে করি এটি একটি পৃথক উত্তর যা এর নিজস্ব 33 টি upvotes হওয়া উচিত। ;)
jpmc26

1
বাগটিকে উন্নতিতে রূপান্তর করুন এবং চিরস্থায়ী জন্য ব্যাকলগে রেখে দিন। তাদের অধ্যবসায়ের জন্য QA ধন্যবাদ।
স্যান্ডি চ্যাপম্যান

1
@MatthieuM। হ্যাঁ, আদর্শ বিশ্বে প্রতিটি বিবরণের জন্য একটি সুস্পষ্ট প্রয়োজন হবে। এরকম ক্ষেত্রে আমার স্ট্যাক এক্সচেঞ্জে প্রশ্ন জিজ্ঞাসা করার দরকার নেই :)
pkalinow

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

13

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

বর্তমান আচরণটি ব্যবহারকারীর দৃষ্টিকোণ থেকে বোঝা যায় না। হয় এক্স এবং y এর বিনিময়যোগ্য হওয়া উচিত বা এটি y এর চেয়ে বড় x নির্বাচন করার অনুমতি দেওয়া উচিত নয়। Y এর চেয়ে x আরও বড় হওয়া কিন্তু একটি খালি সেট ফিরে দেওয়া কোনও সুবিধা না দিয়ে ত্রুটির একটি অপ্রয়োজনীয় সম্ভাবনার পরিচয় দেয়।

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

বিকল্পভাবে, আপনি /ux// এ প্রশ্নটি জিজ্ঞাসা করতে পারেন । সেখানকার লোকেরা ব্যবহারকারীর অভিজ্ঞতা সম্পর্কে আসলে একটি বা দুটি জিনিস জানেন।


11

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

আপনি, কিউএ প্রকৌশলী যেমনটি উল্লেখ করেছেন, কেবলমাত্র ভাবটি অভিজাত করে তুলতে পারেন, এবং তারপরে অনুবাদটি হবে

between x and y => value >= min(x, y) and value <= max(x, y)

আপনি বৈধ ব্যবহারকে সীমাবদ্ধ করতে পারেন x <= y, যার পরিবর্তে আপনার ইউআই যত তাড়াতাড়ি সম্ভব "এটি বৈধ এক্সপ্রেশন নয়" প্রদর্শন করতে পারে requires

উপরের একটি প্রকরণ হিসাবে, আপনার x < yযদি প্রকাশ থাকে equals xএবং মূল্যায়ণ করতে পছন্দ করেন তবে সীমাবদ্ধতাvalue >= x and value <= x


দ্রষ্টব্য: দয়া করে বিবৃতিটি নিজেই তৈরি করবেন না value >= min(x, y) and value <= max(x, y)। আপনার ডেটাবেস সার্ভারটি কাজটি সংরক্ষণ করতে আপনি কী করতে পারেন তা প্রাক্কলিত করুন, বিশেষত যদি এটি এর মতো অপ্রয়োজনীয় হয় (আপনি একবার প্রাসঙ্গিক ক্রিয়াকলাপগুলি করতে পারেন এবং সে অনুযায়ী উভয় ফলাফল সেট করতে পারেন)। এটা তোলে ডাটাবেসের সার্ভার এবং নির্দিষ্ট আপনি মান করছি খাওয়ানো উপর নির্ভর করে, ব্যাপার না পারে, কিন্তু একটি দুর্বল লেখা SQL সার্ভার ভালো পারে minএবং maxজন্য প্রতিটি রেকর্ডের যদি আপনি তাদের রাখা where, এবং আপনি যে প্রচেষ্টা আউট স্ট্রিপ করতে পারেন না করার কোনও কারণ নেই।
ফান্ডা মনিকার লসুইট

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

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

@JacobRaihle: এই একগুঁয়ে হতে পারে, কিন্তু আমার রুচির জন্য value >= min(x, y) and value <= max(x, y)পাঠযোগ্য হিসাবে হিসাবে value >= minXY and value <= maxXY, যেখানে minXYএবং maxXYprecalculated সীমা আছে। তবে, পরবর্তীটির জন্য সিস্টেমে এই নতুন দুটি ভেরিয়েবল যুক্ত করতে কিছু কোড লিখতে হবে, সেগুলি পূর্বে পূরণ করতে হবে, x এবং y পরিবর্তিত হওয়ার পরে এই মানগুলি আপডেট করতে ভুলবেন না এবং ইত্যাদি। রিডানড্যান্ট ডেটা সর্বদা ত্রুটির একটি নির্দিষ্ট ঝুঁকির পরিচয় দেয়।
ডক ব্রাউন

5

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

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

Backwards range given, OK to swap (y/n)?

যদি আপনার কিউএ ইঞ্জিনিয়ারের কাছে তাকে উল্টানো পরিসীমা দেখানোর জন্য ইউএক্সের পথে কিছু না থাকে তবে এটি অনাকাঙ্ক্ষিত হবে, তবে তিনি একটি যুক্তিসঙ্গত অনুমান করেছিলেন।


2

অকপটে? "এর মধ্যে" ব্যবহার করবেন না। মোটেই

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

দ্বিতীয়ত, আপনি যদি ব্যাকএন্ড থেকে তালাকপ্রাপ্ত একটি ইন্টারফেস করছেন, ব্যাকএন্ড আচরণ সম্পর্কে চিন্তা করবেন না; এবং আপনার ব্যবহারকারীদের উত্তরাধিকার সূত্রে প্রাপ্ত আচরণকে ধরে নিতে দেবেন না। অবশ্যই, এসকিউএল এটিকে BETWEENঅন্তর্ভুক্ত হিসাবে সংজ্ঞায়িত করেছে , তবে এটি কখনই পছন্দসই আচরণ নয় (উদাহরণস্বরূপ - আপনি যদি সারণি rows BETWEEN :start and :start + :strideপেতে চলেছেন এমন কিছু করেন stride + 1)।

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


ঠিক আছে, এটি চিন্তা করা মূল্যবান। এবং লিঙ্কগুলির জন্য ধন্যবাদ। ডিজক
સ્ત્ર

এটি সত্যিই ওপি প্রশ্নের উত্তর দেয় না, পরিবর্তে এটি বিভ্রান্তি যুক্ত করে।
রোল্যান্ড টেপ

1

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

যদি ব্যবহারকারী ইন্টারফেসটি অনুমান করা হয়, এবং এটি QA প্রত্যাশা করে এমন আচরণ না করে, তবে এটি কিছুটা ব্যবহারকারীর প্রত্যাশিত আচরণ হবে না। এটি একটি ব্যবহারযোগ্যতা সমস্যাটি ইঙ্গিত করে (আপনি যদি পিইবিকেএসি-তে তর্ক করতে চান তবে)। এটির সন্তোষজনক সমাধান খুঁজতে আপনার কিউএ নিয়ে কাজ করুন।

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


1

আমি একটি ইউএনআইএক্স নীতিটি কাঁটাব যা সহজ ইন্টারফেস সম্পর্কে কথা বলে।

আপনি যেখানে বাইরের বিশ্বের কাছে যে ইন্টারফেসটি দিচ্ছেন সেদিকেই যত তাড়াতাড়ি অবাক করে দিন!

এখন যেহেতু আমি সমস্যার বিবৃতিটিকে আরও বাস্তববাদী হিসাবে কমাতে পেরেছি, আমি মনে করি যে সংখ্যার সীমা নির্দিষ্ট করার সময়, এটি বুঝতে আপনার কয়েক মুহুর্ত লাগবে, তবে *** ছোটটিকে পূর্বের হিসাবে *** রাখাই স্পষ্ট। যদি এটি এখনও একটি ধাঁধা হয়ে থাকে, তবে এইরকম ভাবেন- বাচ্চাদের কীভাবে তুলনা করবেন তা বলার জন্য আপনি কতবার দুটি সংখ্যা উপস্থাপনের বিপরীত উপায়টি ব্যবহার করেছেন?

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


0

আপনার ডিবাগ কোডটিকে একটি ত্রুটি শর্ত নিক্ষেপ করুন বা সতর্কতা লগ করুন যখনই এটি ভুল ক্রমে মানগুলি পাস করা হয়। এইভাবে কলিং কোডটি প্রয়োজনীয় হলে প্যারামিটারগুলি চেক এবং বিনিময় করতে পারে। এই 'বৈশিষ্ট্য'র ব্যবহারকারীরা এইভাবে সচেতন হবে এবং সঠিক কাজটি করবে (যা আপনি আগে জানেন না)।

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