اطلاعات پست

  • مسعود سعادتی

    مدرس دوره

    مسعود سعادتی

    برنامه نویس و طراح وب سایت

  • تاریخ شروع : یکشنبه 14 اردیبهشت 1399
  • تاریخ به روز رسانی : جمعه 9 خرداد 1399
چرا باید تمیز و اصولی کد نویسی کنیم

چرا باید تمیز و اصولی کد نویسی کنیم

یکی از بزرگترین دغدغه های هر برنامه نویس در سطح حرفه ای این است که چگونه کد تمیز و اصولی بنویسد و هر چقدر سطح پروژه ها بالا تر باشد این دغدغه نیز بیشتر نمایان می شود


شاید اولین سوال در این زمینه این باشد که ضرورت کدنویسی تمیز چیست و اصلا چرا ما به عنوان برنامه نویس باید تلاش کنیم و به دنبال نوشتن کدهای تمیز و مرتب باشیم. یا اینکه کد تمیز و مرتب چیست و چه ویژگی ها و مزایایی دارد.

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

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

 

  • تحلیل و طراحی
  • بخش بندی وظایف پروژه
  • تعیین وابستگی های بخش های پروژه
  • طراحی و ساخت بخش ها از پایین ترین سطح

 

مزایای کد نویسی تمیز و مبتنی بر معماری

  1. قابلیت استفاده مجدد از کد ها
  2. امکان اعمال تغییرات در کمترین زمان
  3. کمتر بودن حجم کد نویسی
  4. سرعت بالا در پردازش عملیات
  5. وابستگی های تعریف شده و مشخص
  6. قابلیت ایرادیابی و دیباگ کردن آسان
  7. صریح و مشخص بودن بخش های پروژه
  8. توسعه پذیری آسان

کد نویسی تمیز و اصولی مزیت های زیادی دارد که مهمترین آنها همان توسعه پذیری آسان و سریع پروژه است، به این دلیل مهم که هر پروژه ای ناگزیر به توسعه نیاز دارد و دقیقا زمان توسعه دادن پروژه، اهمیت توسعه پذیر بودن به چشم میخورد.

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

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

نظرات کاربران