image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Kevin Miguel
Kevin Miguel04/05/2023 15:18
Compartilhe

Poo o monstro de sete cabeças

    Eu sempre tive um pouco de medo de Programação Orientada a Objetos (POO). Desde o início da minha jornada como programador, ouvi falar sobre POO, mas sempre achei que era um pouco mais complexo do que outros paradigmas de programação, como programação estruturada. A sobrecarga de terminologia e conceitos sempre foi um pouco intimidante para mim, e muitas vezes me sentia perdido tentando entender o que cada termo significava e como tudo se encaixava.

    Além disso, quando comecei a estudar POO, achei que a abordagem para resolver problemas de programação era muito diferente do que eu estava acostumado. Eu estava acostumado a escrever funções e procedimentos que manipulavam dados e realizavam tarefas específicas. Mas com POO, a ideia de criar objetos, classes e métodos para modelar o mundo real em software era algo novo para mim e me deixava um pouco confuso.

    No entanto, à medida que continuei estudando e praticando, comecei a perceber que POO era uma habilidade valiosa para dominar. A POO permite criar programas modulares e reutilizáveis, facilitando a manutenção e a expansão do código. Além disso, a POO é uma maneira poderosa de modelar o mundo real em software, o que pode tornar o código mais fácil de entender e de trabalhar para os programadores.

    Cheguei na verdade a entender um pouco mais de POO estudando HTML e CSS.... Sim, acreditem! facilitou minha mente a trabalhar e entender como se da uma "Classe a algo" kkk (Backends morrerão de raiva)

    Hoje em dia, ainda sinto um pouco de medo quando me deparo com problemas complexos em POO, mas estou cada vez mais confortável em usar essa abordagem para resolver problemas de programação. Com a prática e a compreensão adequada dos conceitos básicos, sei que posso usar a POO para desenvolver programas eficientes, seguros e escaláveis. (Um Dia...mas vai sim acontecer!)

    Creio que hoje todo o programador iniciante como eu que se depare com tal tecnologia precisará de tempo porém cada um deve entender qual a melhor forma de interpretação que se adequa melhor a si.

    Obrigado a todos! Estou bem no início de carreira e tentando migrar para a área mas era isso que queria expressar.

    Seguem meus contatos caso queiram trocar uma ideia.

    Github

    Linkedin (Sim estou corrigindo meu Linkedin ainda. Obrigado pela compreensão kk)

    Discord: [CH]Arrouw#7948

    Compartilhe
    Comentários (2)
    Giancarlo Rodrigues
    Giancarlo Rodrigues - 04/05/2023 19:57

    O que eu penso atualmente sobre POO é o seguinte:


    99,9% das vezes que alguem vai tentar explicar os conceitos para alguem que está começando, mais confunde do que esclarece.

    E a minha experiência é de que vc nem deve se esforçar tanto pra entender no início, caso sinta que esteja se enrolando cada vez mais.. kkk O ideal é dar tempo ao tempo, vai estudando devagar e vai vendo de vez em quando os conceitos, vai aplicando devagar..

    Vai chegar uma hora em que tudo vai clareando e tudo vai fazendo mais sentido.. Dai pra frente é só continuar praticando que a dificuldade desaparece totalmente..

    Giovanni Rozza
    Giovanni Rozza - 04/05/2023 18:57

    Eu criei um insta blog sobre esses temas usando https://cohesive.so/:


    https://cohesive.so/file/L0HzLosGmH


    IA é assustadora...


    também perguntei para o chat-gpt 3.5


    Herança é um conceito em OOP em que uma classe pode herdar características (atributos e métodos) de outra classe. Isso permite que as classes sejam organizadas em hierarquias, facilitando a reutilização de código e a criação de classes mais específicas e especializadas


    Polimorfismo é outro conceito em OOP que permite que objetos de diferentes classes sejam tratados como se fossem do mesmo tipo. Isso pode ser alcançado por meio de herança e interfaces. Polimorfismo é útil para escrever código genérico que pode lidar com objetos de diferentes tipos, o que pode tornar o código mais modular e extensível.


    Abstração é um conceito em OOP que permite que as características mais importantes e relevantes de uma classe sejam destacadas, enquanto os detalhes menos importantes são ocultados. Isso ajuda a criar um modelo simplificado de um objeto que pode ser mais fácil de entender e usar. A abstração é frequentemente alcançada por meio de interfaces ou classes abstratas


    Encapsulamento é um conceito em OOP que envolve a ocultação de dados e comportamentos internos de uma classe para usuários externos. Isso é feito criando-se um "interface" público para a classe, permitindo que os usuários acessem apenas os métodos e atributos que são necessários para o uso da classe. O encapsulamento ajuda a manter a integridade dos dados, evita o acesso direto a dados privados e torna a manutenção do código mais fácil .


    A diferença entre esses quatro conceitos é que a herança é um mecanismo de reutilização de código que permite que as classes herdem atributos e métodos de outras classes, enquanto o polimorfismo permite que objetos de diferentes classes sejam tratados como se fossem do mesmo tipo. A abstração é um mecanismo que ajuda a simplificar a complexidade de uma classe, destacando suas características mais importantes, enquanto o encapsulamento é um mecanismo que ajuda a ocultar dados e comportamentos internos de uma classe para usuários externos. Embora esses conceitos estejam relacionados, eles são conceitos distintos e podem ser usados ​​de maneiras diferentes em diferentes contextos de programação.


    https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object-oriented_programming

    https://www.educative.io/blog/object-oriented-programming

    https://stackify.com/oop-concept-inheritance/