window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = finestra if (w.LeadBooster) { console.warn('LeadBooster esiste già') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Rotaie e altri mezzi di trasporto - The Codest
The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2021-06-30
Sviluppo di software

Rotaie e altri mezzi di trasporto

The Codest

Krzysztof Buszewicz

Senior Software Engineer

Rails è un framework compatibile con Rack e incentrato sullo sviluppo rapido di applicazioni. Purtroppo, l'approccio "tutto fuori dalla scatola" e il comportamento cieco del Rails-way spesso fanno perdere qualità al codice dell'applicazione, sia in termini di ricezione (leggibilità) che di funzionamento.

Problemi popolari di Rails e Rails-way

Problemi menzionati in: articolo su Shopify

  • routing,
  • prima delle azioni,
  • grandi azioni nei controllori,
  • metodi privati nei controllori,
  • mixin utilizzati una sola volta,
  • logica nelle viste,
  • Richiami di ActiveRecord,
  • Associazioni,
  • "modelli grassi".

Problemi aggiuntivi

  • Convalida dei record attivi,
  • implicita rispetto a quella esplicita,
  • abuso di DRY,
  • deleghe alle associazioni,
  • chiamate di servizio nei modelli.

Alternative a Rails

Quando si tratta di Rotaie nel Rubino mondo, abbiamo diverse alternative. Altri framework basati su Rack sono: - Sinatra, – Roda, – Hanami.

Cosa li rende unici?

Sia Sinatra che Roda ci offrono una sintassi di routing a blocchi, ma il routing in Sinatra è un elenco e in Roda un albero. In entrambi i framework, dobbiamo occuparci noi stessi dell'implementazione del livello del modello. Nel caso di Roda, è una buona idea utilizzare la gemma Sequel.

Roda è ispirato a Sinatra. È molto leggero di per sé, ma ha molti plugin.

L'Hanami è il momento più vicino a Rotaie per quanto riguarda le aree coperte dal quadro normativo. Le differenze più importanti in termini di utilizzo sono:

  • controllori in Rotaie contro le azioni nell'Hanami,
  • classi/oggetti dedicati che gestiscono una specifica richiesta HTTP, non un controllore per le azioni relative a una specifica risorsa (modello),
  • basato su repository ed entità, separando la persistenza dal resto dell'applicazione, non il modello di record attivo.

La versione 1 di Hanami limita fortemente l'uso della ROM su cui si basa (versione 3 e già 5), quindi non vale la pena utilizzare il livello di modello proposto. Tuttavia, trattandosi di un framework molto aperto, è abbastanza facile implementarvi il proprio modello.

Supplementi per Rails

Vale la pena di utilizzare soluzioni che non dipendono da Rotaie e sono più vicini a quelli "puri" Rubino. Gli strumenti citati nella presentazione sono:

  • Sequel (ORM, alternativa ad ActiveRecord),
  • ROM (mappatore di oggetti),
  • librerie dry-rb: dry-validations, dry-system e dry-monads.

Il sequel è facile da inserire in un progettoè basato su plugin e implementa anche lo schema dei record attivi. Ha un supporto migliore per le query di basso livello rispetto a Rotaie' ActiveRecord.

ROM utilizza Sequel, ma il suo concetto è quello di tradurre tra i record del database e quelli del database. Rubino oggetti. Mira alla velocità e alla trasformazione dei dati. Separa chiaramente il livello di persistenza nell'applicazione.

Le librerie Dry-rb sono strumenti molto utili:

  • La convalida a secco è molto facile da usare nei progetti API e consente un grande controllo sulla correttezza dei dati in entrata,
  • dry-system richiede un po' di pratica e di pazienza da parte degli sviluppatori per essere compreso, ma permette una gestione molto flessibile delle dipendenze nell'applicazione e il caricamento di componenti del progetto in modo isolato; se vogliamo utilizzare questa libreria in Rotaie, possiamo usare i binari a secco,
  • dry-monads è un concetto difficile in teoria, ma in pratica è più facile da capire, il risultato monadi può essere un ottimo modo per aumentare la leggibilità di codice considerando casi specifici invece di ramificare gli if.

Conclusioni

È meglio usare Rotaie in modo da non dover usare Rotaie un giorno.

Fonti

Articoli

  • Il codice puzza nelle applicazioni Rails (di Shopify)
  • Hanami: repozytoria
  • Guide per le rotaie

Quadri

  • Sinatra
  • Roda
  • Hanami

Gemme

  • Sequel
  • ROM
  • Biblioteki dry-rb
  • Validatore di schemi JSON in Ruby (json-schema)
  • Pagy
  • Rodauth
  • rodaut-rail

Specifiche tecniche

  • Cestello
  • Schema JSON

Per saperne di più:

Che cos'è Ruby on Jets e come si costruisce un'applicazione utilizzandolo?

Vuelendar. Un nuovo progetto di Codest basato su Vue.js

Il rapporto settimanale di Codest sui migliori articoli tecnologici. Creare software per 50 milioni di socket simultanei (10)

Articoli correlati

Sviluppo di software

Costruire applicazioni web a prova di futuro: le intuizioni del team di esperti di The Codest

Scoprite come The Codest eccelle nella creazione di applicazioni web scalabili e interattive con tecnologie all'avanguardia, offrendo esperienze utente senza soluzione di continuità su tutte le piattaforme. Scoprite come la nostra esperienza favorisce la trasformazione digitale e il business...

IL CANCRO
Sviluppo di software

Le 10 principali aziende di sviluppo software con sede in Lettonia

Scoprite le migliori aziende di sviluppo software della Lettonia e le loro soluzioni innovative nel nostro ultimo articolo. Scoprite come questi leader tecnologici possono aiutarvi a migliorare la vostra attività.

thecodest
Soluzioni per aziende e scaleup

Essenziali di sviluppo software Java: Guida all'outsourcing di successo

Esplorate questa guida essenziale sullo sviluppo di software Java con successo outsourcing per migliorare l'efficienza, accedere alle competenze e guidare il successo del progetto con The Codest.

thecodest
Sviluppo di software

La guida definitiva all'outsourcing in Polonia

L'aumento di outsourcing in Polonia è guidato dai progressi economici, educativi e tecnologici, che favoriscono la crescita dell'IT e un clima favorevole alle imprese.

IlCodesto
Soluzioni per aziende e scaleup

Guida completa agli strumenti e alle tecniche di audit IT

Gli audit IT garantiscono sistemi sicuri, efficienti e conformi. Per saperne di più sulla loro importanza, leggete l'articolo completo.

The Codest
Jakub Jakubowicz CTO e cofondatore

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

    it_ITItalian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek it_ITItalian