(12 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 11: Linha 11:


= O que é um framework =
= O que é um framework =
*Uma 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.
*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.
*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>


= Tipos, exemplos e casos de uso =
= O que há de mais novo sobre frameworks?​ =
*Frameworks para aplicações web
*'''Frameworks para aplicações web:'''
- React
*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.
React is a typescript-based, open-source JS framework that makes it easy to build applications on the web. Angular solves application development challenges by combining declarative templates, dependency injection, end-to-end tooling, and much more.


Angular empowers developers to build applications that live on the web, mobile, and desktop.
Alguns sites populares utilizando React:
- Facebook
- Instagram
- Whatsapp Web
- Netflix
- Twitter
<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


The popular JavaScript framework is used in public-facing applications and sites such as Google Cloud Platform and AdWords, as well as many internal tools of Google.
*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.


Some popular websites developed using AngularJS are:
*'''Frameworks para desenvolvimento mobile:'''
Netflix
* 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.
Paypal
Upwork
Youtube


<br>
* 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 42: 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.[2]
*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 =
*[1] https://pt.wikipedia.org/wiki/Framework
* https://hackr.io/blog/what-is-frameworks
<br>
* https://whatis.techtarget.com/definition/framework
*[2] http://www.phpit.com.br/artigos/o-que-e-um-framework.phpit
* https://techmonitor.ai/what-is/what-is-a-framework-4945801
<br>
*[3] https://pt.wikipedia.org/wiki/Framework_para_aplicações_web
<br>
*[Imagens]http://blogwebdesignmicrocamp.com.br/programacao/o-que-e-um-framework/
<br>

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.


Referências