Como faço para tornar o desenvolvimento de aplicativos da web menos frustrante?


8

Eu sou bastante novo no desenvolvimento de aplicativos da web. Eu simplesmente não consigo abalar a sensação de que levo uma eternidade para fazer qualquer coisa de complexidade remota. Em c ++ e java, eu poderia escrever os mesmos aplicativos em questão de horas.

Na web, a depuração é dolorosa (especialmente se o complexo json-ajax) estiver envolvido. IDEs são péssimos. Os idiomas deixam tudo passar sem erros até que não funcione mais e você fica preso à procura de um bug sem nenhum erro ou aviso para guiá-lo (e não há uma maneira realmente boa de percorrer o programa).

Alguém pode me orientar a ler materiais e / ou tecnologias que me ajudem a encontrar uma maneira de permanecer sã ao desenvolver aplicativos da Web complexos?

Talvez a resposta seja usar uma boa estrutura (zend?). No trabalho, não estamos realmente usando uma estrutura, exceto geradores de modelos de banco de dados e geradores básicos de adicionar / atualizar / excluir páginas.


Para esclarecer, estou falando principalmente sobre depuração de php no lado do servidor, não JavaScript.
Zhenka

2
Talvez você possa atualizar o título e as tags para refletir o esclarecimento?
Psr

Você poderia escrever seu aplicativo da web em Java?

3
Percorrer um código em um depurador é a pior técnica de depuração possível (e por algum motivo, é superestimada). Abrace o poder de declarações, contratos e registros.
SK-logic

1
@ Raynos, há várias estruturas de contratos para quase todas as linguagens dinâmicas (mas não vi nada parecido com isso no PHP, para ser sincero). pt.wikipedia.org/wiki/…
SK-logic

Respostas:


4

Se você não estiver usando o Firefox e o firebug, deve fazê-lo. O depurador do Firebug é cheio de grandiosidade (não que o Chrome não seja, eles são basicamente os mesmos), mas eu costumo usar o Firefox por causa de projetos de SO, como o mozrepl , que permite que você escreva o Firefox em vez de usar o navegador conjuntos de testes automatizados como o Selenium.

Portanto, para o cliente, o Chrome ou o Firefox têm ótimos depuradores embutidos (repletos de painéis, monitores de desempenho, todas as coisas boas que você conhece e ama em C ++ / Java).

Como para o lado do servidor, se você estiver usando PHP, então eu fortemente sugerir o uso de DBG . Se você não está vinculado ao PHP, também sugiro mudar para Python e usar o PDB . O PDB, juntamente com o cProfile, facilita a vida do desenvolvimento.

Se você está acostumado ao GDB (C ++), o PDB e o DBG devem ser fáceis de entender e executar. Ambos também podem ser integrados em editores como Eclipse, Netbeans e Vim.


1

Eu programo de maneira diferente em linguagens dinâmicas. Não há verificação no tempo de compilação, mas também não há atraso no tempo de compilação. Então, escrevo um pouquinho de código de cada vez e testo. Começo com uma página em branco e adiciono um elemento de cada vez, testando à medida que vou. Eu comprometo cada pequena alteração ao controle de revisão assim que funciona. Dessa forma, se eu estragar tudo, posso simplesmente voltar ao estado de trabalho anterior e ter outra chance. No lado do servidor, achei as linguagens dinâmicas muito mais produtivas que o Java, porque tenho que escrever e ler muito menos código e porque nunca tenho que mexer nas reinicializações do servidor.


+1) Essa é a mesma abordagem que usamos também em nossa equipe. Desenvolvimento Web tem várias diferenças em comparação com aplicativos de desktop. Mas, em geral, um critério de desenvolvimento e teste é aquele que permite encontrar erros em potencial no novo código.
Francesco

Você não tem que mexer com a reinicialização do servidor com Java se você escolher um bom quadro como Reprodução Quadro
Jonas

@ Jonas - É verdade que as reinicializações não são devidas a uma limitação de Java, mas o AFAIK nenhuma das implementações populares de JEE recarregará dinamicamente as classes. Às vezes, o patch quente funciona, mas na verdade é um hack.
Kevin cline

1

Você sempre pode usar java ou C ++ (ou ruby, python, scala ou ...) se realmente não suporta PHP (o que é compreensível. Muitas pessoas não gostam disso).

Se você deseja manter o que está usando no momento, verifique se está usando o firebug ( embora as ferramentas de desenvolvimento do Google Chrome estejam prestes a ficar muito mais impressionantes ) com o plug-in FirePHP, que permitirá ter uma visão completa do o estado do PHP e quaisquer erros que ocorram.

Além disso, certifique-se de usar as funções de tratamento de erros do PHP em uso (mas lembre-se de removê-las novamente antes de ir ao ar, porque elas também são uma ótima maneira de usuários mal-intencionados descobrirem as características internas do seu aplicativo)

Quanto aos IDE, você sempre pode experimentar as Ferramentas para Desenvolvedor PHP do Eclipse ou usar o Zend Studio mais dedicado .


1

Algumas ferramentas que eu uso para melhorar meu desenvolvimento são:

Visual Web Developer 2010 (parte do Visual Studio 2010)

Você disse que o IDE é péssimo. Com isso, você agora tem um dos melhores IDE existentes, e se você costumava codificar em C ++, aposto que já conhece o VS. Eu uso a versão expressa, que é gratuita e não preciso de mais.

JS Fiddle e Codepad

Ótimo para experimentar layouts HTML / CSS e scripts JS. O Codepad é ótimo para testar seu site em idiomas do lado do servidor.

Firefox + Firebug (ou outros navegadores equivalentes)

A depuração de scripts é muito mais fácil usando os navegadores. Você também tem um DOM completo em estilo de árvore que pode manipular como desejar e as alterações serão aplicadas em tempo real.

Use uma estrutura

Existem várias estruturas para cada idioma da web por aí. Eles oferecem a você um conjunto de funcionalidades bem testadas que garantem a compatibilidade entre navegadores, economizam muito tempo na depuração e "escrevem menos e fazem mais". Eu sugiro olhar para jQuery e YUI para codificação JavaScript.


Log do console

Para acompanhar o andamento da depuração, use um console de depuração, integrado na maioria dos navegadores. Em JS, o uso console.log('something to write');adicionará uma entrada de texto ao console de depuração, desta forma, você poderá adicionar informações úteis ao seu código para fins de depuração e acompanhar a execução do código.


Chapa de ebulição

Agora não me interpretem mal. Eu sei que você está no desenvolvimento de aplicativos da web e não em sites normais. Mas o fato é que ainda é um site e você ainda precisa cuidar da questão mais importante que você tem: compatibilidade entre navegadores. Este é um modelo sólido que lhe dará uma base sólida para suas páginas HTML e muito mais ...

Redefinição de CSS

Se você não estiver usando o Boilerplate, que vem com sua própria redefinição de CSS, você ainda pode garantir que suas páginas sejam exibidas corretamente entre os navegadores. Uma redefinição de CSS garantirá isso. O meu favorito é YUI CSS Reset , junto com CSS Base e CSS Fonts .


0

Usar uma estrutura como Ruby on Rails ajuda a aliviar bastante a frustração. Possui um relatório de erros muito bom e, graças ao ActiveRecord, trabalhar com modelos e bancos de dados é fácil. Desde que você siga a filosofia da convenção sobre a configuração, é possível prototipar aplicativos Web complexos rapidamente com o RoR.

Vou usar o Firebug em segundo lugar, embora as ferramentas Developer para webkit funcionem bem.

Edite para obter recursos:

Aqui é um ótimo lugar para começar gratuitamente.

www.railstutorial.org


0

O XDebug pode ajudá-lo a depurar em um armário de moda o que você está acostumado com o VS (as versões mais recentes do Wampserver são fornecidas com o Xdebug (servidor e cliente), se você estiver procurando por uma instalação de desenvolvimento fácil que instale tudo o que você precisa, exceto um editor de texto).

Além disso, se o PHP não é o seu caso, tente outra linguagem : você pode ser mais feliz com Python, Ruby / Rails, ASP ou Perl.

Além disso, você pode escrever módulos C ++ CGI em vez de scripts PHP, embora eu recomendo que tente mais um pouco o PHP, é bastante útil quando você entender o jeito.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.