عنوان مقاله :

کد نویسی پاک

دسته بندی :
تاریخ انتشار : ۰۱ بهمن ۱۳۹۴
گردآوری و تالیف : حسام موسوی

کارمو با طراحی گرافیکی شروع کردم و حدود 2 سال طراحی گرافیکی میکردم بعد به طراحی وب علاقه پیدا کردم و همراه طراحی وب عاشق کدنویسی شدم به PHP | sass | css | Jquery | javaScript تسلط کامل دارم . در بین فریم ورک های PHP اول با CodeIgniter کار کردم اما به laravel علاقه مند شدم و دارم بطور حرفه ای دنبالش میکنم . امید من اینکه بتونم کاربرهای ایرانی رو به دنیای بیرون متصل کنم تا بتونن از فناوری های تازه آگاهی داشته باشن

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

 

کد نویسی پاک 

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

کامنت گذاری کنید

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

اسم گذاری

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

شی گرایی

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

تکه تکه کردن برنامه اتون

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

استفاده از الگوهای طراحی

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

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

دیدگاه های مخاطبین

ثبت دیدگاه شما
  • علی

    سلام. خیلی ممنون بابت این پست
    راسی در مورد design pattern ها هم بنویسین

    • admin

      سلام حتما

پیشنهاد میکنیم این مطالب رو هم مطالعه کنید :