У меня есть папка со всеми моими проектами на разных языках. Затем у меня есть библиотеки, которые я мог бы использовать в своем коде (в основном, файлы jar). Я уверен, что есть принятая практика, не так ли? Что делают профессионалы?Как организовать свою среду разработки
ответ
Для меня это следующий список каталогов в корневом каталоге проекта:
- ЦСИ для .java файлов, используя иерархии пакета
- Библиотека для 3-й партии баночки, если я не получаю их из хранилища (например, Spring distro)
- тест для тестовых файлов JUnit или TestNG
- ресурсов или конфигурации для .properties,.XML и т.д.
- веб, если это веб-приложение, которое содержит WEB-INF и все его бабка
- DOCS, если у меня есть какие-либо документации
мне нравится структура, которая эволюционировала Весенних люди.
Я использую IntelliJ, поэтому я хочу, чтобы вся структура, которую я должен играть с ней.
У меня есть каталог/работа, которая хранит все мои рабочие копии Subversion.
Это действительно зависит от того, какие инструменты вы используете и как вам нравится его организовывать.
Например, я видел людей, которые используют Eclipse, но помещали каждый проект в одну рабочую область или использовали одно рабочее пространство для каждого проекта. Фактическое хранение проектов также может варьироваться. Итак, я не думаю, что есть принятая практика.
Я думаю, вам нужно будет выяснить, что работает лучше всего для вас.
У меня есть папка под названием «Работа». В этой папке у меня есть проекты.
Проект содержит все мое разработанное программное обеспечение, по одному каталогу для каждого, с условным названием. Каждый каталог представляет собой полный базарный репозиторий, контактирующие теги, багажники и ветки (наследие моего старого стиля svn, возможно, я скоро изменюсь).
Я также разрабатываю конкретные исполнения для проектов. Каждая среда выполнения загружается и устанавливается с помощью make-файла, который загружает и компилирует все необходимое (библиотеки, интерпретаторы и компиляторы в худшем случае, что некоторые библиотеки требуют определенной версии).
Поскольку моя работа в основном связана с небольшим кодом, у меня также есть архивные и устаревшие вложенные папки в Project, где я помещаю вещи, которые я больше не использую (первый), или был заменен лучшей программой (устаревшей). Я никогда не выбрасываю старый код, поскольку он может быть полезен завтра.
Для развертывания и использования у меня есть скрипт python, который входит в каждый субтитр Project и загружает зависимости, компилирует все и упаковывает его как файл nutz (своего рода файл jar для утилиты утилиты Chestnut Package Manager, а также продукт мой).
В большинстве случаев профессионалы используют IDE, которые делают все для них. Мне не нравится этот подход, потому что часто использование и обучение IDE занимает больше времени, чем то, что я делал. IDE реализованы с идеей, что у вас есть бизнес-клиенты и потенциально большой программный проект с участием команды. На данный момент я вышел из этой шкалы, и для меня, используя сложную IDE, можно было бы передать трансатлантику на хороший уик-энд на море. Полностью вне шкалы для моих текущих потребностей.
Это очень зависит от языка программирования, который вы используете. Я программирую в java, и лучшая структура, которую я видел там, дается maven.
Вам не нужно возиться с десятками файлов jar из-за большого управления зависимостями maven. Вы можете использовать существующие плагины для достижения почти каждой цели, которую вы можете себе представить. И вы можете структурировать свои проекты в небольших подпроектах для оптимального повторного использования.
о, да, когда это работает , Здорово. Слишком плохо, что это никогда не происходит (по крайней мере, с моим очень ограниченным опытом): я часами пинал, удалял и отключал и повторно затягивал зависимости, чтобы заставить его работать (на пару дней). Не уверен, что это была ошибка maven или ужасная установка maven, но я уверен, что у меня были большие проблемы, и никто не мог мне помочь. Я сдался. –
Я тоже ненавижу Maven. Я согласен с идеей управления зависимостями JAR, но Айви тоже это делает. Я думаю, что Maven попытался объединить Айви и Ант и оказался в раздутом беспорядке. Я особенно ненавижу тот факт, что он накладывает структуру каталогов. Почему я не могу указать его? – duffymo
У меня есть все в репозиториях управления версиями (nb: очень обнадеживающий набор файлов, которые нужно иметь, и для тестирования резервных копий). На моих машинах dev у меня есть папка «Проекты» для проверки текущей/недавней работы и папка «Проекты/архивы» для более старых проверок, над которыми я сейчас не работаю. Когда мне нужны сторонние библиотеки для проекта, они входят в папку third_party внутри каждого проекта. Они отслеживаются git-подмодулями, которые дают мне точные версии программного обеспечения, которые, как известно, работают с этим проектом, но также легко обновляются в разных проектах, взламывают, если какая-то библиотека не делает то, что мне нужно, и т. Д. Идея с этим заключается в том, что каждый проект должен быть автономным и переносимым между машинами, насколько это разумно для надежности и т. д.
используйте поиск, и вы найдете много информации об этом. – markus
@tharkun: возможно, да, но это послужило бы хорошей отправной точкой для специализированного поиска –
Дубликат: http://stackoverflow.com/questions/395486/how-do-you-manage-and-organize-your-files- scripts-repos-downloads-pdfs-etc, http://stackoverflow.com/questions/997149/best-way-to-organize-the-files-in-my-project и т. д. – gnovice