Haciendo el desarrollo de php más robusto

Pasé algún time desarrollando una aplicación web en php. Principalmente ha sido solo por la diversión de aprender como un proyecto paralelo, pero la aplicación ahora tiene unos pocos usuarios que no quiero molestar rompiendo cosas a medida que desarrollo.

Por el momento, tengo un método muy rudimentario para administrar el desarrollo: utilizo un editor de text ( ultraedit ) para escribir el código y usar su ftp integrado para cargar los files en el server. En términos de control de versiones, tengo 2 dominios y solo envío files al dominio "en vivo" cuando funcionan, pero eso es todo. Los dominios están alojados en un sitio de alojamiento compartido de cPanel, que tengo algunas dudas sobre su capacidad para manejar picos menores en el tráfico. Miré a slicehost ayer por algo más escalable pero parece una curva de aprendizaje desde donde estoy ahora.

Sé que podría hacerlo mejor que esto, pero ¿por dónde empezar? Creo que necesito consejos sobre tres cosas 1 – herramienta de escritura de código 2 – control / gestión de versiones 3 – alojamiento escalable

He hecho estas preguntas deliberadamente en la misma pregunta que me gustaría saber si una elección impacta a otra. ¿Hay una buena solución integrada?

Gracias de antemano como siempre.

Cada parte de su pregunta ha sido respondida antes. La siguiente list enumera algunas de las herramientas comunes para usar y enlaces a búsquedas apropiadas en StackOverflow. No hay un package todo en uno y entrar en detalles sobre estas herramientas en una pregunta está fuera de scope, así que me temo que debe investigar un poco:

  • SVN, Git o Mercurial
  • Prueba de unidad (PHPUnit o SimpleTest)
  • Integración continua
  • Phing (para implementación)
  • phpqatools.org
  • Netbeans o Eclipse (para un IDE)

Descargo de responsabilidad: la list no está destinada a ser completa y el order no es importante

Muchas cosas están pasando aquí. Aunque te doy mi granito de arena.

  1. Solía ​​usar ultra edit. Ahora uso netbeans, es un entorno de desarrollo totalmente integrado y hace que mi vida sea mucho más fácil. Es gratis también. No puedo imaginar volver alguna vez a UltraEdit. Además, lo que me lleva al número dos, netbeans tiene integración SVN y CVS

  2. Usaría subversion para el control de la versión. En mi experiencia, hace todo lo que necesita para el control de versiones. Otros usan git y mercurial, pero creo que SVN es ampliamente compatible y lo suficientemente fácil de configurar. En cuanto a presionar el código en el server, he comenzado a usar svn para esto también. Primero entro al server y comprobé el código en el directory public_html, y luego configuré un alias para hacer las actualizaciones de svn a través de la command-line … es mucho más fácil que usar ftping en mi opinión. Hay otros methods de implementación, pero nunca los he usado. vea esta pregunta: ¿Cuál es su estrategia preferida de implementación de php?

  3. obviamente, el alojamiento compartido no va a manejar el tráfico, así como un server dedicado. Pero hay muchas cosas que puede hacer para mejorar el performance antes de pasar a un server dedicado. Mira este artículo: http://developer.yahoo.com/performance/rules.html

Parece que busca una estrategia de implementación sólida en lugar de una de desarrollo. Pero, corrígeme si me equivoco.

En términos de 'herramienta de escritura de código', y la elección de IDE es una discusión subjetiva. Siéntete libre de trabajar con quien te sientas más cómodo, para mí esto es Netbeans.

En cuanto a una estrategia de implementación, creo que fue mejor resumirla en esta respuesta .

Su punto sobre el hosting escalable es bastante amplio. Necesitaremos métricas mucho mejores para dar mejores consejos. Sin embargo, por ahora, si el alojamiento escalable es una preocupación, entonces tal vez busque en algún tipo de Cloud Hosting.

¿Has mirado usando wamp / xamp / mamp / lamp para desarrollo localmente? Cargar a través de ftp por cada cambio es un problema.

Podría hacer eso para local y ver que todo funciona, luego empujarlo a su dominio de testing y ejecutarlo de nuevo y finalmente lanzarlo en vivo.

Puede que desee ver algo como SpringLoops para hacer su control de versión; esto tiene la ventaja de realizar el deployment y, si tiene forma de pera, puede revertirlo (la count gratuita obtiene 3 implementaciones por día).

No me preocuparía el hosting escalable, solo concéntrate en el sitio y la encoding, solo tienes unos pocos usuarios. Espera a que se convierta en un problema antes de mudarte (sin embargo, sugiero search opciones) pero no lo hagas. Probé y preparo toda la nube; puede que nunca sea un problema.

pd, ve con Linode a Slicehost.

Creo que use Aptana Studio ( http://www.aptana.org ). Es un IDE basado en Eclipse con todas las herramientas que necesita integradas en él. Tiene herramientas de desarrollo de PHP integradas, GIT o SVN para el control de versiones.

También he usado alojamiento compartido. Una vez que otro sitio en el mismo server tenía ataques de DoS, mi sitio también se volvió inalcanzable. De lo contrario, podría funcionar a una velocidad razonable después de una optimization. Sirvió a 1000-3000 usuarios por día. Servidores dedicados son mucho mejores. O puede usar los web services de Amazon. Sé que son más caros.

1 – herramienta de escritura de código

Zend Studio. También recomendaría Linux si vas a usar serveres Linux.

2 – control / gestión de versiones

SVN + phing (si vas a build aplicaciones serias).

3 – alojamiento escalable

Amazon o RackSpace.

Para su editor, simplemente use lo que le resulte cómodo y productivo. Definitivamente deberías tener control de versiones en su lugar. Nunca se sabe cuándo se necesita deshacer una versión o dos.

Siempre guardo al less 3 versiones en el server de producción. Yo uso enlaces simbólicos para señalar el server web en la última versión. Si hay un problema, solo necesita recrear el enlace simbólico para apuntar a una versión anterior.

En cuanto al alojamiento compartido, te sorprenderá la cantidad de ancho de banda que puedes get. Tengo un host compartido de $ 10 / mes que obtiene aproximadamente 500,000 vistas de página al mes. En general, no es que su host compartido no pueda manejar la carga, es que el proveedor de hosting pone demasiadas "acciones" en el mismo server. Por lo tanto, depende de la cantidad de resources que utilizan los demás en el mismo server. Si tiene problemas, siempre puede solicitar que lo muevan a otro server.