Glossaire Developpeur
Guide complet de la terminologie de code review, securite, DevOps et qualite logicielle
50 termes
Code Review & Qualite
(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.
Principe DRY (Don't Repeat Yourself)
Un principe de développement logiciel stipulant que chaque élément de connaissance devrait avoir une représentation unique et faisant autorité dans un système.
Principe KISS (Keep It Simple, Stupid)
Un principe de conception qui stipule que les systèmes fonctionnent mieux quand ils sont gardés simples plutôt que rendus complexes. La simplicité devrait être un objectif clé.
YAGNI (You Aren't Gonna Need It)
Un principe de Programmation Extrême stipulant que les programmeurs ne doivent pas ajouter de fonctionnalité avant qu'elle ne soit réellement nécessaire, évitant les fonctionnalités spéculatives.
Code Mort
Code qui n'est jamais exécuté à l'exécution, incluant le code inaccessible, les fonctions non utilisées et le code caché derrière des conditions toujours fausses.
Securite
(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 (Falsification de Requête Inter-Sites)
HOTUne attaque qui force les utilisateurs authentifiés à exécuter des actions non désirées sur une application web en les incitant à cliquer sur des liens malveillants ou à soumettre des formulaires.
Authentification
HOTLe processus de vérification de l'identité d'un utilisateur, appareil ou système. Répond à la question "Qui êtes-vous?" (par opposition à l'autorisation, qui répond "Que pouvez-vous faire?").
Gestion des Secrets
HOTLa pratique de stocker, distribuer et faire tourner de manière sécurisée des données sensibles comme les clés API, mots de passe, identifiants de base de données et certificats.
Vulnérabilité de Dépendance
HOTUne faiblesse de sécurité dans les bibliothèques ou packages tiers dont dépend une application, qui peut être exploitée pour compromettre l'application.
Analyse de Code
HOTAnalyse automatisée du code pour trouver des vulnérabilités de sécurité, des bugs et des problèmes de qualité de code, typiquement intégrée dans les pipelines 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.
IA Code Review
(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.
IA Multi-Agent
HOTUne architecture d'IA où plusieurs agents spécialisés collaborent sur des tâches complexes, chacun se concentrant sur un domaine spécifique comme la sécurité, la performance ou la qualité du code.
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
HOTLa plateforme CI/CD intégrée de GitHub qui permet d'automatiser les workflows logiciels directement depuis votre dépôt en utilisant des fichiers de configuration 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
Scripts qui s'exécutent automatiquement avant la création d'un commit git, utilisés pour appliquer des standards de qualité de code, exécuter des linters et empêcher le commit de code problématique.
Testing
(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 Testing (Tests End-to-End)
HOTUne méthodologie de test qui valide l'ensemble du flux de travail de l'application du début à la fin, simulant des scénarios utilisateur réels incluant l'UI, les APIs, les bases de données et les intégrations externes.
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.
Seuil de Couverture de Tests
Un pourcentage minimum de code qui doit être couvert par des tests, appliqué dans les pipelines CI/CD pour s'assurer que le nouveau code ne diminue pas la couverture de tests globale.
Tests de Mutation
Une technique pour évaluer la qualité des tests en introduisant de petits changements (mutations) dans le code et en vérifiant si les tests les détectent. Les mutations non détectées indiquent des tests faibles.
Git & Controle de Version
(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.
Metriques & Architecture
(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.
Complexité du Code
Une mesure quantitative de la difficulté à comprendre, tester et maintenir le code, basée sur des facteurs comme les branchements, la profondeur d'imbrication et les dépendances.
Automatisez le Code Review avec diffray
Systeme d'IA multi-agent pour code review. Trouve automatiquement bugs, vulnerabilites de securite et problemes d'architecture.