Kaveh Rezaei Shiraz

Software Engineer

راه‌های ساده برای داشتن کد تمیز | Kaveh Rezaei Shiraz

راه‌های ساده برای داشتن کد تمیز

September 16, 2020

توسعه نرم افزار یک فرایند پیچیده است و برنامه‌نویسی هسته اصلی فرایند توسعه است. پیچیدگی نرم افزار ارتباط مستقیمی با کیفیت کد دارد. اگر فهم و تغییر کد آسان باشد، مطمئناً نرم افزار خوبی است.

هر کدی کار می کند ، حتی کد بد. تفاوت کد خوب و بد در توانایی انجام کار با کارآیی بیشتر است.

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

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

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

امروز ، من قصد دارم برخی از نکته‌های مرتبط با نوشتن کد تمیز را به اشتراک بگذارم. این نکته‌ها می‌تواند به شما برای داشتن کد تمیز و حرفه‌ای کمک کند.

1- برای آدم‌های برنامه نویسی کنید و نه ماشین‌ها.

بسیاری از برنامه نویسان خوب وجود دارند که می توانند ویژگی (functionalities) های بسیار پیچیده را در کسری از زمان بنویسند. اما مشکل اینجاست که بسیاری از آن‌ها فراموش می‌کنند که برای ماشین ها برنامه‌نویسی نمی‌کنند.

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

شما می توانید این کار را با دادن کلاس ، روش و نام متغیر مناسب شروع کنید. آنها باید ساده و معنی دار باشند. هر نامی را که در کد خود ذکر می کنید ، باید سه هدف را برآورده کند: چه کاری انجام می دهد ، چرا وجود دارد و چگونه استفاده می شود.

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

2- کد شما آچار فرانسه نیست

بسیاری از برنامه نویسان تازه کار اغلب ناآگاهانه کدهای پیچیده ای می نویسند. آنها مسئولیتهای زیادی را در یک کلاس تعریف می کنند ، که این موضوع نگهداری و توسعه کد را پیچیده و سخت می‌کند.

با یک مثال، حرف خود را شرح می‌دهم. فرض کنید ما یک کلاس Candidate داریم که دارای دو مسئولیت است ، همانطور که در زیر آمده:

  public class Candidate
  {
      public int Candidate_Id { get; set; }
      public string Candidate_Name { get; set; }

     public bool InsertIntoCandidateTable(Candidate candidate)
      {
          // Insert into candidate table.
          return true;
      }        public void GenerateReport(Candidate candidate)
      {
          // Report generation with Candidate data.
      }
  }

در اینجا ، کلاس Candidate دو مسئولیت را مدیریت می کند: درج داده ها در جدول و تولید برخی گزارش ها برای داوطلب. حال، فرض کنید که در حال حاضر ، تولید گزارش در قالب اکسل اتفاق می افتد. اگر الزامی برای قالب PDF وجود داشته باشد ، آن نیاز به تغییر در کلاس Candidate دارد.

طبق اصول SOLID (سالید یک سرواژه یادیار است که به تک وظیفه‌ای، باز ـ بسته، جایگزینی لیسکُوْ، تجزیهٔ رابط، وارونگیِ وابستگی اشاره دارد)، قانون اول می گوید یک کلاس باید یک مسئولیت واحد را بپذیرد ، و یک دلیل برای تغییر آن کلاس وجود دارد. کلاس Candidate این اصل را نقض می کند. همانطور که در کد زیر ذکر شده است ، ما همیشه باید یک مسئولیت واحد را به یک کلاس اختصاص دهیم:

  public class CandidateReportGeneration
    {    
        public void GenerateReport(Candidate candidate)
        {
            // Report generation with Candidate data.
        }
    }

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

3- کامنت گذاری

مهم نیست که کد خود را چقدر ساده نوشته‌اید، دیگران برای فهم آن باید زمان بگذارند، آیا زمانی را بخاطر می آورید که پس از چند ماه به کد خود مراجعه کرده و برای فهم آن با نگاه اول تلاش کرده‌اید؟

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

4- قالب بندی کد مهم است

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

چندین ابزار تجزیه و تحلیل کد استاتیک مانند StyleCop ، FxCop ، Resharper ، SonarQube و بسیاری دیگر وجود دارد. شما می توانید یکی را به عنوان زبان برنامه نویسی خود انتخاب کنید. این ابزارها نه تنها به شما در قالب بندی کمک می کنند بلکه بینش های دیگری نیز ارائه می دهند که می توانند کدگذاری پاک را برای شما آسان کنند.

5- ریفاکتور کردن کد‌های قدیمی

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

یکی از دلایل معتبر این امر می تواند محدودیت زبان برنامه نویسی باشد. اگر کسی با استفاده از پایتون در سال 2007 بهینه ترین و کارآمدترین کد را بنویسد ، پس از انتشار نسخه 3 زبان، تکنیک ها یا توابع داخلی بهتری برای انجام یکسری عملیات با کارآیی بیشتر وجود داشته باشد. این باعث می شود کد قدیمی شما ناکارآمد باشد و نیاز به بازسازی دارد.

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

چکیده

به طور خلاصه ، با در نظر گرفتن ویژگی های زیر ، هر برنامه نویس می تواند کد تمیز بنویسد.

1- اسامی معنی دار به اشیا بگذارید. به خاطر داشته باشید که در حال نوشتن کدی هستید که توسط دیگران توسعه داده خواهد شد.

2- یک کلاس باید مسئولیت واحدی داشته باشد. برای تغییر کلاس نباید بیش از یک دلیل وجود داشته باشد.

3- کامنت‌ها برای کد شما بسیار مهم هستند. با آنها توسعه دهندگان زمان زیادی را صرفه جویی می کنند.

4- قالب بندی کد از جنبه های مهم کد تمیز است زیرا خوانایی کد را بهبود می بخشد.

5- هر چند وقت یک بار کد قدیمی را ریفکتور کنید. این برنامه شما را سریعتر و کارآمدتر می کند.

تمام برنامه نویسان باید هنگام نوشتن کد این نکات را در ذهن داشته باشند. کد تمیز کمی بیشتر زمان می برد، اما باعث صرفه جویی در زمان کلی آزمایش ، رفع اشکال و نگهداری می شود.