نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن از نمایش ارورها برای کاربر اجتناب کنید!

نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن از نمایش ارورها برای کاربر اجتناب کنید!

پیام‌های خطا (Error Messages) یکی از رایج‌ترین راه‌های ارتباطی کاربران با سیستم پیش‌رویشان است و درواقع این پیام‌‌ها خبر از اتفاقی غیرمنتظره می‌دهند.

آنچه در ارتباط با تعامل کاربران با یک سیستم نرم‌افزاری می‌بایست همواره مدنظر قرار داد این است که کاربران معمولاً به شکلی سیستماتیک و قابل‌پیش‌بینی منجر به ایجاد ارورها می‌شوند (به‌طورمثال، وارد کردن یک ورودی غیر عددی در فیلدی که صرفاً عدد می‌گیرد). از همین روی، به دلیل قابل‌پیش‌بینی بودن این نوع تعامل، به‌سادگی قادر خواهیم بود همان‌طور که سایر بخش‌های سیستم را دیباگ می‌کنیم، دست به دیباگ کردن نحوهٔ تعامل کاربران با سیستم نیز بزنیم.

برای روشن‌تر شدن این مسأله، مثالی می‌زنیم؛ فرض کنیم یک فیلد ورودی داریم که صرفاً مخصوص دریافت تاریخ است آن‌هم در یک بازهٔ خاص؛ در چنین شرایطی، به‌جای آن که به کاربر اجازه دهیم تا هر تاریخی را وارد کند، به‌سادگی می‌توانیم طیفی از تاریخ‌هایی که مجاز هستند را درمعرض دیدش قرار داده تا وی یکی از آن‌ها را انتخاب کند. چنین کاری احتمال آن‌که کاربر تاریخی خارج از طیف مدنظر را وارد سازد کاهش داده و همین مسأله منجر به ایجاد تجربهٔ کاربری به‌مراتب بهتری می‌گردد.

علاوه‌بر این، گاهی‌اوقات تنبلی دولوپرها هم منجر به سختی کشیدن بیشتر کاربران درحین استفاده از اپلیکیشن می‌شود. برای روشن‌تر شدن این مسأله، مجدد به مثال فوق بازمی‌گردیم؛ وقتی که کاربران با فیلدی که برای درج تاریخ درمعرض دیدشان قرار می‌گیرند مواجه می‌شوند، ممکن است تاریخ مدنظر خود را به‌صورت مثلاً 14-12-1390 وارد کنند اما این درحالی است که پس از ارسال دیتا برای سرور، صرفاً فرمتی همچون ۱۳۹۰/۱۲/۱۴ قابل‌قبول است و دادهٔ ورودی کاربر غیرقابل‌قبول تلقی می‌گردد.

در چنین شرایطی، دولوپرها ۲ راه‌کار پیش‌رو دارند؛ راه‌کار اول این که انواع فرمت‌هایی که کاربر می‌تواند وارد کند را تفسیر کرده و در دیتابیس ذخیره سازند (مثلاً فرمت‌هایی همچون 14-12-1390 یا ۱۳۹۰/۱۲/۱۴ یا حتی بااستفاده از اسپیس و به‌صورت 14 12 1390) و راه‌کار دوم این که صرفاً یک فرمت را مدنظر قرار داده و اگر کاربری چیزی به غیر از آن‌را وارد ساخت، خیلی ساده یک پیام خطا درمعرض دیدش قرار دهند.

از آنجا که راه‌کار دوم بار کدنویسی کمتری روی دولوپر دارا است، اکثر دولوپرها چنین راه‌کاری را انتخاب می‌کنند غافل از این‌که انتخاب چنین رویکردی باعث سردرگمی بیشتر کاربران می‌شود!

حال اگر هم راه‌کار دوم مدنظر دولوپر باشد، بازهم راه‌کارهایی برای به حداقل رساندن خطاها از طرف کاربران وجود دارد؛ مثلاً به‌سادگی می‌توان لیبل‌هایی حاوی متنی مرتبط با فرمت مدنظر درمعرض دید کاربر قرار داد و یا ۳ فیلد مجزا یکی برای سال، یکی برای ماه و دیگری برای روز با لیبل‌های گویا و مشخص درنظر گرفت تا احتمال خطا را به حداقل رساند.

به‌طورکلی، برخی دولوپرها هستند که دستورالعمل‌هایی برای نحوهٔ تعامل کاربر با اپلیکیشن درنظر می‌گیرند اما این درحالی است که بسیاری از این دستورالعمل‌های توسط کاربران اصلاً خوانده نمی‌شوند چراکه کاربران یا حوصلهٔ مطالعهٔ چنین دستورالعمل‌هایی را ندارند و یا فرض را بر این می‌گذارند که نحوهٔ تعامل با سیستم -باتوجه به تجربیات گذشتهٔ خود در تعامل با سرویس‌هایی مشابه- را بلد هستند.

در همین راستا، توصیه می‌شود که به‌جای استفاده از دستورالعمل‌های نحوهٔ استفاده از یک سرویس، اصطلاحاً Hint در اختیار کاربران قرار گیرد. درواقع، تفاوت Hint (به‌معنی ایما، تذکر و اشاره) با Instruction (دستورالعمل) در این است که دستورالعمل‌ها همواره پیش از تعامل کاربر با سیستم در قالب یک پاپ‌آپ، پیام، باکس و … درمعرض دیدش قرار می‌گیرد اما این درحالی است که هینت‌ها درحین تعامل کاربر با سیستم چیزی را به وی گوشزد می‌کنند و به همین دلیل هم هست که اثربخش‌تر هستند (مثلاً وقتی که در یکی از فیلدهای فرمی کلیک می‌کنیم و پیامی درمعرض دیدمان قرار می‌گیرد، این پیام نوعی Hint است).

راه‌کار دیگری که برای جلوگیری از وقوع ارورها می‌توان اتخاذ کرد این است که مثلاً در فیلدهای یک فرم از مقادیر دیفات (پیش‌فرض) استفاده کرد؛ در همان مثال فیلد مرتبط با تاریخ، می‌توان تاریخ روز را به‌صورت مقدار پیش‌فرض درنظر گرفت و این درحالی است که اگر تاریخ مدنظر کاربر تاریخ همان روز باشد که آن‌را دست‌نخورده باقی می‌گذارد و در غیر این صورت، می‌داند که فرمت مدنظر سیستم چیست و چگونه دیتا را می‌بایست وارد کند.

به‌طورکلی، دولوپرها پیش از هرچیز می‌بایست به این درک برسند که کاربران هدفشان چگونه فکر می‌کنند و بر همین اساس هم سیستم را مطابق به نحوهٔ فکر کردن اکثر کاربران هدف طراحی کنند و همین مسأله منجر به بروز پیام‌های خطای کمتر و درنتیجه تجربهٔ کاربری بهتر از جانب کاربران می‌گردد.

2-1
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: بدهی فنی
بهزاد مرادی
1394/10/08
2-2
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: به کارگیری اصولی از توابع در برنامه نویسی
بهزاد مرادی
1394/10/08
2-3
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: نیاز کاربر چیست؟
بهزاد مرادی
1394/10/08
2-4
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: استاندارهای کدنویسی
بهزاد مرادی
1394/10/08
2-5
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: ساده زیباست
بهزاد مرادی
1394/10/08
2-6
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با مفهوم ریفکتورینگ در کدنویسی
بهزاد مرادی
1394/10/08
2-7
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: نظافت را رعایت کنید!
بهزاد مرادی
1394/10/08
2-8
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: پیش از آن که دیگران را متهم کنید، کد خود را چک کنید!
بهزاد مرادی
1394/10/08
2-9
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: انتخاب ابزار مناسب
بهزاد مرادی
1394/10/08
2-10
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: برنامه های خود را به زبان مشتریان بنویسید!
بهزاد مرادی
1394/10/08
2-11
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: طرح‌های خود را بی‌نقص کنید
بهزاد مرادی
1394/10/08
2-12
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: به چیدمان کدها توجه کنید!
بهزاد مرادی
1394/10/08
2-13
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: نقد و بررسی کدها
بهزاد مرادی
1394/10/08
2-14
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: کامنت‌گذاری را فراموش نکنید
بهزاد مرادی
1394/10/08
2-15
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تنها توضیحاتی را بنویسید که کدهایتان قادر به شرح آنها نباشند!
بهزاد مرادی
1394/10/08
2-16
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: از کدهای قبلی خود در شرایط مناسب مجدداً استفاده کنید
بهزاد مرادی
1394/10/08
2-17
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: همواره در حال یادگیری موضوعات جدید باشید
بهزاد مرادی
1394/10/08
2-18
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: ویژگی‌های یک API با طراحی مناسب
بهزاد مرادی
1394/10/08
2-19
نود و هفت چیز که هر برنامه‌نویسی باید بداند: از ابتدای کار توسعهٔ اپلیکیشن خود روی فرآیند نصب و دیپلوی آن به طور پیوسته کار کنید
بهزاد مرادی
1394/10/08
2-20
نود و هفت چیز که هر برنامه‌نویسی باید بداند: مدیریت اکسپشن‌ها
بهزاد مرادی
1394/10/09
2-21
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تمرین آگاهانه لازمهٔ حرفه‌ای شدن است!
بهزاد مرادی
1394/10/18
2-22
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: پشت هر خط از کد شما می‌بایست یک منطق وجود داشته باشد!
بهزاد مرادی
1394/11/07
2-23
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: DSL چیست و چرا آشنایی با آن در حوزهٔ برنامه‌نویسی اهمیت دارد؟
بهزاد مرادی
1394/11/15
2-24
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: از ساختارشکنی نترسید!
بهزاد مرادی
1395/01/16
2-25
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: برای تست نرم‌افزار از دیتای واقعی استفاده کنید
بهزاد مرادی
1395/01/20
2-26
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: حتی یک ارور را هم نادیده نگیرید!
بهزاد مرادی
1395/02/05
2-27
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فرهنگ استفاده از یک زبان برنامه‌نویسی را در کنار سینتکس آن بیاموزید
بهزاد مرادی
1395/02/15
2-28
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: اکسپش‌ها را به راحت‌ترین شکل ممکن هَندل کنید
بهزاد مرادی
1395/03/09
2-29
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فرایند توسعه یک نرم‌افزار خوب اصلاً شانسی نیست
بهزاد مرادی
1395/03/09
2-30
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با قانون DRY
بهزاد مرادی
1395/03/09
2-31
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با مراحل توسعهٔ نرم‌افزار
بهزاد مرادی
1395/03/25
2-32
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: به‌کارگیری درست از اصول برنامه‌نویسی شیٔ‌گرا
بهزاد مرادی
1395/04/11
2-33
نود و هفت چیز که هر برنامه‌نویسی باید بداند: اعداد اعشاری با خطای محاسباتی در کامپیوتر ذخیره می‌شوند
بهزاد مرادی
1395/05/17
2-34
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: با مشارکت در پروژه‌های اپن‌سورس، حس جاه‌طلبی خود را ارضاء کنید!
بهزاد مرادی
1395/06/30
2-35
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: قانون طلایی طراحی API
بهزاد مرادی
1395/07/04
2-36
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: کسی که چند سال است کدنویسی می‌کند، اصلاً علامهٔ دهر نیست!
بهزاد مرادی
1395/07/06
2-37
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: کار زیاد ضمانت موفقیت در برنامه‌نویسی نیست!
بهزاد مرادی
1395/07/06
2-38
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: چگونه به یک باگ نگاه کنیم؟
بهزاد مرادی
1395/07/19
2-39
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: با حذف کدهای اضافی، سورس‌کد خود را بهبود بخشید
بهزاد مرادی
1395/07/21
2-40
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: برنامه‌هایی که می‌نویسید را کاربرپسند کنید
بهزاد مرادی
1395/07/21
2-41
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فرایندهای برون برنامه‌ای، زمان پاسخگویی نرم‌افزار را تحت‌الشعاع خود قرار می‌دهند
بهزاد مرادی
1395/07/21
2-42
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: Build اصولی ارائه کنید
بهزاد مرادی
1395/08/05
2-43
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: استفادهٔ بهینه از ابزارهای کامندلاینی
بهزاد مرادی
1395/08/23
2-44
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: یادگیری هم‌زمان بیش از یک زبان برنامه‌نویسی
بهزاد مرادی
1395/08/23
2-45
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: IDE خود را مثل موم در دست بگیرید
بهزاد مرادی
1395/08/29
2-46
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: با محدودیت‌های خود دست و پنجه نرم کنید
بهزاد مرادی
1395/09/12
2-47
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: همواره بدانید چه چیزی را قرار است کامیت کنید
بهزاد مرادی
1395/09/12
2-48
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با نحوهٔ به‌کارگیری دیتابیس‌های رابطه‌ای
بهزاد مرادی
1396/05/06
2-49
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با مهارت‌های ارتباطی و فراگیری زبان‌های خارجی
بهزاد مرادی
1396/05/07
2-50
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: خود را با مهارت تخمین زدن تجهیز کنید!
بهزاد مرادی
1396/05/09
2-51
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: IDE یا Editor مسأله این است!
بهزاد مرادی
1396/05/09
2-52
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: ارسال پیام خطا به دولوپر توسط نرم‌افزار
بهزاد مرادی
1396/05/10
2-53
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: چیزهای اضافی را لود نکنید!
بهزاد مرادی
1396/05/11
2-54
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: چه‌موقع و چگونه از راه‌کارهای موقتی در کدنویسی استفاده کنیم؟
بهزاد مرادی
1396/05/16
2-55
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: استفادهٔ نادرست از اینترفیس‌ها را غیرممکن سازید
بهزاد مرادی
1396/05/17
2-56
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن همه‌ چیز را شفاف‌سازی کنید
بهزاد مرادی
1396/05/18
2-57
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: ضرورت آشنایی با مفاهیم کانکارنسی و پاراللیزم
بهزاد مرادی
1396/05/18
2-58
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: یافتن راه‌کارهای ساده برای مشکلات سخت
بهزاد مرادی
1396/05/18
2-59
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: دولوپری که نداند Polymorphism چیست، دولوپر نیست!
بهزاد مرادی
1396/05/21
2-60
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تستر‌های نرم‌افزار دشمن دولوپرها نیستند!
بهزاد مرادی
1396/05/22
2-61
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: همواره یک نسخه از نرم‌افزار برای ریلیس داشته باشید
بهزاد مرادی
1396/05/23
2-62
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فقط سورس‌کد است که حرف اول و آخر را می‌زند
بهزاد مرادی
1396/05/23
2-63
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: فقط کد نزنید بلکه Build Process را نیز مدنظر قرار دهید
بهزاد مرادی
1396/05/25
2-64
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: اهمیت برنامه‌نویسی دونفره
بهزاد مرادی
1396/05/26
2-65
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با تفاوت Static Typing و Dynamic Typing در برنامه‌نویسی
بهزاد مرادی
1396/05/28
2-66
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن از نمایش ارورها برای کاربر اجتناب کنید!
بهزاد مرادی
1396/05/30
2-67
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: به چه برنامه‌نویسی حرفه‌ای می‌گویند؟
بهزاد مرادی
1396/06/04
2-68
نود و هفت چیزی که برنامه‌نویسی باید بداند: از ورژن کنترل غافل نشوید!
بهزاد مرادی
1396/06/08
2-69
نود و هفت چیزی که برنامه‌نویسی باید بداند: ماوس و کیبورد را کنار بگذارید!
بهزاد مرادی
1396/06/09
2-70
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: کدخوانی کنید!
بهزاد مرادی
1396/06/13
2-71
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تعاملات اجتماعی کلید موفقیت است!
بهزاد مرادی
1396/06/14
2-72
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن دست به اختراع مجدد چرخ نزنید!
بهزاد مرادی
1396/06/16
2-73
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن از Singleton Pattern استفاده نکنید
بهزاد مرادی
1396/06/17
2-74
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: وابستگی‌های زیاد دشمن ریفکتورینگ هستند!
بهزاد مرادی
1396/06/18
2-75
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: هرچه تعداد خطوط کد کمتر، بهتر!
بهزاد مرادی
1396/06/19
2-76
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با قانون Single Responsibility
بهزاد مرادی
1396/06/19
2-77
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: همه‌ چیز با یک آری شروع می‌شود!
بهزاد مرادی
1396/06/20
2-78
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن همه‌ چیز را خودکار کنید
بهزاد مرادی
1396/06/21
2-79
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: آشنایی با مزایای ابزارهای تحلیل سورس‌کد
بهزاد مرادی
1396/06/22
2-80
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: در تست نرم‌افزار فقط رفتار مورد انتظار را بسنجید
بهزاد مرادی
1396/06/22
2-81
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تست‌ها علاوه بر صحیح بودن، می‌بایست دقیق هم باشند
بهزاد مرادی
1396/06/24
2-82
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تست نرم‌افزار و سورس‌کد را آخر شب‌ها و آخر هفته‌ها انجام دهید!
بهزاد مرادی
1396/06/26
2-83
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: مقایسه‌ای مابین مهندسین نرم‌افزار و دیگر مهندسان
بهزاد مرادی
1396/07/01
2-84
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: از نوشتن کدهای اضافی پرهیز کنید
بهزاد مرادی
1396/07/02
2-85
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: اهمیت برنامه‌نویسی دونفره در کدنویسی را هرگز نادیده نگیرید
بهزاد مرادی
1396/07/04
2-86
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: منفی در مفنی می‌شود مثبت!
بهزاد مرادی
1396/07/08
2-87
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: کدنویسی تمیز و اصولی یک باید است
بهزاد مرادی
1396/07/09
2-88
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: ابزارهای یونیکسی دوست دولوپرها هستند!
بهزاد مرادی
1396/07/17
2-89
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: استفادهٔ درست از الگوریتم‌ها و دیتا استراکچرها
بهزاد مرادی
1396/07/22
2-90
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: با لاگ‌گیری Verbose دچار دردسر خواهید شد!
بهزاد مرادی
1396/08/02
2-91
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: درک تفاوت مفاهیم DRY و WET در کدنویسی بهینه
بهزاد مرادی
1396/08/03
2-92
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تعامل مابین دولوپرها و تسترها
بهزاد مرادی
1396/09/11
2-93
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: طوری کد بزنید که گویی قرار است تا آخر عمر سورس‌کدتان را ساپورت کنید!
بهزاد مرادی
1396/09/11
2-94
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: تا حد ممکن فانکشن‌های کوچک بنویسید
بهزاد مرادی
1396/10/16
2-95
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: برای دولوپرها تست بنویسید نه برای ماشین‌ها!
بهزاد مرادی
1396/10/18
2-96
نود و هفت چیزی که هر برنامه‌نویسی باید بداند: مراقب سورس‌کد باشید!
بهزاد مرادی
1396/10/18
2-97
نود و هفت چیزی که هر برنامه‌نویسی باید بداند‍: خیلی به حرف‌های مشتریان اعتماد نکنید!
بهزاد مرادی
1396/10/18
کاربر میهمان

دوست گرامی شما به عنوان کاربر میهمان در سایت سکان آکادمی حضور دارید لطفاً برای ارسال دیدگاه ابتدا وارد حساب خود شوید