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 نے تیار کیا، پھر وضاحت اور فارمیٹ کے لیے ایڈٹ کیا گیا۔