خانه / برنامه نویسی / کد با کیفیت چیست وآشنایی با نحوه نوشتن کد با کیفیت
کد نویسی
کد نویسی
1 ستاره2 ستاره3 ستاره4 ستاره5 ستاره (1 رای, میانگین: 5,00 از 5)
Loading...

کد با کیفیت چیست وآشنایی با نحوه نوشتن کد با کیفیت

بسیاری از افراد اطلاعاتی درباره کد با کیفیت ندارند، در این مطلب قصد داریم نکاتی بسیار مهم درباره کد با کیفیت به شما ارائه دهیم تا بیشتر با آن آشنا شوید.


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

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

چرا باید بتوانید نرم افزارهای با کیفیت و کد با کیفیت بنویسید؟

این مورد درباره کد با کیفیت در کتاب many, many times  نوشته شده است. این کتاب توصیه من به شماست یکی از بهترین کتابها درباره کد با کیفیت است که بعداً در این مقاله به آن می‌پردازیم. این کتاب جزئیات بیشتری را در اختیار ما قرار می‌دهد تا بتوانند در این پست توضیحاتی درباره آن بدهم.

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

قسمت هایی که کد آنها را ننوشته اید مهمتر از قسمت های هستند که کد آن ها را نوشته اید

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

مقاله مرتبط : سایت‌های مرتبط با چالش‌های کدنویسی

استفاده از فریم ورک ها و مزایای زیادی برای نوشتن کد با کیفیت دارد اما پیچیدگی که به کد شما اضافه می‌کند ممکن است خساراتی به کد شما وارد کند.

یک هدف تعیین کنید

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

درباره اینکه چگونه هدف شما بزرگتر می شود فکر کنید، شما می‌توانید یک تونل بسیار بزرگ حفر کنید ولی اگر این تونل در یک جای بدن قرار داشته باشد گودال بزرگی بیش نیست.

یک شخصیت را مورد هدف قرار دهید

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

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

با یوزرهای کد با کیفیت خود، همکاران افراد و افراد تصادفی در خیابان صحبت کنید و آنچه را که با هم فکر می‌کنید را به آنها نمایش دهید. این در واقع یک راه آسان برای فهمیدن اعتقادات کاربران و همکاران شما درباره کد باکیفیت شما می باشد.

تصمیم‌گیری‌ها گاهی بر این مبنا است که توسعه دهندگان به چه چیزی فکر می کنند؟ نه اینکه کاربران به چه چیزی فکر می کنند، که این دو کاملا متفاوت می باشند.

نکاتی درباره این بخش از کد با کیفیت

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

بیشتر بخوانید : ۵ دلیل برای یادگیری کدنویسی

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

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

ساختار نرم افزار خود را تا جای ممکن جزئی‌تر بیان کنید

Agile همه ما را ناکارآمد کرده است، این یک مفهوم فوق العاده است اما شرکت های بزرگ آن را خراب کردند. واترفال یک روش پیشنهادی برای توسعه نرم‌افزار در دهه ۱۹۹۰ بود که منجر به این امر شد که تا سال ها نیازمندی های زیادی برای آن تعریف شود.

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

مدیریت به این سمت رفت که دوره های دو روزه Agile. ” دیگر به نیازمندیها نیازی ندارید به طراحی نیازی ندارید فقط و فقط Agile.”

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

تست کنید، تست کنید و بیشتر تست کنید

من هیچ چیزی را قبل از آنکه آن را امتحان کنم باور نمیکنم. همه چیز را تست کنید تا زمانی که متوجه شوید که چرا باید تست کنید یا چرا نباید تست کنید.

مقاله مرتبط : ایجاد یک فرآیند بهتر برای بررسی و تحلیل کد

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

هرچه بررسی هایتان بیشتر باشد بهتر است

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

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

کد با کیفیت قابل نگهداری است

خانه بودن و قابل نگهداری بودن عملکرد را بهبود میدهد،  معمولا بهترین روش ها تمام سناریوها را پوشش نمی دهد بلکه این روش ها معمولاً پیشنهاداتی به شما می کند تا در هر شرایط بتوانید به خوبی عمل کنید. قابلیت نگهداری را همواره در ذهن داشته باشید( آیا می توانید کتاب های عمومی بنویسید که در هر جای استفاده شوند بدون اینکه تاثیر بدی داشته باشند؟) بهترین سلاح شما در اینجا داشتن احساس مشترک است و این حس مشترک با سایر افرادی که حس مشترک دارند جفت می شود.

چطور می توانم کیفیت نرم افزار آن را اندازه گیری کنم؟

حال که فهمیدیم چه چیزی درون یک نرم افزار با کیفیت در حال انجام است ما می توانیم آن را اندازه گیری کنیم.  اندازه‌گیری کیفیت یک نرم افزار یا همان کد با کیفیت را می توان به دو بخش تقسیم کرد: ۱) آیا راهی هست که آنچه که می خواهم را انجام دهد؟ ۲)  آیا این راه قابل نگهداری است؟

اندازه گیری اینکه راه حل شما تا چه حد به هدفتان رسیده است؟

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

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

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

اندازه گیری کیفیت کد شما

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

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

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

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

نکاتی مهم درباره این بخش از توضیحات مربوط به کد با کیفیت

ممکن است شما فرض کنید که پروژه شما مصون از اشتباه است و بهتر است که بعضی از کدها را نوشته و در پایان این ادغام خطی را سازماندهی کنید، اما بعدها متوجه خواهید شد که این کار برای نوشتن کد با کیفیت اشتباه است.

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

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

–          کد زن

–          استفاده خودکار از unit tests، integrated tests و end-to-end tests

–          تست های امنیتی

–          تحلیل کدهای استاتیک

–          تست های دسترسی

–          تست های عملکردی

–          Formatting

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

کد جایگزین

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

کد جایگزین چیست؟

من فکر کنم کتاب Pragmatic Programmer این تعریف را به بهترین شکل خلاصه کرده است: ” کد جایگزین هر کدی است که قبلا نوشته شده باشد.” البته ممکن است این یک تعریف رسمی نباشد، اما این تعریفی است که زمانی که عبارت کد جایگزین در میان برنامه نویسان استفاده می شود اکثر آن ها این را متوجه می شوند.

افزایش کیفیت کد با کیفیت با استفاده از کد جایگزین

اگر توابع آن از زمانی که طراحی شده اند هیچ پیشرفتی که مورد نیاز بوده است را نداشته اند سریعا آن را ترک کنید، اگر هیچ ارزشی به آن اضافه نشده است طراحی دوباره آن تنها آن را بدتر خواهد کرد. اگر پیشرفت مورد نیاز است ابتدا بررسی کنید که تمامی توابع نیاز به بهبود پیدا کردن دارند یا خیر؟ کتاب Refactoring Improving the Design of Existing Code نوشته شده توسط Martin Fowler بهترین راه برای تعامل با یک سیستم جایگزین را بیان کرده است.

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

با استفاده از GraphQL این رویکرد برای دسترسی به آن بسیار آسان تر می شود که با استفاده از یک اینترفیس جایگزین در برنامه نویسی اپلیکیشن ها جمع آوری شده است. کد با کیفیت شما می‌تواند در این پایگاه رفته‌رفته قابل نگهداری  شود، بر اساس تجربه من این رویکرد حتی در پروژه های ساده هم بهتر از بازنویسی دوباره تمام کد با کیفیت می باشد.

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

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

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

کد با کیفیت یک گردش است نه یک مقصد

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

منبع : سایت برنامه نویسان

عالی بود(1)جالب نیست!(0)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

چهار × چهار =