همه نوشته‌ها

چطور کمتر فحش دریافت کنیم یا هنر نوشتن پیام خطای خوب

چطور کمتر فحش دریافت کنیم یا هنر نوشتن پیام خطای خوب

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

چطور انتشار یک پکیج nuget را اتوماتیک کنیم؟

چطور انتشار یک پکیج nuget را اتوماتیک کنیم؟

nuget (با تلفظ نیوگت) در واقع package manager برای .NET است. در این پست درباره انتشار اتوماتیک کتابخانه‌های اپن‌سورس در قالب پکیج nuget با کمک سرویس AppVeyor صحبت می‌کنیم. گام اول: دریافت کلید API برای انتشار اتوماتیک پکیج‌ها در سایت nuget ابتدا باید یک کلید API دریافت کنید. برای این کار بعد از ثبت‌نام و ورود به بخش API Keys بروید و یک کلید ایجاد کنید. توجه کنید که مقدار کلید را پس از ایجاد حتماً کپی کنید چون دوباره به شما نمایش داده نمی‌شود و اگر آن را در اختیار نداشته باشید مجبورید یا یک کلید تازه بسازید یا کلید موجود را regenerate کنید.

آیا کدهای شما به کامنت نیاز دارند؟

آیا کدهای شما به کامنت نیاز دارند؟

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

تست برای تست

تست برای تست

مساله برای تست کردن اجزای کد، Unit Test می‌نویسیم. اما برای تست کردن کد خود تست‌ها چه کنیم؟ این مساله چه زمانی ایجاد می‌شه؟ وقتی که تست‌ها رو بعد از نوشتن کد اصلی بخواهیم اضافه کنیم. در واقع اگر به روش‌هایی نظیر TDD استفاده کنیم و تست‌ها رو قبل از نوشتن کد اصلی نوشته باشیم احتمال مشکل در تست‌ها به شدت پایین میاد. اما وقتی یک Legacy Code داریم که احتمالاً تستی هم نداره، این مساله خیلی جدیه.

اعلام خاتمه و شکست پروژه Bugg.ir + درس‌هایی که آموختم

اعلام خاتمه و شکست پروژه Bugg.ir + درس‌هایی که آموختم

داستان چیه؟ چند سال پیش وقتی پروژه‌ها زیاد شد، پشتیبانی پروژه‌ها هم بیشتر شد. اون موقع ما کتابخانه‌ای به نام elmah رو به خود پروژه‌ها اضافه می‌کردیم. این کتابخانه که یک کتابخانه لاگر بود، مثل بقیه کتابخانه‌های مشابه می‌تونست لاگ‌ها را به خروجی‌های مختلفی بفرسته. ما دیتابیس رو انتخاب کرده بودیم. در واقع در کنار جداول اصلی پروژه در دیتابیس، یک جدول هم مخصوص نگهداری لاگ‌ها بود. علاوه بر این یک UI تحت وب هم برای لیست کردن لاگ‌ها به پروژه اضافه می‌شد.

چطور به کمک APM نرم‌افزارهامون رو بهتر کنیم؟

چطور به کمک APM نرم‌افزارهامون رو بهتر کنیم؟

داستان چیه؟ نرم‌افزار رو آماده می‌کنیم. براش تست می‌نویسیم، همه چیز مرتبه اما روی سرور اصلی کاربرها از عملکردش راضی نیستند. فکر می‌کنیم منابع سرور کم باشه، منابع رو بیشتر می‌کنیم اما نتیجه خیلی خیره‌کننده نیست. مشکل کجاست؟ ممکنه حدس زده باشید که کجای کد مشکل داره، اما چطور دقیق متوجه بشیم؟ اینجا لازم میشه به استفاده از APM فکر کنیم. به کمک APM ها می‌تونیم Performance نرم‌افزارمون رو مانیتور کنیم و میزان در دسترس بودن بخش‌های مختلف رو بسنجیم و کارهای دیگه‌ای که در مجموع به ما این امکان رو میده که ضعف‌های نرم‌افزارمون رو شناسایی و برطرف کنیم.

چالش کتاب ۲۰۱۹

چالش کتاب ۲۰۱۹

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

تجربه برنامه‌نویس یا DX چیست و چطور DX بهتری خلق کنیم؟

تجربه برنامه‌نویس یا DX چیست و چطور DX بهتری خلق کنیم؟

DX چیه و چرا مهمه؟ DX مخفف Developer Exprience همون تجربه کاربری یا UX است برای وقتی که کاربر نرم‌افزار ما یک برنامه‌نویس باشه. در واقع DX کمک می‌کنه برنامه‌نویس‌ها زندگی راحت‌تری داشته باشند و موقع کار با برنامه‌ها و API‌ها از کارشون لذت ببرند. ممکنه بخواهید بدونید چرا مهمه DX داشته باشیم؟ یعنی خب مگه برنامه‌نویس کارش این نیست که با نرم‌افزارها و API‌های مختلف کار کنه؟ چه لزومی داره این تجربه لذت‌بخش باشه؟ خب وقتی کتابخانه برنامه‌نویسی یا SDK یا API ما DX خوبی داشته باشه، برنامه‌نویس‌ها خوشحال‌ترن، بیشتر معرفیش می‌کنن و زمان طولانی‌تر از محصول نرم‌افزاری ما استفاده خواهند کرد

مرزبانی داده‌های دیجیتال

 مرزبانی داده‌های دیجیتال

داستان چیه؟ یک رسوایی در حوزه حریم شخصی کاربران فیسبوک افشا شده که طی اون شرکت کمبریج آنالیتیکا به اطلاعات بیش از ۵۰ میلیون کاربر فیسبوک دسترسی داشته و احتمالاً از این اطلاعات برای هدف‌گیری تبلیغات سیاسی مرتبط با انتخابات استفاده کرده. این شرکت در انتخابات ۲۰۱۶ با کمپین ترامپ همکاری داشته. این موضوع سر و صدای زیادی در دنیا به پا کرده و حتی هشتگ DeleteFacebook راه افتاده که کاربرها به حذف اکانت فیس‌بوک تشویق می‌کنه.

اینترنت بی‌طرف حق مسلم ماست

اینترنت بی‌طرف حق مسلم ماست

شاید شما یادتون نباشه اما من از اینترنت بدون فیلترینگ در ایران یادمه. چند سال دیگه شما می‌تونید به بچه‌های اون زمان بگید، اینترنت بی‌طرف رو یادتونه. چون داریم از دستش می‌دیم! داستان چیه؟ وزارت ارتباطات، ارائه‌کنندگان اینترنت رو مجبور کرده تا بر اساس تعرفه جدید خدمات بدهند و روی حجم ماهیانه رقابت کنند. شرکت‌ها هم ترافیک داخل کشور رو نصف قیمت ترافیک خارج کشور حساب می‌کنند و حتی بعضی برای ۵۰۰ سایت پربازدید داخلی ترافیک رو رایگان محاسبه می‌کنند و این نقض بی‌طرفی شبکه محسوب می‌شه.

کتابچه تست جوئل روی گیت‌بوک

کتابچه تست جوئل روی گیت‌بوک

گیت‌بوک: گیت‌هاب برای نویسندگان گرچه روی گیت‌هاب هم می‌تونین کتاب بنویسین و با مشارکت دیگران بهترش کنین، اما سایت دیگه‌ای رو پیدا کردم که مخصوص همین کار ایجاد شده: گیت‌بوک گیت‌بوک در واقع یک سایت ساز استاتیک محسوب می‌شه که می‌تونید ازش برای نوشتن کتاب، مستندات API و حتی Knowledge Base استفاده کنید. ظاهر پنل گیت‌بوک خیلی شبیه گیت‌هاب طراحی شده و مشابه گیت‌هاب می‌تونید به کمکش محتوای عمومی (اپن سورس) و خصوصی داشته باشید.

وقت صحبت درباره افسردگی و بی‌انگیزه بودن برنامه‌نویسان فرا رسیده

وقت صحبت درباره افسردگی و بی‌انگیزه بودن برنامه‌نویسان فرا رسیده

چند سال پیش مطلبی نوشتم درباره سلامت برنامه‌نویسان و به چند نکته که به سلامت جسمی برنامه‌نویس‌ها کمک می‌کنه اشاره کردم. اما شغل برنامه‌نویسی مثل هر شغل دیگه می‌تونه برای سلامت روان هم مخاطراتی داشته باشه. بیاید چند موردش رو با هم بررسی کنیم: افسردگی: یکی از شایع‌ترین مشکلات مرتبط با سلامت روان در روزگار ماست. لزوماً ربطی به شغل برنامه‌نویسی نداره و ممکنه برای هر کسی در هر شغلی پیش بیاد اما برنامه‌نویس‌ها به دلیل کار در شرایط دائمی معمولاً استرس‌زا، خیلی در معرض این آسیب هستند.

بدهی فنی چیه و چطور باید بازپرداختش کنیم؟

بدهی فنی چیه و چطور باید بازپرداختش کنیم؟

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

شرکت، خانواده نیست!

شرکت، خانواده نیست!

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

سلام دنیا

سلام دنیا

داستان چیه؟ یک وبلاگ دیگه است برای آدمی که از ۸۲ وبلاگ‌نویسی رو شروع کرده و در مقاطع مختلف ازش دور شده. این بار البته چند تا تفاوت داره: از صفر شروع نمی‌شه: کلی مطلب رو که پیشتر در وبلاگ آرایه منتشر کرده بودم رو به اینجا منتقل می‌کنم. چرا؟ چون فکر می‌کنم مطالب تخصصی که اونجا منتشر شدند برای مخاطبین این وبلاگ باشند یعنی شما که به نرم‌افزار علاقه دارید یا برنامه‌نویس هستین، نه مشتری‌های کسب و کار آرایه.