Por que o Ruby on Rails é bom e como acelera o desenvolvimento



Este post é uma tradução de um artigo do programador Krzysztof Kopidlowski dedicado a explorar os benefícios do Ruby on Rails. O material será de interesse principalmente para programadores iniciantes e somente para profissionais.

O Ruby on Rails pode economizar o tempo que você costuma gastar desenvolvendo. Só porque ao usar essa estrutura, o código será menor e a funcionalidade permanecerá a mesma.

A Skillbox recomenda: Curso prático "Profissão Web Developer" .

Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".

De Java para Ruby


Para mim, trabalhar com Ruby economiza tempo real. Eu posso me concentrar em métodos e lógica, em vez de mexer com muito código linha por linha. Eu costumava pensar que Java é um divisor de águas, mas depois de conhecer o Ruby on Rails, fiquei ainda mais impressionado.

Há cerca de um ano, escrevo em Java e desenvolvo back-end. Parece-me que qualquer programador que trabalhe com essa linguagem entenderá do que estou falando. Suponha que você queira escrever um terminal para retornar um arquivo .zip. Você pode resolver esse problema sem problemas especiais, mas isso requer centenas de linhas de código.

Mas e se eu lhe disser que algumas dezenas de linhas podem ser dispensadas?



Este é Ruby - uma linguagem de programação de alto nível orientada a objetos, dinâmica, reflexiva e interpretada. Possui uma implementação multithreading independente do sistema operacional, forte digitação dinâmica, um coletor de lixo e muitos outros recursos. Ele escreveu muitos aplicativos da Web, incluindo o GitHub e o Twitter.

Ruby reduz código


Talvez você esteja se perguntando como é geralmente possível reduzir a quantidade de código para várias dezenas de linhas, preservando a lógica indicada acima. Isso é realmente possível, e ainda não estamos falando sobre estruturas, é sobre linguagem pura.

Por exemplo, se você possui uma matriz e deseja aumentar todos os elementos em 2 e, em seguida, retorná-los em ordem inversa em Java, o código será semelhante a este (usando a interface List):

import java.util.*; import java.util.stream.Stream; import static java.util.Collections.reverseOrder; import static java.util.stream.Collectors.toList; public class MyClass { public static void main(String args[]) { List<Integer> list = Stream.of(1, 2, 3) .map(val -> val + 2) .sorted(reverseOrder()) .collect(toList()); list.forEach(System.out::println); } } 

O mesmo em Ruby ficaria assim:

array = Array.new (5,2)
array.map {| x | x + 2} .reverse

A diferença é óbvia. E você não precisa importar classes.

Digitação dinâmica


Depois de termos certeza de que realmente não pode haver muitas linhas de código, podemos pensar no fato de que o tipo de variável não está definido no exemplo acima. Isso é verdade - o fato é que no Ruby todas as variáveis ​​são digitadas dinamicamente.

Se você está escrevendo um método que usa dois parâmetros, não precisa especificar seus tipos, mas pode se concentrar apenas na lógica. Resultado: menos código, mais qualidade e limpeza.

O Ruby também possui muitos métodos proprietários que aceleram a codificação. Ao escrever programas, costumo usar a conversão Hash para matriz e, em seguida, para JSON. No Ruby, eu posso executá-lo com apenas uma linha!

Sobre trilhos


O framework Ruby mais popular é o Rails. Ele fornece aproximadamente a mesma funcionalidade para uma linguagem que o Spring for Java. Gostaria de compartilhar algumas das minhas descobertas que podem ser úteis para você.

Todos os pontos de extremidade em um só lugar

Uma das coisas que eu mais gosto no Rails é que eu só preciso de um arquivo para declarar todos os meus pontos de extremidade. Sempre posso usar o comando terminal $ rake routes para visualizá-las. Essa é uma ótima opção para projetos grandes quando você precisa fazer algo com base no que já está escrito.

Além disso, você pode dividir seus pontos de extremidade em grupos. Por exemplo, quando você possui um modelo de usuário, pode definir os caminhos para todos os seus membros para que cada terminal obtenha automaticamente seu próprio identificador.

Você não precisa usar parâmetros diferentes para os mesmos pontos de extremidade. No Rails, por padrão, você pode passar quaisquer parâmetros para o endpoint e apenas validar aqueles que você gostaria de usar no controlador.

def user_params
params.require (: usuário) .permit (: nome ,: sobrenome ,: data de nascimento,: avatar)
fim

Bancos de dados Rails

Todas as migrações são registradas aqui no aplicativo, portanto, a configuração de um banco de dados em diferentes dispositivos se resume a executar um comando: $ bundle rake db: setup. Portanto, um cliente externo simplesmente não é necessário para configurar ou usar o banco de dados.

E não, o banco de dados que você criou e transferiu para outro dispositivo não ficará vazio: no aplicativo Rails, existe um arquivo chamado seeds.rb no qual você pode especificar todos os registros para os diferentes modelos necessários para o funcionamento do aplicativo. Como resultado, o modelo precisa apenas de algumas linhas de código.

O comando $ bundle rake db: setup possui três funções:

  • Cria um banco de dados se ele ainda não existe;
  • Executa todas as migrações;
  • Insere todos os dados de origem do seu arquivo inicial.

O código é realmente limpo: o ActiveRecords simplesmente grava os métodos que você precisa implementar, não os atributos.

Na estrutura do Hibernate para Java, é necessário registrar todos os atributos com anotações e, em seguida, configuradores para os atributos que você precisa modificar. Nesse caso, você obtém uma grande quantidade de código na saída.

No Rails, o mesmo ocupa uma linha. O esquema do banco de dados é salvo no arquivo schema.rb, criado automaticamente quando a migração é iniciada. E a classe não precisa de setters ou atributos. Quando o último for necessário, basta escrever: Model.attribute - e é tudo.

Como mencionado acima, com o Rails, você pode se concentrar na lógica e nos métodos do seu projeto, e não no código.



Conclusão


O Ruby on Rails oferece ferramentas poderosas, como digitação dinâmica ou bugs, que aceleram muito o processo de programação.

Se você deseja fazer um curso de desenvolvimento de aplicativos da web, tente escrever um pequeno aplicativo Rails para entender como ele funciona. Nunca é tarde para aprender algo novo - mesmo se você preferir ferramentas tradicionais.

Source: https://habr.com/ru/post/pt428487/


All Articles