2 votos

Automatizar la configuración del espacio de trabajo

Soy desarrollador de software y a menudo tengo que cambiar entre diferentes proyectos, cada uno con su propia configuración de entorno. Algunas acciones que tengo que hacer cada vez incluyen:

  • creación de túneles ssh
  • conexión de inspectores de bases de datos
  • aplicación de git stashes con cadenas de conexión local dev
  • iniciar los servidores locales
  • abrir un IDE específico en el proyecto correcto
  • recuperar las solicitudes guardadas por Postman para el proyecto específico
  • establecer variables de entorno
  • ...

Son todas tareas muy básicas, pero tengo que hacerlas siempre con gran pérdida de tiempo y posibilidades de meter la pata. Sería realmente genial tener algo así:

  • una "aplicación" o "icono de escritorio" con el nombre del proyecto
  • haga clic en él y se abrirá un espacio de trabajo dedicado con todo listo para empezar a desarrollar
  • mantener aislado el entorno local

¿Hay algo como esto que pueda configurar en mi Mac?

Gracias

3voto

Oskar Puntos 1242

Sí, puedes automatizar cosas en MacOS.

Antes de empezar, ya que eres un desarrollador - haz un presupuesto de tiempo para las cosas que necesitas hacer para que puedas aprender a automatizar. Luego diviértete aprendiendo cosas, la primera es cómo dividir un proyecto en pequeñas tareas.

¿Has probado a ver cuánto tiempo puedes perder en los contenedores? (jk, no realmente) es muy superior a hacer un montón de cuentas de usuario y no se puede simplemente utilizar entornos virtuales para un proyecto tan amplio.

1voto

Douglas Puntos 10417

Sólo para añadir mis 2¢...

Todo lo que has enumerado se puede programar localmente en tu Mac, excepto uno: mantener aislado el entorno local

Para ello, se necesitan entornos separados. La mejor manera de hacerlo es con VMs, pero en lugar de tener una VM para cada proyecto, puedes crear una única VM base con una imagen de disco en Modo Multiattach .

Lo que esto le permite hacer es crear una VM base con su configuración genérica, luego tener tantas VMs adjuntas a ella y que crearán diferenciación para que cada una tenga sus personalizaciones tal y como has descrito, pero el tamaño del disco de cada VM será sólo el de las modificaciones que hagas. El beneficio aquí es que puedes clonar instantáneamente una máquina para un nuevo proyecto, hacer todas tus configuraciones y cuando estés listo para ejecutar ese proyecto lanzar esa VM.

Podrías hacer esto en un MacBook Pro con unas pocas VMs, pero si tienes "cientos" probablemente quieras invertir en algún equipo de grado de servidor (o de clase de estación de trabajo) o incluso empujarlo a la nube como Azure o AWS (actualmente estoy probando la nube de Oracle y es horrible IMO)

1voto

Oren Mazor Puntos 2828

A continuación se presentan algunas sugerencias específicas para un subconjunto de sus preguntas. Tenga en cuenta que ninguna de ellas es específica de Mac, pero las he utilizado todas con éxito en un Mac durante años (¡las estoy utilizando ahora mismo!) Mi ganan mucho gratis al ser compatibles con UNIX ;)

.env archivos

  • establecer variables de entorno
  • aplicación de git stashes con cadenas de conexión local dev

Esta es una técnica para la configuración de aplicaciones que evita la necesidad de ensuciar sus archivos controlados por la fuente sólo para hacer cambios de configuración local. Un ejemplo popular es el de NPM dotenv .

La esencia es que usted tiene uno o más .env* en la carpeta de su proyecto que son ignorados por el control de fuentes. Cuando inicias tus aplicaciones en modo de desarrollo, éstas leen las variables de entorno de estos archivos para su configuración. Esto le permite establecer su configuración de desarrollo una vez sin preocuparse por el control de las fuentes.

Tenga en cuenta que esto también se relaciona con Aplicaciones de 12 factores .

Configuración SSH

  • creación de túneles ssh

Puede crear un ~/.ssh/config para establecer valores por defecto para casos de uso como éste. Aquí hay un ejemplo de entrada en el blog .

Yo uso esto fuertemente en mi trabajo, en el que tengo que trabajar con un híbrido de varios sistemas antiguos y de mala calidad. Es un regalo del cielo.

Docker/ docker-compose

  • iniciar los servidores locales

Si su software se adapta a él (lo que probablemente ocurrirá si desarrolla para Windows o Linux), Docker y docker-compose puede ser muy útil para reproducir el software en diferentes entornos. En términos más generales, esta técnica se llama "contenerización". Es un tema muy amplio, pero es muy popular en estos días para simplificar los flujos de trabajo de los desarrolladores. En mi opinión, casi siempre vale la pena el esfuerzo. Aunque sólo sea por eso.

Esto también puede combinarse fácilmente con .env archivos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X