Muitas pessoas têm me perguntado sobre a criação de sistemas reais em Flex. Como fazer, por onde começar, questões sobre produtividade e muito mais. Neste artigo e nos próximos vamos comentar sobre o desenvolvimento destes sistemas, e de como usar o melhor do Flex para alcançar os seus objetivos.
É válido lembrar que este primeiro artigo é altamente filosófico. Nada de Flex é visto aqui e somente na segunda parte vamos abordar o Flex. Então pegue uma xícara de café e aproveite!
Um sistema torna-se real a partir do instante em que não estamos mais na fase de aprendizagem, ou seja, não estamos criando telas em Flex ou criando tabelas no banco de dados apenas para aprender algo. Respiramos fundo e criamos o projeto Flex que, um dia, será uma aplicação que faz algo realmente útil.
Quando você decide criar um sistema que realmente será útil (ou foi contratado para isso), deve-se inicialmente pensar no seguinte peso: quantidade de telas. Isso mesmo, seu sistema terá 10 ou 100 telas? Você foi contratado para construir um sistema de cadastro de clientes de uma loja, ou uma erp integrada?
Talvez você possa não imaginar ao certo quantas telas terá no início, mas com certeza terá uma opinião formada quanto ao seu tamanho. Por exemplo, o software TweetDeck pode ser considerado como pequeno, pois possui algumas telas de configuração e define um escopo limitado: manipular o seu twitter.
Já um software que gerencia todas as funcionalidades de uma empresa, com recursos humanos, financeiro, controle de horário, de empréstimos etc., é considerado um software "grande complexo".
Definir o tamanho do seu software é um dos primeiros passos. Deve-se medir o quanto de tempo terá que usar para deixá-lo bonito. Poderá definir o quanto seguro ele será além de questões como escalabilidade e disponibilidade financeira para investimentos.
Tudo isso se resume a tempo (lembre-se que tempo é dinheiro!) de investimento e ao resultado esperado. Nesta relação está a chave para o sucesso, ou o fracasso. Investir muito tempo com design e esquecer-se da segurança é um risco altíssimo se você está criando um software e-commerce.
Definir estas métricas é complicado, e eu vou tentar ajudar um pouco às pessoas que estão com muitas dúvidas.
Esta é uma questão importante no desenvolvimento de software. Definir como será a forma de ganhar dinheiro com seu software influencia diretamente nas decisões sobre o seu desenvolvimento.
Se você está criando um software seu, e pretende ganhar dinheiro com ele, você tem mais poder de decisão sobre o que o software terá. Este é um ponto muito positivo e eu recomendo muito, mas muito mesmo, a leitura do texto Getting Real.
Depois que você ler esse livro fantástico, vai descobrir que um software nunca termina e sempre evolui. Nesse paradigma resta saber quais serão as funcionalidades básicas do seu software. Definidas estas funcionalidades, você deverá repensar e eleger as mais úteis mesmo, retirando tudo que é supérfluo. Feito isso, você já possui um conjunto de funcionalidades, ou requisitos, que o seu software terá.
Eu acredito que esse conjunto de funcionalidades é muito pequeno, na ordem de 10 requisitos, no máximo. Isso significa que você terá um pouco mais de tempo para se dedicar ao design do seu sistema, juntamente com a usabilidade. A programação em si fica bem enxuta, com poucas tabelas e telas.
Aqui entra uma questão importante, que se aprende só com o tempo: desenvolver seu próprio software é cansativo. Inicialmente você está empolgado, tem várias idéias e começa a desenvolver. Rapidamente vêm os problemas, as telas não funcionando 100%, os usuários reclamando, etc. Após seis meses de desenvolvimento, o software não está pronto, você está desanimado, e ainda não ganhou dinheiro com ele... Resumindo: fim do software.
Qual a solução? Construa software pequeno, com o básico do básico. Não faça do seu software um monstro, pelo menos até começar a ganhar dinheiro com ele! Lance ele assim e sinta o que os usuários querem mais. À medida que os usuários pedirem, dê a eles o que eles querem. Com isso você ganha mais adeptos ao software e não desanima. Aos poucos você cria um software que chega ao status de "Premium", ou seja, você começa a ganhar com ele!
Então está a dada a dica: Software seu, crie-o pequeno e faça crescer ao longo do tempo, deixe que os usuários peçam mais requisitos.
Quando você é contratado para desenvolver um software, você recebe por ele mesmo que não esteja pronto. As formas de recebimento são muitas e a pior delas é receber 100% após a conclusão do mesmo. Isso gera muita insatisfação para o desenvolvedor. Você pode combinar diversas formas de recebimento, defina algo que seja bom para você e seu cliente.
No desenvolvimento do software, estabeleça regras claras de interface. Nunca, nunca mesmo, faça extravagâncias tais como janelas pulando de um lugar para o outro ou mensagens de confirmação com alto grau de impacto (muito bonitas ou coloridas).
Seja simples e concentre-se principalmente na criação das telas com uma usabilidade suficiente para que o usuário do sistema não precise usar muito o mouse. Faça apenas o que o cliente pediu, nunca faça algo a mais. Não é preciso, por exemplo, criar uma aplicação multibanco, se o seu cliente nem sabe o que é banco de dados. Não é preciso ter suporte a temas ou internacionalização se você está fazendo o software da padaria da esquina. Concentre-se nos objetivos finais, que é terminar o software com tudo funcionando plenamente e com um certo grau de usabilidade e segurança. Termine rápido, entregue e parta para a próxima.
Telas do sistema
É preciso definir as tecnologias que serão usadas. Todos sabem, hoje em dia a web está "na moda". Sem falar mal de ninguém, mas usar Delphi para criar uma aplicação é correr contra a correnteza.
Se Web está na moda, e você vai criar um sistema... você cria um "sistema web". Ótimo....? Nem tanto. A Web nasceu com o objetivo de exibir informações e não trocar informações. Hoje, com a evolução da web, podemos ver milhares de programadores quebrando a cabeça (e perdendo dinheiro) criando sistemas HTML+JavaScript. Soluções foram criadas, como Ruby on Rails, ExtJS, CakePHP, etc. Mas todas elas caem no mesmo abismo chamado html e Javascript. Como criar um sistema que possui menos de 10 controles de interação (formulários)? Impossível e muito caro. De todo este pensamento surge o Flex, que estou convencido que é a melhor tecnologia para criar sistemas web. Sistemas e não sites, ok?! O Flex deu tão certo que a Microsoft corre atrás do prejuízo, com o Silverlight.
Então, definido, para criar todas as telas do seu sistema, vamos usar FLEX!
O Flex apenas cria as telas. É preciso algo a mais para fazer tudo funcionar. Um sistema não vive sem um banco de dados e sem uma linguagem de servidor. Dentre elas temos:
MySql para PHP, talvez um PostgreSQL ou Oracle para Java, e SQL Server para o .Net. Pronto!
Próximo Artigo
Iremos comentar melhor sobre a criação de sistemas contratados, ou seja, não é preciso investir muito tempo com design. Apenas criamos um ambiente similar ao "windows" e concentramos nossos esforços na criação de telas que atendem aos requisitos do software.
Wellington Guedes
Daniel, Concordo com você quando diz que PHP é bom pra softwares de pequeno porte, mas acho que PHP é bom mesmo pra Criação de Sites, pra criar um "Sistema" de pequeno/médio porte usuaria VB.Net ou até mesmo C#, e pra grandes Sistemas JAVA.
Já que você diz que o Flex deu certo vou tentar utilizar em aplicações WEB
Muito exclarecedor seu Artigo pra velha pergunta, "Que linguagem devo utilizar?"
Abraços e até a próxima.
Daniel Schmitz
Olá, o PHP evoluiu bastante, principalmente na versão 5 e juntamente com o Zend Framework. Dá pra usar ele sem medo, inclusive usando padrões de projeto e Orientação a Objetos.
O C# também é ótimo, só tem a necessidade de um servidor windows e por conseqüência, mais caro..
Talvez você possa fazer o seguinte: Para sistemas intranet: C#, para sistemas internet: PHP
O que você acha ??
Daniel Schmitz
Oi, sua imagem era do PHP, agora é .Net ??? Hehehehe
Wanderley Ferreira de Albuquerque
Daniel, muito boa a materia, parabens.
O Flex, assim como o Silverlight da Microsoft, e o Java FX da Sun, se propoem a criar uma interface rica para os usuarios o que torna o resultado final muito bom.
Wellington Guedes, o html é para fazer sites, nao o php. O php assim como o .net, servem para desenvolvimento de sistemas de pequeno, medio e grande porte. Com php eu cito a Wikipedia, e o Facebook, que sao aplicações robustas e de grande porte. Com o asp for .net, temos o Orkut, que sabidamente é uma aplicação grande, e varias aplicações de Comercio eletronico.
O fato de o PHP ter começado em pequenos nichos de mercado nos faz as vezes liga-lo ao desenvolvimento informal e ate artesanal, mas nao podemos delegar o poder do PHP apenas a pequenas aplicações, o governo federal e empresas como TCS e CTIS, tem construido grandes aplicações com PHP usando como Banco de dados PostgreSQL ou Oracle.
Desta forma escolher a Triade : FLEX + PHP + PostgreSQL pode ser uma escolha muito boa para se começar a desenvolver, aprendendo mais do FLEX, para depois partir para o .net ou o Java.
Abraço a todos.
Maicon Sobczak
Muito esclarecedor o seu artigo. Tirou minha dúvida básica sobre Flex. Parabéns pela clareza e conteúdo de informação.
Daniel Schmitz
beleza !!
Daniel Schmitz
Pessoal, eu não sei como que corre contra a correnteza.... na verdade é nadar neh ? :)
André Luís Ferreira Guilherme
Gostei do seu ponto de vista. Os sistema tem de ser objetivo e simples. Assim como Steve Jobs prega "O simples é o complicado resolvido", tente aplicar isso nos seus sistemas. Sugiro a construção do famoso CRUD com FLEX / PHP / MySql que são mais difundidos e podem ajudar bastante a disseminar a ferramenta entre os desenvolvedores.
Parabéns.
Abraço
Daniel Schmitz
É isso ae. Seja simples e irás longe !!! Eu tenho um caso aqui de 2 amigos que fizerem um sistema muito bom, ficaram 4 meses desenvolvendo, e quando lançaram, estavam tão desanimados que nao deu certo. Então eles abandonaram.... O Google antes era apenas um buscador, foi crescendo aos poucos... hoje é o que é... O Rails é simples,,,, o twitter é simples... e por ae vai..........
Leonardo Tavares
Daniel tudo bom? Queria saber se o flex serve somente para estruturar, ou seja, sua função é desenvolver a "capa" do sistema, precisando de uma linguagem para aplicar as funcionalidades? O termo flex me leva a esse pensamento rsrs... Você poderia esclarecer isso?
Fernando Pontes
Antes de tudo, parabéns pelo artigo Daniel, comecei a estudar Flex umas semanas atrás e olha, é uma ferramenta supreendente, vc se apaixona novamente pelo ato de programar. E como vc disse Flex é pra desenvolvimento de sistemas e não para sites. Bem, só ver se entendi a dúvida Leonardo, no Flex utilizamos seus componentes para desenvolver a "capa" do sistema, mas ele tbm possui sua linguagem para interagir com estes ultimos, que é o ActionScript, agora para aprofundar no assunto é com o Daniel, rsrsrsrs. Que venham mais artigos sobre Flex.
Daniel Schmitz
Fernando valew pela explicação! O Flex é responsável pela camada de apresentação. Tudo que é visual é o Flex que gerencia. Quando chega a hora de salvar os dados no banco, enviar emails, realizar regras de negócio, entra o que chamamos de linguagem backend: Rails, PHP, .Net, Java... fica a sua escolha !!!
Silfar Goulart
Daniel, muito bom o seu artigo, mas senti falta de vc falara mais do rails.
Leonardo Tavares
Muito obrigado Fernando Pontes, agora entendi o poder do Flex. Abraço!
Elaine Cristina Rocha de Oliveira
Opa Daniel. Muito bom o artigo, realmente ajuda a organizar as idéias..... Comprei o seu livro sobre Flex + PHP e a cada artigo que leio seu na internet fico mais animada para começar logo os estudos.
Ivan Olicio
Elaine pode se animar mesmo, pq aqui na nossa empressa agente cuida de sistemas públicas para as prefeituras. E desenvolvemos em Delphi ( Pascal) + Firebird. E começamos a estudar flex desde o inicio do projeto, pensando em fazer um sistema WEB mais com cara de DESKTOP. Para trabalhar junto com o sistema em Delphi que fica na intranet da prefeitura. E testamos muito Java também. Mais optamos pelo FLEX+AMPHP+FIREBIRD. Pq se mostra com um desempenho de velocidade e o cupação de memoria das estações. Estámos bem satisfeito com o Sistema que é bem grande e complexo. E hoje o sistema roda nos cliente super rapido e com pouco infra-estrutura.
Daniel Schmitz
Olá, que bom que está gostando !!!! Continue os estudos :)
Sávio Bueno
Parabéns pelo artigo.
Ajudou bastante em alguns conceitos.
Pretendo usar o FLEX no meu trablho e com certeza as suas dicas, Daniel, bem como o ponto de vista dos demais leitores, ajudarão bastante.
Sucesso a todos.
Sávio Bueno.
Daniel Schmitz
Olá, valew! Lembre-se que vocês fazem o conteúdo! A medida que vão pedindo eu vou tentando fazer passo a passo. Abraços !
Trak Trak Trugui
Olá Daniel, muito interessante o seu artigo, foi esclarecedor em vários aspectos eu pensava que Flex suportava apenas AS.
Sobre o C# (.Net) talvez esteja mais para projetos de médio/grande porte do que Java está atualmente, a Microsoft Reseach construiu até um SO totalmente feito em C# OO (Singularity), agora vem o Office 2010 com muito coisa feita em .Net.
Sobre .Net rodar somente sobre windows não é tão verdade assim, exite o projeto Mono (não utilizei-o ainda) mas até a versão 2.0 do framework funcionava perfeitamente.
[]s
Aluizio Araujo
Olá Daniel. Parabéns pelo artigo. Aproveito o espaço para pedir uma opinião sua: Faço parte da equipe de desenvolvimento web no meu trabalho e vamos começar um sistema ERP bem robusto.
Vamos utilizar asp.net com banco oracle. Pensamos em utilizar o Flex (além de outros dos seus vários recursos) para evitar problemas com browsers e para deixarmos a aplicação com uma interface amigavel e bem intuitiva. É exatamente neste momento que surge o impasse. Ouvimos algumas opiniões que dizem que o Flex para grandes aplicações pode sobrecarregar o servidor web uma vez que utiliza muitos recursos gráficos de maneira que se muitos usuarios utilizam o sistema ao mesmo tempo, a aplicação pode tornar-se lenta.
Gostariamos da sua opinião: O que você acha a respeito do Flex para grandes aplicações que recebam vários acessos diáriamente.
Desde já agradecemos.
Abs.
Pedro Felipe de Oliveira Ribeiro
Ótima matéria, mas você não falou do ASP, o ASP é sim muito bom e é MUITO mais escalável que o PHP (leia-se POG). Fora o fato de o ASP estar presente em grandes projetos até hoje. Eu li, acho que foi no MSDN que a própria MS fala que: "Se você já tem um sistema todo pronto em ASP, mantenha-o, se pretende iniciar um novo projeto, utilize o .Net", no mais, grande Abraço.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.