Como selecionar as habilidades do Groovy developer

Publicado: Última actualização:
Como selecionar as habilidades do Groovy developer

A linguagem de programação Apache Groovy é uma das mais antigas linguagens alternativas de programação em execução na JVM (Java Virtual Machine). O script Groovy compatível com Java-syntax celebra seu 17º aniversário em 2020. As pessoas podem pensar que o desenvolvimento ou o ambiente mais recente das linguagens JVM como o Kotlin tornaram o Groovy redundante.

Bem, isso não podia estar mais longe da verdade!

A comunidade Groovy está mais do que viva e bem viva e a sintaxe Groovy ainda é desenvolvida por um grupo de colaboradores. A linguagem é uma das bibliotecas mais baixadas no ecossistema Java e é apoiado por uma vasta gama de estruturas. Uma das razões de sua popularidade é que o Groovy facilita os testes unitários e automatizados. O que é claro é que quando usado corretamente - o Apache Groovy tem o potencial de dar à sua tecnologia um enorme aumento de produtividade.

Neste guia você vai encontrar:

Um guia para a triagem de habilidades de desenvolvedores Groovy

Se não estás familiarizado com o Groovy, não tenhas medo. Nós criamos uma lista de coisas que você deve saber antes de começar a triagem para o seu próximo desenvolvedor Groovy.

O que é um desenvolvedor Groovy?1. O que é Groovy?

Groovy ou Apache Groovy é uma linguagem de programação baseada em JVM. É dinâmica por natureza, com capacidade de digitação estática e compilação estática. A linguagem de programação Groovy tem como objetivo melhorar a produtividade dos desenvolvedores graças a uma sintaxe concisa, familiar e fácil de aprender. Groovy é um melhorador Java porque oferece maior flexibilidade e até introduz recursos especiais aos aplicativos (aqueles que já foram desenvolvidos podem ser melhorados ou podem ser feitos a partir do zero).

Groovy tem métodos de conveniência que o fazem parecer um pouco parecido com Python ou Ruby. A beleza da linguagem Groovy é que ela pode reduzir o código Java da sua placa de caldeira em uma quantidade substancial. O que é realmente ótimo no Groovy é que ele pode ser usado muito facilmente ao lado do Java no mesmo projeto.

1.1 Qual é a diferença entre Groovy e Java?

Groovy é uma linguagem de programação orientada a objetos que também suporta scripting enquanto Java é uma linguagem de programação orientada a objetos. A sintaxe do Groovy é construída sobre Java, o que significa que o código Java pode ser copiado e colado no Groovy (com algumas exceções), mas não vice-versa.

Groovy é conhecido como uma linguagem de script JVM e muitos desenvolvedores Groovy estão tirando vantagem de sua natureza flexível. Há uma série de casos de uso onde o Groovy é uma escolha melhor do que Java.

Quando se trata de sintaxe, Groovy constrói em cima de Java. Groovy oferece alternativas de sintaxe mais flexíveis do que Java, que tem de confiar muito no código da placa de caldeira. Groovy adiciona muitos aprimoramentos que reduzem a quantidade de código boilerplate, tudo isso enquanto suporta a sintaxe Java. Este é um grande benefício, pois ajuda a tornar o código mais legível.

Groovy oferece um suporte mais abrangente para programação funcional do que Java. Ele oferece capacidades robustas de meta-programação em tempo de execução e compilação, forte suporte à criação de DSLs e capacidades de scripting.

Para um iniciante, Groovy também é provavelmente mais fácil de aprender do que Java, pois muitas coisas básicas podem ser codificadas de forma mais intuitiva.

1.2 O que é semelhante entre Groovy e Java?

Para um programador com conhecimentos prévios de Java, começar a trabalhar com código Groovy é extremamente fácil. A curva de aprendizagem é praticamente plana. Groovy permite-lhe fazer coisas que eram demasiado complexas em Java, mas de uma forma muito mais limpa. Isto em si é uma experiência alegre.

A sintaxe é bastante semelhante para ambos, mas devido às melhorias do Groovy, o seu código é muito mais fácil de ler. A melhor parte é que ambos podem viver juntos no mesmo projeto. A popular estrutura de testes Spock também é construída sobre o Groovy.

Com algumas exceções, você pode copiar/colar código de um arquivo .java para um arquivo .groovy. Groovy fornece importações Java populares out-of-the-box tais como java.io.*, java.lang.*, java.math.BigDecimal, java.math.BigInteger, java.net.*, java.util.*. Estes podem ser usados dentro do código Groovy sem a necessidade de adicionar declarações de importação.

Também é fácil usar tanto Java como Groovy dentro de um projeto Maven ou Gradle.

2. Para que é usado o Groovy?

Groovy pode ser usado como uma linguagem de projeto independente, bem como uma linguagem adicional em projetos Java. Há aplicações de produção construídas totalmente sobre o Groovy, incluindo muitas aplicações web construídas sobre a estrutura Grails (uma estrutura baseada no Groovy semelhante a Ruby on Rails). Muitos estruturas prevalecentes da JVM, incluindo a Primavera, apoiam o Groovy. Além disso, muitas ferramentas e "softwares de cola" são escritos em Groovy.

Como uma linguagem companheira em projectos Java, é frequentemente usada para testes (incluindo a requintada estrutura de testes Spock), trabalhando com Strings, Colecções, e ficheiros JSON ou XML, bem como para criar DSLs (Domain Specific Languages) e scripting. É importante dizer que, apesar de todas as funcionalidades listadas acima, apenas o scripting não pode ser feito em Java.

Groovy também é usado para construir plugins e scripts de ferramentas de construção e como uma poderosa linguagem de script dentro do processo de implantação (por exemplo, Groovy DSL para Jenkins CI/CD).

Veja um desenvolvedor Groovy: o que um recrutador de TI deve saber sobre o Groovy?3. O que é importante para um recrutador de TI saber sobre o Groovy?

Groovy integra-se perfeitamente com o vasto ecossistema Java. Pode ser usado em conjunto com um número significativo de ferramentas e estruturas que funcionam com Java, incluindo Maven e Gradle. A linguagem oferece frameworks de teste de última geração (Spock, Geb) e frameworks de desenvolvimento web fáceis de usar (tais como Grails e Ratpack). Groovy é suportado por vários frameworks de aplicação baseados em Java, incluindo o popular framework Spring. Ele tem até mesmo seu próprio framework para o desenvolvimento de aplicações desktop (Griffon).

3.1 Com que ferramentas e técnicas um desenvolvedor Groovy deve estar familiarizado?

Tal como com Java, o conhecimento de ferramentas de construção, tais como Maven e/ou Gradle será essencial. Além disso, um bom conhecimento funcional de uma IDE como o IntelliJ é importante. Outra coisa a ser levada em conta é que um desenvolvedor Groovy deverá estar familiarizado com pelo menos um framework de aplicação.

Tela de um desenvolvedor Groovy: Verifique as habilidades do Groovy4. Como verificar as habilidades do Groovy na fase de triagem?

Para avaliar as habilidades Groovy de um candidato, um recrutador pode usar um dos seguintes meios:

  • Tarefas de programação
  • MCQs (Perguntas de Escolha Múltipla),
  • MAQs (Perguntas de Resposta Múltipla)
  • Preencha os espaços em branco, perguntas do quadro branco
  • Perguntas de Áudio / Vídeo
  • LogicBox (Plataforma Pseudo-Codificadora baseada em IA)
  • Simuladores de codificação
  • Perguntas verdadeiras ou falsas, etc.

4.1 Rastreamento de um desenvolvedor Groovy usando seu currículo

Um candidato com experiência no desenvolvimento de aplicações, ferramentas ou bibliotecas em Groovy seria claramente uma vantagem.

No entanto, como aprender Groovy é funcionalmente simples para desenvolvedores Java, contratar desenvolvedores Java para posições Groovy também pode ser uma boa idéia. Claro, apenas se eles estiverem interessados em aprender e usar o Groovy no trabalho.

Ambas as tecnologias requerem uma compreensão do mesmo motor subjacente, por isso parece ser uma boa combinação para os iniciantes.

4.2 Que tipo de experiência é importante procurar em um desenvolvedor Groovy?

Isso depende mais do tipo de projeto do que da própria tecnologia.

Pode fazer sentido procurar desenvolvedores com experiência em áreas semelhantes. No entanto, não é algo a tratar como uma condição necessária.

Uma experiência de código aberto tem muitas vezes a vantagem de permitir que você veja as contribuições que o candidato já fez. Este conhecimento pode dar-lhe uma visão sobre as suas capacidades e habilidades.

Tela de um desenvolvedor Groovy: Glossário Groovy4.3 Um glossário Groovy para recrutadores técnicos

Versões Groovy
  • 2.5.x - AG mais recente
  • 2.6.x - ainda alfa
  • 3.0.x - agora disponível RC 2
Estruturas de aplicação
  • Primavera (mais recente AG: 5.2.2.RELEASE) - mais popular,
  • Spring Boot (mais recente GA: 2.2.2.RELEASE) - mais popular,
  • Grails (agora disponível 4.0.x) - relevante se usado no projeto para o qual o recrutamento é feito,
  • Ratpack (AG mais recente: 1.7.x) - relevante se usado no projeto para o qual o recrutamento é feito,
  • Micronaut (mais recente GA: 1.2.x) - relevante se usado no projeto para o qual o recrutamento é destinado,
  • Quarkus (agora disponível 1.1.x) - relevante se utilizado no projecto para o qual o recrutamento se destina.
Construir ferramentas
  • Maven
  • Graduar
IDEs
  • IntelliJ IDEA (provavelmente o mais popular)
  • Eclipse

4.4 As diferentes versões do Groovy

Tem havido muitas revisões do Apache Groovy, mas os lançamentos mais populares são os seguintes:

  • Groovy 1.0
  • Groovy 1.5
  • Groovy 1.6
  • Groovy 1.7
  • Groovy 1.8
  • Groovy 2.0
  • Groovy 2.1
  • Groovy 2.2
  • Groovy 2.3
  • Groovy 2.4
  • Groovy 2.5
  • Groovy 2.6
  • Groovy 3.0

4.5 Que versões são semelhantes entre si? Quais as versões que são diferentes?

Groovy 2.0 tem sido durante muito tempo a linha mais recente com os lançamentos da GA e é a mais amplamente utilizada.

Esta versão oferece um vasto suporte quando se trata de suportar a sintaxe Java. Uma vantagem é que você pode simplesmente copiar/colar grandes quantidades de código Java em classes Groovy e ele compila e roda sem nenhum problema.

Uma atualização significativa do idioma incluiu o Groovy Parrot Parser (disponível por padrão no 3.0 e como opção de entrada a partir do 2.6). Esta atualização suporta mais sintaxe Java, incluindo loops Java, inicializadores de array, métodos de interface padrão, lambdas e referências de métodos, oferecendo quase paridade de sintaxe de 1 para 1 com Java.

Outra diferença é que o Groovy 3.0 inclui algumas mudanças nos nomes das classes/embalagens em comparação com as versões anteriores.

4.6 Qual é a importância dos certificados Groovy para avaliar as capacidades de codificação de um candidato?

Não há certificações bem conhecidas para a língua Groovy. As certificações Java Oracle podem constituir uma vantagem, no entanto, definitivamente não as consideraríamos uma obrigação.

4.7 Outras coisas a procurar no currículo de um desenvolvedor Groovy

Um diploma de ciências da computação geralmente indica um conhecimento mais amplo do campo e certamente poderia ser visto como uma vantagem.

Cuidado com o candidato:

  • Trabalhou em um típico projeto Groovy
  • Participou em grandes projetos, lidando com requisitos únicos e rigorosos (se você está procurando alguém para trabalhar em um sistema empresarial complexo). Se você está procurando alguém para escrever bibliotecas em Groovy ou para trabalhar nas ferramentas de CI/CD, este pode não ser um critério importante
  • Participou num projecto semelhante àquele para o qual está a recrutar

Além disso, se for mencionado o seguinte, estes tipos de actividade podem ser examinados com base na história publicamente visível do candidato:

  • Falando em conferências
  • Participação em conferências
  • Escrever artigos para revistas técnicas
  • Escrever um blog técnico
  • Contribuição para o SAA
  • Contribuir para responder aos sites (por exemplo, Stack Overflow)

Tela de um desenvolvedor Groovy: Perguntas da entrevista de Groovy 5. Questões para fazer durante uma entrevista técnica por telefone/vídeo

É difícil confiar apenas nas palavras de um currículo. Afinal, é importante desafiar o candidato para determinar se ele realmente tem as habilidades que diz ter. Mesmo que seja apenas uma entrevista por telefone, pode ajudá-lo a compreender como o candidato pensa e resolve problemas relacionados com o seu ofício.

5.1 Perguntas sobre a experiência do candidato

  • Há quanto tempo o desenvolvedor trabalha com Groovy e/ou Java?
  • Que tipo de projetos eles criaram com Groovy e/ou Java? Quantos (aplicações web, sistemas distribuídos, ferramentas, DSLs, etc.)?
  • Em que versão do Groovy eles trabalharam?
  • Mais amplamente, em que projetos de desenvolvimento de software eles trabalharam (também em outras tecnologias)?

Estas perguntas irão ajudá-lo a determinar o nível de experiência profissional que o desenvolvedor tem com Groovy e/ou Java. A maior quantidade de experiência, assim como a experiência em projetos similares ao que você está recrutando, deve ser considerada uma vantagem.

Se alguém não tem experiência de trabalho com Groovy, mas tem ampla experiência com outras tecnologias, também pode ser um bom ajuste, desde que seja um aprendiz rápido comprovado.

5.2 Perguntas sobre os conhecimentos e opiniões do candidato

  • Quais são as características mais importantes do Groovy?
  • Quais são as principais diferenças entre Groovy e Java?
  • Quais são algumas boas práticas Groovy quando se usa a língua?
  • O que devo saber ao trabalhar com o Groovy?

Estas perguntas lhe permitirão entender como o candidato conhece bem a tecnologia e se está ciente dos problemas e armadilhas mais comuns.

5.3 Perguntas Comportamentais que você deve fazer para entender como o candidato tem agido no passado

  • Qual é a sua maior conquista em programação? Porque é que isso aconteceu? Como você pode repeti-lo?

Esta pergunta permitirá ao candidato apresentar uma história de sucesso e pode indicar ao recrutador se o candidato está mais interessado em resolver o problema ou em obter os elogios.

  • Qual foi o seu maior problema na programação? Por que isso aconteceu? Como você pode evitar repeti-lo no futuro?

Esta pergunta levará o candidato a descrever um ponto baixo pessoal, e mostrará ao recrutador se o candidato se sente à vontade para falar sobre isso. Pode ainda revelar se o candidato está interessado em resolver o problema ou em transferir a culpa.

  • Você gostaria de orientar um desenvolvedor júnior? Porquê? Como é que o farias? Você tem alguma experiência como mentor de outras pessoas?

Isto permitirá ao recrutador avaliar o interesse do candidato e as competências transversais necessárias para a partilha de conhecimentos.

Confira mais qualidades de um bom desenvolvedor.

Autora - Olga Maciaszek-Sharma

Como selecionar as habilidades de desenvolvedor Groovy Olga Maciaszek-SharmaOlga Maciaszek-Sharma é Engenheira Sênior de Software da Equipe Spring Cloud em PivotalA sua actividade principal é o Spring Cloud Commons (Spring Cloud LoadBalancer), Spring Cloud Contract, Spring Cloud Netflix, e Spring Cloud Gateway. Ela adquiriu experiência enquanto trabalhava com microserviços onde soluções de ponta eram utilizadas, bem como com sistemas legados complexos, implementando tanto novos recursos de negócios como soluções destinadas a melhorar o processo de implantação contínua e configuração de aplicativos. Olga também contribui para vários outros projetos OSS, incluindo JFairy, Jenkins Pipeline Plugin, Jenkins Stash Pull Request Builder Plugin, e Java Gitlab Client. Antes de mudar para o desenvolvimento, ela trabalhou por mais de 3 anos como Engenheira de Garantia de Qualidade, especializada em automação de testes.

Tela de um desenvolvedor Groovy: Testes de codificação Groovy6. Triagem técnica das habilidades de um desenvolvedor Groovy usando um teste de codificação online

A preocupação número um que você deve ter com o recrutamento de um desenvolvedor Groovy é se ele tem habilidades imaculadas de codificação. Groovy é uma linguagem simples que facilita a codificação, mas como todas as línguas, requer boas habilidades de codificação O que é certo, uma tela de currículo e uma tela de telefone o ajudará a filtrar através de alguns de seus candidatos. Dito isto, a última coisa que você quer é convidar um candidato para uma entrevista técnica apenas para descobrir que ele nunca teve as habilidades de codificação que você precisa. Pesadelo.

6.1 Que teste de programação online Groovy você deve escolher?

Ao procurar o direito Groovy teste de programação online você deve certificar-se de que corresponde aos seguintes critérios:

  • O teste reflete a qualidade do trabalho profissional que está sendo realizado
  • A duração não é muito longa, uma a duas horas no máximo.
  • O teste pode ser enviado automaticamente e é simples por natureza.
  • O nível de dificuldade corresponde às capacidades do candidato.
  • O teste vai além de verificar se a solução funciona - ele verifica a qualidade do código e como ele funciona em casos de bordas
  • É o mais próximo possível do ambiente natural de programação e permite que o candidato tenha acesso a recursos relevantes
  • Proporciona ao candidato a oportunidade de utilizar todas as bibliotecas, estruturas e outras ferramentas com as quais se depara regularmente.

6.2 Testes de avaliação de codificação do desenvolvedor do DevSkiller prontos para uso online Groovy

Os testes de codificação DevSkiller usam nossa metodologia RealLifeTesting™ para espelhar o ambiente de codificação real em que seu candidato trabalha. Ao invés de usar algoritmos obscuros, os testes DevSkiller exigem que os candidatos construam aplicações ou recursos. Eles são classificados de forma completamente automática e podem ser levados para qualquer parte do mundo. Ao mesmo tempo, o candidato tem acesso a todos os recursos que normalmente utilizaria, incluindo bibliotecas, frameworks, StackOverflow e até mesmo o Google.

As empresas usam o DevSkiller para testar candidatos usando sua própria base de código de qualquer parte do mundo. Para facilitar, o DevSkiller também oferece uma série de testes de codificação Groovy pré-fabricados como os que estão aqui:

Bota da Primavera
JUNIOR
Competências testadas
Duração
54 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java, Bota da Primavera

Lacunas de código

avaliação do conhecimento de Java

Tarefa de programação - Nível: Fácil

Java | Spring Boot | Estação de Bicicletas HATEOAS - Terminar a implementação da HATEOAS para a API REST.

Groovy
JUNIOR
Competências testadas
Duração
50 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Groovy

Tarefa de programação - Nível: Fácil

Java | Groovy | Método de operação - Implemente um método para resumir os números de uma determinada lista de cordas no Groovy.

Groovy
MÉDIO
Competências testadas
Duração
40 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Groovy, Java

Tarefa de programação - Nível: Médio

Java | Groovy | Aplicação de gestão de voo | Análise de reserva de lugares e voos - Implementar características em falta da aplicação de gestão de dados dos voos como reserva de lugares e análise de voos.

Java Script
MÉDIO
Competências testadas
Duração
80 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Tarefa de programação - Nível: Médio

Java | Flight Manager | Implementar uma aplicação responsável pela gestão de dados de voos

Tarefa de programação - Nível: Médio

JavaScript | Reagir | Formulário de Contacto - Optimizar o preenchimento do formulário para utilizadores do site

Java
MÉDIO
Competências testadas
Duração
55 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java API padrão

Tarefa de programação

candidatura a gerente de vôo, o candidato precisa implementar dois métodos de negócios para encontrar vôos entre duas cidades e gerar uma lista de assentos para um avião. Requer Java conhecimento.

Java
JUNIOR
Competências testadas
Duração
45 minutos, no máximo.
Avaliação
Automático
Visão geral dos testes

Perguntas de escolha

avaliação do conhecimento de Java API padrão

Tarefa de programação

Candidatura a gerente de vôos, o candidato precisa implementar dois métodos de negócios para encontrar vôos e reservar um assento, o que requer conhecimentos básicos sobre Java

Partilhar correio

Saiba mais sobre a contratação de tecnologia

Subscreva o nosso Centro de Aprendizagem para obter informações úteis directamente na sua caixa de entrada.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.

Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore