Mucho depende del tipo de producto que está creando (aplicación de escritorio / móvil versus un sitio web que se ejecuta en Linux).
Desde el punto de vista del sitio web de linux +, lo que utilizamos (y lo hemos utilizado con éxito en el pasado para diferentes empresas) es:
- Un servidor de desarrollo con una cuenta separada para cada usuario.
- Todas las bibliotecas externas que se necesitan para ejecutar el código pueden encapsularse o mantenerse en un directorio central compartido y vincularse al directorio de desarrollo del usuario.
- Repositorio de código que actúa como un centro central para todo el código. Puede usar cualquier otro control de fuente siempre y cuando mantenga una ‘rama maestra’ donde todo finalmente vaya
- Una base de datos / sistema de almacenamiento compartido para que cada usuario no tenga que mantener sus propios datos. También es bueno tener más datos en dev.
- Si usa otras aplicaciones (como Lucene, memcached, etc.), puede haber una instancia compartida de las que funciona para todos los usuarios.
Para uso real:
- ¿Cuándo la personalidad de alguien disminuye su experiencia y valor?
- Tengo una muy buena idea para iniciarme en el comercio electrónico, pero no tengo financiamiento para ejecutar, ¿cómo podríamos obtener financiamiento?
- ¿Cuáles son las especializaciones más recientes disponibles en MBA? ¿Cuáles son sus requisitos?
- ¿Cuál puede ser la tarea más difícil para un estudiante de administración de empresas?
- ¿Cómo convencerías al CEO de que carece de estrategia?
- Cada usuario tendrá su propia instancia (la llamamos patio de juegos) de la base de código y el servidor de aplicaciones / servidor web en el que pueden realizar cambios durante el desarrollo.
- El código se editará directamente en el servidor (o, si lo desea, móntelo usando sshfs o similar para usar editores locales)
- Utiliza las bibliotecas de un directorio compartido, por lo que todos obtienen las mismas bibliotecas para evitar sorpresas.
- Se conecta a la misma instancia de la base de datos y otros ‘servidores’, que podrían estar ejecutándose en la misma máquina.
También puede crear un usuario ‘etapa’, que básicamente contiene el código de la rama ‘maestra’ que eventualmente será expulsada en un servidor en vivo.
Este enfoque tiene muchas ventajas que son importantes:
- Solo una persona tiene que mantener el medio ambiente. Otros solo pueden replicarlo en segundos
- Todo está centralizado, es muy fácil hacer copias de seguridad y compartir / copiar con otros.
- Todos los esquemas o cambios relacionados (que generalmente son compatibles con versiones anteriores) no necesitan ser aplicados por todos
- No depende de la falla de computadoras portátiles / computadoras, ya que la mayoría de los proveedores de VFS son generalmente bastante confiables
- Si no tiene la computadora portátil, aún es fácil hacer cambios desde una terminal