طراحی هوشمندتر

طراحی هوشمندتر

مقدمه

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

اصول طراحی نرم‌افزار: برنامه‌نویسی هوشمندانه‌تر و سریع‌تر

در متن اصلی این مقاله، از برنامه‌نویسان خواسته می‌شود تا از ذهنیت «انجام به شیوه‌ی خودم» دست بکشند. این مقاله بر اساس دهه‌ها یادگیری جمعی برای حل مشکلات به شیوه‌های هوشمندانه‌تر تأکید دارد. در اینجا چیزهایی که مقاله پوشش می‌دهد:

  • اصل باز-بسته (OCP)
  • اصل عدم تکرار (DRY)
  • اصل مسئولیت‌پذیری واحد (SRP)
  • اصل جانشینی لیسکوف (LSP)

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

اصل باز-بسته (OCP): تطبیق بدون تغییر

تعریف: موجودیت‌های نرم‌افزاری (کلاس‌ها، ماژول‌ها، توابع) باید برای افزایش قابلیت امتداد داشته باشند اما برای تغییر بسته باشند.

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

اصل عدم تکرار (DRY): منبع واحد حقیقت

تعریف: هر دانشی باید یک نمایش واحد، بدون ابهام در پایگاه کد شما داشته باشد.

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

اصل مسئولیت واحد (SRP): تمرکز بر یک چیز

تعریف: یک کلاس تنها باید یک دلیل برای تغییر داشته باشد، به این معنا که تنها باید یک کار انجام دهد.