Nosso objetivo principal é o encorajamento do estudo e conhecimento do paradigma orientação a objetos, revendo os conceitos básicos e os problemas comuns que caímos por falta de conhecimento e planejamento.
Fundamentos da Programação 8:
• Classes e instâncias
• Cadeias de caracteres
Apresentação 8 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
Fundamentos da Programação 13:
• Polimorfismo de subtipos
• Análise, desenho e implementação
Apresentação 13 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Fundamentos da Programação 4:
• Introdução à linguagem de programação Java
Apresentação 4 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
Fundamentos da Programação 12:
• Paradigmas da programação
• Programação orientada por objectos
• Modularização em pacotes
Apresentação 12 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Ao final da aula, os alunos saberão identificar as principais diferenças entre a programação estruturada e a programação orientada a objetos.
Apresentar aos alunos uma introdução a linguagem C# e a IDE Visual Studio.
Ao final da aula, os alunos saberão identificar as principais diferenças entre a programação estruturada e a programação orientada a objetos.
Apresentar aos alunos uma pequena revisão de C# e a IDE Visual Studio.
Nosso objetivo principal é o encorajamento do estudo e conhecimento do paradigma orientação a objetos, revendo os conceitos básicos e os problemas comuns que caímos por falta de conhecimento e planejamento.
Fundamentos da Programação 8:
• Classes e instâncias
• Cadeias de caracteres
Apresentação 8 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
Fundamentos da Programação 13:
• Polimorfismo de subtipos
• Análise, desenho e implementação
Apresentação 13 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Fundamentos da Programação 4:
• Introdução à linguagem de programação Java
Apresentação 4 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
Fundamentos da Programação 12:
• Paradigmas da programação
• Programação orientada por objectos
• Modularização em pacotes
Apresentação 12 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Ao final da aula, os alunos saberão identificar as principais diferenças entre a programação estruturada e a programação orientada a objetos.
Apresentar aos alunos uma introdução a linguagem C# e a IDE Visual Studio.
Ao final da aula, os alunos saberão identificar as principais diferenças entre a programação estruturada e a programação orientada a objetos.
Apresentar aos alunos uma pequena revisão de C# e a IDE Visual Studio.
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
Fundamentos da Programação 6:
• Manipulação de caracteres
• Relação entre os tipos char e int
• Tipos de valor vs. tipos de referência
Apresentação 6 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
Fundamentos da Programação 5:
• Atribuições especiais
• Arrays em Java
• Tipos de ciclos (while e do-while, for e foreach)
• Classes-pacote
Apresentação 5 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
Fundamentos da Programação 14:
• Interfaces
• Listas e cadeias ligadas
• Iteradores
Apresentação 14 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
Aplicações famosas como o Instagram, Draw Something e WhatsApp, utilizam diversos recursos que muitas das vezes não fazemos ideia de que existem e estão disponíveis. Esses recursos podem ser tanto do próprio iOS, como da linguagem, influenciando no código escrito. Venha conhecer alguns desses recursos interessante que você poderá aproveitar para o seu próximo projeto!
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
Características da Programação Orientada por Objetos (POO).
Conceito de Classe, Atributos, Métodos, e Eventos.
Conceito de Objeto.
Conceito de Encapsulamento.
Conceito de Visibilidade de Classes, Métodos e Atributos.
Diagramas de Classe.
O ambiente de trabalho do Visual C#.
Objetos básicos e outras características básicas da linguagem do Visual C# e respetivo ambiente de trabalho.
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
Fundamentos da Programação 10:
• Encapsulação
• Cópia de instâncias
• Igualdade de instâncias
Apresentação 10 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
O aprendizado em uma linguagem orientada a objetos começa muito antes do conhecimento de recursos da mesma, mas no modo de trabalhar sobre ela, como é definido o raciocínio e localização dos trechos de código. Visando esta etapa do estudo com intenção de promover para o desenvolvedor o conhecimento básico para uma migração tranqüila da programação estruturada para a orientada a objetos.
A Orientação Objeto depende mais da mentalidade do programador do que da linguagem de programação que está sendo utilizada.
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
Sabe aquele arquivo com 5000000 linhas e que você tem que acender umas velas pra abrir ele? Então, aqui te daremos as armas corretas para exterminá-lo e para NUNCA MAIS criar monstros como ele!
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
Fundamentos da Programação 6:
• Manipulação de caracteres
• Relação entre os tipos char e int
• Tipos de valor vs. tipos de referência
Apresentação 6 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
Fundamentos da Programação 5:
• Atribuições especiais
• Arrays em Java
• Tipos de ciclos (while e do-while, for e foreach)
• Classes-pacote
Apresentação 5 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
Fundamentos da Programação 14:
• Interfaces
• Listas e cadeias ligadas
• Iteradores
Apresentação 14 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
Aplicações famosas como o Instagram, Draw Something e WhatsApp, utilizam diversos recursos que muitas das vezes não fazemos ideia de que existem e estão disponíveis. Esses recursos podem ser tanto do próprio iOS, como da linguagem, influenciando no código escrito. Venha conhecer alguns desses recursos interessante que você poderá aproveitar para o seu próximo projeto!
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
Características da Programação Orientada por Objetos (POO).
Conceito de Classe, Atributos, Métodos, e Eventos.
Conceito de Objeto.
Conceito de Encapsulamento.
Conceito de Visibilidade de Classes, Métodos e Atributos.
Diagramas de Classe.
O ambiente de trabalho do Visual C#.
Objetos básicos e outras características básicas da linguagem do Visual C# e respetivo ambiente de trabalho.
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
Fundamentos da Programação 10:
• Encapsulação
• Cópia de instâncias
• Igualdade de instâncias
Apresentação 10 da unidade curricular de Fundamentos de Programação da Universidade Europeia. Alterações de Manuel Menezes de Sequeira sobre versão original por vários autores do DCTI do ISCTE-IUL, incluindo Luís Nunes, Ricardo Ribeiro, André Santos e o próprio Manuel Menezes de Sequeira.
O aprendizado em uma linguagem orientada a objetos começa muito antes do conhecimento de recursos da mesma, mas no modo de trabalhar sobre ela, como é definido o raciocínio e localização dos trechos de código. Visando esta etapa do estudo com intenção de promover para o desenvolvedor o conhecimento básico para uma migração tranqüila da programação estruturada para a orientada a objetos.
A Orientação Objeto depende mais da mentalidade do programador do que da linguagem de programação que está sendo utilizada.
Removendo o cheiro ruim do seu código - PHPSC Conf 2011Luís Cobucci
Sabe aquele arquivo com 5000000 linhas e que você tem que acender umas velas pra abrir ele? Então, aqui te daremos as armas corretas para exterminá-lo e para NUNCA MAIS criar monstros como ele!
O objetivo desta apresentação é passar informações básicas sobre injeção de dependência, bem como alguns frameworks PHP existentes que nos trazem containers de injeção de depência.
Palestra apresentada na Semana Acadêmica Integrada 2009 do Centro de Ensino Superior de Foz do Iguaçu. O objetivo da palestra era de mostrar de modo geral a evolução da linguagem PHP, o mercado regional e também em companhias internacionais, perfis de profissionais e dicas para se tornar um profissional melhor e, por último mas não menos importante, as certificações disponíveis, tendo foco na certificação de PHP5.
Apresentação dividas em duas principais partes: 1 - Dicas para enriquecer sua carreira como desenvolvedor. 2 - Dicas de boas práticas no mundo do PHP para que se torne um profissional diferenciado.
Boas práticas no desenvolvimento de softwareFelipe
Um pequeno conjunto de boas práticas para o desenvolvimento de software. O conteúdo é recomendado para desenvolvedores iniciantes ou intermediários. O foco é em desenvolvimento Web, baseado em Sistemas de Informação, com uma linguagem fracamente tipada. Os exemplos são dados na linguagem PHP.
Quem nunca pensou em passar um tempo refatorando aquele código bagunçado?
Eu adoro melhorar o código, deixá-lo mais organizado, mais fácil de compreender e claro mais bonito também.
Um dia eu li o famoso livro do Martin Fowler que me ajudou bastante e quero compartilhar o que aprendi: indicativos de necessidade de refatorar e claro soluções também, que muitas vezes são mais simples do que imaginamos.
4. O que é OOP?
“Orientação a objetos é um paradigma de
análise, projeto e programação de sistemas de
software baseado na composição e interação
entre diversas unidades de software chamadas de
objetos.”
http://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetos
5. O que é OOP?
●
Paradigma = Padrão a ser seguido; Pressuposto
filosófico
●
Busca tornar o mundo das linguagens que os
computadores entendem mais próximo da
realidade
8. História da OOP
●
Os termos “objetos” e “instâncias” foram
utilizados por volta da década de 60
●
O conceito formal foi introduzido (também nos
anos 60) na linguagem de programação Simula
67
●
Na década de 70 foi lançada, na Xerox PARC, a
linguagem Smalltalk, que teve influências de
conceitos da Simula 67
9. Linguagens e OOP
●
Funcionalidades OOP adicionadas como
extensão
●
Principalmente OOP
●
Puramente OOP
11. Porque repensar a OOP?
Não, eu não sou pago por
colocar tirinhas do vida de
programador nas minhas
palestas.
Bem que podia né? =P
12. Pontos negativos da OOP
●
Aprendizado mais complexo (deve-se aprender
o conceito e a sintaxe para cada linguagem)
●
Maior utilização de recursos do servidor
(quando comparado à outros paradigmas que o
PHP suporta)
13. Pontos positivos da OOP
●
Reutilização de código
●
Extensibilidade
●
Código facilmente testável (depende do
desenvolvedor, claro =P)
●
Desenvolvimento mais próximo do negócio
17. Classe
●
Descrição detalhada de um objeto e suas
relações
●
Segue as regras sintáticas da linguagem de
programação para definir os atributos e
comportamentos
21. Visibilidade
●
Existem coisas que nem todos precisam
saber/ver...
●
Define a acessibilidade dos dados (métodos,
atributos) do objeto
●
Tipos:
●
public
●
protected
●
private
22. Herança
●
Aproveitamento de métodos e atributos entre
objetos de um mesmo contexto
24. Herança
●
Permite a alteração do comportamento dos
métodos, caso necessário
25. <?php
namespace LcobucciExamples;
class Person
{
private $name;
public function talk($message)
{
echo $message;
}
}
class Programmer extends Person
{
public function talk($message)
{
parent::talk(md5($message));
}
}
26. Abstração
●
Definição “parcial” dos comportamentos dos
objetos
●
É definido que o comportamento existe, mas
não é implementado, ou seja não tem
necessidade da classe pai saber como o objeto
age naquela ação
27. Abstração
●
Podem ser definidas classes abstratas,
métodos abstratos e interfaces
●
Classes abstratas não PODEM nunca ser
instanciadas diretamente, é necessária uma
classe filha
●
Métodos abstratos são aqueles que devem ser
implementados nas classes filhas
28. <?php
namespace LcobucciExamples;
abstract class Person
{
private $name;
public abstract function talk($message);
}
class Professor extends Person
{
public function talk($message)
{
echo $message;
}
}
class Programmer extends Person
{
public function talk($message)
{
echo md5($message);
}
}
29. Abstração
●
Interfaces são estruturas que possuem apenas
a definição dos comportamentos dos objetos
●
Todos os comportamentos definidos em uma
interface são SEMPRE acessíveis publicamente
●
São utilizadas quando o contexto dos objetos
são diferentes, porém compartilham
comportamentos
31. Polimorfismo
●
A palavra polimorfismo tem origem grega,
significa “muitas formas”
●
Dentro da OOP, é a capacidade de um método
agir de formas diferentes
●
É possibilitado pela existência da abstração
(herança ou implementação de interface), onde
as classes implementam um mesmo método
abstrato de formas diferentes
32. <?php
namespace LcobucciExamples;
interface PaymentMethod
{
public function pay($ammount);
}
class CreditCard implements PaymentMethod
{
public function pay($ammount)
{
}
}
class Money implements PaymentMethod
{
public function pay($ammount)
{
}
}
36. Design Patterns
Design patterns são soluções para necessidades
específicas e devem ser utilizados quando
necessário. Exemplos:
●
Adapter ●
Strategy
●
Façade ●
Decorator
●
Factory ●
Singleton
●
Proxy
37. Design Patterns
Design patterns são soluções para necessidades
específicas e devem ser utilizados quando
necessário. Exemplos:
●
Adapter ●
Strategy
●
Façade ●
Decorator
●
Factory ●
Singleton (você não vai precisar)
●
Proxy
40. Idioma do código
●
Mistura de idiomas dentro do código fonte
●
Tradução dos nomes de forma equivocada
(esquece-se que, principalmente, os métodos
são ordens)
42. <?php
namespace LcobucciExamples;
$luis = new Pessoa();
$rex = new Cachorro();
$graveto = new Galho();
$luis->jogar($graveto);
$rex->pegar($graveto);
Isso não soa estranho??
43. Herança sem sentido
●
Herança não é apenas compartilhamento de
comportamentos!
●
O contexto das classes filhas não podem ser
diferentes da classe pai
45. Causa raiz
●
O maior problema do desenvolvimento por si
só é a falta de planejamento, na orientação a
objetos essa falta pode causar problemas muito
sérios, tornando a manutenção do software
extramente exaustiva e trabalhosa.
47. Transferência entre contas
bancárias
●
O saldo da conta da Sílvia possui R$ 200,00
●
O saldo da conta da Maria possui R$ 30,00
●
Maria está com dificuldades financeiras, e pede
à Sílvia um empréstimo de R$ 100,00
51. Mais informações? Onde??
●
Head first Object-Oriented Analysis & Desing
http://www.headfirstlabs.com/books/hfooad/
●
Programando com Orientação a Objetos
http://www.adianti.com.br/phpoo
●
Domain Driven Design
http://domaindrivendesign.org/books/evans_2003
●
Clean Code: A Handbook of Agile Software
Craftsmanship
http://goo.gl/Qyhmq
52. Obrigado!
Eu por aí: http://about.me/lcobucci
Slides: http://slideshare.net/lcobucci