| (27 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
= | [[Arquivo:Frameworks-Examples.png]] | ||
* | |||
= Introdução = | |||
*Como programador, você não precisa começar do zero quando tem ferramentas projetadas para ajudá-lo em seus projetos. Frameworks são softwares desenvolvidos e usados por desenvolvedores para construir aplicações. | |||
<br> | |||
= O que não é um framework = | |||
*Uma das grandes confusões que profissionais iniciantes ou que não conhecem os frameworks costumam fazer é achar que eles são bancos de dados. Na realidade, um framework pode possuir integração com um banco de dados, mas ele não é o banco de dados, como por exemplo o Laravel (framework php). | |||
*Alguns podem presumir que um framework é uma coleção de bibliotecas, assim como as bibliotecas são uma coleção de rotinas pré-compiladas. No entanto, isso não é verdade, pois nem todos frameworks usam ou dependem de bibliotecas. | |||
<br> | <br> | ||
= | = O que é um framework = | ||
*Um framework | *Um framework é um conjunto de código básico genérico usado como um pacote pelos desenvolvedores que criam um programa. Dessa forma, quando um projeto é iniciado pelo profissional, este pacote de códigos prontos é um suporte que facilita o trabalho, evitando a necessidade de iniciar o site do zero, partindo de uma base comum para qualquer desenvolvimento. | ||
*Esses frameworks podem ser baixados das comunidades de desenvolvedores, normalmente de graça, e em sua maioria open-sources. O pacote de códigos é normalmente criado por vários desenvolvedores, mas com a proposta de criar algo uniforme e padronizado que possa ser usado no máximo de cenários possíveis. | |||
<br> | <br> | ||
= | = O que há de mais novo sobre frameworks? = | ||
*Frameworks | *'''Frameworks para aplicações web:''' | ||
*React: React utiliza a linguagem de programação typescript ou javascript, é open-source, feito pelo facebook, utiliza o método de programação declarativa, componentização e tem como um de seus principais objetivos o "Aprenda uma vez, codifique em qualquer lugar", pois o React pode não apenas ser usado para sites, e sim, também, para outras plataformas. | |||
Alguns sites populares utilizando React: | |||
- Facebook | |||
- Instagram | |||
- Whatsapp Web | |||
- Netflix | |||
- Twitter | |||
<br> | <br> | ||
*Wordpress: Utiliza a linguagem php, é o construtor de sites mais popular do mundo (cerca de 42% da internet é composta por wordpress), tem como proposito simplificar a construção de sites através da utilização de plugins e templates, de modo que possibilita que até mesmo pessoas sem conhecimento de programação possam usá lo e desenvolvedores com conhecimento mais avançado possam lucrar com a criação de templates e plugins. | |||
Alguns exemplos de sites que usam wordpress: | |||
- O blog oficial de Star Wars | |||
- BBC America | |||
- New York Times | |||
*'''Data Science Frameworks:''' | |||
*PyTorch: É um framework de código aberto que acelera o processo de pesquisa, prototipagem e deploy. Desenvolvido principalmente pelo grupo de pesquisa de IA do Facebook, o PyTorch pode ser usado tanto com Python quanto com C ++. PyTorch é usado para visão computacional e processamento de linguagem natural (PNL). | |||
Empresas que usam PyTorch: | |||
- NVIDIA | |||
- Qualcomm | |||
- Lucid Motors | |||
*TensorFlow: É um framework para machine learning. Ele tem um ecossistema abrangente e flexível de ferramentas, bibliotecas e recursos da comunidade que permite que os pesquisadores mergulhem no ML e os desenvolvedores criem e implantem rapidamente aplicativos baseados no ML. Ele utiliza javascript e Node.js como linguagens de programação. Existem principais casos de usos para o TensorFlow: reconhecimento de imagens, modelos lineares em grande escala para análise de dados e previsões comportamentais simples e modelos de sequência a sequência (Seq2Seq) para recursos relacionados à linguagem humana. | |||
*'''Frameworks para desenvolvimento mobile:''' | |||
* Flutter: Flutter é o kit de ferramentas de IU do Google para a construção de aplicativos bonitos e compilados de forma nativa para celular, web e desktop a partir de uma única base de código. Possui uma interface de usuário expressiva e flexível e oferece um desempenho nativo nas plataformas iOS e Android, utiliza a linguagem de programação Dart. | |||
* React Native: Combina as melhores partes do desenvolvimento nativo com React, a melhor biblioteca JavaScript da classe para construir interfaces de usuário. Com ele você tem acesso ao código nativo, tanto IOS quanto Android e pode fazer alterações diretas. É um concorrente do Flutter. | |||
Apps famosos que usam React Native: - Uber Eats - Airbnb - Discord - Instagram - Pinterest | |||
= Benefícios = | = Benefícios = | ||
| Linha 24: | Linha 60: | ||
= Desafios = | = Desafios = | ||
*O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework. | *O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework. | ||
*Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada. | *Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada. | ||
<br> | <br> | ||
= Referências = | = Referências = | ||
* | * https://hackr.io/blog/what-is-frameworks | ||
* https://whatis.techtarget.com/definition/framework | |||
* | * https://techmonitor.ai/what-is/what-is-a-framework-4945801 | ||
* | |||
Edição atual tal como às 00h15min de 18 de setembro de 2021
Introdução
- Como programador, você não precisa começar do zero quando tem ferramentas projetadas para ajudá-lo em seus projetos. Frameworks são softwares desenvolvidos e usados por desenvolvedores para construir aplicações.
O que não é um framework
- Uma das grandes confusões que profissionais iniciantes ou que não conhecem os frameworks costumam fazer é achar que eles são bancos de dados. Na realidade, um framework pode possuir integração com um banco de dados, mas ele não é o banco de dados, como por exemplo o Laravel (framework php).
- Alguns podem presumir que um framework é uma coleção de bibliotecas, assim como as bibliotecas são uma coleção de rotinas pré-compiladas. No entanto, isso não é verdade, pois nem todos frameworks usam ou dependem de bibliotecas.
O que é um framework
- Um framework é um conjunto de código básico genérico usado como um pacote pelos desenvolvedores que criam um programa. Dessa forma, quando um projeto é iniciado pelo profissional, este pacote de códigos prontos é um suporte que facilita o trabalho, evitando a necessidade de iniciar o site do zero, partindo de uma base comum para qualquer desenvolvimento.
- Esses frameworks podem ser baixados das comunidades de desenvolvedores, normalmente de graça, e em sua maioria open-sources. O pacote de códigos é normalmente criado por vários desenvolvedores, mas com a proposta de criar algo uniforme e padronizado que possa ser usado no máximo de cenários possíveis.
O que há de mais novo sobre frameworks?
- Frameworks para aplicações web:
- React: React utiliza a linguagem de programação typescript ou javascript, é open-source, feito pelo facebook, utiliza o método de programação declarativa, componentização e tem como um de seus principais objetivos o "Aprenda uma vez, codifique em qualquer lugar", pois o React pode não apenas ser usado para sites, e sim, também, para outras plataformas.
Alguns sites populares utilizando React:
- Facebook
- Instagram
- Whatsapp Web
- Netflix
- Twitter
- Wordpress: Utiliza a linguagem php, é o construtor de sites mais popular do mundo (cerca de 42% da internet é composta por wordpress), tem como proposito simplificar a construção de sites através da utilização de plugins e templates, de modo que possibilita que até mesmo pessoas sem conhecimento de programação possam usá lo e desenvolvedores com conhecimento mais avançado possam lucrar com a criação de templates e plugins.
Alguns exemplos de sites que usam wordpress: - O blog oficial de Star Wars - BBC America - New York Times
- Data Science Frameworks:
- PyTorch: É um framework de código aberto que acelera o processo de pesquisa, prototipagem e deploy. Desenvolvido principalmente pelo grupo de pesquisa de IA do Facebook, o PyTorch pode ser usado tanto com Python quanto com C ++. PyTorch é usado para visão computacional e processamento de linguagem natural (PNL).
Empresas que usam PyTorch: - NVIDIA - Qualcomm - Lucid Motors
- TensorFlow: É um framework para machine learning. Ele tem um ecossistema abrangente e flexível de ferramentas, bibliotecas e recursos da comunidade que permite que os pesquisadores mergulhem no ML e os desenvolvedores criem e implantem rapidamente aplicativos baseados no ML. Ele utiliza javascript e Node.js como linguagens de programação. Existem principais casos de usos para o TensorFlow: reconhecimento de imagens, modelos lineares em grande escala para análise de dados e previsões comportamentais simples e modelos de sequência a sequência (Seq2Seq) para recursos relacionados à linguagem humana.
- Frameworks para desenvolvimento mobile:
- Flutter: Flutter é o kit de ferramentas de IU do Google para a construção de aplicativos bonitos e compilados de forma nativa para celular, web e desktop a partir de uma única base de código. Possui uma interface de usuário expressiva e flexível e oferece um desempenho nativo nas plataformas iOS e Android, utiliza a linguagem de programação Dart.
- React Native: Combina as melhores partes do desenvolvimento nativo com React, a melhor biblioteca JavaScript da classe para construir interfaces de usuário. Com ele você tem acesso ao código nativo, tanto IOS quanto Android e pode fazer alterações diretas. É um concorrente do Flutter.
Apps famosos que usam React Native: - Uber Eats - Airbnb - Discord - Instagram - Pinterest
Benefícios
- Eficiência – Como as rotinas mais comuns de uma aplicação já terão sido implementadas, o tempo total de desenvolvimento do sistema será menor.
- Segurança – Muitas das falhas de segurança comuns à uma aplicação já terão sido tratadas pois a maioria dos frameworks são desenvolvidos por comunidades e diversas pessoas reportando erros de forma colaborativa.
- Custo – A maioria dos frameworks são gratuitos, não gerando custos maiores ao desenvolvimento.
- Documentação – A maioria possui uma vasta documentação, explicando os detalhes e funcionamento de suas ferramentas.
- Padrões de codificação – por seguir um padrão de código, além de melhorar a legibilidade do código, pode tornar a manutenção mais simples.
Desafios
- O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework.
- Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada.
