کسی به فکر تجربه (UX) برنامه نویسها هست؟

از سالهای نه چندان دور دانشگاه تا محافل مختلف تخصصی و گپ و گفتهای جمع های دوستانه بحث چرایی وجود روشهای مختلف تعریف پارامترها در پرس و جوهایی که در جاوا فراخوانی میکنیم وجود داشته. اما امروز که یک روز به یلدای سال 1397 مانده و تقریبا یک هفته ای از سومین کنفرانس تجربه کاربر شیراز میگذره و طبق معمول این روزها مشغول کمک به ساختن دنیایی بهتر از طریق کدنویسی هستم ذهنم جرقه ای زد.

آیا توی طراحی CallableStatement جاوا تجربه کاربر در نظر گرفته شده؟ چرا من میتونم در پرس و جو یا کوئری که به CallableStatement جاوا پاس میدم پارامترهارو هم با ایندکس و هم با نام پارامتر استفاده کنم؟ و چرا من از مدل ایندکس گذاری شده اون استفاده نمیکنم.

مکالمه درونی ای برای من شکل گرفت که به مساله مدل یادگیری و رفتار حافظه آدمهای مختلف برمیگرده. همکاری داشتیم که نمیتونست ارتباط سریعی بین ایندکس و مقدار برقرار کنه. یعنی اگر میگفتی 3 تا عنصر داریم که با ایندکسهای 1 تا 3 شماره گذاری شدن و مقدار هر کدوم به ترتیب جاری، عمرانی و طرح هست و بعد ازش میپرسیدی ایندکس 1 مقدارش چی بود معمولا برای یادآوری به مشکل بر میخورد. بنابراین باید همیشه نیم نگاهی به متنها و نکته برداریهاش میکرد. اما وقتی با نامگذاری روبرو بود، مثلا میگفتی پارامتر "دفتر" اسمش "p_book_type" هست به یاد میاورد و با مشکلی روبرو نمیشد. حالا توی جاوا این راه حل برای این نوع فرد با این مدل حافظه طراحی و پیش بینی شده. بنابراین به تجربه این کاربر اهمیت داده شده. حالا این طراحی برنامه ریزی شده بوده یا نه باید بررسی کرد اما وجودش رو میشه اثبات کرد.

داستان بالا رو میشه نمونه ای از طراحی نامحسوس (Invisible Design) هم در نظر گرفت. بدون اینکه بهش فکر کنیم ازش استفاده میکنیم و کارمون رو راحتتر میکنه.