En los últimos 2 proyectos que he trabajado, los equipos prefieren un entorno de desarrollo local a un servidor de desarrollo.
El líder del proyecto declaró que lo local era mejor ya que no requería una conexión a Internet. Pero, esto parece asumido cuando se desarrolla.
¿Cuál suele ser mejor?
development-process
Kevin Meredith
fuente
fuente
Respuestas:
Los beneficios de ejecutar local es que puede trabajar sin influir / obstaculizar a otros. Los beneficios de un servidor de desarrollo central es que puede probar cómo sus cambios influyen e interactúan con los cambios que otros están haciendo a medida que se realizan.
Idealmente quieres tener ambos. Desarrolle y ejecute sus pruebas unitarias localmente para que pueda aislar sus cambios hasta que se sienta cómodo con ellos, luego intégrelos en el servidor del equipo para que pueda verificar la integración de los cambios antes de que las cosas pasen a los sistemas de prueba.
Otro beneficio de un servidor local en su computadora portátil es que puede trabajar de forma remota donde no tiene acceso a la red de la empresa y, por lo tanto, no puede acceder al servidor de desarrollo.
fuente
En realidad hay 3 opciones:
Desarrollo local
Máquina virtual local
Servidor de desarrollo compartido
Solucion optima
Use cualquiera de las opciones de desarrollo local y vaya al servidor de desarrollo compartido una vez que haya completado una parte autónoma de la función y haya verificado que su código no está completamente roto.
fuente
Su entorno de desarrollo realmente depende de cómo se organiza y ejecuta su departamento / empresa de TI. En general, aunque el entorno de desarrollo cerrado coincida con el de su entorno de producción, mejor.
Si, por ejemplo, está desarrollando aplicaciones de escritorio independientes que no requieren acceso a Internet, entonces, por supuesto, un entorno de desarrollo local es aceptable.
Por otro lado, si está desarrollando una aplicación de escritorio que requiere comunicación con un servidor remoto / base de datos, etc. y no tiene conexión de red para simular esto en el trabajo, puede encontrar errores adicionales en la producción debido a latencia de red, problemas de seguridad.
Si está desarrollando una aplicación de Internet / Nube, si bien puede necesitar Internet para desarrollar la aplicación, necesitará acceso para probar y verificar.
Por cierto, no necesita una conexión a Internet para tener un servidor de desarrollo, solo una conexión de red local.
fuente
Haz ambos,
Desarrollo local hasta que se realice todo lo que esté trabajando y se haya probado.
Empuje al servidor compartido al final del día y ejecute pruebas de integración para asegurarse de no romper nada.
¿Por qué?
Es más rápido codificar localmente. Menos pasos entre pruebas, menos preocupaciones de integración.
El aislamiento de fallas es más fácil cuando algo se rompe solo después de empujarlo al servidor compartido. Sabes que funciona bien localmente, por lo que debe tener algo que ver con cómo se integra con el servidor compartido. Si trabajó directamente en el servidor compartido, sería especialmente difícil reducir los errores.
Lo haría algo como esto:
Después de que cada persona empuja los cambios al final del día, se ejecutan todas las pruebas de integración y, si alguna falla, entonces sabe exactamente quién rompió el código para proyectar. Revierta los cambios, solucione el problema localmente, luego intente presionarlo nuevamente, repita hasta que todas las pruebas pasen, luego a la siguiente persona.
fuente
Mucho depende de cómo entregue sus proyectos. Algunos argumentos para tener un entorno de desarrollo central podrían ser:
Control de calidad: ¿hasta dónde quieres llegar a las pruebas? Los entornos de desarrollo local tienen limitaciones en las capacidades de prueba. Los entornos de prueba virtual son más adecuados para pruebas de carga y pruebas de sistema automatizadas.
La infraestructura central puede ayudar a acortar su ciclo de entrega de pruebas de desarrollo. Implementando así una entrega continua.
Los beneficios adicionales del servidor de desarrollo central pueden ser control de fuente, gestión de tareas, compilaciones centrales, ..
fuente