استفاده از نوع داده Boolean

چند روز پیش یک سوال تو فروم برنامه نویس مطرح شد که برای جنسیت از یک ComboBox استفاده شده  و حالا متغیر مربوط به اون را در کلاس از چه نوعی باید تعریف کرد؟
اکثر جواب ها این بود که از نوع داده Boolean باید استفاده بشه.
من دوحالت را برای سوال بالا در نظر می گیرم:
حالت اول به این صورت در نظر می گیرم که در برنامه ما این سوال وجود داشته باشه که فرد مورد نظر ما مذکر (یا مونث) هست یا خیر؟
همونطور که از سوال پیداست جواب به صورت بله و خیر هست و در این صورت میشه از نوع داده Boolean استفاده کرد و حرفی توش نیست.
اما حالت دوم را با این سوال مطرح می کنم که جنسیت فرد مورد نظر چیست؟
باز هم در اینجا میشه از نوع داده Boolean استفاده کرد، اما شما در همه جای برنامه باید چک کنید و هم به خاطر داشته باشید که مثلا مقدار True برای مذکر ذکر شده (یا مونث). در ضمن از خوانایی کدتون هم  کم میشه.
البته نگاه ما هنوز به حالتی هست که جنسیت فقط دو حالت داشته باشه! برای مثال چند ماه پیش قرار بود بنده یک قطعه کدی برای برنامه یکی از درمانگاه ها بنویسم که در دستورالعملش  برای جنسیت فرد حالت های زیر در نظر گرفته شده بود:
1- مرد
2- زن
3- دوجنسی (نامشخص) //این نامشخص رو خود من هم نفهمیدم اینجا چیکار میکنه :)
4- تعیین نشده
خوب برای حالت بالا چیکار کنیم، یا اگر در آینده به حالت بالا نیاز شد چه کاری باید انجام بشه؟ آیا میشه باز هم از Boolean استفاده کرد؟
 از نظر بنده نوع داده Enum برای تعیین نوع جنسیت و یا موارد مشابه خیلی بهتر هست تا استفاده از Boolean . چون هم خوانایی کد را افزایش میده و هم کار با اون راحته. در ضمن نیازنیست چیزی رو به خاطر بسپریم. و نکته آخر اینکه اگر در آینده مجبور شدیم که از حالت چهار جنسیتی استفاده کنیم، خیلی راحت میتونیم جنسیت ها رو به برنامه اضافه کنیم.

 پ.ن
چند وقت پیش آقای Nick Hodges مطلبی را در وبلاگشون نوشتن با عنوان How Not To Code #2: Don’t Use Boolean Method Parameters که درباره پارامترهای Boolean برای توابع صحبت می کنن و توضیح میدن که چرا نباید از نوع Boolean برا پارامتر های تابع استفاده کنیم. (مطالعه این مطلب رو بهتون پیشنهاد می کنم)

Wiki is so important!

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



شرکت ها به راحتی میتونن اطلاعاتی مثل اطلاعات زیر رو تو ویکی قرار بدن:

- نرم افزار های کاربردی با آدرس اون ها
- درایو های مپ شده در شبکه
- لیست راهنماها
- قوانین و مقررات کاری
- FAQ
- قرار ملاقات ها
- آدرس پرتال های داخلی
- ساعت و تاریخ Meeting هایی که در گروه های برنامه نویسی انجام میشه (مثل اسکرام) یا میتینگ های مدیران
- مشخصات مربوط به گروه های مختلف برنامه نویسی (یا بقیه گروه های کاری)

حتی برنامه نویس ها هم میتونن از اون ها استفاده کنن:

- لیست نرم افزار ها و کامپوننت هایی که ساختن
- اطلاعاتی مثل تاریخ ارائه نسخه Alpha و Beta  برای هر نرم افزار
- آدرس برنامه ها در Version Control


پ.ن:در حال حاضر خودم دارم روی TWiki که Open Source هم هست کار می کنم تا روی سایت قرار بدم.
Ahmad.

جستجو