The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2021-06-30
Desenvolvimento de software

Carris e outros meios de transporte

The Codest

Krzysztof Buszewicz

Sénior Software Engineer

O Rails é uma estrutura compatível com o Rack, centrada no desenvolvimento rápido de aplicações. Infelizmente, a abordagem "tudo pronto a usar" e o comportamento cego à maneira do Rails fazem com que o código da aplicação perca muitas vezes qualidade, tanto em termos de receção (legibilidade) como de funcionamento.

Problemas populares do Rails e do Rails-way

Problemas mencionados em: artigo sobre a Shopify

  • encaminhamento,
  • antes das acções,
  • grandes acções nos controladores,
  • métodos privados nos controladores,
  • mixins utilizados uma vez,
  • lógica nas vistas,
  • Chamadas de retorno do ActiveRecord,
  • Associações,
  • "modelos gordos".

Problemas adicionais

  • Validações de registos activos,
  • implícito sobre explícito,
  • abuso de DRY,
  • delegações a associações,
  • chamadas de serviço em modelos.

Alternativas ao Rails

Quando se trata de Carris no Rubi temos várias alternativas. Outros frameworks baseados em Rack incluem: - Sinatra, – Roda, – Hanami.

O que é que os torna únicos?

Tanto o Sinatra como o Roda oferecem nós uma sintaxe de encaminhamento de blocos, mas o encaminhamento em Sinatra é uma lista e em Roda - uma árvore. Em ambos os frameworks, nós mesmos temos que lidar com a implementação da camada de modelo. No caso do Roda, é uma boa ideia usar a gem Sequel.

O Roda é inspirado no Sinatra. É muito leve por si só, mas tem muitos plugins.

O Hanami é o mais próximo de Carris no que diz respeito aos domínios abrangidos pelo quadro. As diferenças mais importantes em termos de utilização são:

  • controladores em Carris vs. acções no Hanami,
  • classes/objectos dedicados que tratam um pedido HTTP específico, e não um controlador para acções relacionadas com um recurso específico (modelo),
  • camada de modelo baseada em repositórios e entidades, separando a persistência do resto da aplicação, e não o padrão de registo ativo.

A versão 1 do Hanami limita fortemente a utilização da ROM em que se baseia (versão 3, e já é 5), pelo que não vale a pena utilizar a camada de modelos aí proposta. No entanto, como se trata de uma estrutura muito aberta, é muito fácil implementar aí o modelo.

Suplementos para Rails

Vale a pena utilizar soluções que não dependam de Carris e estão mais próximos do "puro" Rubi. As ferramentas mencionadas na apresentação são:

  • Sequel (ORM, alternativa ao ActiveRecord),
  • ROM (mapeador de objectos),
  • bibliotecas dry-rb: dry-validations, dry-system e dry-monads.

A sequela é fácil de colocar numa projetoO sistema é baseado em plugins e também implementa o padrão de registo ativo. Tem melhor suporte de consulta de baixo nível do que o Carris' ActiveRecord.

O ROM utiliza a Sequel, mas o seu conceito consiste em traduzir entre registos na(s) base(s) de dados e Rubi objectos. Tem como objetivo a velocidade e a transformação de dados. Separa claramente a camada de persistência da aplicação.

As bibliotecas dry-rb são ferramentas muito úteis:

  • A validação seca é muito fácil de utilizar em projectos de API e permite um grande controlo sobre a correção dos dados recebidos,
  • O dry-system requer um pouco de prática e paciência para que os programadores o compreendam, mas permite uma gestão muito flexível das dependências na aplicação e o carregamento isolado de componentes do projeto; se quisermos utilizar esta biblioteca em CarrisPodemos utilizar carris secos,
  • As mónadas secas são um conceito difícil na teoria, mas na prática é mais fácil de compreender, o resultado das mónadas pode ser uma óptima maneira de aumentar a legibilidade das código considerando casos específicos em vez de ramificar ifs.

Conclusões

É preferível utilizar Carris para não ter de utilizar Carris um dia.

Fontes

Artigos

  • O código cheira mal em aplicações Rails (por Shopify)
  • Hanami: repozytoria
  • Guias de carris

Estruturas

  • Sinatra
  • Roda
  • Hanami

Gemas

  • Sequela
  • ROM
  • Biblioteki dry-rb
  • Validador de Esquema Ruby JSON (json-schema)
  • Pagy
  • Rodauth
  • carris de rodauth

Especificações

  • Cremalheira
  • Esquema JSON

Ler mais:

O que é o Ruby on Jets e como criar uma aplicação com ele?

Vuelendar. Um novo projeto da Codest baseado no Vue.js

O relatório semanal da Codest sobre os melhores artigos de tecnologia. Construindo software para 50 milhões de sockets simultâneos (10)

Artigos relacionados

Ilustração de uma aplicação de cuidados de saúde para smartphone com um ícone de coração e um gráfico de saúde em ascensão, com o logótipo The Codest, representando soluções digitais de saúde e HealthTech.
Desenvolvimento de software

Softwares para o setor de saúde: Tipos, casos de uso

As ferramentas em que as organizações de cuidados de saúde confiam atualmente não se assemelham em nada às fichas de papel de há décadas atrás. O software de cuidados de saúde apoia agora os sistemas de saúde, os cuidados aos doentes e a prestação de cuidados de saúde modernos em...

OCODEST
Ilustração abstrata de um gráfico de barras em declínio com uma seta ascendente e uma moeda de ouro que simboliza a eficiência ou a poupança de custos. O logótipo The Codest aparece no canto superior esquerdo com o slogan "In Code We Trust" sobre um fundo cinzento claro
Desenvolvimento de software

Como dimensionar a sua equipa de desenvolvimento sem perder a qualidade do produto

Aumentar a sua equipa de desenvolvimento? Saiba como crescer sem sacrificar a qualidade do produto. Este guia cobre sinais de que é hora de escalar, estrutura da equipe, contratação, liderança e ferramentas - além de como o The Codest pode...

OCODEST
Desenvolvimento de software

Construir aplicações Web preparadas para o futuro: ideias da equipa de especialistas do The Codest

Descubra como o The Codest se destaca na criação de aplicações web escaláveis e interactivas com tecnologias de ponta, proporcionando experiências de utilizador perfeitas em todas as plataformas. Saiba como a nossa experiência impulsiona a transformação digital e o negócio...

OCODEST
Desenvolvimento de software

As 10 principais empresas de desenvolvimento de software sediadas na Letónia

Saiba mais sobre as principais empresas de desenvolvimento de software da Letónia e as suas soluções inovadoras no nosso último artigo. Descubra como estes líderes tecnológicos podem ajudar a elevar o seu negócio.

thecodest
Soluções para empresas e escalas

Fundamentos do desenvolvimento de software Java: Um Guia para Terceirizar com Sucesso

Explore este guia essencial sobre o desenvolvimento de software Java outsourcing com sucesso para aumentar a eficiência, aceder a conhecimentos especializados e impulsionar o sucesso do projeto com The Codest.

thecodest

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

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

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

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