Architecture Decision Record

Active theme: Light

← مثال‌های رکورد تصمیم

رکورد تصمیم معماری: ویرایشگرهای کد برنامه‌نویسی

زمینه

ویرایشگرهای کد برنامه‌نویسی ابزاری ضروری برای توسعه‌دهندگان جهت نوشتن و ویرایش کد هستند. ویرایشگرهای کد بسیاری در دسترس‌اند و هر کدام مجموعهٔ ویژگی‌ها، مزایا و معایب خود را دارند. هدف این ADR مستندسازی تصمیم‌های معماری اتخاذشده برای ویرایشگرهای کد برنامه‌نویسی است.

اولویت‌ها

معماری ویرایشگرهای کد برنامه‌نویسی باید اولویت را به موارد زیر بدهد:

  • ماژولار بودن: ویرایشگر کد باید به شکل ماژولار طراحی شود تا توسعه‌دهندگان بتوانند آن را در صورت نیاز سفارشی‌سازی و گسترش دهند. این امر معماری انعطاف‌پذیری را ممکن می‌کند که با نیازهای توسعه‌دهندگان و تیم‌های مختلف سازگار شود.

  • کارایی: ویرایشگر کد باید کارآمد و پاسخگو باشد تا توسعه‌دهندگان بتوانند بدون کند شدن توسط ابزاری که استفاده می‌کنند، به‌طور کارآمد کار کنند.

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

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

  • سازگاری: ویرایشگر کد باید با طیف وسیعی از زبان‌های برنامه‌نویسی و فناوری‌ها سازگار باشد و آن را به ابزاری مفید برای طیف گسترده‌ای از توسعه‌دهندگان تبدیل کند.

تصمیم

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

  • هسته: این مؤلفه قابلیت‌های پایهٔ ویرایشگر کد، مانند برجسته‌سازی نحو، ویرایش متن و مدیریت فایل را فراهم می‌کند.

  • UI: این مؤلفه رابط کاربری ویرایشگر کد، شامل منوها، نوارابزارها و میان‌برهای صفحه‌کلید را فراهم می‌کند.

  • افزونه‌ها: این مؤلفه به توسعه‌دهندگان اجازه می‌دهد با نصب افزونه‌های شخص ثالث، قابلیت‌های ویرایشگر کد را گسترش دهند. افزونه‌ها می‌توانند ویژگی‌های اضافی مانند تکمیل کد، linting یا اشکال‌زدایی ارائه دهند.

  • یکپارچگی‌ها: این مؤلفه به ویرایشگر کد اجازه می‌دهد با ابزارها و فناوری‌های دیگر مانند سیستم‌های کنترل نسخه، سیستم‌های ساخت یا ابزارهای اشکال‌زدایی یکپارچه شود.

دلیل و منطق

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

  • کارایی: حیاتی است زیرا توسعه‌دهندگان باید بتوانند بدون کند شدن توسط ابزارهایشان کارآمد کار کنند. ویرایشگر کد کارآمد برای بهره‌وری ضروری است و می‌تواند به توسعه‌دهندگان کمک کند تمرکز و دقت خود را حفظ کنند.

  • UI: مهم است زیرا به توسعه‌دهندگان اجازه می‌دهد به‌جای کلنجار رفتن با ویرایشگر روی کد خود تمرکز کنند. این می‌تواند به بهره‌وری بهتر و ناکامی کمتر برای توسعه‌دهندگان بینجامد.

  • قابلیت گسترش: قدرتمند است زیرا اجازه می‌دهد ویرایشگر کد با نیازها و گردش‌های کار مختلف تطبیق یابد. افزونه‌ها و یکپارچگی‌های شخص ثالث می‌توانند ویژگی‌ها و قابلیت‌های اضافی را که در ویرایشگر اصلی گنجانده نشده‌اند فراهم کنند.

  • سازگاری: ارزشمند است زیرا اجازه می‌دهد ویرایشگر کد با طیف وسیعی از زبان‌های برنامه‌نویسی و فناوری‌ها استفاده شود. این ویرایشگر را به ابزاری مفیدتر برای طیف گسترده‌ای از توسعه‌دهندگان تبدیل می‌کند.

مؤلفه‌های هسته، افزونه‌ها، یکپارچگی‌ها و UI جداسازی روشن دغدغه‌ها را فراهم می‌کنند و معماری ماژولاری را ممکن می‌کنند که به‌آسانی قابل گسترش و سفارشی‌سازی است. این معماری انعطاف‌پذیر، کارآمد و سازگار با طیف وسیعی از زبان‌های برنامه‌نویسی و فناوری‌هاست و آن را به ابزاری مفید برای توسعه‌دهندگان تبدیل می‌کند.