10 ошибок API
40 000+ записей без пагинации, 200 OK вместо 400 Bad Request, SQL-запросы в ответах клиенту. Собрал 10 ошибок API из реальных проектов: монолитов, микросервисов, ста…
Читать далее →
Быстрый Java-совет: точное измерение времени с Instant и Duration
Если нужно замерить время выполнения кода с наносекундной точностью — используйте связку Instant + Duration из ja…
Читать далее →
Безопасная загрузка ресурсов в Java
Хитрый совет по Java: используй скрытую возможность ClassLoader для безопасной подг
Безопасная загрузка ресурсов в Java
Хитрый совет по Java: используй скрытую возможность ClassLoader для безопасной подгрузки конфигураций и плагинов.
Вместо чтения файлов напрямую через File, загружай ресурсы из classpath — так ты избежишь проблем с путями, правами и разными окружениями.
import java.io.*;
import java.nio.charset.*;
public class ConfigLoader {
public static String load(String name) throws Exception {
try (InputStream in =
ConfigLoader.class.getClassLoader().getResourceAsStream(name)) {
if (in == null) return null;
return new String(in.readAllBytes(), StandardCharsets.UTF_8);
}
}
public static void main(String[] args) throws Exception {
System.out.println(load("config/app.conf"));
}
}
Микросервисы: как выбрать между синхронной блокировкой и событийной архитектурой?
Синхронные вызовы кажутся простыми и знакомыми, пока не превращаются в цепочки, которые рушат всю…
Читать далее →
Магия IntelliJ IDEA: Extend Selection
Нужно выделить метод целиком? Или весь блок try-catch? Или параметры метода? Обычно хватаешься за мышку и начинаешь аккуратно тащить курсор, …
Читать далее →