Ruby on Rails kūrimas ir atnaujinimai

Kuriame naujus Rails produktus, plėtojame esamas sistemas ir perkeliame programas į naujausias Rails ir Ruby versijas – mažais, saugiais išleidimais, kol jūsų komanda toliau kuria funkcijas.

Rails 5 / 6 / 7 → 8Ruby 2.x → 3.xDual bootBe funkcijų įšaldymo
Problema

Ženklai, kad jūsų Rails programai reikia dėmesio

Jei jūsų Rails ar Ruby versija nebegauna saugumo pataisų, išleidimai atrodo rizikingi arba puslapiai vis lėtėja, kodo bazei reikia suplanuoto darbo, o ne naujų apėjimų.

01

Nepalaikomos versijos

Rails ar Ruby nebegauna saugumo pataisų, ir auditai tai jau žymi.

02

Užstrigę gem’ai

Svarbūs gem’ai apleisti arba užfiksuoti ir blokuoja visus kitus atnaujinimus.

03

Rizikingi išleidimai

Dėl menko testų padengimo kiekvieną diegimą tenka tikrinti rankiniu būdu.

04

Lėti puslapiai ir užduotys

N+1 užklausos, trūkstami indeksai ir perkrautos foninės eilės.

05

Sunkus naujų žmonių įvedimas

Naujiems inžinieriams prireikia savaičių nedokumentuotam kodui suprasti.

06

Sustojęs produkto planas

Techninė skola suvalgo naujoms funkcijoms skirtą laiką.

Apimtis

Ką apima Rails projektas

Rails projektas apima naują kūrimą, versijų atnaujinimus arba abu. Tiksli apimtis raštu sutariama prieš pradedant darbus.

Kūrimas

  • Naujos Rails programos ir MVP
  • Funkcijos esamose sistemose
  • API ir trečiųjų šalių integracijos
  • Hotwire sąsajos (Turbo, Stimulus)
  • Našumo ir duomenų bazės optimizavimas

Atnaujinimai

  • Kodo bazės ir priklausomybių auditas
  • Rails ir Ruby atnaujinimai po vieną versiją
  • Gem’ų keitimas ir nenaudojamo kodo šalinimas
  • Svarbiausių scenarijų testai
  • CI procesas ir saugumo skenavimas
Įgyvendinimas

Kaip vyksta Rails atnaujinimas

Atnaujiname po vieną versiją, CI aplinkoje lygiagrečiai paleisdami dabartinę ir naujesnę versijas, o kiekvieną žingsnį į produkciją išleidžiame atskirai.

  1. 01

    Auditas

    Versijos, gem’ai, testų padengimas, pasenę sprendimai ir rizikos.

    Rezultatas: audito ataskaita
  2. 02

    Atnaujinimo planas

    Versijų kelias, darbų eiliškumas ir kiekvieno žingsnio sąmata.

    Rezultatas: planas + sąmata
  3. 03

    Dual boot

    Testai kiekvienam pakeitimui vykdomi su abiem versijomis.

    Rezultatas: žalias CI abiem versijoms
  4. 04

    Laipsniški išleidimai

    Maži, atšaukiami išleidimai į produkciją – po vieną versiją.

    Rezultatas: išleidimo aprašai
  5. 05

    Perdavimas

    Veiklos vadovas, likusios techninės skolos sąrašas ir priežiūra pagal poreikį.

    Rezultatas: veiklos vadovas
Rezultatai

Ką gaunate

Kiekvienas žingsnis duoda rezultatą, kurį galite peržiūrėti ir pasilikti, net jei darbą tęsiate su savo komanda.

RezultatasFormatasKada
Audito ataskaitaDokumentas su išvadomis ir rizikomisAudito pabaigoje
Atnaujinimo planas ir sąmataVersijų kelias, kiekvieno žingsnio apimtisPo audito
Pakeitimų užklausos (pull requests)Peržiūrėtas kodas jūsų repozitorijojeKiekvienoje iteracijoje
Išleidimo aprašaiPakeitimų žurnalas kiekvienam išleidimuiKiekvieno išleidimo metu
Veiklos vadovasMarkdown failai repozitorijojePerdavimo metu
Technologijos

Įrankiai Rails darbui

Naudojame standartinius, gerai prižiūrimus Ruby įrankius ir dirbame su tais, kuriuos jūsų komanda jau naudoja.

Atnaujinimas

  • next_rails (dual boot)
  • bundler-audit
  • Brakeman
  • RuboCop

Testavimas

  • RSpec, Minitest
  • Capybara
  • FactoryBot
  • SimpleCov

Vykdymo aplinka

  • PostgreSQL, MySQL
  • Redis, Sidekiq
  • Solid Queue
  • Puma

Sąsaja

  • Hotwire
  • Stimulus
  • Importmap, jsbundling
  • ViewComponent
DUK

Klausimai apie Rails

Ką komandos dažniausiai klausia prieš Rails projektą.

Kiek trunka Rails atnaujinimas?

Tai priklauso nuo pradinės versijos, gem’ų skaičiaus ir testų padengimo. Auditas pateikia kiekvieno versijos žingsnio sąmatą dar prieš jums įsipareigojant visam atnaujinimui.

Ar reikės sustabdyti funkcijų kūrimą?

Ne. Naudojant dual boot, jūsų komanda toliau dirba su dabartine versija, o mes toje pačioje repozitorijoje ruošiame naujesnę.

Ar galite atnaujinti programą, kuri beveik neturi testų?

Taip, tačiau pirmiausia parašome testus svarbiausiems naudotojų scenarijams, kad kiekvieną atnaujinimo žingsnį būtų galima patikrinti automatiškai.

Ar atnaujinate ir Ruby?

Taip. Ruby ir Rails atnaujinimus planuojame kartu, nes naujesnėms Rails versijoms reikia naujesnės Ruby.

Kontaktai

Užsakyti Rails auditą

Nurodykite dabartines Rails ir Ruby versijas ir tai, kas jums labiausiai kelia nerimą. Atsakysime su tolesniais žingsniais ir audito pasiūlymu.