Helyezze a Ruby on Rails-et egy Slim-re

geekhmerre

A Ruby on Rails a szokásos keretrendszerem a webes alkalmazások készítéséhez. Jó és könnyen használható, de valljuk be: masszívabb, mint a könnyebb vázak, például a Sinatra. Miért rossz? Néhány oka van, a lassú indítási idő és a magas erőforrás-felhasználás csak két leggyakoribb probléma. A Ruby on Rails alkalmazások karcsúsítása lehetővé teszi különféle összetevők használatát (mondjuk a folytatást az ActiveRecord helyett), és javíthatja a rendszer biztonságát. Emlékszik a tavalyi biztonsági drámákra, amelyek a JSON-paraméterek elemzéséhez kapcsolódnak? A legtöbb alkalmazás számára lényegében lényegtelen lenne, ha mindenki, aki nem használja, letiltaná.

Sínek Modularitás
Az egyes modulok engedélyezéséhez cserélje ki a következőket a config/application.rb fájlban:

Amint a fentiekből látható, az ActiveRecordot teljesen eltávolíthatja, ha más adatbázist használ, ugyanaz az ActionMailer vagy a Sprocket. Valószínűleg azonban nincs értelme eltávolítani az ActionControllert.

Belső köztes szoftver verem
Minden Ruby on Rails alkalmazáshoz engedélyezve van a belső middleware-verem. Nézze meg a Dokumentáció e szakaszát, ahol felsorolja és leírja az egyes összetevőket. Egy meglehetősen kicsi Ruby on Rails alkalmazáson, amelyen dolgozom, a verem így néz ki:

A fentiek nagy részét biztonságosan letilthatom a config/application.rb módosításával, például:

Ugyanígy letilthattam az alapértelmezett köztes szoftverek nagy részét, anélkül, hogy kárt tettem volna a kis alkalmazásomban. Vigyázni kell azonban arra, amit letilt. Ha bejelentkezési rendszert használ, akkor munkamenetekre lesz szüksége, ha flash üzeneteket jelenít meg, ne távolítsa el az „ActionDispatch: Flash” ... stb.

Ami a JSON-paraméterek elemzését illeti, ez a legtöbb Ruby on Rails-fejlesztő számára fejfájást okozott tavaly, könnyen letiltható. A JSON-paraméterek értelmezésének letiltásához tegye ezt a sort a config/application.rb fájlba:

Rails API
Ha csak API-t építesz az alkalmazásodhoz, használhatsz egy szép gyöngyszemet, a rails-api nevet.

Helyezze a vezérlőket egy Hunger Slim-re
Ha megnézi az ActionController: Base Ruby on Rails forráskódját, megtudhatja, hogy az öröklődik az ActionController: Metal-ból, és tartalmaz egy csomó modult, amelyekre a vezérlőkben szüksége lehet vagy nem. A vezérlőkészlet karcsúsításának egyik módja az, hogy cseresznyeválogatja azokat, amelyekre szüksége van. Ha csak az alapvető megjelenítésre van szüksége, akkor semmi sem akadályozza meg az ilyen könnyű vezérlők létrehozásában:

Nincs ActionController: HipHop félek, de ez ugyanolyan jól fog működni.

Single File Rails alkalmazások
Oké, nem feltétlenül egyfájlosaknak kell lenniük. De nem kényszerül az alapértelmezett Rails katalógus-struktúra használatára, és igazán karcsúvá és egyedivé teheti azokat.

100% -ban funkcionális Rails alkalmazást azonban csak a config.ru fájlban hozhat létre:

A Gemfile kövér
Ha túl sok könyvtárat tartalmaz, az alkalmazás súlya szempontjából rossz. Ellenőriznie kell a Gemfile-ját, és meg kell győződnie arról, hogy csak a „pry” -hez szükséges drágaköveket igényli-e: fejlesztői csoportban, „rspec” -ban: teszt stb.

A Rails fejlesztői általában arra hajlamosak, hogy alkalmazásokat készen álljanak a használatra kész blokkokkal. Meg kell fontolnia, hogy valóban erre van-e szüksége. Az egyszerű hitelesítés írása vezérlő és két művelet kérdése, lehet, hogy ehhez nincs szükség a Devise-re. Az egyszerű fájlfeltöltések kezelése szinte ugyanolyan egyszerűen megvalósítható, mint a Carrierwave használatakor, sokkal kevesebb kazán kóddal. Javaslom, hogy csak az Ön igényeinek megfelelő minimális megoldásokat készítsen, különösen akkor, ha nem kell az adott drágakő által nyújtott funkciók nagy részét használni. Ha van egy lyuk, mondjuk a Carrierwave-ben, beleértve a gyöngyszemet is, az alkalmazásod is sebezhetővé válhat, és természetesen a kelleténél is nehezebb.

Eddig nagyon jó, ennyi. Szia.:)

Írta: Bunlong Van 2015. május 9., Ruby, Ruby on Rails