Beautiful code چیست - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

Beautiful code چیست

+1 امتیاز
سلام

Beautiful code چیست؟و یک کد باید چه شرایطی  داشته باشه تا به ان کد زیبا گفته شود؟

و اگر کتابی در این زمینه وجود داره لطفا معرفی کنین
سوال شده اردیبهشت 18, 1393  بوسیله ی moh3en (امتیاز 209)   15 28 40
منظورت نوشتن کده یا الگوریتم؟
بیشتر نوشتن کد

2 پاسخ

+1 امتیاز
اینی که میگین خیلی سلیقه ای  هست

زیبا ترین کد کدی که به بهترین شکل اجرا بشه و هر زمانی که خودتون ازش می خواین استفاده کنید بفمین کدتون رو

با کمترین مقدار کد

بهترین خروجی
پاسخ داده شده خرداد 31, 1393 بوسیله ی AmirHossein Elahi (امتیاز 116)   1 3
+2 امتیاز
سلام دوست عزیز

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

گاهی اوقات کارایی باید قربانی وضوح کد بشه و یا اینکه  گاهی اوقات وضوح کد باید قربانی کارایی بشه کدی زیباست که این ریزه کاریها رو دربر داشته باشه و زمانی که کارایی بالایی نیاز نباشه کدمون رو واضح بنویسیم و زمانی که نیاز به وضوح خیلی بالا نیست کدمون رو قدرتمند تر کنیم در این صورت با ترکیب این دو حالت بهترین کد رو خواهیم داشت.

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

برای وضوح کد:

فاصله گذاری مناسب میتونه خیلی در وضوح کد کمک کنه.

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

 جدا سازی قسمت مختلف کد بیشتر از حد معمول (اندازه دو سه تا enter البته بستگی به کد داره) میتونه به وضوح کد کمک کنه.

 در نظر گرفتن نام مناسب برای کدهاتون، سری بعد که می خواهین ازش استفاده کنین یا حتی کس دیگری می خواد استفاده کنه بدونه که این کد برای چه منظوری نوشته شده.

و نکات دیگری هم برای افزایش وضوح کد وجود داره.

خود کد:

 برای مثال حلقه for حلقه ی با تکرار معین و قابل تشخیص هستش اما while حلقه ی  با تکرار نامعین و غیر قابل تشخیص هستش، گاهی اوقات میشه از هر دو نوع  برای تشکیل یک حلقه استفاده کرد اما به نظر من این بزرگترین اشتباه میتونه باشه  که از این حلقه ها بجای یکدیگر استفاده بشه!! فرض کنید که یک برنامه 3000 خطی داریم و در این سه هزار خط 100 حلقه داریم و میخواهیم این برنامه رو تحلیل کنیم و دوباره ازش استفاده کنیم،  اگر این مسئاله رعایت نشده باشه باید یکی یکی نگاه کنیم ببینیم کدوم  حلقه با تکرار معین و کدام حلقه با تکرار نامعین هستش، این یعنی صرف بزرگترین هزینه،  یعنی زمان که برای ما برنامه نویسا میتونه با ارزشترین  باشه.

 هنگام نوشتن کد از توابع و کلاس ها استفاده کنیم و از تکرار کد به شدت پرهیز کنیم.

 استفاده از توابع میتونه خطا یابی برنامه رو راحت تر کنه و میتونیم به راحتی در برنامه های متفاوتی ازشون استفاده کنیم و به شدت از تکرار کد جلوگیری می کنه و درکم کردن صرف زمان بسیار کمک می کنه .

دقت کردن در مورد میزان فضای در نظر گرفته شده در کدهامون که به اندازه باشه و حافظه رو اشغال نکنه برای مثال وقتی می خواهیم سن یک شخص رو ذخیره کنیم چرا int بگیرم و short int نگیریم!!! که بی جهت حافظه اشغال نشه .

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

 در کلاسها توابعی که به همدیگه وابسته هستن رو از درون یکدیگر فراخوانی کنیم .

 داده های خصوصیمون رو به شدت از دید دیگر کاربران مخفی نگه داریم.  

و نکات دیگری هم وجود داره.

افزایش سرعت اجرای کد:

برای مثال در شرط if else  هر شرطی رو که احتمال صحیح بودنش بیشتره در ابتدا قرار بدیم تا شرطهای کمتری بررسی بشن و در نتیجه سرعت اجرای کدمون افزایش پیدا کنه.

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

و نکات دیگری هم برای افزایش سرعت کد وجود داره.

قدرت کد:

 استفاده از توابع کتابخانه ای که بسیار قدرتمند هستند و سرعت بالایی دارند.  

و بسیاری نکات دیگه در باره افزایش قدرت کد وجود داره.

اینها همه باهم تشکیل Beautiful code رو میدن و هر قسمی اهمیت خاص خودش رو داره و یک ترکیب هستند.

و در مورد کتاب عرض کنم که؛ یه نگاهی به کتاب دایتل بندازید نکته های جالبی داره شاید کارتون رو راه  انداخت.

امیدوارم که تونسته باشم در حد خودم کمکتون کنم.
پاسخ داده شده تیر 5, 1393 بوسیله ی امیدوار (امتیاز 872)   21 63 76
ویرایش شده تیر 14, 1393 بوسیله ی امیدوار
البته این نوع کدها فراتر از Beautiful code هستن
...