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