Executando verificação de segurança...
1

Como e onde aprender OO do jeito certo?
O pouco que sei de OO é que não tem padronização alguma!
kkkkk

Cada linguagem implementa o que quer e como quer, e usam sintaxes muito diferentes uma da outra.

A propria definição de OO não existe de verdade kkkk
Isso era um assunto controverso nos anos 80.

Em 87, Peter Wegner, publicou um artigo na OOPSLA que resolveu a questão (pelo menos entre aqueles que concordam com o Wegner)
Para uma linguagem ser Orientada a Objetos ela precisa segundo Wegner

ser baseada em objetos, ou seja, deve ser fácil programar objetos que encapsulam dados e operações;

ser baseadas em classes, ou seja, cada objeto pertence a (ou é fabricado a partir de) uma classe; e +
permitir herança, ou seja, deve ser fácil agrupar classes em hierarquias de subclasses e superclasses.

Outros estudiosos (chatos?) acrescentam outros itens à lista: (eu não concordo - Wegner)
enlace dinâmico, tardio (late binding)

Essa deve ser a definição mais usada que conheço.

Mas sabemos que existem linguagens oo que não se encaixam na definição deste home!

Self é um exemplo!

Eu realmente quero aprender OO do jeito certo.
Sempre vejo você falando disso, mas não acho material.

Passe os links pro amiguinho aqui
rsrs

Carregando publicação patrocinada...
1

Isso é um enorme problema. O fato de ter escolas diferentes ajuda a fazer ser difícil, inclusive porque existem versões híbridas. E muito material foi feito porque quem aprendeu errado.

Vai fazer 35 anos que eu comecei com OOP. Passei por todas as fases, e só mais recentemente entendi que eu sempre fiz errado, e agora é bem difícil corrigir vícios. E como sempre falo, se treinar o erro é ele que fará para sempre. Eu falo isso por experiência própria. Só é preciso não teimar no erro, e ainda será difícil, mas pode corrigir.

Para aprender bem tem que estudar vários materiais, manter a mente aberta, e não casar com o erro, e claro, precisa juntar muito texto e entender, que é o aprendizado, o oposto de só repetir o que alguém disse. é um processo longo, lento e contínuo, não é um texto que vai resolver a questão.

A sintaxe das linguagens não importa tanto, é mais a questão conceitual que complica. Claro que elas podem influenciar o acerto e o erro, mas a maneira de pensar é o que determinará o sucesso ou não.

OOP é difícil porque exige fazer certo. Formas mais livres são mais fáceis de fazer certo. Depois que fez errado refatorar uma classe pode ser mais complicado.

O paper é importante, mas ele só coloca uma visão possível. Ele meio que cria mais uma escola. Muitas pessoas discordam dele, em alguns pontos.

OOP certo é saber fazer a modelagem, é entender bem requisitos. Claro, deve também cumprir alguns requisitos semânticos específicos, mas o problema é como cria o modelo.

Ah, eu não acho que agora sei programar OO corretamente. Eu já estou vacinado e sei que posso ainda estar errado. Mudo assim que eu percebo que algo mais faz sentido. Só tenho um pouco mais de confiança porque agora estudei profundamente, mas só ajuda, não garante nada.

Eu pretendo fazer algo no futuro, espero que seja certo, porque vai dar muito trabalho. E eu não prometo que será o certo, só não cometerá alguns erros clássicos já bem conhecidos. E não errará porque deixará claro que pode estar errado ainda. O maior erro é ter certeza que está certo quando isso não é possível. Achar erro é mais fácil do que fazer certo. Ter essas coisas claras ajuda muito. Está errado todo mundo que disser que só um jeito é certo. Também não prometo que isso revolucionará os códigos das pessoas, porque se OO não o fez, mesmo que algumas pessoas acham que faz, não será um ajuste nele que fará.

Acho que isso já ajuda um pouco.