5 coisas que não te ensinam na faculdade de TI, mas que são importantes para a sua carreira de desenvolvedor.

5 ferramentas que não são mostradas na faculdade


Quando entramos na faculdade e recebemos uma quantidade enorme de conceitos e conteúdos, nem sempre a grade consegue abranger todas as ferramentas que serão utilizadas no dia a dia na vida profissional. As ferramentas que vou disponibilizar abaixo, eu também não conheci na faculdade, mas todas foram largamente exigidas no meu dia a dia como programador. Esse artigo tem um cunho introdutório sobre essas ferramentas, portanto leiam, absorvam o conceito e a importância e busquem conteúdos práticos sobre as mesmas. 


Jacoco

O Jacoco é uma ferramenta de análise de cobertura de código para projetos Java. Ele ajuda a medir a eficácia dos testes unitários ao identificar áreas do código que não foram cobertas por testes. O nome Jacoco é uma abreviação de "Java Code Coverage". Ele funciona por meio da instrumentação do bytecode do código Java. Ele acrescenta instruções de monitoramento ao código, permitindo que ele saiba quais linhas de código foram executadas durante a execução dos testes.

O Jacoco pode ser usado em conjunto com diversas ferramentas de build, como Maven, Gradle e Ant. Ele gera relatórios detalhados sobre a cobertura de código, incluindo a porcentagem de linhas de código cobertas, a porcentagem de métodos cobertos e outras estatísticas.

Para utilizar o Jacoco, é necessário adicionar a dependência correta no arquivo de configuração do build do projeto. Em seguida, é necessário configurar o plugin do Jacoco na ferramenta de build utilizada, especificando as classes e os testes que devem ser monitorados. Após a execução dos testes, é possível gerar os relatórios de cobertura usando o comando correspondente.

A seguir, um exemplo de configuração do plugin do Jacoco para Maven:

<build>

  <plugins>

    <plugin>

      <groupId>org.jacoco</groupId>

      <artifactId>jacoco-maven-plugin</artifactId>

      <version>0.8.7</version>

      <executions>

        <execution>

          <goals>

            <goal>prepare-agent</goal>

          </goals>

        </execution>

        <execution>

          <id>report</id>

          <phase>test</phase>

          <goals>

            <goal>report</goal>

          </goals>

        </execution>

      </executions>

    </plugin>

  </plugins>

</build>

Neste exemplo, o plugin do Jacoco é configurado para executar durante a fase de testes do Maven. Ele é utilizado para preparar o agente de monitoramento do Jacoco antes da execução dos testes e gerar os relatórios de cobertura após a execução dos mesmos.

O Jacoco é uma ferramenta poderosa para análise de cobertura de código em projetos Java. Ele permite identificar áreas do código que precisam ser melhor testadas e aumentar a eficácia dos testes unitários. Se você está desenvolvendo projetos Java, é altamente recomendado que você adicione o Jacoco ao seu processo de build e comece a medir a cobertura de código hoje mesmo.

CodeStyle

O CodeStyle do Google é um conjunto de diretrizes de codificação estabelecidas pela gigante da tecnologia, o Google. Essas diretrizes são projetadas para garantir que o código escrito pelos desenvolvedores da empresa seja fácil de entender, manter e modificar. Em outras palavras, o CodeStyle do Google é uma metodologia de desenvolvimento que busca a qualidade do código por meio de convenções de codificação.

Ele é composto por várias recomendações, que variam desde a estruturação do código até a nomenclatura de variáveis e métodos. Uma das principais recomendações é que o código seja escrito com clareza e simplicidade. Para isso, é sugerido que o código seja organizado em pequenas funções, com nomes significativos e que cada função seja responsável por uma única tarefa.

Outra recomendação importante é a utilização de comentários para explicar o propósito de funções, variáveis e trechos de código. Os comentários devem ser escritos em inglês e devem ser claros e concisos. Além disso, o CodeStyle do Google sugere que os comentários sejam utilizados para documentar decisões importantes de design e para alertar sobre problemas conhecidos ou limitações do código.

O CodeStyle também recomenda a utilização de um estilo de nomenclatura consistente para variáveis, métodos e classes. Para isso, é sugerido que as variáveis sejam nomeadas usando camelCase, os métodos com nomes de verbos no infinitivo e as classes com nomes substantivos em CamelCase. O CodeStyle também recomenda a utilização de nomes descritivos e concisos.

Outra recomendação importante é a utilização de testes automatizados para garantir a qualidade do código. O CodeStyle sugere que os desenvolvedores escrevam testes unitários para cada função e método, bem como testes de integração para o sistema como um todo. Esses testes devem ser executados regularmente para garantir que o código esteja funcionando corretamente. Ele também recomenda a utilização de ferramentas de verificação de código para garantir que o código escrito esteja em conformidade com as diretrizes estabelecidas. Essas ferramentas podem ajudar a identificar problemas de estilo de código, como uso incorreto de variáveis ou métodos mal nomeados.

Em resumo, o CodeStyle do Google é um conjunto de diretrizes de codificação que busca a qualidade do código por meio de convenções de codificação. Essas diretrizes incluem a organização do código em funções pequenas e responsáveis, a utilização de comentários claros e concisos, um estilo de nomenclatura consistente e a utilização de testes automatizados e ferramentas de verificação de código. Ao seguir as recomendações do CodeStyle do Google, os desenvolvedores podem escrever código de alta qualidade, fácil de entender, manter e modificar.

Fortify

Fortify é uma ferramenta de análise estática de segurança de software que é amplamente utilizada para identificar vulnerabilidades em código-fonte e bytecode. Ele é projetado para analisar o código-fonte de aplicativos em vários idiomas, incluindo Java, .NET, C++, Python e Ruby. O Fortify é amplamente utilizado por empresas em todo o mundo para garantir a segurança de seus aplicativos e proteger seus dados e usuários.

O Fortify funciona identificando vulnerabilidades em potencial no código-fonte e fornecendo recomendações para corrigi-las. Ele também fornece um conjunto abrangente de regras de segurança e padrões de codificação, que ajudam os desenvolvedores a escrever código mais seguro e resistente a ameaças. Além disso, o Fortify também ajuda a garantir a conformidade com as normas de segurança, como PCI-DSS, HIPAA e OWASP Top 10.

Um exemplo de uso do Fortify é a identificação de vulnerabilidades de injeção de SQL em um aplicativo web. A injeção de SQL é uma técnica comum usada por invasores para explorar vulnerabilidades em aplicativos da web que não foram adequadamente protegidos. Através da injeção de código SQL malicioso, os invasores podem acessar informações confidenciais, como senhas, dados de cartão de crédito e informações pessoais dos usuários.

Para identificar vulnerabilidades de injeção de SQL em um aplicativo, o Fortify analisa o código-fonte em busca de parâmetros de entrada que possam ser manipulados para injetar código SQL malicioso. Ele também analisa o código em busca de vulnerabilidades de codificação, como a concatenação de parâmetros de entrada em uma instrução SQL sem verificar a entrada do usuário.

Por exemplo, suponha que um desenvolvedor tenha escrito o seguinte código para uma página de login:

String username = request.getParameter("username"); String password = request.getParameter("password"); String query = "SELECT * FROM users WHERE username='" + username + "' AND password='" + password + "'";

Este código é vulnerável a injeção de SQL, porque um invasor pode inserir uma string maliciosa no campo de entrada do usuário e manipular a consulta SQL para executar comandos maliciosos. O Fortify identificaria esta vulnerabilidade e recomendaria ao desenvolvedor usar parâmetros preparados para proteger a consulta SQL contra injeção de código malicioso.

Este código é mais seguro porque usa parâmetros preparados para proteger a consulta SQL contra injeção de código malicioso.

Em resumo, o Fortify é uma ferramenta de análise estática de segurança de software que ajuda os desenvolvedores a identificar e corrigir vulnerabilidades em potencial em seu código-fonte. Ele fornece um conjunto abrangente de regras de segurança e padrões de codificação para ajudar os desenvolvedores a escrever código mais seguro e resistente a ameaças.

SonarQube 

é uma plataforma de análise estática de código que fornece ferramentas para garantir a qualidade do código, a segurança e a conformidade com os padrões de codificação. Ele oferece recursos para medir a complexidade do código, detectar bugs, vulnerabilidades e code smells de código, além de fornecer análises de cobertura de testes e integração contínua.

O SonarQube oferece suporte a diversas linguagens de programação, como Java, C++, C#, JavaScript, PHP, entre outras. A plataforma possui um painel de controle fácil de usar, com várias opções de relatórios e visualizações, permitindo que os desenvolvedores acompanhem o progresso da qualidade do código ao longo do tempo.

Um dos principais recursos do SonarQube é a capacidade de detectar code smells de código, que são problemas de código que não necessariamente causam bugs ou falhas, mas que podem levar a problemas futuros. Alguns exemplos de code smells de código incluem código duplicado, código mal estruturado, nomes de variáveis inadequados, complexidade excessiva, entre outros.

O SonarQube também é capaz de detectar vulnerabilidades de segurança no código, como injeção de SQL, Cross-Site Scripting (XSS), gerenciamento inadequado de exceções, entre outras.

Para usar o SonarQube, o desenvolvedor precisa configurar a ferramenta de análise em seu ambiente de desenvolvimento. Uma vez configurada, a ferramenta pode ser integrada ao processo de integração contínua para garantir que a qualidade do código seja verificada automaticamente antes de ser implantado.

Para ilustrar um exemplo do SonarQube, considere o seguinte código em Java:


Este código contém um problema potencial de segurança, pois a chamada para Integer.parseInt() pode lançar uma exceção se o argumento não puder ser convertido em um número. Além disso, o código também contém um smell de código, pois a variável x é inicializada com um valor desnecessário de zero.

Quando analisado pelo SonarQube, ele emite os seguintes alertas:
  • Um alerta de vulnerabilidade: "Não gerenciou uma exceção lançada por Integer.parseInt ()".
  • Um alerta de smell de código: "Remova esta atribuição desnecessária a 'x'".
Esses alertas ajudam o desenvolvedor a identificar problemas potenciais no código e tomar medidas para corrigi-los. Com essas informações, o desenvolvedor pode refatorar o código para evitar vulnerabilidades e melhorar a qualidade geral do código.

Em resumo, o SonarQube é uma ferramenta de análise estática de código que ajuda a garantir a qualidade do código, a segurança e a conformidade com os padrões de codificação. Ele é usado por desenvolvedores em todo o mundo para garantir que seu código seja limpo, seguro e confiável.

Jira e Confluence

O Jira e o Confluence são duas ferramentas poderosas da Atlassian que ajudam as equipes a gerenciar projetos e colaborar de forma mais eficiente. O Jira é uma plataforma de gerenciamento de projetos, enquanto o Confluence é um software de colaboração e gerenciamento de conteúdo. Neste post, vamos explorar como essas duas ferramentas trabalham juntas e como elas podem ser usadas para melhorar a colaboração e a produtividade da equipe.

O Jira é uma ferramenta de gerenciamento de projetos que permite às equipes rastrear tarefas, problemas e bugs em um projeto. Ele permite criar quadros Kanban, scrum boards, roadmaps e outros tipos de painéis, além de fornecer uma visão clara do andamento do projeto. Com o Jira, as equipes podem facilmente monitorar o progresso de uma tarefa ou projeto, atribuir responsabilidades e identificar gargalos e obstáculos.

Por outro lado, o Confluence é uma plataforma de colaboração que permite às equipes criar, compartilhar e gerenciar conteúdo. Com o Confluence, é possível criar páginas, blogs, documentos, anotações e outras formas de conteúdo. Ele também possui recursos de pesquisa poderosos que permitem encontrar rapidamente o conteúdo desejado. O Confluence é especialmente útil para equipes que precisam compartilhar informações e colaborar em tempo real.

O Jira e o Confluence trabalham juntos para fornecer uma experiência de gerenciamento de projetos e colaboração mais completa. Por exemplo, é possível adicionar páginas do Confluence em uma tarefa do Jira, permitindo que as equipes criem documentações detalhadas de um projeto ou tarefa. Além disso, o Confluence pode ser integrado ao Jira para permitir que os usuários visualizem informações de projetos e tarefas diretamente no Confluence.

Vamos ver um exemplo de como o Jira e o Confluence podem ser usados juntos para gerenciar um projeto:

Criação de uma página do Confluence - Primeiro, a equipe pode criar uma página do Confluence para o projeto. A página pode incluir informações sobre o projeto, seus objetivos, cronograma e outros detalhes importantes.

Criar tarefas no Jira - Em seguida, a equipe pode criar tarefas no Jira para o projeto. Cada tarefa deve ser clara e detalhada, com uma descrição, data de vencimento e atribuição de responsabilidades.

Vinculação da página do Confluence às tarefas - Em seguida, a equipe pode vincular a página do Confluence às tarefas no Jira. Isso permite que os membros da equipe acessem facilmente a página do Confluence para obter informações adicionais ou documentação sobre a tarefa.

Colaboração na página do Confluence - Durante o projeto, a equipe pode colaborar na página do Confluence, adicionando informações, atualizações e comentários. Isso permite que a equipe compartilhe conhecimento e trabalhe em conjunto para resolver problemas e encontrar soluções.

Acompanhamento de progresso no Jira - Por fim, a equipe pode usar o Jira para monitorar o progresso do projeto e das tarefas individuais. Eles podem verificar o status das tarefas, atribuir responsabilidades e identificar possíveis gargalos ou atrasos.


Todas as tecnologias citadas são fundamentais e utilizadas nas principais empresas do mundo, então, recomendo que pesquisem mais a respeito e tenham um conhecimento prévio para quando os mesmos forem solicitados na empresa onde trabalha.

Espero ter contribuído e até o próximo post!

Vamos nos conectar! LinkedIn | Github 









Comentários

Postagens mais visitadas deste blog

Desafie Suas Habilidades de Programação: 10 Sites para Iniciantes em Programação de Software.

Alcançando o Sucesso na Busca de Emprego no LinkedIn: Dicas e Estratégias

Impressione com seu perfil no LinkedIn: Conquiste as primeiras oportunidades como Programador.