• Зачем учить jvm языки кроме Java?

    @frozen_coder
    korzh17, Тут буквально на днях вышел выпуск подкаста Подлодка с Олегом Нижниковым из Tinkoff про Scala. Послушайте.
  • Зачем учить jvm языки кроме Java?

    @frozen_coder
    korzh17,
    1. На groovy web тоже пишут (кто-то где-то) до сих пор, ибо есть Grails (это как Ruby on rails, только на groovy).
    2. Потому что переписывать дорого. Одна клавиша в IDE выдаёт не самый идеоматичный код и его всё равно надо будет смотреть и править. Потому что зачем вообще переписывать, если можно просто новый код писать на Kotlin и всё. У них с java великолепная совместимость. Enterprise вообще очень медленно меняется и тащит что-то новое. Сходите на hh - вакансии, где Kotlin в требованиях или пожеланиях для backend есть.
    3. На одном web мир не сошёлся. Я слышал, что scala активно используют в big data (Apache Spark). Ещё есть Akka на акторах (не знаю, как у неё сейчас с популярностью и альтернативами). Cats Effect. Из реальных проектов - в Tinkoff очень много на Scala. Kafka вроде тоже на scala написана.
  • Spring-репозитории с best-practice?

    @frozen_coder
    А что вы имеете в виду под организацией кода внутри модулей? Как классы по пакетам раскидать или что? Чем для вас Spring Boot так сильно отличается от проектов не на Spring Boot? Можете немного конкретизировать вопрос, что вы хотите увидеть в этих проектах?
  • Зачем учить jvm языки кроме Java?

    @frozen_coder
    Сергей Горностаев, Не знал, что Прокопов перешёл на Rust.
    Да, про дядю Боба я совсем забыл, он же недавно статью про это писал!

    И про Сбер не знал, это интересно). Спасибо

    Мне казалось, что редкий относительно java и даже scala. На их фоне про Clojure я слышу где-то раз в год. Но у меня, наверно, нерепрезентативная выборка)
  • Из Java backend в android developer?

    @frozen_coder
    Ringo13, хорошо. Чтобы поставить точку в этом вопросе, и если я не ошибаюсь и ничего не путаю, то один из ведущих подкаста Подлодка - Евгений Кателла - раньше был java-backend, а потом перешёл в мобильную разработку и сейчас Руководитель мобильной разработки, Яндекс.Транспорт. Вот такие перспективы могут быть. Удачи
  • Из Java backend в android developer?

    @frozen_coder
    Ringo13, Да кто же знает, как вы подкачаетесь (или нет) за это время? Если вы сами не знаете, то что тут ждёте? Прихода Ванги? Дорогу осилит идущий. Могут взять, могут и не взять. Бывает разное. Это зависит от уймы факторов. От работодателя и его требований, предстоящих задач (приложения бывают очень разные), увидит ли в вас потенциал собеседующий, какие вы приложения для себя наделаете в процессе и т.д. и т.п.
    У вас желание-то вообще есть? Оно вас драйвит? Такое ощущение, что нет, иначе вы бы таких вопросов не задавали, а код писали и получали, как вы говорили, fun. Так есть ли fun?
    Вы с другой стороны зайдите. Поспрашивайте мобильщиков, какие они задачи решают, с какими трудностями сталкиваются. Пойдите на hh и посмотрите требования, что в вакансиях вообще пишут. И начните писать код. Вдруг вам это вам не понравится вообще? Кто же его знает?
    И собственно, а какая вам разница большая там разница между бэкэнд и андроид? Что вам даст ответ на этот вопрос? Вот я или кто-то, допустим, скажет, что большая и что? Что надо будет пахать как проклятый. Всё? Весь fun и запал пропал? Уж не за длинным ли рублём гонитесь? Будет запал, драйв и кайф - будет и работа и достойная оплата. Пробуйте и думайте, что вам действительно интересно и какие задачи решать хочется.
    Я никак не могу понять в таких вопросах, почему нельзя попробовать? Что вы потеряете?
    А знаете, вот ещё вариант, бывают ещё такие чуваки, которые fullstack - они могут и сервер напилить, и мобильное приложение к нему. Некоторым и такие товарищи нужны. Можно и так себя продавать, и в таком качестве получить опыт коммерческой мобильной разработки, а уже потом мигрировать в чистую мобильную, если понравится.
  • Как лучше сформировать класс Record?

    @frozen_coder
    Евгений Ромашкан, пишу я тесты уже несколько лет. Где зависимости в тестах не нужны, не заполняешь их или мокаешь. 5 проектов сменил с разными стеками, авторами, сроками жизни и нигде ничего подобного не видел, за исключением, как, я написал в ответе, DBRecord и DTO.

    Вашу точку зрения я понял, но интересно было бы на практике взглянуть на большой и долгоживущий проект в таком стиле.
  • Как лучше сформировать класс Record?

    @frozen_coder
    Евгений Ромашкан, ну и будут поля пустые, кроме id. Зато потом, когда понадобиться всё вместе заполненное, не надо будет плодить ещё класс(ы).
  • Как лучше сформировать класс Record?

    @frozen_coder
    Евгений Ромашкан, как понять, что классы нестабильны? Ну есть у меня в классе Record ссылка на User. Что там у него внутри меняется, мне в Record никак не волнует. Что плохого в экземпляре объекта, если мы запускаемся на сервере, а не на IOT? А потом внезапно понадобиться куда-нибудь передавать заполненый класс Record со всеми его вложенными товарищами и тогда привет рефакторинг или метод на сто-пятьсот аргументов или новый класс?
  • Как преобразовать строку с значением "0"/"1" в булево значение false/true?

    @frozen_coder
    Максим Федоров, Немного не так. Смотрите, в данном случае можно явно не проверять на null, достаточно equals вызывать на notNull-объекте, а это константы. Тогда и NPE не будет и null не пройдёт.
    И в конце тоже надо на equals поменять.

    public static Boolean isTrueBinaryString(String value)
        {
            if(!STRING_FALSE.equals(value) && !STRING_TRUE.equals(value))) {
                 throw new IllegalArgumentException("Value must be `0` or `1`.");
            }
          
            return STRING_TRUE.equals(value);
        }


    P.S. String? есть в Kotlin :) В Java есть только всякие аннотации @NotNull или @Nullable, например Checker Framework или аннотации JetBrains
  • Как преобразовать строку с значением "0"/"1" в булево значение false/true?

    @frozen_coder
    Максим Федоров, про null да, ок если сравнивать через == или !=

    Не надо удалять, можно немножко подправить и годное решение :) == и != заменить на equals - например STRING_FALSE.equals(str) или !STRING_FALSE.equals(str). В вашем случае проканало из-за пула строк в Java. Когда вы инициализировали константы литералами, то объекты строк попали в пул. Когда вы инициировали переменные этими же литералами, то Java просто взяла объекты из пула, поэтому сравнение ссылок прошло.

    Если сделать, например, вот так
    String strFalse = new String("0");
    String strTrue = new String("1");

    То сравнение уже не прокатит. Т.e. могут прийти объекты с тем же значением, но разными ссылками.
  • Как лучше сформировать класс Record?

    @frozen_coder
    Евгений Ромашкан, Можете раскрыть мысль? Как ссылка на класс оказывает влияние на связность?
  • Как преобразовать строку с значением "0"/"1" в булево значение false/true?

    @frozen_coder
    А вы тут умышленно используете != и == при сравнении строк? Объясните почему не equals?
  • Какой фреймворк для back-end на Kotlin?

    @frozen_coder
    Самый известный доклад на русском языке про Kotlin на бэкенде
  • Какой фреймворк для back-end на Kotlin?

    @frozen_coder
    Sanes, нет. В Kotlin нет ничего специфичного для Android и вышел он намного раньше, чем Google обратил на него внимание. Кроме того есть ещё Kotlin for JavaScript и Kotlin Native. Это язык общего назначения, также как и Java
  • Значительны ли отличия Java 7-8 от 11-12?

    @frozen_coder
    А чем 4-й Spring не устраивает? Почему будет проблема пересесть за 5-й?
  • Какую java скачивать в 2019?

    @frozen_coder
    Frel, все мои знакомые педалят на 8. У нас все проекты на 8. Причин переходить на 11 пока не видим, есть задачи приоритетнее. У большинства также. Где-то 11 есть, несомненно.
  • Какую java скачивать в 2019?

    @frozen_coder
    Frel, JDK 12 != JDK 11 && JDK 12 != JDK 8. Перечитайте ответ ещё раз, пожалуйста.
  • Какую java скачивать в 2019?

    @frozen_coder
    Последнюю LTS-версию или оставайтесь на 8. Зачем вам версии с полугодовой поддержкой?