PVS studiyasi
Biz faqat 360 kodida foydalanishimiz mumkin bo'lganligi sababli, bizning kod bazamizning katta qismi hali ham statik tahlil bilan qamrab olinmagan - bu shaxsiy kompyuter va PS3 platformalari, shuningdek, faqat shaxsiy kompyuterda ishlaydigan barcha dasturlar uchun tegishli kod.
Men tanishgan keyingi vosita PVS-Studio edi. U Visual Studio bilan muammosiz birlashadi va qulay demo rejimini taklif qiladi (o'zingiz sinab ko'ring!). /analyze bilan solishtirganda, PVS-Studio juda sekin, lekin u bir qator yangi tanqidiy xatolarni, hatto /analyze nuqtai nazaridan butunlay tozalangan kodda ham qo'lga kiritishga muvaffaq bo'ldi. Aniq xatolarga qo'shimcha ravishda, PVS-Studio ko'plab boshqa kamchiliklarni ham aniqlaydi, ular birinchi qarashda oddiy kod bo'lib tuyulsa ham, noto'g'ri dasturlash klişelari. Shu sababli, noto'g'ri pozitivlarning ma'lum bir foizi deyarli muqarrar, ammo jin ursin, bizning kodimizda bunday naqshlar topilgan va biz ularni tuzatdik.
PVS-Studio veb-saytida siz ushbu vosita haqida juda ko'p ajoyib maqolalarni topishingiz mumkin va ularning ko'pchiligida haqiqiy ochiq manbali loyihalardan misollar mavjud bo'lib, ular maqolada keltirilgan xatolar turlarini aniq ko'rsatadi. Men bu yerga PVS-Studio tomonidan chiqarilgan diagnostika uchun diagnostika xabarlarini kiritish haqida o'yladim, ammo saytda juda ham qiziqarli misollar paydo bo'ldi. Shunday qilib, sahifaga tashrif buyuring va o'zingiz ko'ring. Va ha - bu misollarni o'qiyotganingizda, hech qachon bunday yozmayman, deb kulmang.
PC Lint
Oxir-oqibat, men ishlab chiqish muhitiga integratsiya qilish uchun PC-Lint-dan Visual Lint bilan birgalikda foydalanish variantiga qaytdim. Unix olamining afsonaviy an'analarida asbob deyarli har qanday vazifani bajarish uchun sozlanishi mumkin, biroq uning interfeysi foydalanuvchilarga unchalik qulay emas va uni oddiygina "olish va ishga tushirish" mumkin emas. Men beshta litsenziya to'plamini sotib oldim, lekin uni o'zlashtirish shunchalik qiyin ediki, bilishimcha, boshqa barcha ishlab chiquvchilar oxir-oqibat undan voz kechishdi. Moslashuvchanlikning o'ziga xos afzalliklari bor - masalan, men uni PS3 platformasi uchun barcha kodimizni sinab ko'rish uchun sozlashga muvaffaq bo'ldim, garchi bu menga ko'p vaqt va kuch sarflagan bo'lsa ham.
Va yana, /analyze va PVS-Studio nuqtai nazaridan toza bo'lgan kodda yangi muhim xatolar topildi. Rostini aytsam, lint ham qasam ichmasligi uchun uni tozalashga harakat qildim, lekin bu ish bermadi. Men barcha tizim kodini tuzatdim, lekin u o'yin kodiga qancha ogohlantirish berganini ko'rib, voz kechdim. Men xatolarni sinflarga ajratdim va ulardan eng muhimini hal qildim, uslubiy kamchiliklar yoki yuzaga kelishi mumkin bo'lgan muammolar bilan bog'liq bo'lgan ko'plab boshqa xatolarga e'tibor bermadim.
Men PC-Lint nuqtai nazaridan katta hajmdagi kodni maksimal darajada tuzatishga urinish muvaffaqiyatsizlikka uchraganiga ishonaman. Men itoatkorlik bilan har bir zerikarli "lint" sharhidan xalos bo'lishga harakat qilgan joylarda noldan ba'zi kodlarni yozdim, lekin ko'pchilik tajribali C / C ++ dasturchilari uchun xatolarni qayta ishlashga bunday yondashuv allaqachon juda ko'p. Men hali ham eng mos ogohlantirishlar to'plamini topish va asbobdan maksimal darajada foydalanish uchun PC-Lint sozlamalari bilan shug'ullanishim kerak.
Do'stlaringiz bilan baham: |