---
title: "Amas de données"
type: "code-smell"
slug: "data-clumps"
url: "http://localhost:3000/fr/smells/data-clumps.md"
category: "Bloaters"
description: "Il arrive que différentes parties du code contiennent des groupes de variables identiques (comme les paramètres de connexion à une base de données). Ces amas devraient être transformés en classes à part entière."
---
# Amas de données

> Il arrive que différentes parties du code contiennent des groupes de variables identiques (comme les paramètres de connexion à une base de données). Ces amas devraient être transformés en classes à part entière.

## Signs and Symptoms

Il arrive que différentes parties du code contiennent des groupes de variables identiques (comme les paramètres de connexion à une base de données). Ces amas devraient être transformés en classes à part entière.

## Reasons for the Problem

Ces groupes de données sont souvent dus à une mauvaise structure du programme ou à une « programmation copier-coller ».

Si vous voulez vous assurer qu’un ensemble de données constitue ou non un amas de données, supprimez simplement l’une des valeurs et voyez si les autres valeurs gardent encore un sens. Si ce n’est pas le cas, c’est un bon signe que ce groupe de variables devrait être combiné en un objet.

## Payoff

* Améliore la compréhension et l’organisation du code. Les opérations sur des données particulières sont désormais rassemblées en un seul endroit, au lieu d’être dispersées un peu partout dans le code.
* Réduit la taille du code.
## Relations

**Treated by**

- [Extraire une classe](/fr/extract-class.md)
- [Introduire un objet paramètre](/fr/introduce-parameter-object.md)
- [Préserver l'objet entier](/fr/preserve-whole-object.md)


## Detected by

- **sonar** `S107` — Les fonctions ne devraient pas avoir trop de paramètres (https://rules.sonarsource.com/java/rspec-107/)
- **pmd** `ExcessiveParameterList` — Liste de paramètres excessive (https://docs.pmd-code.org/latest/pmd_rules_java_design.html#excessiveparameterlist)
- **eslint** `max-params` — Imposer un nombre maximal de paramètres (https://eslint.org/docs/latest/rules/max-params)
