در این ویدئوی حدوداً ۲۰ دقیقهای درباره موضوع بسیار مهمی در طراحی با عنوان «تنوع» یا Diversity صحبت کردهام که اگر طراح سایت یا هر نرمافزاری هستید دیدنش را پیشنهاد میکنم: لینک ویدئو در آپارات موفق باشید؛حمید رضا نیرومند , ...ادامه مطلب
این جمله را دانشجوها در کلاسهای برنامهنویسی زیاد از من میشنوند: بعد از یادگیری دستور if ... else شما برنامهنویس به حساب میآیید و باید بتوانید هر مسألهای در عالم را حل کنید (یک جمله مهم و پرتکرار دیگر از من: برنامهنویسی، کدنویسی نیست؛ بلکه «قدرت حل مسأله است»). بعد از آن مفهوم، به switch و حلقهها و توابع و آرایهها و... میرسیم. این مفاهیم هیچ چیزی به برنامهنویسی اضافه نمیکنند؛ بلکه فقط یک چیز کم میکنند: تکرار کد. بنابراین هر چه برنامهنویسی پیشرفت کرد، فقط یک چیز تغییر کرد: تکرار کمتر شد! همین و بس! نتیجه اینکه: هر چه سطح شما در برنامهنویسی بالاتر میرود باید تکرار کدهایتان کمتر و کمتر شود و کدهایتان کوتاهتر شود. حالا فعلاً بعد از ۲۰ سال برنامهنویسی، به این مرحله رسیدم: این ویدئو را ببینید: باور میکنید در این ویدئو در کل فرمهایی که میبینید و یعنی در کل پروژه، من فقط یک بار کد یک فیلد را نوشتهام؟ مثلاً فقط یک بار در کل پروژه کد تگ input type=text نوشته شده، فقط یک بار در کل پروژه کد تگ textarea نوشته شده و هر تگ دیگری... سیستم به طور خودکار از دیتابیس فیلدها را میخواند و برایشان فرم میسازد و همینطور لیست و ویرایش و آپلود و... در کل پروژ فقط یک بار کد لیست و حذف نوشته شده! ممکن است بپرسید سیستم چطور میفهمد مثلاً فیلد عنوان را باید input type=text روی فرم نشان دهد اما مثلاً فیلد شاخهها را به صورت لیستی از شاخههایی که در فلان جدول تعریف شده؟ یا فیلد شرح را به صورت textarea همراه با ادیتور و یکی را بدون ادیتور، یا یک تاریخ را فارسی نشان دهد، یکی را انگلیسی و...؟ خوب، این یک نوع طراحی ابتکاری است که من آن را DBBD یا DataBase-Based Design یا «طراحی مبتنی ب, ...ادامه مطلب
سالها بود که دنبال یک پخشکننده یا Player میگشتم که امکانات مد نظرم را داشته باشد؛ به خصوص مهمترین امکان، امکان جلو و عقب زدن صدا به اندازه دلخواهم بود. تا اینکه بالاخره امکانات مرورگرها پیشرفت کرد و Moja را طراحی کردم که هر چه نیاز داشتم در آن در نظر گرفتم و همین دیروز هم امکان تکرار موسیقی را به آن اضافه کردم. اما یکی از سؤالات که همیشه در ذهنم بود این بود که چرا این امکان مهم در اکثر پخشکنندههای خارجی وجود ندارد؟ تقریباً همهشان دو دکمه در دو طرف دکمه Play دارند اما برای رفتن به موسیقی بعدی است و نه جلو و عقب زدن صدا... تا اینکه چند روز پیش ناگهان جرقه زد و فهمیدم که جریان چیست! افرادی که این پخشکنندهها را طراحی میکنند، همگی فرهنگ غربی دارند. در فرهنگ غربی، همیشه در گوش و بکگراند کار و ... یک موسیقی در حال پخش است. آنها مثل ما نیستند که مثلاً بخواهند دعا یا قرآن یا سخنرانی گوش کنند که لازم باشد مثلاً چند ثانیه بزنند عقب که ببینند شخص چه گفت!؟ حتی زبانشان هم انگلیسی است و احتمالاً نمیتوانند خودشان را جای یک زبانآموز بگذارند که او دائم نیاز دارد که صدا را چند ثانیه عقب بزند که متوجه شود شخص چه گفت... این یکی از نکتههایی است که لزوم وجود نرمافزارهای بومی را بیان میکند. شما چه حسی نسبت به زبان چینی دارید؟ هیچ چیز خاصی (مثل راستبهچپ بودن، فاصله بین حروف و کلمات و حرکات و...) از آن نمیدانید، درست است؟ یک آمریکایی طراح نرمافزار پخشکننده و... هم همان حس عجیب و غریب را نسبت به زبانهای راست به چپ و فارسی و... و همینطور نسبت به فرهنگ مردم کشورهای دیگر دارد؛ او درکی از اهمیت وجود دکمه جلو و عقب و امثالهم ندارد. موفق باشید؛حمید رضا نیرومند , ...ادامه مطلب
سالهاست که برنامهنویسی به عنوان برترین شغل دنیا معرفی میشود. منظور از برترین شغل دنیا این است که با حداقل زحمت، بیشترین درآمد کسب میشود و از طرفی دنیا فعلاً دارد با نرمافزار میچرخد و هر روز نیاز جدیدی مطرح میشود. مزیت دیگر برنامهنویسی این است که شما در این شغل هیچ مواد اولیه یا ابزار یا مکان خاصی نیاز نداری و فقط داری فکر خودت را میفروشی! یعنی نهایت ارزش افزوده! و چون وقت شما آزاد میشود میتوانی در کنار آن به هر کاری که علاقه داری بپردازی... من به درس خواندن علاقه داشتم، در پنج رشته مختلف تحصیل کردم و این إن شاء الله ادامه خواهد داشت. به دین علاقه داشتم، قرآن حفظ کردم، در دین تحصیل و پژوهش و تولید برنامه و... کردم، به هنر علاقه داشتم به انواع آن پرداختم و همه برنامهنویسان موفق، مهمترین برنامهای که نوشتهاند برنامه زندگی خودشان بوده... اگر فکر میکنی استعداد و فرصتش را داری، اقدام کن... در مورد اینکه کدام زبان برنامهنویسی را باید یاد بگیری در این ویدئو توضیح دادهام: کدام زبان برنامهنویسی؟ با توجه به توضیحاتی که در آن ویدئو دادهام، پیشنهاد ما و همه حرفهایها برنامهنویسی تحت وب است... چون دنیا دنیای وب است... حالا اگر تصميم گرفتی که برنامهنویس وب بشوی، باید بدانی که ساخت یک سایت مانند ساخت یک ساختمان است. در ساخت یک ساختمان، ابتدا اسکلت و ساختار کلی ساختمان را طراحی میکنند، سپس نمای ساختمان را کار میکنند، سپس به سراغ جلوههای ویژه مثل برقکاری و نصب آسانسور و... میروند. تا این مرحله اگر شما وارد ساختمان شوید احتمالاً مثل شهر ارواح است؛ هیچ کس نیست که مدیر سازمان باشد، معاون باشد، امور مالی باشد، مسؤول ثبتنام شما باشد و... در اصطلاح میگوییم ساختمان هنوز پ, ...ادامه مطلب
در آفتابگردان، یکی از افتخارات ما ارائه جزوات ناب از دروس مختلف رشته کامپیوتر است. تا این لحظه این جزوات را با کمک دانشجویان باسلیقهام در دانشگاه آماده و به رایگان برای دانلود ارائه کردهایم و خوشحالیم که این جزوات به مرجع تدریس بسیاری از مدرسین کشور تبدیل شده است:- جزوه برنامهنویسی شیئگرا (سی.شارپ #C) برای دانلود - جزوه شبکههای کامپیوتری - جزوه درس «محی, ...ادامه مطلب
اگر یادتان باشد، در سال ۹۲ یک مسابقه داشتیم با عنوان «وُتیره»: مسابقه وُتیره در آن مسابقهی جالب که نتایج جالبی هم داشت، خواسته بودیم نرمافزاری طراحی کنید که مشخص کند جمع چه سورههایی از قرآن ۱۰۰ آیه میشود تا بتوان آن سورهها را در نماز وُتیره خواند. (وُتیره طرح ابتکاری ما برای حفظ قرآن بود: وُتیر, ...ادامه مطلب
در درس معماری نرمافزار، که مرجع آن کتاب Software Architecture in Practice است، صفات کیفی (Quality Attributes) یک نرمافزار بحث میشود و سپس برای اعمال هر کدام از آنها در نرمافزار، یک سری تاکتیک (Tatics) و برای هر تاکتیک یک سری تکنیک یا مکانیزم ارائه میشود. هر چند صفات کیفی زیادی میتوان برای نرمافزار تصور کرد، اما مهمترین صفات کیفی یک نرمافزار را میتوان این موارد دانست: Availability Modifiability Performance Security Testability Usability Integrity Efficiency Reliability Reusability Maintainability Expandability Interoperability Survivability Correctness Verifiability Flexibility Porta, ...ادامه مطلب
در درس معماری نرمافزار، که مرجع آن کتاب Software Architecture in Practice است، صفات کیفی (Quality Attributes) یک نرمافزار بحث میشود و سپس برای اعمال هر کدام از آنها در نرمافزار، یک سری تاکتیک (Tatics) و برای هر تاکتیک یک سری تکنیک یا مکانیزم ارائه میشود. هر چند صفات کیفی زیادی میتوان برای نرمافزار تصور کرد، اما مهمترین صفات کیفی یک نرمافزار را میتوان این موارد دانست: Efficiency Reliability Usability Maintainability Expandability Interoperability Reusability Integrity Survivability Correctness Verifiability Flexibility Portability که البته در این کتاب فقط چند خصیصه کیفی بررسی میشود که آن خصیصهها و تاتیکها و مکانیزمهای هر یک در تصاویر زیر آمده است و در حقیقت خلاصه کتاب بالا است: به هر حال، با توجه به اینکه قبلاً یک مطلب با عنوان «اهمیت طراحی با کاربری آسان در جذب مشتری (Usability) (مطلب شماره ۱)» ارسال کرده بودم، بد ندیدم یک PDF بسیار مفید اینجا بگذارم در مورد تاکتیکهای پیادهسازی کاربردپذیری در طراحی نرمافزار. اگر یک طراح نرمافزار یا طراح سایت هستید، این کتاب الکترونیکی را از اینجا دانلود و مطالعه کنید. هر چند به زبان انگلیسی است اما خیلی خلاصه و مفید و با زبان قابل فهم نکات خوبی را برای کاربردپذیرتر کردن طراحی نرمافزار بیان کرده است. اگر کسی از دوستان این کتابچه را ترجمه کرد، ممنون میشوم در بخش نظرات در اختیار دیگران نیز قرار دهد. آپدیت: این PDF هم در زمینه صفات کیفی نرمافزار، بسیار بسیار جالب و مفید است: Software Quality Attributes and Architecture Tradeoffs موفق باشید؛حمید رضا نیرومند , ...ادامه مطلب
یکی از مباحث جالب که در درسهایی مثل «سیستمهای اتکاپذیر» و همینطور در «آزمون نرمافزار» و خیلی جاهای دیگر حتی جالب است که در مترجمی زبان هم در بحث اطمینان از صحت ترجمه توسط مترجم مطرح میشود، بحث جالبی است به نام Diversity یا «تنوع». بحث کلی این است که برای اینکه مطمئن شوید که چیزی که تولید کردهاید، مطمئن (خالی از اشکال) است، در صورتی که برایتان ممکن است (که البته وقتی بحث مهمی مثل جان انسانها در یک فضاپیما مطرح باشد، ممکن میشود) آنرا در شرایط متنوعی دوباره تولید کنید. در محصولات مختلف، Diversityهای مختلفی قابل تصور است، مهمترین تنوعها عبارتند از: ۱- Design Diversity یا تنوع در طراحی: یعنی به طور مثال اگر قرار است یک نرمافزار مهم را تولید کنید، بدهید افراد یا تیمهای مختلف آنرا طراحی کنند. در این صورت اگر یکی یک مشکل داشته باشد به راحتی با مقایسه با بقیه آن مشکل کشف میشود. همان کاری که ما در آفتابگردان در مورد محصولاتمان انجام میدهیم. یک محصول تا بخواهد به مرحله نهایی تولید برسد، چندین بار به صورت پایلوت طراحی میشود. این کار باعث میشود اگر در طراحی و تحلیل پروژه زوایای پنهانی وجود داشته که ما در نظر نگرفتهایم، بالاخره خودش را در یکی از طراحیها نشان دهد و همه این موارد جمعآوری شود و نهایتاً یک طراحی که کاملتر است انتخاب شود یا دوباره طراحی با توجه به همه نکاتی که کشف شده انجام شود. ۲- Time Diversity یا تنوع زمانی: یعنی اگر به طور مثال قرار است یک محصول را تست کنید، در زمانهای مختلف تست کنید. ممکن است شما الان که اواخر شب است یک محصول آنلاین را تست کنید و ببینید مشکلی نیست اما اگر مثلاً ساعت ۱۱ صبح که معمولاً بیشترین بار ترافیک اینترنت در این ساعت است آنرا تست کنید، میبینید به خاطر فشار زیادی که به سرور آمده، محصول نتوانسته این فشار را تحمل کند و Crash کرده. ۳- Platform Diversity یا تنوع در بستر اجرا یا Space Diversity (تنوع در فضای اجرا): یعنی محصول را در فضاهای مختلف و اگر نرمافزار است، در بسترهای مختلف اجرا و تست کنید. مثلاً یک نرمافزار آنلاین را در مرورگرهای مختلف، در سیستم عاملهای مختلف، در گوشیها و تبلتهای مختلف تست کنید... ممکن است در مرورگر پی.سی هیچ مشکلی وجود نداشته باشد اما در موبایل اصلاً قابل استفاده نیست... یا مثلاً یک محصول سخت, ...ادامه مطلب
«مرکز پذیرش سفارشات طراحی گرافیکی»، یکی از بخشهایی است که شاید سالهاست قصد داریم در آفتابگردان راهاندازی کنیم اما این روزها با افزایش سفارشها در این زمینه و داشتن افراد متبحر که بتوانند در این زمینه کمک کنند، نیاز آن بیشتر احساس شد و حالا خوشحالیم که این بخش نیز راهاندازی شد: http://design.aftab.cc به طور مداوم از طریق آموزشهایی مثل «بیایید با هم یک کارت ویزیت ساده طراحی کنیم (فتوشاپ)» که بین ۱۰ آموزش پربازدید سایت است و یا «چگونه یک آرم طراحی کنیم؟» که از جذابترین آموزشهای سایت به نظر میرسد، سفارشهایی در مورد طراحی کارت گرافیک و آرم و بنر تبلیغاتی و ... دریافت کردهایم که به خاطرِ نبودِ یک مرکز رسمی برای این کار، معمولاً از پذیرش آنها خودداری میکردیم.اما حالا با راهاندازی مرکز طراحی آفتابگردان، رسماً این نوع سفارشات را میپذیریم. امیدواریم از طریق طرحی که برای شما میزنیم، خاطره خوشی از ما به یادگار داشته باشید... موفق باشید؛حمید رضا نیرومند , ...ادامه مطلب
روی میز کارم دو ماژیک دارم. وقتی بررسی میکنم، میبینم همیشه وقتی با ماژیک کار دارم، ناخودآگاه دستم طرف یکی از آن دو میرود و آن یکی را کمتر استفاده میکنم. میدانید دلیل آن چیست؟ چون آن ماژیک راحتتر باز میشود! دومی را باید با کلی زور باز کنم طوری که اگر حواسم نباشد احتمالاً دست چپم در لحظه باز شدن ماژیک، به میز برخورد میکند! *** این مثال ساده، اهمیت Easy-to-use بودن محصولات و خدمات در جذب مشتری را میرساند. (استفاده راحت) این مورد را یکی از اهداف Usability یا کاربردپذیری نیز میدانند و میدانید که ۱۲ نوامبر هر سال (یعنی ۲۱ آبان که نزدیک است) را روز کاربرپذیری مینامند و از محصولات Easy-to-user در مراسم مختلف تقدیر میکنند. گاهی اوقات رعایت کردن یا نکردن یک نکته کوچک، باعث رضایت یا عدم رضایت یک مشتری و طبیعتاً افزایش یا کاهش فروش میشود. در این مطلب و مطلبهای مشابه که به مرور منتشر میشود، مواردی را در بحث طراحی برنامههای تحت وب (Web-based Applications) اشاره خواهم کرد که رعایت کردن آنها باعث راحتتر بودن کاربر خواهد شد. لطفاً شما هم اگر مطلبی به ذهنتان رسید که تجربه کردهاید و به این نتیجه رسیدهاید که باعث آسایش و جذب کاربر میشود، در بخش نظرات بیان کنید که مطلب را بیشتر بسط دهیم. درس اول: کپچا؛ یکی از بزرگترین عواملِ کوچکِ آزار کاربر: کپچا را تا حد ممکن حذف کنید! در طراحی سیستمهای تحت وب، یکی از مواردی که باعث آزار کاربر و خواه ناخواه باعث افت کاربران میشود، نمایش کپچا (کاراکترهای درهم و برهم) به کاربر است! (در مورد کپچا در این مطلب صحبت کردهام) در حالی که میشد آنرا به نوع دیگری پیادهسازی کرد که هم امنیت حفظ شود و هم کاربریِ آسان: کاربر در همان لحظه اول کپچا را نبیند. بلکه اگر دو بار یا سه بار پسورد را اشتباه وارد کرد، حالا احتمال بدهید که یک روبات به جان سایت افتاده و کپچا را نمایش بدهید و یا مثلاً اگر حدس میزنید که سیستمی که طراحی میکنید، چندان مهم و امنیتی و با مخاطبان گسترده نیست که بخواهد مورد هجوم اسپمرهای حرفهای (که اکثراً خارجی هستند و از طراحیهای زبان فارسی سر در نمی&zw, ...ادامه مطلب
«مرکز پذیرش سفارشات طراحی گرافیکی»، یکی از بخشهایی است که شاید سالهاست قصد داریم در آفتابگردان راهاندازی کنیم اما این روزها با افزایش سفارشها در این زمینه و داشتن افراد متبحر که بتوانند در این زمینه کمک کنند، نیاز آن بیشتر احساس شد و حالا خوشحالیم که این بخش نیز راهاندازی شد: http://design.aftab.cc به طور مداوم از طریق آموزشهایی مثل «بیایید با هم یک کارت ویزیت ساده طراحی کنیم (فتوشاپ)» که بین ۱۰ آموزش پربازدید سایت است و یا «چگونه یک آرم طراحی کنیم؟» که از جذابترین آموزشهای سایت به نظر میرسد، سفارشهایی در مورد طراحی کارت گرافیک و آرم و بنر تبلیغاتی و ... دریافت کردهایم که به خاطرِ نبودِ یک مرکز رسمی برای این کار، معمولاً از پذیرش آنها خودداری میکردیم.اما حالا با راهاندازی مرکز طراحی آفتابگردان، رسماً این نوع سفارشات را میپذیریم. امیدواریم از طریق طرحی که برای شما میزنیم، خاطره خوشی از ما به یادگار داشته باشید... موفق باشید؛حمید رضا نیرومند , ...ادامه مطلب
روی میز کارم دو ماژیک دارم. وقتی بررسی میکنم، میبینم همیشه وقتی با ماژیک کار دارم، ناخودآگاه دستم طرف یکی از آن دو میرود و آن یکی را کمتر استفاده میکنم. میدانید دلیل آن چیست؟ چون آن ماژیک راحتتر باز میشود! دومی را باید با کلی زور باز کنم طوری که اگر حواسم نباشد احتمالاً دست چپم در لحظه باز شدن ماژیک، به میز برخورد میکند! *** این مثال ساده، اهمیت Easy-to-use بودن محصولات و خدمات در جذب مشتری را میرساند. (استفاده راحت) این مورد را یکی از اهداف Usability یا کاربردپذیری نیز میدانند و میدانید که ۱۲ نوامبر هر سال (یعنی ۲۱ آبان که نزدیک است) را روز کاربرپذیری مینامند و از محصولات Easy-to-user در مراسم مختلف تقدیر میکنند. گاهی اوقات رعایت کردن یا نکردن یک نکته کوچک، باعث رضایت یا عدم رضایت یک مشتری و طبیعتاً افزایش یا کاهش فروش میشود. در این مطلب و مطلبهای مشابه که به مرور منتشر میشود، مواردی را در بحث طراحی برنامههای تحت وب (Web-based Applications) اشاره خواهم کرد که رعایت کردن آنها باعث راحتتر بودن کاربر خواهد شد. لطفاً شما هم اگر مطلبی به ذهنتان رسید که تجربه کردهاید و به این نتیجه رسیدهاید که باعث آسایش و جذب کاربر میشود، در بخش نظرات بیان کنید که مطلب را بیشتر بسط دهیم. درس اول: کپچا؛ یکی از بزرگترین عواملِ کوچکِ آزار کاربر: کپچا را تا حد ممکن حذف کنید! در طراحی سیستمهای تحت وب، یکی از مواردی که باعث آزار کاربر و خواه ناخواه باعث افت کاربران میشود، نمایش کپچا (کاراکترهای درهم و برهم) به کاربر است! (در مورد کپچا در این مطلب صحبت کردهام) در حالی که میشد آنرا به نوع دیگری پیادهسازی کرد که هم امنیت حفظ شود و هم کاربریِ آسان: کاربر در همان لحظه اول کپچا را نبیند. بلکه اگر دو بار یا سه بار پسورد را اشتباه وارد کرد، حالا احتمال بدهید که یک روبات به جان سایت افتاده و کپچا را نمایش بدهید و یا مثلاً اگر حدس میزنید که سیستمی که طراحی میکنید، چندان مهم و امنیتی و با مخاطبان گسترده نیست که بخواهد مورد هجوم اسپمرهای حرفهای (که اکثراً خارجی هستند و از طراحیهای زبان فارسی سر در نمی&zw, ...ادامه مطلب
«مرکز پذیرش سفارشات طراحی گرافیکی»، یکی از بخشهایی است که شاید سالهاست قصد داریم در آفتابگردان راهاندازی کنیم اما این روزها با افزایش سفارشها در این زمینه و داشتن افراد متبحر که بتوانند در این زمینه کمک کنند، نیاز آن بیشتر احساس شد و حالا خوشحالیم که این بخش نیز راهاندازی شد: http://design.aftab.cc به طور مداوم از طریق آموزشهایی مثل «بیایید با هم یک کارت ویزیت ساده طراحی کنیم (فتوشاپ)» که بین ۱۰ آموزش پربازدید سایت است و یا «چگونه یک آرم طراحی کنیم؟» که از جذابترین آموزشهای سایت به نظر میرسد، سفارشهایی در مورد طراحی کارت گرافیک و آرم و بنر تبلیغاتی و ... دریافت کردهایم که به خاطرِ نبودِ یک مرکز رسمی برای این کار، معمولاً از پذیرش آنها خودداری میکردیم.اما حالا با راهاندازی مرکز طراحی آفتابگردان، رسماً این نوع سفارشات را میپذیریم. امیدواریم از طریق طرحی که برای شما میزنیم، خاطره خوشی از ما به یادگار داشته باشید... موفق باشید؛حمید رضا نیرومند , ...ادامه مطلب
روی میز کارم دو ماژیک دارم. وقتی بررسی میکنم، میبینم همیشه وقتی با ماژیک کار دارم، ناخودآگاه دستم طرف یکی از آن دو میرود و آن یکی را کمتر استفاده میکنم. میدانید دلیل آن چیست؟ چون آن ماژیک راحتتر باز میشود! دومی را باید با کلی زور باز کنم طوری که اگر حواسم نباشد احتمالاً دست چپم در لحظه باز شدن ماژیک، به میز برخورد میکند! *** این مثال ساده، اهمیت Easy-to-use بودن محصولات و خدمات در جذب مشتری را میرساند. (استفاده راحت) این مورد را یکی از اهداف Usability یا کاربردپذیری نیز میدانند و میدانید که ۱۲ نوامبر هر سال (یعنی ۲۱ آبان که نزدیک است) را روز کاربرپذیری مینامند و از محصولات Easy-to-user در مراسم مختلف تقدیر میکنند. گاهی اوقات رعایت کردن یا نکردن یک نکته کوچک، باعث رضایت یا عدم رضایت یک مشتری و طبیعتاً افزایش یا کاهش فروش میشود. در این مطلب و مطلبهای مشابه که به مرور منتشر میشود، مواردی را در بحث طراحی برنامههای تحت وب (Web-based Applications) اشاره خواهم کرد که رعایت کردن آنها باعث راحتتر بودن کاربر خواهد شد. لطفاً شما هم اگر مطلبی به ذهنتان رسید که تجربه کردهاید و به این نتیجه رسیدهاید که باعث آسایش و جذب کاربر میشود، در بخش نظرات بیان کنید که مطلب را بیشتر بسط دهیم. درس اول: کپچا؛ یکی از بزرگترین عواملِ کوچکِ آزار کاربر: کپچا را تا حد ممکن حذف کنید! در طراحی سیستمهای تحت وب، یکی از مواردی که باعث آزار کاربر و خواه ناخواه باعث افت کاربران میشود، نمایش کپچا (کاراکترهای درهم و برهم) به کاربر است! (در مورد کپچا در این مطلب صحبت کردهام) در حالی که میشد آنرا به نوع دیگری پیادهسازی کرد که هم امنیت حفظ شود و هم کاربریِ آسان: کاربر در همان لحظه اول کپچا را نبیند. بلکه اگر دو بار یا سه بار پسورد را اشتباه وارد کرد، حالا احتمال بدهید که یک روبات به جان سایت افتاده و کپچا را نمایش بدهید و یا مثلاً اگر حدس میزنید که سیستمی که طراحی میکنید، چندان مهم و امنیتی و با مخاطبان گسترده نیست که بخواهد مورد هجوم اسپمرهای حرفهای (که اکثراً خارجی هستند و از طراحیهای زبان فارسی سر در نمی&zw, ...ادامه مطلب