Lors de l'utilisation de Rails, j'ai utilisé puma '',
webpacker '' et `` écoutez '' bien sûr, mais honnêtement, je n'ai pas vraiment compris ce qu'ils signifiaient. Je voudrais résumer ici les principaux joyaux.
Voici les gemmes par défaut générées par Rails 6.
Gemfile
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.3'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
# Use Puma as the app server
gem 'puma', '~> 4.1'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 4.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.7'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Active Storage variant
# gem 'image_processing', '~> 1.2'
# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', require: false
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '~> 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
# Adds support for Capybara system testing and selenium driver
gem 'capybara', '>= 2.15'
gem 'selenium-webdriver'
# Easy installation and use of web drivers to run system tests with browsers
gem 'webdrivers'
end
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
```
Je vais expliquer chacun d'eux.
sqlite3
Une bibliothèque de langage C qui implémente le moteur de base de données SQL.
Puisqu'il n'y a pas de fonction de sécurité telle que pas de définition de mot de passe, il est essentiellement utilisé dans l'environnement de développement et l'environnement de test, et un autre moteur de base de données est utilisé dans l'environnement de production.
https://www.sqlite.org/index.html
puma
Utilisé pour créer un serveur HTTP 1.1 pour les applications Web Ruby. Utilisez le pool de threads pour gérer les demandes.
https://puma.io/
https://github.com/puma/puma
sass-rails
Vous pouvez utiliser Sass (SCSS) avec des rails.
https://github.com/rails/sass-rails
webpacker
Un wrapper Webpack qui implémente les principaux paramètres couramment utilisés dans les applications Web en standard. webpack est un bundler de modules statiques pour les dernières applications JavaScript [^ 1].
[Fonctions principales]
・ [Webpack 4.x.x](https://webpack.js.org/)
-Fonctionnement automatique du code à l'aide de plusieurs points d'entrée [^ 2]
· Convertissez la nouvelle syntaxe JavaScript (ES6) pour qu'elle fonctionne dans le navigateur
・ Abondantes réalisations dans des frameworks modernes tels que React, Vue.js, PostCSS, etc.
https://github.com/rails/webpacker
Jbuilder
Jbuilder fournit un DSL simple (langage spécifique au domaine) pour déclarer des structures JSON.
https://github.com/rails/jbuilder
turbolinks
Suivi des liens plus rapide dans les applications Web.
https://github.com/turbolinks/turbolinks-classic
bootsnap
Il raccourcit le temps de démarrage en optimisant le traitement au moment du démarrage des rails (cache le chemin et le résultat de la compilation ruby).
Il prend également en charge ActiveSupport et YAML.
https://github.com/Shopify/bootsnap/blob/master/README.jp.md
byebug
Outil de débogage.
https://github.com/deivid-rodriguez/byebug
web-console
Une bibliothèque de débogage qui vous permet de lancer une console dans View et de voir l'état des variables et des paramètres. Il devient plus facile de déboguer la partie erreur.
https://github.com/rails/web-console
listen
Il peut détecter les modifications des fichiers et les utiliser comme hooks pour le traitement.
[Fonctions principales]
-Détecte les modifications, ajouts et suppressions de fichiers
-Surveiller plusieurs répertoires
https://github.com/guard/listen
spring
Préchargeur d'application Rails [^ 3]. Il accélère le développement en gardant l'application en arrière-plan, éliminant ainsi le besoin de lancer l'application à chaque fois que vous exécutez un test ou une migration.
https://github.com/rails/spring
spring-watcher-listen
Au lieu d'interroger le système de fichiers [^ 4], Spring utilise Listen pour surveiller les modifications du système de fichiers.
https://github.com/jonleighton/spring-watcher-listen/
capybara
Aide à tester les applications Web en simulant la façon dont les utilisateurs réels interagissent avec l'application.
https://github.com/teamcapybara/capybara
https://en.wikipedia.org/wiki/Capybara_(software)
selenium-webdriver
Comme capybara ne prend pas en charge JavaScript, simulez-le avec sélénium-webdriver.
https://github.com/SeleniumHQ/selenium/tree/trunk/rb
webdrivers
Il est destiné à permettre l'utilisation du navigateur Web et l'obtention d'informations à partir d'un logiciel externe.
https://github.com/titusfortner/webdrivers
tzinfo-data
Utilisé pour les informations de fuseau horaire sous Windows. Vous n'avez pas besoin d'utiliser un système d'exploitation basé sur Unix car vous pouvez accéder aux informations de fuseau horaire du système directement à partir de tzinfo.
https://github.com/tzinfo/tzinfo-data
# Autres joyaux majeurs
bcrypt
Le mot de passe peut être crypté.
https://github.com/codahale/bcrypt-ruby
devise
Vous pouvez créer une fonction d'authentification utilisateur essentielle pour les applications Web. Vous pouvez également créer un formulaire d'inscription et mettre en œuvre l'authentification par e-mail, Facebook, etc.
https://github.com/heartcombo/devise
kaminari
Vous pouvez facilement ajouter une fonction de pagination.
https://github.com/kaminari/kaminari
carrierwave
Fonction de téléchargement d'image.
https://github.com/carrierwaveuploader/carrierwave
active admin
Vous pouvez créer un écran de gestion CRUD.
https://github.com/activeadmin/activeadmin
ruboCop
Un outil d'analyse de code statique qui vérifie s'il est écrit selon les normes de codage.
https://github.com/rubocop-hq/rubocop
pry-rails
Vous pourrez utiliser des méthodes, etc. dans la console des rails comme irb de Ruby.
https://github.com/rweng/pry-rails
faker
Générez de fausses données.
https://github.com/faker-ruby/faker
capistrano
Outil de déploiement automatique.
https://github.com/capistrano/capistrano
# Résumé
Les rails ont une longue histoire, il y a donc beaucoup de gemmes. Il semble difficile de sélectionner si vous êtes débutant. Tout d'abord, il semble nécessaire de sélectionner Gem en choisissant quel type de fonction est requis et combien avant le développement. Je vais mettre en place un site qui semble être une référence pour la sélection de Gem. Je mettrai à jour cet article de plus en plus s'il y a une gemme utile.
[Outil de recherche de gemmes](https://www.ruby-toolbox.com/)
[Site de classement des gemmes](https://bestgems.org/)
[^ 1]: Un outil qui résout les dépendances des fichiers JavaScript qui sont divisés en modules et séparés en un seul fichier.
[^ 2]: L'endroit où le programme commence à s'exécuter. ([Entry Point-wiki](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%83%BC % E3% 83% 9D% E3% 82% A4% E3% 83% B3% E3% 83% 88 #: ~: texte =% E3% 82% A8% E3% 83% B3% E3% 83% 88% E3 % 83% AA% E3% 83% BC% E3% 83% 9D% E3% 82% A4% E3% 83% B3% E3% 83% 88% E3% 81% A8% E3% 81% AF% E3% 80 % 81% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% A0,% E3% 81% 8C% E3% 83% A1% E3% 82% A4% E3% 83% B3% E3% 83% AB% E3% 83% BC% E3% 83% 81% E3% 83% B3% E3% 81% A7% E3% 81% 82% E3% 82% 8B% E3% 80% 82)))
[^ 3]: pré-lire et mettre en cache les images et le contenu avant d'afficher le site. (Référence → [Qu'est-ce qu'un préchargeur](https://www.ikesai.com/words/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83] % 80% E3% 83% BC))
[^ 4]: Principalement pour éviter les conflits tels que la communication, le côté hôte s'informe périodiquement sur chaque périphérique, et lorsque les conditions sont remplies, il envoie et reçoit et exécute divers processus. ([Polling-wiki](https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0_ ( % E6% 83% 85% E5% A0% B1) #: ~: texte =% E3% 83% 9D% E3% 83% BC% E3% 83% AA% E3% 83% B3% E3% 82% B0% EF% BC% 88 polling% EF% BC% 89% E3% 81% A8% E3% 81% AF% E3% 80% 81,% E6% 96% B9% E5% BC% 8F% E3% 81% AE% E3 % 81% 93% E3% 81% A8% E3% 81% A7% E3% 81% 82% E3% 82% 8B% E3% 80% 82))
Recommended Posts