• Вопрос по сокетам Java? Как быть грамотно?

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

    0x12 - команда
    0х13 - длина пакета
    0х14 - тело пакета

    клиент подключается к серверу отправляя команду 0х01
    сервер отзывается ответом 0х02 где в теле пакета список каналов
    клиент отправляет 0х03 с указанием комнаты, получив ответ от сервера со списком пользователей
    он переходит в прослушивание.

    Другой клиент отправляет пакет с сообщением. Сервер его слышит. Перебирает всех в комнате и кидает им сообщение
    Ответ написан
    Комментировать
  • Хорошее ли решение разделение таблиц юзер и роли?

    @alexalexes
    Вы выделили в системе два класса сущностей. Одна - Пользователь, вторая - Роль.
    Под каждый класс нужна отдельная таблица.
    Как определить какие взаимоотношения между этими классами?
    Нужно примерить следующие коммутативные гипотезы:
    Первая пара гипотез:
    "Один пользователь должен (может) иметь только одну роль."
    "Одна роль должна (может) быть назначена многим пользователям."
    Вторая пара гипотез:
    "Один пользователь должен (может) иметь несколько ролей."
    "Одна роль должна (может) быть назначена многим пользователям."
    Если в вашей архитектуре системы справедлива первая пара гипотез, то вы строите взаимоотношение между классами Роль и Пользователь как "один ко многим". Это значит, что у таблицы Пользователь будет внешний ключ в виде идентификатора роли, тем самым вы каждому пользователю сможете назначить только одну роль. Но сами роли могут повторятся у разных пользователей.
    Если в вашей архитектуре системы справедлива вторая пара гипотез, то вы строите взаимоотношение между классами Роль и Пользователь как "многим ко многим". Для этого нужно создать промежуточную таблицу, например Пользователь_и_роль, в которой будут два внешних ключа - идентификатор пользователя и идентификатор роли пользователя (можно, но технически нужно еще создать еще идентификатор первичного ключа, чтобы можно было корректно обращаться к записям этой таблицы, не путая их). В этом случае каждому пользователю можно выделить целый набор ролей, не ограничиваясь одной ролью.
    Ответ написан
    Комментировать
  • Какую книгу взять новичку в разработке микросервисов на Spring Framework?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Вам надо почитать про spring cloud.
    Я нашел две книги по теме:
    Java в Облаке Джоша Лонга
    И
    Микросервисы spring в действии.
    Ни одну из них не читал - рекомендовать не буду.

    На joker/jpoint постоянно есть доклады по спринг клауду. Можно их посмотреть чтобы въехать в тему.
    Ответ написан
    Комментировать
  • Какую книгу по Java выбрать новичку с небольшим опытом на другом языке?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Алгоритмы брать не надо. Седжвик вообще писал не про Java а только про алгоритмы.
    У него - целое семейство книг такого вида. Сначала Алгоритмы на С. Потом на C++ И потом Java. Он по сути портировал исходники. Какой толк вам в таком портировании?

    А Хорстман, Эккель - вполне себе норм.
    Ответ написан
    Комментировать
  • Как отключить синхронизацию в Яндекс Диск на Linux?

    @Exmender
    Возможно, кому-то ещё поможет, т.к. webdav не всем подходит, иногда всё же нужно хранить файлы локально.

    В хелпе яндекса синтаксис исключений указан в таком виде:
    exclude-dirs="exclude/dir1,exclude/dir2"
    Наверное, автора ввело в заблуждение слово exclude/. Но его всё же подставлять не нужно.

    Для примера, если нужно исключить некоторые директории в корне Яндекс Диска, то в конфиге прописать:
    exclude-dirs="Загрузки,Программы,Фотокамера"
    Тогда эти директории и содержимое локально скачиваться не будут. Для себя оставил одну папку, с которой нужна синхра, остальные занёс в исключения.
    Ответ написан
    Комментировать
  • Как перекодировать строки из windows 1251 в читаемый вид в java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Вот так должно заработать:
    System.out.println(new String(s.getBytes(StandardCharsets.UTF_8)));
    Ответ написан
    1 комментарий
  • Как в Reactor Netty Http Server получить тело POST-запроса?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    https://www.baeldung.com/java-netty-http-server. Здесь кажется есть ответ.
    Ответ написан
    Комментировать
  • Как отключить WARN logs по ExceptionHandler в Spring?

    xez
    @xez
    TL Junior Roo
    Похоже, вам пригодятся Log Groups
    Ответ написан
    Комментировать
  • Как оптимизировать задачу?

    Lorien_Elf
    @Lorien_Elf
    Keep calm and drop database
    Я сварщик ненастоящий, но вижу два пути:
    - Отсылать на сервер данные массивом, а не поштучно.
    - Отправлять штучные запросы параллельно.

    Оба решения требуют чтения доков на этот сервис или разговора с местными инженерами. Так как первый может не поддерживаться, а второй может вас забанить за спам :)
    Ответ написан
    Комментировать
  • Почему нельзя создать массив списков?

    axifive
    @axifive
    Software Engineer
    Так нет же запрета создать массив из ArrayList
    ArrayList<Object>[] list = new ArrayList[5];
    for (int i = 0; i < 5; i++) {
       list[i] = new ArrayList<Object>();
    }
    list[0].add(new Integer(1));
    list[0].add(new String("2"));
    list[1].add(new Float(5.0));

    как и ArrayList из массивов
    ArrayList<Integer[]> list = new ArrayList<Integer[]>();
    Ответ написан
  • Почему шаблонизатор не передает данные в контроллер?

    xez
    @xez
    TL Junior Roo
    В post используется @RequestBody
    Ответ написан
    Комментировать
  • Как получить список всех классов во время выполнения?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Как-то мне надо-было посмотреть какие зависимости использует реал-тайм одного бизнес-процесса.

    Я запускал логгирование действий класслоадера. И потом анализировал лог.

    $ java -verbose:class -jar application-1.0.jar
    Ответ написан
    5 комментариев
  • Какая из книг лучшая для изучения java?

    @KB_46
    торчу от Python и ассемблера
    Герберт Шилдт "Java: руководство для начинающих" или Николай Прохоренок "Основы Java" . И во второй книге кстати рассмотрены основные классы стандартной библиотеки, получение данных из сети Интернет, работа с базой данных MySQL. И куча примеров для более хорошего восприятия материала
    Ответ написан
    Комментировать
  • Какая из книг лучшая для изучения java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    подскажите одну книгу,которую буду читать и не жалеть о том что теряю время в пустую

    Просьба очень странная. Даже невозможно нормального ответить.
    Авторов обычно трое. Шилдт. Эккель. И Хорстман. Все пишут про Java. Примерно
    одно и тоже. Но поскольку ты очень занятой и тебе времени не хватает - то я тебе
    не советую читать ничего. Работай и задавай вопросы здесь. Когда появится желание
    читать - выбери жестко одну тему. Например рефлексия. И читай только про нее.
    Вот так.
    Ответ написан
    1 комментарий
  • Какая из книг лучшая для изучения java?

    egor_nullptr
    @egor_nullptr
    Герберт Шилдт "Java: руководство для начинающих"
    Ответ написан
    Комментировать
  • Как почитать строку в java?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Например, перебирая посимвольно с помощью цикла и метода String.charAt().
    И лучше выбрать другое имя для метода калькулятора.
    Ответ написан
    3 комментария
  • Существуют ли в opensource-проекты с хорошей архитектурой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    SOLID может на каком-то этапе противоречить например KISS. Например вы, как старший разработчик можете видеть "вперед" и прогнозировать потребность бизнеса в расширении какого-то функционала. И будете закладывать Open/Closed и прочие философии. А разработчик уровня Junior который неделю назад пришел на проект - этого не знает и будет писать "как чукча". Тоесть буквально то что надо сделать - тои напишет. И между вами может возникнуть спор как раз на тему SOLID против KISS. Но вы можете ошибаться в своём прогнозе потребности бизнеса. Или бизнес может передумать. В этом случае правда оказалась на стороне святой простоты (Santa simplicitas).

    Как вы понимаете такие антагонизмы не могут быть удовлетворены аж никогда. Поэтому вы никогда не найдете проекты которые удовлетворяют ВСЕМ философиям которые перечислены в списке одновременно.
    Ответ написан
    Комментировать
  • Почему не работают библиотеки Java?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    1. Рекомендую использовать Intellij Idea
    2. В импортах у вас указаны пакеты из java EE, а у вас java SE.
    3. Если библиотеки не входят в ваш SDK, их надо подключать отдельно. Либо скачав и указав в classpath (IDE с этим может помочь), либо используя maven / gradle.
    Ответ написан
    Комментировать