در مورد اینکه چطور بتونیم بهتر کد نویسی انجام بدیم یا بعبارتی کد نویسی تمیز داشته باشیم:
·تعاريف، مترادف ها و مخفف ها
1.Pascal Casing
روشی برای نام گذاری است که در آن نخستین حرف کلمه با حرف بزرگ و بقیه حروف با حروف کوچک نوشته می شود. همچنین وقتی نام از چند کلمه تشکیل شده باشد، حرف آغاز هر کلمه با حرف بزرگ و بقیه حروف با حروف کوچک نوشته می شود، مثال : AccountNumber
2.Camel Casing
روشی برای نام گذاری است که در آن نخستین حرف کلمه با حرف کوچک و فقط حرف اول هر یک از کلمات بعدی با حروف بزرگ و بقیه حروف نیز با حروف کوچک نوشته می شود، مثال accountNumber .
·برای نشان دادن سطوح تو در تو در کدنویسی، از تورفتگی استفاده کنید.
·میزان تورفتگی توضیحات (Comments) به همان اندازه تو رفتگی کدی باشد که برای آن توضیحات می نویسید. مثال :
cons t int DefaultSize=100;
public void CalculatePayment();
//This method calculates monthly payment for a person
·همه متغیرهای member باید در ابتدای کلاس تعریف شوند و یک خط خالی آنها را از property ها و متدها جدا کند. مثال :
·هنگام استفاده از partial types و تخصیص هر قسمت به یک فایل، نام هر فایل را پس از بخش منطقی ذکر کنید. مثال:
·همیشه در هر خط جدید یک } بگذارید.
·برای متدهای بی نام مربوط به delegate ، بدنه متد را که از نظر تو رفتگی با delegate هم سطح کنید. مثال :
·در انتهای متدهای بی نام بدون پارامتر، () را بگذارید، مگر آن که متد بی نام در delegate استفاده شود. مثال :
نکات عملی کد نويسی
1.از قراردادن چند کلاس در یک فایل پرهیز کنید.
2.از قراردادن چندین namespace در یک فایل پرهیز کنید و هر فایل فقط مربوط به یک namespace باشد.
3.هر فایل (صرف نظر از کد تولید شده توسط ماشین)، بیش از 500 خط نداشته باشد.
4.هر متد بیش از 200 خط نداشته باشد.
5.هر متد بیش از 5 آرگومان نداشته باشد، در صورت نیاز به بیش از این تعداد، از structure برای رد و بدل کردن اطلاعات استفاده کنید.
6.هر خط بیش از 120 کاراکتر نباشد.
7. هر جا که ممکن است، برای جلوگیری از تکرار بخشهایی که قبلا تهیه شده اند، از کلاسهای partial استفاده کنید.
8.از توضیح واضحات بپرهیزید، کد باید خود واضح باشد. کد خوب با اسامی قابل فهم برای متغیرها و متدها، نیازی به توضیح ندارد. فقط فرضهای عملیاتی و هدف کلی الگوریتمها و مانند آنها را توضیح دهید.
9.از حکم const فقط برای ثابتهای طبیعی مانند تعداد روزهای هفته استفاده کنید.
10.از به کاربردن const برای متغیرهای فقط خواندنی پرهیز کنید، برای این گونه موارد از حکم readonly استفاده کنید. مثال:
11.هر تخصیصی را آزاد کنید. معمولا در هر پنج خط یک آزادسازی تخصیص دیده می شود. مثال:
12.فقط Exception هایی را بگیرید که برای انها Handle نوشته اید.
13.در عبارت catch همیشه exception اصلی یا exception ای را ایجاد (throw) کنید که بر مبنای exception اصلی ساخته شده است تا بتوان محل خطای اصلی را در stack پیدا کرد. مثال:
14.از برگرداندن کدهای خطا به عنوان مقدار برگشتی متد، پرهیز کنید.
15.از تعریف کلاسهای exception خاص خودتان پرهیز کنید.
16.در یک assembly چند Main() نداشته باشید.
17.فقط انواعی (type هایی) را که زیاد استفاده دارند، از نوع public و بقیه را internal تعریف کنید.
18.از اختصاص اعداد به enum ها پرهیز کنید، مگر آن که اعداد توان دو باشند. مثال:
19.از اختصاص نوع (type) به enum ها پرهیز کنید. مثال:
20.متغیرهای member را public یا protected تعریف نکنید، به جای آن از property استفاده کنید
21.در وراثت به جای new از override استفاده کنید.
22.همیشه در کلاسهای non-sealed (کلاسهایی که می توانند، فرزند داشته باشند)، برای متدهای public و protected از virtual استفاده کنید.
23.از کد نا امن (unsafe) (کدی که خارج از محیط .Net نوشته شده است) ، استفاده نکنید، مگر برای عملیات بینابینی.
24.از casting صریح پرهیز کنید و از اپراتور as برای casting محتاطانه به نوع دلخواه استفاده کنید. مثال :
25.همیشه قبل از فراخوانی delegate ، null نبودن آن را بررسی کنید.
26.همیشه از interface استفاده کنید.
27.نسبت متدها به property ها در کلاسها و interface ها باید دو به یک باشد.
28.ترجیحا از پیاده سازی صریح interface استفاده کنید.
29.هرگز رشته هایی (strings) را که به کاربر نشان داده می شود، در کد نیاورید و رشته ها را در resource قرار دهید.
30.هرگز رشته هایی (strings) مانند Connection String را که ممکن است با توجه به محل نصب تغییر کند ، در کد نیاورید.
31.از String.Empty به جای " " استفاده کنید. مثال :
32.به هنگام ایجاد یک رشته طولانی از StringBuilder استفاده کنید نه string.
33.از ایجاد متد برای structure ها پرهیز کنید:
از constructor های پارامتردار استفاده کنید.
از overload کردن اپراتورها استفاده کنید.
34.از application logging و trace استفاده کنید.
35.هرگز از this استفاده نکنید، مگر آنکه بخواهید constructor دیگری را در یک constructor فراخوانی کنید. مثال :
1.36.هرگز از base برای دستیابی به اعضای کلاس پایه استفاده نکنید، مگر آنکه عضوی با همان نام در کلاس فرزند داشته باشید و بخواهید جلوی اشتباه را بگیرید یا هنگامی که بخواهید constructor کلاس پایه را فراخوانی کنید. مثال :
موضوعات مشابه:
علاقه مندی ها (Bookmarks)