Introdução ao JavaScript Orientado a Objetos

O JavaScript tem uma forte capacidade de programação orientada a objetos, apesar de alguns debates que ocorrem e  comparam a orientação a objetos do JavaScript às de outras linguagens de programação.

Este artigo começa com uma Introdução à Programação Orientada a Objetos, passa por uma revisão sobre o modelo de objetos do JavaScript, e finalmente demonstra conceitos de programação orientada a objetos no JavaScript.

Revisão de JavaScript

Se você não se sente confiante com os conceitos de JavaScript, como variáveis, tipos, funções e escopo você pode ler sobre esses tópicos  nesse link: Uma re-introdução ao JavaScript (em inglês – futuramente será traduzido). Você também pode consultar o Guia do JavaScript 1.5 (em inglês – futuramente será traduzido).

Programação Orientada a Objetos

Programação orientada a objetos é um paradigma de programação que usa abstração para criar modelos baseados na vida real (no mundo real). Ela usa diversas técnicas vindas de outros paradigmas previamente estabelecidos, incluindo a modularidade, polimorfismo e encapsulamento. Hoje, as linguagens de programação mais populares (como Java, JavaScript, C#, C++, Python, PHP, Ruby e Objective-C) suportam programação orientada a objetos (POO).

A programação orientada a objetos pode ser vista como o design do software usando uma coleção de objetos que cooperam, ao contrário da visão tradicional, em que um programa pode ser visto como uma série de funções ou somente como uma lista de instruções para o computador (a chamada programação estruturada). Na POO, cada objeto é capaz de receber mensagens, processar dados e enviar mensagens a outros objetos. Cada objeto pode ser visualizado como uma pequena máquina independente com um papel ou responsabilidade distinta.

A programação orientada a objetos pretende promover maior flexibilidade e manutenabilidade ao se programar e é muito popular em engenharia de software em larga escala. Em virtude de sua forte ênfase em modularidade, um código orientado a objetos pretende ser simples pra desenvolver e simples para entender depois de desenvolvido para ser analisado de forma mais direta, codificando e entendendo as situações complexas com menos métodos de programação modular.

Terminologia

Classe
Define as características de um Objeto.
Objeto
A instância de uma Classe.
Propriedade
As características de um Objeto, como uma cor, para um Objeto do tipo carro.
Método
Uma capacidade que o Objeto possui, como ‘andar’, para um Objeto do tipo pessoa.
Construtor
Um Método chamado no momento que o Objeto é instanciado.
Herança
Quando uma Classe pode herdar características de outra Classe.
Encapsulamento
 É quando os detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos para os objetos. Por conta disso, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe.
Abstração
Quando as propriedades de um objeto devem ser capazes de simular um modelo da vida real.
Polimorfismo
Classes diferentes podem definir o mesmo Método ou Propriedade.

Para uma descrição mais extensa sobre programação orientada a objetos veja Programação Orientada a Objetos na Wikipedia.

Os 10% que faltam.

Se a vida é tudo… Devemos nos blindar contra as turbulências… Mas, se isso n for possível, lembre-se… Nenhum problema será mais do que 10% de tudo de bom que há na vida.

Expectativa

Ter expectativa sobre algo na vida é sempre bom, ainda mais quando as coisas começam a dar certo, exatamente como a gente gostaria. Resolvi falar um pouco sobre isso pois consegui chegar a onde queria mas sem perder a visão de que o limite é algo que depende de mim para atingi-lo ou expandi-lo… e se depender de mim, a cada oportunidade quero chegar além!

Ter em mente de que as coisas são possíveis é o primeiro passo.
Ter em mente quais são os objetivos e quais os caminhos para alcança-los, é o segundo passo.
Fazer o possível para chegar ao objetivo-fim, é a meta.

E para chegar lá, além de fé e ação, devemos aproveitar bem as oportunidades que aparecem, darmos valor ao próximo, ajudar sempre que possível… enfim, fazer da nossa parte sem olhar para os lados, sem olhar para os que não agem como gostaríamos… pois devemos seguir de maneira independente, sem deixar de pensar nos que nos rodeiam.

Fé com resultados.

Resiliência

Você sabe o que é resiliência?… pois é, eu também não sabia, mas agora dou um imenso valor ao significado dessa palavra estranha.

Segundo o site “http://www.dicionarioinformal.com.br“, resiliência significa: Capacidade que um indivíduos ou uma populaçã apresenta, após momoento de adversidade, conseguindo se adaptar ou evoluir positivamente frente à situação.

Mas quero conversar um pouco sobre como trabalhar isso… não é fácil ver as coisas acontecerem à sua volta de maneiras que certas vezes são turbulentas e permanecer tranquilo ou tirando os pontos fortes disso, mas  por outro lado, a vida é cheia de ciclos, bons e ruins… e quando estamos em tempos ruins, geralmente passa… e é nisso que devemos nos agarrar, no que pode vir após. Não temos todo o tempo do mundo para fazer o que desejamos, mas em muitos casos não precisamos sofrer por algo que podemos superar mais pra frente, mesmo que precisemos suar (lê-se trabalhar) muito para isso.

Se temos um problema e sofremos demasiadamente com ele, acabamos tendo vários problemas decorrente deste primeiro. Se estamos com um problema e queremos tirar fora, o foco tem que ser a solução, então é sempre bom botar a cachola pra funcionar e pensar e como mudar a situação. Não digo que todos os problemas são solucionáveis, mas todos são passíveis de tentarmos solucionar. Só tem chance de conseguir uma vitória em algo, quem tenta ou aposta (em resumo é como uma loteria, onde poucos tem chance de ganhar, mas só tem chance quem aposta… e essas chances são nulas pra quem não aposta, então por mais dificil que pareça, tentar trás pelo menos uma chance em meio às improbabilidades).

 

 

Piloto – Aitude & Proatividade

Ideias sobre como atingir suas metas no trabalho e agir de maneira pró-ativa

Proatividade: É a atitude daquele que não espera chover para consertar o telhado e não tem medo de mexer no time que está ganhando.
A pessoa proativa toma a iniciativa de realizar alguma tarefa antes que seja cobrada por isso ou que outro perceba a necessidade. Ela está sempre analisando o seu ambiente e vendo o que pode ser feito para melhorar. É um conceito intimamente relacionado à iniciativa e contínuo aperfeiçoamento.
Atitude: “A maior descoberta da minha geração é que qualquer ser humano pode mudar de vida, mudando de atitude”. (William James)

Na área de Ti, especificamente com análise/desenvolvimento de sistemas sabemos de uma coisa, nunca (nuunca!), poderemos deixar de estudar. E, para os que estão iniciando com desenvolvimento, como eu, o que eu mais gostaria de compartilhar é exatamente o assunto que iniciei nesse post, proatividade e atitude. Sendo programador júnior, a maior parte dos trabalhos realizados me são passados… ai quando faço, chego e pego umas ideias sobre por onde devo seguir posteriormente. Mas não acho legal assim! O legal seria já saber o que fazer e conseguir palpitar e criar, produzir. Mas para isso tenho que estudar mais e enfim… apesar de querer que isso seja coisa rápida (pá-púm), a realidade é que é mesmo uma escada e que cada coisa me fará subir mais um pouco, para que mais para frente eu possa ser mais pró-ativo.
Mas o importante, até lá, é não ficar parado… ir fazendo sempre algo e estudando o necessário para crescer.

Unindo ideias e agindo um pouco, resolvi criar esse blog. Para compartilhar conhecimento e ideias.
A vida é um aprendizado constante e todos sabemos algo que podemos passar adiante, e no que der, postarei aqui para ajudar aqueles que, como eu, estão iniciando sua vida profissional com programação ou análise de sistemas.

Enfim, compartilhar é legal.
Compartilhando coias boas voce acrescenta, da mesma forma que “um problema dividido é um problema pela metade” ;-)

Abração a todos e até a próxima.

Post de 10 de janeiro de 2010, no meu antigo blog.