Article image
Lucas Martins
Lucas Martins21/07/2022 20:04
Compartilhe

Guia Inicial Spring Framework Experience

  • #Spring Framework
  • #Java

Inversão de Controle

Inversão de controle trata-se da interrupção do fluxo de execução de um código retirando, de certa forma, o controle sobre ele e delegando-o para uma dependência ou container. O principal propósito é minificar o acoplamento do código.

No Java, falamos mesmo em desacoplamento das classes. Isso permite um ganho enorme em manutenibilidade, além da facilidade de trocar ou acrescentar comportamentos ao sistema, se necessário. Também diminui a possibilidade de ocorrência bugs em cascata.

No Spring Framework, as instâncias das classes são fracamente acopladas, ou seja, a interdependência entre os objetos é mínima.

A inversão de controle, no Spring, é facilitada por outro Design Pattern: Injeção de Dependência.

Injeção de Dependência

A injeção de dependência tem o propósito de evitar o acoplamento de código numa aplicação. Em outras palavras, é a proveniência de instâncias de classes que um objeto precisa sem que este instancie por si mesmo. Podemos dizer que a injeção de dependência é uma forma de aplicar a inversão de controle.

Spring Boot no Spring Framework

image

O Spring Boot facilita bastante a criação de aplicações Java que utilizam o ecossistema Spring com pouca ou nenhuma configuração para executar o projeto. Ele abstrai toda a complexidade que uma configuração completa pode trazer.

Esse módulo do Spring Framework foi desenvolvido com base na ideia de convenção sobre configuração. Ou seja, apenas utilizar submódulos necessários sem preocupação com o trabalho de configuração do spring.

O mundo está cada vez mais ágil e, para desenvolvedores, é crucial ter meios que possam simplificar as configurações que são necessárias para iniciar o desenvolvimento de uma aplicação.

O que é Spring Boot?

Spring Boot é um framework Open Source que nasceu a partir do Spring framework e veio para facilitar as configurações iniciais de um projeto. Mas, vamos voltar um pouco mais na história…

Antes de ambos os frameworks nascerem, as pessoas desenvolvedoras enfrentavam uma grande dor: a perda de tempo configurando projeto ao invés de desenvolver. Tendo isso em vista, em 2003, Rod Johnson criou o Spring framework, que veio com o intuito de simplificar essas configurações para aplicações web.

Isso foi muito benéfico na época, mas logo notaram que, se a aplicação fosse muito grande, as configurações ficavam grandes e complexas também, pois o Spring Framework não isenta configurações, ele apenas simplifica.

Foi então que surgiu o Spring Boot, que fez decolar a plataforma Spring, pois ele nada mais é que uma extensão do Spring Framework, ou seja, ele tem tudo o que existe no outro, de forma embutida. Ele já traz um servidor embarcado e todas as configurações iniciais prontas.

Programação orientada a objetos e programação estruturada

Como a maioria das atividades que fazemos no dia a dia, programar também possui modos diferentes de se fazer. Esses modos são chamados de paradigmas de programação e, entre eles, estão a programação orientada a objetos (POO) e a programação estruturada. Quando começamos a utilizar linguagens como JavaC#Python e outras que possibilitam o paradigma orientado a objetos, é comum errarmos e aplicarmos a programação estruturada achando que estamos usando recursos da orientação a objetos.

A diferença principal é que na programação estruturada, um programa é tipicamente escrito em uma única rotina (ou função) podendo, é claro, ser quebrado em subrotinas. Mas o fluxo do programa continua o mesmo, como se pudéssemos copiar e colar o código das subrotinas diretamente nas rotinas que as chamam, de tal forma que, no final, só haja uma grande rotina que execute todo o programa.

Além disso, o acesso às variáveis não possuem muitas restrições na programação estruturada. Em linguagens fortemente baseadas nesse paradigma, restringir o acesso à uma variável se limita a dizer se ela é visível ou não dentro de uma função (ou módulo, como no uso da palavra-chave static, na linguagem C), mas não se consegue dizer de forma nativa que uma variável pode ser acessada por apenas algumas rotinas do programa. O contorno para situações como essas envolve práticas de programação danosas ao desenvolvimento do sistema, como o uso excessivo de variáveis globais. Vale lembrar que variáveis globais são usadas tipicamente para manter estados no programa, marcando em qual parte dele a execução se encontra.

programação orientada a objetos surgiu como uma alternativa a essas características da programação estruturada. O intuito da sua criação também foi o de aproximar o manuseio das estruturas de um programa ao manuseio das coisas do mundo real, daí o nome "objeto" como uma algo genérico, que pode representar qualquer coisa tangível.

Esse novo paradigma se baseia principalmente em dois conceitos chave: classes e objetos. Todos os outros conceitos, igualmente importantes, são construídos em cima desses dois.

O que é o S.O.L.I.D?

O S.O.L.I.D é um acrônimo que representa cinco princípios da programação orientada a objetos e design de código teorizados pelo nosso querido Uncle Bob (Robert C. Martin) por volta do ano 2000. O autor Michael Feathers foi responsável pela criação do acrônimo:

[S]ingle Responsibility Principle (Princípio da Responsabilidade Única)

[O]pen/Closed Principle (Princípio do Aberto/Fechado)

[L]iskov Substitution Principle (Princípio da Substituição de Liskov)

[I]nterface Segregation Principle (Princípio da Segregação de Interfaces)

[D]ependency Inversion Principle (Princípio da Inversão de Dependências)

image

Fontes:

Spring Framework: conheça o que é e seus módulos (geekhunter.com.br)

Spring Boot: o que é e como usar: O guia inicial! | Insights para te ajudar na carreira em tecnologia | Blog da Trybe (betrybe.com)

POO: o que é programação orientada a objetos? | Alura

Princípios S.O.L.I.D: o que são e porque projetos devem utilizá-los | by Mariana Azevedo | Medium

Compartilhe
Comentários (2)
Lucas Martins
Lucas Martins - 23/07/2022 18:04

Obrigado @Carlos Silva! tmj

Carlos Silva
Carlos Silva - 22/07/2022 20:32

Parabéns pelo esforço man. Ficou muito bom