POO no front-end
Minha pergunta é simples, é válido usar programação orientada a objetos no front end?
Quando eu digo "Válido" quero saber se o mercado faz isso, se os grandes projetos fazem isso.
Minha pergunta é simples, é válido usar programação orientada a objetos no front end?
Quando eu digo "Válido" quero saber se o mercado faz isso, se os grandes projetos fazem isso.
Resposta simples: é.
Mas respostas simples nunca são boas. Respostas boas precisam de um livro para responder.
Uma resposta melhor é o bom e velho...
Depende!
Genericamente podemos dizer que é válido, mas não em 100% das vezes.
Se não for frontend web a chance de ser mais válido aumenta muito. Garanto que você estava pensando apenas em web. É, infelizmente, as pessoas não olham o todo para tomar decisões.
Se for web aí a chance já é menor, mas ainda pode ser válido. Só que precisaria ver se era o caso de ter feito web mesmo, a escolha errada já pode ter começado antes.
Se vai fazer uma aplicação web, que é onde deve questionar o uso de web antes de tudo, pode ser válido. Se for um website é quase certo que não. Eu diria que é 100% certo, mas gosto de dar alguma margem para alguma situação bem extraordinária.
Se você vai fazer scripts não faz o menor sentido utilizar orientação a objeto em seu código. Pode eventualmente consumir algo pronto que esteja utilizando esta técnica, mas não fazer em seu código. Consumir OOP é diferente de codificar assim.
Mesmo se usar OOP um scripts não é o fim do mundo, não terá um prejuízo importante. Muito eventualmente poderá ter algum ganho. Mas quase sempre a pessoa escolhe por não saber de outra forma ou por gosto, não por necessidade, não foi uma decisão de engenharia.
POO existe para gerenciar complexidade, se tem formas mais simples de fazer isso ou não tem complexidade para gerenciar não faz muito sentido esse tipo de programação.
Então dizer que é válido é fácil, mas dizer quando é válido nem tanto.
Mais importante que isso é saber programação orientada a objeto corretamente. Estudar profundamente, conseguir modelar bem, achar algo que seja uma solução efetiva para o que se deseja. Quando e sabe isso, sabe-se também quando não usar.
Eu já dei uma resposta aqui esses dias sobre POOP.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Nossa que resposta bela, muito obrigado.
Se for fazer uma interpolação (Aplicações WEB), seja de C# com HTML, ou então Java + HTML e CSS, pode até haver uma necessidade. Porém, se tu for fazer algo que envolva questões de aplicações para desktop, seja o Swing (Java) ou então JavaFX, ai meu caro, eu digo que é indispensável usar POO no "front-end" da sua aplicação. Visto que JavaFX e Swing usam "Componentes" para montar a sua tela (front-end). Mas ele também gera um código (mais ou menos parecido) quando você vai "inspecionar" um elementos HTML/ CSS, e é ali que fica o front end da sua aplicação, dentro desses componentes. Logo, a depender da sua aplicação, implementar "POO no Front-End" é uma prática quase que indispensável. Espero ter ajudado !!!
Obrigado por me ajudar.
Claro, a programação orientada a objetos é uma técnica comum e poderosa no desenvolvimento de software, tanto no back-end quanto no front-end. No entanto, o seu uso pode variar dependendo do projeto e das necessidades específicas. Em geral, a programação orientada a objetos é útil para projetos complexos, que exigem uma arquitetura de software bem estruturada e modular. Grandes empresas e projetos, como Google, Facebook e Twitter, usam amplamente a programação orientada a objetos em seus aplicativos e sites. Portanto, se você está trabalhando em um projeto mais complexo no front-end, pode ser válido considera-la para melhorar a organização e escalabilidade do código.
Muito válido, quando necessário!
Como a galera ja disse, vai depender da complexidade e do que você precisa implementar.
Vou dar um exemplo prático:
eu trabalhava em um sistema web, JS puro (sem frameworks de front js).
A feature em questão precisava fazer um "Crud" de clientes, fazer pesquisa por alguns campos como nome, telefone e e-mail e adicional a uma lista os escolhidos. Tudo como se fosse um SPA parcial, onde somente no final do fluxo eram enviadas as atualizações dos dados e a lista de escolhidos.
Pra isso, além dos Scripts normais de manipulação do DOM, precisei criar dois módulos o de Clientes e o de Pesquisa.
Em clientes, criei uma Cliente estruturada como o backend necessitava, além de criar os métodos pertinentes.. add, remove, load, update, validate, getCallback, setcallback, e de estado listed addToList e etc...
Em pesquisa, criei o módulo Search, onde cada pesquisa ativa e seu estado eram um objeto da classe Search, junto com os métodos pertinentes para instaciar e gerenciar as pesquisas ativas (podiam ser mais de uma e cada qual tinha ocseu estado diferente).
e xada pesquisa tinha um objetivo, por exemplo mostrar ou esconder componentes, e cada instância fazia o ue precisasse com os Matchs usando a callbacks registrada naquela instância.
Percebeu que esteuturar tudo em objetos da uma noção maior e mais clara? Se eu apenas fosse tacando um amontoado de funções ia ficar uma bagunça por mais organizado que fosse... coitado de quem desse manutenção depois kkkkkkk
resposta direta: Se esta usando JS esta usando POO.
Link da especificação da linguagem criada pela ECMA- internacioal
https://www.ecma-international.org/wp-content/uploads/ECMA-262_1st_edition_june_1997.pdf
"EMCAScript is an object-oriented programming language (...)"
Para melhorar o entendimento
https://en.wikipedia.org/wiki/Prototype-based_programming
Resposta mais longa:
Se você usar apenas funções e nenhuma Class(OOP classico que conhecemos)
JS é Orientada a objetos, Funções são objetos, Arrays, etc.
Mas é uma linguagem Orientada a objetos Prototipica.
É um erro comum achar que JS não é oop.
Ou achar que apenas linguagens com a palavras Class é oop.
Se vc usar Js no seu front, já estará usando oop
Você pode usar Js voltado a funções que prefiro.
JS é Orientada a objetos
????
Dizer que "Tudo em JS é um objeto" é diferente de dizer que a linguagem é orientada a objetos.
Eu não disse que tudo é objeto. Dei alguns exemplos do que são objetos em JS.
Eu disse que ela é orientada a objetos!
E sim JS é orientada a objetos! Ela é orientada a objetos de forma prototipica!
Js só não é baseado em classes. O que não tira dela ser orientada a objetos.
Embora hoje ela tenha a sintax sugar class(e mais coisas juntas)
Link da especificação da linguagem criada pela ECMA- internacioal
https://www.ecma-international.org/wp-content/uploads/ECMA-262_1st_edition_june_1997.pdf
"EMCAScript is an object-oriented programming language (...)"
Para melhorar o entendimento
https://en.wikipedia.org/wiki/Prototype-based_programming