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.
Ž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ų.
Nepalaikomos versijos
Rails ar Ruby nebegauna saugumo pataisų, ir auditai tai jau žymi.
Užstrigę gem’ai
Svarbūs gem’ai apleisti arba užfiksuoti ir blokuoja visus kitus atnaujinimus.
Rizikingi išleidimai
Dėl menko testų padengimo kiekvieną diegimą tenka tikrinti rankiniu būdu.
Lėti puslapiai ir užduotys
N+1 užklausos, trūkstami indeksai ir perkrautos foninės eilės.
Sunkus naujų žmonių įvedimas
Naujiems inžinieriams prireikia savaičių nedokumentuotam kodui suprasti.
Sustojęs produkto planas
Techninė skola suvalgo naujoms funkcijoms skirtą laiką.
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
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.
- 01
Auditas
Versijos, gem’ai, testų padengimas, pasenę sprendimai ir rizikos.
Rezultatas: audito ataskaita - 02
Atnaujinimo planas
Versijų kelias, darbų eiliškumas ir kiekvieno žingsnio sąmata.
Rezultatas: planas + sąmata - 03
Dual boot
Testai kiekvienam pakeitimui vykdomi su abiem versijomis.
Rezultatas: žalias CI abiem versijoms - 04
Laipsniški išleidimai
Maži, atšaukiami išleidimai į produkciją – po vieną versiją.
Rezultatas: išleidimo aprašai - 05
Perdavimas
Veiklos vadovas, likusios techninės skolos sąrašas ir priežiūra pagal poreikį.
Rezultatas: veiklos vadovas
Ką gaunate
Kiekvienas žingsnis duoda rezultatą, kurį galite peržiūrėti ir pasilikti, net jei darbą tęsiate su savo komanda.
| Rezultatas | Formatas | Kada |
|---|---|---|
| Audito ataskaita | Dokumentas su išvadomis ir rizikomis | Audito pabaigoje |
| Atnaujinimo planas ir sąmata | Versijų kelias, kiekvieno žingsnio apimtis | Po audito |
| Pakeitimų užklausos (pull requests) | Peržiūrėtas kodas jūsų repozitorijoje | Kiekvienoje iteracijoje |
| Išleidimo aprašai | Pakeitimų žurnalas kiekvienam išleidimui | Kiekvieno išleidimo metu |
| Veiklos vadovas | Markdown failai repozitorijoje | Perdavimo metu |
Į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
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.
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.