Ответы пользователя по тегу Java
  • Как правильно проектировать взаимосвязь API и БД?

    @kuftachev
    Есть два подхода Code first и Database first, разные инструменты могут реализовывать один или оба. В первом структура БД определяется кодом, а во втором наоборот.

    Имя поля/столбца можно подменить, но если в место sum будет что-то другое, что это для Вас поменяет?

    А вообще, все зависит от задачи. Могут в БД хранится данные, а потом на уровне сервисов производится преобразования, которые дают данным новое качество. Поэтому учитесь думать не кодом, а задачей, которую Вы решаете.
    Ответ написан
    Комментировать
  • Как присвоить определённому числу из текстового поля определённое строковое имя?

    @kuftachev
    Первое, магические числа - это страшный косяк.

    Второе, если нужно использовать выбор для ограниченного количества значений, то нужно использовать Enum.
    Ответ написан
    Комментировать
  • Какие есть CMS для java-backend разработчика для фриланса?

    @kuftachev
    Почему Вы думаете, что на фрилансе требования меньше, чем на работе?

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

    Можете попробовать освоить PHP, так как входной порог для первой работы на много ниже, чем для Ява. Ну или фронт-энд, но что-то мне подсказывает, что начать на php проще.
    Ответ написан
    Комментировать
  • Java, многопоточность, инициализация объектов и reordering — всегда ли нужно синхронизировать инициализацию?

    @kuftachev
    Подумайте сами, как может конструктор отработать на половину? Он же вернет ссылку на результат своей работы вызываемому коду когда исполнится весь. Конечно с дуру можно и член сломать, но зачем Вам в конструкторе передавать указатель на себя еще куда-то?
    По Вашему примеру рождается вопрос, не идет ли речь про Singleton? Если да, то 2 из 4 способов реализации этого паттерна описанные в книге Джошуа Блоха потокобезопасные.

    P.S. Суть volatile в том, что Вы говорите не кешировать это значение в процессоре, а всегда спускаться в память (кстати, тут я не знаю, если в системе один процессор Intel, у них в отличии от AMD кеш третьего уровня общий, будет ли использован он или все равно только память), чтобы работать со свежим значением. Без этого два ядра могут долго работать со своими значениями, но вот атомарность записи этого значения не гарантируется. То есть, например int будет атомарно меняться, а вот long уже нет. Поэтому, на счет ссылок не уверен, они вроде бы тоже 64 бита, по идее, они тоже должны быть не атомарны, но может там другая защита, а то создадим два объекта и получим ссылку непонятно куда.
    Ответ написан
  • Как парсить JSON с неопределёнными заранее полями?

    @kuftachev
    По-моему логично, что если Вы хотите получить объект произвольной структуры, там Вам нужно реализовать руками конечное преобразование.
    Ответ написан
    Комментировать
  • Как сделать конструкцию if, которая проверит существует ли элемент?

    @kuftachev
    Заметна "динамическотипизированная" :-D

    Согласен, тяжело переключаться, но в Java так нельзя.

    В зависимости от реализации библиотеки нужно сравнить с null или каким-то пустым объектом,так как элемент теоретически может быть пустым, но существующим.
    Условно говоря if (userCity.text == "") {...} или как-то так, конкретно не знаю реализацию этой библиотеки.

    P.S. В C# есть прикольный статический метод у строк, что можно проверить это пустая строка или null одной функцией.
    Ответ написан
    Комментировать
  • Как передать динамический параметр и создать его экземпляр?

    @kuftachev
    Адаптер - это паттерн, который позволяет преобразовать один интерфейс к другому.
    ClassLoader - это специальный Java класс, который загружает другие Java классы в память.
    Чтобы создавать объекты разных типов в зависимости от условий - используются Фабричный метод или Абстрактная фабрика.

    В общем, научитесь называть вещи своими именами и сразу все становится на правильные места.
    Ответ написан
    Комментировать
  • Какой фрэймворк используете на frontend в связке с java?

    @kuftachev
    Да любой... Но если смотреть по вакансиям, то, все-таки, Angular.
    Ответ написан
    Комментировать
  • Какова производительность cast в Java?

    @kuftachev
    Начнем с того, что сама постановка вопроса в корне не правильная. Это могло бы звучать так: "я сделал код, провел замеры и все уперлось в операцию cast, что мне делать?".

    Это же прописанные истины, преждевременная оптимизация - корень зла!

    Но если на сам вопрос, то операция приведения типа должна быть быстрая, но как уже написали, тут явно не тот случай, когда ее нужно применять.
    Ответ написан
    Комментировать
  • Что писать на android?

    @kuftachev
    Первая вещь, которую уже правильно подметили - это то, что нужно исходить из цели. Зачем Вы хотите это сделать?
    Если речь идет про учебу, то как я понимаю, в Android разработке грубо есть два направления. Первое - это игры, тут нужно учить упомянутый выше NDK, C++, OpenGL и т.д.
    Второе - это Android как клиент для приложения, которое реально работает на сервере, тут нужно изучить как он это делает, в каких форматах и т.д.
    Но в любом случае нужно понять зачем? Может вообще нужно попробовать найти стажировку, хоть бесплатную, если есть возможность, или хотя бы попытаться ее найти, если цель работа, тогда станет понятно, чего не хватает.
    Ответ написан
    Комментировать
  • Кто может объяснить для чего нужен rest api?

    @kuftachev
    Смотри, это выглядит где-то так, есть сервер, который получает запрос и выдает ответ. Есть клиент, который посылает запрос и получает ответ. В твоем примере:
    1. Клиент приложение посылает запрос на добавление новости
    2. Сервер сохраняет новость(и скорее всего, посылает ответ о том, что новость сохранена).
    3. Другой клиент или сам, или автоматически посылает запрос о том, есть ли какие-то новости и получает от сервера ответ.

    REST - это один из двух основных способов обмениваться информацией между клиентом и сервером, второй - SOAP. Эти способы говорят о формате данных, которыми обмениваются, но суть от этого не меняется.
    Ответ написан
    Комментировать
  • Как получить bean в spring?

    @kuftachev
    Меня смущает ClassPathXmlApplicationContext, если конфигурация через аннотации.
    По идее, AnnotationConfigApplicationContext должен помочь.
    Ответ написан
    Комментировать
  • В каком направлении Java развиваться: разработка приложений под Android или Java EE?

    @kuftachev
    Первое, что можно сделать, попробовать напроситься хоть на бесплатную стажировку.
    Если получиться, то можно исходить из того, куда получиться попасть.
    Если это будет JavaEE, то никто дома не мешает шалить с Android :-)
    Ответ написан