[RUBY] Qu'est-ce que le codage en dur?

introduction

Depuis que j'ai commencé à travailler dans cette industrie, j'entends souvent des mots que je n'entends pas tous les jours, mais aujourd'hui j'ai entendu le mot «codage en dur» et je n'ai pas compris le sens, donc je vais sortir les résultats de mes recherches. Je vais.

Qu'est-ce que le codage en dur?

J'ai principalement fait référence à cet article. Glossaire informatique qui vous donne l'impression de comprendre même si vous ne le comprenez pas

Comme mentionné dans l'article, en un mot, il s'agit "d'incorporer le traitement et les valeurs qui doivent être séparés séparément dans le code source".

Il est facile de comprendre si vous regardez un programme spécifique.

sample.rb


price = gets
puts price + price * 0.1

Ce qui précède est un script Ruby très simple qui reçoit le prix d'un article comme entrée standard et affiche le prix TTC avec un taux de taxe à la consommation de 10%. Dans le programme, le taux de taxe à la consommation de 0,1 est écrit directement à l'endroit où le prix TTC est calculé. La personne qui a écrit ce script sait que c'est un programme qui affiche le prix TTC, donc il n'y a pas de problème, mais qu'est-ce que 0,1 quand les autres le voient? Il est difficile pour les autres de comprendre la signification du programme. Le codage en dur est le processus et la valeur (taux de taxe dans ce cas) qui sont plus faciles à comprendre s'ils sont séparés de cette manière. Si les nombres sont même codés en dur, ils sont appelés «nombres magiques». Ce taux d'imposition de 0,1 est un chiffre magique.

Si vous avez un codage en dur lorsque vous développez avec plusieurs personnes, il est difficile de comprendre le processus lorsque d'autres personnes voient le code, c'est donc un style d'écriture qui doit être évité en général.

Si vous supprimez le codage en dur de ce programme de prix TTC, voici un exemple.

sample.rb


price = gets
tax = 0.1
puts price + price * tax

En séparant la taxe à la consommation comme une taxe, la lisibilité sera améliorée, et même si la taxe à la consommation change dans le futur, seule la partie taxe doit être modifiée, ce sera donc plus facile à corriger. La méthode d'écriture qui sépare le traitement par opposition au codage dur est appelée codage logiciel.

Cette fois, il s'agissait d'un programme simple avec affichage des prix TTC, il est donc difficile de comprendre la gratitude d'avoir éliminé le codage en dur, mais lorsqu'il s'agit d'un programme énorme, les avantages du codage logiciel sont considérés comme grands. Plus précisément, les paramètres de base de données sont considérés comme des éléments à éviter pour le codage en dur.

Recommended Posts

Qu'est-ce que le codage en dur?
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que maven?
Qu'est-ce que Jackson?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Qu'est-ce que 'java
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?
Qu'est-ce que vue cli
Qu'est-ce qu'une interface
Qu'est-ce que le moi de Ruby?
Qu'est-ce qu'un flux
Qu'est-ce que l'attr_accessor de Ruby?
Qu'est-ce que l'encapsulation Java?
Qu'est-ce qu'une permission refusée?
Qu'est-ce que le contrôle d'instance?
Qu'est-ce qu'un initialiseur?
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un opérateur?
Qu'est-ce que l'orientation objet?
Qu'est-ce que le @VisibleForTesting de Guava?
Qu'est-ce qu'un modèle MVC?
Qu'est-ce qu'une annotation?
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
Qu'est-ce que @ (variable d'instance)?
Qu'est-ce que l'artefact de Gradle?
Qu'est-ce que l'audit JPA?
[Java] Qu'est-ce que flatMap?
Qu'est-ce qu'un servlet?
Qu'est-ce que le développement Web?
[Java] Qu'est-ce que ArrayList?
Qu'est-ce que l'orientation objet après tout?
Qu'est-ce que l'assertion Java? Résumé.
[Mémorandum] Qu'est-ce qu'une erreur?