Architecture Decision Record

Active theme: Light

← أمثلة على سجلات القرارات

سجل قرار البنية المعمارية: لغة البرمجة Rust

رقم القرار: AR-001

عنوان القرار: اعتماد لغة البرمجة Rust

التاريخ: 1 ديسمبر 2021

الحالة: مقبول

بيان المشكلة

مع استمرارنا في تطوير تطبيقات البرمجيات، لاحظنا أن التخفيف من الثغرات الأمنية المحتملة ومنع أخطاء وقت التشغيل أصبح أكثر صعوبة. ومع لغات البرمجة الحالية، مثل C وC++، نواصل مواجهة مشكلات مثل تجاوز سعة المخزن المؤقت وتسرب الذاكرة والسلوك غير المعرَّف الذي يؤدي إلى انهيار التطبيقات. ونحتاج إلى لغة برمجة تقدم ضمانات لسلامة الذاكرة وتكون كفؤة بما يكفي لدعم التطبيقات الحرجة من حيث الأداء.

الاعتبارات

صُممت عدة لغات برمجة لمعالجة المشكلات القائمة. ومن بينها حظيت لغة البرمجة Rust باهتمام كبير من مجتمع المطورين بفضل ميزات تصميمها الفريدة. وتشمل الاعتبارات:

  1. سلامة الذاكرة والأمان

  2. الأداء والكفاءة

  3. دعم المجتمع والاعتماد

  4. منحنى التعلم

  5. الأدوات والنظام البيئي

  6. التوافق مع أنظمة البرمجيات القائمة.

القيود

يتطلب اعتماد لغة برمجة جديدة إعادة تدريب المطورين، وهذا يستغرق وقتًا وموارد. وقد يكون دمج اللغة في سير عمل التطوير القائم تحديًا. ويجب أن نضمن التوافق مع الأنظمة القائمة ونتجنب التغييرات المخلة بالتوافق للحفاظ على الاستمرارية.

التنفيذ

  1. سيتلقى فريق التطوير لدينا تدريبًا لتعلّم لغة البرمجة Rust والإلمام بها.

  2. سننشئ مشروعًا جديدًا بلغة Rust على سبيل التجربة لتقييم توافقها ومدى ملاءمتها لأغراضنا التطويرية.

  3. سننقل تدريجيًا الأنظمة القائمة المكتوبة بلغتي C وC++ إلى Rust.

  4. سنتعاون مع مجتمع Rust لاستكشاف الأدوات والمكتبات المتاحة التي يمكنها تحسين سير عمل التطوير لدينا.

  5. سنراقب أداء Rust ونقارنه بانتظام بأداء لغات البرمجة القائمة.

  6. سنعتمد نهجًا بعيد المدى يوازن بين تكاليف التدريب والتكامل والفوائد المحتملة لاستخدام Rust.

المبرر

اعتمدنا Rust بسبب ميزاتها الفريدة المصممة لتوفير ضمانات سلامة الذاكرة والأمان مع الحفاظ على الأداء والكفاءة. فنظام الأنواع المتين في Rust ومدقق الاستعارة (borrow checker) ومفاهيم سلامة الذاكرة فيها تجعلها مناسبة جدًا لتطوير التطبيقات الحرجة من حيث الأداء والأمان. وفضلًا عن ذلك، لدى Rust مجتمع كبير من المطورين، مما يتيح لنا الوصول إلى طيف واسع من الأدوات والمكتبات والنظام البيئي الذي يدعم سير عمل التطوير لدينا. ورغم أن لدى Rust منحنى تعلم، فإننا نعتقد أن فوائد اعتمادها تفوق التكاليف وتتيح فرصة ممتازة لمواصلة النمو والابتكار.

العواقب

  1. سيتطلب اعتماد Rust استثمارًا كبيرًا من الوقت والموارد لتدريب المطورين ودمج اللغة في سير عمل التطوير القائم.

  2. قد يتسبب اعتماد Rust في درجة من مشكلات التوافق مع الأنظمة القائمة، مما يتطلب إعادة هيكلة وتعديلات.

  3. قد يزيد اعتماد Rust عدد المطورين القادرين على المساهمة في مشروعنا باجتذاب مطوري Rust الراغبين في العمل على مشاريع مثيرة.

  4. قد يؤدي الاعتماد إلى تحسين الأداء والكفاءة والأمان مقارنةً باللغات القائمة.

  5. وأخيرًا، يحمل اعتماد Rust فائدة محتملة هي تقليل الثغرات الأمنية في تطبيقاتنا.

إسناد: أُنشئت هذه الصفحة بواسطة ChatGPT، ثم حُرِّرت من أجل الوضوح والتنسيق.