¿Cómo hago que el desarrollo de aplicaciones web sea menos frustrante?


8

Soy bastante nuevo en el desarrollo de aplicaciones web. Simplemente no puedo evitar la sensación de que me lleva una eternidad hacer algo de complejidad remota. En c ++ y java podría escribir las mismas aplicaciones en cuestión de horas.

En la web, la depuración es dolorosa (especialmente si se trata de un complejo json-ajax). Los IDEs apestan. Los idiomas dejan pasar todo sin errores hasta que ya no funciona y estás atrapado buscando un error sin ningún error o advertencia que te guíe (y no hay una buena forma de avanzar por el programa).

¿Alguien puede guiarme a leer material y / o tecnologías que me ayuden a encontrar una manera de mantenerme cuerda cuando desarrolle aplicaciones web complejas?

Quizás la respuesta es usar un buen marco (¿zend?). En el trabajo, en realidad no estamos utilizando un marco, excepto los generadores de modelos de bases de datos y los generadores básicos de páginas de agregar / actualizar / eliminar.


Para aclarar, estoy hablando principalmente de la depuración de php del lado del servidor, no de JavaScript.
zhenka

2
¿Quizás podría actualizar el título y las etiquetas para reflejar la aclaración?
psr

¿Podrías escribir tu aplicación web en Java?

3
Pasar por un código en un depurador es la peor técnica de depuración posible (y por alguna razón está muy sobrevalorada). Abraza el poder de las afirmaciones, contratos y registros.
SK-logic

1
@Raynos, hay una serie de marcos de contratos para casi todos los lenguajes dinámicos (pero, para ser sincero, no he visto nada parecido para PHP). en.wikipedia.org/wiki/…
SK-logic

Respuestas:


4

Si aún no está usando Firefox y firebug, debe hacerlo. El depurador de Firebug está lleno de genialidad (no es que los de Chrome no lo sean, en gran medida son los mismos), pero tiendo a usar Firefox debido a proyectos del sistema operativo como mozrepl , que le permite escribir Firefox en lugar de usar el desove del navegador suites de pruebas automatizadas como Selenium.

Entonces, para el lado del cliente, Chrome o Firefox tienen excelentes depuradores integrados (llenos de paneles de reloj, monitores de rendimiento, todo lo bueno que has llegado a conocer y amar en C ++ / Java).

En cuanto a el lado del servidor, si está usando PHP, entonces fuertemente sugiero utilizar DBG . Si no está atado a PHP, también le sugiero que se mude a Python y use PDB . PDB, junto con cProfile, hace que la vida de desarrollo sea mucho más fácil.

Si está acostumbrado a GDB (C ++), entonces tanto PDB como DBG deberían ser muy fáciles de usar. Ambos también se pueden integrar en editores como Eclipse, Netbeans y Vim.


1

Programo de manera diferente en lenguajes dinámicos. No hay comprobación en tiempo de compilación, pero tampoco hay ningún retraso en tiempo de compilación. Entonces escribo un poquito de código a la vez, y luego lo pruebo. Comienzo con una página en blanco y agrego un elemento a la vez, probando a medida que avanzo. Confirmo cada pequeño cambio en el control de revisión tan pronto como funciona. De esa manera, si me equivoco, puedo volver al estado de trabajo anterior y tener otra oportunidad. En el lado del servidor, he encontrado que los lenguajes dinámicos son mucho más productivos que Java, porque tengo que escribir y leer mucho menos código, y porque nunca tengo que perder el tiempo con los reinicios del servidor.


+1) Ese es el mismo enfoque que utilizamos también en nuestro equipo. El desarrollo web tiene varias diferencias en comparación con las aplicaciones de escritorio. Pero, en general, un criterio de desarrollo y prueba es el que le permite encontrar mejor los posibles errores en el nuevo código.
Francesco

No tiene que perder el tiempo con el servidor se reinicia con Java si elige un buen marco como Play Framework
Jonas

@Jonas: es cierto que los reinicios no se deben a una limitación de Java, pero AFAIK ninguna de las implementaciones populares de JEE recargará dinámicamente las clases. Los parches en caliente a veces funcionan, pero en realidad es un truco.
Kevin Cline

1

Siempre puedes usar Java o C ++ (o Ruby, Python, Scala o ...) si realmente no soportas PHP (lo cual es comprensible. A mucha gente no le gusta).

Si quieres seguir con lo que estás usando actualmente, asegúrate de usar Firebug ( aunque las herramientas de desarrollo de Google Chrome están a punto de ser mucho más impresionantes ) con el complemento FirePHP que te permitirá tener una vista completa de el estado de PHP y cualquier error que ocurra.

Además, asegúrese de usar las funciones de manejo de errores de PHP en uso (pero recuerde eliminarlas nuevamente antes de ponerlas en funcionamiento, porque también son una excelente manera para que los usuarios malintencionados descubran las partes internas de su aplicación)

En cuanto a los IDE, siempre puede probar las herramientas de desarrollo PHP de Eclipse o usar el Zend Studio más dedicado .


1

Algunas herramientas que uso para mejorar mi desarrollo son:

Visual Web Developer 2010 (parte de Visual Studio 2010)

Dijiste que IDE apesta. Con esto, ahora tiene uno de los mejores IDE que existen, y si solía codificar en C ++, apuesto a que ya conoce VS. Utilizo la versión express que es gratuita y no necesito más.

JS Fiddle y Codepad

Genial para probar diseños HTML / CSS y scripts JS. Codepad es ideal para probar su sitio web en idiomas del lado del servidor.

Firefox + Firebug (u otros equivalentes de navegadores)

La depuración de scripts es mucho más fácil con los navegadores. También tiene un DOM completo de árbol que puede manipular como lo desee y los cambios se aplicarán en tiempo real.

Usa un marco

Existen varios marcos para cada idioma web. Le ofrecen un conjunto de funcionalidades bien probadas que garantizan la compatibilidad entre navegadores, le ahorra mucho tiempo de depuración y "escriba menos haga más". Sugiero buscar en jQuery y YUI para la codificación de JavaScript.


Registro de la consola

Para seguir su progreso de depuración, use una consola de depuración, integrada en la mayoría de los navegadores. En JS, el uso console.log('something to write');agregará una entrada de texto a la consola de depuración, de esta manera puede agregar información útil a su código para fines de depuración y realizar un seguimiento de la ejecución de su código.


Repetitivo

Ahora no me malinterpretes. Sé que te interesa el desarrollo de aplicaciones web y no el sitio web normal. Pero el hecho es que todavía es un sitio web, y aún debe ocuparse del problema más importante que tiene: la compatibilidad entre navegadores. Esta es una plantilla sólida que le dará una base sólida para sus páginas HTML, y mucho más ...

Restablecimiento CSS

Si no está utilizando Boilerplate, que viene con su propio restablecimiento de CSS, es posible que desee asegurarse de que sus páginas se vean correctamente entre los navegadores. Un restablecimiento de CSS garantizará esto. Mi favorito es YUI CSS Reset , junto con CSS Base y CSS Fonts .


0

Usar un marco como Ruby on Rails ayuda a aliviar la frustración en gran medida. Tiene informes de errores bastante buenos, y gracias a ActiveRecord, trabajar con modelos y bases de datos es muy fácil. Siempre que siga la filosofía de la convención sobre la configuración, puede crear prototipos de aplicaciones web complejas con bastante rapidez con RoR.

En segundo lugar, Firebug, aunque las herramientas de desarrollador para webkit también funcionan bien.

Editar para recursos:

Aquí hay un gran lugar para comenzar de forma gratuita.

www.railstutorial.org


0

XDebug podría ayudarlo a depurar en un cierre de moda a lo que está acostumbrado con VS (las últimas versiones de Wampserver se envían con Xdebug (tanto servidor como cliente), si está buscando una instalación de desarrollo fácil que instale todo lo que necesita, excepto un editor de texto).

Además, si PHP no es lo tuyo, prueba con otro idioma : puedes estar más feliz con Python, Ruby / Rails, ASP o Perl.

Además, puede escribir módulos C ++ CGI en lugar de scripts PHP, aunque le aconsejaría que pruebe PHP un poco más, es bastante útil una vez que lo aprenda.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.