Как вы организуете свою среду разработки [закрыто]

StackOverflow https://stackoverflow.com/questions/1451240

  •  12-09-2019
  •  | 
  •  

Вопрос

У меня есть папка со всеми моими проектами на разных языках.Затем у меня есть библиотеки, которые я могу в конечном итоге использовать в своем коде (в основном файлы jar).Я уверен, что существует общепринятая практика, верно?Что делают профессионалы?

Это было полезно?

Решение

Для меня это следующий список каталогов в корне проекта:

  1. src для файлов .java, используя иерархию пакетов
  2. lib для сторонних JAR-файлов, если только я не получаю их из репозитория (например, дистрибутива Spring)
  3. проверить тестовые файлы JUnit или TestNG
  4. ресурсы или конфигурация для .properties, .xml и т. д.
  5. web, если это веб-приложение, содержащее WEB-INF и все его сопутствующие компоненты.
  6. документы, если у меня есть какая-либо документация

Мне нравится структура, которую разработали ребята из Spring.

Я использую IntelliJ, поэтому мне нужна любая структура, с которой я могу хорошо работать.

У меня есть каталог /work, в котором хранятся все мои рабочие копии Subversion.

Другие советы

Это действительно зависит от того, какие инструменты вы используете и как вам нравится их организовывать.

Например, я видел людей, которые используют Eclipse, но помещают каждый проект в одно рабочее пространство или используют одно рабочее пространство для каждого проекта.Фактическое хранение проектов также может различаться.Поэтому я не думаю, что существует общепринятая практика.

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

У меня есть папка Work.В этой папке у меня есть проекты.

Проект содержит все разработанное мною программное обеспечение, по одному каталогу для каждого, с условным названием.Каждый каталог представляет собой полный базарный репозиторий, содержащий теги, ствол и ветки (наследие моего старого стиля svn, возможно, я скоро его изменю).

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

Поскольку моя работа в основном связана с небольшим кодом, у меня также есть подпапки «Архивированные» и «Устаревшие» в Project, куда я помещаю материалы, которые больше не использую (первые) или которые были заменены более качественной программой (Устаревшие).Я никогда не выбрасываю старый код, так как он может пригодиться завтра.

Для развертывания и использования у меня есть скрипт Python, который заходит в каждый подкаталог проекта и загружает зависимости, все компилирует и упаковывает в виде nutz-файла (своего рода jar-файл для утилиты Chestnut Package Manager, тоже моего продукта).

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

Это во многом зависит от языка программирования, который вы используете.Я программирую на Java, и лучшая структура, которую я там видел, дана знаток.

Вам не придется возиться с десятками jar-файлов благодаря отличному управлению зависимостями в maven.Вы можете использовать существующие плагины для достижения практически любой цели, которую только можете себе представить.Вы также можете структурировать свои проекты на небольшие подпроекты для оптимального повторного использования.

У меня все есть в репозиториях контроля версий (примечание:очень обнадеживающий набор файлов и проверенные резервные копии).На моих компьютерах разработчиков у меня есть папка «Проекты» для извлеченных текущих/недавних работ и папка «Проекты/Архивы» для старых извлечений, над которыми я сейчас не работаю.Когда мне нужны сторонние библиотеки для проекта, они помещаются в папку Third_party внутри каждого проекта.Это отслеживаемые подмодули git, которые дают мне точные версии программного обеспечения, которые, как известно, работают с этим проектом, а также легкое обновление в разных проектах, взлом, если какая-то библиотека не делает именно то, что мне нужно, и т. д.Идея заключается в том, что каждый проект должен быть автономным и переносимым между машинами, насколько это возможно с точки зрения надежности и т. д.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top