Обновить
512K+

Java *

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

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

Desktop. Не популярный, но все еще живой. Eclipse Rich Client Platform (RCP e4)

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

Всем доброго времени суток. Начнем. Во время своего обучения этой технологии я столкнулся с проблемой, что на весь интернет есть только один нормальный источник информации по этой теме (Lars Vogel). А в нем все написано профи для профи. Поверхностно, без деталей. Есть и с деталями, но платно. Я хочу добавить подробностей в довольной простой процесс создания своего первого приложения RCP, поэтому буду делать подробные пояснения к каждому шагу. Это статья подойдет новичкам, не имеющим представления о RCP и Eclipse и желающим сделать первые шаги в освоении этой технологии, но знающим, что такое Java, JDK, JRE.

Читать далее

Приглашаем спикеров и участников на Java Meeting Point 2021

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

23 июня 2021 мы проводим бесплатную онлайн-конференцию для Java-разработчиков и всех, кто интересуется этим языком. Наша конференция — это площадка для общения и обмена опытом инженеров по всей России. Ведущим Java Meeting Point будет Андрей Когунь — основатель и организатор встреч сообщества JUG.MSK. Регистрация для участников открыта

Программа формируется, и вы тоже можете стать спикером Java Meeting Point. Чтобы подать доклад, заполните форму на сайте конференции. Под катом подробнее рассказываем о конференции и процессе отбора. 

Читать далее

Как извлечь пользу из статической типизации

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

Эта статья о том, как извлечь максимум пользы из статической системы типов при дизайне вашего кода. Статья пытается быть language agnostic (получается не всегда), примеры на Java и взяты из жизни.

Читать далее

Java: передача параметров по значению или по ссылке

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

Простое объяснение принципов передачи параметров в Java.

Многие программисты часто путают, какие параметры в Java передаются по значению, а какие по ссылке. Давайте визуализируем этот процесс, и тогда вы увидите насколько все просто.

Начнем с основ.

Данные передаются между методами через параметры. Есть два способа передачи параметров:

Читать далее

Улучшение модификаторов видимости Java с помощью ArchUnit

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

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

К счастью, в Java есть нечасто используемый модификатор видимости package-private, который очень помогает скрыть нежелательные детали реализации. К сожалению, если количество внутренних классов велико, оно плохо масштабируется, но, к счастью, нам может помочь ArchUnit.

Читать далее

Обнаружение и удаление кода без ссылок с помощью ArchUnit

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

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

Читать далее

Собственный провайдер пользователей для Keycloak

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

Интегрируя Keycloak в уже существующую систему, высока вероятность столкнуться с необходимостью во время аутентификации загружать пользователей из древней базы данных, где информация о них может храниться в довольно причудливом виде. Такая задача решается созданием собственного провайдера пользователей (User Federation Provider в терминологии Keycloak). Ниже будет представлено краткое руководство по написанию такого провайдера.

Читать далее

Правильная архитектура MMO эмулятора

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

Предыстория/Мотивация


Все началось с хобби в начале 2020 года — с очередной попытки написания эмулятора игрового сервера Lineage 2 "по новому". Перед этим шагом было несколько попыток распиливания монолита существующих решений на рынке по новым практикам разработки, но затея оказалась тщетной, ибо те монолиты, которые и по сей день существуют и участвуют в так называемом "продакшен-пиратстве", имеют сильную связанность компонентов и решения поставленных задач, сопоставимые с началом 2000х годов, когда сфера только начинала развиваться. А самое главное, что монолит не заточен на построение распределенной архитектуры и, как следствие, обладает низкой эффективностью.


image


Было принято решение взять часть бизнес-логики (основной составляющей обработки действий игрока) из допотопных проектов эмуляторов и создать современный/масштабируемый эмулятор игрового сервера Lineage 2 Prelude Of War.

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

Чат-бот для электронной коммерции

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



Например, посетитель сайта что-то ищет и пользуется для этого чат-ботом, работающим на сайте или в мобильном приложении. Бот разбирает сообщение и, основываясь на имеющихся в нём ключевых словах, отвечает пользователю, выдавая ссылку на страницу с результатами поиска, среди которых пользователь может найти то, что ему нужно.

Бот, о котором пойдёт речь в этом материале, создан с использованием Java и Apache OpenNLP. Здесь мы поговорим о том, как боты разбирают сообщения пользователей, удаляя из них всё ненужное.
Читать дальше →

«Microsoft Coffee»: первоапрельский ответ на Java

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

На днях в интернете появился любопытный пост. Там утверждается, что в 1996 году несколько сотрудников Microsoft втайне от руководства устроили первоапрельский розыгрыш. Они распространили по магазинам Сиэтла коробки с несуществующим продуктом «Microsoft Coffee», намекающим на Java. Возник резонанс, на местном телеканале вышли новости, но PR-отдел и Билл Гейтс шутку не оценили. Поэтому компания пыталась вычислить организаторов, а публично всё отрицала и замяла историю, так что все эти 25 лет о ней никто не вспоминал.

История забавная, но есть нюанс. Опубликована она 1 апреля 2021 года. И возникает вопрос, как же всё на самом деле: действительно ли в 1996 году происходили описанные события, или подобного не было, а сам этот новый пост и есть первоапрельская шутка?

Если и шутка, то удивительно проработанная. Я собрал тут все подробности: и что сказано в посте, и какие есть аргументы за/против его подлинности.

Читать далее

Доказательное программирование

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

Внимание!


  • Содержание данной статьи никак не связано с докладом академика А. П. Ершова "Научные основы доказательного программирования" 1984г.
  • Статья содержит утверждения, способные вызвать вспышки гнева и неконтролируемой агрессии. За последствия автор статьи ответственности не несет!
  • В тексте упоминаются следующие языки программирования: Java, Swift, Kotlin, Scala, Go, Haskell и др.
  • Эта статья — антитезис. Автор ставит вопросы, но не считает своим долгом на все из них дать ответы.

В момент своего появления в Европе доказательная медицина казалась скандальной, неприятной и отвергаемой почти всем медицинским сообществом идеей. Даже в США, которые сейчас являются оплотом доказательной медицины, долгое время не хотели ее принимать. Основная мысль — докажи, что то, что ты собираешься сделать, реально поможет. Сейчас большинство назначений доктора делают исходя из приобретенных знаний и опыта. Но что если для некоторых ситуаций можно создать такой протокол лечения, следуя которому с болезнью сможет справиться даже неспециалист, и будет доказано, что этот протокол работает? Можно ли покрыть такими протоколами все известные недуги? Все, конечно же, нет, но какие-то — определенно, да.


И вот тут невольно возникает вопрос: не обошла ли медицина другую, казалось бы, не менее прогрессивную индустрию разработки программного обеспечения?

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

8 апреля — Backend stories meetup (онлайн)

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

Привет!

У нас через неделю очередной онлайн-митап, на этот раз для бекендеров. Будет 2 доклада от нас (Дмитрий @kruftik Гадеев и Роман Бледнов), а также доклад от Максима Степачева, разработчика GridGain.

Всё как всегда — онлайн, бесплатно, в 19.00 МСК, будет трансляция и запись, главное зарегистрируйтесь по ссылке заранее, чтобы мы смогли прислать вам все ссылки.

Программа под катом.

Читать далее

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

Книга «Java: быстрый старт»

Время на прочтение7 мин
Охват и читатели6.3K
image Привет, Хаброжители! Всегда хотели научиться программировать на Java, но не знаете, с чего начать? Или хотите быстро перейти с другого языка на Java?

Уже перепробовали множество книг и курсов, но ничего не подходит?

Серия «Быстрый старт» — отличное решение, и вот почему: сложные понятия разбиты на простые шаги — вы сможете освоить язык Java, даже если никогда раньше не занимались программированием; все фундаментальные концепции подкреплены реальными примерами; вы получите полное представление о Java: концепции объектно-ориентированного программирования, средства обработки ошибок, работа с файлами, лямбда-выражения и т. д.; в конце книги вас ждет интересный проект, который поможет усвоить полученные знания.
Читать дальше →

YAHW на React

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

Да, это еще один хелло-ворлд на React, которых уже много на сети. Зачем еще один? Здесь я попытался рассказать о создании простого приложения так, как хотел бы прочитать об этом в то время когда делал первые шаги на React, т.е стовсем недавно. Обратить внимание на то, что мне нужно было узнать сначала. Надеюсь начинающим пригодится, а продолжающие дадут свои замечания.

Читать далее

История о PostgreSQL 13, Testcontainers и багах

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

Привет, Хабр.

Несмотря на то, что на текущем месте работы взаимодействовать с PostgreSQL приходится значительно меньше, я продолжаю поддерживать свою библиотеку pg-index-health. Недавно я зарелизил версию 0.3.1, ключевой особенностью которой стала поддержка PostgreSQL 13.

Эта история началась достаточно давно, ещё в октябре 2020. В процессе мне пришлось отказаться от embedded версии СУБД в тестах, перейти на Testcontainers, столкнуться с ошибкой в PG13 и даже немного пообщаться в переписке с одним из разработчиков Постгреса... Но обо всем по порядку.

Читать далее

Управление памятью Java

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

Это глубокое погружение в управление памятью Java позволит расширить ваши знания о том, как работает куча, ссылочные типы и сборка мусора.

Читать далее

Effective Programs (10 Years of Clojure) — Rich Hickey (с русским переводом)

Время на прочтение61 мин
Охват и читатели2.8K
Всем привет!

Я сделал перевод и набил субтитры на доклад Рича Хикки — Effective Programs (10 Years of Clojure) — Эффективные программы (10 лет Clojure). Впервые на русском языке.

Доклад был представлен в 2017 году на конференции Clojure Conj.
Читать дальше →

Очумелые ручки: как мы пишем плагины для платформы Atlassian

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

Всем привет, я Java-разработчик в ЮMoney.

В этой статье я хочу поговорить о том, какой профит можно получить от оптимизации действующих в компании инструментов, почему это стоит делать и с чего лучше начинать. На примере стека Atlassian и Bitbucket-плагина, который мы используем в ЮMoney, я расскажу и покажу всё в деталях.

Поехали!

От монолита к модулям: как отстроены бизнес-процессы склада Lamoda

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

Привет! Меня зовут Евгений Рябышев, я разработчик в одной из команд направления Warehouse Management System (WMS) компании Lamoda. Я занимаюсь тем, что автоматизирую склад. В этой статье расскажу, как мы строим нашу модульную архитектуру.


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


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