جدید ٹیکنالوجی
جدید معیاروں کے لیے دوبارہ تیار کرنے کے طریقے
Table of Contents
کوي راه پر مکمل طور پر سمجھنے کي ضرورت
Cons C code، اکثر کئی دہائیوں پرانی، بے شمار متحرک نظاموں کی پشت پناہی، آپریٹنگ سسٹمز اور انٹرپرائز ایپلیکیشنز کی تشکیل۔ یہ کوڈbase اصل میں محدود یادداشت، سستے اور تناظر کے تحت لکھے گئے تھے. جب کہ وہ دوبارہ کام کرتے ہیں، مسائل کے جمع کرنے کے لیے،
ایک لائن کو چھونے سے پہلے، موجودہ نظام کی مکمل سمجھ غیر واضح ہے. اسکے عمل کو دیکھ کر انٹرویو (اگر اس میں موجود ہو)، انٹرویو ڈومین کے ماہرین کو پڑھیں اور اسکے جاری کرنے کے لئے کوڈ کو چلا وٴ کے تحت چلائے۔
مؤثر بحالی کیلئے ضروری تجاویز
اِس کے بعد آپ کو پتہ چلتا ہے کہ آپ کے بچے کو کس طرح کے مسئلے کا سامنا ہے ۔
۱ : ایک کوسدار کوڈ کا انتخاب کریں
ایک کوڈ Audit settlect sal surnal points. Address search search uses استعمال کر تا ہے تاکہ بگز ، سیکورٹی ونرئرس اور جدید کوڈنگ کے معیاروں کی خلاف ورزی معلوم ہو سکے. چیک کر نے کے لئے [FLTT:1]CCTRPSTPST کو باطل کرنے کے بعد اصل سے شکست دے رہا ہے. [FTT2:TTPTTT] [fTTTPT]
Audit کے دوران میں، عمارت کے نظام کو بھی جانچتا ہے. جدید تیکزئین یا اسکیم کے مطابق کراساس پلیٹ فارمیشن کی حمایت اور اس قابل بنانے کے لیے . آرکائیو شدہ بتاریخ archited اور ایک graphic graph تخلیق -- یہ بعد میں موڈالائز کوششوں کی کوششوں کی رہنمائی کرے گا۔
۲ : جدید معیار قائم کریں
کوڈ بیس فہرست میں داخل کرنے کے لیے کو ڈِک کوڈ کو ڈِک کے معیار کو واضح کریں [1] ایم آئی آر سی راہنما (اصل طور پر استعمال ہونے والے لوک طرزِ عمل اور حفاظتی نظام میں تبدیلی) کو کم اور بہتر بنانے کے لئے عام سی-مُو پر منحصر منصوبہ بندی کے لئے، CC1، ترجیح دی گئی ہے. یہ رسائی [1، کوتحا/C1]، [TC.s.s.s.s.s.s.s.s.s.
معیاری کنونشنوں (مثلاً کے لیے کام اور تبدیلی کے لیے، ، مریخ کے لیے، غیر جانبداری (tabs vs.) اور تبصرہ جات (بزبان یا ہمہ)۔ [حوالہ درکار] ان اصولوں کو ایک سانچہ جات کے ذریعے [FTT:Clgn یا tadi] [FT1] [TT]]۔
3۔ قواعد کو نافذ کرنا۔
مثال کے طور پر ، ایک فائل کو الگ کرنے والی فائل کو الگ کرنے کے لئے مختلف طریقے استعمال کریں
مُڈُرِّذِينَ کا مطلب ہے عالمی تبدیلی کو کم کرنا. مقامی ریاست کے ساتھ ان کے ساتھ رابطہ عملیاتی مباحثوں کے ذریعے یا نقطہ نظر سے گزرا۔ یہ باتچیتوتربیت کو واضح اور یونٹ ٹیسٹ بنا دیتی ہے ۔
// Before: monolithic, global state
int buffer[256];
int index = 0;
void process_data() { /* manipulates global buffer and index */ }
// After: encapsulated module
// buffer.h
typedef struct Buffer Buffer;
Buffer* buffer_create(size_t size);
int buffer_push(Buffer* b, int value);
void buffer_destroy(Buffer* b);
// buffer.c
struct Buffer {
int* data;
size_t size;
size_t index;
};
Buffer* buffer_create(size_t size) { ... }
۴ : غیرضروری اور غیر محفوظ کاموں میں حصہ لینے والے
سی معیاری لائبریری میں ایسے کئی غیرمعمولی کام ہوتے ہیں جو جدید محفوظ کوڈ میں کئے گئے ہیں یا حوصلہافزا ہوتے ہیں ۔
- [FLT]
- یا
- یا
- [FLT]
- [FLT:GON]
- [FLT]
- [FLT] + جس میں میدانی عرض بلد کی حدود ہیں۔
[ فٹنوٹ ]
5۔ یاد رکھنا
وراثے میں موجود حرکی یادداشت اکثر غلطی-cons. عام مسائل میں مفت یادداشت، ڈبل مفت اور دنلنگ پوائنٹ کو بھول جانا شامل ہے۔
- استعمال کریں کی بجائے جب صفر کو میموریل درکار ہوتی ہے۔
- ہمیشہ حسابِ ابجد کی قیمت کا جائزہ لیں۔
- ایسے کام کریں جو ناکام ہونے پر ناکام ثابت ہوں ۔
- ایک ضمنی ملکیتی ماڈل کی تقسیم: جو یادداشت کا مالک ہوتا ہے اور اسے آزاد کرنے کے لیے ذمہ دار ہوتا ہے۔
- استعمال کرنے کے آلات استعمال کریں والگرینڈ [] (Memche) یا AddressSanitrizer (Asan) کو ٹیسٹ کے دوران میں جانچنے اور خارجی رسائی کے لیے استعمال کریں۔
نثری حصوں میں، توڑ پھوڑ اور ترانے سے بچنے کے لیے، انفنٹری بفر یا struction allcoctors کا استعمال کریں۔
۶ : زیادہ سے زیادہ محفوظ توجہ دینے والا شخص
پوائنٹر ایک ڈبل تلوار ہیں. بگز کے موقع کو کم کرنے کے لیے اپنے استعمال کو جدید انداز میں پیش کرتے ہیں:
- استعمال کریں ایسے تقریبی پیرامیٹرز کے لیے جو ترمیم نہیں کیے گئے. یہ معاہدہ واضح طور پر اور sibleer propermization کی مدد کرتا ہے۔
- [99 سے لیکر ] تک استعمال ہونے والے چیزوں کے لئے کوائلی پوائنٹز کو استعمال کرنے والے ایسے آلات کی طرف متوجہ کریں جو بہتر ری ایکٹر بنانے کے قابل ہوتے ہیں۔
- پھینکنے سے گریز کریں۔ جب کسی sute نہر سے پڑھی جائے تو کو پھینکنے کی بجائے سخت زیادتی سے بچنے کے لیے۔
- اِس لئے اُس نے کہا : ” مَیں نے اپنے کام میں کوئی تبدیلی نہیں کی ۔ “
- کی جگہ پر (sed spermies settlements ser (C99) کا استعمال کریں ۔
// Avoid: casting void* to misaligned type
int value = *(int*)(byte_buffer + offset); // potential UB
// Prefer: memcpy
int value;
memcpy(&value, byte_buffer + offset, sizeof(value));
7۔ غلط غلطی
CVC اکثر استعمال کرتا ہے ، واپس کوڈ اور عالمی غلطی کی ریاستیں. uniffition غلطی دستی کو متوازن انداز میں استعمال. اختیارات شامل ہیں:
- کام کے لیے شمارندی اقسام استعمال کریں (جیسے، )۔
- غلطی کوڈ کے لیے واپس جانے سے گریز کریں؛ دستخط انگرس کو غلطیوں کے لیے منفی اقدار کی اجازت دیتا ہے۔
- پیچیدہ نظاموں کے لیے، ایک ہلکے وزنی نمونے کا استعمال / (لیکن آسان استعمال کرتے ہیں، جیسا کہ ان کے بہاؤ پر کنٹرول ہوتا ہے)۔
- لاگ غلطیاں ایک اعلی سطح پر اور صاف کرنے والے وسائل نمونے (did انداز میں) کو دوبارہ صاف کرنے سے بچنے کے لئے
8۔ داخلی عدم جانچ۔
ٹیسٹ کے بغیر، دوبارہ شروع کرنا نہایت مشکل ہے. یونٹ ٹیسٹ فریم ورک کو ابتدائی ترتیب دے. سی کے لئے مقبول انتخاب شامل ہیں:
- یونین – ہلکے وزن، نظاموں کے لیے مثالی۔
- Cqa – اس میں ماورائے مونث کی حمایت شامل ہے۔
- Cunit – روایتی مگر عملی۔
ہر دوبارہ دوبارہ شروع شدہ ماڈل کے لیے ایک یونٹ ٹیسٹ لکھیں ۔ ٹیسٹ ڈرائنگ (ٹی ڈی) کا استعمال کریں جہاں ممکنہ طور پر آنے والا ٹیسٹ لکھیں : وہ ٹیسٹ لکھیں جو مطلوبہ سلوک کا تعین کرتا ہے ، پھر امتحان پاس سے گزرنے تک دوبارہ شروع کریں۔ انٹریشن ٹیسٹز کو پورے نظام کو متعارف کرانا چاہیے جو فوری طور پر داخلی اور متوقع برآمدات کے ساتھ حاصل کرنے کے لیے سی آئی اے کے تمام امتحانات میں شامل ہوں۔
۹ . .
دوبارہ شروع کرنے سے اکثر کارکردگی بہتر ہو جاتی ہے لیکن اس میں زیادہ سے زیادہ کارکردگی (جیسے، میموریل کیل، میموریل کیل وغیرہ) بھی شامل ہو سکتی ہے. ، یا XXIcode Insttruments.
آزمائشوں اور آزمائشوں کا سامنا کرنا
وراثتی کوڈ کو دوبارہ حل کرنے کے بعد ایک مرحلہوار ٹیسٹ پلان بہت مشکل ہوتا ہے ۔
- رجسٹریشن ٹیسٹ [[(FLT:1]] – موجودہ ٹیسٹ سوٹ (اگر کوئی شخص) قائم کرنے سے پہلے ہی چلا جاتا ہے تو اگر کوئی ٹیسٹ موجود نہیں ہوتا تو ایسے ایسے ایسے ٹیسٹ لکھیں جو بنیادی راستوں کو چلاتے ہیں۔
- Incremental ritution – servation a territory. بعد از تبدیل، سخت جھنڈوں سے اورحدیث ٹیسٹوں کے ساتھ. ورژن کنٹرول (مثلاً Git) کے ساتھ ساتھ ساتھ ورژن کنٹرول کریں تاکہ آپ آسانی سے واپس لوٹ سکیں ۔
- Static census [1] – Edation Cpkee and Klang-tid to اپنی سی آئی پائپ لائن پر.
- ] حرکی تجزیہ – Run زیریں ولگرینڈ یا Asan کے دوران رات کے وقت یادداشت کے مسائل کو دوبارہ حل کرنے کے لیے تیار کرتا ہے۔
- بے چینی کا امتحان – Diploy system کو دوبارہ سے منظم ماحول کے لیے اور ڈومین ماہرین کے پاس ختم کرنے کے لئے.
ان اقدامات کو ایک سی آئی سرور کے ساتھ خود کار کر کے (جیت ایچ ڈی عمل، جینکنز، جیٹ لاب سی آئی) دستی طور پر کم کر کے دوبارہ پیدا کرنے والے عمل پر اعتماد پیدا کرتا ہے۔
کُنَّا
⁇ کو دوبارہ حاصل کرنا ایک وقت کا منصوبہ نہیں ہے بلکہ ایک مستقل تنبیہ ہے. جدید معیاروں کو درست کرنا، کوڈ کی جگہ بنانا، فعال طور پر فعال سرگرمیاں کرنا، یادداشت کی بہتری لانا، قابل استعمال نظام میں بہتری لانا، ترقی کرنا اور ترقی کرنا آسان نظام کے لیے مختص کرنا