Обновить
512K+

Java *

Объектно-ориентированный язык программирования

214,3
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как внедрить Contract-First OpenAPI и как устроен центр авторизаций

Время на прочтение1 мин
Охват и читатели4.2K

Переходим к докладам по backend с IT-конференции ЮMoneyDay.

Первый кейс о том, как мы внедряли Contract-First. Описали процесс перехода от Сode-First к написанию OpenAPI-спецификаций и генерации кода по ним.

Во втором кейсе разбираем анатомию центра авторизаций. Рассказали, как организовать разработку и поддержку множества критичных процессов и спокойно спать по ночам.

Смотреть доклады по backend

Spring Cloud Config — обновление конфигурации

Время на прочтение8 мин
Охват и читатели45K

Spring Cloud Config позволяет хранить настройки конфигурации сервисов в git-репозитории и управлять настройками централизованно.

В этой статье поговорим об обновлении параметров, получаемых с сервера конфигурации.

Читать далее

Туториал по JUnit 5 - Жизненный цикл JUnit 5 теста

Время на прочтение4 мин
Охват и читатели22K

Это продолжение туториала по JUnit 5. Введение опубликовано здесь.

В JUnit 5 жизненный цикл теста управляется четырьмя основными аннотациями, то есть @BeforeAll, @BeforeEach, @AfterEach и @AfterAll. Вместе с тем, каждый тестовый метод должен быть помечен аннотацией @Test из пакета org.junit.jupiter.api.

Читать далее

Туториал по JUnit 5  - Введение

Время на прочтение6 мин
Охват и читатели165K

В этом туториале по JUnit 5 рассказывается о том, как JUnit адаптировал стиль кодирования Java 8 и некоторые другие функции. Узнайте, чем JUnit 5 отличается от JUnit 4.

JUnit 5 - наиболее широко используемая среда тестирования для приложений Java. JUnit долгое время отлично справлялся со своей задачей.

Между тем, JDK 8 привнес в java интересные функции и, в первую очередь, лямбда-выражения. JUnit 5 был нацелен на адаптацию стиля программирования Java 8; вот почему Java 8 является минимально необходимой версией для создания и выполнения тестов в JUnit 5 (хотя можно запускать тесты, написанные с помощью JUnit 3 или JUnit 4 для обратной совместимости).

Читать далее

WEKA. Руководство по использованию

Время на прочтение4 мин
Охват и читатели20K

Начав изучать библиотеку Weka я обнаружила, что в Интернете очень мало информации о ней на русском языке – как с ней работать и как ее использовать. Эта статья будет вводной для знакомства с библиотекой.

Читать далее

Senior Java Developer — как проходят собеседования

Время на прочтение5 мин
Охват и читатели55K

Я прошел за свою деятельность больше 100 собеседований на позиции Senior Java Developer, и скажу я вам, что накопилось много интересных моментов, которыми и хочется поделиться.

Это не инструкция для прохождения собеседований, со списком вопросов.

Читать далее

IT Nights 2021: тайна возвращения образовательного IT-шоу

Время на прочтение5 мин
Охват и читатели2.1K

Технические специалисты FIIO отправили в Татарстан специализированный стелс-дрон под кодовым обозначением Order256, который позволил проникнуть в кибернетизированную систему Иннополиса и выяснить подробности.

На данный момент Order256 сумел установить, что мероприятие шифруется под кодовым именем IT Nights 3:0, и ведется застройка секретного бункера в Университете Иннополис. Нам удалось получить сведения и о некоторых человеческих объектах, согласившихся сделать доклады в рамках рассекреченной конференции. 

Дешифрованный список спикеров прилагается к данному файлу.

Снять гриф секретности

Как устроен вывод Generic-типов в Java

Время на прочтение9 мин
Охват и читатели18K

Добрый день! Меня зовут Владислав Верминский, я отвечаю за развитие профессии JVM-разработчика в Райффайзенбанке. В этой статье я расскажу про неоднозначность вывода типов в Java. На первый взгляд с ним всё очевидно, но когда сталкиваешься со странным поведением, возникают вопросы — начинает казаться, что какие-то части кода работают неправильно. Однако, после анализа становится понятно, что всё очень непросто, но при этом всё работает по своей спецификации.

Читать далее

JUnit — создание отчетов в формате HTML

Время на прочтение3 мин
Охват и читатели13K

Это продолжение туториала по JUnit 5. Введение опубликовано здесь.

Рассмотрим как создавать HTML-отчет для результатов выполнения тестов JUnit. В этом примере я создаю HTML-отчет для проекта JUnit-Examples, представленного на Github.

Читать далее

Грабли, спрятанные в Kotlin

Время на прочтение6 мин
Охват и читатели17K

Kotlin создавался, чтобы избежать некоторых проблем Java. Но как и в любом языке, есть в нем свои особенности. Разрабатывая собственный проект, мы наткнулись на несколько таких моментов. Часть стреляет вам в колено на продакшене, только если вы ими злоупотребляете. Другая отражается на производительности высоконагруженных систем. Все эти моменты сложно заметить, поскольку их не подсвечивают специально плагины для IDE, да и в целом на первый взгляд код похож на валидный.

В этой статье мы поговорим о том, на что нужно обратить внимание.

Читать далее

8 советов по отладке для пользователей IntelliJ IDEA, о существовании которых вы возможно не знали

Время на прочтение5 мин
Охват и читатели20K

Все мы, разработчики, знакомы с отладчиками и используем их ежедневно - они важная часть процесса программирования. 

Но давайте будем честными. Обычно мы используем только опцию точки останова. При большом желании мы можем использовать условную точку останова.

Но знаете что, отладчик IntelliJ IDEA имеет множество мощных и передовых функций, которые полезны для более эффективной и простой отладки. 

Чтобы помочь вам, мы составили список советов и приемов от наших разработчиков в Lightrun. Мы надеемся, что эти советы помогут вам быстрее находить и устранять ошибки.

Читать далее

Нулевое время простоя при изменениях базы данных с помощью флагов функций — шаг за шагом

Время на прочтение8 мин
Охват и читатели3.1K

Каждый раз, когда мы вносим изменение в схему нашей базы данных, мы также должны вносить изменения в код, который использует эту схему базы данных.

Когда мы добавляем новый столбец в базу данных, нам нужно изменить код, чтобы использовать этот новый столбец.

Когда мы удаляем столбец из базы данных, нам нужно изменить код, чтобы этот столбец больше не использовался.

В этом руководстве мы обсудим, как мы можем координировать изменения кода с изменениями базы данных и развертывать их в нашей производственной среде без простоев. 

Мы шаг за шагом рассмотрим пример сценария использования и воспользуемся флагами функций, помогающими нам выполнить изменения.

Читать далее

Ближайшие события

Понимание утечек памяти в Java

Время на прочтение11 мин
Охват и читатели57K

Одним из основных преимуществ Java является автоматизированное управление памятью с помощью встроенного сборщика мусора (или сокращенно GC). GC неявно заботится о выделении и освобождении памяти и, таким образом, способен решать большинство проблем, связанных с ее утечкой.

Хотя GC эффективно обрабатывает значительную часть памяти, он не гарантирует надежного решения проблемы с ее утечкой. GC достаточно умен, но не безупречен. Утечки памяти все еще могут закрасться даже в приложения, созданные добросовестным разработчиком.

По-прежнему возможны ситуации, когда приложение создает значительное количество лишних объектов, расходуя ресурсы памяти, что иногда приводит к его полному отказу.

Утечки памяти — это настоящая проблема в Java. В этом руководстве мы рассмотрим, каковы потенциальные причины утечек, как распознавать их в рантайме и как справиться с ними в нашем приложении.

Читать далее

Интеграция с Allure: структурировать, упростить, стабилизировать

Время на прочтение8 мин
Охват и читатели17K

Если ваш проект с автотестами растет, то рано или поздно ставится вопрос о том, как централизованно управляться с этими тестами. Как найти время на поддержку тестовой документации? Как ее структурировать? Где хранить отчеты? Как избавиться от нестабильных тестов и быстро выявить ответственных за них? В Wrike мы смогли ответить на все эти вопросы и автоматизировать процессы, которые они затрагивают. В статье расскажем, как нам это удалось.

Читать далее

А как вы определяете свойства переменными окружения в Spring Boot приложениях?

Время на прочтение2 мин
Охват и читатели15K
image

А что, если я скажу, что подобное

#application.properties
spring.datasource.url=${SPRING_DATASOURCE_URL}?someProperty=${PROPERTY}

содержит ошибку. Не согласны? Разбор под катом.
Читать дальше →

Делаем многопоточный конвейер

Время на прочтение5 мин
Охват и читатели7K

В последнее время я довольно часто сталкиваюсь с оптимизацией процессов загрузки и обработки информации. Периодически вижу не самые оптимальные, а то и вредные для производительности решения причем от разработчиков middle и senior уровня. Поэтому хотелось бы подробнее описать общий подход к написанию правильных и быстрых многопоточных архитектур с максимальной утилизацией ресурсов, но при этом с минимально возможным в каждом отдельном случае количеством потоков.

Читать далее

Liferay 7.4 — еще одна No Code платформа?

Время на прочтение4 мин
Охват и читатели11K

Компания Liferay выпустила очередную версию своей портальной платформы Liferay CE 7.4.3 и гордо заявила в анонсе что это теперь полноценное No Code решение. Так ли это на самом деле?

Читать далее

Что полезно знать Java-разработчику про вывод типов

Время на прочтение9 мин
Охват и читатели22K

image


В Java 8 кардинально переработали процедуру вывода типов выражений. В спецификации появилась целая новая глава на эту тему. Это весьма сложная штука, изложенная скорее на языке алгебры, чем на языке нормальных людей. Не каждый программист готов в этом разобраться. Я, разработчик IDE, которому приходилось ковыряться в соответствующем коде, к своему стыду тоже довольно плохо разбираюсь в этой теме и понимаю процесс только по верхам. Причём сложно не только мне, но и авторам компилятора Java. После выхода Java 8 обнаружились десятки багов, когда поведение компилятора не соответствовало спецификации, либо текст спецификации был неоднозначен. В средах разработки для Java ситуация обстояла не лучше: там тоже были баги, причём другие, поэтому код мог отображаться ошибочным в вашей IDE, но успешно компилироваться. Или наоборот. С годами ситуация улучшилась, многие баги исправили, хотя всё ещё в спецификации остались тёмные углы.

Читать дальше →

Атака не клонов, или Генерация и анализ тестовых данных для нагрузки. Часть 1

Время на прочтение6 мин
Охват и читатели4.4K

Как добиться необходимого контроля, удобства и даже скорости при подготовке тестовых данных для микросервисов и тестов производительности? В каких случаях лучше не генерировать XML и JSON файлы с помощью конкатенации строк? Зачем анализировать статистику по SQL запросам?

Меня зовут Вячеслав Смирнов, и я ускоряю дистанционное банковское обслуживание юридических лиц, а еще поддерживаю чат QA — Load & Performance в Телеграм, где сообщество инженеров по тестированию производительности обсуждает тестирование нагрузки.

Статья получилась длинной, поэтому сегодня я расскажу про подготовку тестовых данных для тестирования производительности и про то, как с помощью SQL, Pandas и Java эти данные готовить. Поговорим про анализ метрик и логов с точки зрения данных и с использованием InfluxDB, Grafana и прочих инструментов, А ещё о том, как может выглядеть хороший отчет по системе, в которой много данных. В следующих частях перейду к генерации и анализу тестовых данных для нагрузки.

Читать далее