Orientação a Objeto

Banco Imobiliário

A orientação a objeto é um paradigma essencial na programação moderna. JavaScript, apesar de sua flexibilidade como linguagem de múltiplos paradigmas, permite uma abordagem robusta nesse modelo. Assim como em outras linguagens, a orientação a objetos no JavaScript envolve conceitos fundamentais como classes, objetos, encapsulamento, herança e polimorfismo.

Trago um exemplo no GitHub do jogo Banco Imobiliário, para isso vamos analisar a Classe Conta.

Classe de um Objeto

Objetos são a base desse paradigma. Em JavaScript, eles podem ser criados de maneira literal ou através de funções construtoras. No entanto, com a introdução das classes na ECMAScript 6 (ES6), a organização do código tornou-se mais estruturada e intuitiva. A palavra-chave “class” permite definir um modelo para criação de objetos, facilitando a reutilização de código e promovendo a legibilidade.

A classe “Conta” exemplifica bem esses princípios. Ela encapsula propriedades como “nome”, “salario”, “saldoInicial” e “lista_imoveis”, protegendo os dados e garantindo que a lógica seja aplicada corretamente. Além disso, métodos como “pegarEmprestimo” e “atualizarSaldo” permitem interações específicas, garantindo que as operações financeiras sejam executadas de maneira controlada.

Analogamente, a classe “Banco” centraliza a gestão das contas e transações. A propriedade “contas” armazena os correntistas, enquanto métodos como “extratoDeTodos” e “transferir” possibilitam uma visão abrangente e a movimentação de valores entre jogadores. Dessa forma, o código promove uma clara separação de responsabilidades, o que facilita a manutenção e a expansão futura.

Encapsulamento

O conceito de encapsulamento significa que certos dados e funcionalidades de um objeto não devem ser diretamente acessados de fora da classe. Embora JavaScript não possua modificadores de acesso como “private” e “protected” nativamente, práticas como a utilização de closures e convenções (como prefixar propriedades privadas com um underline) ajudam a preservar essa ideia. Por exemplo, ao definir propriedades dentro do construtor sem métodos de acesso público, garantimos que apenas a própria classe manipule esses valores.

Além disso, a herança é um dos pilares desse paradigma. Com ela, classes podem estender outras classes, reaproveitando métodos e propriedades sem precisar reescrevê-los. Embora o código apresentado não implemente herança diretamente, seria possível criar subclasses para diferentes tipos de contas, como “ContaCorrente” e “ContaPoupanca”, cada uma com regras específicas de operação.

Polimorfismo

O polimorfismo, por sua vez, permite que diferentes classes compartilhem métodos com comportamentos distintos. Suponha que a classe “Conta” possua um método “extrato”. Se criássemos uma classe “ContaPremium” que sobrescrevesse esse método para fornecer um extrato mais detalhado, estaríamos utilizando polimorfismo de sobrescrita, uma técnica valiosa para modularidade e personalização.

A lógica de um jogo financeiro como o apresentado demonstra a importância desses conceitos. Ao estruturar o código com classes e métodos bem definidos, evita-se redundância e facilita-se a compreensão das regras. Além disso, funcionalidades como “comprarImovel” e “sortearOrdemJogada” evidenciam como métodos encapsulam ações específicas, promovendo a organização do código.

É inegavelmente vantajoso adotar a orientação a objetos em projetos JavaScript. Além de melhorar a organização e a escalabilidade, esse paradigma favorece boas práticas de desenvolvimento, como o princípio da responsabilidade única (SRP), que preconiza que cada classe deve ter apenas um motivo para mudar. Dessa maneira, um código orientado a objetos tende a ser mais sustentável a longo prazo.

Programação OO ou funcional

Vale mencionar que JavaScript permite abordagens híbridas. Ou seja, nem sempre é necessário seguir um modelo puramente orientado a objetos. Em alguns casos, o uso de funções e programação funcional pode ser mais eficiente. Entretanto, para sistemas mais complexos, a orientação a objetos continua sendo uma escolha sólida.

Portanto, ao desenvolver aplicações JavaScript, é fundamental compreender e aplicar os conceitos de orientação a objetos. Um código bem estruturado não apenas melhora a legibilidade, mas também facilita a manutenção e a colaboração em equipe. Dessa forma, ao implementar classes, encapsular dados e reaproveitar funcionalidades, os desenvolvedores podem criar soluções mais robustas e eficientes, promovendo a escalabilidade e a reutilização de código em projetos diversos.

Geolocalização

Mapa

Geolocalização com Flask e SQLite: Crie uma API para Gerenciar Usuários

A geolocalização é uma funcionalidade essencial em muitas aplicações modernas. Seja para rastrear dispositivos, fornecer informações locais ou gerenciar dados de usuários, é crucial implementar uma solução eficiente. Neste post, mostramos como criar uma API em Python usando Flask e SQLite, permitindo o cadastro e gerenciamento de usuários com dados de localização.

Estrutura da API

Nossa API oferece operações CRUD (Create, Read, Update, Delete) para gerenciar uma tabela USUARIO. A tabela inclui os campos:

Para implementar essa API, usamos Flask para criar rotas HTTP e SQLite para armazenar os dados.

Configurando o Banco de Dados

O banco de dados é criado automaticamente com a estrutura adequada ao inicializar o sistema. A rota /initdb executa os scripts SQL definidos nos arquivos drop_schema.sql e create_schema.sql para garantir que a estrutura esteja pronta.

 

Map.js

Style.css

index.html

app.py

Nossa API oferece as seguintes rotas para interagir com os dados:

Adicione novos usuários enviando um JSON com os campos obrigatórios:

Na opção Salvar Nome o browser perguntará se você permiti dar o acesso da sua geolocalização.
Caso concorde será salvo na sua base de dados a sua geolocalização no mapa, mas para visualizar terá que atualizar a página.

Na rota “/usuarios” visualize todos os registros na base de dados.

Tomei a liberdade de adicionar alguns ícones no projeto para distinguir os seguintes tipos:

Basta cadastrar um dos tipos acima mencionados para colocar a geolocalização com um ícone respectivo ao tipo.

Use o Postman para executar as API’s.

Visualização

mapa

Conclusão

Com esta API, você inicia o trabalho de geolocalização e gerenciamento de usuários em suas aplicações.
Aproveite o código fornecido para construir soluções mais inteligentes e conectadas!