A Ruby Conf 2018 foi um evento um pouco menor que os últimos anos, mas  foi finalmente uma evento sobre Ruby, principalmente comparado ao ano anterior. Foram dois dias de palestras divididas em três trilhas, duas com conteúdos mais técnicos (com foco em qualidade de código, manutenibilidade e produtividade) e uma focada em soft skills (com foco em desenvolvimento pessoal e ética no trabalho), bastante interessantes e muito bem apresentadas.

Venha conferir algumas impressões do nosso time!

 

Tradeoffs em desenvolvimento de software (George Guimarães – Plataformatec)

Com um conteúdo diferenciado, o palestrante alinha as práticas de desenvolvimento de software e arquitetura de acordo com o estado do negócio. Basicamente empresas ou produtos em estágio inicial, no qual o mercado, a demanda e a estratégia de marketing adequada ainda são incertos, precisam de um desenvolvimento de software adequado a este contexto, por isso deve-se dar preferência ao uso de bancos de dados relacionais, como o PostgreSQL, que é mais tradicional e flexível para armazenar e manipular campos JSON, dispensando a necessidade de bancos de dados “no-sql”, que devem ser avaliados somente em um estágio posterior – se necessário -, quando a empresa precisa de investimentos e estratégias mais agressivas para expansão e crescimento.

George também discute sobre solo programming x pair programming, solo sendo mais adequado à pesquisa por soluções e aprofundamento da qualidade, enquanto o pair programming foca na entrega da solução em detrimento da qualidade. SPA’s (single page applications) devem ser evitadas na fase inicial do negócio, já que são caros no desenvolvimento e manutenção, devido às mudanças constantes que a base de código pode sofrer no caminho. Também foi comentado sobre o trunk based development, uma nova modinha que pouco difere do gitflow.

 

Carreira 3.0 (Andreza Rocha – AfroPython)

Foi uma das palestras mais relacionadas com soft skills, de desenvolvimento pessoal e mais de “humanas” no nosso mundo de TI. A Andreza basicamente ressaltou o fim do plano de carreira, onde você é o responsável pela sua trajetória, e desenvolveu um pouco sobre algumas habilidades não técnicas que são necessárias no mercado de hoje, como criatividade, pensamento crítico, escuta ativa, empatia, capacidade de resolver problemas e adaptabilidade. Senti falta de mais aprofundamento, talvez escolher um dos temas e destrinchar, mas foi bom sair um pouco da trilha técnica e pensar nesse lado mais humano.

 

Code Smells (Elaine Watanabe – Plataformatec)

O tema da palestra foi muito interessante e baseado no ótimo livro “Refactoring: Improving the Design of Existing Code”. A Elaine explicou muito bem várias definições e termos usados no livro, como qualidade de código, testes automatizados, code review e débitos técnicos, além de deixar claro logo de cara o problema de um code smell: um sintoma de algum problema no design do sistema, um código que precisa ser refatorado.

Foram apresentadas algumas ferramentas bem legais que podem ser usadas durante o desenvolvimento, como as gems reek e rubocop, que analisam seu código para detectar code smells e o não uso de boas práticas, como por exemplo, a nomenclatura de um método que não deixa claro a sua intenção.

Apesar da boa abordagem do tema, ficou faltando botar a mão na massa (ou no código), mostrar casos reais ou inspirados em cases reais para melhor ilustrar os excelentes exemplos.

 

Debugando com maestria ( Fábio Perrella – Locaweb)

Foi uma das melhores palestras do primeiro dia, o tema em si parece muito trivial já que debugar nosso código é algo corriqueiro na vida do desenvolvedor, mas a falta de conhecimento da ferramenta debug pode ser um tanto quanto desgastante.

Baseada no uso da gem pry-byebug, foram mostrados desde configuração de comando no arquivo .pryrc, alguns snippets dependendo muito do seu editor de código e muitos comandos muito além do padrão next e continue, como:

  • break  line if condicional
    • Exemplo break 10 if item = 5
  • exit! => reload do terminal sem crash
  • play -l(line) número da linha: utilizado para blocos de códigos.
    • Exemplo play -l 4..6
  • edit -c(current) => é possível editar o código em tempo de execução

 

Tem um nil no meu código (Carolina Karklis – Magnetis)

Uma palestra muito bem estruturada com muitos exemplos teóricos e práticos, (do jeito que a gente gosta!), nos mostrando a  real dificuldade de localizar um erro quando o valor é nil. No mundo ideal, devemos decidir como lidar com o nil, convertendo explicitamente valores que podem ser nulos ou rejeitar corretamente valores que não podem existir. Gostei muito da associação de um bug com um mofo na parede que não para de se alastrar e das perguntas que sempre devemos fazer  “Podemos trocar o nil por outra coisa?” e suas possíveis tomadas de decisão:

  • Podemos ignorar o nil?
  • Se não, podemos transformar em outra coisa?
  • Se não, podemos melhorar a mensagem de erro?

 

Tivemos algumas palestras do tipo Ruby/Rails não está morto, em resposta a vários posts no último ano levantando o fim do hype e a morte da linguagem/comunidade, o que foi bem legal para evidenciar que tudo tem suas fases, com altos e baixos, e cabe a comunidade fortalecer e participar da construção de algo sempre melhor.  

Um ponto legal do evento foi um highlight sobre o ruby 2.6 e as suas novidades (VEM MONSTRO!) além de ter sido batido na tecla dos fundamentos e qualidade do código, um assunto cada vez mais deixando de ser novidade e se tornando o essencial. Foram citados alguns livros técnicos durante as palestras bem interessantes, como Refactoring, do Martin Fowler; Ruby Science, do Thoughtbot; Confident Ruby, do Avdi Grimm; Working Effectively With Legacy Code, do Michael Feathers e 99 Bottles of OOP, da Sandi Metz. Especificamente não técnico foi citado um post bem legal sobre subjetividade de carreira, publicado pela ThoughtWorks Brasil, são cinco minutinhos que valem a leitura! E quem quiser se aprofundar mais sobre o evento, a trilha principal foi publicada no Periscope.

 

Parabéns a todos envolvidos dessa maravilha, em 2019 pretendemos voltar!