Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FK.

[Resolvido] IDE's para desenvolvimento de aplicações web e de

Recommended Posts

Percebi muitas pessoas utilizando IDE's para desenvolvimento de aplicações web. Na maioria das vezes, essas ferramentas são flexíveis. No entanto, com a flexibilidade vem a falta de controle da aplicação.

Por exemplo, você desenvolve uma aplicação utilizando uma IDE que irá gerar automaticamente o código de toda a interface. Em relação ao lado do servidor, você tem quase um total controle, porém, na interface, nem sempre, já que a IDE gera um código em html, javascript e css tudo misturado e na maioria das vezes sem lógica. Logo, se formos analisar toda a questão de marcação do site, semântica, validação, SEO, compatibilidade em navagores, entre outros, perceberemos que uma IDE pode ser uma má ideia ou uma falsa flexibilidade na criação de uma aplicação. Portanto, o que vocês acham sobre utilização de IDE's para desenvolvimento web? IDE ou simples editor de textos?

 

Agora o que vocês acham em relação a ferramentas "genéricas", onde o "programador" apenas passa informações para ela e essa irá gerar uma aplicação quase completa em diversas linguagens e plataformas? E se caso o "programador" precisar realizar uma manutenção muito específica que a ferramenta não faz por ele? Ele irá passar por todo o código gerado e sem sentido da ferramenta. Logo, vocês preferem produtividade, flexibilidade e aplicações em várias plataformas ou controle, "improdutividade" e aplicações para apenas uma plataforma? Será que digitar algumas linhas a mais é menos produtivo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que é IDE para você ?

 

Como você descreveu, me lembrou mais o Dreamweaver (Gerador de código lixo) do que algo que eu realmente possa chamar de IDE.

 

Eu uso Eclipse e estou muito satisfeito com a ferramenta, seja nos sistemas em php que desenvolvo, seja com algum css / html que precise criar, ou mesmo alguma app android.

 

Ele me mantem no controle de tudo o que desenvolvo, o codigo gerado é apenas o que eu escrevi, não tem nada de gerar "automagicamente" algum código e vai listando automaticamente, variáveis, classes e funções daquilo que vou desenvolvendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
O que é IDE para você ?

 

Sem olhar no wikipedia, de modo geral, é um conjunto de ferramentas que auxiliam no desenvolvimento de algum sistema. A sigla forma três palavras em inglês, porém não me lembro agora quais são. Sei que traduzido, significa Ambiente de Desenvolvimento Integrado, logo, talvez em inglês seja Integrated Development Environment. Dependendo da situação, não passa de um editor de textos personalizado com algumas "firulas" que são muito úteis, como Debug, organização de um projeto, mas principalmente, o compilador (dependendo da IDE e da linguagem, claro), que nem sempre precisa necessariamente estar incluido na IDE.

 

Como você descreveu, me lembrou mais o Dreamweaver (Gerador de código lixo) do que algo que eu realmente possa chamar de IDE.

 

Exatamente Vinicius, mas esses dias eu fui numa palestra sobre uma nova ferramenta chamada Genexus, que é "parecida" com o Dreamweaver. Ela permite você programar em aproximadamente 4-7 linguagens diferentes e em diversas plataformas. Logo, você "escreve" um programa em Java, compila em Windows, Linux, e mais um monte de sistema operacional, e até mesmo pra web (?)

Você simplesmente passa a "programar" pra interface da ferramenta. Na palestra, a única coisa que o palestrante fez, foi definir algumas regras de banco de dados na ferramenta, algumas configurações na ferramenta, e todo o funcionamento do sistema estava pronto e a interface também. Caso você quisesse em outra plataforma, apenas mudava uma pequena configuração, compilava, e estava pronto. Como pode um programa para Windows passar para um dispositivo móvel tão facilmente, se a própria resolução entre os dispositivos são diferentes?

Perguntei sobre o que aconteceria caso o programador precisasse realizar uma manutenção específica que talvez a ferramenta não realizasse pra ele, porém ele disse que a ferramenta fazia tudo. Simplesmente me disse que fazia tudo! E nada mais. Vejo uma falta de conhecimento do palestrante.

Não seria um problema, já que o código é totalmente gerado? Como o programador saberá quais as regras que a ferramenta gerou pra ele?

 

Quando eu vi ele executando no navegador (Firefox), imaginei como estaria organizado os arquivos HTML, JavaScript e CSS, isso se não estiver tudo num arquivo só, pois ele definiu algumas regras na ferramenta e "compilou" pra web, logo, a ferramenta deve ter gerado vários arquivos. Eu quase pedi pra ele pressionar ctrl + u, ou quase perguntei como ficaria a compatibilidade entre outros navegadores, mas fiquei preocupado, pois na palestra, só tinha programadores que desenvolve pra desktop (inclusive eu sou um). Seria chato ninguém entender o que eu estaria falando.

 

Se você parar para observar, isso entra no conceito RAD. Não é tão ruim, mas eles exploraram o máximo do conceito. Eu fico imaginando os problemas que isso tudo pode gerar.

 

Eu uso Eclipse e estou muito satisfeito com a ferramenta, seja nos sistemas em php que desenvolvo, seja com algum css / html que precise criar, ou mesmo alguma app android.

 

Ele me mantem no controle de tudo o que desenvolvo, o codigo gerado é apenas o que eu escrevi, não tem nada de gerar "automagicamente" algum código e vai listando automaticamente, variáveis, classes e funções daquilo que vou desenvolvendo.

 

Eu desenvolvo pra desktop, o que é um pouco diferente. Uso uma ferramenta que "gera" apenas o necessário. Se você usar o Visual Studio por exemplo, ele irá gerar um código que define a posição de controles da interface, instância de alguns objetos, e nada mais que seja necessário. É apenas uma ajuda da ferramenta, você pode abrir o arquivo e fazer algumas alterações, que serão replicadas, na maioria das vezes, na interface do programa. O resto é com o programador.

 

Enfim, acho desnecessário essa questão de ferramenta que faz tudo. O ideal seria uma ferramenta que faz o básico, ou seja, que auxilie, o programador numa determinada tarefa, e numa determinada plataforma.

Desculpe pelo "mega-post". Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, IDE é o que disse acima, um ambiente integrado de desenvolvimento, seja especifico para uma unica linguagem, seja um mais genérico que suporta mais liguagens, seja pela adição de pacotes especificos para a linguagem (tal como o eclipse) seja por ser desenvolvido com suporte nativo a algumas linguagens.

 

O conceito de escreva uma vez, e rode em qualquer lugar, é amplamente divulgado e utilizado pelo java, onde independente da plataforma em que foi escrito, é possivel compilar a aplicação para rodar num sistema diferente daquele em que foi desenvolvido (fiz no windows e vai rodar no linux por exemplo).

 

Se não usar nenhuma chamada especifica do sistema em que foi desenvolvido, (em tese) vai rodar sem problemas no sistema para o qual foi compilado.

Claro que é preciso ter um sistema para testes e verificar se realmente funciona como esperado.

 

Trabalhei por alguns anos com o Delphi 3 (faz tempo) e ele tinha um ambiente muito bom para o que se propunha na epoca.

Imagino que esteja tão bom quanto ou melhor atualmente.

 

Quanto a esses sistemas milagrosos, é muito arriscado confiar ou usa-lo para desenvolver um sistema que não pode falhar ou apresentar erros, pois caso ocorra alguma falha, como você vai resolver ?

Seu desenvolvimento foi as cegas, não se sabe como os códigos são gerados, nem qual o padrão de desenvolvimeno (se é que há) foi usado.

Se precisar ter acesso ao código fonte, possivelmente gastará horas tentando compreender como isso funciona, para depois, talvez, conseguir resolver o problema.

 

Frequentemente, pego sistemas para corrigir pequenas falhas ou erros em que aquele que fez simplesmente some ou desistiu de dar suporte.

É incrivel a quantidade de código jogado a esmo, sem uma função clara (o código existe ali mas não é usado em nenhum momento) ou que poderia ser MUITO otimizado, que esses geradores automágicos criam.

Já vi rotinas com mais de 100 linhas que após uma otimização ou mesmo reescrita cairam para 5 ou 10 linhas no máximo.

 

Imagina um sistema grande, a melhora de desempenho que ocorre se tiver todo seu código otimizado ou reescrito, e não feito por um programa que basta adicionar agua e o código sai pronto.

 

É por essas e por outras que passo bem longe desses geradores automaticos ou desses programas que dizem fazer tudo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já ouvi falar sobre essa questão de escreva uma vez, e rode em qualquer lugar. Mas nesse caso, acredito que você tem total acesso e controle do seu código que foi escrito. Diferente de um código totalmente gerado pela ferramenta. É como você disse, feito a cegas.

 

Você comentou sobre funções com mais de 100 linhas. Eu vejo diariamente umas que são totalmente fora dos padrões e boas práticas. Junção de SQL e regras de negócio tudo numa camada só (camada da interface), variáveis com nomes totalmente em lowercase, controles com nomes do tipo text1, e semanticamente ruim. Não vou nem comentar o português das mensagens de erros.

E como sou novo, trabalho com Object Pascal (não gosto de dizer Delphi). Mas tenho um pouco conhecimento em outras linguagens por questão de curiosidade.

Não sei se você vai acreditar em mim, mas o maior "método" que encontrei aqui, tem 997 linhas. Imagina ter que dar manutenção nisso? Sem contar as dependências que existe caso seja feita uma alteração.

 

Realmente, quando se fala em desempenho e talvez até mesmo segurança, é fundamental alguém ou uma equipe ter acesso ao código fonte, que seja escrito por ele(s). Eu também passo muuuuito longe dessas ferramentas, mas e quando algumas pessoas que talvez por falta de conhecimento, acham uma maravilha? Uma pessoa de autoridade maior que a sua...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que vi na palestra, foi algo parecido com isso:

 

Pule para os 6 minutos do vídeo, porque antes disso é apenas uma instalação.

 

Pra quem tiver paciência para ver o vídeo, como um "site" que imprime apenas um Hello World pode ter 20mb?

Em vários momentos do vídeo, da pra ver que o cara tem total desconhecimento de programação. Ele diz ser TOTALMENTE em C#, porém vi vários arquivos .js espalhados pelo "projeto", entre outros tipos de arquivos. Aliás, como um site será em C#? Sei que no lado do servidor pode ser, mas no lado do cliente, acredito ser js, html e css.

 

Ele diz que fica uma opçãozinha ali perto do relógio do Windows, porém não passa de um servidor localhost.

 

Como pode existir tais "ferramentas" para criar um site? Pra mim não passa de elementos HTML, como o input por exemplo.

 

Esse monte de arquivo perdido, só trará dor de cabeça pro coitado futuramente, creio eu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre a questão de alguem com autoridade superior a sua achar esse tipo de "ferramenta" maravilhosa, é meio complicado, mas para demonstrar que a ferramenta é boa ou ruim, será necessário demonstrar com argumentos sólidos tanto as vantagens quanto as desvantagens e o quanto isso pode impactar positiva ou negativamente no dia a dia da empresa.

É preciso demonstrar também o impacto a médio e longo prazo, pois somente assim poderemos afirmar o porque preferir ou não tal solução.

 

Note que é preciso fazer isso de forma profissional, deixando de lado as preferencias pessoais, pois para o seu superior hierarquico, o que interessa é a que a empresa pode ganhar (ou não) com tal solução.

 

Assisti o video, e o que ele me lembrou foi o Joomla e o Wordpress, que instalam um monte de coisas que talvez nunca serão usadas dependendo do projeto.

 

Esse sistema (genexus) deve gerar uma infinidade de aplicações e rotinas genericas, para assim, tentar atender uma ampla gama de opções / necessidades.

E é nessa tentativa que um sistema aparentemente simples fica extremamente inchado.

 

Sobre desenvolver em C# ou qualquer outra linguagem, é preciso lembrar que existe o lado servidor, que pode ser configurado para ter suporte a várias linguagens (ou desenvolvido um especifico para esse fim).

 

No lado cliente, você acessará a informação por meio de uma interface especifica (aplições desktop, apps, etc...) farão uma requisição ao servidor, e este retornará algo conforme o que foi solicitado.

O retorno do servidor bem como a forma que isso será manipulado seguirá alguns padrões tal como as apis usadas atualmente, o retorno é via xml ou json, por exemplo.

 

Para o lado cliente, por exemplo um navegador web, a resposta será sempre em html e os arquivos relacionados (js, css, imagens, etc...).

 

Assim um sistema web feito em C#, php, java, será indiferente ao usuário pois tudo o que ele verá será html.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre a questão de alguem com autoridade superior a sua achar esse tipo de "ferramenta" maravilhosa, é meio complicado, mas para demonstrar que a ferramenta é boa ou ruim, será necessário demonstrar com argumentos sólidos tanto as vantagens quanto as desvantagens e o quanto isso pode impactar positiva ou negativamente no dia a dia da empresa.

É preciso demonstrar também o impacto a médio e longo prazo, pois somente assim poderemos afirmar o porque preferir ou não tal solução.

 

Note que é preciso fazer isso de forma profissional, deixando de lado as preferencias pessoais, pois para o seu superior hierarquico, o que interessa é a que a empresa pode ganhar (ou não) com tal solução.

 

Algumas vezes eu comentava sobre tal programa, valorizando seus aspectos negativos. Nada de argumentos sólidos. Acho que o ideal, será eu apresentar alguns argumentos que podem ser negativos para a empresa a médio e longo prazo, como você disse, e caso ele queira adotar o programa como ferramenta de desenvolvimento, então passarmos por uma fase de experimento. Será difícil tal fase.

 

O resto que você disse, eu penso igualmente. Valeu pela discussão.

 

A conclusão é que tais ferramentas podem até permitir flexibilidade, mas não haverá controle da aplicação. Como foi discutido, tal ferramenta pode trazer problemas para a empresa. Portanto, o uso não é tão recomendado, pelo menos pelo meu ponto de vista. Além disso, o que antes era escrever código, uma das essências da programação, passa a ser definições simples de regras de banco (também é uma das práticas da programação), que servirão de base para toda a aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.