[RUBY] J'ai essayé de refactoriser ①

version

・ Rubis 2.5.7 ・ Rails 5.2.4.3

Refactoriser le code de votre portfolio

Tout d'abord, la situation actuelle est la suivante. Terrible,,. Il y a huit noms d'action qui écrivent presque la même chose. Tout d'abord, refactorisons les actions de date1 à date8. スクリーンショット 2020-08-09 14 27 08 スクリーンショット 2020-08-09 14 27 26 スクリーンショット 2020-08-09 14 27 40

Quel est le processus à diviser dans chaque processus? Quel est le même processus? Pensez du point de vue de

Tout d'abord, si les contenus de traitement des actions de date1 à date8 sont grossièrement classés, date1 est le processus de création d'un nouvel enregistrement. date2 à date7 sont le processus de création d'un nouvel enregistrement + le processus de réception de la colonne passée de la page précédente et de sauvegarde de l'enregistrement. date8 est le processus de réception de la colonne passée de la page précédente et de sauvegarde de l'enregistrement + le processus de sauvegarde d'un autre enregistrement. J'ai donc pensé que la date2 à ce jour7 pouvait être établie.

Comment mettre en place le même processus

Dans ce cas, c'est l'existence de cette colonne de page qui l'a empêchée même si je voulais la refactoriser. Aux dates 2 à 7, seule la valeur de la page a changé et le code était le même que la destination de la redirection était différente dans le traitement ultérieur. スクリーンショット 2020-08-09 14 53 04

Augmentez la valeur chaque fois que la page change

Au lieu d'écrire la valeur de la page par moi-même, j'ai pensé que je devais la coder pour que la valeur soit incrémentée de +1 à chaque fois que la page change. Pour cela, créez d'abord une variable d'instance avec @conto_page = 1 à date1. スクリーンショット 2020-08-09 15 12 13 Ensuite, recevez la valeur du côté vue, et passez @conto_page à date2 avec conto_page: @conto_page avec form_with. スクリーンショット 2020-08-09 15 18 46 Enfin, si les paramètres reçus [: conto_page] .to_i == 8, rediriger pour aller à date8, sinon conto_page augmentera de +1. スクリーンショット 2020-08-09 15 15 10

Refactoring terminé!

J'ai pu effacer en toute sécurité les actions de date3 à date7. Nous avons pu réduire la quantité de code d'environ 40%.

Recommended Posts

J'ai essayé de refactoriser ①
J'ai essayé Spring.
J'ai essayé de mettre Tomcat
J'ai essayé youtubeDataApi.
J'ai essayé FizzBuzz.
J'ai essayé JHipster 5.1
[J'ai essayé] Tutoriel de printemps
J'ai essayé d'exécuter Autoware
J'ai essayé d'utiliser Gson
J'ai essayé QUARKUS immédiatement
J'ai essayé d'utiliser TestNG
J'ai essayé Spring Batch
J'ai essayé d'utiliser Galasa
J'ai essayé node-jt400 (Programmes)
J'ai essayé node-jt400 (exécuter)
J'ai essayé node-jt400 (Transactions)
J'ai essayé node-jt400 (Construction de l'environnement)
J'ai essayé DI avec Ruby
J'ai essayé node-jt400 (mise à jour SQL)
J'ai essayé d'utiliser azure cloud-init
J'ai essayé la machine Spring State
J'ai essayé Drools (Java, InputStream)
J'ai essayé Rails débutant [Chapitre 1]
J'ai essayé d'utiliser Apache Wicket
J'ai essayé node-jt400 (requête SQL)
J'ai essayé d'utiliser Java REPL
J'ai essayé l'analyse du code source
J'ai essayé le problème FizzBuzz
J'ai essayé node-jt400 (flux SQL)
J'ai essayé node-jt400 (lecture IFS)
J'ai essayé Rails débutant [Chapitre 2]
J'ai essayé UPSERT avec PostgreSQL.
J'ai essayé BIND avec Docker
J'ai essayé de vérifier yum-cron
J'ai essayé la métaprogrammation avec Java
J'ai essayé d'utiliser anakia + Jing maintenant
J'ai essayé le didacticiel Angular + SpringBoot + PostgreSQL
J'ai essayé de mâcher C # (indexeur)
J'ai essayé quelque chose qui s'appelle la recherche récursive
J'ai essayé d'utiliser Spring + Mybatis + DbUnit
J'ai essayé d'utiliser JOOQ avec Gradle
[K8s] J'ai essayé la communication entre les pods!
J'ai essayé l'analyse morphologique avec MeCab
J'ai essayé un petit docker de digdag.
J'ai essayé de résumer le support d'iOS 14
J'ai essayé d'interagir avec Java
J'ai essayé la communication UDP avec Java
J'ai essayé d'expliquer la méthode
J'ai essayé de mettre Domino11 dans CentOS7
J'ai essayé le framework Java "Quarkus"
[Rails] J'ai essayé de supprimer l'application
J'ai essayé d'utiliser l'API Java8 Stream
J'ai essayé l'outil de micro-benchmarking de Java JMH
J'ai essayé d'utiliser JWT en Java
J'ai essayé GraphQL avec Spring Boot
J'ai essayé de résumer l'apprentissage Java (1)