توسعه برنامه‌های وب در دو دهه گذشته به شدت تحت تأثیر یک پارادایم ساده اما انقلابی قرار گرفت. «قرارداد به جای پیکربندی» یا CoC، ایده‌ای که دیوید هاینمایر هانسون به عنوان ستون فقرات فریم‌ورک روبی آن ریلز مطرح کرد، نه تنها نحوه کدنویسی را تغییر داد، بلکه استاندارد جدیدی برای سرعت توسعه و نگهداری کد تعیین کرد. به جای پر کردن پروژه با فایل‌های تنظیمات پیچیده، این اصل به توسعه‌دهنده قول می‌دهد که سیستم خودش حدس بزند او چه می‌خواهد، مگر اینکه عمداً مسیر متفاوتی را انتخاب کند.

قرارداد به جای پیکربندی دقیقاً چیست؟

در دنیای مهندسی نرم‌افزار، این اصل با نام «کدنویسی بر اساس قرارداد» نیز شناخته می‌شود و مستقیماً با مفهوم DRY یا خودت را تکرار نکن گره خورده است. مکانیسم کارکرد آن بسیار هوشمندانه است. وقتی ساختار پروژه با قراردادهای پیش‌فرض فریم‌ورک همخوانی داشته باشد، هیچ فایل پیکربندی اضافه‌ای لازم نیست. تنها زمانی که نیاز به انحراف از این مسیر پیش‌فرض داشته باشید، باید دستورالعمل دقیق ارائه دهید. برای مثال، اگر کلاسی به نام Sales تعریف شده باشد، ریلز به‌طور خودکار جدولی به نام sales در دیتابیس جستجو می‌کند. اگر بخواهید نام جدول چیزی مثل product_sales باشد، فقط در این نقطه نیاز به تعریف صریح دارید. این رویکرد بار شناختی را به شدت کاهش می‌دهد.

مزایای کلیدی این رویکرد

  • کاهش چشمگیر زمان نوشتن کدهای پیکربینی و تنظیمات اولیه
  • افزایش هم‌خوانی و یکنواختی ساختار پروژه در تیم‌های مختلف
  • کاهش خطاهای انسانی ناشی از تنظیمات دستی و پیچیده

برای مطالعه عمیق‌تر درباره‌ی ریشه‌های این پارادایم می‌توانید به صفحه Convention over configuration در ویکی‌پدیا مراجعه کنید که تحولات تاریخی آن را به دقت پوشش داده است.

خداحافظی با کابوس پیکربندی‌های XML

پیش از ظهور روبی آن ریلز، توسعه‌دهندگان با حجم عظیمی از فایل‌های XML و تنظیمات پیچیده سروکار داشتند. فریم‌ورک‌های جاوا مانند نسخه‌های اولیه Hibernate برای نگاشت موجودیت‌ها به پایگاه داده، مجبور بودند تمام روابط را در فایل‌های متنی توصیف کنند که نگهداری آن‌ها به کابوسی برای تیم‌های بزرگ تبدیل می‌شد. جالب اینجاست که ریشه‌های این ایده حتی در مشخصات JavaBeans دیده می‌شود که بر ارائه رفتارهای پیش‌فرض هوشمند تأکید داشت. نسل‌های بعدی فریم‌ورک‌های Persistence به تدریج از فایل‌های XML فاصله گرفتند و از کانوِینشن‌ها به همراه Annotation استفاده کردند، اما این روبی آن ریلز بود که این ایده را به یک فلسفه سازمان‌یافته تبدیل کرد و ساختار استاندارد دایرکتوری‌ها را به یک چارچوب قابل اعتماد تبدیل نمود.

ساختار فایل‌ها و دایرکتوری‌های استاندارد در فریم‌ورک روبی آن ریلز

دکترین ریلز و تأثیر آن بر اکوسیستم کدنویسی

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

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