window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versión: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster ya existe') } 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 }) }, } } })() Ferrocarriles y otros medios de transporte - The Codest
The Codest
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Industrias
    • Fintech y Banca
    • E-commerce
    • Adtech
    • Tecnología sanitaria
    • Fabricación
    • Logística
    • Automoción
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
Flecha atrás VOLVER
2021-06-30
Desarrollo de software

Ferrocarriles y otros medios de transporte

The Codest

Krzysztof Buszewicz

Senior Software Engineer

Rails es un framework compatible con Rack centrado en el desarrollo rápido de aplicaciones. Desafortunadamente, el enfoque de "todo fuera de la caja" y el comportamiento ciego Rails-way a menudo hacen que el código de la aplicación pierda calidad, tanto en términos de su recepción (legibilidad) como de funcionamiento.

Problemas populares de Rails y Rails-way

Problemas mencionados en: artículo sobre Shopify

  • enrutamiento,
  • acciones previas,
  • grandes acciones en los controladores,
  • métodos privados en los controladores,
  • mixins utilizados una vez,
  • lógica en las vistas,
  • Devoluciones de llamada de ActiveRecord,
  • Asociaciones,
  • "modelos gordos".

Problemas adicionales

  • Validaciones de registros activos,
  • implícita sobre explícita,
  • abuso de DRY,
  • delegaciones en las asociaciones,
  • llamadas de servicio en los modelos.

Alternativas a Rails

Cuando se trata de Rieles en el Ruby mundo, tenemos varias alternativas. Otros frameworks basados en Rack son: - Sinatra, – Roda, – Hanami.

¿Qué los hace únicos?

Tanto Sinatra como Roda nos ofrecen una sintaxis de enrutamiento por bloques, pero el enrutamiento en Sinatra es una lista y en Roda - un árbol. En ambos frameworks, tenemos que ocuparnos nosotros mismos de la implementación de la capa del modelo. En el caso de Roda, es una buena idea utilizar la gema Sequel.

Roda está inspirado en Sinatra. Es muy ligero en sí mismo, pero tiene un montón de plugins.

Hanami es lo más cercano a Rieles en lo que respecta a los ámbitos cubiertos por el marco. Las diferencias más importantes en términos de uso son:

  • controladores en Rieles frente a las acciones en Hanami,
  • clases / objetos dedicados a gestionar una solicitud HTTP específica, no un controlador para acciones relacionadas con un recurso específico (modelo),
  • capa de modelo basada en repositorios y entidades, separando la persistencia del resto de la aplicación, no el patrón de registro activo.

Hanami versión 1 limita fuertemente el uso de ROM se basa en (versión 3, y ya es 5), por lo que no vale la pena utilizar la capa de modelo propuesto allí. Sin embargo, como es un framework muy abierto, es bastante fácil implementar allí el modelo propio.

Suplementos para Rails

Merece la pena utilizar soluciones que no dependan de Rieles y se acercan más a lo "puro" Ruby. Las herramientas mencionadas en la presentación son:

  • Sequel (ORM, alternativa a ActiveRecord),
  • ROM (mapeador de objetos),
  • bibliotecas dry-rb: dry-validations, dry-system y dry-monads.

La secuela es fácil de poner en un proyectoEl sistema se basa en plugins y también implementa el patrón de registro activo. Tiene mejor soporte de consultas de bajo nivel que Rieles' ActiveRecord.

ROM utiliza Sequel, pero su concepto es traducir entre registros de la(s) base(s) de datos y Ruby objetos. Busca la velocidad y la transformación de datos. Separa claramente la capa de persistencia en la aplicación.

Las bibliotecas Dry-rb son herramientas muy útiles:

  • La validación en seco es muy fácil de utilizar en proyectos de API y permite un gran control sobre la corrección de los datos entrantes,
  • dry-system necesita un poco de pratcice y paciencia para que los desarrolladores lo entiendan, pero permite una gestión muy flexible de las dependencias en la aplicación y la carga de componentes del proyecto de forma aislada; si queremos utilizar esta biblioteca en Rielespodemos utilizar raíles secos,
  • mónadas secas es un concepto difícil en teoría, pero en la práctica es más fácil de entender, el resultado mónadas puede ser una gran manera de aumentar la legibilidad de código considerando casos específicos en lugar de ramificaciones if.

Conclusiones

Lo mejor es utilizar Rieles para no tener que utilizar Rieles un día.

Fuentes

Artículos

  • El código huele mal en las aplicaciones Rails (por Shopify)
  • Hanami: repozytoria
  • Guías de raíles

Marcos

  • Sinatra
  • Roda
  • Hanami

Gemas

  • Secuela
  • ROM
  • Biblioteki dry-rb
  • Validador de esquemas JSON en Ruby (json-schema)
  • Pagy
  • Rodauth
  • rodauth-rails

Especificaciones

  • Estante
  • Esquema JSON

Más información:

¿Qué es Ruby on Jets y cómo crear una aplicación con él?

Vuelendar. Un nuevo proyecto de Codest basado en Vue.js

Informe semanal de Codest sobre los mejores artículos tecnológicos. Creación de software para 50 millones de sockets simultáneos (10)

Artículos relacionados

Desarrollo de software

Crear aplicaciones web preparadas para el futuro: ideas del equipo de expertos de The Codest

Descubra cómo The Codest destaca en la creación de aplicaciones web escalables e interactivas con tecnologías de vanguardia, ofreciendo experiencias de usuario fluidas en todas las plataformas. Descubra cómo nuestra experiencia impulsa la transformación...

EL MEJOR
Desarrollo de software

Las 10 mejores empresas de desarrollo de software de Letonia

Conozca las principales empresas de desarrollo de software de Letonia y sus innovadoras soluciones en nuestro último artículo. Descubra cómo estos líderes tecnológicos pueden ayudarle a mejorar su negocio.

thecodest
Soluciones para empresas y escalas

Fundamentos del desarrollo de software Java: Guía para externalizar con éxito

Explore esta guía esencial sobre el desarrollo de software Java outsourcing con éxito para mejorar la eficiencia, acceder a la experiencia e impulsar el éxito de los proyectos con The Codest.

thecodest
Desarrollo de software

La guía definitiva para subcontratar en Polonia

El auge de las outsourcing en Polonia está impulsado por los avances económicos, educativos y tecnológicos, que fomentan el crecimiento de las TI y un clima favorable a las empresas.

TheCodest
Soluciones para empresas y escalas

Guía completa de herramientas y técnicas de auditoría informática

Las auditorías informáticas garantizan sistemas seguros, eficientes y conformes. Obtenga más información sobre su importancia leyendo el artículo completo.

The Codest
Jakub Jakubowicz CTO y Cofundador

Suscríbase a nuestra base de conocimientos y manténgase al día de la experiencia del sector informático.

    Quiénes somos

    The Codest - Empresa internacional de desarrollo de software con centros tecnológicos en Polonia.

    Reino Unido - Sede central

    • Oficina 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polonia - Centros tecnológicos locales

    • Parque de oficinas Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Embajada del Cerebro, Konstruktorska
      11, 02-673 Varsovia, Polonia

      The Codest

    • Inicio
    • Quiénes somos
    • Servicios
    • Case Studies
    • Saber cómo
    • Carreras profesionales
    • Diccionario

      Servicios

    • Asesoramiento
    • Desarrollo de software
    • Desarrollo backend
    • Desarrollo Frontend
    • Staff Augmentation
    • Desarrolladores de backend
    • Ingenieros de la nube
    • Ingenieros de datos
    • Otros
    • Ingenieros de control de calidad

      Recursos

    • Hechos y mitos sobre la cooperación con un socio externo de desarrollo de software
    • De EE.UU. a Europa: ¿Por qué las startups estadounidenses deciden trasladarse a Europa?
    • Comparación de los polos de desarrollo de Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filipinas), Eurasia (Turquía)
    • ¿Cuáles son los principales retos de los CTO y los CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condiciones de uso del sitio web

    Copyright © 2025 por The Codest. Todos los derechos reservados.

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