Ответы пользователя по тегу Java
  • Нужно ли учить Reactive Spring, Cloud?

    @frozen_coder
    Java-developer
    Я попал на Spring WebFlux и Cloud, когда на уровне "что-то слышал и хочу получить опыт" и меня взяли. Это всё зависит от работодателя же, проекта и прочего. Как бонус - лишним не будет. Но я думаю, что это не должно стать преградой в основном. Только если это определённое требование к кандидату на определённую позицию. Есть книгаот Олега Докуки, почитаете, попробуете и будет достаточно.
    А монгу я вкуривал по мере необходимости. Просто начните ходить на собеседования и там будет понятно :)
    Ответ написан
    Комментировать
  • Где найти технические задания, Java?

    @frozen_coder
    Java-developer
    А вы с этими двумя справились? На GitHub залили свои труды? Попробуйте найти стажировку, она вас задачами обеспечит. А потом работу.

    Но у меня есть коллекция ссылок, которая может вас заинтересовать:
    1. 9 учебных проектов для бэкендера
    2. Идеи для проектов для практики навыков программирования - очень много всего и просто попрактиковаться и проект накрутить, полистайте-повыбирайте
    3. Список тестовых заданий для прокачки
    4. Тестовое задание Xored
    5. Тестовое - не помню чьё. Там вроде под .Net, но ничто вам не мешает реализовать его на Java и Spring
    6. Тут идея под Django, но можно и на Spring же
    7. На Java Junior тестовое
    8. Финансовый калькулятор
    9. Это просто бомбезная статья
    10. Project Ideas
    11. Тут много всякого. И задачки и проекты.
    12. 40 Side Project Ideas for Software Engineers
    13. Примеры тестовых заданий на позиции Middle и Senio...

    И просто можно погуглить тестовые задания :) Часто бывают в открытом доступе.
    Ответ написан
    5 комментариев
  • Работа с календарем в java?

    @frozen_coder
    Java-developer
    Вам нужен пакет стандартных java классов для работы со временем - java.time . Изучайте, разбирайтесь, применяйте.

    Если вы пишете на java до 8, то да, joda-time вам поможет.

    А если вы совсем ленивый и безинициативный, то вот же.

    P.S. Если вам таки нужно знать про выходные, праздничные и предпраздничные дни, то пользуясь случаем прорекламирую один из своих домашних проектов - productive-kalendar . Правда он на kotlin. И делает не совсем точно то, что вам нужно.
    Однако, может что-то для себя утащите. А точнее, я там достаю информацию о выходных, праздничных и предпраздничных днях с портала окрытых данных, паршу её и сохраняю в json, который потом использую для выполнения запросов типа "Сколько рабочих дней между датами" и т.п.

    Есть у одного моего товарища подобный проект на groovy про вытаскивание производственного календаря с популярных сайтов в json - holidays-calendar
    Ответ написан
    Комментировать
  • Почему в 2019 году Java популярнее, чем Kotlin?

    @frozen_coder
    Java-developer
    Потому что legacy. Уже написаны тонны кода, который никто не будет переписывать.
    Потому что java промышленный язык со спецификацией и многолетней историей.

    И то. Если брать мобилки, то Kotlin популярнее. Так что лет через 5 приходите.
    Ответ написан
    Комментировать
  • Что разработать на Spring Boot 2, Java?

    @frozen_coder
    Java-developer
    Ну вот вам варианты:
    1. Что можно тянуть в одного на Java?
    2. Как эффективно выучить технологии для backend'a?

    Только вот подумайте лучше, если оно так тяжко идёт, то может и не ваше вообще? В работе очень много рутинных однообразных задач, которые просто нужно сделать. Вы что будете в этом случае работу бросать? Программирование - это во многом ремесло.
    Ответ написан
  • Как записать дату с консоли(Java)?

    @frozen_coder
    Java-developer
    Загуглите ввод с клавиатуры в Java (например через Scanner и System.in) и вы можете собрать дату (LocalDate) с помощью LocalDate.of(year, month, day) - вот она переменная даты для работы с ней. Вот unix epoch из этой переменной
    long epoch = date.atStartOfDay(zoneId).toEpochSecond();

    Где zoneId - это ваша временная зона. Можно взять дефолтную для компьютера, на котором будет исполняться код, а можно задать самому. Гуглите ZoneId.
    Ответ написан
    Комментировать
  • Написание учебной СУБД - где почитать релевантные материалы?

    @frozen_coder
    Java-developer
    О, да. Я тоже когда-то думал, что найду время на это и, как настоящий Плюшкин, сделал запас из ссылок на этот случай. Кстати, подобный вопрос уже был на Тостере (даже не один), только не java-специфичный. Вообще, имхо, на чём вы будете писать не так важно же, более того, даже интереснее смотреть на код на другом языке и переиначивать его на своём. Короче, вот, что у меня есть:

    1. Как написать свою программу базы данных?
    2. shop.oreilly.com/product/9780596009571.do
    3. www.williamspublishing.com/Books/5-8459-0384-X.html
    4. lib.mexmat.ru/books/34950
    5. Куда копать(что читать), дабы написать свою СУБД?
    6. https://www.books.ru/books/lokalnaya-subd-svoimi-r...
    7. https://cstack.github.io/db_tutorial/

    Ещё можно посмотреть на код открытых СУБД. Например, SqlLite (если ничего не путаю, то проект покрыт тестами с ног до головы, что жирный +). А если именно на Java, то есть h2, правда она in-memory. Да не учебные, зато реальные.

    Удачи :)
    Ответ написан
    Комментировать
  • Какие проекты написать для портфолио на Java?

    @frozen_coder
    Java-developer
    Повторю пару своих ответов с идеями для своих проектов, может найдёте что-то интересное:

    1. Раз
    2. Два
    Ответ написан
    Комментировать
  • Как добавить картинку в background pdf?

    @frozen_coder
    Java-developer
    Мне довелось делать такое в одном из проектов. Мы использовали itextpdf 5. Вроде 5 уже не поддерживается, но это не мешает проекту продолжать работать). Теперь у них 7 весрия и вроде платная - https://itextpdf.com/en

    Там есть PdfWriter и с его помощью можно это сделать. Вроде что-то такое было

    writer.getDirectContentUnder().addImage(image, width, 0, 0, height, 0, 0);

    Где Image это тоже класс из itextpdf. У него там было вроде несколько вариантов создания.
    Ответ написан
    1 комментарий
  • Как реализовать spring bean для файлового менеджера?

    @frozen_coder
    Java-developer
    Смотрите класс Files, а точнее методы walk или walkTree

    Вот тут написано, как реализовать свой обходчик файлового дерева.

    К Spring это никакого отношения не имеет. Стандартная библиотека.
    Ответ написан
    2 комментария
  • Зачем учить jvm языки кроме Java?

    @frozen_coder
    Java-developer
    А что мешает попробовать написать по одному приложению средних размеров на каждом из языков? Что толку вам от наших ответов? Вы же так не почувствуете разницу. Вот придут скалисты и опять скажут, что их язык самый лучший - вы это уже слышали)

    Kotlin - это better java, по крайней мере на данный момент. Мб java весрии 30 или 35 дойдёт до кондиции. Подождём. Кто не хочет ждать - пишет на Kotlin. После Kotlin уже у многих возникают вопросы, а зачем на java писать?) Одна Null Safety многого стоит, имхо, конечно. И в сотый раз, kotlin не создавался под android, в нём нет никакой привязки к android, это язык общего назначения. А ещё есть kotlin.js и kotlin native.
    Scala - можно писать как на better java, но лучше всего раскрывается при функциональном подходе. Полностью функциональном. Со всеми его + и -. Вроде библиотека cats сейчас на коне и tagless final (это всё, что я про современную scala слышал :D). И вот это уже совсем-совсем не как в java. Я не адепт, попробуйте сами, может зайдёт.
    Groovy - это динамический язык. На нём хорошо прототипировать и писать скрипты (вспомните gradle). Быстро, вывод типов, сахарок. Мне в своё время очень зашли тестовые фреймворки на groovy - Spock Framework и Geb - с ними писать тесты было приятнее, чем на junit.
    Clojure - это тоже функциональщина как Scala, но ещё хардкорнее. Это для тех, кто когда-то полюбил lisp и тащится от него. Знаю только, что Никита Прокопов на нём пишет. Вроде в интервью frontend-weekend он говорил, почему пишет на Clojure, а может ещё где-то. Довольно редкий язык на самом деле.
    Ответ написан
    6 комментариев
  • Книги по Junit for java?

    @frozen_coder
    Java-developer
    Самое лучше, что есть по любым библиотекам - это документация. Привыкайте. Ну ок, есть ещё статьи на baeldung для ленивых :)

    Хотите книг? Лучше почитайте что-нибудь про тестирование в общем смысле. Я рекомендую xUnit Test Patterns: Refactoring Test Code. Она здоровенная, можно использовать как справочник и периодически посматривать.
    Ответ написан
    Комментировать
  • Из Java backend в android developer?

    @frozen_coder
    Java-developer
    На вопрос невозможно дать однозначный ответ. Откуда незнакомцы из интернета могут знать насколько быстро вы осваиваете новое и насколько велика ваша мотивация? Да кто кроме вас может вообще сказать сможете вы или нет? Если вы хотите попробовать, то почему, блин, не пробуете, а спрашиваете разрешения у каких-то незнакомцев? Может стоит такие решения принимать самостоятельно? Откуда нам знать как далеко и глубоко зайдёт ваш for fun? Про kotlin. Опять же, что мешает попробовать то? Гуглите kotlin koans - проходите и сами всё поймёте. А ответы в интернетах лично вам не помогут, ибо все мы разные и по опыту, и по способностям. Короче, идите пишите код уже)
    Ответ написан
    4 комментария
  • Как лучше сформировать класс Record?

    @frozen_coder
    Java-developer
    Это классы прямое отображение вашей схемы БД (т.е. описывают java-кодом как у вас данные в БД хранятся) или это ваши обычные классы, которые участвуют в бизнес логике?

    Если первое, то такое обычно лучше генерить автоматом с помощью какого-нибудь JOOQ, если оно вам вообще надо. И тогда это будет вариант 1

    Если второе, то конечно выбираете вариант 2. Какой вам толк от одного id-шника? А если вам куда-то передавать надо будет Record, то ещё и отдельно его User будете тащить?

    Есть ещё вариант, что это у вас какое-то DTO и нужно только знать id, связанного пользователя и всё. Самого пользователя никогда внутри Record увидеть не хотите, не ожидаете, не нужно, лишние таскать тяжело. Тогда вариант 1.

    Вообщем. Исходите из решаемой проблемы и как вы с этим будете дальше жить и использовать.
    Ответ написан
  • Как положить с помощью java в MongoDB произвольный объект?

    @frozen_coder
    Java-developer
    Варианты:
    1. Расписать все возможные поля в классе Java, если хотите использовать Pojo или всякие библиотеки типа Spring Data Mongo
    2. Предварительно запихать поля и значения в мапу типа Map<String, Object>и потом динамически формировать org.bson.Document, как в примере из документации к mongo-driver
    3. Использовать динамически типизированный язык вместо Java
    Ответ написан
    Комментировать
  • Значительны ли отличия Java 7-8 от 11-12?

    @frozen_coder
    Java-developer
    там уже все на 11 версии сидят, небось скоро и на 12 перейдут.


    Извините, но, спасибо, развеселили) Большинство, как раз таки, как сидели на 8, так и сидят на ней. 8 и даже 7 ещё несколько лет будут в поддержке. Это же java-мир, enterpise-мир больших компаний с большими проектами, тут никто не торопиться переходить на новые версии. Проблему-то какую это решит, если оно и так хорошо работает и деньги приносит? Spring 4, да радуйтесь, что не 3). Мне в прошлом году рассказывали, что одной девушке из соседней конторы достался проект на небольшой допил, а там java 3 или 4 была! И я полно видел вакансий, как раз таки на java 8.

    12 версия - не LTS. Никто толпами на неё переходить не будет. Только отчаянные единицы. У не LTS-релизов срок поддержки теперь полгода. Мрут как мухи. 11 LTS, да.

    Между 8 и 11 не такая уж супер-большая разница, если брать синтаксис. Есть пропасть между 8 и 9 в виде модулей, но не так страшен чёрт, как его малюют. Пару статеек прочитать, один проектик попробовать и вот вы уже разобрались. + добавили несколько методов в стандартную библиотеку, типа listOf, setOf и т.д. для инициализации immutable-коллекций, пару методов в String (например isEmpty) и ещё по мелочи. В основном всякие внутренние улучшения, типо работы строк. Посмотрите списки изменений в интернетах. На каждую версию даже статья на хабре есть.

    А если всё ещё переживаеете, то пройдите сертификацию по java 11. Сейчас там их всего 2. Первая часть на основной синтаксис и проверяет какой вы компилятор java) А вторая уже на всякие интересные штуки вроде многопоточности, стримов, NIO 2 и т.д. Уверенности после них будет хоть отбавляй) Поговорите с работодателем об этом - может даже проспонсирует и премию выпишет за такие инициативы)
    Ответ написан
    Комментировать
  • Что нужно знать java back-end junior разработчику помимо языка?

    @frozen_coder
    Java-developer
    Уметь самостоятельно искать инофрмацию. Открыть hh.ru и посмотреть вакансии. + в интернетах есть масса всякий статей по этому вопросу.
    Ответ написан
    Комментировать
  • Какую java скачивать в 2019?

    @frozen_coder
    Java-developer
    OpenJDK вам хватит за глаза. Устанавливайте LTS-версию. Последняя LTS - 11. Предпоследняя - 8. Что на той учиться, что на другой - особой разницы нет. Один фиг большинство ещё на 8 сидит и не торопиться на 11 переходить, если ещё и учесть ломающие изменения между 8 и 9. Правда про Android и его версии java я ничего не знаю.

    Не устану пиарить sdkman - с ним можно легко устанавливать и менять разные версии java. Я на винду не ставил, но на странице установщика говорят, что можно с такой-то матерью.
    Ответ написан
    3 комментария
  • Как привести целое число к типу double а затем разделить его?

    @frozen_coder
    Java-developer
    System.out.println("a/b = " +e); // double

    Вы пытаетесь вывести неинициализированную переменную, на что вам компилятор английским языком это говорить должен. Читайте его сообщения. Сначала выводите с, а потом e.
    Если вы хотите получить результат деления с дробной частью, то вам надо явно привести один из аргументов при делении к double. Например,
    e = (double) a / b;
    Результат деления int на int будет int, а это значит, что дробная часть будет просто отброшена даже без округления. Поэтому даже если вы сохраняете результат такого деления в double, то в дробной части получите 0. Если же один из аргументов при делении double, то результат будет double с дробной частью.

    P.S. Пожалуйста, возьмите любой учебник по java и прочитайте его. Читайте, что вам пишет компилятор. Следуя этим двум простым советам, количество вопросов будет сведено к минимуму.
    Ответ написан
    4 комментария
  • Актуальные версии Java?

    @frozen_coder
    Java-developer
    Добавлю только, что легко ставить и менять версии java можно с помощью sdkman
    Ответ написан