প্রকৃতপক্ষে এই প্রশ্নটি মানের ব্যবহারকারীর অভিজ্ঞতা বাড়াতে এবং এড়াতে সক্ষম সমর্থন কলগুলি হ্রাস করার জন্য নেওয়া সতর্কতা সম্পর্কে।
প্রকৃতপক্ষে এই প্রশ্নটি মানের ব্যবহারকারীর অভিজ্ঞতা বাড়াতে এবং এড়াতে সক্ষম সমর্থন কলগুলি হ্রাস করার জন্য নেওয়া সতর্কতা সম্পর্কে।
উত্তর:
সঠিকভাবে ইনপুট বৈধতার অভাব হ'ল এটির মধ্যে একটি যা আপনার অ্যাপ্লিকেশনটির সাথে "খারাপ" জিনিসগুলি ব্যবহারকারীদের দিকে দ্রুত পরিচালিত করে, যখন এটি প্রোগ্রামার দ্বারা সত্যই পরিচালনা করা উচিত।
আমি লিগ্যাসি অ্যাপ্লিকেশনগুলি দেখেছি যেখানে ব্যবহারকারীদের প্রশিক্ষণ দেওয়া হয়েছে:
a-z0-9,
email
ফিল্ডে প্রবেশ করছে কিনা তা পরীক্ষা করুন , অন্যথায় সেই ব্যবহারকারীকে পরবর্তী মেলিংগুলি ক্ষেত্রের যা কিছু ব্যবহার করবে এবং ব্যর্থ হবেhttp://
ওয়েব ঠিকানাগুলির আগে " " স্থাপন করা হয়েছে তা নিশ্চিত করুনইত্যাদি
উপরের সমস্ত সমস্যাগুলি হ'ল যা অ্যাপ্লিকেশন বিকাশকারী দ্বারা পরিচালনা করা উচিত । যখন আপনার ইনপুট বৈধতাটি মূলত "নিশ্চিত হয়ে নিন যে ব্যবহারকারীরা জানেন যে এই ফিল্ডটি কোন ফর্ম্যাটটিতে থাকা উচিত এবং তারা কী লিখেছেন তা সঠিকভাবে বিশ্বাস করুন", তখন অপ্রত্যাশিত জিনিসগুলি অ্যাপ্লিকেশনটিতে তাদের উপায় সন্ধান করতে বাধ্য। সুস্পষ্ট সুরক্ষা প্রভাবগুলি বাদ দিয়েও ব্যবহারকারীরা ভুল করে। প্রোগ্রামার হিসাবে আমরা প্রায়শই পিছনের দিকে বাঁকিয়ে আমাদের সেরা পণ্যগুলি উত্পাদন করি তা নিশ্চিত করার জন্য যে ব্যবহারকারী যত তাড়াতাড়ি চেষ্টা করুক না কেন এটি ভুল হতে পারে না !
http://
বৈধতা পয়েন্ট জন্য একই গল্প । উদাহরণস্বরূপ, ASDF
এটি একটি নির্দোষ উপায়ে করুন এবং ফলাফলটি আপনি যে ডোমেনগুলি ব্যবহার করেন সেগুলিতে প্যাকেজ হোস্ট করতে পারবেন না https://
।
আমি একবার গ্রাহক সমর্থন কল পেয়েছিলাম কারণ আমার অ্যাপ্লিকেশন সবেমাত্র অদৃশ্য হয়ে গেছে। দেখা গেল যে তারা এর উপরে অন্য একটি অ্যাপ খুলল opened
... আমি সিদ্ধান্ত নিয়েছি যে এটি আবার ঘটবে না, কারণ এটি ব্যবহারকারীদের কম্পিউটার নিরক্ষরতা যা অ্যাপ্লিকেশনটি নয়, সমস্যা তৈরি করেছিল। এটি ঠিক করার জন্য আমি যা কিছু করতে পারি তা অন্যের জন্য দুর্বল ব্যবহারকারীর অভিজ্ঞতা অর্জন করতে পারে।
আমি লিখি প্রায় প্রতিটি প্রোগ্রাম কমান্ড লাইন থেকে কঠোরভাবে চাওয়া হয়। আমি কিছু কল্পিত জিনিসও লিখেছি যা সি এল এল ইন্টারফেস হিসাবে শুরু হয়েছিল এবং দ্রুত কোনও কিছুর চেয়ে আরও বেশি শেলের আকারে বেড়েছে।
সুতরাং, আমি কেবল যা জানি তার জন্যই কথা বলতে পারি। কমান্ড লাইন প্রোগ্রামগুলির সাথে এখানে কয়েকটি সাধারণ সমস্যা রয়েছে:
উপায় অনেক বিকল্প
আপনি যদি কোনও সংকলক বা লাইন সম্পাদক না লিখে থাকেন তবে বিকল্পগুলি 80x25 ফ্রেম বাফারটিতে পূর্ণ হওয়া --help
বা /?
পাস করার পরে একটি স্ক্রিনের মধ্যে সীমাবদ্ধ রাখার চেষ্টা করুন । এটির চেয়ে আরও বেশি বিকল্প থাকা ভাল, তবে এগুলিকে সাব বিভাগে ভাগ করুন break এই ক্ষেত্রে
foo --help
foo --help option_name
দীর্ঘ বিকল্প নেই
এটি মনে রাখার foo --attach_to [argument] --volatile --verbose
চেয়ে মনে রাখা অনেক সহজ foo -a [arg] -v +V
। এটি সর্বদা সম্ভব নয়, তবে বেশিরভাগ ক্ষেত্রেই তা হয়।
কোনও ইনপুট বৈধতা নেই
প্রায় প্রতিটি প্ল্যাটফর্মের একাধিক গ্রন্থাগার থাকে যা চেষ্টা করা হয়, পরীক্ষা করা হয় এবং সত্য যখন এটি যুক্তি পার্সিং এবং যাচাইয়ের ক্ষেত্রে আসে। প্রায় প্রতিটি প্ল্যাটফর্মের একটি চেষ্টা করা, পরীক্ষিত এবং সত্য লেক্সার থাকে যা একটি সি এল এল থেকে ইনপুটকে বৈধতা দেয়। একটি, অন্য বা উভয় ব্যবহার করুন। যদি আপনার প্রোগ্রামটি কোনও সরবরাহকারীর সরবরাহিত কোনও কারণে শূন্যের সাথে ভাগ হয়ে যায় বা শূন্যে বিভক্ত হয়, এটি কেবল বিব্রতকর।
আপনার কোনও লেক্সারের মতো জটিল কিছু প্রয়োজন হতে পারে না, আপনি যদি নির্দিষ্ট স্থানে নির্দিষ্ট জিনিসগুলির সাথে নির্দিষ্ট ক্রমে স্টাফ আশা করে থাকেন তবে সম্ভবত স্ট্রিংটি টোকানাইজ করতে পারেন।
আমি আসলে একবার একটি বাগ রিপোর্ট পেয়েছিলাম যেখানে কোনও পূর্ণসংখ্যার আশা করা হয় এবং কেউ f*** my life
উদ্ধৃতিতে টাইপ করে। আমি সেই প্রোগ্রামটি লিখিনি, এটি উত্তরাধিকার সূত্রে আমার দুর্ভাগ্য হয়েছিল।
কোনও 'ভার্বোসিটি' গিঁট নেই
বেশিরভাগ লোক সহ্য করার চেয়ে অভিজ্ঞ প্রোগ্রামগুলিকে কীভাবে আপনার প্রোগ্রামের বাইরে আরও শব্দ বের করতে হয় তা সহজেই আবিষ্কার করার অনুমতি দিন, তবে কেবল গুরুতর এবং সমালোচনামূলক বিষয়গুলি মুদ্রণের জন্য এটি ডিফল্ট। আমি আপনাকে জানাতে পারি না যে কতবার strace
সেগফায়াল্ট হয়েছে তা বুঝতে পেরে আমাকে কতবার গুলি চালিয়ে যেতে হয়েছিল কারণ এটি একটি নুওল ফাইল স্ট্রিমে কাজ করে।
আপনি দৃser়তা মোড়ানো করতে পারেন যাতে এনডিইবিইউজি বা অন্য কোনও উপায়ে সেগুলি বন্ধ করে দেওয়ার ফলস্বরূপ ব্যবহারকারীর সন্ধানের জন্য কিছু মুদ্রিত বা লগডের ফলস্বরূপ।
লগ ফাইলগুলির বিষয়ে কথা বলার চেষ্টা করে দেখুন যে আপনি সেগুলিতে কিছু রেখেছেন তা আপনার ব্যতীত অন্য কাউকে বোঝায় (কমপক্ষে কিছুটা)। যদি প্রতিটি প্রবেশের সূচনাটি একটি ইউনিক্সের যুগের তারিখ হয় তবে আপনি যে কারো কাছে বাগটি পুনরুত্পাদন করতে সত্যিই সহায়তা করতে চান তার মধ্যে হতাশা জাগাতে চলেছেন।
ডিবাগ মোডে কোনও 'বাগ বন্ধু' নেই
প্রচুর প্রোগ্রাম কিছু ধরণের 'ডিবাগ' সুইচ সরবরাহ করে যা প্রোগ্রামের সাথে কী চলছে সে সম্পর্কে অতিরিক্ত বকবক সরবরাহ করে তবে খুব কম লোকই নিম্নলিখিত অফার করে:
বা, সম্ভবত আপনি শুনতে লোকেরা ফোনে নিম্নলিখিতটি পড়তে পছন্দ করেছেন:
এটি শূন্য এফ-এ অপ্রত্যাশিত অবস্থা বলে ওহো চার শূন্য ওহ .... ঠিক আছে লেমমে তা আপনার কাছে পড়ে ...
অতিরিক্ত জটিল কনফিগারেশন ফাইল
প্রচুর সিনট্যাকটিক চিনি নিয়ে বাজ পাওয়ার অজুহাত হিসাবে কোনও কনফিগারকে পার্স করার প্রয়োজনকে ন্যায়সঙ্গত করবেন না। পার্সিংয়ের সময় অতিরিক্ত কাজ করার অর্থ এমনকি যদি এমন ফর্ম্যাটটি লোকেদের জানার চেষ্টা করুন। আমি যখনই সম্ভব INI স্টাইলের ফর্ম্যাটটি ব্যবহার করার চেষ্টা করব। একটি সাধারণ কী-> মান অভিধান দিয়ে আপনি কী টানতে পারেন তা আপনি অবাক হয়ে যাবেন।
কোনও কনফিগারেশন ফাইল নেই
লোকেরা কেবল আপনার প্রোগ্রামটি ব্যবহার করার জন্য শেল স্ক্রিপ্ট বা ব্যাচ ফাইলগুলি লিখতে তৈরি করবেন না, যদি না এটি কোনও কাজের জন্য একটি সরঞ্জাম হিসাবে তৈরি করা হয়েছিল। আমার স্বাভাবিক বিকল্পগুলি সম্বলিত কোনও ফাইলকে নির্দেশ করার জন্য আমাকে একটি উপায় দিন এবং মাত্র কয়েকটি অতিরিক্ত যুক্তি সরবরাহ করুন।
কোনও 'ভেজা তল' চিহ্ন নেই
যদি কিছু বৈশিষ্ট্য ব্যবহারকারীকে সমস্যায় ফেলতে পারে (সম্ভবত এটি উন্নত ব্যবহারকারীদের জন্য রয়েছে), পরিষ্কারভাবে এটি চিহ্নিত করুন। তদ্ব্যতীত, যদি কেউ চর্বিযুক্ত আঙ্গুলগুলি ইনপুট দেয় বা কিছু ভুলে যায় তবে আপনার কি অনলাইনে ডকুমেন্টেশনের খুব বন্ধুত্বপূর্ণ লিঙ্কটি প্রিন্ট করা আছে। আপনি কেভিএম এর মাধ্যমে আপনার প্রোগ্রামটি ব্যবহার করছেন এবং কেটে পেস্ট করতে পারবেন না এমন কারও সাথে আপনি আচরণ করছেন।
যখন সম্ভব হয়, (এটি ইনপুট বৈধতার সাথে মিলে যায়) গুগল অ্যাপোরাচ ব্যবহার করুন:
আপনার অর্থ কি foo - বার FILENME, আপনি কেবল foo - বার টাইপ করেছেন
ধ্বংসাত্মক নির্দেশাবলী থেকে একটি উপায় অফার
লক্ষ্যটি হ'ল ব্যবহারকারী এটি কেন কাজ করেন নি এবং তাদের আরও কয়েকবার চেষ্টা করার চেষ্টা করুন, যখন আপনি নিশ্চিত হন যে ব্যবহারকারী সম্ভবত আপনি এটি করতে চান না তবে আপনি সম্ভাব্য ধ্বংসাত্মক কিছুই করেন না। উদাহরণস্বরূপ -Y
বা 'নাগিং' বন্ধ করে এমন স্যুইচকে মঞ্জুর করুন বা /Y
অন্যথায় যার পক্ষে কেবল 'চর্বিযুক্ত আঙ্গুল' রয়েছে তার পক্ষে উপায় বের করার অনুমতি দিন।
আমি সম্ভবত কয়েক পয়েন্টার ভুলে যাচ্ছি। আমি প্রায়শই এটির সাথে মোকাবিলা করি কারণ বেশিরভাগ লোকেরা ভুল না করে এড়াতে পর্যাপ্ত স্বজ্ঞাততার জন্য 'নিম্ন স্তরের' ইন্টারফেস তৈরি করা খুব কঠিন।
"আপনি কি এই ফাইল / রেকর্ডটি মোছার বিষয়ে নিশ্চিত? হ্যাঁ / না"। হ্যাঁ ক্লিক করা হয়েছে এবং তারপরে একটি কল পেয়েছে যে এটি "ভুল করে" লাল মুছুন বোতামটি ক্লিক করেছে এবং এটিতে সেই ডেটা ফেরত প্রয়োজন :)
আমি নির্দিষ্ট ব্রেক / ফিক্স উদাহরণগুলি অনুধাবনের মতো গুরুত্বপূর্ণ হিসাবে অনুভব করি না:
যদি সেই অন্বেষণের মাধ্যমে তারা কিছু ভেঙে দেয় তবে প্রোগ্রামার হিসাবে তাদের কাজটি বিপদ সম্পর্কে সতর্ক করা বা এটি প্রথম স্থানে ঘটতে বাধা দেওয়া আপনার কাজ। আমি এখন এটি কোথায় দেখেছি তা মনে করতে পারছি না, তবে আমার মনের পিছনে আমি সর্বদা আমার সফ্টওয়্যারটির ব্যবহারকারীর জন্য " সঠিক জিনিসটি সহজ করে তুলতে " চেষ্টা করি।
যদি আপনি উদাহরণগুলিতে জেদ করেন:
এই কোথায় যাচ্ছে দেখুন? :)
এই সপ্তাহে আমি শুনেছি একটি এখানে। একজন ব্যবহারকারী "কোনও ঘটনা ঘটলে আমাকে একটি বিজ্ঞপ্তি প্রেরণ করুন" একটি বৈশিষ্ট্য জিজ্ঞাসা করে। যথেষ্ট সহজ এবং বিকাশকারী এগিয়ে যায় এবং এটি প্রয়োগ করে। অবশ্যই, প্রথম প্রশ্নটি "এই বিজ্ঞপ্তিটি দিয়ে কী সম্বোধন করার চেষ্টা করছে?" হওয়া উচিত ছিল। আমি এর মধ্যে যাব না। কয়েক দিন পরে ব্যবহারকারী বিকাশকারী দ্বারা থামিয়ে জিজ্ঞাসা করে "আমি এই বিজ্ঞপ্তিটি পেয়েছি it এটি নিয়ে আমার কী করার কথা?"।
আমি এই দিলবার্ট কমিকটির কথা মনে রেখেছি এবং বিকাশকারীকে "সেই বিজ্ঞপ্তিটির সাথে ব্যবহারকারীর কী করা উচিত তা নির্ধারণের জন্য একটি অ্যাপ্লিকেশন লিখুন" পরামর্শ দিয়েছিলাম।
মিটারসন বলেছিলেন, ব্যবহারকারী তাদের দক্ষতার ক্ষেত্রে খুব প্রতিযোগিতামূলক। তারা কেবল কোনও সফ্টওয়্যার বিকাশকারী বা ডিজাইনারের মতো ভাবেন না।
আমি মনে করি না ব্যবহারকারীরা বোকা। তারা আপনার বা কোনও প্রোগ্রাম মোটেই ব্যবহার করতে চায় না। তারা যা চায় তা তাদের কাজ শেষ করা। তাদের সহায়তা করুন এবং পথে তাদের সাথে ক্ষতি হতে রোধ করুন।
একটি ভাল ইউজার ইন্টারফেস থাকা এবং পর্যাপ্ত শিক্ষার অভিজ্ঞতা সরবরাহ করা ব্যবহারকারীদের খারাপ কাজগুলি থেকে বিরত রাখার দিকে অনেক এগিয়ে যায়।
ভাল ব্যবহারকারীর ইন্টারফেসগুলি ঘর্ষণহীন হওয়া উচিত।
একটি মুছে ফেলা নিশ্চিত করতে, মুছুন সম্পাদন করতে এবং পূর্বাবস্থায় ফেরানোর উপায়ের জন্য ডায়ালগ বাক্স (একটি ব্যয়বহুল ক্রিয়াকলাপ এবং ব্যবহারকারীরা কিছুক্ষণ পরে উপেক্ষা করে) ফেলে দেওয়ার পরিবর্তে।
ভাল ব্যবহারকারীর ইন্টারফেসগুলি আবিষ্কারযোগ্য হবে।
যদিও মাইক্রোসফ্ট অফিসে ফিতাটি প্রচুর পরিমাণে ঝাঁকুনি পেয়েছে কারণ এটি ওয়ার্ডের পুরানো ব্যবহারকারীদের তাদের উপায়গুলি পরিবর্তন করতে বাধ্য করে, আপনি কীভাবে একটি ইন্টারফেসকে আবিষ্কারযোগ্য (যেমন আবিষ্কার করা সহজ) করতে পারবেন তার একটি চকচকে উদাহরণ।
ভাল কোডের মতো ভাল ইউজার ইন্টারফেসগুলি স্ব-ব্যাখ্যামূলক হওয়া উচিত।
ম্যানুয়ালটি কেউ পড়ে না। আমি আমার ব্যবহারকারীদের কেবলমাত্র পড়তে পেলাম সেই ম্যানুয়ালটি হ'ল একটি পাওয়ার পয়েন্ট উপস্থাপনা যা সফ্টওয়্যারটির ধাপে ধাপে ওয়াকথ্রুগুলি ধারণ করে। আমি এগুলি ক্যাম্টাসিয়ার মতো ভিডিও সরঞ্জামগুলির সাহায্যে দেখেছি, তবে পাওয়ারপয়েন্টগুলি আরও ভাল কারণ আপনি ধাপের সাহায্যে পিছনে এবং সামনে ফ্লিপ করতে পারবেন ip
ব্যবহারকারী ভুল করবেন না। ভুলগুলি প্রোগ্রামারটির সাথে থাকে যারা একটি ব্যবহারযোগ্য ইন্টারফেস তৈরি করতে ব্যর্থ হয়েছিল।
সুতরাং প্রতিটি মুক্তির সাথে ব্যবহারযোগ্যতা পরীক্ষা করুন!