تبلیغات
NiceSoft - چگونه کد بهتری بنویسیم (روشهای بهینه و استاندارد کد نویسی) قسمت دوم

چگونه کد بهتری بنویسیم (روشهای بهینه و استاندارد کد نویسی) قسمت دوم

تاریخ:دوشنبه 1 آذر 1389-08:15 ق.ظ

ادامه قسمت اول

همه ما برنامه نویسان از دیدن کدهای استاندارد، زیبا و قابل درک لذت میبریم  تا حدی که شاید بتوان گفت نوشتن کدهای خوانا ، بهینه و استاندارد  یک هنر است . امید است آن را فرا گرفته و همواره تمرین کرده و بکار ببریم.


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

 

12-   هیچگاه نام دیسک سخت و مسیر اجرای برنامه و فایلها را بصورت فیزیکی در متن کد قرار ندهید و همیشه مسیرهای فیزیکی مورد نیاز  را با استفاده از توابع موجود در هر زبان برنامه سازی بصورت پویا بدست آورده و از آنها استفاده کنید.

 

13-   در هنگام شروع برنامه همواره یکسری کنترل جهت اطمینان از وجود و صحت فایلها و وابستگی های مورد نیاز برنامه انجام دهید. برای مثال وجود فایلهای مورد نیاز برنامه در مسیرهای مشخص خود و یا برقراری اتصال به بانک اطلاعاتی مورد نیاز برنامه را کنترل نمائید و در صورت بروز اشکال در این موارد قبل از شروع برنامه باید با ذکر یک پیام خطای گویا ، کاربر را در جریان مشکل و احیانا" نحوه برطرف کردن آن قرار دهید.

 

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

 

15-   پیامهای خطای سیستم باید بگونه ای باشند که علاوه بر گویایی کامل در مورد مسئله رخ داده ، کاربر را در حل آن یاری کنند. از نمایش پیامهای خطای نامشخص خوداری کنید برای مثال بجای استفاده از پیام خطای "خطا در برنامه" و یا       "یک خطا در برنامه رخ داده است" از پیامهای خطای گویا و مشخص کننده خطا استفاده نمائید.مثلا" در موردی که کاربر کلمه عبور خود را اشتباه وارد کرده و نمیتواند وارد سیستم شود با نمایش پیام  "خطا در ورود کلمه عبور ، لطفا" کلمه عبور صحیح را وارد کنید"  علاوه بر ارائه اطلاعات مفیدی در مورد خطای پیش آمده نحوه اصلاح آن نیز در اختیار کاربر قرار می گیرد.البته تا حد امکان سعی کنید  از متون کوتاه و گویا در نمایش خطاها استفاده شود و بهتر است که جهت کمک به امر بررسی دقیق تر خطاهای مهم بوجود آمده ، متن کامل آنها را در یک فایل تاریخچه (logfile) ثبت نمائیدو البته این نکته را نیز به کاربر اطلاع دهید که برای جزئیات بیشتر میتواند به آن فایل مراجعه کند.

 

16-   از توضیحات تنها در موارد مورد نیاز استفاده نمائید.برای هر خط کد و یا تعریف هر متغیر نیازی به نوشتن توضیحات نیست. هر چه کد برنامه بهتر و خواناتر نوشته شود احتیاج به توضیحات کمتری خواهد داشت.درصورتیکه نام متغیرها و متدها با معنی و گویا انتخاب شوند دیگر نیاز به توضیحات اضافه نخواهد بود.گرچه توضیحات کمتر کد را آراسته تر میکند ولی در هر جای برنامه که کد ناخوانا باشد حتما" باید توضیحات لازم قید گردند. برای مثال در صورتیکه در برنامه از یک منطق پیچیده استفاده می کنید ، حتما" توضیحات لازم در باره آن را قید کنید و یا در صورتیکه به یک متغیر مقادیر خاصی را نسبت      می دهید حتما" توضیحات لازم در مورد آن مقادیر و موارد کاربرد آنها را قید کنید. متن توضیحات باید از لحاظ املائی و گرامری کاملا" صحیح باشند.

 

17-   خطاء گردانی : هیچگاه وقوع یک خطا را مخفی نکنید چرا که بدین ترتیب اصلا" متوجه نمی شوید در طول اجرای برنامه خطائی رخ داده است. هنگام وقوع خطا حتما" آنرا در برنامه تشخیص داده و علاوه بر اعلام یک پیام کاملا" خوانا به کاربر تمام جزئیات آنرا ( از جمله تاریخ و ساعت وقوع خطا ، نام روتین و یا کلاسی که خطا در آن اتفاق افتاده و شرح کامل خطا ) در یک فایل سابقه ذخیره نمائید.همواره  به جای خطاهای عمومی ، خطاهای خاص را بررسی کنید.

کد خوب‌:

 

void ReadFromFile ( string fileName )

 {

  try

  {

   // read from file.

  }

  catch (FileIOException ex)

  {

   // log error.

   //  re-throw exception depending on your case.

   throw;

  }

 }

 

کد بد:

void ReadFromFile ( string fileName )

{

  try

  {

    // read from file.

  }

  catch (Exception ex)

  {

    // Catching general exception is bad... we will never know whether it

    // was a file error or some other error.

 

    // Here you are hiding an exception.

    // In this case no one will ever know that an exception happened.

    return "";

  }

 

}

توجه! هنگام پیاده سازی از خطاگردانی عمومی اجتناب کنید و اجازه بدهید که برنامه با اشکالات مختلف برخورد کند تا بتوان آنها را برطرف نمود .در تمام متدها از خطا گردانی استفاده نکنید تنها در جاهای که احتمال ایجاد خطا وجود دارد این کار را انجام دهید. برای مثال هنگام نوشتن در یک فایل تنها  FileIOException را کنترل کنید.

 

18-   متغیرها را در جایی که مورد استفاده قرار می گیرند تعریف کنید. بدین ترتیب نه تنها کد برنامه خواناتر میشود بلکه تغییرات و اصلاح برنامه نیز ساده تر انجام می گیرند.برای مثال هنگام اصلاح کد برنامه درصورتیکه بخواهیم قسمتی از کد برنامه را حذف کنیم ، باید تمام متغیرهای استفاده شده در این قسمت کد که در جای دیگری مورد استفاده نیستند را از بالای کد حذف نمائیم که این کار قطعا" از اینکه متغیرهای تعریفی در همانجا را همراه با کد مورد نظر حذف کنیم کار و زمان بیشتری را صرف خواهد نمود.

مثال بد :

private void button1_Click(object sender, System.EventArgs e)

{

  int  intRoutesPerDay;

  int  intRoutesToday ;

  double dblWorkLoadToday;

 

  intRoutesPerDay = 2;

  //.

  //....many lines of code...

  //.

  intRoutesToday = 5;

 

}

 

 مثال خوب :

private void button1_Click(object sender, System.EventArgs e)

{

  int  intRoutesPerDay;

  intRoutesPerDay = 2;

  //.

  //....many lines of code...

  //.

  int  intRoutesToday ;

  intRoutesToday = 5;

 

}


 





How do I stretch my Achilles tendon?
جمعه 3 شهریور 1396 10:16 ق.ظ
I am really pleased to read this website posts which contains plenty
of helpful facts, thanks for providing these data.
Foot Complaints
سه شنبه 17 مرداد 1396 07:08 ق.ظ
Pretty! This was a really wonderful post. Thank you for providing this information.
manicure
سه شنبه 22 فروردین 1396 06:53 ب.ظ
you are in reality a just right webmaster. The web site loading velocity
is amazing. It sort of feels that you are doing any distinctive trick.

Also, The contents are masterpiece. you've done a magnificent
process in this topic!
احمد
سه شنبه 2 آذر 1389 07:29 ق.ظ
سلام جالب بود مرسی
خشایار نیک نفس
دوشنبه 1 آذر 1389 09:58 ب.ظ
با تشکر ، درباره استثناء گردانی و مدیریت خطا نکات و مسائل زیادی مطرح است که اگر فرصتی شد سعی می کنم این موضوع را هم مطرح و از نظر دوستان گرامی در این مورد هم استفاده کنم
علی اقدم
دوشنبه 1 آذر 1389 06:28 ب.ظ
نکات خوبی بود،راجب خطا یابی بهتره سیستمی طراحی کنیم تا در هنگام بروز خطا از کاربر اجازه ارسال خطا رو به مرکز برای پیگیری بخواهد (حالا به هر صورت)
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر