OOP - Padrões de Projeto

Po cara tu é novo…
começou a programar com 7 meses?
ou foi um daqueles estágiarios que lavavam fita de impressora, buscavam o aspirador de bytes hehe (será que tinha fita de impressora naquele tempo )

Podia ter uma parte pra contar as histórias aqui no GUJ ehehe

Kiviano,

Você já viu um disquete de 8 polegadas ??

Márcio

[quote=marcioa1]Kiviano,

Você já viu um disquete de 8 polegadas ??

Márcio[/quote]

Eu já!!! É quase uma caixa de disco de vinil :mrgreen:

Pô, até eu, com meus 20 aninhos, já vi um disquete desses…

Mas até aí, meu irmão tem 33. :wink:

[quote=marcioa1]Kiviano,

Você já viu um disquete de 8 polegadas ??

Márcio[/quote]

Já sim, inclusive um hd tipo panela, que era 1GB, o trem pesava uns 10 kg, do tamanho de uma panela de pressão.
Na UFMT tem umas reliquias dessa pra ver :slight_smile:

Padrão de Projeto são verdades absolutas? tem que usar é pronto? se num usar ja fu… tudo a aplicação?

[quote=skill_ufmt]Padrão de Projeto são verdades absolutas? tem que usar é pronto? se num usar ja fu… tudo a aplicação?
[/quote]

São absolutas até alguém fazer uma análise crítica e propuser uma alternativa melhor.

[quote=Daniel Quirino Oliveira][quote=skill_ufmt]Padrão de Projeto são verdades absolutas? tem que usar é pronto? se num usar ja fu… tudo a aplicação?
[/quote]

São absolutas até alguém fazer uma análise crítica e propuser uma alternativa melhor.[/quote]

IOC? (não conheço a fundo)

tem algum relação entre IOC e Padrões?

IoC é um padrão. :wink:
E aí, Kivanio? Vamos começar a dar uma Googlada?

[quote=Daniel Quirino Oliveira]IoC é um padrão. :wink:
E aí, Kivanio? Vamos começar a dar uma Googlada?[/quote]

kkk, googlar é meu esporte preferido, e tenho googlado muito sobre IOC.

Mas a ideia inicial do post era trocar informações técnicas a respeito de padrões e OO, mas o que menos se falou aqui foi de padrões hehe

E velho e conhecido artigo deve ajudar.

http://martinfowler.com/articles/injection.html

ou em portugues

http://www.javafree.com.br/home/modules.php?name=Content&pa=showpage&pid=4

]['s

[quote=Daniel Quirino Oliveira]IoC é um padrão. :wink:
E aí, Kivanio? Vamos começar a dar uma Googlada?[/quote]

Cara, tenho estudado muito e escrito sobre padões (TCC da facul), ja vi e li a maioria dos livros de padrões, vo começar a ler o de refactoring do fowler.

E não vi nenhum padrão IOC, poderia me explicar melhor ou dar uma referência de que padrão ele é, artigo, livro? se é padrão onde ele ta “encaixado” em que contexto?

No artigo do Fowler, ele discute mais service locator e IOC, service e mensiona varias vezes que prefere service locator, e também diz depender do contexto para poder decidir sobre qual uso. Também menciona IOC como um padrão, porém não da também essa refenrência.

Se voce ficar muito fissurado nesse lance de OOP e patterns e nao partir pra quebradeira e realmente implementar sistemas que precisam deles, acho que vc nao vai pegar a sutileza da coisa, mas existe um equilibrio muito delicado entre as situacoes que requerem codigo especializado e aquelas em que socar meia duzia de patterns eh mais facil. No geral, vc quer se livrar de alguns problemas logo, e usa uns patterns pra ajudar - o que traz um novo conjunto de problemas, e vc vai resolvendo, e por ai vai… ate dar um ataque, vc ver que usou patterns demais e enfrescou demais o desenho da aplicacao.

Ai voce joga 5 quilos de codigo fora, faz de novo de forma mais simples e acaba com menos de 1/3 do que tinha antes, mantendo toda a funcionalidade. E o processo se repete… :mrgreen:

PS: “mensiona” foi foda hein? :stuck_out_tongue:

Na minha opnião OO é um grande avanço dentro da programação pois o desenvolvedor para de pensar orientado ao computador e começa a pensar orientado ao problema em si e nos processos que o compõe de forma bem mais intuitiva. Quando programamos proceduralmente ou imperativamente dividimos nossos programas em blocos e fluxos de execução, e isso se parece muito com o modo que um computador funciona em baixo nível. Agora quando pensamos em objetos conseguimos abstrair idéias do mundo a nossa volta, assim mesmo como o vemos: cheio de objetos diferentes que possuem n relacionamentos diferentes entre si. Assim fica bem mais fácil construir aplicações escalaveis e de fácil manutenção, quando começamos a enchergar Objetos interagindo e não fluxos e sequências de bits com finalidades obscuras… :smiley: É isso aew pessoal, minha opnião de uma das grandes vantagens de OOP. Valeu! :smiley:

[quote=cv]Se voce ficar muito fissurado nesse lance de OOP e patterns e nao partir pra quebradeira e realmente implementar sistemas que precisam deles, acho que vc nao vai pegar a sutileza da coisa, mas existe um equilibrio muito delicado entre as situacoes que requerem codigo especializado e aquelas em que socar meia duzia de patterns eh mais facil. No geral, vc quer se livrar de alguns problemas logo, e usa uns patterns pra ajudar - o que traz um novo conjunto de problemas, e vc vai resolvendo, e por ai vai… ate dar um ataque, vc ver que usou patterns demais e enfrescou demais o desenho da aplicacao.

Ai voce joga 5 quilos de codigo fora, faz de novo de forma mais simples e acaba com menos de 1/3 do que tinha antes, mantendo toda a funcionalidade. E o processo se repete… :mrgreen:

PS: “mensiona” foi foda hein? :P[/quote]

opa, realmente a parada é implementar, eu diria, integrar, integrar padrões de maneira bem eficaz é realmente para pessoas experientes que também depois de muitas COs, aprenderam mais um pouco :slight_smile:

Codigo de vai pro lixo, é reescrito, num é um prazer só dos patterns :), OO proporciona isso, e pq não dizer que a estruturada também proporcianava, cada qual a sua maneira é claro.
Reescrever, retirar, refazer, fazem parte do ciclo de vida do software…

Bom, vamos lá, o que OO revolucionou? qual efetivamente é seu ganho? Se for pensar com calma, realmente OO foi inovadora, mas não é perfeita, assim como na estruturada, OO tem seus vários problemas, e também não atendente de maneira completa a nossa realidade, dizer que OO é explendida, magnifica, é um exagero na minha opinião.

Se OO por si só fosse ótimo, não precisaria de patterns, IOCs e etc…
Os conceitos são magnificos, mas é preciso tomar cuidado ao usá-los…

Quem aqui já num viu OO Estruturada? hehehe

OBS: so fã de OO, antes que me batam :slight_smile:

Bom, vamos lá, o que OO revolucionou? qual efetivamente é seu ganho? Se for pensar com calma, realmente OO foi inovadora, mas não é perfeita, assim como na estruturada, OO tem seus vários problemas, e também não atendente de maneira completa a nossa realidade, dizer que OO é explendida, magnifica, é um exagero na minha opinião.

Se OO por si só fosse ótimo, não precisaria de patterns, IOCs e etc…
Os conceitos são magnificos, mas é preciso tomar cuidado ao usá-los…

Quem aqui já num viu OO Estruturada? hehehe

OBS: so fã de OO, antes que me batam :)[/quote]

O paradigma de Programação Orientada a Objetos revolucionou sim todo o conceito de programação, assim como o paradigma Imperativo e outros tantos revolucionaram um dia, cada um em um determinado âmbito do desenvolvimento de software. É uma questão natural de evolução! É lógico que não temos um paradigma perfeito, pois se tivessemos todos os outros poderiam ser ignorados e esquecidos. Cada um tem sua funcionalidade, afinal mesmo dentro da OO programamos um pouco de Procedural invariavelmente. Os patterns são certamente uma evolução e possivelmente irão contribuir para o surgimento de novos paradigmas! Mas já que a evolução do software segue uma linha bem mais vagarosa que a do hardware por exemplo, o ideal é ir integrando o que há de melhor de cada paradigma/padrão de projeto/componentes/tecnologias etc. É minha opnião! Valeu pessoal! []s

Pablo

Na minha visão, se estiver errado por favor me falem.
OOP é uma filosofia de programação que prega a reutilização de código e que busca abstrair e representar objetos do mundo real da melhor forma possível.
A idéia é fazer com que os objetos cooperem entre sí para fazer uma determinada tarefa.(objetos se comunicando com objetos)
Além disso cada objeto assume um papel dentro do sistema , ou seja cada objeto tem sua responsabilidade.(Dentro desse contexto podemos aplicar várias conceitos abstraidos do mundo real para melhorar OOP , como herança por exemplo,criação de objetos modelo, entre outros).

Design patternss são padrões encontrados a longo do tempo para resolver um série de problemas frequentemente encontrados em projetos, resumindo
é uma solução para um determinado problema que foi exaustivamente testada e aprovada.

A inovação da programação Orientada a Objetos esta justamente na maior capacidade de abstração do mundo real.

Por exemplo quanto trabalho vc teria na programação procedural para dizer que um gerente pode fazer tudo que um funcionário normal faz e mais um monte de coisa.

Quanto trabalho vc teria para criar diferentes tipos de autenticação de funcionários sabendo que todos os tipos são similares ou tem partes comuns.

A programação orientada a objetos trouxe vários benefícios dentre eles: facilidade de manutenção (quando programado direito , orientado a objetos de fato e não a gab ou string).
Reutilização de código , divisão de responsabilidades , além de ter simplificado a simulação de problemas reais do dia-a-dia).

Sem falar em muitas outras coisas: Como uso de memória, grande tolerância a mudanças.
(Vc pode obrigar que sejam seguidos alguns padrões pelo código, através de contratos entre classe ou interfaces).

Lógico a OOP tem seus problemas? tem , mas ainda assim é muito melhor do que a velha programação procedural.(onde tudo era meio que misturado)