سلام به همه، انجمن JavaRush! 10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 1 امروز در مورد کیفیت کد صحبت خواهیم کرد. بله بله دوستان عزیز هیچکس کامل نیست همه روزی به این درک می رسند که کد می تواند بهتر باشد... اما در این شرایط چه باید کرد؟ حداقل شروع به تحقیق در مورد این موضوع کنید. از آنجایی که شما اینجا هستید، به این معنی است که موضوع برای شما جالب است، پس بیایید برویم. امروز روش هایی را شرح خواهیم داد که از طریق آنها می توانید کد خود را بهتر و تمیزتر کنید. تا در آینده از کد فعلی خود خجالت نکشید!..)) همه این روش ها به برنامه نویس کمک می کند تا برنامه نویس خوبی شود.

1. اگر می خواهید کد خود را بهبود ببخشید، کد شخص دیگری را بخوانید

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 2اگر می خواهید مهارت های برنامه نویسی خود را به طور چشمگیری بهبود بخشید، باید کدهای نوشته شده توسط برنامه نویسان دیگر را بخوانید. شما می توانید آن را باور کنید، نمی توانید آن را باور کنید. اما اگر ریسک کنید، به شما قول می‌دهم برای وقتتان پاداشی در نظر بگیرید. به عنوان مثال، در Habré نخوانید که HashMap، ArrayList، LinkedList و غیره چگونه کار می کنند، بلکه کد آنها را بخوانید و خودتان متوجه شوید. در اینجا لیستی از کلاس ها برای خواندن آمده است:
  1. HashMap متداول ترین سوال در مصاحبه ها است. شما می توانید چندین پرنده را با یک سنگ بکشید: رمز را درک کنید و دانش لازم را به دست آورید.

  2. ArrayList همان حالت HashMap است. هیچ چیز پیچیده ای وجود ندارد، اما واقعا ارزش خواندن و درک را دارد.

  3. رشته یک مثال عالی است. درک کنید که چرا تغییر ناپذیر است.

  4. AtomicInteger یک کلاس جالب است: فرآیند نحوه انجام عملیات اتمی روی اشیاء عدد صحیح را شرح می دهد.

  5. و سپس - حداقل تمام کلاس ها در یک ردیف ...)

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

2. از قراردادهای کد پیروی کنید - قراردادهای نوشتن کد

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 3کنوانسیون‌های کدگذاری مجموعه‌ای از دستورالعمل‌های توسعه‌یافته توسط تیم‌های توسعه هستند که شامل دستورالعمل‌هایی برای سبک برنامه‌نویسی و تکنیک‌ها برای هر جنبه از کد نوشته شده در یک شرکت یا یک پروژه خاص است. این قراردادها معمولاً مختص هر زبان برنامه نویسی هستند و سازماندهی فایل، تورفتگی، نظرات، اعلان ها، عملگرها، فضای خالی، قراردادهای نامگذاری، تکنیک ها و اصول برنامه نویسی، قوانین برنامه نویسی، بهترین شیوه های معماری و غیره را پوشش می دهند. مزیت اصلی استانداردهای خاص این است که کد یکسان به نظر می رسد و به همان سبک نوشته شده است. این باعث خوانایی بیشتر آن می شود و به برنامه نویسان کمک می کند تا کدهای نوشته شده توسط برنامه نویس دیگر را درک کنند. اگر استانداردهای کدنویسی دنبال شوند و به طور مداوم در طول فرآیند توسعه اعمال شوند، حفظ و گسترش کد، اصلاح آن و حل تضادهای یکپارچه سازی در آینده آسان تر خواهد بود. قراردادهای کدنویسی به چند دلیل برای برنامه نویسان مهم هستند:
  • 40%-80% هزینه نرم افزار صرف نگهداری آن می شود.
  • به ندرت هیچ نرم افزاری توسط نویسنده در طول زندگی خود نگهداری می شود.
  • قراردادهای کد خوانایی نرم افزار را بهبود می بخشد و به برنامه نویسان اجازه می دهد کدهای جدید را سریعتر درک کنند.
راستش من از طرفداران استانداردهای کدنویسی هستم. برای من منطقی است که وقت خود را صرف بحث و مجادله در مورد آنها کنم، زیرا این یک فعالیت ارزشمند است که در زمان و تلاش شما در آینده صرفه جویی می کند. کنوانسیون های کد باید به طور مکرر بررسی شوند. قوانین را می توان از "اجباری" به "اختیاری" و بالعکس ترجمه کرد. اگر برخی از آنها به درستی کار نمی کنند، باید دوباره طراحی شوند یا از دستورالعمل ها حذف شوند.

3. از مرور کد - بررسی کد توسط دیگران استفاده کنید

بررسی کد یکی از قدرتمندترین ابزارها برای بهبود کد است. 10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 4چرا؟ زیرا این کد توسط متخصصانی که آن را ننوشته اند بررسی می کنند. و ظاهر تازه بسیار مفید است. و اغلب این Code Review است که به جلوگیری از نوشتن کدهای وحشتناک کمک می کند. من می دانم که این همیشه ممکن نیست زیرا شما باید شخص دیگری را پیدا کنید که بخواهد این کار را انجام دهد. اما این بدان معنا نیست که این ابزار ارزش استفاده ندارد. کاملا برعکس: این دلیلی برای یافتن افراد همفکری است که برای آنها بهبود کیفیت کد نیز مهم است. راستی، چه کسی شما را از یافتن آنها در جاوا راش منع کرده است؟ در جایی که همه می خواهند برنامه نویس شوند.

4. نوشتن تست های واحد - تست های واحد

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 5روش مورد علاقه من برای بهبود کد نوشتن تست های واحد است. علاوه بر این، هر چه بیشتر آنها را بنویسید، بهتر است. در برنامه نویسی کامپیوتر، تست واحد یک فرآیند توسعه نرم افزار است که در آن کوچکترین بخش قابل آزمایش کد منبع، به نام واحد، به صورت جداگانه و مستقل آزمایش می شود تا بررسی شود که آیا مطابق انتظار کار می کند یا خیر. این به شما کمک می کند تا قبل از انتشار کد، خرابی های الگوریتم ها و/یا منطق را شناسایی کنید. از آنجایی که تست واحد به ساختار مناسب کد شما نیاز دارد، به این معنی است که کد باید به توابع کوچکتر و متمرکزتر تقسیم شود. که هر کدام مسئول یک عملیات واحد بر روی مجموعه ای از داده ها هستند نه توابع بزرگ که تعدادی عملیات مختلف را انجام می دهند . این است که می توانید از خرابی های بعدی در تغییرات کوچک در عملکرد شکست کد موجود جلوگیری کنید. هنگامی که خرابی رخ می دهد، تست های واحد به شما می گویند که چیزی اشتباه نوشته شده است. در نگاه اول، صرف زمان برای نوشتن تست های واحد در طول توسعه هزینه اضافی به نظر می رسد. با این حال، این باعث صرفه جویی در زمان در آینده می شود که باید صرف رفع اشکال شود. این باید یک فرآیند گام به گام باشد. بنابراین، ادامه دهید و برای همه متدها و کلاس ها تست بنویسید: D

5. از ابزارهایی برای بهبود کیفیت کد استفاده کنید

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 6هیچ توسعه دهنده ای وجود ندارد که هرگز اشتباه نکند. معمولاً کامپایلر مشکلات نحوی و حسابی را می‌گیرد و یک stack trace را خروجی می‌دهد. اما ممکن است هنوز مشکلاتی وجود داشته باشد که کامپایلر آنها را نگیرد. به عنوان مثال، الزامات اجرا شده نادرست، الگوریتم های نادرست، ساختار کد نادرست، یا برخی از مشکلات احتمالی شناخته شده برای جامعه از تجربه. تنها راه برای یافتن چنین خطاهایی این است که از یک توسعه دهنده ارشد بخواهید کد شما را بررسی کند. این رویکرد نوشدارویی نیست و کمی تغییر می کند. با هر توسعه دهنده جدید در تیم، باید یک جفت چشم اضافی داشته باشید که به کد او نگاه می کند. اما خوشبختانه ابزارهای زیادی وجود دارند که می توانند به شما در کنترل کیفیت کدتان کمک کنند. من در پروژه های مختلف از Checkstyle، PMD، FindBugs، SonarQube استفاده کردم. دیگران هم هستند. همه آنها معمولاً برای تجزیه و تحلیل کیفیت و ایجاد برخی گزارش های مفید استفاده می شوند. اغلب این گزارش ها توسط سرورهای یکپارچه سازی مداوم مانند جنکینز منتشر می شوند.

6. کد ساده و واضح بنویسید

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 7همیشه کدهای ساده، واضح و منطقی بنویسید. مردم تمایل به نوشتن کدهای پیچیده دارند تا توانایی خود را در انجام آن ثابت کنند. کد ساده اما منطقی همیشه خوب کار می کند، مشکلات کمتری را به همراه دارد و توسعه پذیرتر است. کد خوب به معنای مستندسازی بهتر است. اگر به اضافه کردن نظر فکر می کنید، از خود بپرسید: « چگونه می توانم کد را بهبود بخشم تا این نظر مورد نیاز نباشد؟ "~ استیو مک کانل.

7. اسناد را بخوانید

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 8یکی از عادات مهم برنامه نویسان خوب خواندن اسناد زیاد است. بگذارید مشخصات، JSR، اسناد API، آموزش‌ها، و غیره باشد. خواندن اسناد به شما کمک می‌کند آن پایه قوی را بسازید که بهترین برنامه‌ریزی را بر اساس آن انجام می‌دهید. نکته آخر اینکه خود را با دیگران مقایسه نکنید، مقایسه خود با دیگران تنها منجر به احساسات منفی و رقابت ناسالم می شود. هرکسی نقاط قوت و ضعف خود را دارد. بنابراین شناخت آنها و همکاری با آنها بسیار مهم است. خودتان را تجزیه و تحلیل کنید، نقاط قوت خود را فهرست کنید و روی آنها کار کنید. برنامه نویسی واقعا سرگرم کننده است: از آن لذت ببرید.

"ثابت یک نفر، متغیر مرد دیگر است."

آلن جی پرلیس

8. وبلاگ نویسان جالب را دنبال کنید

10 راه برای بهبود کد، آزمایش شده از تجربه شخصی - 9هزاران نفر از علاقه مندان در سراسر جهان هستند که روی همین فناوری ها کار می کنند و در مورد آنها می نویسند. وبلاگ ها اغلب توسط خود برنامه نویسان نوشته می شوند و اکثر آنها نظرات و تجربیات شخصی خود را به اشتراک می گذارند. شما می توانید دیدگاه های مختلفی از یک فناوری را در وبلاگ ها مشاهده کنید. شما می توانید تکنولوژی خوب و بد را در وبلاگ ها ببینید. حداقل، مقالات Habré JavaRush :D، از جمله مقاله من را بخوانید. وبلاگ های خوب را دنبال کنید و در مورد پست ها نظر دهید، نظر خود را به اشتراک بگذارید.

9. کتاب های تخصصی بخوانید

10 راه برای بهبود کد شما، آزمایش شده از تجربه شخصی - 10هیچ چیز نمی تواند جای یک کتاب خوب را بگیرد. یک کتاب خوب مفاهیم اساسی را به روشی بسیار ساده تر آموزش می دهد و برای اشیاء دنیای واقعی کاربرد دارد. نویسندگان آنها خود برنامه نویسان بزرگی هستند. با خواندن کتاب می توانید از تجربیات دیگران درس بگیرید. پیشنهاد می کنم «جاوا. برنامه نویسی موثر توسط جاشوا بلوخ. این کتاب هفتاد و هشت قانون سرانگشتی غیر قابل تعویض برنامه نویس را ارائه می دهد: کار کردن، بهترین راه حل ها برای مشکلات برنامه نویسی که هر روز با آن روبرو می شوید. این شامل کاربردی‌ترین و معتبرترین دستورالعمل‌هایی است که می‌توانید برای نوشتن برنامه‌های مؤثر و با طراحی خوب استفاده کنید. اگر به تازگی با جاوا شروع کرده اید و تجربه برنامه نویسی ندارید، ممکن است بخواهید Sams Teach Yourself Java 2 را در 24 ساعت بخوانید. و برای نوشتن کد تمیز، یک کتاب عالی "Clean Code اثر رابرت مارتین" وجود دارد. پس از آن، "احساس زیبایی" در رابطه با کد ظاهر می شود.

10. کد! کد! کد!

فقط با حفظ کردن یک کتاب نمی توانید برنامه نویس خوبی شوید. 10 راه برای بهبود کد، آزمایش شده از تجربه شخصی - 11صحبت در مورد مفاهیم نظری آسان است. اما زمانی که کد می نویسید می توانید محدودیت های زبان را یاد بگیرید یا بهترین روش ها را توسعه دهید. بنابراین، برای تبدیل شدن به یک برنامه نویس خوب، باید کدهای زیادی بنویسید. اگر مبتدی هستید، با نوشتن برنامه هایی برای مسائل ساده مانند سری فیبوناچی، پالیندروم، مثلث پاسکال و غیره شروع کنید و سپس به سراغ مشکلات بزرگتری مانند درخت جستجوی باینری و غیره بروید. اگر به دنبال پلتفرم آنلاین برای تمرین برنامه های جاوا هستید، نگاهی به زمینه کدگذاری بیندازید . علاوه بر این، می توانید دوره CS50 را که ترجمه آن توسط "می دانید کی" در اختیار ما قرار داده شده است، بگذرانید:D

بیایید آن را جمع بندی کنیم

کسی که هیچ کاری نمی کند اشتباه نمی کند. بنابراین، ما باید صبور باشیم و مانند یک ژاپنی سخت کوش، مهارت های کدنویسی خود را تقویت کنیم. برای این، فراموش نکنید:
  • خواندن کد شخص دیگری؛
  • انجام و درخواست یک کد Reivew.
  • نوشتن تست های واحد؛
  • استفاده از ابزار برای بهبود کد؛
  • کد ساده و قابل فهم بنویسید.
  • اسناد کسانی که توانستند را بخوانید.
  • برنامه نویسان جالب را دنبال کنید.
  • خواندن کتاب های تخصصی؛
  • کد! کد! کد!
  • در GitHub در رومن مشترک شوید .

لینک های مفید

بیشتر از مقالات من