quarta-feira, 1 de fevereiro de 2017

O que é o Spring ? O que são frameworks ? As frameworks Spring que você deve saber...



     


     Quando uma pessoa decide procurar um emprego na área de desenvolvimento de software, mais especificamente com Java, durante as inúmeras entrevistas técnicas, deve ter se deparado com perguntas do tipo... Você conhece Spring ? Você alguma vez já trabalhou com Spring ? O que é injeção de dependência ?
    
      Muitos profissionais que iniciam sua carreira de desenvolvedores irão, em sua grande maioria, se deparar com alguma ou todas essas perguntas e isso com certeza irá contar muito pontos se você souber falar pelo do que se trata, se você já utilizou e como utilizou. 

     Pessoas em geral, quando questionados em algo que não sabem, tendem a inventar ou expressar palavras vagas sobre o assunto. Por exemplo: 

     Entrevistador: Você já trabalhou com Spring ?
     Candidato: Sim

    Entrevistador: Com qual framework e como você utilizava ela no seu projeto ?
    Candidato: Eu colocava uma anotação na classe.

    A partir desde ponto, já consegue-se ter uma idéia de que o candidato não tem o perfil esperado pela vaga ou seu conhecimento do spring é bastante superficial.
    
    Esse tópico tem como objetivo informar o que é Spring e quais são suas frameworks mais utilizadas no mercado para que você ,candidato, consiga com clareza, explicar e entender esses tipos de perguntas em entrevistas técnicas.





   1 - O que é Spring?


   Quando te perguntarem o que é Spring sempre questione de qual framework ele está querendo saber.

   Spring - "https://projects.spring.io/spring-framework/" é um conjunto de frameworks Java que hoje é criado e mantido pela Empresa Pivotal Software.

   Esses frameworks são utilizados em larga escala e aprender as principais é o mínimo que um desenvolver Web - Java deve saber bem para conseguir ser produtivo e trabalhar com aplicações de nível profissional.




2 - O que são frameworks ?


  Mas afinal o que são frameworks ? Se você já de deparou com qualquer aplicação Java pode ver que em sua estrutura temos bibliotecas .jar referências no mesmo.

 Se você observar, vai ver que para seu static void man rodar você deve ter previamente instalado uma jdk ou jre(Se você não sabe do que se trata, acesse http://dominanciajava.blogspot.com.br/2016/10/configurando-jdk-no-windows-para.html ). Isso acontece porque o código Java na verdade precisa de uma máquina especial (JVM) capaz de entender esse código Java compilado e converter isso para que uma CPU convencional consiga executar seu programa corretamente.

  Porém, os jars que estão referenciando a sua aplicação , são dependências ou bibliotecas criadas na linguagem Java para automatizar, auxiliar ou executar seu código e todas as atividades para você.
  Com esse entendimento, frameworks são, nada mais nada menos, que um conjunto de bibliotecas criadas para executar uma determinada tarefa. São considerados frameworks, quando esse conjunto é extenso e aplicado em qualquer projeto de forma para facilitar, otimizar ou executar tarefas que o auxiliarão no projeto a ser desenvolvido.




3 - Spring frameworks:


http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html

   Primeiramente, vou dar alguns comentários sobre algumas das frameworks que são bastante utilizadas do spring, mas fica a dica: Leia a documentação do próprio spring http://docs.spring.io/spring/docs/current/spring-framework-reference/html/overview.html.

   Além de conter muito mais informações do que eu vou colocar aqui, esse é um processo no qual todo técnico deve estar habituado a fazer. Pesquisar, ler e entender documentações técnicas e não apenas respostas prontas do stackoverflow.

   Spring core:

       Essa é a framework fundamental para conseguir utilizar os outros frameworks do spring. Ela é responsável por prover a Injeção de Dependência (Dependency Injection e Inversão de Controle (IoC) fora outras coisas bastante importante no qual auxiliam no desenvolvimento. Esses conceitos apresentados anteriormente são requiridos para se entender como essa parte e as demais da framework funcionam. Aqui é um divisor de águas em um entrevista de técnicos junior... os que sabem esses conceitos, os que sabem usar apenas, porém não conhece o conceito (ai mudou a cor da grama de verde para marrom já não consegue desenvolver mais) e os que não fazem idéia.

   Spring jdbc:

        Spring jdbc provê todas as classes que serão responsáveis por realizar a interface com o banco de dados de modo genérico, ou seja, independente de qual seja seu banco de dados (MySQL, Oracle ou MsSQL), essa framework fornecerá meios sofisticados de realizar toda a interação com o banco de dados.

   Spring MVC:

         Para essa framework, antes de utiliza-lá você precisa entender o que são Java Servlets, o que é o design pattern MVC (Model - View - Controller) e praticá-los de modo a se tornarem automáticos e o conceito seja fixado. O spring-webmvc provê uma clara separação entre as camadas, fornecendo também componentes para a camada View. Essa framework também provê implementações para REST Webservices. Saber webservices hoje é fundamental, ainda mais se tratando de arquitetura de micro serviços.

     Como escrevi anteriormente, existem várias outras frameworks do Spring que são muito utilizadas no desenvolvimento Java profissional. Muito conceitos utilizados pelo Spring foram aplicados no Java EE 7 e Java EE 8.
 


Considerações


     Esse artigo tem como objetivo clarificar do que se trata cada assunto e mostrar um caminho para os iniciantes na carreira de desenvolvimento de software. Perceba que, mais importante do que saber usar uma determinada framework é... o conceito por de trás dela. A leitura e prática são necessários para formar o conhecimento e pode ter certeza que em uma entrevista técnica de poucos minutos qualquer Senior consegue identificar se a pessoa "domina" aquilo que ela supostamente está colocando em seu currículo.

   Sempre seja sincero na entrevista e coloque aquilo que você realmente sabe. Desta forma, você não irá se frustar em uma entrevista e não fará com que os entrevistadores ( que geralmente são profissionais que são alocados por algumas horas para isso) percam seu tempo com alguem que irá usar o "jeitinho brasileiro" para conseguir uma posição no qual não está preparado.


 Boa sorte e bons estudos.

 
  

Um comentário: