قاموس المطورين
دليل شامل لمصطلحات مراجعة الكود والأمان وDevOps وجودة البرمجيات
50 مصطلح
مراجعة الكود والجودة
(12)Code Review
HOTThe systematic examination of source code by one or more developers to identify bugs, security vulnerabilities, and improve code quality before merging into the main codebase.
Static Analysis
HOTThe process of analyzing source code without executing it to find potential bugs, security vulnerabilities, and code quality issues.
Technical Debt
HOTThe implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.
Code Smell
HOTA surface indication in the source code that usually corresponds to a deeper problem in the system. Not a bug itself, but a sign that refactoring may be needed.
Refactoring
HOTThe process of restructuring existing code without changing its external behavior to improve readability, reduce complexity, and make it easier to maintain.
Linting
The process of running a program that analyzes code for potential errors, bugs, stylistic issues, and suspicious constructs.
Clean Code
Code that is easy to understand, simple to modify, and clearly expresses the intent of the programmer. A philosophy popularized by Robert C. Martin.
Legacy Code
Existing code that is difficult to change due to lack of tests, poor documentation, outdated technologies, or original developers no longer available.
مبدأ DRY (لا تكرر نفسك)
مبدأ تطوير البرمجيات الذي ينص على أن كل جزء من المعرفة يجب أن يكون له تمثيل واحد موثوق في النظام.
مبدأ KISS (أبقِها بسيطة، غبي)
مبدأ تصميم ينص على أن الأنظمة تعمل بشكل أفضل عندما تُبقى بسيطة بدلاً من جعلها معقدة. يجب أن تكون البساطة هدفاً رئيسياً.
YAGNI (لن تحتاجه)
مبدأ البرمجة المتطرفة الذي ينص على أن المبرمجين لا يجب أن يضيفوا وظائف حتى تكون مطلوبة فعلياً، متجنبين الميزات التخمينية.
الكود الميت
كود لا يتم تنفيذه أبداً في وقت التشغيل، بما في ذلك الكود غير القابل للوصول، الدوال غير المستخدمة، والكود المخفي خلف شروط دائماً خاطئة.
الأمان
(12)SAST
HOTStatic Application Security Testing — a method of analyzing source code for security vulnerabilities without executing the program.
DAST
HOTDynamic Application Security Testing — a method of testing running applications for security vulnerabilities by simulating attacks.
OWASP
HOTThe Open Worldwide Application Security Project — a nonprofit foundation that works to improve software security through community-led open-source projects.
OWASP Top 10
HOTA regularly updated list of the 10 most critical security risks to web applications, published by OWASP as a standard awareness document for developers.
CSRF (تزوير الطلبات عبر المواقع)
HOTهجوم يُجبر المستخدمين المصادق عليهم على تنفيذ إجراءات غير مرغوبة في تطبيق ويب عن طريق خداعهم للنقر على روابط ضارة أو إرسال نماذج.
المصادقة
HOTعملية التحقق من هوية المستخدم أو الجهاز أو النظام. تجيب على سؤال "من أنت؟" (على عكس التفويض الذي يجيب على "ماذا يمكنك أن تفعل؟").
إدارة الأسرار
HOTممارسة تخزين وتوزيع وتدوير البيانات الحساسة بشكل آمن مثل مفاتيح API وكلمات المرور وبيانات اعتماد قواعد البيانات والشهادات.
ثغرة التبعيات
HOTضعف أمني في مكتبات أو حزم الطرف الثالث التي يعتمد عليها التطبيق، والتي يمكن استغلالها لاختراق التطبيق.
فحص الكود
HOTتحليل آلي للكود للعثور على ثغرات أمنية وأخطاء ومشاكل جودة الكود، عادة ما يكون مدمجاً في خطوط CI/CD.
DevSecOps
An approach that integrates security practices into every phase of the DevOps pipeline, making security a shared responsibility across development, security, and operations teams.
SQL Injection
A code injection technique that exploits security vulnerabilities in an application's database layer by inserting malicious SQL statements into input fields.
XSS (Cross-Site Scripting)
A security vulnerability that allows attackers to inject malicious scripts into web pages viewed by other users, potentially stealing session cookies, credentials, or performing actions on behalf of victims.
مراجعة الكود بالذكاء الاصطناعي
(3)AI Code Review
HOTThe use of artificial intelligence and machine learning to automatically analyze code changes and provide feedback on quality, security, and best practices.
Automated Code Review
HOTThe use of automated tools to analyze code and provide feedback without manual human intervention, typically integrated into CI/CD pipelines.
الذكاء الاصطناعي متعدد الوكلاء
HOTبنية ذكاء اصطناعي حيث يتعاون العديد من الوكلاء المتخصصين في المهام المعقدة، كل منهم يركز على مجال محدد مثل الأمان أو الأداء أو جودة الكود.
DevOps وCI/CD
(5)CI/CD
HOTContinuous Integration and Continuous Delivery/Deployment — a set of practices that automate the building, testing, and deployment of code changes.
DevOps
HOTA set of practices combining software development (Dev) and IT operations (Ops) that aims to shorten the development lifecycle and deliver high-quality software continuously.
GitHub Actions
HOTمنصة CI/CD المدمجة في GitHub التي تتيح لك أتمتة سير عمل البرمجيات مباشرة من مستودعك باستخدام ملفات تكوين YAML.
Shift Left
A practice of moving testing, quality, and security processes earlier in the software development lifecycle to find and fix issues sooner.
Pre-commit Hooks
نصوص برمجية تعمل تلقائياً قبل إنشاء commit في git، تُستخدم لفرض معايير جودة الكود، تشغيل أدوات التنسيق، ومنع commit الكود المشكل.
الاختبار
(7)Unit Testing
HOTA software testing method where individual units or components of code are tested in isolation to verify they work correctly.
Code Coverage
HOTA metric that measures the percentage of code executed during testing, indicating how much of the codebase is covered by automated tests.
اختبار E2E (اختبار من البداية للنهاية)
HOTمنهجية اختبار تتحقق من سير عمل التطبيق بالكامل من البداية إلى النهاية، محاكاة سيناريوهات المستخدم الحقيقية بما في ذلك واجهة المستخدم وAPIs وقواعد البيانات والتكاملات الخارجية.
TDD (Test-Driven Development)
A software development practice where tests are written before the actual code, following a cycle of: write a failing test, write minimal code to pass, then refactor.
Integration Testing
Testing that verifies different modules or services work correctly together, typically testing interactions between components rather than individual units.
عتبة تغطية الاختبارات
نسبة مئوية دنيا من الكود يجب أن تكون مغطاة بالاختبارات، مفروضة في خطوط CI/CD لضمان أن الكود الجديد لا يقلل تغطية الاختبارات الإجمالية.
اختبار الطفرات
تقنية لتقييم جودة الاختبارات عن طريق إدخال تغييرات صغيرة (طفرات) على الكود والتحقق مما إذا كانت الاختبارات تكتشفها. الطفرات غير المكتشفة تشير إلى اختبارات ضعيفة.
Git والتحكم بالإصدارات
(7)Pull Request
HOTA method of submitting code changes for review before merging into the main branch. Also known as merge request (MR) in GitLab.
Git
HOTA distributed version control system that tracks changes in source code during software development, enabling multiple developers to work together.
Merge Request
GitLab's term for a pull request — a method of submitting code changes for review before merging into another branch. Functionally identical to GitHub's pull request.
Commit
A snapshot of changes in a Git repository that records modifications to files along with a message describing what changed and why.
Branch
An independent line of development in Git that allows developers to work on features, fixes, or experiments without affecting the main codebase.
Gitflow
A branching model for Git that defines a strict branching structure designed around project releases, using dedicated branches for features, releases, and hotfixes.
Trunk-Based Development
A source-control branching model where developers collaborate on code in a single branch called "trunk" (or main), avoiding long-lived feature branches.
المقاييس والهندسة
(4)Cyclomatic Complexity
A software metric that measures the number of independent paths through a program's source code, indicating code complexity and testability.
DORA Metrics
Four key metrics identified by the DevOps Research and Assessment (DORA) team that measure software delivery performance: deployment frequency, lead time for changes, change failure rate, and time to restore service.
SOLID Principles
Five design principles for object-oriented programming that promote maintainable, flexible, and understandable code: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion.
تعقيد الكود
مقياس كمي لمدى صعوبة فهم الكود واختباره وصيانته، بناءً على عوامل مثل التفرع وعمق التداخل والتبعيات.
أتمتة مراجعة الكود مع diffray
نظام ذكاء اصطناعي متعدد الوكلاء لمراجعة الكود. يجد الأخطاء والثغرات الأمنية ومشاكل البنية تلقائياً.