Как вы организуете свою рабочую область кода и домашнюю папку? - PullRequest
21 голосов
/ 12 сентября 2009

Как вы организуете свою личную рабочую область для своих проектов кода в своей домашней папке? И как сохранить эффективность рабочего пространства для одновременной работы с несколькими проектами?


Самый важный аспект моего вопроса выше. Вы можете прекратить чтение, если вы не хотите обратиться к конкретным подразделам темы. Ниже приведены различные связанные вопросы об организации рабочих пространств. Не нужно обращаться ко всем из них. Заинтересованы даже в частичных ответах на некоторые из следующих связанных вопросов.

Этот вопрос в основном относится к UNIX и OS X. Пользователи на базе Windows могут предлагать предложения, но меня больше всего интересуют соглашения о домашних папках и командной строке, обычно встречающиеся в UNIX, а не в Windows (если вы не используете cygwin).

В частности, какую структуру папок вы считаете полезной при одновременной поддержке нескольких проектов кода? И когда вы загружаете различные проекты с открытым исходным кодом, как сохранить все различные деревья исходного кода организованными, не загромождая ваше рабочее пространство?

В частности, мне интересно, какие хитрости или подсказки могут быть у вас для облегчения доступа к проектам через командную строку и их удобного просмотра, когда вы уходите с дороги, когда вам нужно сосредоточиться на конкретном проекте.

Существуют ли полезные соглашения, которые вам удобны для упорядочения различных исходных репозиториев? В частности, с git, как вы поддерживаете различные ветки и связанные репозитории? Вы часто сдуваете рабочие копии и регулярно обновляетесь из системы контроля версий? Что вы держите вокруг и почему? И как вы справляетесь с пространствами имен и путями, если у конкретного проекта есть много зависимостей путей, которые вы должны сопоставить со своей структурой домашней папки?

А как насчет папок bin и общих библиотек? Как вам это удается, если вам нужно создать множество потенциальных сред разработки для различных проектов (возможно, разных версий PHP, Ruby, Perl, веб-серверов, компиляторов и т. Д.).

Для опытных системных администраторов, что работает по опыту, а что нет?

Как вы делаете это максимально простым, но не слишком простым?

А что дает вам наибольшую гибкость для работы над несколькими проектами одновременно?

Регулярно ли вы перемещаете проекты из рабочей области и повторно импортируете из системы контроля версий. Как предотвратить накопление хлама при одновременном снижении необходимости воссоздания среды проекта слишком часто?

Как вы моете или выбрасываете всю свою рабочую область, чтобы вы могли начать с чистого листа, не теряя доступа к ценному исходному коду и организационной эффективности, полученной из прошлых проектов?

Ответы [ 4 ]

12 голосов
/ 12 сентября 2009

Я храню программное обеспечение, которое я написал сам, в специальном каталоге, названном в честь моего основного веб-сайта - давайте будем называть его «жонглировать» ради аргумента. Я бы имел ~ / juggle / software /, внутри которого есть подкаталог для каждого проекта, который я пишу (обычно управляется с помощью git), и ~ / juggle / sites /, в котором у меня есть подкаталог для каждого домена сайта, будь то сырой HTML или что-то вроде как webgen или staticmatic.

Чтобы помочь мне прыгать между ними, я использую 'apparix', который очень хорошо связан с bash.

$ cd ~/juggle/software/wolfsbaen
$ bm # bookmarks this with apparix

Так что теперь из любого места я могу сделать это

$ to wolfsbaen

Для программного обеспечения, которое я скачал, у меня есть ~ / software / и внутри него:

  • архивы - чтобы сохранить загруженные исходные архивы
  • документация - для загруженных документов HTML и PDF книг
  • взломать - для одноразовых проектов, чтобы попробовать новые идеи или библиотеки программного обеспечения
  • проектов - для проектов, в которых я работаю, но сам не начал
  • simple - для программ bash / python / ruby, которые могут работать внутри своих распакованных каталогов
  • subversions - для всех проверок контроля версий: cvs, svn, git, hg и т. Д.
  • unpacked - для распакованных тарболов перед их компиляцией

У меня также есть ~ / bin для полезных сценариев, которые я пишу и постоянно использую. Я добавляю это в PATH в ~ / .bashrc

Не думаю, что остальные ваши вопросы действительно относятся ко мне так хорошо; за исключением того, что с git мне почти никогда не придется заморозить любое мое рабочее пространство. Я создаю новые ветки, находясь в рабочем каталоге, и прячу последние изменения, если мне нужно внезапно переключить ветку. У меня также есть клон репозитория всех моих собственных программ и источник на сайте:

$ git clone --bare . /srv/git/wolfsbaen.git

Я «толкаю» к этому в конце каждой рабочей фазы. Это делает / srv / git очевидным выбором для резервного копирования.

3 голосов
/ 12 сентября 2009

Как вы организуете свой личный рабочее пространство для ваших проектов кода в ваша домашняя папка?

Что касается UNIXy, я помещаю папки проекта в ~ / dev. Я обычно заканчиваю тем, что проверял что-то из Subversion в этих папках проекта.

И что дает вам больше всего Гибкость для работы на нескольких проекты сразу?

Для веб-проектов поддержка набора виртуальных хостов Apache на основе имен чрезвычайно удобна для одновременной работы над несколькими проектами. http://foo.localhost/ может указывать на ~ / dev / foo / public, http://bar.localhost/ -> ~ / dev / bar / public и т. Д.

Экран GNU также является ключевым для моего локального рабочего процесса разработки. Если мне нужно переключить передачи в другой проект, я просто нажму Ctrl-a, c и у меня будет новый изолированный терминал для использования.

3 голосов
/ 12 сентября 2009

Я не собираюсь отвечать на все ваши вопросы; Я скажу, однако, что я использую SVN, и я следую их соглашениям для проектов. Итак, у меня есть папка с именем:

d:\development

И внутри все мои проекты в виде подпапок (может быть, 20 или около того). В каждом из них есть

\trunk
\branches
\tags

И это все. У меня дома есть вторая машина, на которой находится мой сервер (а также медиацентр: P), и на нем у меня есть SVN, работающий под Apache, а также trac для управления задачами и ошибками в каждой. Также у меня есть CC.net, для билдов.

1 голос
/ 15 октября 2017

Я хотел бы поделиться своим собственным опытом в организации системы (хотя вопрос слишком старый, я надеюсь, что это может кому-то помочь, или я могу получить лучшие предложения)

Я постоянно меняю дистрибутивы Linux и иногда использую Windows для работы. Итак, я разделил HDD на 4 диска.

  1. окна
  2. Linux
  3. основной
  4. дополнительный


Вся моя работа идет на 3-м диске, который является NTFS, поэтому к нему можно получить доступ как в Windows, так и в Linux. (Вам может потребоваться некоторая конфигурация fstab, чтобы не связываться с правами доступа к файлам при монтировании этого диска в Linux). Теперь в этот диск я положил следующие папки.

  • Документы
    • все документы, которые я хранил (например, книги, документы и т. Д.)
  • Картинки
  • Музыка
    • песни
    • плейлистов (в настоящее время используется банши)
  • Фильмы
  • Работа
    • офис
      • офисный проект 1
      • офисный проект 2
    • персональный
      • публично (в основном проекты, которые я публиковал на github)
        • персональный проект 1
        • персональный проект 2
      • частная
        • персональный проект 3
        • персональный проект 4
    • ресурсы
      • в основном репозитории, загруженные с github или любого другого исходного кода или связанных материалов
  • Царапины
    • В основном, все идет в первую очередь, если я не знаю, куда положить или я тороплюсь. Позже я сортирую их по необходимости
    • Также я установил программные ссылки в этом каталоге на другие каталоги, к которым я часто обращаюсь. Причина этого в том, что я установил папку scratch как Desktop
  • Dump
    • Вещи, к которым я уже обратился, но у которых есть какое-то время, а затем удалить
    • Я продолжаю чистить эту папку в свободное время
  • Dropbox
    • Немногие вещи, к которым я обращаюсь с нескольких устройств, хранятся в Dropbox. Но из-за проблем конфиденциальности Dropbox я не могу хранить все в нем. И я все еще придумываю идеальное решение для этого. Я пытался запускать альтернативы dropbox с открытым исходным кодом на своих собственных серверах, но поддерживал их на должном уровне. (Кроме того, поскольку я из одной из стран третьего мира, мне приходится много раз выходить из сети)
    • В настоящее время я запускаю одно простое веб-приложение для хранения таких вещей, как цитаты / книги, которые мне нравятся. Также я делаю много заметок при работе. Пока я храню их в Dropbox, но скоро я перенесу их в свое приложение.

Когда я устанавливаю новую ОС, сначала я меняю папки по умолчанию и места для закладок, такие как «Рабочий стол», «Музыка», «Документы» и т. Д., На папки основного диска и в раскрывающемся списке настроек. Я установил рабочую папку как рабочий стол
Для конфигурационных файлов (редактор / оболочка и т. Д.) Вы можете использовать основной диск / dropbox / dotfiles.
Также отметим, что я использую zsh / vim / emacs с несколькими интересными плагинами, чтобы сделать меня более продуктивным.

...