سؤال

أنا مهتم بكتابة محلل التعليمات البرمجية الثابت لـ vb.net لمعرفة ما إذا كان يتوافق مع إرشادات الترميز القياسية لشركتي.يرجى تقديم المشورة من أين يجب أن أبدأ.

هل كانت مفيدة؟

المحلول

FXCop تعتبر بداية جيدة لمشاكل/أخطاء البرمجة، StyleCop يعد مفيدًا لأسلوب البرمجة (من الواضح)، ولكن إذا لم يعمل أي من هذين الأمرين، فيمكنك إما كتابة محلل بنفسك أو استخدام VBCodeProvider فئة في .Net Framework

نصائح أخرى

بدلاً من كتابة محلل الكود الثابت الخاص بك، أنصحك باستخدامه FxCop:وبدلاً من ذلك، اكتب قواعد FxCop المخصصة لاحتياجاتك.سيوفر لك الكثير من الوقت.http://www.binarycoder.net/fxcop/

أود أن أقترح عليك استخدام Mono's Gendarme.إنها أداة جميلة جدًا، وتحتوي على الكثير من القواعد المضمنة.كما أنه يولد تقارير HTML لطيفة.

إذا كنت بحاجة إلى رؤية معمارية أكثر، فاستخدم NDepend.هذه الأداة لا تتوقف عن دهشتي.يمكنه أن يفعل أكثر بكثير من FxCop.إنه تجاري على الرغم من أنه يحتوي على نسخة تجريبية مجانية

ابدأ مع FxCop.إذا لم تتمكن من القيام بما تحاول القيام به هناك، فجرّب شيئًا مثل NStatic أو NDepend.

أفضل الخيارات هي استخدام FxCop أو StyleCop وكتابة قواعد مخصصة إذا لزم الأمر.

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

إذا كان يجب عليك كتابة أداة داخلية مخصصة لسبب ما (دوغمائي؟)، فإنني أوصي بكتابة برنامج Lisp الذي يقوم فقط بالتحقق من القواعد الأساسية.لا تحاول أن تجعلها شاملة، فنحن نتحدث عن هذا النوع من الحدود التي يتعامل معها باحثو الذكاء الاصطناعي فيما يتعلق بقدرات التحليل لأحد البرامج.

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

أتفق مع أحد الملصقات على أن الأمر سيكون صعبًا للغاية، ولكن بدلاً من Lisp، سأبدأ بـ F#، تمامًا كما فعلت Microsoft مع أداة تحليل برامج تشغيل Windows التابعة لجهات خارجية:

http://arstechnica.com/journals/microsoft.ars/2005/11/10/1796

يشارك F# تعبير Lisp (حسنًا، تقريبًا) ويعمل على CLR تمامًا مثل VB.NET، مما يجعل الأمر برمته أسهل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top