Я единственный разработчик академического консорциума со штаб-квартирой в университете на северо-востоке. Вся моя работа по разработке включает в себя внутренние инструменты, в основном на Java, поэтому ничего не публикуется публично. Прямо сейчас, я чувствую, что мой рабочий процесс разработки очень "хобби" и не похож на то, что вы бы видели в опытной фирме по разработке программного обеспечения. Я был бы склонен сказать, что это не имеет особого значения, поскольку я единственный разработчик в любом случае, но это не может помешать внести некоторые изменения, если не по какой-либо другой причине, кроме как сделать мою работу немного легче и получить несколько больше технологий в моем резюме. Сейчас мой рабочий процесс выглядит примерно так:
-
Я делаю большую часть своих разработок в Eclipse на своем ноутбуке. Все сохранено локально на моем ноутбуке, и я не использую VCS, и я действительно не копирую свой код (за исключением того, что иногда отправляю его по электронной почте, чтобы я мог видеть его на другом компьютере - да, я сказал вам, что моя среда разработки нуждается в работе).
-
Когда я закончил проект и хочу его развернуть или если я просто хочу его протестировать, я использую встроенный инструмент Jar в Eclipse для создания исполняемого файла .jar моего проекта. Если я использую внешние библиотеки .jar, я использую плагин Fat-Jar, чтобы включить эти .jars в свой исполняемый файл .jar.
-
После того, как я создаю .jar, я вручную загружаю его на сервер через SFTP и тестирую его с помощью
java -jar MyProject.jar
.
О да, я упоминал, что я не unit test?
Наиболее очевидной проблемой, которую я хотел бы исправить, является отсутствие контроля источника. Мне нравится git из-за его распределенной природы, но он, похоже, не очень хорошо интегрируется с Eclipse, и я слышал, что он не очень хорошо работает в Windows, это моя основная ОС разработки. Итак, я склоняюсь к SVN, с которым у меня есть некоторый опыт. У меня есть свой личный сервер, и я думаю, что я буду использовать его для своего исходного контроля, потому что я предпочел бы быть моим собственным администратором, чем иметь дело с университетской бюрократией. У меня возникли проблемы с настройкой SVN раньше, но я дам ему еще один выстрел. Может быть, я также смогу установить что-то вроде Trac или Redmine для отслеживания ошибок, списка дел и т.д.?
Как насчет строительства и развертывания? Должен быть лучший способ, чем использовать Fat-Jar и вручную загружать мою банку на сервер. Я слышал о таких инструментах, как Ant и Maven - применимы ли они к тому, что я хочу сделать? Как я могу начать использовать их?
Я полагаю, что в конце концов мне захочется интегрировать модульное тестирование с JUnit. Несмотря на то, что это, вероятно, должно быть, это не моя главная проблема прямо сейчас, потому что до сих пор мои приложения не очень сложны. Я бы очень хотел работать над упрощением и упорядочением моего рабочего процесса прямо сейчас, а затем я облегчу модульное тестирование.
Извините за длинный вопрос. Я думаю, мой вопрос сводится к тому, что для единственного разработчика, какие инструменты и методологии можно использовать/не могу использовать, чтобы не только упростить мою работу, но и просто разоблачить некоторые технологии, которые ожидали бы необходимых знаний в специальной разработке дом?
edit: Спасибо за отличные ответы. Я не хотел предлагать, чтобы я сделал свой рабочий процесс "enterpriseisey" только ради этого, но чтобы упростить мою работу и получить несколько технологий под моим поясом, которые обычно используются в средах разработки на предприятии. Это все, что я имел в виду.