O que são RAD, Frameworks e IDE? Entenda a Diferença entre elas e como podemos utilizá-las para otimizar o desenvolvimento de softwares. Vamos lá!

Aqui no atendimento do Scriptcase os clientes me perguntam frequentemente a diferença entre RAD, Framework e IDE. Lembro da primeira vez que me deparei com essa nomenclatura “RAD”, foi exatamente através de um cliente americano, James Robe, ele é especialista em ferramentas de desenvolvimento rápido e também na metodologia LEAN aplicada ao desenvolvimento de softwares, metodologia essa que é focada na redução dos desperdícios melhorando assim a qualidade, diminuindo tempo e custos de produção. Lembro que nesse dia tive o prazer de ter uma “aula” desse assunto com ele, vou tentar replicar um pouco dessa história aqui.

RAD: Desenvolvimento rápido de aplicação. Não é de fato um termo muito comum no Brasil, foi registrado por James Martin em 1961 na Inglaterra e enfatiza um ciclo de desenvolvimento de 30 a 90 dias. A metodologia de Martin envolve o desenvolvimento iterativo e a construção de protótipos. Mais recentemente, o termo e sua sigla vieram a ser usados em um sentido mais amplo e genérico, que engloba uma variedade de técnicas que visam o desenvolvimento de aplicativos em alta velocidade, tais como o uso de frameworks de aplicação web e outros tipos de frameworks de software.

rad

O processo de desenvolvimento em alguns casos pode ser muito longo, dependendo da metodologia para o desenvolvimento, esse período pode se estender de tal forma que no meio do caminho várias mudanças de escopo tem risco de acontecer. A programação RAD permite muito mais agilidade na hora do desenvolvimento, o processo pode ser dividido em 5 fases e em teoria conseguiria dar muito mais rapidez ao desenvolvimento de uma aplicação de qualquer natureza.

  • Modelagem do Negócio: Toda a análise negocial acontece nessa fase, as dúvidas e processos que o sistema irá gerir são levantados e desenhados aqui;
  • Modelagem de Dados: Nessa fase é desenhada toda a estrutura de dados da aplicação, nela são analisadas questões relacionados a relacionamento de tabelas, por exemplo;
  • Modelagem de Processo: Nessa fase se desenham todas as regras de modificação, alteração, exclusão e qualquer mudança de estado de objetos que irão relacionar-se;
  • Geração da Aplicação: Nesta fase se inicia o processo de desenvolvimento em si. A ideia principal do RAD é aproveitar ao máximo os componentes já utilizados para que haja ganhos consideráveis em matéria de tempo no projeto;
  • Testes e modificações: Nessa fase são realizados testes de fluxo e correções quando necessário, como o RAD trabalha em cima da ideia de reuso, muitos componentes já foram testados em outro momento e com isso essa fase acaba sendo bastante otimizada.

Abordagens RAD podem implicar compromissos em funcionalidade e desempenho, em troca, permitindo o desenvolvimento mais rápido e facilitar a manutenção do aplicativo, re-utiliza componentes de programas já existentes ou cria reusáveis.

Analisando o RAD percebemos o quanto de ganho podemos obter utilizando essa metodologia, mas é importante ressaltar que só consegue ser implementado em um projeto de desenvolvimento se a ferramenta escolhida permitir isso, a questão de reuso de código está totalmente atrelada a esse fator.

Ok, já sabemos que RAD se trata basicamente de uma metodologia! Temos então ferramentas ou plataformas de desenvolvimento que apoiam seu conceito no “Rapid Application Development” como o Scriptcase, por exemplo. O Scriptcase é um ambiente de desenvolvimento rápido de aplicações web em PHP.  A gama de componentes presentes e já testados no ScriptCase é muito grande e graças a isso ele é considerado uma ferramenta própria para RAD.

Como outras ferramentas RAD podemos citar ainda Dataflex, Visual Studio LightSwitch, Embarcadero RAD Studio, WaveMaker.. cada uma com suas linguagens seguindo o conceito RAD.

E os frameworks?

Primeiro vamos analisar pela terminologia em Inglês: Framework seria uma estrutura básica subjacente a um sistema, conceito ou texto. O que pode ser a estrutura subjacente de um software? Uma coleção de bibliotecas diferentes juntas para fornecer um conjunto de código geral reutilizável que então pode ser personalizado para um aplicativo específico.

Bom, em sistemas de computação, um framework muitas vezes é uma estrutura em camadas, indicando o tipo de programas que podem ou devem ser construídos e como que eles se inter-relacionam. Algumas estruturas de sistema de computador também incluem programas reais, especificam interfaces de programação ou oferecem ferramentas de programação para usar os frameworks.

No wikipedia encontramos a definição de que framework em desenvolvimento de software é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. Um framework pode atingir uma funcionalidade específica, por configuração, durante a programação de uma aplicação. Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle.

Numa biblioteca de classes, por exemplo, cada classe é única e independente das outras num framework, as dependências/colaborações estão embutidas (wired-in interconnections) com biblioteca, as aplicações criam as colaborações. Um framework impõe um modelo de colaboração (o resultado da análise e design) ao qual você deve se adaptar. Ao receber um framework, o trabalho consiste em prover os pedaços que são específicos para sua aplicação. O framework captura a funcionalidade comum a várias aplicações.

Tirando os termos técnicos e simplificando a explicação, framework é basicamente um monte de bibliotecas, funções, classes e objetos  reutilizáveis que ajudam a poupar tempo. Como Frameworks podemos citar: Laravel, Zend framework, Cakephp, CodeIgniter, Symfone, jQuery, Prototype e etc.

Como exemplo simples de framework “puro” usado pelo Scriptcase temos o “prod” (Ambiente de Produção), que é  uma área administrativa do sistema publicado pelo Scriptcase, onde se define os dados conexão e outras configurações. Um ambiente de produção inclui um conjunto de bibliotecas comuns usadas pelas aplicações desenvolvidas pelo Scriptcase. Ele inclui recursos como: PDF,  programação, XLS (Excel), banco de dados (Access Layer), processamento de imagem e às bibliotecas de JavaScript. O ambiente de produção do Scripcase é compatível com as seguintes plataformas: Windows, Linux, IBM I5/OS400, FreeBSD, Solaris e Mac OS.

Por que tantos desenvolvedores usam frameworks? Não há nenhum problema “prós e contras”, eles simplesmente tornam a vida de um programador muito mais fácil!

Finalmente, vamos analisar o conceito de IDE:

O que é a primeira coisa necessária para desenvolvimento de Software? Sim, um editor de texto. Mas o editor de texto não oferece qualquer outra vantagem como autocorreção, auto-complete inteligente ou templates. Daí vem o IDE – que é uma sigla em inglês: Integrated Development Environment – um editor de texto com suporte adicional para o desenvolvimento, compilação e depuração de aplicativos. Historicamente, um IDE é meramente uma evolução (monstruosamente mutada) de um editor de texto mesmo.

IDEs modernos também incluem (muitas muitas muitas) outraens ferramentas. Para ser considerado uma  IDE, o ambiente deve ao menos incluir um editor de texto (para digitar o programa), alguma ferramenta de gestão de projeto e compilação permitindo executar o programa sem deixar o IDE. Também deve incluir ferramentas de depuração (debug), de cobertura de código, de gerenciamento de versão, wizards automatizados e ferramentas de documentação, editores gráficos, refatoração, assistentes e muitas, muitas outras ferramentas úteis.

Ainda é possível escrever programas sem IDE, apesar de não ser mais comum. De qualquer forma seria necessário usar um punhado de programas separados: um compilador, um editor de texto, um gerador de arquivos, etc, etc…

Um IDE ou ambiente integrado de desenvolvimento é, portanto, um conjunto de aplicações, tipicamente consistindo de um editor de código, um compilador, um depurador e uma interface gráfica que pode ou não oferecer um ambiente amigável a um framework. Como exemplos temos: Delphi, Dreamweaver, Frontpage, HTML 5 Builder, Eclipse, Visual Studio, NetBeans e IntelliJ., e etc.

Dentro do Scriptcase podemos citar a Aplicação Blank como exemplo de um IDE, esta aplicação está integrada com o ambiente de desenvolvimento do Scriptcase. Dentro dela é possível escrever código PHP, Javascript, HTML, CSS… além de acessar macros e bibliotecas internas do Scriptcase, documentação, etc. A vantagem de utilizar este tipo de aplicação ao invés de criar um programa PHP manualmente, fora do Scriptcase ou com outra IDE, é a possibilidade da utilização das ferramentas disponíveis, bem como a integração nativa com o controle de acesso dos sistemas criados dentro do ambiente do Scriptcase.

Resumindo e concluindo, temos, portanto, RAD como uma metodologia que pode ser usada por vários ambientes de desenvolvimento (daí o termo “ferramentas RAD”), ou seja ferramentas que estão baseadas no conceito de desenvolvimento rápido (como o Scriptcase); Frameworks que são um conjunto bibliotecas, funções, classes e objetos reutilizáveis que ajudam a poupar tempo e organizar o desenvolvimento e as IDEs que simplesmente trazem um conjunto de aplicações para integrar tudo necessário para o desenvolvimento.

Você pode gostar de…

Implementando reCAPTCHA do Google no Scriptcase

Aprenda a implementar o reCAPTCHA, a API do Google para o famoso "EU NÃO SOU ROBÔ", no Scriptcase....

Tendências de desenvolvimento web para 2017

Você verá neste post tendências para 2017 em Web Design, no meio Digital e em Desenvolvimento. Me...

Importando a biblioteca Bootstrap para dentro do Scriptcase

Neste artigo, mostraremos um exemplo prático de como tornar a biblioteca Bootstrap disponível no...

Comente este post

Receba novos posts, ofertas e muito mais toda semana.