Обновить
512K+

Java *

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

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

Прокачиваем kotlin: используем AST лямбд в рантайме

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

История о том, как сделать свой LINQ для kotlin, и как сделать так, чтобы кода вида

data.filter { it.age > 30}.map { it.name }.toList()

мог и выполняться для данных в памяти, и превращаться в SQL запрос для базы данных.

Читать далее

А насколько Loom реактивный?

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

Проект Loom добавит в Java 19 виртуальные треды. Что это? Новые перспективы для рынка труда нарисовались в предыдущей части заметки. В аспекте внутренностей JVM про Loom рассказывает Иван Углянский: рекомендую его доклад «Thread Wars — проект Loom наносит ответный удар».

Здесь мы оценим, как добавка повлияет на современные подходы серверной разработки. Потеснит ли новинка Scala и Kotlin с их фреймворками? Заодно ответим на вопрос «а в какой мере Loom — реактивный»?

Читать далее

Java — 27! Как язык программирования, предназначенный для бытовой техники, стал одним из самых популярных в мире

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

23 мая 1995 года — дата официального выпуска Java. Язык Java и сегодня остается одним из самых востребованных языков программирования в IT. По данным индекса TIOBE, ранжирующего языки программирования на основе поисковых запросов о них, Java стабильно занимает третье место по популярности в мире с момента запуска рейтинга.

Сегодня с помощью языка решаются тысячи задач — от написания мобильных игр и приложений до разработки в финтехе и работы с big data. Вместе с Даниилом Пилипенко, программным директором факультета backend-разработки направления «Программирование» Skillbox, директором центра подбора IT-специалистов SymbioWay рассказываем, зачем был создан Java, как он повлиял на развитие IT-отрасли и насколько востребовано владеть Java сегодня. Для затравки –– фрагмент кода, который выведет возраст языка в консоли :)

Читать далее

Написание Paper/Bukkit плагина LiteSMT #1 — Основа понятий и окружение

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

Это моя первая публикация по созданию Bukkit/Paper плагина. Возможно данная статья поможет кому-то начать писать хоть какие-то плагины. Однако пока-что данный плагин не даёт неких интересных возможностей.

Читать статью

Добавляйте единицы измерения в имена

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

Есть одна ловушка читаемости кода, которой легко избежать, если вы о ней знаете; тем не менее она встречается постоянно: это отсутствующие единицы измерения. Рассмотрим три фрагмента кода на Python, Java и Haskell:

time.sleep(300)

Thread.sleep(300)

threadDelay 300

Сколько «спят» эти программы? Программа на Python выполняет задержку на пять минут, программа на Java — на 0,3 секунды, а программа на Haskell — на 0,3 миллисекунды.

Как это можно понять из кода? А никак. Вам просто нужно знать, что аргументом time.sleep являются секунды, а threadDelay — микросекунды. Если вы часто ищете эту информацию, то рано или поздно её запомните, но как сохранить читаемость кода для людей, никогда не встречавшихся с time.sleep?
Читать дальше →

Руководство по Java 8 Optional

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

В этом учебном пособии мы рассмотрим класс Optional, который был представлен в Java 8.

Цель класса — предоставить решение на уровне типа для представления опциональных значений вместо null (нулевых) ссылок.

Для более глубокого понимания того, почему мы должны обратить внимание на класс Optional, ознакомьтесь с официальной статьей Oracle.

Читать далее

Книга «Spring Boot по-быстрому»

Время на прочтение9 мин
Охват и читатели34K
image Привет, Хаброжители! Spring Boot, который скачивают более 75 миллионов раз в месяц, — наиболее широко используемый фреймворк Java. Его удобство и возможности совершили революцию в разработке приложений, от монолитных до микросервисов. Тем не менее простота Spring Boot может привести в замешательство. Что именно разработчику нужно изучить, чтобы сразу же выдавать результат? Это практическое руководство научит вас писать успешные приложения для критически важных задач. Марк Хеклер из VMware, компании, создавшей Spring, проведет вас по всей архитектуре Spring Boot, охватив такие вопросы, как отладка, тестирование и развертывание. Если вы хотите быстро и эффективно разрабатывать нативные облачные приложения Java или Kotlin на базе Spring Boot с помощью реактивного программирования, создания API и доступа к разнообразным базам данных — эта книга для вас.
Читать дальше →

Сегодня паттерн Посетитель в Java уже не нужен – лучше использовать переключатели паттернов

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

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

Всякий раз, оказываясь в ситуации, где мог бы применяться паттерн Посетитель, подумайте, не воспользоваться ли вместо него более современными возможностями языка   Java. Разумеется, эти возможности могут использоваться и в других обстоятельствах, но в этой статье мы обсудим сравнительно узкую тему: чем заменить паттерн Посетитель. Для этого я начну с максимально краткого введения и приведу пример, а затем объясню, как достичь тех же целей более простым (и кратким) кодом.

Читать далее

Loom: зачем?

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

Недавно, 6 мая этого года, в OpenJDK вошёл JEP 425, который добавит к Java 19 в качестве превью-фичи Виртуальные треды.

Пожалуй, этот JEP — самое большое изменение семантики языка после появления Дженериков. Его масштабы трудно оценить. Для начала попробуем прикинуть, как оно может отразиться на нашей зарплате.

Читать далее

Как я позавидовал начинающим Junior Java разработчикам

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

На просторах интернета можно найти множество курсов по Java разработке для начинающих разного уровня сложности. Большая часть из них вполне хороши для того, чтобы помочь вам стать неплохим Junior разработчиком (конечно, курсов мало, нужна достаточно длительная практика на продуктиве, но базу они дают). Но что делать, если основы вы уже давно освоили, но не понимаете многих тонкостей и чувствуете, что вам не хватает базы для того, чтобы сделать шаг вперед и подтянуться до Middle? Можно изучать литературу, продолжать практиковаться на работе и учиться у более опытных коллег. Несмотря на то, что это все - тоже хорошие способы, им не хватает одного главного момента - систематичности и актуальности. Опытные товарищи постоянно заняты на сложных проектах и у них не очень много времени для того, чтобы дать вам волшебное ускорение в нужном направлении, да и то это обычно ограничивается кратким "копай сюда". Рабочие задачи на продуктиве - это бомба! Но при этом обычно спектр задач все равно ограничивается теми стеками и приемами разработки, которые в данный конкретный период времени востребованы заказчиком фирмы, в которой вам посчастливилось работать. А ведь экосистема Java очень-очень-очень большая! А заказы в фирме могут очень долго ограничиваться сложным и ценным, но достаточно узким стеком. А как же все остальное? Как же научится если не всему, то хотя бы главному, чтобы продвинуться дальше и стать мидлом?

Читать далее

Пример описания многослойной архитектуры, основанной на использовании наборов подслоёв и иерархии моделей данных

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели25K

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

Читать далее

Тестирование интеграции Kotlin веб сервиса на Spring Boot с базой данных

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

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

Читать далее

gRPC — безопасность или жесть?

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

Встроенные в gRPC способы проверки прав справляются со своими задачами, но накладывают ряд ограничений и не дают возможность писать сложные варианты проверок без «оригинальных» инженерных решений. А тот, кто хоть раз грешил обходом ограничений, знает, чем это чревато.

В одном из проектов мы решили попробовать упростить процесс валидации данных при внешней интеграции, соблюдая все правила безопасности. Шалость удалась:)

Наш backend-разработчик — Александр — нашел-таки то самое «оригинальное» инженерное решение. Решили поделиться с вами, чтобы и вам страдать не приходилось.

Оригинальное инженерное решение для упрощения аутентификации при вызове удаленных процедур по gRPC: proto-файл и реализация на Java.

Читать далее

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

Набор практик по работе с Postgresql глазами Spring java backend разработчика

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

Дисклеймер: в данной статье много воды, отражены мысли и опыт воспаленного мозга, потому заранее предупреждаю, что можете потерять просто свое время зря. Из java тут вообще мало. Возможно данная статья будет полезна начинающим разработчикам.

Данная заметка - микс различных приемов работы с базой данных, мейнтененса, встречающихся проблем. В общем это чистой воды винегрет и что-то вроде шпаргалки. Я не являюсь гуру PostgreSQL, но могу поделиться своими наработками, которые использую достаточно часто являясь простым java разработчиком. Может кому-то что-то пригодиться.

Читать далее

Рукопись моей первой книги о Java

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

Статья о том, как я просто писал статьи на ИТ-тематику в личный блог, как вдруг получил контракт от издательства. Много работал и страдал. Прошёл через кучу этапов и написал рукопись своей первой книги о Java и её изменениях от версии к версии. Как чуть не переделал все перед самым концом, но довёл до конца и отдал текст редактору на следующий этап. Как отдохнул и переосмыслил увиденное и решил поделиться полученным знанием со всеми остальными.

Читать далее

Java библиотека для работы с внешним сервисом по протоколу RESTful API

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

Использование библиотеки-обертки для добавления функционала к RESTful API, предоставляемому внешним сервисом.

Читать далее

Разворачиваем проект серверов Minecraft

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

Minecraft – нечто большее, чем игра. До сих пор думаешь, что это очередная игра для детей? Вынужден опровергнуть твоё мнение. Эту игру используют, как в школах для развития детей, так и для воссоздания архитектурных объектов, улучшения безопасности на реальных улицах, изучения основ программирования, и, в конечном итоге, для простой релаксации.

Не очень люблю воду в текстах, поэтому буду краток. Название статьи: «Разворачиваем проект серверов Minecraft». Что будем делать? Запускать проект серверов Minecraft. Для чего? Для практики, для отвлечения, и, в конечном итоге, для небольшого (а может и большого) практически пассивного источника дохода.

Читать далее

ORM — отвратительный анти-паттерн

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

От автора перевода: Написанный далее текст может не совпадать с мнением автора перевода. Все высказывания идут от лица оригинального автора, просьба воздержаться от неоправданных минусов. Оригинальная статья выпущена в 2014 году, поэтому некоторые фрагменты кода могут быть устаревшими или "нежелаемыми".

Содержание статьи:

В статье приведены доводы, которые ставят под вопрос правильность присутствия ORM в рамках ООП.

Читать далее

Как отлаживать коллекции Java с Lightrun на продакшене

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

К старту курса по разработке на Java делимся руководством о том, как отлаживать коллекции Java на продакшене с платформой Lightrun и избегать при этом неприятностей с методом list.toArray(). За подробностями приглашаем под кат.

Читать далее

Блеск и нищета фреймворков тестирования: используем Groovy для скриптинга end-to-end тестов

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

Безусловно, тестирование важный аспект разработки ПО. Наличие тестов - это хорошо, а удобное тестирование - еще лучше. В этой статье я расскажу как запускать тесты, написанные на groovy без gradle, maven и даже без предварительной компиляции этих тестов, а также почему JUnit 5 - это намного больше, чем просто хорошая библиотека для unit тестов.

Читать далее