• Нужно ли везде использовать TypeScript? или это хайп?

    Xuxicheta
    @Xuxicheta
    инженер
    Нужно ли везде использовать TypeScript?

    ну видимо нет.

    или это хайп?

    нет

    Есть ли смысл использовать Typescript в пет проектах?

    Писать на ts тупо удобнее, отлавливает сразу простые ошибки и предоставляет автодополнение и информацию о сигнатурах.

    типа создал мини игру 15 строчках кода на TypeScript?

    как хотите, ради 15 строчек мне было бы лень настраивать конфиг, но я бы точно писал всегда на ts если бы оно поддерживалось по дефолту.

    Или он только в крупных проектах нужен? и вообще все прям без него будто не могут писать судя по отзывам или это какойто хайп или реклама Microsoft

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

    xez
    @xez Куратор тега Java
    TL Junior Roo
    1. Так же как и в любом другом приложении.
    2. Есть. Можно загуглить "Java async". Вот первый результат: https://www.baeldung.com/java-asynchronous-programming
    3. Всегда это будет отдельный поток (а как вы вообще себе представляетет асинхронное выполнение без многопоточности?!), но в современной джаве есть несколько вариантов, в которых вы вообще new Thread можете ниразу и не написать.
    Ответ написан
    1 комментарий
  • Как типизировать такой объект данных?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Нет, обобщенные типы можно использовать не только в функциях
    type SomeData<Data = any> = {
        data: Data[];
    }
    const a: SomeData<number> = {data: [1,2,3]};
    Ответ написан
    Комментировать
  • Меняют ли аннотации данные в коде?

    @Akela_wolf
    Extreme Programmer
    Давайте по порядку.

    Что такое аннотация? Аннотация - это некоторые произвольные метаданные, которые программист может присоединить к некоторому объекту. И только. Данные, ничего кроме. Никакого поведения сама по себе аннотация не добавляет.

    То есть аннотация ничего не делает? Да, именно так. Сама по себе аннотация ничего не делает.

    Тогда зачем она вообще нужна? Для того чтобы аннотация оказала какое-то влияние на программу нужен процессор аннотаций. Процессор аннотаций бывает двух видов: первый работает во время компиляции программы. И аннотации оказывают влияние именно на процесс компиляции. Это может повлиять на итоговой код программы, либо изменить логику работы компилятора, например, добавить какие-то дополнительные проверки.

    Второй вид процессоров аннотаций работает во время выполнения программы. Через механизм рефлексии он анализирует аннотации, которые добавил программист, и выполняет логику в соответствии с аннотации и содержащимися в них даннми. Так, например, работает Spring, который в соответствии с аннотациями @Service, @Scope, @Autowired, @Controller и т.п. инициализирует компоненты приложения и запускает его в нужной конфигурации.

    У Эккеля написано неточно (либо это неточный перевод, такое тоже часто бывает). Переменные никакого значения не получают, получает значение поле в аннотации (аннотация в Java - это тоже объект и тоже имеет поля). А затем уже процессор аннотаций значение этого поля как-то использует (в приведенном примере - устанавливает соответствие с колонкой в таблице базы данных соответствующего типа и, при необходимости, создает её).

    У Шилдта написано корректнее - сами по себе аннотации никак семантику программы не затрагивают, для того чтобы они заработали требуется дополнительный код.
    Ответ написан
    1 комментарий
  • Зачем нужны НЕ void методы?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Может для того, чтобы передавать значения другим, не?

    Верни мне из xxx() значение, чтоб передать его в другой метод.
    Например, в метод yyy(int value)
    Вызови метод yyy() и передай ему значение, которое ты получишь от xxx(), без дополнительной переменной

    Или возьми и получи данные метода LocalDateTime.now() - прикинь, это тоже метод и он не void

    P.S.
    Это откровенно глупый вопрос человека, который второй день видит программирование.
    Ответ написан
    5 комментариев
  • Как при помощи JpaRepository выполнить строку?

    @Akela_wolf
    Extreme Programmer
    То что вы пытаетесь сделать называется - SQL-injection. Почитайте для интереса сколько сайтов было взломано только потому что возможно было подставить какую-то строку в SQL-запрос и таким образом повлиять на его результат.

    Поэтому JPA (да и вообще Hibernate) вам этого не позволит. Да вам этого и не нужно. Сформулируйте нормально проблему, которую хотите решить и задайте другой вопрос - получите совет как сделать это без подобных извращений.
    Ответ написан
    Комментировать
  • Почему при сравнении 2-х хешей BCryptPasswordEncoder они могут не совпадать?

    @IchBinImmerFertig
    У меня была проблема в том, что при смены роли юзера менялся и пароль сам. Вот это помогло

    if (!user.getPassword().equals(userService.getById(user.getId()).getPassword())){
    user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
    }
    Ответ написан
    1 комментарий
  • Как исправить ошибки в программе "Побитовое шифрование"?

    @Akela_wolf
    Extreme Programmer
    Зачем вы извращаетесь со строкой alfa?
    Откройте для себя метод String.getBytes() и вообще разберитесь что такое кодировка символов.
    Ответ написан
    Комментировать
  • Стоит ли использовать разные DTO для Response и Creation объекта?

    Jacen11
    @Jacen11
    Стоит ли для этого создавать разные ДТО
    в больших проектах принято разделять, в личном можно и так, вряд ли проблемы словишь из за этого
    Ответ написан
    Комментировать
  • Для чего нужна область видимости scope?

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

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Животное a = Собака (новая);
    Ответ написан
    3 комментария
  • Как запускать код из разных файлов в одном package одновременно в java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    С помощью потоков, очевидно.
    Ответ написан
    Комментировать
  • Как замаппить json в массив объектов?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Просто:
    let routes = await axios(...)
    .then((response: AxiosResponse<Route[]>) => response.data)
    .catch(console.log);
    Нет смысла гонять из пустого в порожнее.

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

    @deliro
    Как понять сколько времени будет занимать поиск заданного значения и каким способом эффективнее парсить файл?

    Что известно о файле кроме того, что он есть?

    Если значения в случайном порядке, то сложность будет всегда O(N) в худшем случае

    Если в нём значения отсортированы по какому-то признаку и есть явный разделитель (перевод каретки, например), то можно сделать аналог бинарного поиска (за O(logN)). Ну то есть, тыкаем в середину файла (seek(file_size_in_bytes / 2)), ищем вперёд ближайший разделитель (например, перевод каретки), читаем до следующего разделителя (получается строка), сравниваем ну и дальше как обычно. Но нужно учесть, что если это HDD, то движения головки диска не бесплатные и рандомный seek будет медленней последовательного, так что сравнивать "количество строк в секунду" в лоб не выйдет.

    Если ОЗУ позволяет, то можно вычитать весь файл туда и закинуть в структуру, которая больше подходит. Будь то дерево, сортированный массив или хэш-таблица. Если требуется только ответ на вопрос "есть?", то хэш-таблица будет самым производительным вариантом со сложностью O(1)

    Если ОЗУ не позволяет и большинство запросов заведомо будут "мимо", можно сделать фильтр Блума и сканировать файл только если он "возможно есть" и никогда не сканировать, если его "точно нет" (собственно, эти ответы и даёт фильтр Блума)

    Если ОЗУ не позволяет, но файл можно менять, то можно отсортировать его единоразово и дальше бинарный поиск

    Да можно даже содержимое файла в sqlite залить и решить все проблемы, пусть драйвер сам разбирается, что хранить в ОЗУ
    Ответ написан
    Комментировать
  • Как прописать тип для клонированного объекта, чьи значения были изменены рекурсивно?

    bingo347
    @bingo347 Куратор тега TypeScript
    Crazy on performance...
    Можно добавить такой тип:
    type RulersMap<R extends Record<string, unknown>> = {
      [K in keyof R]: R[K] extends number
        ? `${R[K]}px`
        : R[K] extends Record<string, unknown>
          ? RulersMap<R[K]>
          : R[K];
    };
    и привести результат к типу RulersMap<typeof rulers>
    Проблема в том, что у либы map-obj не очень то хорошо типы для deep варианта написаны, хотя можно свои написать при желании.
    Ответ написан
    Комментировать
  • Как сохранить HashMap в файл?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Сериализация и десериализация в Java

    Можно еще сериализовать в json - получится строка, а ее уже сохранить в файл
    Ответ написан
    Комментировать
  • Что за параметры в spltе?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Это регулярное выражение.
    Ответ написан
    Комментировать
  • В какой области памяти хранятся локальные переменные?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Объекты в куче.
    Примитивы и ссылки - в стэке.
    Ответ написан
    4 комментария
  • В какой области памяти хранятся локальные переменные?

    Jacen11
    @Jacen11
    буквально самая первая ссылка. В яндексе забанили?
    61d4a05018dbc595444549.png
    Ответ написан
    Комментировать
  • Почему Dependecy Injection не нарушает GRASP шаблон Creator?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Потому что не нарушает... Фабрика/агрегат создает нужный инстанс, если его ответственность в этом

    DI — это про зависимости, то есть создаем и передаем зависимости снаружи, а не внутри... Creator создает не свою зависимость, а просто на выход некоторый объект... сам с этим объектом не работает
    Ответ написан
    Комментировать