terça-feira, 31 de julho de 2012

Orientação a objeto básica

Orientação a objeto básica
Motivação problemas do paradigma procedural

Orientação à objeto é uma maneira de programar que ajuda na organização e resolve muitos problemas enfrentados pela programação procedural.

Consideremos o clássico problema da validação de um CPF. Normalmente, temos um formulário, no qual recebemos essa informação, e depois temos que enviar esses caracteres para uma função que irá validá-lo, como no pseudocódigo abaixo:

Cpf = formulario->campo­_cpf
Valida (cpf)

Alguém te obriga sempre validar esse CPF? Você pode inúmeras vezes, esquecer de chamar esse validador. Mais considere que você tem 50 formulários e precise validar em todos eles o CPF. Se sua equipe tem 3 programadores trabalhando nesses formulários, quem fica responsável por essa validação? Todos!.

A situação pode piorar na entrada de um novo desenvolvedor, precisaríamos avisá-lo que sempre devemos validar o CPF de um formulário. É nesse momento que nasce aqueles guias de programação para o desenvolvedor que for entrar nesse projeto (às vezes é um documento enorme). Em outras palavras, todo desenvolvedor precisa ficar sabendo de uma quantidade enorme de informações, que na maioria das vezes não está realmente relacionado a sua parte no sistema, mas ele precisa ler tudo isso, resultando um entrave muito grande.

Outro ponto onde fica o problema da programação procedural é quando nos encontramos na necessidade de ler o código que foi escrito por outro desenvolvedor e que somos usuários desse pedaço do sistema. Um sistema bem encapsulado não deveria gerar essa necessidade. Em um sistema grande simplesmente não temos tempo de ler uma grande parte do código.

Considerando que você não erra aí e que sua equipe tem uma comunicação muito grande (perceba que comunicação excessiva pode ser prejudicial e atrapalhar o andamento), ainda temos outro problema, imagine que agora em todo formulário você também quer que a idade do cliente também seja validada, precisa ser maior de 18 anos. Vamos ter de colocar um IF..., mas onde? Espalhado por todo seu código... Mesmo que se crie outra função para validar, precisaremos incluir isso nos nossos 50 formulários já existentes. Qual é a chance de esquecermos um deles? É muito grande.

A responsabilidade de verificar se o cliente tem ou não tem 18 anos, ficou espalhada por todo seu código. Seria interessante poder concentra essa responsabilidade em um só lugar, para não ter chances de esquecer isso.

Melhor ainda seria se conseguíssemos mudar essa validação e os outros programadores nem precisassem ficar sabendo disso. Em outras palavras, eles criariam formulários e um único programador seria responsável pela validação, os outros nem sabem da existência desse trecho de código. Um mundo ideal? Não, o paradigma da orientação a objeto facilita tudo isso.

O problema é que não existe uma conexão entre seus dados. Não existe uma conexão entre seus dados e suas funcionalidades, a idéia é ter essa amarra através da linguagem.

Quais as vantagens

Orientação a objetos vai ter ajudar muito a se organizar e escrever menos, além de concentrar as responsabilidades nos pontos certos, flexibilizando sua aplicação, encapsulando a lógica de negócios.

Outra enorme vantagem, de onde você realmente vai economizar montanhas de código, é o polimorfismo das referências, que veremos em um post posterior.


segunda-feira, 30 de julho de 2012

Apresentando o Eclipse IDE


Eclipse IDE
Dá-se importância aos antepassados quando já não temos nenhum.”
Franções Chateaubriand

O Eclipse

O Eclipse (www.eclipse.org ) é um IDE (integrated development environment). Diferente de uma RAD, onde o objetivo é desenvolver o mais rápido possível através de arrastar e soltar do mouse, onde montanhas de códigos são gerados em background, um IDE te auxilia no desenvolvimento, evitando se intrometer e fazer muita mágica.

O Eclipse é um IDE líder de mercado. Formada por um consórcio liderado pela IBM, possui seu código livre. A última versão em desenvolvimento é a 3.2. Precisamos do Eclipse 3.1 ou posterior, pois a partir dessa versão é que a plataforma dá suporte ao Java 5.0. Você precisa ter apenas a Java RE instalada.

Vermos aqui os principais recursos do Eclipse, Você irá perceber que ele evita ao máximo te atrapalhar, e apenas gera trechos de códigos óbvios, sempre ao seu comando. Existem também centenas de plugins gratuitos para gerar diagramas UML, suporte a servidores de aplicação, visualizadores de banco de dados  e muitos outros.

Baixe o Eclipse do site oficial www.eclipse.org. Apesar de ser escrito em Java, a biblioteca gráfica usada no Eclipse, chamada SWT, usa componentes nativos do sistema operacional. Por isso, você deve baixar a versão correspondente ao seu sistema operacional.

Descompacte o arquivo e pronto; basta rodar o executável.

Outras IDEs 

Uma outra IDE open source famosa é o Netbeans, da Sun. (www.netbeans.org ), além dessas, Oracle, Borloand e a própria  IBM possuem IDEs comerciais.

Apresentando o Eclipse

Abra o terminal e digite eclipse. A primeira pergunta que ele te faz é que workspaca você vai usar. Workspace define o diretório em que as suas configurações pessoais e seus projetos serão gravados.

Logo em seguida uma tela de Welcone será aberta, onde você tem diversos links para tutoriais e ajuda. Clique em Workbench. A tela de Welcome do Eclipse 3.2 é um pouco diferente da do 3.1.

Views e Perspective 

Feche a tela de Welcone. Mude para a perspectiva Resource clicando no ícone ao lado da perspectiva Java selecionando Other e depois Resource. Neste momento, trabalharemos com esta perspectiva antes da de Java, pois ela possui um conjunto de Views mais simples.

A View Navigator mostra a estrutura de diretório assim como está no sistema de arquivos. A View Outline mostra um resumo das classes, interfaces e enumerações declaradas no arquivo Java atualmente editado (serve também para outros tipos de arquivos).

Por hoje é só, logo estarei postando a continuação deste post com as imagens. Infelizmente o tempo não me permite ficar mais, obrigado pela visita, espero que sempre fiquem acompanhando o blog, estou postando conteúdos novos todos os dias, só um pouco de paciência por que ainda estamos no inicio abraços.

domingo, 29 de julho de 2012

Código Simples em HTML


     Vou post um pouco sobre html, por enquanto é só o básico, como vocês sabem o blog ainda está no início, mas se vocês tiverem um pouco de paciência e forem acompanhando o blog, irei posta sobre o Asp.Net, para deixarmos nossas páginas mais dinâmicas, então vamos lá.

<html>

 <head>
   <title> Meu primeiro site </title>
     </head>
      <body>
        <h1> Minha primeira página em html</h1>
      <p> Como disse esse é só o básico, ou seja, não é muito flexível, mas<br>
              para qualquer coisa que você for fazer tem que ter o básico vamos<br>
              lá, agora é com vocês.</p>
       </body>
       </html>

     Este é um código em HTML bem simples, como sabemos existem ferramentas de desenvolvimentos que facilitam bastante, mas para tirarmos melhor proveito destas ferramentas é essencial que conheçamos o básico, tudo se inicia na base não é verdade?. 

     Eu digitei este código no bloco de notas do Windows, para rodar não se esqueça de salvar como ponto html, ou seja, o nome da sua escolha e o ponto html. Exemplo:
Meuprimeiroteste.html.

Atributo Link, Vlink, Alink e BGCOLOR em HTML


     Para que serve os atributos Link, Vlik e Alink no html? Servem para fazer o controle das cores do textos que funcionam como link na página. Imagine a seguinte situação quando você entra em uma página da web ao clicar em um link no corpo da página, quando você retorna a página pode perceber que o link que você clicou já não esta mais com a mesma cor, é onde entra os comandos link, vlink e alink, vamos ver como eles funcionam e sua sintaxe.

LINK : É usado para defini cores para o links não visitados ainda, a cor padrão é o azul.

VLINK : Este define as cores para os links já visitados, ou seja, aqueles que você já deu um click neles, a cor padrão do vlink é o vermelho púrpura.

ALINK : Este define as cores dos links selecionados, melhor dizendo quando o usuário pressionou o botão do mouse e ainda não soltou sua cor padrão é o vermelho.

    Amigos agora que sabemos para que serve, iremos ver sua sintaxe, lembrando que estamos vendo o html puro, ou seja, sem nem um programa da edição de páginas web, claro hoje existe alguns programas que facilitam bastante a vida do web design, mas de qualquer forma temos que ter uma base para facilitar o uso dessas ferramentas, então vamos lá.

Sua sintaxe é : <body link="#RRGGBB" vlink="# RRGGBB" alink="#RRGGBB"><\body>

BGCOLOR

      O atributo BGCOLOR é usado para determinar a cor do plano de funda da página, assim permitindo que defina uma cor de fundo padrão para a página, isto evita a necessidade de utilizar um arquivo de imagem, como sabemos pesa bem mais ao abrimos uma página, não é interessante que a página demore a abrir, certamente o usuário ficaria irritado. Mas vale lembra que hoje com as novas tecnologias e ferramentas para desenvolvedores web à a possibilidade de usarmos páginas com imagem dividindo a imagem em várias partes e unido-a para o usuário, mas vamos ver a sintaxe do BGCOLOR caso você opte apenas por uma cor de fundo na sua página web.

Sua sintaxe é : <body bgcolor="#FFFFCC"> O corpo da página </body>

    Vou ficando por aqui, espero ter ajudado, logo estarei postando mais sobre HTMl, espero que volte sempre, abraços.  

Criação de Tabelas Mysql


      Olá amigos, vamos aprender a criar tabelas para nosso BD (Banco de Dados). Para estes comandos terem validades você já tem que está com seu ambiente de trabalho preparado, sua database já tem que está criada, e tem que está selecionada, para fazer isto basta digitar o comando, "use nome_database" sem as aspas.

      Vamos imaginar que já temos nosso ambiente de trabalho, então vamos criar uma tabela chamada cliente, que estará relacionando com as tabela estado, cidade. Em outro post estarei mostrando como você prepara seu ambiente de trabalho, iremos aprender a criar um BD do inicio ao fim, mas para isto temos que aprender alguns comandos primeiro. Então sem mais delongas vamos ao que interessa.
 
    Vamos começa por uma tabela que não tenha chave estrangeira, isso iremos ver nas definições de dados, mas isto será em outro post, como disse vamos imaginar que já temos todo nosso ambiente de trabalho preparado e só temos que digitar os comandos de criação. 
      

Criando a tabela  "Estado"

create table estado (                                                   
id int not null primary key auto_increment,               
nome varchar (50) not null,
sigla char (2) not null);
 
 
Criando a tabela "Cidade"
 

create table cidade (
id int not null primary key auto_increment,
nome varchar (50) not null,
idestado int not null,
foreign key (idestado) references estado (id));

 
Criando a tabela "Endereco"
 

create table endereco (
id int not null primary key auto_increment,
logradouro varchar (100) default null,
setor varchar (50) default null,
idcidade int not null,
foreign key (idcidade) references cidade (id));

 
Criando a tabela "Cliente"


create table cliente (
id int not null primary key auto_increment,
nome varchar (45) not null,
cpf char (11) default null,
identidade varchar (20) default null,
idendereco int not null,
telefone1 char (12) default null,
telefone2 char (12) default null,
contato_email varchar (100) default null,
contato_msn varchar (100) default null,
foreign key (idendereco) references endereco (id));

Pesquisar Informações no Banco de Dados Mysql


Olá amigos, bom nesse post vamos aprender como fazer select, ou seja, fazer pesquisar no banco de dados. Vamos fazer um select para as tabelas do post "Criação de tabelas Mysql", mas é só seguir a lógica e você conseguira fazer para o seu banco de dados, então vamos ao que interessa.

Criando o select

Pesquisar Informações Sobre o Cliente

SELECT C.ID AS 'ID CLIENTE',
       C.NOME AS 'CLIENTE',
       C.CPF AS 'CPF',
       C.IDENTIDADE AS 'IDENTIDADE',
       E.LOGRADOURO AS 'LOGRADOURO',
       E.SETOR AS 'SETOR',
       CD.NOME AS 'CIDADE',
       ES.SIGLA AS 'UF',
       C.TELEFONE1 AS 'FONE 1',
       C.TELEFONE2 AS 'FONE 2',
       C.CONTATO_EMAIL AS 'E-MAIL',
       C.CONTATO_MSN AS 'MSN'
FROM CLIENTE C, ENDERECO E, CIDADE CD, ESTADO ES
WHERE C.IDENDERECO = E.ID AND
      E.IDCIDADE = CD.ID AND
      CD.IDESTADO = ES.ID
ORDER BY C.NOME;


Pesquisar Informações Sobre As Cidades


SELECT C.ID AS 'ID CIDADE',
       C.NOME AS 'CIDADE',
       E.SIGLA AS 'UF'
FROM CIDADE C, ESTADO E
WHERE C.IDESTADO = E.ID
ORDER BY C.NOME;


Pesquisar Informações Sobre Os Estados


SELECT E.ID AS 'ID ESTADO',
       E.NOME AS 'ESTADO',
       E.SIGLA AS 'UF'
FROM ESTADO E
ORDER BY E.NOME;


Pesquisar Informações Sobre Os Endereços


SELECT E.ID AS 'ID ENDERECO',
       E.SETOR AS 'SETOR',
       C.NOME AS 'CIDADE',
       ES.SIGLA AS 'UF',
       E.LOGRADOURO AS 'LOGRADOURO'
FROM ENDERECO E, CIDADE C, ESTADO ES
WHERE E.IDCIDADE = C.ID AND
      C.IDESTADO = ES.ID
ORDER BY C.NOME;



Entendendo o Código


Com o comando "SELECT" eu estou pedindo para ele selecionar as informações, o "FROM" é como aquele amigo chato que fica colocando apelido, ou seja, ele põe apelidos nos campos das tabelas, Exemplo: ESTADO E, CIDADE C, CLIENTE CL, aqui eu chamei o estado de "E", cidade eu chamei de "C" e o cliente eu chamei de "CL", isto porque se estiver dois campos diferentes com o mesmo apelido irá confundir o select. O comando "WHERE" e um a cláusula, ele faz comparações, um exemplo disso é no select do cliente ele diz que o campo IDENDERECO da tabela cliente é igual ao campo ID da tabela Endereço, e assim por diante, usando essa cláusula eu posso pesquisar informações que estão em tabelas diferentes usando um único select único.


Criando as View


Depois de termos feito os select, vamos criar uma view, para que serve um view? Bom ele serve para não termos a necessidade de esta digitando repetidas vezes os comandos do select sempre que precisarmos dele, mas, para criar a view é importante sempre criar o select e testa. Então vamos à criação da view.


Para criar a view é muito simples, após ter criado o select e testado basta escrever "create view "nome da view" as e o select", veja o exemplo abaixo, vou criar a view para pesquisar meus clientes.

create view pesquisar_clientes as 
SELECT C.ID AS 'ID CLIENTE',
       C.NOME AS 'CLIENTE',
       C.CPF AS 'CPF',
       C.IDENTIDADE AS 'IDENTIDADE',
       E.LOGRADOURO AS 'LOGRADOURO',
       E.SETOR AS 'SETOR',
       CD.NOME AS 'CIDADE',
       ES.SIGLA AS 'UF',
       C.TELEFONE1 AS 'FONE 1',
       C.TELEFONE2 AS 'FONE 2',
       C.CONTATO_EMAIL AS 'E-MAIL',
       C.CONTATO_MSN AS 'MSN'
FROM CLIENTE C, ENDERECO E, CIDADE CD, ESTADO ES
WHERE C.IDENDERECO = E.ID AND
      E.IDCIDADE = CD.ID AND
      CD.IDESTADO = ES.ID
ORDER BY C.NOME;

Criando tabelas com relacionamentos, MySql


Criando um Banco de Dados

     Imaginem que vocês precisem criar um banco de dados para um banco qualquer, todas as tabelas devem se relacionar para facilitar na hora de fazer a pesquisa, ou seja, à hora de pesquisar informações sobre o cliente, o endereço dele, o saldo em determinada data, não vou está postando os select para fazer a pesquisa neste post, mas assim que sobra um tempinho vou fazer outro post para criação do select para este banco de dados, espero que gostem, e se gostarem da um +1 ai. Lembrando guarde o código para usarmos o select.

     Estou criando usando o Query Browser, e para executar os comandos bastas selecionar a linha e aperta Ctrl + Enter. “Quando digo selecionar a linha é só clica em qualquer parte do código que você quer executar, qualquer lugar entre “create” e o “;" ponto e virgula, ele serve para finalizar o código.

Criando a Database para o banco de dados

create database Banco_Dionatan;
     Selecionando a database para não precisar ficar digitando o nome em cada tabela, facilita bastante na criação das tabelas.

use Banco_Dionatan;


     Criando a tabela estado, começamos por ela porque não tem uma chave estrangeira, sempre devemos começa a criar as nossas tabelas por uma que não tenha uma chave estrangeira, mas porque isto? Simples como você irá relacionar uma coisa com outra que não existe? Vejamos o seguinte à tabela estado não relaciona com nem uma outra, mas a tabela cidade relaciona com o ID da tabela estado, então se cria-se a tabela cidade primeiro daria erro, isto porque a tabela estado ainda não existe, então o campo id da tabela estado também não. Acho que agora deu para entender? Se ainda tiver alguma dúvida, deixe um comentário que vou tentar explicar melhor.

create table estado (
id int not null auto_increment primary key,
nome varchar (50) not null,
sigla char (2) not null);

     Criando a tabela cidade, a tabela cidade relaciona com a tabela estado, ou seja, na tabela cidade o campo idestado relaciona com o campo da tabela estado id.

create table cidade (
id int not null auto_increment primary key,
nome varchar (50) not null,
idestado int not null,
foreign key (idestado) references estado (id));

     Criando a tabela endereco, a tabela endereco se relaciona com a tabela cidade pelo campo idcidade na tabela endereco,ou seja, idcidade é igual ao id da tabela cidade.

create table endereco (
id int not null auto_increment primary key,
logradouro varchar (100) default null,
cep char (8) not null,
idcidade int not null,
foreign key (idcidade) references cidade (id));

     Criando a tabela cliente, a tabela cliente relaciona com a tabela endereco, onde o campo da tabela cliente id endereco se relaciona com o campo da tabela endereco no id.

create trable cliente (
id int not null auto_increment primary key,

nome varchar (50) not null,

cpf varchar(8) not null,

idendereco int not null,

logradouro varchar (100) default null,

telefone1 varchar (14) default null,

telefone2 varchar (14) default null,

Email varchar (100) default null,

foreign key (idendereco) references endereco (id));


     Criando a tabela conta, a tabela conta se relaciona com a tabela cliente através do campo na tabela conta idcliente, este campo liga no id do cliente.

create table conta (

id int not null auto_increment primary key,

banco varchar (50) not null,

idcliente int not null,

agencia varchar (100) not null,

conta varchar (15) not null,

foreign key (idcliente) references cliente (id));


     Criando a tabela operações, a tabela operações relaciona com a tabela conta através da chave estrangeira idconta, que se liga no campo id da tabela conta.

create table operecoes (

id int not null auto_increment primary key,
idconta int not null,
saldo float (11,2) default null,
retirada float (11,2) default null,
foreign key (idconta) references conta (id));

 
     Devem ser criadas as tabelas na mesma ordem por questões de relacionamento, com essa estrutura será capaz de pesquisar qualquer informação que deseja, porque todos os campos tem ligação um com o outro, então basta criar seus selects personalizado.

     Não altere o código imaginado que digitei errado. Exemplo: endereco ao invés de endereço, isto porque quando se estiver digitando o código a algumas regar, entre elas é jamais usar o "~" ão, fazer isto é um crime.

História do Java



Introdução o que é Java

     Muitos associam Java com uma maneira de deixar suas páginas da web mais bonitas, com efeitos especiais, ou para fazer pequenos formulários na web.

O que associa as empresas ao Java?

     Já iremos neste ponto, mas antes vãos ver o motivo pelo qual as empresas fogem das outras linguagem:

Quais são os seus maiores problemas quando está programando?

programando?
Ponteiros?
Liberar memória?
Organização?
Falta de bibliotecas boas?
Ter de reescrever parte do código ao mudar de sistema operacional?
Custo de usar a tecnologia?

     Java tenta amenizar esses problemas. Alguns desses objetivos foram atingidos muito tempo atrás, porque, antes do Java 1.0 sair, a ideia é que a linguagem fosse usada em pequenos dispositivos, como TVs, aspiradores, liquidificadores e outros. Apesar disso a linguagem teve seu lançamento mirando o uso dela nos clientes web (browser) para rodar pequenas aplicações (applets). Hoje em dia esse não é mais o foco da linguagem.

     O Java é desenvolvido e mantido pela Sun (http://www.sun.com) e seu site principal é o http://java.sun.com . (Java.com e um site mais institucional, voltado ao consumidor de produtos e usuários leigos, não desenvolvedores).

A história do Java

     A Sun criou um time (conhecido como Green Team) para desenvolver inovações tecnológicas em 1992. Esse time foi liderado por James Gosling, considerado o pai do Java. O time  voltou com a ideia de criar um interpretador (já era uma máquina virtual, veremos o que é isso mais a frente) para pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos, como vídeo cassete, televisão e aparelhos de TV a cabo.

     A ideia não deu certo, tentaram fechar diversos contratos com grandes fabricantes de eletrônicos como a Panasonic, mas na o houve êxito devido ao conflito de interesses. Hoje sabemos que o Java domina o mercado de aplicações para celulares, porém parece que em 1994 ainda era muito cedo.

     Com o advento da web, a Sun percebeu que poderia utilizar a ideia criada em 1992 para poder rodar pequenas aplicações dentro do browser. A semelhança era que na internet havia uma grande quantidade de sistemas operacionais e browser, e com isso seria grande vantagem pode programar numa única linguagem, independente da plataforma, foi aí que o Java 1.0 foi lançado: focado em deixar o browser não apenas um cliente burro, fazendo com que ele possa também realizar operações, não apenas renderizar HTML.

     Sabemos que hoje os applets realmente não são o foco da Sun. É engraçado que a tecnologia Java nasceu com um objetivo em mente, foi lançado com outro, mas no final decolou mesmo no desenvolvimento de aplicações do lado do servidor.