[RUBY] Une série d'étapes pour créer des livrables pour les portefeuilles avec Rails

À ces personnes

introduction

Je suis @million_momoban, un étudiant de 22 ans qui vise à devenir un ingénieur back-end inexpérimenté. En plus du développement d'applications Web et de l'apprentissage de la programmation, nous fournirons également des informations sur la recherche d'emploi et les stages.

Statut

J'ai fait une erreur lors de la création de l'application Rails (résolue plus tard), et je n'ai pas pu la gérer avec Git, alors j'ai pensé que c'était une bonne opportunité et j'ai décidé de démarrer le projet à partir de 1.

C'est une perte de temps de suivre la même ornière, alors gardez une trace de la façon dont une application Web peut être réalisée.

En tant que débutant, je trébuche souvent sur ** "Construction de l'environnement" ** et ** "Git management" ** pour enregistrer le flux de développement d'applications.

** Les commentaires sont les bienvenus, à la fois en termes de contenu de l'article, d'aspects techniques et plus encore! ** **

environnement

De la sécurisation de l'espace de travail

Je vais faire un projet immédiatement.

~


$ mkdir sample_app

$ cd sample_appDéplacez-vous avec et spécifiez la version ruby à installer.

~/sample_app


$ rbenv install 2.6.5
・ ・ ・
Installed ruby-2.6.5 to /Users/foo/.rbenv/versions/2.6.5

J'ai attendu quelques minutes. Après vous être adapté à l'environnement avec $ rbenv local 2.6.5 '', passez à la suivante.

~/sample_app


$ bundle init
・ ・ ・
Writing new Gemfile to /Users/foo/sample_app/Gemfile

Ouvrez le Gemfile généré soit vim ou directement à partir du Finder. Retirez le # de # gem "rails" `en bas pour le rendre` gem" rails " ``.

~/sample_app/Gemfile


# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

gem "rails" #Décommenter

Si vous le pouvez, retournez au terminal et installez les rails avec la commande suivante.

~/sample_app


$ bundle install --path vendor/bundle

Référence: Détrompez-vous si vous avez vraiment besoin d'ajouter --path vendor / bundle lors de l'installation du bundle

Démarrer le projet Rails

Vérifions les rails qui peuvent être installés.

~/sample_app


$ gem list rails

*** LOCAL GEMS ***

Si vous ne disposez pas de la version des rails que vous souhaitez utiliser, spécifiez la version et installez le gem. Si vous ne le spécifiez pas, la série 6 sera installée. La série 6 est encore instable en termes de compatibilité, et en raison de la nouveauté, il peut y avoir peu d'informations, donc les débutants devraient l'éviter.

~/sample_app


$ gem install -v 5.2.4.2 rails
・ ・ ・
$ gem list rails

*** LOCAL GEMS ***

rails (5.2.4.2)
...

Maintenant que ce joyau est installé, il semble que nous pouvons enfin démarrer le projet.

Portfolio


$ rails _5.2.4.2_ new . -d mysql --skip-turbolinks --skip-test --skip-bundle
create
      create  README.md
      create  Rakefile
・ ・ ・

new .En donnant comme échantillon_Vous pouvez déployer des projets Rails sur l'application.


 L'explication de la commande est la suivante. Ajoutez ou supprimez selon le cas.

- ```rails _○.○.○.○_```
 - Installer en spécifiant la version
-  ```-d mysql```
 - Changement de la base de données du SQLite par défaut en MySQL rapide et stable.
-  ```--skip-turbolinks```
 - Désactivez la liaison turbo. Il semble que les transitions de page seront plus rapides.
-  ```--skip-test```
 - Ignorez le minitest par défaut car vous prévoyez d'utiliser RSpec.
-  ```--skip-bundle```
 - Si vous effectuez une `` installation groupée '' sans autorisation, la version Rails peut être écrasée. Mais en fait, cela a une signification plus profonde.

---


 Lorsque vous avez terminé, écrivez les gemmes dont vous avez besoin dans le fichier Gemfile dans le répertoire du nom du projet.

#### **`'= 5.2.4.2'En le donnant comme, il est corrigé pour qu'il ne devienne pas une autre version sans permission.`**

~/sample_app/Gemfile


・ ・ ・

ruby '2.6.5'

gem 'rails', '= 5.2.4.2'
gem 'mysql2', '>= 0.4.4', '< 0.6.0'

・ ・ ・

Après avoir écrit la gemme requise, $ bundle install` ``

~/sample_app


$ bundle install
・ ・ ・

An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before bundling.

Une erreur s'est produite d'une manière ou d'une autre dans mysql2. J'ai essayé différentes choses, mais j'ai pu le résoudre avec Rails5 gem cannot install mysql2.

$ bundle config --local build.mysql2 "--with-cppflags=-I/usr/local/opt/openssl/include"
$ bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"

$ bundle install` à nouveau et le suivant est réussi.

Créez une base de données avec create.



 Dans le contrôle de fonctionnement, faites `` $ rails s '' et accédez à localhost: 3000 ,,,

 <img width="617" alt="スクリーンショット 2020-06-20 13.25.58.png " src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597061/67e14813-f7c8-a972-7f47-e92f0ffe34b0.png ">

 Vous pouvez vous connecter et la version est parfaite!


## Gestion Git et GitHub
 Ensuite, nous gérerons le projet avec Git.
 L'outil qui est sur VSCode depuis le début est plus que suffisant, je vais donc l'utiliser.
 Une extension appelée GitHistory est pratique, alors installez-la également.

## Essayer

 Démarrez un nouveau projet à partir de Nouveau dans les référentiels sur [GitHub](https://github.com/).
 Entrez le nom de votre choix pour le nom du référentiel, cochez Privé et passez par les autres.
 <img width="776" alt="スクリーンショット 2020-06-20 16.20.40.png " src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597061/99e2077a-c09a-062e-6ceb-6fe84526688d.png ">

 Si vous appuyez sur Créer un référentiel, l'écran sera temporairement laissé et vous passerez à VS Code.
 Après avoir démarré VSCode, ouvrez `` `sample_app``` depuis" Open Folder ".
 Depuis le terminal, entrez dans l'ordre les cinq lignes de commandes affichées sur l'écran précédent.


#### **`~/sample_app`**
```terminal

$ git init
$ git add .
$ git commit -m "first commit"
$ git remote add origin https://github.com/******/sample.git
$ git push -u origin master

L'explication de la commande est la suivante. Si vous ne comprenez pas bien, vous pouvez passer.

Développement

Jetons un coup d'œil à l'historique Git de VS Code. Comme le montre l'image, vous pouvez voir l'historique en cliquant sur 1 et 2, et vous pouvez vérifier le premier commit que vous avez effectué en premier. スクリーンショット 2020-06-20 17.08.13.png

A partir de 3, vous pouvez voir que nous sommes actuellement dans une branche appelée master. Une branche permet de faire avancer le développement de manière flexible en ramenant l'environnement de développement entre «pour modification» et «pour ajouter des fonctions» sans affecter l'autre.

maître et sujet

Il est courant de conserver les versions stables et les produits finis dans la branche principale par défaut et ne se développent souvent pas sur la branche principale. Alors créons une nouvelle branche de développement. Créez une nouvelle branche à partir de 3. Cette fois, je l'ai nommé «topique».

Essayez de taper `` git status '' dans le terminal pour voir l'état actuel de Git.

~/sample_app


$ git status
On branch topic
nothing to commit, working tree clean

Je suis dans la branche thématique, je n'ai rien sur quoi m'engager et mon espace de travail est propre.

Essayez d'ajouter

Après avoir confirmé que vous êtes dans la branche des sujets de développement, jouons un peu avec le fichier. J'ai réinitialisé gitignore` et changé un peu README.md. Si vous cliquez sur la marque Git dans la barre latérale et regardez le contenu, les deux fichiers ci-dessus se trouvent dans l'espace de travail, cliquez donc sur le bouton + pour les déplacer vers l'environnement de préparation. C'est la même chose que `` `` $ git add dans le terminal. スクリーンショット 2020-06-20 17.38.33.png

Vous avez été mis en scène et vous êtes prêt à vous engager. Ensuite, écrivez votre validation dans la zone de texte au-dessus et appuyez sur le bouton de contrôle ci-dessus pour valider vos modifications. C'est aussi équivalent à $ git commit -m "operation check" `` `dans le terminal. スクリーンショット 2020-06-20 17.40.25.png

Regardons à nouveau l'histoire. Si vous regardez l'image suivante, vous pouvez voir le dernier état de la branche de rubrique verte dans la ligne supérieure, la branche maître verte et la branche origine / maître rouge dans la ligne inférieure (avant le changement). Puisque nous développons dans la branche thématique, vous pouvez comprendre que la série chronologique est la plus récente.

スクリーンショット 2020-06-20 18.19.14.png

En passant, il semble qu'il n'y ait pas de problème si les changements sont reflétés dans la branche principale locale telle qu'elle est, donc je voudrais les fusionner. Tout d'abord, appuyez sur le sujet en bas à gauche pour sélectionner la branche principale et confirmez que vous l'avez déplacée. スクリーンショット 2020-06-20 18.16.49.png

Cliquez sur Plus juste en dessous du sujet vert et sélectionnez Fusionner ceci. Après avoir sélectionné le sujet et terminé la confirmation finale ... スクリーンショット 2020-06-20 17.55.26.png

Le contenu modifié dans le sujet est correctement reflété dans master! !!

Demande push and pull

En fait, je pense qu'il y a un bouton avec une marque de nuage ou deux flèches dans un cercle à droite du bouton avec le sujet ou le maître sur lequel vous avez appuyé lors du changement de branche. Vous pouvez facilement synchroniser vos modifications actuelles vers un référentiel distant en cliquant dessus.

Mais pensez-y. C'est comme la synchronisation des modifications dans la branche principale, que vous avez développée en équipe et que vous avez soudainement décidé de ne travailler qu'avec le produit fini, sans confirmation des autres membres.

Si vous effectuez une demande d'extraction, vous pouvez demander aux membres de l'équipe de vérifier le code pour voir s'il vaut la peine de fusionner, et si vous obtenez l'autorisation, vous pouvez faire quelque chose comme la fusion et éviter les accidents. Bien que ce soit un développement personnel, cela ne fera pas de mal de s'y habituer.

manière

Supposons que vous poursuivez le développement dans la branche de rubrique et qu'il y ait trois modifications de fichier. Utilisez le bouton + pour ajouter à la mise en scène et ajouter un message de validation de manière appropriée. スクリーンショット 2020-06-20 19.00.11.png

Validez également et basculez vers la branche principale comme auparavant et fusionnez la branche de rubrique. スクリーンショット 2020-06-20 19.02.18.png Ouais, comme prévu. Je vais pousser vers le référentiel distant à partir d'ici, mais le flux est le suivant.

Pousser de la branche maître du référentiel local vers la branche origine / sujet du référentiel distant (honnêtement, le sujet → l'origine / le sujet se sent bien) ↓ Faites une demande d'extraction de la branche d'origine / sujet du référentiel distant vers l'origine / maître sur GitHub ↓ Demandez à l'administrateur du référentiel de le fusionner.

Commençons par la suite du précédent. Appuyez sur orign / topic. Oh, le référentiel distant n'a toujours qu'une branche principale, non? Si vous pensez, ne vous inquiétez pas. S'il n'y a pas de succursale, une nouvelle succursale sera créée en fonction de la situation.

~/sample_app


$ git push origin topic

・ ・ ・
remote: Create a pull request for 'topic' on GitHub by visiting:
remote:      https://github.com/******/sample/pull/new/topic
remote:
To https://github.com/******/sample.git
 * [new branch]      topic -> topic

Faites une pull request sur le sujet sur GitHub. topic -> topicEsttopic -> origin/topicà ce sujet ~.

Développement de pseudo équipe

Si vous jetez un œil à GitHub et allez à la page supérieure du projet, il est dit 'topic' Compare & pull request '' '', alors cliquez dessus pour créer une pull request. Sinon, sélectionnez sujet '' dans Branche '' et il devrait apparaître. スクリーンショット 2020-06-21 10.03.07.png

La zone du haut montre que la demande d'extraction sujet-maître est comparée et qu'elle peut être fusionnée. Si vous pouvez le confirmer, écrivez le titre et le message. Je pense que le titre est le message du début lorsque vous vous êtes engagé. スクリーンショット 2020-06-21 10.08.16.png

Écrivez le message pour qu'il puisse être compris par n'importe qui d'autre que vous-même. L'article de cette personne a été très utile pour savoir comment écrire Pururiku. → GitHub "Je vais vous apprendre à écrire une requête d'extraction parfaite"

Si vous pouvez écrire un message, faites "Créer une demande d'extraction". Cette fois, c'est un développement personnel et l'administrateur du référentiel n'est que moi, donc je peux le fusionner immédiatement, mais comme c'est un gros problème, je vais y toucher de différentes manières. Cliquez sur Fichier modifié dans l'onglet. スクリーンショット 2020-06-21 10.32.41.png

Ici, vous pouvez consulter les fichiers qui ont changé. Soyez proactif en laissant des questions, des suggestions et des commentaires élogieux. Après avoir écrit tous les détails, passez en revue à partir de «Examiner les modifications» dans le coin supérieur droit avec «Soumettre l'examen». スクリーンショット 2020-06-21 10.30.40.png

Lorsque vous revenez à l'onglet "Conversion", les avis, etc. sont reflétés. スクリーンショット 2020-06-21 10.42.34.png

Après avoir terminé la confirmation finale, terminez la fusion avec «Confirmer la fusion» à partir de «Fusion de la demande d'extraction». スクリーンショット 2020-06-21 10.46.02.png

Lorsque vous revenez à la première page, la fusion précédente est reflétée! スクリーンショット 2020-06-21 10.51.24.png

Ceci termine le flux. Je pense que c'est la raison pour laquelle l'acte de donner l'impression qu'il est développé par plusieurs personnes est appelé pseudo-pull request.

Résumé

En écrivant cet article, j'ai appris beaucoup de choses qui semblaient être comprises mais pas faites. Même ainsi, je trouve souvent suspect d'écrire (surtout lorsque je gère une succursale), et je pense que j'ai encore besoin d'étudier.

J'ai écrit une si longue phrase pour la première fois, donc je pense qu'il y a des parties étranges! Je continuerai d'écrire des enregistrements tout en poursuivant le développement dans le système en cours. Je l'écrirai à nouveau lorsque le projet sera terminé ou terminé. Vient ensuite RSpec? ??

Que vous viviez dans une zone rurale, que vous étudiez par vous-même ou que vous ne soyez pas un système d'information, même si vous n'avez pas d'amis qui programment autour de vous, vous pouvez compléter certains livrables et prouver que vous pouvez obtenir un emploi d'ingénieur back-end! !!

En tant qu'étudiant, je prévois de publier des articles sur mes expériences telles que des informations sur la recherche d'emploi et des stages. Tout contenu, que ce soit un article ou autre chose qu'un article, est le bienvenu pour commenter! !!

Article de référence

Recommended Posts

Une série d'étapes pour créer des livrables pour les portefeuilles avec Rails
[Rails] rails nouveau pour créer une base de données avec PostgreSQL
Créer un portfolio avec rails + postgres sql
Tutoriel pour créer un blog avec Rails pour les débutants Partie 1
Préparation à la création de l'application Rails
[Rails] J'ai essayé de créer une mini application avec FullCalendar
Tutoriel pour créer un blog avec Rails pour les débutants Partie 2
Tutoriel pour créer un blog avec Rails pour les débutants Partie 0
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
[Rails6] Créer une nouvelle application avec Rails [Débutant]
[Retrait des rails] Créez une fonction de retrait simple avec des rails
[rails] Comment créer un modèle partiel
[Rails 5] Créer une nouvelle application avec Rails [Débutant]
Notes de personnes qui ont trébuché en essayant de créer un projet Rails
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
Créez une discussion d'équipe avec Rails Action Cable
Comment créer facilement un pull-down avec des rails
[Rails] Comment créer un bouton de partage Twitter
Créez des données factices pour le portefeuille avec Faker [Note]
J'ai fait un portfolio avec Ruby On Rails
J'ai essayé de créer un portefeuille avec AWS, Docker, CircleCI, Laravel [avec lien de référence]
[Rails] rails nouveau pour créer une base de données avec PostgreSQL
Rails6 Je veux créer un tableau de valeurs avec une case à cocher
[Introduction] Créer une application Ruby on Rails
Créer un site EC avec Rails 5 ⑨ ~ Créer une fonction de panier ~
Comment supprimer un objet new_record construit avec Rails
Comment générer manuellement un JWT avec Knock in Rails
[Comment insérer une vidéo dans un hameau avec Rails]
J'ai essayé de créer une fonction de message de l'extension Rails Tutorial (Partie 1): Créer un modèle
Commande Docker pour créer un projet Rails avec un seul coup dans l'environnement sans Ruby
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
Code du port C avec de nombreux typecasts vers Swift
Créez un terrain de jeu avec Xcode 12
Je souhaite créer un formulaire pour sélectionner la catégorie [Rails]
Une histoire à laquelle j'étais accro avec toString () d'Interface qui était proxy avec JdkDynamicAopProxy
[Rails 6.0, Docker] J'ai essayé de résumer la construction de l'environnement Docker et les commandes nécessaires pour créer un portfolio
Comment déplacer une autre classe avec une action de bouton d'une autre classe.
J'ai essayé de créer une fonction de message pour l'extension Rails Tutorial (Partie 2): Créer un écran à afficher
J'ai essayé de créer un environnement de développement padrino avec Docker
Comment créer une méthode
Créez un grand nombre d'enregistrements avec une seule commande à l'aide du fichier seeds.rb Ruby on Rails
[Rails] Implémentation de la fonction de catégorie multicouche en utilisant l'ascendance "J'ai essayé de créer une fenêtre avec Bootstrap 3"
L'histoire du refactoring avec un assistant personnel pour la première fois dans une application Rails
Essayez d'imiter l'idée d'un tableau à deux dimensions avec un tableau à une dimension
Je souhaite ajouter une fonction de navigation avec ruby on rails
Une histoire sur la connexion à un serveur CentOS 8 avec un ancien Ansible
Comment renommer un modèle avec des contraintes de clé externes dans Rails
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié
J'ai essayé de créer une fonction de groupe (babillard) avec Rails
Créez un environnement Vue3 avec Docker!
[Tutoriel Rails Chapitre 5] Créer une mise en page
Créer une fonction de pagination avec Rails Kaminari
Créer une nouvelle application avec Rails
Connectez-vous au serveur Rails avec iPhone