Curso Rails Flashcards

1
Q

Sobre Ruby:
1. Qual o modelo de execução?
2. Qual o estilo de programação?
3. Qual a tipagem?

A
  1. Ruby é uma linguagem interpretada: você escreve um algoritmo, e a Máquina Virtual do Ruby (MRI) lê, interpreta e executa o código.
  2. É multiparadigma: permite usar abordagens orientadas a objetos (classes, métodos, herança), imperativa/procedural (comandos sequenciais) e funcional (funções como objetos de primeira classe, blocos, lambdas).
  3. É uma linguagem dinâmica: permite modificar estruturas durante a execução.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual a diferença entre um vetor e um hash?

A

Vetor: usamos uma chave fixa (índice) para acessar o valor armazenado.

Hash: lista do tipo chave-valor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Qual a diferença entre usar o “+” e o “«” para concatenar strings?

A

”+” → Não modifica o elemento, gera um novo objeto em memória sempre que usado.
“«” → Modifica o elemento, pode ajudar na performance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que são symbols?

A

Símbolos são “strings imutáveis”, identificador. Garantem que seu uso não implicará na criação de novos objetos sempre que usados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que é o método initialize?

A

Método especial que serve para indicarmos o que a classe deve fazer ao ser instanciada/inicializada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que significa o self dentro de uma classe?

A

O self é o próprio objeto, ou seja, o objeto instanciado.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

O que são variáveis de instância?

A

São as variáveis que existem apenas na instância do objeto. Cada objeto possui seus próprios valores. São precedidas por um “@”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que são accessors?

A

Os accessors servem como atalhos para declaração de atributos de uma classe (como getter e setter).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qual a diferença entre um método de instância e um método de classe?

A

Método de instância: invocado a partir de um objeto.
Método de classe: executado a partir da própria classe.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

O que são módulos em Ruby?

A

Podem armazenar uma coleção de métodos, constantes e outras definições de módulos e classes. Mas não é possível criar objetos baseados em módulos nem criar módulos que herdam de outro módulo. Ao invés disso, você pode injetar um módulo ou uma funcionalidade específica de um módulo em uma classe ou objeto.

Módulos são bons lugares para armazenar constantes em um local centralizado. Também podem atuar como um namespace (permite definir métodos cujos nomes não irão colidir com outros de um programa).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que são gems?

A

São bibliotecas ou conjuntos de arquivos Ruby reutilizáveis, etiquetados com um nome e uma versão.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que é o Bundler?

A

É uma dependência que já vem instalada no rails. É um gerenciador de dependências. Quando rodamos o comando bundle ou bundle install será gerado um arquivo Gemfile.lock contendo informações sobre todas as gems que seu projeto usa e as versões.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qual o significado dos números de uma versão de uma gem?

A

X.Y.Z (Major.Minor.Patch) - exemplo: gem “cpf_utils”, “1.0.0”
O Patch é para correções, Minor para alterações pequenas e Major quando as alterações são grandes, muitas vezes impactando na forma de usar a gem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Qual o significado dos símbolos abaixo nas versões?
gem ‘lerolero’, ‘1.0.1’
gem ‘cpf_utils’, ‘>=1.0.0’
gem ‘faker’, ‘~>1.6.0’

A

gem ‘lerolero’, ‘1.0.1’ # versão exata
gem ‘cpf_utils’, ‘>=1.0.0’ # maior ou igual
gem ‘faker’, ‘~>1.6.0’ # versão parcial, menor que o último número especificado, nesse caso < 2.0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Como eu crio um novo projeto rails e subo o servidor?

A

rails new nome-projeto
rails s

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Em qual pasta/arquivo podemos verificar as informações do db utilizado no projeto?

A

config/database.yml

17
Q

O que é um generator? Dê exemplos.
O que é uma task?

A

É um gerador de código automático. Ex: scaffold (gera um CRUD), controller, view.

Uma task executa uma tarefa. Ex: rodar uma migration. Podemos ver todas as tasks com rails -T

18
Q

O que é o Active Record?

A

O Active Record é é o M do MVC. O rails contém vários projetos/frameworks dentro dele, e o Active Record é o framework responsável por lidar com os dados no rails. O Active Record é também um padrão (especificações), e o framework é a implementação desse padrão. No rails, o Active Record é também o ORM.

19
Q

O que é um ORM?

A

ORM: Object-Relational Mapping. Consegue converter/mapear os objetos/classes do Ruby em algo que o DB entenda e consiga interpretar para gravar, recuperar, etc (e vice-versa).

20
Q

O que são as migrations?

A

São arquivos gerados pelo Active Record onde é especificado (em Ruby) como será a tabela no DB (não precisamos usar SQL diretamente). Pelos arquivos conseguimos saber a sequência de criação/alteração das tabelas do projeto. As migrations ficam localizadas em db/migrate. Sempre que criamos migrations, precisamos aplicar as mudanças no DD, e para isso, usamos algumas tasks predefinidas no Rails. Podemos saber também quais migrations já foram ou não aplicadas ao DB por meio do arquivo db/schema.rb.

21
Q

O nome do model é sempre no plural e das tabelas, no singular. Está certa essa afirmação?

A

Não, é o contrário. A model é no singular, com letra maiúscula. As tabelas são no plural, com letra minúscula.

22
Q

Qual o comando para acessar o DB?

A

rails dbconsole ou rails db

23
Q

O que fazem as tasks abaixo:
rails db:create
rails db:drop
rails db:migrate
rails db:rollback

A

rails db:create #cria o db
rails db:drop #apaga o db
rails db:migrate #executa as migrations
rails db:rollback #desfaz a última migration

24
Q

Quais são os ambientes em rails e onde podemos configurá-los?

A

Desenvolvimento (padrão), teste, produção.
Podemos configurar as gems para cada ambiente no Gemfile, e na pasta config/environments temos configurações gerais para cada ambiente. Em config/database.yml também temos configurações específicas do db para cada ambiente.

O ambiente de desenvolvimento é interessante para debugar aplicação, mostrar logs de erros. Já em produção não precisa mostrar os erros.

25
Q

O que são as actions e o que é a action index?

A

Actions são os métodos dentro do controller, e a index é a action padrão. Ou seja, quando acessamos a rota padrão, estamos invocando a action index, disparando na sequência o arquivo da view com o mesmo nome.

26
Q

O que é ERB?

A

Significa Embedded Ruby, é um sistema de templates para o Ruby. Permite trabalhar com textos, html e expressões Ruby.