Articles of immuabilité

Pourquoi Matz a-t-il choisi de rendre les chaînes modifiables par défaut dans Ruby?

C’est l’inverse de cette question: pourquoi les chaînes ne peuvent-elles pas être mutées en Java et en .NET? Ce choix a-t-il été fait dans Ruby uniquement parce que les opérations (annexes et autres) sont efficaces sur les chaînes modifiables, ou y avait-il une autre raison? (Si ce n’est que de l’efficience, cela semblerait étrange, car […]

Toutes les propriétés d’un object immuable doivent-elles être finales?

Les objects immuables doivent-ils avoir toutes les propriétés final ? Selon moi pas. Mais je ne sais pas si j’ai raison.

C # et l’immutabilité et les champs en lecture seule… un mensonge?

J’ai trouvé que People prétend que l’utilisation de tous les champs en lecture seule dans une classe ne rend pas nécessairement l’instance de cette classe immuable car il existe des “moyens” de modifier les valeurs du champ en lecture seule même après l’initialisation (construction). Comment? Quelles manières? Donc ma question est de savoir quand peut-on […]

Enums en Javascript avec ES6

Je reconstruis un ancien projet Java en Javascript et je me suis rendu compte qu’il n’existait aucun moyen de faire des énumérations dans JS. Le mieux que je puisse trouver est: const Colors = { RED: Symbol(“red”), BLUE: Symbol(“blue”), GREEN: Symbol(“green”) }; Object.freeze(Colors); Le const empêche que les Colors ne soient réaffectées et le gel […]

Qu’est-ce que l’immutabilité et pourquoi devrais-je m’en inquiéter?

J’ai lu quelques articles sur l’immuabilité mais je ne suis toujours pas très fidèle au concept. J’ai fait un fil sur ce sujet récemment, qui mentionnait l’immuabilité, mais comme il s’agit d’un sujet en soi, je fais maintenant un fil de discussion dédié. J’ai déjà mentionné dans le fil de discussion que je pensais que […]

Les variables d’Elixir sont-elles vraiment immuables?

Dans le livre de Dave Thomas, Programming Elixir, il déclare: “Elixir applique des données immuables” et poursuit: Dans Elixir, une fois qu’une variable fait référence à une liste telle que [1,2,3], vous savez qu’elle référencera toujours les mêmes valeurs (jusqu’à ce que vous reliez la variable). Cela ressemble à “cela ne changera jamais à moins […]

Pourquoi ne devrais-je pas utiliser des POJO immuables au lieu de JavaBeans?

J’ai implémenté quelques applications Java maintenant, seulement des applications de bureau jusqu’à présent. Je préfère utiliser des objects immuables pour faire circuler les données dans l’application au lieu d’utiliser des objects avec des mutateurs (setters et getters ), également appelés JavaBeans. Mais dans le monde Java, il semble beaucoup plus courant d’utiliser JavaBeans, et je […]

Est-ce que l’entier est immuable

Je sais que c’est probablement très stupide, mais beaucoup de gens prétendent que la classe Integer de Java est immuable, mais le code suivant: Integer a=3; Integer b=3; a+=b; System.out.println(a); Exécute sans aucun problème en donnant le résultat (attendu) 6. La valeur de a a été modifiée de manière efficace. Cela ne signifie-t-il pas qu’Integer […]

Construire de gros objects immuables sans utiliser de constructeurs ayant de longues listes de parameters

J’ai quelques gros objects (plus de 3 champs) qui peuvent et doivent être immuables. Chaque fois que je rencontre ce cas, j’ai tendance à créer des abominations constructeurs avec de longues listes de parameters. Il ne se sent pas bien, est difficile à utiliser et la lisibilité en souffre. C’est encore pire si les champs […]

Pourquoi les points d’exclamation sont-ils utilisés dans les méthodes Ruby?

Dans Ruby, certaines méthodes ont un point d’interrogation ( ? ) Qui pose une question comme include? qui demandent si l’object en question est inclus, cela retourne alors un vrai / faux. Mais pourquoi certaines méthodes ont-elles des points d’exclamation ( ! ) Là où d’autres ne le font pas? Qu’est-ce que ça veut dire?