• Книги по 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
    Ответ написан
    Комментировать
  • Какой фреймворк для back-end на Kotlin?

    @frozen_coder
    Java-developer
    Благодаря тому, что Kotlin - это jvm-язык, вы можете использовать любые java-библиотеки и фреймворки из Kotlin-кода.

    Кроме названных выше, есть ещё micronaut.
    Ответ написан
    Комментировать
  • Значительны ли отличия 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 и т.д. Уверенности после них будет хоть отбавляй) Поговорите с работодателем об этом - может даже проспонсирует и премию выпишет за такие инициативы)
    Ответ написан
    Комментировать
  • Как сейчас актуально создавать переводы документаций к новым инструментам разработки?

    @frozen_coder
    Java-developer
    Первый вариант - это github pages. Хостинг небольших статических сайтов для проектов на гитхабе. Что будет на этом сайте и как вы его будете заполнять и вести - это ваше дело. Часто там ещё личные блоги делают. Используют какой-нибудь jekyll или аналоги. Это бесплатно. Т.е. тут надо больше ручками поработать. И если ваш сайт будет очень популярным, то вроде как могут попросить вас мигрировать куда-нибудь)
    Второй вариант - это gitbook. Уже более специализированное решение, которое сразу даёт платформу из коробки, как я понимаю. Там даже есть платные решения со всякими готовыми плюшками. Есть что-то бесплатное, в том числе и для opensource. Посмотрите на сайте. Т.е. это проще и быстрее, но мб за что-то хорошее нужно доплатить. Не юзал, честно говоря.
    Ответ написан
    Комментировать
  • Какой фрэймворк выбрать для фронта в Spring MVC?

    @frozen_coder
    Java-developer
    Если делаете просто для себя, то выбирайте, то что вам хочется. Если вы делаете это по работе или вам кому-то надо обосновать ваш выбор, то задайтесь вопросом - а какую это проблему решает?
    Вы пишите, что у вас многостраничного приложение и в основном всё на сервере. Всякие реакты-ангуляры и проч. предназанчены в первую очередь для создания одностраничного клиентского приложения со сложной логикой - это ваш случай, вам действительно нужно тащить много js на клиент? Если нет, то пишите старое доброе многостраничное приложение с каким нибудь шаблонизатором и js (можете взять ts, можете на vanilla.js писать, можете на jQuery).
    Если же вам таки нужно одностраничное приложение, то ваш сервер надо переписать немного так, чтобы он взаимодействовал с внешним миром через какой-нибудь REST и тогда серверу будет до лампочки, что вы будете делать на фронтенде.
    Ответ написан
  • Что нужно знать java back-end junior разработчику помимо языка?

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

    @frozen_coder
    Java-developer
    Посмотрите в сторону аналитики - какие бывают и что делают. Я, правда, не знаю, какие специальности они в вузах заканчивают. Может "Информатика в экономике". Надо читать описания и учебные планы в вузах.
    Ответ написан
    Комментировать
  • Есть ли какой-нибудь реальный смысл использовать MongoDB вместо MySQL (расшифровка вопроса в тексте)?

    @frozen_coder
    Java-developer
    Всё зависит от данных и как вы с ними будете работать. Жить без монги можно и даже хорошо. Если у вас реляционные данные, то вам нужна реляционная БД. Если ваши данные можно представить в виде документа и с данными вы работаете как с документом, то вам подойдёт Монга.

    Приемущество Монги в отсутсвии схемы - если схема часто меняется и у вас дохрелион записей в реляционной бд с этим может быть больно, хотя у всех уже давно есть поддержка JSON.
    Также вам не нужны никакие join'ы - просто достаёте сразу весь документ. Шардирование делать попроще. Если вам нужно выбирать из нескольких коллекций, то можно это сделать в приложении через отдельные запросы.

    Большинство использует её, потому что это просто, быстро разрабатывать, особенно в js - закинул объект да и всё. Не надо про схемы думать. Фигак-фигак. Кто-то использует как объектный кэш.

    Я использовал на проекте с документной структурой данных - одна сущность-агрегат, а всё остальное лишь её части и существуют только для неё. И когда часто меняется состав полей. И объемы большие. Одна основная коллекция и несколько коллекций-справочников, которые кэшируются.
    Ответ написан
    1 комментарий
  • Какую 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
    Ответ написан
  • Есть ли хороший справочник по стандартной библиотеке Java?

    @frozen_coder
    Java-developer
    В дополнение к комментариям про документацию и чтение исходников (что определённо отличный выбор и лучший справочник), если вам очень нужны именно книги и на русском, то есть две:

    1. Карманный справочник
    2. Шилдт

    Но всё таки настоятельно советую использовать самый лучший и самый свежий справочник
    Ответ написан
    Комментировать
  • Возможна ли структура данных из разнородных элементов в Java?

    @frozen_coder
    Java-developer
    Просто List без Generic (Raw types). List list = new ArrayList();

    Но это такое, клиенту вашему норм будет такие данные читать? У этих классов общего класса или интерфейса нет? Если это совсем разные сущности, то я бы обёртку сделал (DTO-класс) с разными полями.
    Ответ написан
    2 комментария
  • Есть ли "простые" GUI для MongoDB?

    @frozen_coder
    Java-developer
    Ну легко же гуглится - https://www.guru99.com/top-20-mongodb-tools.html

    Попробуйте официальный клиент Compass - https://www.mongodb.com/products/compass
    Ответ написан
    5 комментариев
  • Какие программы писать новичку в Java?

    @frozen_coder
    Java-developer
    Есть у меня список ссылок на такой случай, но вам придётся самой выбрать. Я не знаю на каком вы этапе освоения java, но думаю, что надо выбирать что-то небольшое (чтобы не тянулось очень долго и был быстрый результат) и что-то интересное вам лично, чтобы вам было приятно и увлекательно это делать. Не бойтесь, если чего-то не знаете - гуглите как сделать нужную вам задачу и найдёте или подсказки, или описание на обычном языке, или решение, на которое можно посмотреть, закрыть и повторить самостоятельно, разобрать как оно было сделано. Итак:

    1. https://www.codementor.io/npostolovski/40-side-pro...
    2. https://github.com/karan/Projects-Solutions/blob/m...
    3. https://habr.com/ru/post/345092/
    4. Вот это просто отличный список идей для любых языков - https://eax.me/programming-language-learning/
    5. Тут есть список того, что хорошо бы знать любому разрабу и в конце список проектов - https://gist.github.com/gabriel-fallen/5337067
    6. www.itmathrepetitor.ru/zadachi-po-programmirovaniyu
    7. https://docs.google.com/document/d/16h9Qw2vkAlhw-T...
    8. https://docs.google.com/document/d/1wHTv7y-KZnBg6b...
    9. Тут много всяких тестовых заданий по разным языкам, в том числе и Java - https://github.com/Hexlet/ru-test-assignments
    10. https://github.com/peterservice-rnd/new-job/blob/m...
    11. https://github.com/peterservice-rnd/new-job/blob/m...
    12. https://github.com/peterservice-rnd/new-job/blob/m...

    Многие задания не прям для новичков, но вы не бойтесь, сохраните себе на будущее. А вообще мб и не стоит бояться сложности, если проект вас заинтересует - гугл вас спасёт, как я уже написал. Ещё советую поискать тестовые задания в октрытом доступе - они обычно не супер большие, но что-то поделать надо и бывают интересные.

    P.S. Тостер обрубает отображение ссылки по длине, если что и последние 3 ссылки - это разные :)
    Ответ написан
    1 комментарий
  • Что лучше использовать веб-разработчику: Linux Mint или Ubuntu?

    @frozen_coder
    Java-developer
    Что то, что это. Mint будет удобнее, это как бы немного доработанная убунта. Пакеты у обоих deb, пакетный менеджер тот же, разница только внешняя. В плане работы - разницы нет (правда я больше по бэкенду). Поставьте на виртуалку обе или загрузитесь по очереди через live-образ и потыкайте обе. ИМХО, после винды Mint будет удобнее и привычнее чем обычная убунта. Ходят слухи, что всякие фотошопы можно запустить через wine, но я лично не пробовал

    Р.S. А оно вам вообще надо? Если у вас Windows 10, то воспользуйтесь Windows Subsystem for Linux - этого вам хватит для веб-разработки и на винде останетесь
    Ответ написан
    Комментировать