O.O Segunda Xícara

Hoje as máterias estão assim curtas e rápidas, mais uma parte do meu tutorial de PHP orientado a Objetos, o engraçado e que faço desse tutorial uma retórica, ja que ele serve pra mim mesmo.

Nessa segunda parte vou falar sobre:Abstração e Encapsulamento

Então lets Go!

“A abordagem de orientação a objetos favorece a aplicação de diversos conceitos considerados fundamentais para o desenvolvimento de bons programas, tais como abstração e encapsulação. Tais conceitos não são exclusivos desta abordagem, mas são suportados de forma melhor no desenvolvimento orientado a objetos do que em outras metodologias.”

Fonte http://www.dca.fee.unicamp.br/cursos/POOCPP/node5.html

Para os fãs de O.O que dizem que aplicações modulares só são desenvolvidas através dessa metodologia, esta aí a UNICAMP retificando!

Abstração

Abstração significa que antes de ir para a implementação é definido o que o objeto faz. Ao usar o KimX por exemplo, a pessoa pode simplesmente usar o gera_captcha(), e exibir um captcha, sem se preocupar com o que esta gerando ele.

De forma semelhante um desenvolvedor, não sabe que quando ele manda abrir um arquivo ele esta chamando a System Call OPEN(), segundo o padrão Posix.

Outro exemplo e o Administrador de empresas que ao usar a função soma no excel, não sabe como o mesmo faz para retornar o resultado.

Isso eu aprendi aqui: http://www.dca.fee.unicamp.br/cursos/POOCPP/node6.html

Encapsulamento

O Encapsulamento permite que você crie métodos dentro de uma classe que só serão usadas por ela mesma, e não de forma direta pelo usuário.
Exemplo:

O Objeto Carro, tem o método ignição.
O método ignição e publico pois o usuário (motorista) deve girar a chave.

Agora o método injeta_combustivel_no_motor, e chamado pelo método ignição, mas não pelo usuário (motorista).

A grande vantagem disso e por exemplo se o usuario(motorista) pedisse ao mecânico(programador), para substituir o álcool/gasolina por gás, ele não teria de alterar o método ignição, somente o método injeta_combustivel_no_motor.

Já isso eu aprendi aqui: http://www.htmlstaff.org/ver.php?id=23370

Até a próxima Xícara, e pra quem não sabe a tal da Xícara e porque estou escrevendo esse tutorial entre uma Xícara e outra de café, enquanto leio  e aprendo sobre O.O.

Até a proxima

O.O – Primeira Xícara!

Eu sempre fui avesso a O.O mas devido as circunstâncias estou sendo obrigado a aprende-la, daí resolvi fazer um tutorial detalhando essa “bagaça”. O primeiro conceito a aprender e sobre classes e Objetos e como o primeiro descreve o segundo então let’s go!

Classes e Objeto

O Objeto é a instancia de uma classe. Ou seja eu posso dizer que as caixas são feitas de papelão ou madeira, podem ou não ser pintadas, trazem informações sobre o produto, pode estar ou não fechada, isso são características da Classe Caixa. Quando eu defino que a Caixa ABC é feita de papelão, está pintada de vermelho, traz uma foto do produto na frente e embaixo traz o ano de fabricação, e esta fechada com grampos, eu acabei de definir (instanciar um objeto).

Em relação a esses dois amigos ainda há o Poliformismo, que diz que um procedimento (método) pode existir em mais de um objeto, mas não necessariamente fazer a mesma coisa, por exemplo, a operação fechar do objeto porta, e diferente da operação fechar do objeto contrato.

E ainda há a herança, ou seja um objeto pode herdar características de outro, por exemplo ao definirmos o objeto caneta, não precisamos recriar o método escrever, ao criarmos o objeto filho caneta-tinteiro, pois esse já herda todas as características de seu antecessor.

Eu aprendi isso no link: http://www.dca.fee.unicamp.br/cursos/POOCPP/node4.html

Até a Segunda Xícara!

O todo Poderoso Google

O Google é um exemplo de companhia, case de sucesso, alvo de desejo por parte de profissionais de TI, garantia de Estabilidade e uptime, fonte de revoluções tecnólogicas etc…

Sempre vejo todo mundo elogiar o google, (eu também elogio), no orkut a pesquisa pela palavra google exibe mais de 10 páginas. Em fóruns os mais esquentadinhos costumam responder dizendo procure no Google, minha mãe usa o google antes de consultar o médico.

Mas até onde vai a onipotência do Google. Vejamos alguns produtos:

  • Youtube, nem sequer foi uma invenção da “big G”.
  • Orkut, emplacou mesmo no Brasil, onde o usuário tinha pouca experiência com web, e não ligava para lentidão dos servidores (a maioria tinha net discada), e para as mensagens “Que Feio Servidor”
  • Google Docs, bom eu apresento essa ferramenta para meus amigos e eles dizem, nossa que legal, e nunca mais acessam!
  • Buzz, a Google não comprou o Twitter e lançou o Buzz, mas e fato que quase ninguem usa isso, (eu uso), minha irmã uma publicitária chega a afirmar que basicamente quem usa o buzz somos eu e Jeniffer, minha outra irmã!
  • O Crome, foi lançado usando descaradamente as libs do IE.

Hoje eu vejo o Google ser uma grande empresa sim, mas mais parecida com a Microsoft do que nunca, o Grande dela é o Marketing, e boa parte de sua inovação vem do fato do “Big G” comprar tudo que ele acha promissor o blog Meio-Bit tem uma matéria sobre todas as aquisições do Google disponível aqui.

No Twitter recebi um link muito interessante o The Google Cemitery, que pode ser acessado aqui.

Então antes de “enDeusificarmos” o Google, é bom analisarmos sua estratégia (de sucesso).

Anthony Collucci

Retorno de dados, usando return, ou enviando parametros por referência.

Esse artigo é de dar um nó no cerébro, eu e um amigo gastamos alguns neurônios discutindo qual é mais vantajoso, passar uma variável por referencia para obter o resultado de uma função ou usar o return.

Várias linguagens utilizam o conceito de função, basicamente sua sintaxe geral é:

Function nome_da_função(argumentos){

}

As variáveis que nós utilizamos dentro da função normalmente “morrem” dentro dela.  Exceto quando a função usa a Passagem por Referência:

Passagem de Parâmetros por Referência

Na passagem por referência o que é passado para a função é o endereço do parâmetro e portanto a função que recebe pode através do endereço modificar o valor do argumento na função que chamou.

Fonte:  http://equipe.nce.ufrj.br/adriano/c/apostila/funcao.htm

Então e mais ou menos isso:

$a=1;
$b=2;
soma($a,$b);
echo $b;
function soma($a,&$b){
$b=$b+$a;
}

Nesse código o valor de a e b são somados e o valor e colocado em $b. Tudo muito bem, tudo muito bom, mas a meu ver e um estilo porco, pois o código fica ilegível, e você vai ter de ler a função para saber que o dado que ela retorna  é gravado na segunda variável.

Eu sou a favor da Passagem por Valor, e o retorno através da função return.

Definição da passagem por Valor:

Passagem de Parâmetros por Valor

Na passagem por valor uma cópia do valor do argumento é passado para a função. Neste caso a função que recebe este valor ao fazer modificações no parâmetro não estará alterando o valor original que somente existe na função que chamou.

Fonte: http://equipe.nce.ufrj.br/adriano/c/apostila/funcao.htm

$a=1;
$b=2;
$c = soma($a,$b);
echo $c;
function soma($a,$b){
$c=$b+$a;
return $c;
}

A legibilidade do código é muito superior. Fica evidente que a função joga o valor na variável $c. Mesmo sem ler a função soma.

Um porém levantado por meu amigo seria quanto ao uso de memória, que no nosso exemplo, gera 5 posições de memória na passagem por valor e apenas 2 na passagem por referência.

Mas, contudo, a passagem por valor ainda oferece outra vantagem você pode chamar a funçao da seguinte maneira, <?php c$=soma(2,3)?>, ocupando tambem apenas 3 espaços na memória.

E aí qual a opinião de vocês passagem por valor ou por referência?

Leia mais em:

http://www.vivaolinux.com.br/artigo/Referencias-ou-ponteiros-em-PHP?pagina=3

Ps.: Diego foi por sua causa mesmo que eu escrevi esse artigo!

Begin {}

Esse post marca o inicio de minha nova carreira. Venho a anos atuando como analista de Redes e de Suporte, a 6 meses resolvi mudar, e migrar para a área de desenvolvimento em especial o desenvolvimento web.

Varios fatores me levaram a isso, a falta de valorização da profissão e uma delas, os baixos salários praticados em MG, entre outros me desanimaram com a carreira que segui por 6 anos.

Boas lembraças ficaram, grandes projetos em Empresas como FIAT, Teksid, Comau, Tenda, GVS.. enfim varias. E outras nem tao Grandes como a ITE internet e Tecnologia.

Bom dentre as várias tecnologias existentes, escolhi aprender as seguinte, para iniciar.

  • XHTML – Padrao da W3C
  • CSS – Para formatação da página
  • PHP5 – Linguagem Server Side com Suporte a OO
  • Javascript – Linguagem Cliente side
  • Ajax – Na verdade ajax e uma forma de pensar em programaçao web usando o Javascript
  • Mootools – Framework Ajax/Javascript que escolhi

Bom no momento, estou meio que desempregado, e em busca do meu primeiro emprego de web.

E sobre o que cargas d’água falara esse blog

Esse blog falará de forma geral sobre programação, e tecnologias web. Postarei nele tutorias, informações, dicas, ou simplesmente coisas relacionadas a área. O Objetivo e Interagir melhor com este ramo de TI que para mim é novo.

Até o proximo post