Ответы пользователя по тегу Java
  • Spring boot, в каких случаях стоит ли использовать для прототипирования веб-приложения?

    Adam_Ether
    @Adam_Ether
    Java Developer
    Стоит ли использовать Spring boot для прототипирования веб-приложения?

    Стоит и не только для этого. Обратите внимание на Spring Data -- ускорит и упростит работу "общения" с datastore.

    Встречали ли Вы случаи использования таких систем на продакшен-решениях?

    Да. Причем, в достаточно серьезных проектах. Для реализации микросервисной архитектуры.

    Какие есть минусы у такого подхода.

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

    Возможно ли в дальнейшем изъять из приложения Spring boot, оставив просто Spring или даже перейти на другой java-фреймворк?

    Возможно. Многое зависит от архитектурного стиля. Старайтесь вообще минимизировать зависимость от фреймворка. Почитайте о DDD.

    Есть ли еще какие-то адекватные способы создания прототипа для веб-приложения на java с возможностью потом нарастить функциональность в прототипе

    Есть. Уже названный Play, Ninja...
    Ответ написан
    Комментировать
  • Какую БД выбрать для веб-приложения домашнего использования (Java)?

    Adam_Ether
    @Adam_Ether
    Java Developer
    Можно и H2 (https://ru.wikipedia.org/wiki/H2 описание фич) попробовать
    1 +
    2 +
    3 +
    4 +

    Она крайне быстра (in-memory mode), хорошо подойдет для прототипирования, легко запустить, миграции могут автоматически накатится (те гибкость при смене схемы данных).

    Правда, если проект перестанет быть "домашним" уже не подойдет, но это уже совсем другая история.
    Ответ написан
    Комментировать
  • Какой web framework для java выбрать?

    Adam_Ether
    @Adam_Ether
    Java Developer
    Вообще хороший вопрос вы задали.

    Задача №1.
    Можно ли Java? А почему бы и нет? Я бы для такого просто приложения использовал Play ибо он:
    - прост в обучении и вообще действительно все делается "играючи"
    - приятный, простой шаблонизатор, можно иметь базовые шаблоны, которые расширяются другими
    - hot-reload в dev режиме сэкономит время на отладку
    - под капотом netty, поэтому работает быстро
    - интегрирован hibernate
    - более менее можно протестировать все (не самая сильная сторона)
    - есть встроенная in-memory база (h2) данных и фикстуры для тестирования

    Стоит заметить это все о Play 1*, на мой взгляд, субъективно второй сложнее.

    Задача №2
    Опять же, можно использовать Play или Spring (стоит попробовать сразу 4, все через аннотации можно сделать, также можно в методе контроллера сразу возвращать объект -- он будет непрозрачно сериализован (настраивается как))

    Насчет Spring, это достаточно громосткая технология, зачастую требует намного больше времени, чтобы решить туже задачу (например в Play), больше читать, больше вникать. Но это окупится большей гибкостью.

    Задача №3 Если честно, не совсем понял что здесь нужно.
    Ответ написан
  • Изучение Java: мотивация, перспективы, краткий план?

    Adam_Ether
    @Adam_Ether
    Java Developer
    - Какие технологии/фреймворки/ аспекты языка помимо Java Core следует изучать с точки зрения большой востребованности фриланса/рынка труда full time? И к изучению каких стоит приступать в первую очередь ?

    По-моему, фреймворки разные и технологии это сильно меняющиеся с течением временем вещи, так что прямо целенаправленно их изучать в отрыве от реальности не очень-то и здорово. А вот с реальным задачами опыт придет, причем неизбежно и с фрейворками, и с технологиями. Главное просто выбрать область в которой вы будете писать программы, так чтобы вам самому это нравилось.

    - Насколько в Jave нужен скилл security programming, и как можно совместить вообще оконченную мною программу Information Security с программированием на джаве? Нужны ли рынку такие специалисты?

    Любые знания в Computer Science полезны будут. Хотя бы даже для собеседований.

    - Насколько развит рынок фриланса для джавы? Реально при грамотном подходе через какое-то время получать доход на этом рынке, ну хотя бы сравнимый с доходом в треть того, что получает джуниор на полный рабочий день в средней компании?

    Вот тут могу только догадываться, но похоже, что там (флилансе) java не так популярна, как на работе on-site. Хотя думаю и там можно чего-то добиться, но развитие будет сложнее и дольше (чем работа в команде).

    Как итог могу посоветовать командную работу стажером, больше практики, возможно парное программирование с более опытными коллегами.
    Ответ написан
    2 комментария
  • Как тестировать сложные распределенные системы?

    Adam_Ether
    @Adam_Ether
    Java Developer
    Цель интеграционного тестирования заключается в том, чтобы взаимодействие определенных подсистем не нарушало установленного контракта.
    Вы можете использовать мокирование — имитировать эталонные ответы какого-либо сервиса. Например Mockito
    А вообще хорошо бы иметь функциональные тесты — покрывающие бизнес-требования и прогонять их на QA окружении, максимально похожим на production.
    Ответ написан