TOPIC: OUT-OF-THE-BOX … coringa, java e encapsulamento ???

O que se pode aprender sobre programação em um filme de héroi com um certo quê policial? (…) Muito, caso preste atenção e observe os detalhes, sutileza e entrelinhas. Falo de Batman: O Cavaleiro das Trevas, de 2008 e dirigido por Christopher Nolan. Sequência direta de Batman Begins (2005), nela acompanhamos os esforços das mais diversas esferas do poder público de Gotham City para encontrar e capturar o criminoso/terrorista de alcunha ‘Coringa’. Tendo a ajuda de um certo “justiceiro mascarado”, a corrida pelo tempo transforma-se em uma verdadeira caçada para dar fim a onda de ataques e assassinatos que ocorrem por toda a cidade, vitimando desde civis desempenhando suas atividades (policiais, enfermeiros, “mafiosos”😁😆😁 ) até autoridades no exercício de suas funções (juízes, comissários, agentes públicos). OK VICTOR, MAS AONDE QUER CHEGAR? QUAL É O SEU PONTO? E O QUE ISSO TEM A VER COM JAVA? Fique comigo para descobrir e compreender tudo 😉

Bem meus amigos, é como diz aquela velha expressão em inglês: first things first … Cito ela pois farei, a seguir, um adendo na forma de parágrafo único. Trata-se de um fato sobre mim que gostaria de esclarecer. Não sou programador, tão pouco especialista na linguagem Java. Minha formação não é de desenvolvedor, mas sim de administrador de sistemas e infraestrutura. Oficialmente sou tecnólogo em redes, e minhas afinidades são Linux, Cloud, Servicedesk, Monitoramento, Devops, e linguagens estruturadas (aquelas que não são orientadas). Deixo bem explicito essa última porque é bem provável, quase certo na verdade, que em algum momento eu fale alguma “besteira”, inverdade, ou dado incongruente acerca do Java. A minha desculpa é, mais uma vez, não ser um profissional dessa área em específico. Mas, por favor, não pare de ler agora, já que acredito ter feito o dever de casa, me esforçando ao máximo para buscar fontes confiáveis e fidedignas ao assunto. Por último, antes de dar início a pauta, um apelo a todos os leitores sêniores e plenos em JAVA: comente abaixo suas ressalvas e eventuais correções, gosto de ouvir pessoas, relatos e experiências.

JAVA E POO: PAI E CONCEITO

Programação Orientada a Objetos, POO para os íntimos, é definido como um paradigma (forma de pensar) para escrever programas de computador baseando-se exclusivamente em “objetos”. Nesses casos, os dados seriam campos ou atributos, e os códigos em si, procedimentos ou métodos. Em pouquíssimas linhas, a lógica aqui é: (a) construir um objeto menor, (b) que será peça de um objeto maior, (c) que será usado por outro objeto, este maior ainda, (d) cuja a junção e interação com outros objetos maiores formaram um sistema, (e) onde finalmente será operado por um objeto chamado cliente. Exemplos de linguagens genuinamente orientadas (ou seja, significativas, que não suportam multiparadigma): o próprio Java, C++, Ruby, Perl.

Antes do surgimento da POO, os softwares eram completamente estáticos. Traduzindo em miúdos, os “objetos” contidos neles eram imutáveis durante todo o tempo de execução. Uma vez iniciado, nada se cria, nada se modifica (…) Tudo é o que é, e ponto final. Basicamente, essa era a lei vigente. Somente em meados da década de 60 para o início dos anos 70, é que ocorreria a virada de maré, tendo o nome de Simula67. Uma linguagem de programação concebida em Oslo, na Noruega, pelos pesquisadores Kristen Nygaard e Ole-Johan Dahl. Aqui foram apresentados os conceitos de classe e herança, duas características dentre um conjunto fundamental, utilizado para definir a orientação a objeto.

Sua popularização (não da Simula67, e sim da POO), ou BOOM! … aconteceria um pouco mais tarde. Foi na década de 90, com a criação do Java por James Gosling, e também, é claro, graças a outras linguagens com igual premissa. Mas sendo a citada anteriormente uma das mais populares, permanecendo até os dias de hoje.

1 2 3 Appeared in 1995 Java

THE DARK KNIGHT: “BUS DRIVER? WHAT BUS DRIVER?”

Hipoteticamente falando, imagine a seguinte situação: você foi contratado para ser o arquiteto de um assalto a banco (…) Não, não, melhor ainda 💡 Você foi contratado para escrever um programa que simula um assalto a determinado banco. Evidentemente, o êxito de tal código apenas será considerado se duas condições forem satisfeitas: (A) pelo menos um dos participantes deverá sair vivo e (B) todo o dinheiro que está na sala-cofre precisa ser retirado, movido e transportado junto. E então? Como você faria? 🤔 Difícil não? Possibilidades: (1) armamento pesado e explosivos? (2) captura de reféns para distração e negociação? (3) escavar um túnel subterrâneo até o cofre principal? (4) ataque hacker para causar um apagão interno ou roubo da grana virtualmente? (5) dispersar várias equipes, em pequenos grupos, para realizar ocorrências e delitos por toda a cidade, com o intuito de consumir os recursos locais das autoridades (viaturas, policiais, comunicação, bombeiros, etc)? Pelos parágrafos sucessores ao corrente, deixarei a minha sugestão de plano/script para tamanho objetivo.

Primeiro, divida o seu time de integrantes em dois. Um será incumbido da abordagem tradicional, velha guarda e ortodoxa da coisa, ou seja, basicamente entrar pela porta da frente anunciando o assalto, atirando para o alto e neutralizando pessoal da segurança. Em contrapartida, o outro grupo será a força técnica e especializada, responsável por desativar alarmes, burlar portas e fechaduras eletrônicas, transpor barreiras físicas como paredes e afins, e finalmente descobrir o segredo e ter acessar ao cofre aonde está todo o dinheiro. Muito óbvio, trivial e simples para o leitor? Pois aqui vai o meu pulo do gato 🐱 Se o trabalho de mentoria foi única e exclusivamente seu, por que não ficar com louros da sua conquista apenas para si? Afinal você é o cérebro da operação, não é mesmo?! Portanto, sendo assim, escreva o seguinte em seu pseudo código-fonte …

< BEGIN_OF_CODE >

Fazer reuniões de planejamento, ação, sincronismo e ajustes, que visam definir cada etapa do processo, somente com um (no máximo dois capangas) por vez. A intenção aqui é não deixar que ninguém conheça completamente como é feita a tarefa do outro, e muito menos ter ciência do panorama geral com riqueza de detalhes.

Além de dividi-los em dois grandes times, conforme mencionado no início, divida-os ainda mais em subgrupos (duplas ou trios) para evitar desentendimentos, brigas ou contratempos ocasionados pelas emoções/sentimentos da natureza humana. Esse é um fator impossível de eliminar já que é algo intrínseco e inerente ao homem. Por isso, o mesmo precisa ser mitigado ao máximo possível, para conter eventuais danos.

Escolha a dedo um indivíduo de cada subgrupo para eliminar o seu parceiro, uma vez que o segundo tenha concluído seu trabalho. Mas antes da execução sumária, oriente para que o primeiro deve aguardar um pouco e confirmar, tanto verbalmente quanto visualmente, o sucesso do seu companheiro. Isso despertará sua ambição interna e ganância por dinheiro, pois dessa forma será uma parte a menos para dividir no final, instigando assim dez vezes mais a desempenhar seu papel com perfeição.

Não fique apenas sentando atrás de uma mesa … Coordenando a ação por telefone ou computador … Não, não. Levanta-se! Vá a campo e infiltre-se na sua própria operação! Reforce a importância de todos usarem mascará (o que inclui você) para não serem rastreados depois, e também para que seus “subordinados” não saibam que o chefe está bem ao lado, supervisionando.

Finalmente, e caso tudo ocorra bem, no hall de entrada do banco, ponto de encontro e extração, sobrará apenas você e um capanga (talvez dois). Terminado de arrastar as malas de dinheiro, o(s) capanga(s) restante(s) será(ão) um daquele(s) instruído(s) a eliminar os eventuais remanescentes da equipe. Então, esteja preparado! Verá a si mesmo tornar-se um alvo ambulante. Será indagado e acusado pela suspeita de que o chefe da operação lhe disse a mesma coisa que ordenou para os outros: elimine as partes. Ganhe tempo, movimente-se devagar, posicione-se para longe da porta e confunda-o falando que está errado, pois você está encarregado de matar o motorista do ônibus (…)

– Aposto que o chefe te disse para me matar quando terminássemos.

– Não, não, não. Eu mato o motorista do ônibus!

– Que motorista? De que ônibus? AAARRGGHHHH

– ( Veículo entra de ré e atropela o dito comparsa )

– Esse aí não levanta mais … Levanta?

– ( Gesto negativo com a cabeça )

– O que houve com o resto dos caras?

– ( Disparo de tiros da sua submetralhadora apontada para o peito do motorista )

Pronto! Está feito! Sucesso absoluto!!! Carregue o ônibus com as sacolas, entre e dirija. Saia para a rua no momento em que um comboio de ônibus escolares está passando e se camufle enquanto as viaturas policiais vão no sentido contrário em direção ao banco.

Daily Heath Ledger — daily-joker: THE DARK KNIGHT 2008 |...
Figura 01. Você ☝
Daily Heath Ledger — daily-joker: THE DARK KNIGHT 2008 |...
Figura 02. O comparsa ☝

< END_OF_CODE />

ENCAPSULAMENTO: LEITURA RECOMENDADA

https://dzone.com/articles/why-encapsulation-matters

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.36.8552&rep=rep1&type=pdf

REFERÊNCIAS NERD: BATMAN O CAVALEIRO DAS TREVAS

https://www.youtube.com/watch?v=8VEGGgp-M2w

https://www.youtube.com/watch?v=vetKTtM7YyU

Deixe uma resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.