Dagger Hilt (Для начинающих)
Я являюсь разработчиком мобильных приложений с опытом уже более 3х лет! Я всегда разрабатываю мобильные приложения один - это требует моя работа. Но сегодня я хочу поделиться с Вами тем, что такое Dagger Hilt!
Следите за мной в телеграм
Dagger Hilt - это необходимый каждому инструмент, который упрощает в разы разработку мобильных приложений. Служит для внедрения зависимостей. В первую очередь он необходим тем, у кого в проекте есть множество классов, которые требуют реализации. Хотите чтоб за вас это сделал кто-то другой? Dagger Hilt к вашим услугам.
Читать: https://habr.com/ru/articles/848690/?utm_campaign=848690
@a_cup_of_java | Другие наши каналы
Я являюсь разработчиком мобильных приложений с опытом уже более 3х лет! Я всегда разрабатываю мобильные приложения один - это требует моя работа. Но сегодня я хочу поделиться с Вами тем, что такое Dagger Hilt!
Следите за мной в телеграм
Dagger Hilt - это необходимый каждому инструмент, который упрощает в разы разработку мобильных приложений. Служит для внедрения зависимостей. В первую очередь он необходим тем, у кого в проекте есть множество классов, которые требуют реализации. Хотите чтоб за вас это сделал кто-то другой? Dagger Hilt к вашим услугам.
Читать: https://habr.com/ru/articles/848690/?utm_campaign=848690
@a_cup_of_java | Другие наши каналы
Presentation: AI Integration for Java: To the Future, From the Past
The panelists discuss workflows, staff impact, and utilizing different tools, frameworks, and services to integrate AI in Java applications.
By Asir Selvasingh, Jonathan Schneider, Dov Katz, Svetlana Zemlyanskaya, Erik Costlow
Read: https://www.infoq.com/presentations/ai-java-integrate/
@a_cup_of_java | Другие наши каналы
The panelists discuss workflows, staff impact, and utilizing different tools, frameworks, and services to integrate AI in Java applications.
By Asir Selvasingh, Jonathan Schneider, Dov Katz, Svetlana Zemlyanskaya, Erik Costlow
Read: https://www.infoq.com/presentations/ai-java-integrate/
@a_cup_of_java | Другие наши каналы
Создание компонента Apache Camel
Приветствую, сообщество!
Меня зовут Александр, я java разработчик в компании БФТ. Тружусь я на проекте СМЭВ-адаптера, где мы занимаемся транзитивной обработкой сообщений. В нашу зону ответственности входит несколько микросервисов, которые обрабатывают очень много сообщений, почти ничего не пишут в БД, но часто обращаются в сторонние прикладные сервисы.
Для отслеживания пути сообщения через наши микросервисы мы используем Zipkin. Помимо этого в проекте задействован Apache Camel, с помощью которого мы выстраиваем цепочку обработки сообщения в одном конкретном микросервисе. Стандартные средства для работы с Zipkin обычно позволяют легко добавить к трассе вход, выход в сервис и запись в БД, но, т.к. к нас не совсем стандартное поведение у сервисов, нам хотелось выделять в Zipkin и обращение в сторонние сервисы.
Хотелось эту логику как-то элегантно встроить в роут Camel, но существующие средства такой возможности не предоставляли.
Было принято решение написать свой компонент для Apache Camel. Делали мы это впервые и, к сожалению, полноценного гайда в интернетах найти не удалось...
Встречайте! Гайд по написанию собственного Camel-компонента!
Читать: https://habr.com/ru/companies/bft/articles/796607/?utm_campaign=796607
@a_cup_of_java | Другие наши каналы
Приветствую, сообщество!
Меня зовут Александр, я java разработчик в компании БФТ. Тружусь я на проекте СМЭВ-адаптера, где мы занимаемся транзитивной обработкой сообщений. В нашу зону ответственности входит несколько микросервисов, которые обрабатывают очень много сообщений, почти ничего не пишут в БД, но часто обращаются в сторонние прикладные сервисы.
Для отслеживания пути сообщения через наши микросервисы мы используем Zipkin. Помимо этого в проекте задействован Apache Camel, с помощью которого мы выстраиваем цепочку обработки сообщения в одном конкретном микросервисе. Стандартные средства для работы с Zipkin обычно позволяют легко добавить к трассе вход, выход в сервис и запись в БД, но, т.к. к нас не совсем стандартное поведение у сервисов, нам хотелось выделять в Zipkin и обращение в сторонние сервисы.
Хотелось эту логику как-то элегантно встроить в роут Camel, но существующие средства такой возможности не предоставляли.
Было принято решение написать свой компонент для Apache Camel. Делали мы это впервые и, к сожалению, полноценного гайда в интернетах найти не удалось...
Встречайте! Гайд по написанию собственного Camel-компонента!
Читать: https://habr.com/ru/companies/bft/articles/796607/?utm_campaign=796607
@a_cup_of_java | Другие наши каналы
🔥2🎉2
Java Digest #17
Всем привет! 👋 👋 👋 👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
В этом выпуске детально рассмотрим новый релиз Java 23 и расскажем, какие JEPы в него вошли. Посмотрим несколько интересных докладов с JVM Language Summit, узнаем об опыте Netflix по переходу на Generation ZGC и почитаем интересную статью о низкоуровневых инструментах обеспечения гарантий порядка памяти.
Читать семнадцатый выпуск
Читать: https://habr.com/ru/companies/tbank/articles/848784/?utm_campaign=848784
@a_cup_of_java | Другие наши каналы
Всем привет! 👋 👋 👋 👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
В этом выпуске детально рассмотрим новый релиз Java 23 и расскажем, какие JEPы в него вошли. Посмотрим несколько интересных докладов с JVM Language Summit, узнаем об опыте Netflix по переходу на Generation ZGC и почитаем интересную статью о низкоуровневых инструментах обеспечения гарантий порядка памяти.
Читать семнадцатый выпуск
Читать: https://habr.com/ru/companies/tbank/articles/848784/?utm_campaign=848784
@a_cup_of_java | Другие наши каналы
Java News Roundup: OpenJDK JEPs, Plans for Spring 7.0, JobRunr 7.3, Keycloak 26.0, Debezium 3.0
This week's Java roundup for September 30th, 2024 features news highlighting: new OpenJDK JEPs and those targeted for JDK 24; plans for Spring Framework 7.0; JobRunr 7.3.0, Keycloak 26.0.0 and Debezium 3.0.0.
By Michael Redlich
Read: https://www.infoq.com/news/2024/10/java-news-roundup-sep30-2024/
@a_cup_of_java | Другие наши каналы
This week's Java roundup for September 30th, 2024 features news highlighting: new OpenJDK JEPs and those targeted for JDK 24; plans for Spring Framework 7.0; JobRunr 7.3.0, Keycloak 26.0.0 and Debezium 3.0.0.
By Michael Redlich
Read: https://www.infoq.com/news/2024/10/java-news-roundup-sep30-2024/
@a_cup_of_java | Другие наши каналы
Тестируем интеграцию с очередями сообщений правильно
Наверняка в вашем проекте используется очередь сообщений (не важно kafka, pulsar или какой-нибудь зайчик). Основной проблемой является подробное тестирование работы вашей системы. Рассмотрим варианты решения и посмотрим, что там у автора в рукаве.
Отправлять сообщения
Читать: https://habr.com/ru/articles/848936/?utm_campaign=848936
@a_cup_of_java | Другие наши каналы
Наверняка в вашем проекте используется очередь сообщений (не важно kafka, pulsar или какой-нибудь зайчик). Основной проблемой является подробное тестирование работы вашей системы. Рассмотрим варианты решения и посмотрим, что там у автора в рукаве.
Отправлять сообщения
Читать: https://habr.com/ru/articles/848936/?utm_campaign=848936
@a_cup_of_java | Другие наши каналы
Туториал по Spring Data Envers для начинающих
Команда Spring АйО перевела статью, которая отлично подойдёт тем, кто ещё не знаком со Spring Data Envers. В статье на простых примерах объясняется, как отслеживать изменения данных в приложении, используя этот инструмент.
Читать: https://habr.com/ru/companies/spring_aio/articles/849086/?utm_campaign=849086
@a_cup_of_java | Другие наши каналы
Команда Spring АйО перевела статью, которая отлично подойдёт тем, кто ещё не знаком со Spring Data Envers. В статье на простых примерах объясняется, как отслеживать изменения данных в приложении, используя этот инструмент.
Читать: https://habr.com/ru/companies/spring_aio/articles/849086/?utm_campaign=849086
@a_cup_of_java | Другие наши каналы
🔥2
@Volatile: Лёгкий способ синхронизировать потоки… пока не понадобится атомарность
Привет, Хабр!
Если кто-то сказал вам, что многопоточность в Java — это просто, то этот кто-то явно что-то недоговаривает. Многопоточность может быть настоящим кошмаром, особенно когда речь заходит о синхронизации данных между потоками. Но есть одно хитрое средство —
Но сразу скажу:
Об ограничениях этого инструмента и не только поговорим в этой статье. И начнем с его механизма работы.
Читать: https://habr.com/ru/companies/otus/articles/848342/?utm_campaign=848342
@a_cup_of_java | Другие наши каналы
Привет, Хабр!
Если кто-то сказал вам, что многопоточность в Java — это просто, то этот кто-то явно что-то недоговаривает. Многопоточность может быть настоящим кошмаром, особенно когда речь заходит о синхронизации данных между потоками. Но есть одно хитрое средство —
@Volatile, которое, словно волшебная палочка, помогает синхронизировать потоки без всяких блокировок.@Volatile — это такой бюджетный способ синхронизации. Он не блокирует потоки, как старый добрый synchronized, но делает важное дело: гарантирует, что все изменения переменной моментально видны всем потокам. Без него потоки могут весело жить с устаревшими данными и даже не догадываться, что все вокруг давно изменилось. Но сразу скажу:
@Volatile — это не универсальная таблетка от всех проблем многопоточности. Он хорош для простых задач, где нужна только видимость изменений. Но как только ваши требования начинают включать атомарные операции или сложную логику — вот тут @Volatile сдаёт позиции. И это нормально. Каждый инструмент имеет свои ограничения, и важно понимать, когда его использовать, а когда бежать за чем-то посерьёзнее.Об ограничениях этого инструмента и не только поговорим в этой статье. И начнем с его механизма работы.
Читать: https://habr.com/ru/companies/otus/articles/848342/?utm_campaign=848342
@a_cup_of_java | Другие наши каналы
Лучший способ создания нескольких окружений для Spring Boot приложения с помощью Docker Compose
В новой статье от команды Amplicode я расскажу, как можно создать несколько Docker Compose файлов для разных нужд. Например, для продакшена и разработки, и при этом не утонуть в копипасте.
Читать: https://habr.com/ru/companies/haulmont/articles/848696/?utm_campaign=848696
@a_cup_of_java | Другие наши каналы
В новой статье от команды Amplicode я расскажу, как можно создать несколько Docker Compose файлов для разных нужд. Например, для продакшена и разработки, и при этом не утонуть в копипасте.
Читать: https://habr.com/ru/companies/haulmont/articles/848696/?utm_campaign=848696
@a_cup_of_java | Другие наши каналы
⚡2❤2✍1
Принципы SOLID на примерах из жизни и разработки
Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде.
Итак, SOLID - это 5 принципов, которые используются при разработке приложений. На каждый принцип по букве:
1. S — Single Responsibility Principle (Принцип единственной ответственности)
Определение: Каждый класс должен выполнять только одну задачу.
Пример из жизни:
Например, мы купили шкаф для одежды.
Читать: https://habr.com/ru/articles/849350/?utm_campaign=849350
@a_cup_of_java | Другие наши каналы
Задача этой статьи только одна - попробовать уложить принципы SOLID на понятных «бытовых» примерах, а уже потом посмотреть, как оно может работать на практике - в коде.
Итак, SOLID - это 5 принципов, которые используются при разработке приложений. На каждый принцип по букве:
1. S — Single Responsibility Principle (Принцип единственной ответственности)
Определение: Каждый класс должен выполнять только одну задачу.
Пример из жизни:
Например, мы купили шкаф для одежды.
Читать: https://habr.com/ru/articles/849350/?utm_campaign=849350
@a_cup_of_java | Другие наши каналы
👍1
Вышел Spring AI 1.0.0 M3
Spring выпустил Spring AI 1.0.0 M3, который принес множество значительных улучшений и новых возможностей в разработку AI-приложений.
В новом переводе от команды Spring АйО рассказывается про улучшения, связанные с observability, совершенствование системы advisor`ов и оптимизацию работы с функциями и embedding моделями.
Читать: https://habr.com/ru/companies/spring_aio/articles/849752/?utm_campaign=849752
@a_cup_of_java | Другие наши каналы
Spring выпустил Spring AI 1.0.0 M3, который принес множество значительных улучшений и новых возможностей в разработку AI-приложений.
В новом переводе от команды Spring АйО рассказывается про улучшения, связанные с observability, совершенствование системы advisor`ов и оптимизацию работы с функциями и embedding моделями.
Читать: https://habr.com/ru/companies/spring_aio/articles/849752/?utm_campaign=849752
@a_cup_of_java | Другие наши каналы
👍7❤3🔥3
Spring Patterns. Часть 2. Spring + ThreadLocal. AOP. Transaction cache
Всем привет. Я разрабатываю приложения с использованием Java, Spring Boot, Hibernate.
В прошлой статье я показал реализацию паттерна Spring Fluent Interface. При помощи которого можно инкапсулировать похожие действия внутри приложения в модуль, предоставлять клиентскому коду удобный декларативный API, и при этом “кишки” модуля могут использовать “магию” Spring. https://habr.com/ru/articles/846864/
В этой статье я хочу поделиться опытом работы с Spring + ThreadLocal.
Два слова о ThreadLocal.
Это потокобезопасная переменная. Под капотом у которой ConcurrentHashMap. Ключ - текущий поток (там чутка сложнее, но для понимания будет достаточно). Значение может быть любым типом, ThreadLocal типизирована <t. При этом можно инициализировать значение null, или сразу чем-то, например пустым списком.
Читать: https://habr.com/ru/articles/849832/?utm_campaign=849832
@a_cup_of_java | Другие наши каналы
Всем привет. Я разрабатываю приложения с использованием Java, Spring Boot, Hibernate.
В прошлой статье я показал реализацию паттерна Spring Fluent Interface. При помощи которого можно инкапсулировать похожие действия внутри приложения в модуль, предоставлять клиентскому коду удобный декларативный API, и при этом “кишки” модуля могут использовать “магию” Spring. https://habr.com/ru/articles/846864/
В этой статье я хочу поделиться опытом работы с Spring + ThreadLocal.
Два слова о ThreadLocal.
Это потокобезопасная переменная. Под капотом у которой ConcurrentHashMap. Ключ - текущий поток (там чутка сложнее, но для понимания будет достаточно). Значение может быть любым типом, ThreadLocal типизирована <t. При этом можно инициализировать значение null, или сразу чем-то, например пустым списком.
Читать: https://habr.com/ru/articles/849832/?utm_campaign=849832
@a_cup_of_java | Другие наши каналы
😁3
InfoQ Dev Summit Munich: How to Optimize Java for the 1BRC
Java applications passed the 1 Billion Row Challenge (1BRC) in 1.5 seconds. 1BRC creator Gunnar Morling detailed their optimizations at the InfoQ Dev Summit Munich 2024. General optimizations applicable to all Java applications cut the runtime from 290 seconds to 20 seconds. Getting to 1.5 seconds required niche optimizations that most Java applications should forego, except for possibly GraalVM.
By Karsten Silz
Read: https://www.infoq.com/news/2024/10/optimize-java-1brc/
@a_cup_of_java | Другие наши каналы
Java applications passed the 1 Billion Row Challenge (1BRC) in 1.5 seconds. 1BRC creator Gunnar Morling detailed their optimizations at the InfoQ Dev Summit Munich 2024. General optimizations applicable to all Java applications cut the runtime from 290 seconds to 20 seconds. Getting to 1.5 seconds required niche optimizations that most Java applications should forego, except for possibly GraalVM.
By Karsten Silz
Read: https://www.infoq.com/news/2024/10/optimize-java-1brc/
@a_cup_of_java | Другие наши каналы
Используем Buildpacks вместо Dockerfile
Привет! На связи Александр Бархатов — DevOps-инженер в крупнейшем продуктовом холдинге и автор статей в медиа вАЙТИ.. Самое популярное средство для сборки контейнеризированного приложения — это Dockerfile, текстовый файл, в котором прописаны специальные инструкции для готовых Docker-образов. Несмотря на всеобщую популярность Docker, в 2011 году вышел инструмент под названием Buildpacks, принцип работы которого мы рассмотрим в этой статье.
Читать: https://habr.com/ru/companies/beeline_cloud/articles/850026/?utm_campaign=850026
@a_cup_of_java | Другие наши каналы
Привет! На связи Александр Бархатов — DevOps-инженер в крупнейшем продуктовом холдинге и автор статей в медиа вАЙТИ.. Самое популярное средство для сборки контейнеризированного приложения — это Dockerfile, текстовый файл, в котором прописаны специальные инструкции для готовых Docker-образов. Несмотря на всеобщую популярность Docker, в 2011 году вышел инструмент под названием Buildpacks, принцип работы которого мы рассмотрим в этой статье.
Читать: https://habr.com/ru/companies/beeline_cloud/articles/850026/?utm_campaign=850026
@a_cup_of_java | Другие наши каналы
Сага об агенте или как LLM может помочь в разработке на Jmix
Всем привет! В последние годы большие языковые модели (LLM) стали набирать огромную популярность в решении множества задач, начиная от классического поиска по документам и заканчивая анализом финансовых новостей для принятия решений. В этой статье мы расскажем, как применили эти технологии для создания интеллектуального помощника, готового ответить на ваши вопросы по Jmix и помочь в написании кода.
Читать: https://habr.com/ru/companies/haulmont/articles/850078/?utm_campaign=850078
@a_cup_of_java | Другие наши каналы
Всем привет! В последние годы большие языковые модели (LLM) стали набирать огромную популярность в решении множества задач, начиная от классического поиска по документам и заканчивая анализом финансовых новостей для принятия решений. В этой статье мы расскажем, как применили эти технологии для создания интеллектуального помощника, готового ответить на ваши вопросы по Jmix и помочь в написании кода.
Читать: https://habr.com/ru/companies/haulmont/articles/850078/?utm_campaign=850078
@a_cup_of_java | Другие наши каналы
❤2👍1
Лучшие инструменты для Java-разработчиков в 2024 году
Если вы программист Java и не знаете, что изучать в 2024 году, эта статья для вас. В ней описаны ключевые инструменты, которые помогут стать лучше: Docker для автоматизации развертывания, Kubernetes для управления облаком и Git для контроля версий. Также упоминаются Maven, Jenkins и JIRA для управления проектами и тестирования.
Подробности: http://www.java67.com/2018/04/10-tools-java-developers-should-learn.html
#en
@a_cup_of_java | Другие наши каналы
Если вы программист Java и не знаете, что изучать в 2024 году, эта статья для вас. В ней описаны ключевые инструменты, которые помогут стать лучше: Docker для автоматизации развертывания, Kubernetes для управления облаком и Git для контроля версий. Также упоминаются Maven, Jenkins и JIRA для управления проектами и тестирования.
Подробности: http://www.java67.com/2018/04/10-tools-java-developers-should-learn.html
#en
@a_cup_of_java | Другие наши каналы
🎓 Бесплатные курсы Git на 2024 год!
Git — незаменимый инструмент для программистов и DevOps. Узнайте о 10 лучших бесплатных курсах на Udemy, которые помогут освоить все его возможности. Курсами можно воспользоваться бесплатно, но поторопитесь — доступ может стать платным в любой момент!
Подробности: http://www.java67.com/2022/07/10-best-free-git-courses-and-tutorials.html
#en
@a_cup_of_java | Другие наши каналы
Git — незаменимый инструмент для программистов и DevOps. Узнайте о 10 лучших бесплатных курсах на Udemy, которые помогут освоить все его возможности. Курсами можно воспользоваться бесплатно, но поторопитесь — доступ может стать платным в любой момент!
Подробности: http://www.java67.com/2022/07/10-best-free-git-courses-and-tutorials.html
#en
@a_cup_of_java | Другие наши каналы
❤4
📚 Лучшие бесплатные курсы SQL на Coursera в 2024 году
Интересуетесь SQL и базами данных, но не хотите тратиться на обучение? Coursera предлагает уникальную возможность изучать SQL бесплатно через опцию free-to-audit. Узнайте о топ-5 курсах от лучших университетов и компаний, чтобы начать свой путь в мир данных!
Подробности: http://www.java67.com/2022/07/best-free-sql-and-database-courses-on.html
#en
@a_cup_of_java | Другие наши каналы
Интересуетесь SQL и базами данных, но не хотите тратиться на обучение? Coursera предлагает уникальную возможность изучать SQL бесплатно через опцию free-to-audit. Узнайте о топ-5 курсах от лучших университетов и компаний, чтобы начать свой путь в мир данных!
Подробности: http://www.java67.com/2022/07/best-free-sql-and-database-courses-on.html
#en
@a_cup_of_java | Другие наши каналы
🔥2
Топ-10 Курсов по Веб-разработке на Coursera в 2024
Ищете лучшие курсы и проекты по веб-разработке для начинающих? Статья Java67 собрала топ-10 предложений на Coursera. Здесь можно изучить React.js, Angular, основы веб-дизайна и многое другое. Подписка Coursera Plus позволяет получить доступ ко всем курсам сразу.
Подробности: http://www.java67.com/2021/12/best-coursera-plus-courses-for-web-development.html
#en
@a_cup_of_java | Другие наши каналы
Ищете лучшие курсы и проекты по веб-разработке для начинающих? Статья Java67 собрала топ-10 предложений на Coursera. Здесь можно изучить React.js, Angular, основы веб-дизайна и многое другое. Подписка Coursera Plus позволяет получить доступ ко всем курсам сразу.
Подробности: http://www.java67.com/2021/12/best-coursera-plus-courses-for-web-development.html
#en
@a_cup_of_java | Другие наши каналы
Java News Roundup: JDK 24, Tomcat 11.0, Cassandra 5.0, EclipseStore 2.0, Payara Platform, Ktor 3.0
This week's Java roundup for October 7th, 2024 features news highlighting: JEP 489, Vector API (Ninth Incubator), and JEP 484, Class-File API, targeted for JDK 24; the release of Apache projects, Tomcat 11.0.0 and Cassandra 5.0.0; the release of EclipseStore 2.0.0; the October 2024 Payara Platform release; and the release of Ktor 3.0.0.
By Michael Redlich
Read: https://www.infoq.com/news/2024/10/java-news-roundup-oct07-2024/
@a_cup_of_java | Другие наши каналы
This week's Java roundup for October 7th, 2024 features news highlighting: JEP 489, Vector API (Ninth Incubator), and JEP 484, Class-File API, targeted for JDK 24; the release of Apache projects, Tomcat 11.0.0 and Cassandra 5.0.0; the release of EclipseStore 2.0.0; the October 2024 Payara Platform release; and the release of Ktor 3.0.0.
By Michael Redlich
Read: https://www.infoq.com/news/2024/10/java-news-roundup-oct07-2024/
@a_cup_of_java | Другие наши каналы
HMAC-SHA256 и Telegram Mini App
Хеш-функции это по-настоящему есть широта возможностей и в этой статье мы прикоснемся к одной из, а именно - аутентификация сообщения или, проще говоря, определение подлинности тех или иных присланных нам данных.
Мы с вами начнем с теории и проникая в глубь мы закончим примером реального security фильтра который наглядно покажет, на примере аутентифицикации сообщения от Telegram - на сколько мощной может быть функция если это хеш-функция.
Ну аесли ты просто не знаешь что бывают криптографические и некриптографические хеш-функции, то тебе так же стоит сюда заглянь.
Читать: https://habr.com/ru/articles/850298/?utm_campaign=850298
@a_cup_of_java | Другие наши каналы
Хеш-функции это по-настоящему есть широта возможностей и в этой статье мы прикоснемся к одной из, а именно - аутентификация сообщения или, проще говоря, определение подлинности тех или иных присланных нам данных.
Мы с вами начнем с теории и проникая в глубь мы закончим примером реального security фильтра который наглядно покажет, на примере аутентифицикации сообщения от Telegram - на сколько мощной может быть функция если это хеш-функция.
Ну аесли ты просто не знаешь что бывают криптографические и некриптографические хеш-функции, то тебе так же стоит сюда заглянь.
Читать: https://habr.com/ru/articles/850298/?utm_campaign=850298
@a_cup_of_java | Другие наши каналы
👎1