Обновить
128K+

Java *

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

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

Enum-Всемогущий

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

Вводная


Очень часто, мы используем инструменты строго по назначению, запрещая себе делать шаг влево или вправо. Но что если мы немного 'забудемся'? Что, если мы посмотрим на привычные нам вещи под другим углом? В этой статье собраны подходы использования перечислений и проведен небольшой эксперимент над ними. Сарказм, юмор и немного филосовских вопросов. Кому интересно, добро пожаловать под кат.
Читать дальше →

Dagger 2. Часть третья. Новые грани возможного

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

Всем привет! Наконец-то подоспела третья часть цикла статей о Dagger 2!


Перед дальнейшим прочтением настоятельно рекомендую ознакомиться с первой и второй частями.


Большое спасибо за отзывы и комментарии. Я очень рад, что мои статьи действительно помогают разработчикам окунуться в мир Даггера. Именно это и придает силы творить для вас дальше.
В третьей части мы с вами рассмотрим различные интересные и немаловажные фичи библиотеки, которые могут вам очень пригодиться.


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


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


Итак, хватит разглагольствовать, и вперед к новым знаниям!

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

Управление светодиодной лентой WS2801 с использованием Raspberry Pi и iOS

Время на прочтение2 мин
Охват и читатели17K
Всем привет!
Эта статья содержит исходники приложения для операционной системы iOS, цель которого управление светодиодной лентой WS2801, подключенной к Raspberry PI.
Читать дальше →

Дедлайн конкурса Stepik Contest продлен до 31 марта, самое время создавать IT-задачи

Время на прочтение3 мин
Охват и читатели5.2K
Новогодние праздники и январь прошли очень быстро и вместо большого количества курсов для конкурса Stepik Contest команда Stepik получила множество запросов с просьбами продлить дедлайн. Мы решили продлить срок конкурса до 31 марта, а сейчас — подвести промежуточные итоги, ответить на вопросы и разъяснить все неочевидные моменты конкурса.

Итак, конкурс Stepik Contest, дедлайн 31 марта, чтобы выиграть от $2K до $10K, нужно создать 20+ задач по темам IT на платформе Stepik (adaptive.stepik.org).


Подробности про конкурс

Dagaz: эволюция вместо революции

Время на прочтение26 мин
Охват и читатели5.5K
imageВ этом мире того, что хотелось бы нам НЕТ!
Мы верим, что в силах его изменить ДА!
 
Юрий Шевчук
 
 
 
 
Те из вас, кто читал мои статьи, должны знать о том, что я, довольно давно, занимаюсь изучением метаигровой системы Zillions of Games. За всё это время, я разработал чуть менее полусотни игр и изучил эту платформу вдоль и поперёк. Моей целью является разработка аналогичной (а желательно более функциональной) системы с открытым исходным кодом. О ходе этой работы я и хочу рассказать.

Class'ные Class'ы

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

Вводная


Наверное, java-классы — это самая известная ее часть. Мы их используем каждый день, пишем их, правим их. Но есть много нюансов, о которых мы даже не догадываемся. И я люблю за это 'нашу' java — она всегда сможет оставаться загадочной, таинственной. Сегодня часть ее секретов падет к Вашим ногам. Здесь вы найдете необычные примеры кода, смешную историю и интересную статистику. Кому интересно, добро пожаловать под кат.
Читать дальше →

Однострочный калькулятор, искусство или порок?

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

Вводная


Как это часто бывает, когда Вы ищете работу, Вы проходите одно собеседование за другим. Где-то Вас выбирают, где-то Вы. И наверное, в жизни каждого из нас бывали интересные собеседования, о которых можно с удовольствием поведать публике. Я хочу рассказать об одной такой истории, где есть место эмоциям, панике, потоку мышления и вдохновению. Речь в статье пойдет о внутренних переживаниях соискателя, о его противостоянии с интервьюером, интересный и мозговзрывательный код на java, а также ответ на поставленный вопрос: 'Необычный код — искусство или порок?'. Вы сможете окунуться в свое прошлое и размять мозги. Если заинтриговал, тогда поехали.
Читать дальше →

Эстетическая красота: Switch vs If

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

Вводная


Как разработчики, мы каждый день сталкиваемся с кодом и чем больше того, который приходится нам по душе, мы видим, пишем, тем большим энтузиазмом проникаемся, тем более продуктивными и эффективными становимся. Да что там говорить, мы просто гордимся нашим кодом. Но одна дилемма не дает мне покоя: когда 2 разработчика смотрят на один и тот же код они могут испытывать совершенно противоположные чувства. И что делать, если эти чувства, эмоции, навеянные его эстетической красотой, не совпадает с эмоциями большинства окружающих Вас профессионалов? В общем, история о том, почему может не нравиться языковая конструкция switch на столько, что предпочитаешь if. Кому интересна эта холиварная позиция добро пожаловать под кат.
Читать дальше →

Три ветки продукта и контроль версий

Время на прочтение3 мин
Охват и читатели7.3K
В 2015 году, разрабатывая браузерную онлайн-игру, мы столкнулись со следующей задачей: сделать второй сервер с другими настройками и механиками игры, а также вести перспективную разработку новой версии игры, в которой будет еще больше изменений, при этом общий каркас у всех версий игры одинаковый. Дело осложняется тем, что игре требуются постоянные обновление и исправления, т.к. игровой процесс идет и останавливать его из-за разработки параллельной версии никак нельзя.
Читать дальше →

В поисках перформанса: мониторинг производительности JVM под Linux при помощи BPF

Время на прочтение6 мин
Охват и читатели10K
Специалист по низкоуровневой оптимизации приложений, Саша Гольдштейн, в рамках своего доклада на JPoint немного отклонится от привычной тематики .NET и расскажет об инструментарии, помогающем бороться за производительность Java приложений под Linux. Что это за инструмент, кому он нужен и зачем, мы решили узнать заранее и взяли у Саши интервью.

JUG.Ru Group: Расскажите, пожалуйста, пару слов о себе и своей работе?

Саша Гольдштейн: Меня зовут Саша Гольдштейн, последние 10 лет я работаю в израильской консалтинговой компании Sela в качестве CTO.
Моя работа сфокусирована на вопросах оптимизации производительности, диагностике на продакшн, мониторинге и всевозможных низкоуровневых задачах.
Моя типичная рабочая неделя наполнена самыми разными задачами: я преподаю, исправляю ошибки или проблемы производительности для клиентов, а также работаю над внутренними проектами. Также я вхожу в программный комитет пары конференций: нашей собственной SDP (Тель-Авив, Израиль), а также DotNext (Москва и Санкт-Петербург, Россия), что на удивление занимает довольно много времени.

«Производительность большинства приложений определяется не железом или средой исполнения» – Sasha Goldshtein о мониторинге производительности Java под Linux
Читать дальше →

Hibernate для начинающих

Время на прочтение2 мин
Охват и читатели188K
Я сталкивался (да и не только я) с проблемой развертывания Hibernate и решил попробовать осветить данную тему. Hibernate — это популярный framework, цель которого связать ООП и реляционную базу данных. Работа с Hibernate сократит время разработки проекта в сравнении с обычным jdbc.

Для новичка программирования настройка framework часто вызывает затруднения. Помощь комьюнити с освещением базовых проблем поможет начинающим осваивать языки программирования быстрее. Статья предназначена только для начинающих в Java, которые впервые развертывают hibernate. Я развертывал hibernate на базе лицензионной IDEA.
Maven framework для автоматизации сборки проекта на основе POM, позволяющая подключать из интернета зависимости, не скачивая библиотеки в проект. POM (project object model) -декларативное описание проекта. Копируем название библиотек в xml формате с сайта mvnrepository.com.
Читать дальше →

«При работе над инспекциями кода встречаешь Java-паззлеры каждый день»: Тагир Валеев о работе над IntelliJ IDEA

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


Одни знают Тагира lany Валеева по его докладам о Stream API, другие — по хабрапостам, третьи — по работе над статическим анализом кода (в проектах FindBugs и HuntBugs). А с августа он работает в JetBrains над IntelliJ IDEA, и это на многое повлияло: анализом кода он теперь занимается именно там, и его следующий доклад (на приближающихся JPoint и JBreak) будет как раз о создании инспекций кода в IDEA. Мы расспросили Тагира о том, каково разрабатывать проект, в котором разрабатывают всё остальное.
Читать дальше →

Начинается разработка OpenJDK 10

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

Сегодня Mark Reinhold объявил об открытии репозиториев mercurial для Java 10, и разработчики, имевшие статус committer и выше в проекте Java 9, получили возможность размещать багфиксы и мелкие улучшения, которые не предполагается вносить в Java 9. Всем разработчикам (например, мне) обновили статус на страничке переписи OpenJDK.


Крупные изменения вносить пока не рекомендуется во избежание конфликтов. Изменения в Java 9 ещё не завершены и некоторое время придётся их переносить в Java 10. При отсутствии конфликтов процедура будет автоматизирована, так что тем, кто продолжает вносить исправления в Java 9, скорее всего не придётся лишний раз беспокоиться.

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

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

Обнаружение дефектов кода типа «Expression Issues» (CWE-569)

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

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


В рамках этой серии рассматриваются наиболее часто встречающиеся дефекты в программном коде, которые могут привести к серьезным уязвимостям. В этой статье мы остановимся на широком классе дефектов типа "Expression Issues" и рассмотрим их на примерах на языках PHP и Java.



В международной классификации CWE данный тип дефектов известен как CWE-569: Expression Issues. К нему относятся различные ошибки в логических выражениях в коде программы. Частным случаем дефекта такого класса является дефект «Присваивание вместо сравнения».


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

Разработка JDK 9 прошла фазу «Feature Complete»

Время на прочтение2 мин
Охват и читатели11K
Марк Рейнхольд (Mark Reinhold) главный архитектор платформы Java в Oracle на днях сообщил в рассылке что разработка JDK 9 прошла фазу «Feature Complete».
image

Что значит, что добавление новой функциональности в проект приостановлено и теперь необходимо сконцентрировать усилия сообщества разработчиков на исправлении ошибок.
Читать дальше →

Java примеры из книг и документации

Время на прочтение21 мин
Охват и читатели21K
Набор примеров составленных из книг и документации. PDF + Исходники
Java books and internet samples by padaboo I.B Aleksandrov

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

Манифест архитектурной боли

Время на прочтение3 мин
Охват и читатели11K
Всем привет! Это будет необычная статья. Это будет статья-манифест! Манифест архитектурной боли! Хватит это терпеть, хватит это держать в себе. Возьми и скажи все, что думаешь об архитектуре. Все, что думаешь о «чистой архитектуре»! Все, все, все! От начинающих до неудержимых гиков.

Все под кат!

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

Анализ доклада Баруха Садогурского с JPoint 2015

Время на прочтение6 мин
Охват и читатели7.7K
Созрел ещё один разбор, в этот раз смотрим доклад Баруха jbaruch Садогурского «Как писать асинхронные многопоточные http-приложения» с JPoint 2015:


Слайды тут.

Про Java только разбираемый доклад, а не сама статья.

Закон Деметры

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

Введение


На данный момент существует множество доказанных временем практик, помогающих разработчикам писать хорошо поддерживаемый, гибкий и удобно читаемый код. Закон Деметры — одна из таких практик.
Читать дальше →

Сериализация данных: тест производительности и описание применения

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

Сериализация (Serialize, в последующем «сохранение») – это процесс сохранения данных объекта во внешнем хранилище.
Эта операция работает в паре с обратной – восстановлением данных, называемой десереализацией (Deserealize, в последующем «восстановление»).


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


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


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


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