[RUBY] [Schienen 6] Über die wichtigsten Edelsteine

Einführung

Bei der Verwendung von Rails habe ich selbstverständlich puma, webpacker und listen verwendet, aber ehrlich gesagt habe ich nicht wirklich verstanden, was sie bedeuteten. Ich möchte hier die wichtigsten Juwelen zusammenfassen.

Rails Standard-Hauptjuwel

Unten finden Sie die Standard-Edelsteine, die von Rails 6 generiert wurden.

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]
```

 Ich werde jeden von ihnen erklären.

sqlite3
 Eine C-Sprachbibliothek, die das SQL-Datenbankmodul implementiert.
 Da es keine Sicherheitsfunktion wie keine Kennworteinstellung gibt, wird sie grundsätzlich in der Entwicklungsumgebung und Testumgebung verwendet, und in der Produktionsumgebung wird ein anderes Datenbankmodul verwendet.

https://www.sqlite.org/index.html

puma
 Wird zum Erstellen eines HTTP 1.1-Servers für Ruby-Webanwendungen verwendet. Verwenden Sie den Thread-Pool, um Anforderungen zu verarbeiten.

https://puma.io/
https://github.com/puma/puma

sass-rails
 Sie können Sass (SCSS) mit Rails verwenden.

https://github.com/rails/sass-rails

webpacker
 Ein Webpack-Wrapper, der wichtige Einstellungen implementiert, die üblicherweise in Webanwendungen standardmäßig verwendet werden. webpack ist ein statischer Modulbündler für die neuesten JavaScript-Anwendungen [^ 1].

 [Hauptfunktionen]
 ・ [Webpack 4.x.x](https://webpack.js.org/)
 -Automatische Code-Aufteilung mit mehreren Einstiegspunkten [^ 2]
 · Konvertieren Sie die neue JavaScript-Syntax (ES6) so, dass sie im Browser funktioniert
 ・ Reichhaltige Erfolge in modernen Frameworks wie React, Vue.js, PostCSS usw.

https://github.com/rails/webpacker

Jbuilder
 Jbuilder bietet eine einfache DSL (domänenspezifische Sprache) zum Deklarieren von JSON-Strukturen.
https://github.com/rails/jbuilder

turbolinks
 Schnellere Linkverfolgung in Webanwendungen.
https://github.com/turbolinks/turbolinks-classic

bootsnap
 Es verkürzt die Startzeit, indem die Verarbeitung zum Zeitpunkt des Starts der Rails optimiert wird (Cache des Ergebnisses für Pfad und Ruby-Kompilierung).
 Es unterstützt auch ActiveSupport und YAML.

https://github.com/Shopify/bootsnap/blob/master/README.jp.md

byebug
 Debug-Tool.

https://github.com/deivid-rodriguez/byebug

web-console
 Eine Bibliothek zum Debuggen, mit der Sie eine Konsole in View starten und den Status von Variablen und Parametern anzeigen können. Das Debuggen des Fehlerteils wird einfacher.

https://github.com/rails/web-console

listen
 Es kann Änderungen in Dateien erkennen und als Hooks für die Verarbeitung verwenden.

 [Hauptfunktionen]
 - Erkennt Dateiänderungen, Ergänzungen und Löschungen
 -Monitor mehrere Verzeichnisse

https://github.com/guard/listen

spring
 Rails Application Preloader [^ 3]. Es beschleunigt die Entwicklung, indem die Anwendung im Hintergrund ausgeführt wird, sodass die Anwendung nicht jedes Mal gestartet werden muss, wenn Sie einen Test oder eine Migration ausführen.

https://github.com/rails/spring

spring-watcher-listen
 Anstatt das Dateisystem abzufragen [^ 4], verwendet Spring Listen, um Änderungen am Dateisystem zu überwachen.

https://github.com/jonleighton/spring-watcher-listen/

capybara
 Hilft beim Testen von Webanwendungen, indem simuliert wird, wie echte Benutzer mit der App interagieren.

https://github.com/teamcapybara/capybara
https://en.wikipedia.org/wiki/Capybara_(software)

selenium-webdriver
 Da Capybara JavaScript nicht unterstützt, simulieren Sie es mit Selenium-Webdriver.

https://github.com/SeleniumHQ/selenium/tree/trunk/rb

webdrivers
 Es soll ermöglichen, dass der Webbrowser bedient und Informationen von externer Software abgerufen werden.

https://github.com/titusfortner/webdrivers

tzinfo-data
 Wird für Zeitzoneninformationen unter Windows verwendet. Unter Unix-basierten Betriebssystemen müssen Sie es nicht verwenden, da Sie direkt von tzinfo aus auf die Systemzeitzoneninformationen zugreifen können.

https://github.com/tzinfo/tzinfo-data

# Andere wichtige Edelsteine

bcrypt
 Passwort kann verschlüsselt werden.

https://github.com/codahale/bcrypt-ruby

devise
 Sie können eine Benutzerauthentifizierungsfunktion erstellen, die für Webanwendungen unerlässlich ist. Sie können auch ein Registrierungsformular für die Mitgliedschaft erstellen und die Authentifizierung per E-Mail, Facebook usw. implementieren.

https://github.com/heartcombo/devise

kaminari
 Sie können ganz einfach eine Paginierungsfunktion hinzufügen.

https://github.com/kaminari/kaminari

carrierwave

 Bild-Upload-Funktion.

https://github.com/carrierwaveuploader/carrierwave

active admin
 Sie können einen CRUD-Verwaltungsbildschirm erstellen.

https://github.com/activeadmin/activeadmin

ruboCop
 Ein statisches Code-Analyse-Tool, das prüft, ob es gemäß den Codierungsstandards geschrieben wurde.

https://github.com/rubocop-hq/rubocop

pry-rails
 Sie können Methoden usw. in der Rails-Konsole wie Ruby's irb verwenden.

https://github.com/rweng/pry-rails

faker
 Generieren Sie gefälschte Daten.

https://github.com/faker-ruby/faker

capistrano
 Automatisches Bereitstellungstool.

https://github.com/capistrano/capistrano

# Zusammenfassung
 Rails hat eine lange Geschichte, daher gibt es viele Edelsteine. Es scheint schwierig zu sein, auszuwählen, ob Sie ein Anfänger sind. Zunächst scheint es notwendig zu sein, Gem auszuwählen, indem vor der Entwicklung ermittelt wird, welche Art von Funktion erforderlich ist und wie viel. Ich werde eine Seite einrichten, die eine Referenz für die Auswahl von Gem zu sein scheint. Ich werde diesen Artikel immer mehr aktualisieren, wenn es einen nützlichen Edelstein gibt.
 [Gem Search Tool](https://www.ruby-toolbox.com/)
 [Gem Ranking Site](https://bestgems.org/)

 [^ 1]: Ein Tool, das die Abhängigkeiten von JavaScript-Dateien auflöst, die in Module unterteilt und in eine Datei unterteilt sind.
 [^ 2]: Der Ort, an dem das Programm ausgeführt wird. ([Einstiegspunkt-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 #: ~: Text =% 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]: Vor dem Anzeigen der Site Bilder und Inhalte vorlesen und zwischenspeichern. (Referenz → [Was ist ein Preloader](https://www.ikesai.com/words/%E3%83%97%E3%83%AA%E3%83%AD%E3%83%BC%E3%83] % 80% E3% 83% BC))
 [^ 4]: Hauptsächlich um Konflikte wie Kommunikation zu vermeiden, fragt die Host-Seite regelmäßig nach jedem Gerät. Wenn die Bedingungen erfüllt sind, sendet und empfängt sie verschiedene Prozesse und führt sie aus. ([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) #: ~: Text =% E3% 83% 9D% E3% 83% BC% E3% 83% AA% E3% 83% B3% E3% 82% B0% E. % 81% 93% E3% 81% A8% E3% 81% A7% E3% 81% 82% E3% 82% 8B% E3% 80% 82)


Recommended Posts

[Schienen 6] Über die wichtigsten Edelsteine
Über Schienen 6
Informationen zum Rails-Routing
[Rails] Über ActiveJob!
Über Rails Controller
[Rails] Informationen zu Migrationsdateien
[Rails] Über aktiven Hash
Informationen zur Versionsspezifikation für Schienen
[Schienen] Standardwerte festlegen
Schienen Starke Parameter
[Anfänger] Über Rails Session
Informationen zum Benennen von Rails-Modellmethoden
[Rails] Informationen zur Struktur des scss-Ordners
[Rails] Informationen zum Rspec-Antworttest
Über Rails Scraping-Methode Mechanisieren
Erfahren Sie mehr über Edelsteine und Bündler
Über das Symbol <%%> in Rails erb
[Rails] Über die Implementierung der Like-Funktion
[Rails] Über die Hilfsmethode form_with [Basic]
Über =
Überlegungen zu Schienen und sauberer Architektur
[Ruby on Rails] 1 Modell CRUD (Routing Main)
[Rails 6.0] Informationen zum Batch-Speichern mehrerer Datensätze
[Ruby on Rails] Informationen zum Active Record-Rückruf
[Rails] Über local: true, beschrieben in form_with