organization - sistema - ¿Cómo organizas tu espacio de trabajo de código y tu carpeta de inicio?
porque sistema ocupa tanto espacio en mi mac (4)
¿Cómo organiza su área de trabajo personal para sus proyectos de código en su carpeta de inicio?
En cuanto a las cosas de UNIXy, coloco las carpetas del proyecto bajo ~ / dev. Normalmente terminaré revisando algo de Subversion en esas carpetas de proyectos.
¿Y qué le da la mayor flexibilidad para trabajar en varios proyectos a la vez?
Para los proyectos web, mantener un conjunto de hosts virtuales basados en el nombre de Apache es extremadamente útil para trabajar en múltiples proyectos simultáneamente. http://foo.localhost/
puede apuntar a ~ / dev / foo / public, http://bar.localhost/
-> ~ / dev / bar / public, y así sucesivamente.
La pantalla GNU también es clave para mi flujo de trabajo de desarrollo local. Si necesito cambiar de equipo a otro proyecto, solo presionaré Ctrl-a, cy tendré un nuevo terminal aislado para usar.
¿Cómo organiza su área de trabajo personal para sus proyectos de código en su carpeta de inicio? ¿Y cómo mantiene el espacio de trabajo eficiente para manejar múltiples proyectos al mismo tiempo?
El aspecto más importante de mi pregunta está arriba. Puede dejar de leer a menos que desee abordar subpartes específicas del tema. A continuación se presentan varias preguntas relacionadas con la organización de los espacios de trabajo. No hay necesidad de abordarlos todos. Interesado en escuchar incluso respuestas parciales a algunas de las siguientes preguntas relacionadas.
Esta pregunta es principalmente en el contexto de UNIX y OS X. Los usuarios basados en Windows pueden ofrecer sugerencias, pero estoy más interesado en la carpeta de inicio y las convenciones de línea de comandos que generalmente se encuentran en UNIX y no en Windows (a menos que use cygwin).
En particular, ¿qué tipo de estructura de carpetas le resulta útil al mantener varios proyectos de código al mismo tiempo? Y cuando está descargando una variedad de proyectos de código fuente abierto, ¿cómo mantener organizados todos los distintos árboles de fuentes sin abarrotar demasiado su espacio de trabajo?
En particular, me pregunto qué trucos o consejos pueden tener para facilitar el acceso a los proyectos a través de la línea de comandos y para navegar a través de ellos mientras se aleja cuando necesita centrarse en un proyecto específico.
¿Hay convenciones útiles que le resulten útiles para mantener ordenados varios repositorios de origen? En particular con git, ¿cómo mantener organizadas las diferentes sucursales y repositorios relacionados? ¿A menudo sopla copias de trabajo y se actualiza rutinariamente por completo desde el control de código fuente? ¿Qué mantienes alrededor y por qué? ¿Y cómo trata los espacios de nombres y las rutas si un proyecto en particular tiene muchas dependencias de ruta que debe asignar a la estructura de su propia carpeta de inicio?
¿Qué pasa con las carpetas bin y bibliotecas comunes? ¿Cómo maneja esto si necesita crear una gran cantidad de posibles entornos de desarrollo para varios proyectos (quizás diferentes versiones de PHP, Ruby, Perl, servidores web, compiladores, etc.)?
Para los administradores de sistemas experimentados, ¿qué funciona a partir de la experiencia y qué no funciona?
¿Cómo lo mantienes lo más simple posible pero no demasiado simple?
¿Y qué le da la mayor flexibilidad para trabajar en varios proyectos a la vez?
¿Mueve proyectos de forma rutinaria fuera de su área de trabajo y vuelve a importar desde el control de código fuente? ¿Cómo se evita la acumulación de cruft al tiempo que se reduce la necesidad de recrear entornos de proyectos con demasiada frecuencia?
¿Cómo limpia o destruye todo su espacio de trabajo para poder comenzar con una pizarra en blanco, sin perder el acceso al valioso código fuente y las eficiencias organizativas obtenidas de proyectos anteriores?
Mantengo el software que he escrito yo mismo en un directorio especial, que lleva el nombre de mi sitio web principal: llamémoslo ''malabarismo'' por el bien de la discusión. Tendría ~ / juggle / software / dentro del cual hay un subdirectorio para cada proyecto que escribo (generalmente administrado con git) y ~ / juggle / websites / bajo el cual tengo un subdirectorio para cada dominio del sitio web, ya sea en formato html o algo así como webgen o staticmatic.
Para ayudarme a saltar entre ellos, uso "apparix" que se enlaza muy bien con bash.
$ cd ~/juggle/software/wolfsbaen
$ bm # bookmarks this with apparix
Así que ahora desde cualquier lugar puedo hacer esto.
$ to wolfsbaen
Para el software que he descargado, tengo ~ / software / y dentro de eso:
- archivos - para mantener los archivos fuente descargados
- documentación - para documentos HTML descargados y libros PDF
- hackear - para proyectos desechables para probar nuevas ideas o bibliotecas de software
- proyectos - para proyectos en los que colaboro, pero no comencé yo mismo
- simple - para programas bash / python / ruby que pueden ejecutarse dentro de sus directorios desempaquetados
- subversiones - para todas las verificaciones de control de revisión: cvs, svn, git, hg etc.
- desempaquetado: para los archivos comprimidos desempaquetados antes de compilarlos
También tengo ~ / bin para scripts útiles que escribo y me encuentro usando todo el tiempo. Agrego esto al PATH en ~ / .bashrc
No creo que el resto de sus preguntas realmente se apliquen tan bien a mí; excepto que con git casi nunca tengo que bombardear ninguno de mis espacios de trabajo. Hago nuevas sucursales mientras estoy en el directorio de trabajo, y escondo cambios recientes si tengo que cambiar de rama repentinamente. También mantengo un clon de repositorio de todo mi propio software y fuente de sitio web:
$ git clone --bare . /srv/git/wolfsbaen.git
"Empujé" a esto al final de cada fase de trabajo. Esto convierte a / srv / git en una opción obvia para realizar copias de seguridad.
Me gustaría compartir mi propia experiencia en la organización del sistema (aunque la pregunta es demasiado antigua, espero que esto pueda ayudar a alguien o que reciba mejores sugerencias)
Sigo cambiando las distribuciones de Linux y, a veces, uso las ventanas para trabajar. Así que he particionado HDD en 4 unidades.
- ventanas
- linux
- principal
- extra
Todo mi trabajo va en la tercera unidad, que es NTFS, por lo que se puede acceder tanto a Windows como a Linux. (Es posible que necesite alguna configuración de fstab
para no desordenar los permisos de archivo al montar esta unidad en Linux). Ahora en este disco, pongo las siguientes carpetas.
- Documentos
- todos los documentos que almacené (por ejemplo, libros, libros blancos, etc.)
- Imágenes
- Música
- canciones
- Listas de reproducción (Actualmente usando banshee)
- Películas
- Trabajo
- oficina
- proyecto de oficina 1
- proyecto de oficina 2
- personal
- público (en su mayoría proyectos que publiqué en github)
- proyecto personal 1
- proyecto personal 2
- privado
- proyecto personal 3
- proyecto personal 4
- público (en su mayoría proyectos que publiqué en github)
- recursos
- En su mayoría, repos descargados desde github o cualquier otro código fuente o material relacionado
- oficina
- Rasguño
- Básicamente, todo va aquí primero en caso de que no sepa dónde poner o tengo prisa. Más tarde los clasifico por necesidad
- También establezco enlaces blandos en este directorio a otros directorios a los que accedo con frecuencia. La razón de esto es que puse
scratch
carpeta descratch
comoDesktop
- Tugurio
- Cosas a las que ya me he referido, pero que debo mantener durante algún tiempo y luego eliminarlas
- Sigo limpiando esta carpeta en el tiempo libre.
- Dropbox
- Pocas cosas a las que accedo desde múltiples dispositivos están almacenadas en dropbox. Pero debido a problemas de privacidad de Dropbox, no puedo almacenar todo lo que contiene. Y todavía estoy pensando en la solución ideal para esto. Traté de ejecutar las alternativas de Dropbox de OpenSource en mis propios servidores pero manteniéndolos en hassel. (También, como soy de uno de los países del tercer mundo, tengo que salir de la red muchas veces)
- Actualmente estoy desplegando una aplicación web simple para almacenar cosas como citas / libros que me gustan. También tomo muchas notas al trabajar. Por ahora los estoy almacenando en Dropbox, pero pronto los moveré a mi aplicación.
Cuando instalo un nuevo sistema operativo, primero cambio las carpetas predeterminadas y las ubicaciones marcadas como Escritorio, Música, Documentos, etc. a las carpetas de la unidad principal y el buzón de instalación. Pongo la carpeta scratch como escritorio
Para los archivos de configuración (editor / shell, etc.), puede usar la unidad principal / dropbox / dotfiles.
Además, utilizo zsh / vim / emacs con algunos complementos interesantes para hacerme más productivo.
No voy a responder a todas sus preguntas; Sin embargo, diré que uso SVN y sigo sus convenciones para proyectos. Así que tengo una carpeta llamada:
d:/development
Y dentro de eso, todos mis proyectos son como subcarpetas (quizás 20 o más). En cada una de ellas, es
/trunk
/branches
/tags
Y eso es. Tengo una segunda máquina aquí en casa, en mi servidor (y también en el centro de medios: P), y en ella tengo SVN ejecutándose bajo apache, y también trac , para administrar las tareas y los errores en cada una. También tengo CC.net, para builds.