قالب بخشنده (Forgiving Format) چیست؟
💡 این متن «بازنویسی آزاد» است: ایدهها و مفاهیم مطلب اصلی با نگارش کاملاً مستقل فارسی و مثالهای تازه بازگو شدهاند و ترجمهٔ کلمهبهکلمه نیست. بخشهای افزودهٔ مترجم در جعبهٔ منبع مشخص شدهاند.
کاربر شمارهٔ کارت را با فاصله مینویسد و فرم میگوید «فرمت نامعتبر». فاصله را خودِ سیستم میتواند حذف کند و بهجایش کاربر را برگردانده تا دوباره تایپ کند.
قالب بخشنده دقیقاً برای همین ساخته شده — و منطقش این است که کار پاککردن ورودی، کار سیستم است نه کار کاربر.
تعریف
الگوی قالب بخشنده به کاربر اجازه میدهد اشتباه کند.
و تعریف کاملش دو بخش دارد. قالب بخشنده فقط اشتباهها را تصحیح نمیکند؛ اجازه میدهد کاربر رویکردهای مختلفی به یک مسئله بگیرد، یعنی اگر یک راه را بلد نبود یا نتوانست، سراغ راه دیگری برود.
بخش دوم کمتر گفته میشود و مهمتر است. بخشندگی فقط تحمل خطا نیست؛ تکثر راه است.
دو کاربرد
- - تصحیح اشتباه و کنارآمدن با بیقاعدگی. سیستم طوری طراحی میشود که با کاراکتر اضافه و تکرار و خطاهای دیگر کنار بیاید.
- - چند رویکرد. راههای مختلفی برای حل یک مسئله در اختیار کاربر میگذارید.
نمونهٔ کاربرد دوم، فیلد مکان در ایربیانبی است: نام کشور، نام شهر، یا نشانی دقیق — هر سه پذیرفته میشوند.
و نمونههای کاربرد اول، همینهایی است که هر روز میبینید: «Chicago Ill.» و «Chicago, IL» و «Chgo, Ilns.» که همه یک جا هستند. یا «Srteet» که باید «Street» خوانده شود.
و در جستوجو: «can’t find download» و «fail locate program» و «where is file?» همه یک نیت دارند.
ساختنش
- - تشخیص دهید کاربر در این موقعیت چه نوع اشتباههایی میکند. پایهاش عقل سلیم یا آزمون کاربر است — و در حالت ایدهآل، ترکیب هر دو.
- - قابلیت تشخیص خودکار بسازید که قالبهای متنوع ورودی را بخواند.
- - بهجای اعتبارسنجی سختگیرانه، انعطاف را در سیستم بسازید.
- - برای فیلدهای اختیاری که دقتشان حیاتی نیست، امکان ردشدن بگذارید.
- - هشدار را در حین حرکت میان فیلدها بدهید، نه فقط موقع ثبت.
- - و بگذارید سیستم اطلاعات جاافتاده را خودش بازسازی کند — مثل درآوردن کد پستی از نشانی خیابان و شهر.
و یک شرط قطعی هم دارد: آزمون کاربر سختگیرانه، تا جایی که کاربر بتواند کارش را سریع و بی نیاز به تصحیح دستی انجام دهد.
جنیفر تیدول در «طراحی رابطها» همین را در یک جمله میگوید: «آزمون کنید، آزمون کنید، و باز هم با کاربر واقعی آزمون کنید.»
جاهایی که سخت میشود
سه موقعیت هست که بخشندگی در آنها ساده نیست.
- - ابهام واقعی. «آتن» یونان است یا آتنِ ایالت جورجیا؟ اینجا حدسزدن غلط است و باید پرسید.
- - همآواها و خطای انتخاب واژه. «there» و «their»، یا «desert» و «dessert». سیستم نمیداند کدام را میخواستید.
- - اشتباه یکسان که دو بار تکرار میشود. رمزی که در هر دو فیلد یکجور غلط تایپ شده، از دید سیستم درست است.
و قاعدهٔ عملی این سه: وقتی نمیتوانید مطمئن باشید، تصحیح نکنید — پیشنهاد بدهید. «منظورت آتن یونان بود؟» با یک گزینهٔ دیگر، هم بخشنده است و هم غلط تصمیم نمیگیرد.
فایدهاش
کاربر رها نمیکند · نیازی به تصحیح دستی ندارد · کار را بدون «قدم به عقب» تمام میکند · و در شرایط عجله و حواسپرتی هم از پس کار برمیآید.
و یک جملهٔ فلسفی هم پشتش هست که ارزش گفتن دارد: کاربر «شرح وظیفه» ندارد. مسئولیت پیشبینی نیاز او با طراح است، نه بالعکس.
در بافت فارسی
بخشندگی در فارسی کار بیشتری میخواهد، چون یک مفهوم واحد شکلهای نوشتاری بیشتری دارد.
یک: عدد فارسی و عربی و لاتین. «۱۲۳» و «١٢٣» و «123» یک عددند و سه رشتهٔ متفاوت. هر فیلد عددی باید هر سه را بپذیرد و به یک شکل تبدیل کند.
دو: «ی» و «ک» عربی و فارسی. کاربر با صفحهکلیدهای مختلف مینویسد و «علی» با «علي» از دید سیستم دو نام است. یکسانسازی این دو حرف، سادهترین بخشندگی ممکن است و اغلب انجام نمیشود.
سه: نیمفاصله و فاصله. «میروم» و «می روم» و «میروم». اگر جستوجوی شما هر سه را یکی نداند، بخش بزرگی از کاربران نتیجه نمیگیرند.
چهار: ورودی کپیشده از پیامرسان. شمارهٔ کارت و شبا و کد پیگیری معمولاً از تلگرام کپی میشوند و با خودشان فاصله و خط تیره و متن اضافه میآورند.
و همانطور که در شناخت بیرونی نوشتم، پاککردن اینها کار محصول است. کاربری که «IR» را دو بار تایپ کرده، اشتباه نکرده؛ فقط دو منبع را کنار هم گذاشته.
پنج: تاریخ. «۱۴۰۵/۰۶/۰۶» و «۶ شهریور ۱۴۰۵» و «1405-06-06». اگر فقط یک شکل را میپذیرید، دارید کاربر را وادار میکنید قالب شما را یاد بگیرد.
یک قاعدهٔ ساده برای شروع
اگر میخواهید از فردا اثرش را ببینید، لازم نیست همهچیز را بسازید. یک کار کافی است: ورودی را پیش از اعتبارسنجی، نرمالسازی کنید.
یعنی پیش از آنکه بگویید «نامعتبر»، فاصلههای اضافه را بردارید، ارقام را یکسان کنید، «ی» و «ک» را یکدست کنید، و خط تیره را حذف کنید.
و بعد ببینید چند درصد از خطاهای فرمتان اصلاً باقی میمانند. در بیشتر فرمهای فارسی، بیشترشان نمیمانند.
جمعبندی
- - قالب بخشنده به کاربر اجازه میدهد اشتباه کند · و فقط تصحیح نمیکند: اجازه میدهد رویکردهای مختلفی به یک مسئله بگیرد
- - بخش دوم مهمتر است · بخشندگی فقط تحمل خطا نیست، تکثر راه است
- - دو کاربرد: کنارآمدن با بیقاعدگی · و چند رویکرد — مثل فیلد مکان ایربیانبی که کشور و شهر و نشانی دقیق را میپذیرد
- - ساختنش: تشخیص نوع اشتباه با عقل سلیم و آزمون · تشخیص خودکار قالبها · انعطاف بهجای اعتبارسنجی سخت · امکان ردشدن برای فیلد اختیاری · هشدار در حین حرکت میان فیلدها · و بازسازی اطلاعات جاافتاده
- - سه جای سخت: ابهام واقعی مثل آتن · همآواها · و اشتباه یکسانی که دو بار تکرار شده · و قاعدهاش: وقتی مطمئن نیستید تصحیح نکنید، پیشنهاد بدهید
- - کاربر شرح وظیفه ندارد · مسئولیت پیشبینی نیاز او با طراح است
- - و در فارسی: سه دستگاه رقم · «ی» و «ک» عربی و فارسی · نیمفاصله و فاصله · ورودی کپیشده از پیامرسان · و سه شکل تاریخ
- - قاعدهٔ شروع: ورودی را پیش از اعتبارسنجی نرمالسازی کنید — در بیشتر فرمهای فارسی، بیشتر خطاها بعد از این باقی نمیمانند
منبع
این نوشته «بازنویسی آزاد» است از مطلب What are Forgiving Formats? در وبسایت بنیاد طراحی تعامل (Interaction Design Foundation — IxDF؛ بدون نام نویسندهٔ مشخص). مفاهیم پایه — تعریف کامل قالب بخشنده در دو بخش یعنی اجازهٔ اشتباه و امکان رویکردهای مختلف به یک مسئله، هر دو کاربرد یعنی تصحیح اشتباه و کنارآمدن با بیقاعدگی و فراهمکردن چند رویکرد، نمونهٔ فیلد مکان ایربیانبی با پذیرش نام کشور و شهر و نشانی دقیق، نمونههای ورودی شامل شکلهای مختلف نوشتن شیکاگو و غلطهای املایی و پرسشهای متفاوت جستوجو، همهٔ راهنماهای ساخت شامل تشخیص نوع اشتباه بر پایهٔ عقل سلیم و آزمون کاربر و ترکیب این دو و تشخیص خودکار قالبها و ساختن انعطاف بهجای اعتبارسنجی سختگیرانه و امکان ردشدن برای فیلد اختیاری و هشدار در حین حرکت میان فیلدها و بازسازی اطلاعات جاافتاده مثل درآوردن کد پستی از نشانی، شرط آزمون کاربر سختگیرانه و نقلقول جنیفر تیدول از «طراحی رابطها»، هر سه موقعیت دشوار یعنی ابهام آتن یونان و آتن جورجیا و همآواها و خطای انتخاب واژه و اشتباه یکسان تکرارشده در فیلد رمز، فهرست فایدهها، و گزارهٔ نداشتن شرح وظیفه از سوی کاربر و مسئولیت طراح در پیشبینی نیاز — از این منبع گرفته شده. متن فارسی، ساختار بخشها و همهٔ تحلیلها کاملاً مستقل نوشته شدهاند.
متن مطلب اصلی تحت هیچ لایسنس بازی منتشر نشده است؛ به همین دلیل اینجا ترجمهٔ کلمهبهکلمه ارائه نشده و متن کامل انگلیسی (بههمراه همهٔ منابع مرتبط) در لینک زیر در دسترس است.
بخشهای افزودهٔ مترجم: صورتبندی آغازین با شمارهٔ کارت و فاصله؛ برجستهکردن بخش دوم تعریف و صورتبندیاش بهعنوان «تکثر راه» در برابر «تحمل خطا»؛ استخراج قاعدهٔ عملی برای سه موقعیت دشوار یعنی «وقتی مطمئن نیستید تصحیح نکنید، پیشنهاد بدهید» بههمراه نمونهٔ پرسش آتن؛ کل بخش بافت فارسی شامل سه دستگاه رقم فارسی و عربی و لاتین، تفاوت «ی» و «ک» عربی و فارسی بهعنوان سادهترین بخشندگی ممکن، نیمفاصله و فاصله و اثرش بر جستوجو، ورودی کپیشده از پیامرسان و صورتبندی «کاربری که IR را دو بار تایپ کرده اشتباه نکرده»، و سه شکل تاریخ؛ و کل بخش «قاعدهٔ شروع» یعنی نرمالسازی ورودی پیش از اعتبارسنجی بهعنوان کمهزینهترین نقطهٔ ورود
تصاویر: هیچ تصویری از مطلب اصلی بازتولید نشده است. هر سه نمودار این صفحه طراحی مستقل مترجم است.
مشاهدهٔ مطلب اصلی
قالب بخشنده