Atualmente é muito comum no processo de contratação de pessoal das empresas de tecnologia a aplicação de provas teóricas ou hands on sobre assuntos relacionados ao cargo pretendido, a fim de validar os conhecimentos do profissional entrevistado. Hoje abordaremos um tema relacionado à tecnologia Java que constantemente é apresentado pelos entrevistadores aos aspirantes ao novo cargo: A diferença entre as classes String, StringBuilder e StringBuffer. Apesar de ser um tema relativamente básico pra quem já desenvolve aplicações baseadas em Java, este é um assunto que alinhado à pressão da entrevista, ansiedade e entre outros, pode causar uma certa confusão no profissional.

Continue reading

Há algum tempo atrás era muito comum encontrar a lógica de persistência de dados junto das regras de negócio. Isto aumentava consideravelmente a complexidade de entendimento e manutenção do projeto. Com o passar do tempo as técnicas de desenvolvimento amadureceram e deram origem a alguns padrões de projeto fortemente utilizados nos dias de hoje, como por exemplo o padrão de projeto MVC (Model – View – Controller). Este design pattern divide a aplicação em camadas com responsabilidades específicas, sendo:

  • Model: responsável por abrigar as lógicas de persistência e conversão de dados do SGDB em objetos da aplicação, de forma genérica ou não.
  • View: objetivo de abrigar todas as informações visuais contendo entradas de dados, regras de visualização, entre outros.
  • Controller: responsável por aplicar as regras de negócio da aplicação.

Padrão MVC

No contexto acima, é possível comparar o design pattern DAO (Data Access Object) com a camada Model do padrão MVC, uma vez que o mesmo surgiu da necessidade de separar as lógicas de persistência das lógicas de negócio da aplicação. Este padrão tem como objetivo trocar informações de forma independente com o SGBD e fornecer os conceitos básicos para a realização de CRUDs ou recursos mais complexas. Quando aplicado de forma correta, toda a necessidade de busca e cadastro de informações é abstraída, tornando o processo de manipulação de dados das entidades transparente às demais camadas do sistema, ou seja, uma classe Pessoa pode ter um DAO dedicado a realizar operações específicas no SGBD, como por exemplo, consultar pessoas por CPF, idade, etc.

Continue reading

Um cenário muito comum para quem desenvolve aplicações utilizando a API do JSF é esbarrar nos famigerados conversores e validadores, e principalmente entender alguns conceitos sobre os mesmos. Apesar destes recursos atuarem de forma transparente em determinados cenários, iludindo o pobre programador de que as vezes as coisas funcionam como um passe de mágica, se faz extremamente necessário entender as premissas básicas de atuação sobre cada um deles.

Continue reading

Page 2 of 212