• Зачем создавать слой с интерфейсами?

    @My1Name
    При проектировании, без интерфейсов, очень трудно представить весь объём работ для той или иной задачи. Интерфейсы по большому счёту, вкратце описывают алгоритм всей программы. Это шаблон проектирования, который позволяет при необходимости менять части программы (реализацию).

    изучая чужие проекты написанные на java spring boot

    Если долго гуглить уроки при изучении Spring-а, то можно найти много примеров, которые на самом деле ничего не делают, а посредством интерфейсов объясняют принцип работы. Именно для этого они и нужны.
    Ответ написан
    Комментировать
  • Зачем создавать слой с интерфейсами?

    xez
    @xez
    TL Junior Roo
    Причины такие:
    0. Это правило хорошего тона. Сеньеры думаю интерфейсами, а не реализациями.
    1. В случае изменения реализации, код, использующий интерфейсы не придется изменять.
    2. Есть разница в том, какой механизм будет использоваться при проксировании объекта в зависимости от того реализует он интерфейс или нет. (jdk dynamic proxy / cglib)
    3. В некоторых случаях вам вообще не обойтись без выделения интерфейса.
    Ответ написан
    Комментировать
  • Как стать сисадмином?

    ky0
    @ky0 Куратор тега Системное администрирование
    Миллиардер, филантроп, патологический лгун
    Как стать сисадмином?

    Самый простой способ - вас должен укусить опытный админ.
    Ответ написан
    3 комментария
  • Как передавать данные которые хранятся в контейнере БД?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    В контейнере не должны храниться никакие изменяемые данные. Собираем образ, монтируем к нему volume. Чтобы куда-то это передать, используем docker save/load + архив примонтированных с хоста каталогов.
    Ответ написан
    Комментировать
  • Как передавать данные которые хранятся в контейнере БД?

    https://stackoverflow.com/questions/26331651/how-c...

    Но я вижу, что у тебя волюма нет - тогда сложнее
    Ответ написан
    Комментировать
  • Хорошая ли идея использовать RestTemplate?

    azerphoenix
    @azerphoenix Куратор тега Spring
    Java Software Engineer
    Добрый день.
    Можно ли так сделать? Да, можно. Лучше, конечно использовать OpenFeign для этого, ибо он удобнее (код пишется в декларативном стиле)
    Что можно еще сделать?
    1) можно коммуникацию сделать через асинхронный вызов (Webclient || Reactive OpenFeign)
    2) можно сделать коммуникацию через message brokers (RabbitMQ, Kafka, ActiveMQ). Как по мне более предпочтительный способ.
    Ну и можно еще через grpc реализовать.
    Ответ написан
    2 комментария
  • Имеет ли смысл напрямую кидать свое резюме компаниям?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Хыру - можно и кинуть. Правда, особой какой-то отдачи я бы от этого не ожидал, но может так случиться что у хыра будет как раз подходящая под Вас незакрытая вакансия...

    На info@ и прочие общие адреса кидать не стоит - туда обычно валится стопицот писем, читает их обычно секретарша

    На адреса, которых нет на сайте компании вообще ничего писать не стоит - если не хотите конечно же на первом собесе давать обьяснения - откуда они у Вас (если только Вы не идете на инженера ИБ - тогда их наличие будет плюсом :) )
    Ответ написан
    Комментировать
  • Имеет ли смысл напрямую кидать свое резюме компаниям?

    aRegius
    @aRegius
    Python Enthusiast
    Однозначно стоит, только не спам-стайл (прикрепил резюме и отправил), а добавить хоть какой-нибудь сопроводительный текст, по мере возможности максимально адаптированный к компании (шаблон может быть общий, но те или иные моменты касающиеся или рынка, или менеджмента, или корпоративной культуры или того и другого и т.п. лучше акцентировать в зависимости от конкретной компании).
    Ответ написан
    1 комментарий
  • Имеет ли смысл напрямую кидать свое резюме компаниям?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Имеет смысл. Его прочитают и положат в стопку других ожидающих писем и отпишуться стандартной корпоративной отпиской. Сомнительно что в данный момент ваш профиль будет нужен.

    Обычно информацию о найме распространяют через рекрутинговые агенства. Это - правильный путь и
    вполне современный. У рекрутера база вакансий всегда больше чем у кадровика какого нибудь банка
    или завода.
    Ответ написан
    Комментировать
  • Существует ли обобщение контроллеров?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В ООП существует 2 правильных пути расширения функционала.

    1) Наследование. Ты делаешь базовый контроллер с какими-то общими функциями. И другие контроллеры просто наследуются от базового. Наследование всегда красиво выглядит на диаграмме классов. Такое и приятно показывать на презетнациях. И заказчик доволен. Недостаток наследования - иногда в наследника попадает то что не нужно. И в этом случае наследование нужно просто дробить на большее число уровней. 2-3-4 и так далее.
    2) Композиция. Ты включаешь внутрь одного контроллера один или несколько функционалов от других контроллеров. Композиция не имеет пределов вообще. Можно композировать что угодно и с чем угодно. Композицию используют даже люди которые на знают ООП. И не на ООП языках. Просто у них для этого есть другие названия.

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

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Контроллеры пишутся не "для сущностей", это точки входа в твой сервер, которые все вместе образуют API.
    Иногда эти точки однозначно мапятся на сущности (например, "получить список пользователей"), иногда нет.
    Ответ написан
    Комментировать
  • Существует ли обобщение контроллеров?

    Сколько нужно, столько и пишется. В чём проблема?
    Вообще такое, чтобы абсолютно у всех сущностей была одинаковая логика и что сущности 1-в-1 маппятся на контроллеры - это редкий случай.

    Хорошая практика - использовать контроллеры только для роутинга, в такой ситуации методы контроллеров однострочные получаются и если нужны какие-то обобщения - ты легко можешь их реализовать на слое сервисов.
    Ответ написан
    Комментировать
  • Используется ли basic auth в реальных проектах RESTful?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    По ситуации. Мы, например, basic auth для эндпоинта метрик используем. Ну и UI сваггера можно закрыть.
    Ответ написан
    Комментировать
  • Почему счетчик на корутине работает не корректно?

    Jacen11
    @Jacen11
    у меня вот такая реализация, не помню где брал

    private var timerJob: Job? = null
    
    fun showTimer(){
    
       val isCanSendActionTyping = timerJob?.isCompleted == true || timerJob== null
       var time = 0
      if (isCanSendActionTyping) {
                timerJob= lifecycleScope.launchSafe(start = CoroutineStart.LAZY) {
                    while (true) {
                        textView.text = time.toString()
                        time++
                        delay(5000)
                    }
                }
                timerJob?.start()
            }
    }
    Ответ написан
    Комментировать
  • Почему счетчик на корутине работает не корректно?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ну... если проводить аналогию с потоками. То count будет иметь столько экземпляров сколько
    корутин запущено. Тоесть счетчик локальный по отношениию к функции.

    И поскольку textView - это глобальный объект. Его видят все функции то они начинают его бомбить
    разными значениями.
    Ответ написан
    4 комментария
  • Оптимизация или существует какая нибудь альтернатива Android studio?

    @sapeg
    На Linux немного быстрее работает.
    Ответ написан
    Комментировать
  • Оптимизация или существует какая нибудь альтернатива Android studio?

    @calculator212
    Core i5 3230M
    Я запускал на похожем ноуте, более менее работало когда я докинул оперативки. Всё равно тормозило, но в целом терпимо. В общем можете докупить 8гб(около 1.5-2.5к) и работать станет легче, возможно вам еще нужно будет ссд поставить. Ну или приложение запускать сразу на телефоне.
    Ответ написан
    4 комментария
  • Оптимизация или существует какая нибудь альтернатива Android studio?

    Deita
    @Deita
    JetBrains умеет Android https://www.jetbrains.com/idea/features/, https://www.jetbrains.com/idea/
    Вот мануалы:
    https://www.jetbrains.com/help/space/android.html
    https://www.jetbrains.com/help/idea/create-your-fi...
    https://www.jetbrains.com/youtrack/features/youtra...

    Для Flutter тоже есть тулза:
    https://docs.flutter.dev/get-started/install/windows

    Попробуйте также MS Visual Studio Community может более оптимизирована, потому что в последнее время Microsoft
    с Android и вообще все что как нибудь связано с ms + nix постепенно становится синонимами

    Мне кажется что VSCode тоже можно прокачать расширениями но еще не задавался вопросом проще купить железо хотябы на 1151v2-1200 сокете

    Также попробуйте Windows LTSC

    Core i5 3230M
    8 гб оперативы 1600
    видеокарта gt740m
    Windows 10


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

    xez
    @xez
    TL Junior Roo
    Как вы считаете, что мне лучше делать в этой ситуации?

    1. Перестать верить в деда мороза и розовых единорогов.
    2. Работать дальше.
    3. Учиться, учиться и еще раз учиться.
    Ответ написан
    Комментировать
  • Возможно ли в фрагмент thymeleaf "вшить" id текущего пользователя?

    enovoselov
    @enovoselov
    Инженер
    Хранить данные в сессии и передавать данные в модель, через фильтр. Нужно создать класс, который переопределяет метод HttpFilter. В его методе нужно будет добавить атрибут который понадобится в шаблоне.
    Например:
    request.setAttribute("user", user);
    Ответ написан
    2 комментария