• Что значит приложение в Spring?

    @Akela_wolf
    Extreme Programmer
    • В терминах операционной системы (windows), приложение = программа.
    • С точки зрения спринга, если не вдаваться глубоко в детали, это тоже самое. Приложение = программа, написанная с использованием Spring. Это может быть сайт, это может быть некий сервис, это может быть вообще консольная команда.
    • С точки зрения VK, приложение - это некий сайт (или его часть), использующий API VK. То есть дополнение к ВКонтакте


    Не совсем понятно какая у вас цель. Если добавить на своем сайте возможность создавать дополнения к нему, то есть приложения, то в первую очередь нужно определиться какие возможности этим приложениям будут доступны. А затем уже создавать API для них. Форма для приложения - это по сути обычная форма, после обработки данных из которой добавляется запись в БД вашего сайта о существовании приложения и его атрибутах (в частности токене для авторизации, чтобы вы понимали какое приложение шлет запросы вашему API).

    То есть, говоря о "приложении" нужно понимать контекст в котором это слово употребляется.
    Ответ написан
    1 комментарий
  • Как реплейсить не всю регулярку, а только group?

    @dodo512
    Добавить ещё сохраняющих групп (...)(@anybody)(...), а в строке замены ссылаться на них $1, $3.
    (\s\p{Punct}*)(@anybody)(\p{Punct}*\s)
    $1text$3
    https://regex101.com/r/zmFdtc/1

    Или применить lookbehind (?<=...) lookahead (?=...)
    (?<=\s|\p{Punct})@anybody(?=\p{Punct}|\s)
    text
    https://regex101.com/r/zmFdtc/2
    Ответ написан
    Комментировать
  • Как правильно указывать(хранить)пароли в docker-compose?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Универсальным рецептом на любую архитектуру является:
    Хранение паролей в секретнице, например HashiCorp Vault

    Приложение при инициализации идет за своим набором секретов по сети и создает подключения к БД, конфиги доступа к др ресурсам и прочее и хранит у себя... Все секьюрно и надежно

    Если проще: передавайте секреты через переменные окружения при деплое.
    Локально — через .env файл. Docker-compose сервисы могут содержать параметр env_file: .env.test, если вам нужно точечно что-то сделать

    Вы разве используете docker-compose для продакшн?
    Ответ написан
    9 комментариев
  • Что лучше использовать в локальной разработке веб-проектов на Mac OS? MAMP Pro или Docker?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Docker умирает, PHP умирает, Java умирает, всё умирает, и Солнце скоро потухнет. Впрочем, это всё неважно, так как для локальной разработки не нужен ни докер, ни MAMP, ни Open Server Panel.
    Ответ написан
    9 комментариев
  • Как работать с XSD в Spring boot?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    XSD - это не объект. XSD - это схема объекта. https://en.wikipedia.org/wiki/XML_Schema_(W3C)
    Нужно сначала XSD преобразовать в классы джава, а потом уже с ними работать в обычном порядке.
    Хорошая новость, что это можно сделать автоматически с помощью maven плагина.
    https://www.mojohaus.org/jaxb2-maven-plugin/Docume...
    Ответ написан
    Комментировать
  • Как найти и напечатать самое большое число из текстового файла?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    нужно запоминать три максимальных стоимости (по планшету, пк и ноутбуку), с соответсвующими строками.
    читаем строку, определяем, у нас строка с планшетом, ноутбуком или пк, сравниваем стоимость в этой строке, со стоимостью ранее считанной (0 - если ранее небыло строк), если наша стоимость больше, запоминаем её, и соответствующую строку, если меньше - просто читаем следующую.
    Когда все строки в файле кончились, сравниваем полученные максимальные итоги ноутбука планшета и пк. Если они все одинаковые - выводим их все, если разные, выводим максимальный.
    Надеюсь достаточно подробно расписал, и теперь вам понятно как это реализовать, можете писать код.
    Ответ написан
    1 комментарий
  • Как работать с SOAP в Spring?

    @Akela_wolf
    Extreme Programmer
    Чем вам не понравились первые две ссылки?
    Ответ написан
    Комментировать
  • Как реализовать compareTo() для обобщенных классов?

    @Akela_wolf
    Extreme Programmer
    Вы делаете класс Myset по сути оберткой над неким типом T и хотите чтобы Myset-ы можно было упорядочивать. Но при этом, вы не имеете никаких ограничений, касательно типа T. Что это вообще за тип? Какими свойствами обладает? Что такое сортировка, применительно к этим объектам?

    Мало того, вы не сказать чтобы корректно реализовали метод equals. Не помню такого контракта что он должен бросать NPE, но далее вы просто используете ссылочное равенство (то есть требуете чтобы this.data и obj.data были одним объектом). А если там, например, Integer?

    Тут я даже не знаю что можно предложить в плане сортировки. Сортировать по хэшкоду? Но там возможны коллизии. Тогда методы compareTo и equals могут войти в противоречие (compareTo скажет что объекты равны т.к. равны хэшкоды), а на самом деле они равны не будут. Это источник трудноотлавливаемых глюков.

    Выглядит так, что вы пытаетесь решить какую-то очень странную задачу. Хотелось бы понять подробнее - зачем вам все это надо?
    Ответ написан
    Комментировать
  • Разница между if else и try catch?

    @Akela_wolf
    Extreme Programmer
    Есть такой принцип: "если убрать все обработчики исключений, программа должна нормально функционировать при условии ввода корректных данных" (Д.Томас, Э.Хант "Программист-прагматик"). Поэтому вопрос - является ли введенный пользователем нуль корректными данными? Если да - то его надо оборачивать в if. Если же это некорректные с точки зрения программы данные - то можно кидать исключение.

    То есть исключение должно выбрасываться при поступлении на вход программы некорректных данных. А какие именно данные считать некорректными - это определяет разработчик (или заказчик) программы.
    Ответ написан
    5 комментариев
  • Вопросы для мобильных разработчиков?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    1. через API по http и общается клиент с сервером. Иногда через вебсокеты.
    Принято использовать широко распространённые библиотеки типа OkHttp, Retrofit.
    Зачем роутеры в мобилке? Нет их там. Роутинг реализуется на стороне сервера, это уже бэкенд.

    2. А зачем хранить куки и кэш? Мы же общаемся по REST API, здесь куки и кэш не нужны. И что ты собирался хранить в кэше?

    3. что-то такое похожее есть в IDE, но работать с ним в визуальном редакторе невозможно, особенно, если это динамическая вёрстка или фрагмент переиспользуется в других фрагментах или activity
    Ответ написан
    3 комментария
  • Каким образом сделать повторную аутентификацию с JWT?

    @nApoBo3
    Вам следует использовать http 401, приложение должно само знать куда ходить за токенами. Поместив эти информацию в веб сервис, вы создаёте лишнюю зависимость фактически отказываясь от плюсов jwt.

    ИМХО смена логина не должна инвалидировать токен.
    Ответ написан
    2 комментария
  • Как преобразовать json-строку в ArrayList?

    @Sergey_USB
    public class Test {
        public static void main(String[] args) {
            String jsonString = "[{\"color\":\"white\", \"obfuscated\":true, \"text\":\"[G] \"}, {\"color\":\"black\", \"text\":\"Hello, user\",  \"contents\":[{\"text\":\"show\",\"bold\":true}]}]";
            JSONArray array = new JSONArray(jsonString);
            JSONObject object = array.getJSONObject(1);
            JSONArray array1 = object.getJSONArray("contents");
            JSONObject object1 = array1.getJSONObject(0);
            System.out.println(object1.getString("text"));
            System.out.println(object1.getBoolean("bold"));
        }
    }
    Ответ написан
    3 комментария
  • Почему не отрабатывается первое условие?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    if(year >= 10000 && year <= 0)
    Тут написано: если год больше или равен 10000 И год меньше или равен 0
    Никакое число не может быть больше 10000 и меньше 0 одновременно.
    Ответ написан
    1 комментарий
  • Какова должна быть правильная архитектура парсера на PHP?

    SilenceOfWinter
    @SilenceOfWinter Куратор тега PHP
    та еще зажигалка...
    Для начала бы хоть объяснил что именно ты парсишь.
    А если понадобится писать не в базу, а в файл, писать Parser2?

    класс должен выполнять свою непосредственную задачу - парсить, работа с хранилищами данных - отдельная тема, соответственно каждое хранилище - отдельный класс и все они реализуют интерфейс.
    Ответ написан
    2 комментария
  • Как соединить методы, написанные через точку в один?

    Jacen11
    @Jacen11
    это называется паттерн билдер
    Ответ написан
    Комментировать
  • Нормально ли при юнить тестах ставить @Spy на мапперы?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Если вы «ходите в бд» - это уже не юнит тесты.
    Если вам нужен интеграционный тест - используйте testcontainers
    Ответ написан
    Комментировать
  • Где обучиться Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Курсы не нужны. Нужен учебник и пет-проект. Потом нужно ходить по собеседованиям, выбивать обратную связь после провалов, подтягивать слабые места и снова ходить по собеседованиям, пока куда-нибудь не возьмут.
    Ответ написан
    Комментировать
  • Почему вдруг появились ошибки в проекте?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Не используйте IDE на этапе обучения. Применяйте обычный текстовый редактор и консоль. Во-первых, IDE избавляет вас от рутинных операций, но именно рутинные операции позволяют набить руку . Во-вторых, IDE скрывает многие процессы, выполняя их за программиста, но именно они позволяют понять базовые принципы. В-третьих, IDE сами по себе - сложные системы, в которых надо разбираться, а начинающему не стоит разбираться сразу с двумя трудными вопросами.
    Ответ написан
    8 комментариев
  • Нужно ли использовать множественное число при названии модулей java?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    project-usecases
    project-usecases
    project-usecases
    ....
    project-usecases

    согласитесь глупо

    project-utils
    project-models
    project-services
    это больше похоже на наймспейс или пакет
    Это как раз нормально
    Ответ написан
    2 комментария
  • Нужно ли использовать множественное число при названии модулей java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Главное правило: "Руководствуйтесь здравым смыслом".
    В большинстве случаев в единственном числе.
    Если вот прям напрашивается множественное - ничего страшного, используйте его.
    Ну и я бы рекомендовал отказаться от всяких приставок типа "project-" для подпроектов, наверное, и без того будет понятно куда они относятся.

    В Naming Conventions о числе ничего не сказано.
    Ответ написан
    Комментировать