• Чьи объекты использовать: сервера или клиента?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Я сделал зависимость клиента от сервера, то есть удалил класс User из клиента и импортировал этот класс из серверного модуля.

    Можно создать модуль common и закинуть туда ваши общие классы.
    Я вообще делаю примрено следующим образом: создаю несколько модулей один из которых persistence, где располагаются сущности и репозитории, второй модуль common, где содержатся утильные классы и сервисные классы, а также модуль web (где хранятся контроллеры, мапперы, соответсвующие эксепшены и их обработчики, шаблоны и т.д.). Ну и дальше уже по необходимости... например, модуль api для rest. Также создаю отдельный модуль для flyway и хранения sql скриптов. Разумеется, что структура у вас может отличаться в зависимости от вашей задачи..
    Ответ написан
    Комментировать
  • Чьи объекты использовать: сервера или клиента?

    vabka
    @vabka
    Токсичный шарпист
    Вообще оба варианта приемлимые, но расскажу свой опыт:
    1. Возникает требование создать фичу
    2. Фронт, бэк, и ещё какие-то люди собираются и обсуждают её. Фронт и Бэк договариваются о том, каким должен быть API
    3. Создаются интерфейсы для апи и дтошки
    (На этом моменте фронт уже может писать код, пока сервер не готов)

    Таким образом сервер и клиент не зависят друг от друга, но при этом всегда согласованы.
    Ответ написан
    1 комментарий
  • Чьи объекты использовать: сервера или клиента?

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

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Вы что-то напутали, Atan вадает углы против часовой стрелки.

    Вот только угол идет от -pi до pi, а не от 0 до 2pi. Если вы хотите, чтобы первая точка была {1, 0}, то надо к отрицательным углам прибавлять 2pi перед сравнением.

    Это будет работать, но не очень оптимально. Atan - медленная штука. Можно сравнивать знаки координат сначала.

    Если одна точка с положительным y, а другая с отрицательным - положительная идет раньше. Если одна из точек имеет y=0 или знаки одинаковые - сравнивайте знаки по x. Выше и ниже оси OX - сравнения должны давать разные выводы (выше оси OX, положительные x идут раньше отрицательных, ниже оси OX - наоборот).

    Или для каждой точки в зависимости от двух знаков координат надо назначить квадрант от 1 до 4. И сначала сортировать по ним.

    Если же точки лежат в одном квадранте (знаки одинаковые) то можно сравнивать их с помощью векторного произведения векторов. Подстовляете туда координаты двух точек и, если значение положительное, то первая точка лежит раньше второй. Нулевое значение - значит они на одном и том же углу. Если отрицательное - перовая точка лежит позже второй.
    Ответ написан
    Комментировать
  • Когда рационально использовать сразу несколько языков программирования?

    gbg
    @gbg
    Любые ответы на любые вопросы
    В конечном итоге, все зависит от компетенций команды. Если у вас в команде старики-разбойники, с 1995 года пишущие на C++, вы даже палкой не заставите их писать математический код на Python, хотя там и либы есть и "типа проще".

    Оправданием разрастанию стека является необходимость подстроиться под узкую специализацию задач (писать запросы к СУБД на CSS несколько странно, как и писать фронт на SQL).

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

    Но вот идея написать в проекте на C++ кусок на Rust "патамуштамодна" - это скорее проблема, чем идея.
    Ответ написан
  • Как импортировать базу данных не на локальный сервер mysql?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    С ключами - host и - port
    Начните с чтения man mysql
    Ответ написан
    2 комментария
  • Как правильно сделать авторизацию пользователя на servlet+jsp?

    @Evgeny_13
    1. Написать сервлет, который будет проверять на эдентичность userName и password, например из базы, и писать роль.
    2. Написать фильтр, который будет получать роль авторизировавшегося пользователя и запрещать переход на какие-либо страницы, делать какие-либо действия.
    3. Сделать jsp-страницу, которая будет использовать сервлет и отправлять данные!

    P.S. Не забудь зарегистрировать сервлет и фильтр в web.xml.

    1. b18b5f93b4eb4a0e988cd1e1190c139b.png
    2. a9a8d900d25348edbb04a6670f7dfbd2.png
    3. 2207cda414044a729399b22bef125fe1.png
    Ответ написан
    Комментировать
  • Какие есть способы организовать "общение" android-приложения с сервером?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Организовать "связь" для клиент-серверного приложения можно по http (спецификация REST), через soap, а также через сокеты и т.д.
    Довольно часто используется именно первый вариант. Есть куча библиотек и фреймворков для реализации. Вопрос, что именно вас интересует? Клиентская или серверная часть. Если речь о серверной части, то можно использовать Spring Web, Spring REST Repositories, Spring Webflux и др. Если речь о клиентской части, то у спринга есть Spring REST Android. А также можно использовать Retrofit, okHttp и т.д.
    Если речь идет о веб-сокетах, то можно на сервере использовать Spring Websockets или еще что
    Ответ написан
    Комментировать
  • Какие есть способы организовать "общение" android-приложения с сервером?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    json в теле post, и в ответе get. Не используй HttpUrlConnection, бери Retrofit+OkHttp + какой-нибудь из сериализаторов(Moshi, Gson, Jackson).
    Ответ написан
    Комментировать
  • Какие есть способы организовать "общение" android-приложения с сервером?

    BorLaze
    @BorLaze
    Java developer
    Можно и так. Только я бы посоветовал сначала почитать документацию по REST, чтобы понимать, когда нужно использовать GET, а когда POST (или остальное).
    Ответ написан
    1 комментарий
  • Какие есть способы организовать "общение" android-приложения с сервером?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Отправлять джейсоны через POST - норм. Большая часть, наверное, так и делает.
    Еще можно дедовский, проверенный SOAP использовать, или молодежные, стильные вэбсокеты.
    Ответ написан
    2 комментария
  • Можно ли отдалиться при создании WinForms?

    GavriKos
    @GavriKos
    Стул на колесиках? Отталкиваешься ногами и отдаляешься.
    Ответ написан
    5 комментариев
  • Хочу стать Android программистом. С чего мне начать?

    zagayevskiy
    @zagayevskiy Куратор тега Android
    Android developer at Yandex
    Прочитать документацию на kotlinlang и пройти kotlin koans(можно не включая DSL). Прочитать developers.android.com.
    Всё это время писать код. Это основное правило.
    Попробовать устроиться куда-то стажёром или джуном.
    Пытаться поступить во все доступные школы разработки(например). Делать в них тестовые задания, стараясь повышать свой уровень.
    Когда "не знаю как сделать что то - гуглю и делаю", стараться не копипастить, а разобраться, что происходит.
    Ответ написан
    Комментировать
  • Что должен знать Senior C++ Developer?

    @tangro
    Опыт нужен. Хотя бы лет 5. В общем, сеньйор даже не столько должен хорошо уметь писать код, сколько видеть риски и принимать решения, которые точно не повредят проекту. Я думаю, С++ программера можно считать сеньйором, когда он способен принимать решения типа:
    1. Выбор IDE, компилятора, версии языка.
    2. Написать с нуля или взять готовое.
    3. Юзать STL\Boost\MFC\ATL\Qt или нет. Если да — что лучше в данном случае и почему.
    4. Стоит отрефакторить код или нет.
    5. Написать самому\отдать Juniory
    и т.д.

    Ах да, еще важный признак «сеньйорства» — осознание того факта, что для программиста на С++ не должно быть невозможных вещей. Какой-нибудь там Java или .NET программер может сказать что-то типа «это ограничения платформы.», «программа тут не может кушать меньше вот такого количества памяти», «это перехватить нельзя — код в недрах ОС\платформы». C++ сеньйор должен быть способен докопаться, разобрать и отладить всё — вплоть до системных библиотек, драйверов и BIOSа.
    Ответ написан
    3 комментария
  • Используется ли многопоточное программирование при создании мобильной игры?

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

    GavriKos
    @GavriKos
    Реверсинг начинается с понимания программирования на уровне дохреналет опыта. ВОт с этого и начинайте
    Ответ написан
    4 комментария
  • Ресурсы для распознавания речи на С++?

    Adamos
    @Adamos
    Распознавание речи - это 1% программирования и 99% сбора и обработки данных.
    Все, что вы можете сделать самостоятельно - это присобачить к своему интерфейсу какой-нибудь готовый движок.
    Ответ написан
    Комментировать
  • Как скачивать игры со стима через телефон?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Возможно, у вас плохой wi-fi. Подключите телефон к компьютеру кабелем и включите режим USB-модема
    Ответ написан
    1 комментарий
  • Как вывести формулу?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Сначала заменой x=x'+x0, y=y'+y0 можно убрать коэффициенты D и E и считать, что центр лежит в точке {0, 0}.

    Дальше надо подобрать такой угол поворота, что коэффициент при xy станет нулем. Тогда останется что-то вроде A'x^2+C'y^2 + F' = 0 - а значит эллипс выравнен вдоль осей и это был искомый угол.

    Подставляя формулы поворота системы координат x=x' cosa-y' sina и y=x' sina + y' cosa и приводя слагаемые можно составить уравнение на этот самый коэффициент перед xy. Он будет озависить только от A,B,C и sina, cosa. Далее это тригонометрическое уравнение надо причесать и решить. Вам придется воспользоваться вот этой формулой для котангенса двойного угла: maxresdefault.jpg.

    У вас будет уравнение с косинусами, синусами. Его можно элементарно привести к тангенсу. Далее применяете эту формулу и получаете ответ.
    Ответ написан
    Комментировать