Приложение работает в продакшине на разных сетапах: Oracle, MySQL. Например BOOLEAN vs BIT(1) или RAW vs BINARY. Без DSL пришлось бы писать 2 вида скриптов.
Отлично уживаемся уже как 2,5 года с Liquibase на проекте 60+ разработчиков в пике, и
Очень помогает при фичебранчинге, можно аккуратно добавить необходимое предусловие чтобы та или иная миграция не выполнялась.
Когда вышли в продакшн, сделали несколько снапшот базы и объединили миграции, т.к. их запуск занимал порядком времени
Flyway — не рекомендую, так как у него, банально, наблюдались проблемы с переводом строк Unix-Windows.
Hibernate — вообще не вариант, т.к. вы не сможете нормально контролировать процесс обновления схемы/данных.
Гайд от разработчиков Джавы.
www.youtube.com/watch?v=Ej0sss6cq14
stuartmarks.files.wordpress.com/…motherofallbikesheds3.pdf
и тут же пытаемся распарсить её по-другому.
этот эксепшин — капля в море. я бы не советовал такой код отправлять потенциальному работадателю.
github.com/...
Вместо instanceof лучше парсеры разделить на отдельные классы — по каждому на сайт.
github.com/...
Стремная логика, эксепшин может выпаcть когда угодно.
career.luxoft.com/...
Парочка * Java вакансий у них висят.
1. findById(Integer), delete(Integer) на уровне дао\сервисов — сменить на примитив. Поможет на этапе компиляции отловить NPE.
2. Тесты? Гуглите в сторону junit & mockito.
3. Почему-то зависимости TransactionServiceImpl не private, надо бы закрыть.
4. Наблюдается логика в контроллере — вынести в сервис (populateDefaultModel, sourceType — это ведь отдельный тип?).
1. Первый пункт не выполнен, все так же нужен .gitignore на бинарники + добавить *.iml и .idea. Закоммить и удалить из репозитория лишнее.
2. По структуре — более менее.
3. Подредактируйте pom.xml: форматирование, уберите копирайты mkyong — в общем, подправьте под себя. Погуглите про каждую директиву, которая была использована для понимание что это такое.
4. Transaction.java: именование полей — только camelCase, никакого snake_case, поля сделайте закрытыми.
Бегло пробежался. Когда исправите это, то отпишите — будем смотреть дальше.
1. В git необходимо помещать только исходный код, все бинарники (папки out и target) необходимо засунуть в .gitignore дабы исключить попадание их в репозиторий.
2. Если используете maven, то следуйте конвенциям и создайте типичную структуру папок для maven’a.
2. Сборка проекта: настройте сборку через maven в war файл. По желанию, можно подключить jetty plugin — он позволит вам запускать ваш проект в один клик.
3. Структура исходников: создайте отдельные пакеты для контроллеров, дао, сервисов.
4. Лучше всего, одно приложение — один репозиторий (если это не связанные модули). У вас намешано.
Как исправите — можно будет дальше продолжить :-)
#зрада
Можно и в Эклипсе «ынтырпрайзную» Джаву писать или в Саблайме даже, только не будет автокомплита и рефакторинга. Джава тем и хороша, что сам язык и сопутствующий стек не привязан особо к IDE. Всякие генерилки из схемы базы моделей есть в консольном виде, т.е. потребляют минимум вычислительных ресурсов. IDEA Ultimate c 11 по 14 версию у меня отлично уживалась на Атлоне Х2 + 3.7 ГБ RAM. Было бы желание :-)
А в чем проблема минимально освоить Spring Core (DI, конфигурирование контекста) & Hibernate [+JPA] (аннотации + простенькие запросы, настройка PU), чтобы минимально понимать что это такое? Для того, кто освоил Java Core это не должно быть трудность, а наоборот само-собой прийти в процессе обучения и написания очередного бойлерплейта. JUnit/Mockito — по-моему довольные интуитивные вещи. После освоения этих вещей пишем свой Pet-проект (простенький CRUD для какой-то предметной области) и заметно вырастаем в глазах потенциального работодателя.
В 12 лет — Visual Basic.
При 300+ резюме на 1 позицию, вполне адекватный подход.
1. Пилить свои pet-проект(ы) для закрепления материала. Желательно придумать один и его постепенно развивать.
2. Git. Git. Git. Использовать его всегда.
3. Поставить StyleCop, чтобы писать «чистый» код.
5. Познакомиться с JavaScript и каким-то популярным нынче фреймворком, аля Angular + Bootstrap/Foundation для CSS.
4. Почитать про CI, попытаться развернуть инфраструктуру для своего pet-проекта.
...
N. После того, как pet-проект будет вполне MVP, отшлифовать код и выложить его на Github/Bitbucket. Ссылку указать в резюме.
Это будет большим плюсом, для потенциального работодателя.
функциональное программирование
PHP
А если без шуток и у Вас 4 года опыта, то подучить ООП + какой-то популярный фреймворк, состряпать парочку пэт проектов и спокойно рассылать резюме.
>> Default methods enable you to add new functionality to the interfaces of your libraries and ensure binary compatibility with code written for older versions of those interfaces.