Telegram Web Link
🖥 Простое управление API с Tink

Tink — это многоязычная, кроссплатформенная библиотека, предоставляющая криптографические API, которые безопасны, просты в правильном использовании и ими трудно злоупотреблять.

<dependency>
<groupId>com.google.crypto.tink</groupId>
<artifactId>tink</artifactId>
<version>1.7.0</version>
</dependency>


🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍98🔥4
🖥 Веб-фреймворк для Java — Javalin

Javalin — это очень легкий веб-фреймворк для Kotlin и Java, поддерживающий WebSockets, HTTP2 и async-запросы. Главные цели Javalin — простота, отличный опыт разработчика и первоклассная совместимость между Kotlin и Java.

Javalin — это скорее библиотека, чем фреймворк.
Пара ключевых моментов:
— Не нужно ничего расширять.
— Нет никаких @Annotations

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥4
💻 Coil — библиотека загрузки изображений для Android, основанная на корутинах Kotlin

Фичи Coil (Coroutine Image Loader):

Скорость: Coil выполняет ряд оптимизаций, включая кэширование памяти и диска, понижение дискретизации изображения в памяти, автоматическую приостановку/отмену запросов и многое другое.

Лёгкость: Coil добавляет ~2000 методов в ваш APK (для приложений, которые уже используют OkHttp и Coroutines), что сравнимо с Picasso и значительно меньше, чем Glide и Fresco.

Простота использования: API Coil использует возможности языка Kotlin для простоты и минимального количества косяков.

Современность: Coil ориентирован на Kotlin и использует современные библиотеки, включая Coroutines, OkHttp, Okio и AndroidX Lifecycles.

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥3
🖥 Quarkus — это cloud native фреймворк для написания Java-приложений

Особенности Quarkus:
🟡Оптимизация для контейнеризации: создаваемые Java-приложения занимают минимум места, что идеально для работы в контейнерах.

🟡Cloud Native: воплощение 12-факторной архитектуры в таких средах, как Kubernetes.

🟡Унификация императивного и реактивного подходов: объединяет в рамках одной модели программирования неблокирующий и императивный стили разработки.

🟡Основано на стандартах: основана на любимых стандартах и фреймворках (RESTEasy и JAX-RS, Hibernate ORM и JPA, Netty, Eclipse Vert.x, Eclipse MicroProfile, Apache Camel и т.д.)

🟡Microservice First: обеспечивает молниеносное время запуска и скорость выполнения кода в Java-приложениях.

curl -Ls https://sh.jbang.dev | bash -s - trust add https://repo1.maven.org/maven2/io/quarkus/quarkus-cli/
curl -Ls https://sh.jbang.dev | bash -s - app install --fresh --force quarkus@quarkusio


🖥 GitHub
🟡 Доки

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥3
🖥 SQL-инъекции JDBC, JPA, Spring Data

В данной статье речь пойдёт о таком типе уязвимости приложений как внедрение SQL кода.
Вообще, в мире Java разработки существует несколько простых правил, позволяющих практически полностью исключить возможности внедрения SQL:
— Не использовать конкатенацию строк в запросах к базам данных.

— Использовать PreparedStatement/CallableStatement вместо Statement. Библиотеки spring-jdbc, Hibernate, MyBatis, JOOQ и прочие также внутри используют PreparedStatement.

— Передавать параметры запросов с помощью методов setParameter, а не в самом запросе.

Поэтому кажется, что большинство разработчиков уже следует этим правилам и риск подверженности SQL-инъекциям в Java приложениях преувеличен. К сожалению, контрпримеры существуют, и поэтому сохраняется необходимость в повышенном внимании к данной проблеме.
Этому и посвящена статья.

📎 Код примеров на GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥2🥰1
🖥 Я.Субботник по Java-разработке

Держите супер полезное видео — запись митапа Java-разработчиков.
О том, как устроена разработка в финтехе, как можно использовать GPT и не только.
Надеюсь, вы почерпнёте много полезного для себя.

Что внутри?
• 00:11:04 — Java и Kotlin в Яндекс.Банке
• 00:43:47 — Как строить надежные цепочки интеграций в облаке, чтобы пользователь мог изменить заказ на лету
• 01:13:15 — Взболтать, но не смешивать — пробуем GPT в быту разработчика
• 02:14:01 — Разработка на Scala — проще, чем кажется
• 02:46:12 — Отказоустойчивая архитектура Java сервисов для отправки пуш нотификаций в мобильные приложения Яндекса

📎 Кликабельный план видео
📎 YouTube

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥6👍4
🖥 Что такое stack trace, и как с его помощью находить ошибки при разработке приложений?

▶️Иногда при запуске приложения можно получить подобную ошибку:
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

Это называется «трассировка стека» или «stack trace». Что вообще такое трассировка? Какую полезную информацию об ошибке в разрабатываемой программе она содержит?


▶️Простыми словами, трассировка стека – это список методов, которые были вызваны до момента, когда в приложении произошло исключение.

🟡Простой случай. В указанном примере мы можем точно определить, когда именно произошло исключение. Рассмотрим трассировку стека:
Exception in thread "main" java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

Это пример очень простой трассировки. Если пойти по списку строк вида «at…» с самого начала, мы можем понять, где произошла ошибка. Мы смотрим на верхний вызов функции. В нашем случае, это:
at com.example.myproject.Book.getTitle(Book.java:16)


Для отладки этого фрагмента открываем Book.java и смотрим, что находится на строке 16:
public String getTitle() {
System.out.println(title.toString()); <-- line 16
return title;
}


Это означает то, что в приведенном фрагменте кода какая-то переменная (вероятно, title) имеет значение null.


🟡Пример цепочки исключений. Иногда приложения перехватывают исключение и выбрасывают его в виде другого исключения. Обычно это выглядит так:
try {
....
} catch (NullPointerException e) {
throw new IllegalStateException("A book has a null property", e)
}


Трассировка в этом случае может иметь следующий вид:
Exception in thread "main" java.lang.IllegalStateException: A book has a null property
at com.example.myproject.Author.getBookIds(Author.java:38)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)
Caused by: java.lang.NullPointerException
at com.example.myproject.Book.getId(Book.java:22)
at com.example.myproject.Author.getBookIds(Author.java:35)
... 1 more


📎 Подробнее

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍193🔥1🥰1
🖥Apache Tomcat - установка и настройка на Debian

🟡Apache Tomcat – это сервер приложений, который используется для обслуживания приложений Java.
Tomcat – это открытая реализация технологий Java Servlet и JavaServer Pages.

🟡Для работы Tomcat необходимо установить Java, иначе код Java не будет выполняться. Установите OpenJDK при помощи стандартного пакетного менеджера apt:
sudo apt update && sudo apt install default-jdk wget curl

После установки Java создайте специального пользователя tomcat для запуска сервиса Tomcat.

▶️ Теперь создадим и настроим пользователя Tomcat

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥3😁1
🖥 Semgrep — статический анализатор кода для Java и не только

brew install semgrep

Semgrep — это быстрый open-source инструмент статического анализа для обнаружения ошибок и проверки соблюдения стандартов в процессе редактирования, коммита и т.д.
Semgrep — это семантический grep для кода: если grep "2" будет искать только точную строку 2, то Semgrep будет искать x = 1; y = x + 1 при поиске 2. И он делает это на 30 с лишним языках!

Правила Semgrep выглядят как код, который вы уже пишете; никаких абстрактных синтаксических деревьев, сложных regex или DSL.

🖥 GitHub

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96🔥3🤯1
🖥 Вышла новая, улучшенная версия GPT-4 Omni для. И что самое главное — она доступна всем БЕСПЛАТНО!

Это самая совершенная модель из всех, намного превосходящая своих предшественников, включая таинственный gpt2-chatbot.

Она появится уже сегодня в виде приложения для пк.


GPT-4 Omni будет понимать эмоции и тон голоса.

https://www.youtube.com/watch?v=8TW0zMqIG_E

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍1
2025/09/16 07:10:29
Back to Top
HTML Embed Code: