Programação funcional ou orientada a objetos? Qual é melhor? Quando usar cada paradigma? O que equipes de desenvolvimento de software e projetistas devem evitar ao máximo ao projetar e desenvolver software? Vamos de 🧵e de conhecimento. 1/n #programação#dev
Um pouco sobre programação funcional: A programação funcional (também chamada de FP) é uma forma de pensar sobre a construção de software criando funções puras. Isso evita conceitos de estado compartilhado e dados mutáveis observados na Programação Orientada a Objetos. 2/n
Linguagens funcionais enfatizam expressões e declarações ao invés da execução de sentenças. Portanto, ao contrário de outros procedimentos que dependem de um estado local ou global, a saída de valor em FP depende apenas dos argumentos passados para a função. 3/n
Do ponto de vista de manutenção, lógico e estrutural, a programação funcional se destaca quando não há histórias para lidar. Funciona particularmente bem quando não há limites necessários ou quando esses limites já estão predefinidos.4/n
A programação funcional vai bem em situações em que o estado não é um fator e há muito pouco ou nenhum envolvimento com dados mutáveis.
Recentemente, a programação funcional ganhou popularidade por meio do React. 5/n
A biblioteca funciona bem sob o paradigma de programação funcional porque fornece um ambiente onde não é necessário rastrear manualmente os estados. 6/n
Um pouco sobre orientação a objetos: Uma das principais vantagens de OO é a capacidade de encapsular dados. Encapsulamento é a capacidade de ocultar variáveis dentro da classe não permitindo acesso externo.7/n
O que é ótimo por motivos de segurança, junto com uso com vazamento, indesejado ou acidental. É mais interessante e desejável usar esse paradigma no backend. Ajuda a gerenciar ideias em módulos e de certa forma, OOP é como uma cerca em torno de métodos e módulos. 8/n
OOP força a modularidade dividindo o código em um tamanho mentalmente digerível e oferece a capacidade de lidar com estados. Os métodos tornam-se pontos de acesso ao estado e processam a instância do objeto conforme necessário. 9/n
PF e OOP são paradigmas e métodos de codificação válidos. No entanto, cada uma irá desempenhar e trabalhar melhor para um projeto com base no ambiente e nos requisitos - mas nenhuma das soluções funciona melhor em todas as situações. 10/n
A PF vai bem quando a complexidade é contida. Ela vai bem no frontend porque o backends costumam fornecer objetos para que os frontends processem. O cliente não se preocupa em manter os estados do objeto. Já foi fornecido a eles, provavelmente na forma de um objeto JSON. 11/n
O pensamento OO funciona bem no backend porque, na maioria das vezes, você precisa construir algo para dar à um próximo nível desenvolvimento. Ele precisa ser embalado antes de ser lançado para outras camadas do sistema. 12/n
Ambos os paradigmas têm seus próprios problemas que os desenvolvedores enfrentam. A programação funcional tem código espaguete por meio de muitas injeções de dependência e OOP tem código lasanha por meio de muitas camadas. 13/n
A pergunta que você deve fazer não é qual é melhor do q o outro, mas sim qual paradigma resolverá seu problema específico com mais eficiência. O tamanho e o tipo de problema são definidos por você, o desenvolvedor, e não por meio de métodos funcionais ou orientados a objetos.14/n
Os paradigmas de programação existem para resolver seus problemas e não o contrário.
O que você mais quer evitar quando está criando um software que vai evoluir ao longo do tempo?
A resposta é: Complexidade. 15/n
Fred Brooks já disse no seu artigo: Sem bala de prata - essência e acidente em engenharia de software.
Nesse artigo ele fala das complexidades essenciais e acidentais em projetos de software. 16/n
A complexidade de todos os tipos é o que temos que evitar ao máximo em projetos de software e nunca existiu e talvez nunca irá existir uma bala de prata na computação. 17/n
Não importa qual linguagem você usa ou quais paradigmas você impõe, todos os sistemas eventualmente desmoronam quando ele entra em colapso sob sua própria complexidade. 18/18
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Bora trazer assunto bom para esse Twitter e menos tretas? Você tá querendo fazer projetos pessoais ou até mesmo o seu TCC e está sem ideias? Bora falar sobre algumas ideias na Computação para projetos interessantes? Eu acredito na computação como auxílio para outras áreas. 🧵
1 - Vou começar por machine learning e áreas correlatas como análise de sentimentos e etc. São áreas em franca expansão e com a grande quantidade de dados livres e disponíveis na internet é possível fazer bons projetos analisando esses dados.
2 - Redes definidas por software (Software Defined Networks). É um assunto que está no topo de pesquisas em relação a internet das coisas e há muito espaço para fazer trabalhos nesse tópico.
Gente... Não estressa com isso de web 3.0. O Twitter é atrasado para tudo. Esse termo já existe na academia há um bom tempo e diz respeito a web em que a IA vai desempenhar um papel tão grande quanto os usuários no papel de análise de dados. Como hoje temos muitos dados o humano+
Vai interagir com IA e outros algoritmos para análise de dadosm outro ponto sobre web 3.0 é a questão da iot ou ubiquidade que diz respeito a web em todos os dispositivos e que coletam dados. Smarthouses, smartphones, etc+
Por fim os os DApps - apps descentralizados que permitem criar novas aplicações em um novo modelo de segurança e arquitetura de transações na blockchain. É só isso. É simples. Não caiam no papo do povo que quer complicar.
1 - Você sabe como as linguagens de programação são formadas? E como elas são compiladas e as etapas de do processo de compilação?
Segue o 🧵
2- Uma linguagem de programação é formada por um alfabeto que é o conjunto de todos os caracteres que podem ser aceitos naquela linguagem. Inclui letras, números e caracteres especiais. Quando você faz um programa na linguagem C por exemplo, você está escrevendo uma palavra +
3- da linguagem C. O número de palavras(programas) que eu posso gerar na linguagem C é infinito. Então linguagem de programação é o conjunto de programas que podem ser gerados por aquela linguagem. +
--Parte 2--
Thread sobre a carreira de professor, benefícios, plano de carreira, vantagens e desvantagens da profissão. (Essa é a parte final, ufa!). Espero que a leitura pelo twitter seja possível. Depois vou compilar em um blog. Segue o 🧵. 1/23
Nas universidades privadas de nome como PUC, FGV e outras universidades católicas e outras universidades de renome o salário do professor + benefícios é compatível com o plano de carreira das universidades públicas. 2/23
Os salários e benefícios são muito parecidos, isso se não for maior.
Entrentanto é bom ressaltar que existe pouca rotatividade nas universidades particulares. Isso porque o ambiente de trabalho acadêmico é bem mais tranquilo que outros ramos de atuação. 3/23
Você ama ensinar algo na área de computação? E também ama aprender? Se sente realizado quando ensina programação para alguém? Então você pode ter uma carreira de professor na área de computação. Parte 1 (porque ficou grande essa thread).
Segue o🧵 1/17
Creio que antes de entrar em detalhes de quais passos seguir para se tornar um professor universitário é interessante conhecer os benefícios da carreira. Primeiro vamos falar da carreira no Brasil. 2/17
Tanto nas universidades públicas quanto as universidades privadas há bons salários (Compatíveis com o mercado). 3/17
Eu entendo a mente dos devs de sp e sul do país em relação a desprezarem o ensino superior. Ora, uma vez que moram em regiões historicamente favorecidas. Esses devs antes da pandemia conseguiam empregos fácil sem faculdade, pq moravam em regiões com muito emprego e poucos +
Profissionais. Então fica fácil ganhar oportunidades.
O dev paulista e paulistano aqui no twitter não representa o Brasil. O Twitter tem 15 no máximo 20 mil profissionais de TI, entre devs e estagiários, gerentes, etc. Isso não é a quantidade de profissionais do Brasil +
São Paulo e o sul tem realidade muito melhores que o Brasil. Os IDHs são muito diferentes. Só a capital de SP tem metade da população de MG inteira.
Em cidades pequenas e capitais menores a universidade é a chance que uma pessoa tem de chegar na empresa para estágio e evoluir.+