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.
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