Обновить
512K+

Java *

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

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

Собираем Docker контейнер с http сервером при помощи Gradle

Время на прочтение3 мин
Охват и читатели22K
imageПривет Хабр!

Возникла такая задача: Сделать простой web — сервер с минимальным числом зависимостей. При этом деплоиться он будет в виде docker контейнера. Для реализации самого сервера буду использовать GrizzlyWebServer. Для сборки Gradle c плагином для docker от Benjamin Muschko (bmuschko).

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

И так, начнем: сервер.
Читать дальше →

Сколько места в куче занимают 100 миллионов строк в Java?

Время на прочтение4 мин
Охват и читатели29K
При работе с естественным языком и лингвистическом анализе текстов нам часто приходится оперировать огромным количеством уникальных коротких строк. Счёт идёт на десятки и сотни миллионов — именно столько в языке существует, к примеру, осмысленных сочетаний из двух слов. Основной платформой для нас является Java и мы не понаслышке знаем о её прожорливости при работе с таким большим количеством мелких объектов.

Чтобы оценить масштаб бедствия, мы решили провести простой эксперимент — создать 100 миллионов пустых строк в Яве и посмотреть, сколько придётся заплатить за них оперативной памяти.
Читать дальше →

Как мы придумали и сделали свою первую игру на Android. Часть 1: Механика игры

Время на прочтение5 мин
Охват и читатели26K
Всем привет! Мы два новоиспеченных разработчика мобильных игр, бывшие одноклассники, выпускники Казанского федерального университета, Айдар и Эд.

Айдар: «История нашей игры «Syncomania» началась с того, что мне приснился странный сон. Он представлял собой компьютерную игру, где на квадратном поле синхронно передвигались четыре белых шарика. Когда первый из них вырвался за пределы игрового поля, я проснулся. Наутро я позвонил Эду, а уже в обед мы встретились во дворе университета, где я работал».

Эд: «Какой программист не мечтал сделать свою игру? Летом 2014-го у меня было много свободного времени, и я с радостью ухватился за эту идею. Тогда мы и представить себе не могли, с какими трудностями мы столкнемся».

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

Итак, на входе у нас была одна простая идея — игрок одним движением управляет четырьмя героями.
Читать дальше →

«Делали микросервисы до того, как это стало мейнстримом»: Сбербанк-Технологии о разработке

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


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

На конференциях спикеры «Сбертеха» рассказывают как непосредственно о своём опыте, так и об общих выводах, которые можно из него сделать. Но в формат докладов укладывается не всё, и накануне Joker мы отдельно задали вопросы троим сотрудникам компании, выступающим на Java-конференциях. Нам ответили:

  • Сергей vlsergey Владимиров (выступит на Joker 2016, ранее выступал на JPoint)
  • Александр Маторин (выступал ранее на Joker, JPoint и JBreak)
  • Максим Зелинский (выступал ранее на JPoint и JBreak)

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

«Любое техническое изменение должно отвечать на вопрос «зачем?» — Одноклассники о Java и не только

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


Как в Одноклассниках использование sun.misc.Unsafe сочетается с повышенными требованиями к надёжности? Почему там дорабатывали систему мониторинга Cacti? Как работа в ОК пересекается с научной деятельностью? Если соцсеть называется «Одноклассники», то состоит ли весь её Java-код из одного класса?

Ответы на эти и другие вопросы — в нашем посте. В преддверии Joker, где сразу трое сотрудников ОК будут спикерами, а ещё один участвует в программном комитете, мы расспросили всех четверых — и не только их. На наши вопросы ответили:

  • Олег Анастасьев, ведущий разработчик (участник программного комитета Joker 2016)
  • Андрей Паньгин, ведущий разработчик (спикер Joker 2016)
  • Виталий Худобахшов, ведущий аналитик (спикер Joker 2016)
  • Дмитрий Бугайченко, инженер-аналитик (спикер Joker 2016)
  • Андрей Губа, заместитель технического директора
  • Кристина Штейнберга, руководитель отдела персонала

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

Подсаживаем на Java-хардкор: Бесплатная трансляция трека Joker 2016 без купюр

Время на прочтение2 мин
Охват и читатели13K
Joker 2016 начнётся уже завтра, и мы с нетерпением ждём момента, когда почти тысяча Java-разработчиков соберётся под одной крышей. Хотя в этот раз прикоснуться к прекрасному можно будет из-под тысяч крыш: впервые в истории JUG.ru Group мы делаем открытую live-трансляцию одного из треков конференции! Без купюр и СМС.



Сразу предупреждаем: записи видео, как и раньше, мы выложим где-то через полгодика после конференции, так что если вам интересно — смотреть надо завтра-послезавтра в online! Как это сделать, какие доклады будут транслироваться открыто, что делать, если захочется посмотреть все доклады, и зачем мы вообще всё это делаем — читайте под катом.
Читать дальше →

Отзыв на книгу Growing Object-Oriented Software, Guided by Tests

Время на прочтение13 мин
Охват и читатели15K
Эта статья — ревью на книгу «Growing Object-Oriented Software, Guided by Tests» (GOOS для краткости). В ней я покажу, как можно имплементировать проект-пример из книги без использования моков (mocks).

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

Версия на английском: ссылка.
Читать дальше →

«Обучаем специалистов всех уровней»: EPAM о Java-разработке и конференциях

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


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

В преддверии конференции Joker, на которой EPAM будет активно присутствовать, мы задали сотрудникам компании вопросы о Java-разработке и всём, что вокруг неё. Нашими собеседниками стали:

  • Марианна Округина, директор офиса в Санкт-Петербурге
  • Алексей Зиновьев, тренер по Java/Big Data (спикер Joker 2016 и не только)
  • Вячеслав Лапин, senior developer (спикер Joker 2015 и не только)
  • Полина Панюкова, специалист по маркетингу

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

[Питер] Встреча с Gil Tene из Azul Systems про время отклика приложений

Время на прочтение1 мин
Охват и читатели2.1K
В среду, 12 октября, в 20:00 в питерском офисе компании Luxoft состоится встреча JUG.ru с Гилом Тене, CTO компании Azul Systems. Тема встречи — время отклика приложений (latency, responsiveness). Язык встречи — английский.


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

Приглашаем на Java-конференцию Joker 2016, которая состоится 14 и 15 октября в Санкт-Петербурге

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

Лучшие спикеры из России, США и Европы приедут, чтобы поделиться с вами своими мыслями и идеями.


На конференции 14 октября издательство «Питер» представит книги по IT, которые можно будет приобрести по издательской цене.


Это будет уже четвертый Joker в Питере. Спикеров и докладов, спонсоров и стендов, участников и экспертов будет больше, чем в прошлые разы, поэтому каждому пришедшему будет чем заняться!

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

Как спасти принцессу, используя 8(+45) языков программирования, в пятницу

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


У вас есть JavaScript. Вы тратите несколько часов на сбор библиотек, настройку node и постройку фреймворка для замка. К тому времени, как вы разберетесь с фреймворком, форт уже будет заброшен, а принцесса переберется в другой замок.



У вас есть С. У вас есть библиотека для замка и для принцессы. В атаку! Вы спасаете принцессу, ее собаку, весь ее гардероб и всё, что она когда-либо съела. Fuck, неужели я забыл null-terminator?

Зачем вскрывать черный ящик JVM — Интервью с Charles Nutter, JVM-разработчиком из Red Hat

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


Осень – отличное время для встречи со старыми друзьями, поездок на конференции, прогулок по паркам. Многие уже вернулись из отпусков с новыми впечатлениями, идеями, готовые делиться ими, общаться с окружающими. Наше сегодняшнее интервью не о путешествии, хотя, несомненно, погружение в мир Java тоже можно назвать таковым. Разговор пойдет о JVM. Наш собеседник – Charles Nutter, разработчик JVM в Red Hat, ведущий инженер проекта JRuby.

Итак, запасаемся кофе и начинаем.

— Наше тема сегодня – это JVM и ее «тёмное» содержимое. Charles, скажите, когда для вас JVM перестала быть загадкой?
Читать дальше →

«Команда разработки — самодостаточный организм»: SEMrush о Java и свободе выбора

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


SEMrush выделяется в ряду спонсоров Joker сразу по нескольким причинам. Во-первых, направлением деятельности: компания разрабатывает платформу для маркетологов. Во-вторых, при участии компании в Java-конференции её CTO Олег Краснов известен любовью к C. В-третьих, для неё этот Joker станет первым.

Из-за всего этого только интереснее было расспросить и о том, как в компании обстоят дела с Java, и о подходе к разработке в целом, и об ожиданиях от конференции. Вот с кем мы пообщались:

  • Елена Даниленко, HR generalist
  • Олег Краснов, CTO
  • Анатолий Чичиков, старший Java-разработчик
Читать дальше →

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

Стрелки как подход к представлению систем на Java

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

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


В статье рассматривается подход к представлению структурных схем с использованием концепции стрелок (arrows), описанных Джоном Хьюзом и нашедших применение в Haskell в FRP-фреймворках Yampa и Netwire, а также в XML-фреймворке Haskell XML Toolbox.


Особенностью структурных схем является наглядное представление последовательностей операций (блоков) без акцентирования внимания на самих обрабатываемых данных (переменных) и их состояниях. Для примера рассмотрим радиоприёмник прямого усиления


структурная схема приёмника


Как же реализовать такой способ описания систем и вычислений в рамках существующих мейнстримовых языков программирования?

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

Разбор задач заочного тура школы программистов HeadHunter 2016. Часть 1

Время на прочтение5 мин
Охват и читатели16K
Всем доброго времени суток! 30 сентября закончился прием заявок в школу программирования HeadHunter 2016. В этой статье я хотела бы разобрать задачи заочного этапа. Надеюсь, что моя статья будет полезной, учитывая, что при решении задач пришлось посетить не один десяток сайтов. Я имею небольшой опыт в программировании, поэтому я не утверждаю, что мое решение единственно верное. Всегда буду рада услышать Вашу критику!
При решении задач используется язык программирования Java.
Читать дальше →

100% онлайн-авиапроездной или Как укротить систему бронирования

Время на прочтение8 мин
Охват и читатели8.2K
Путешествие между Петербургом и Москвой за последние годы из события превратилось в рутинную задачу. Кто-то еженедельно мотается из Питера в Москву или наоборот на работу, по работе. У кого-то там девушка, родители, друзья… Перелет на самолете занимает чуть больше часа. Между двумя столицами в день летают более 40 рейсов.

Да и не только Москва и Питер генерируют постоянный трафик. Появляются и другие экономические и культурные центры. В Казань летает свыше 10 рейсов в день. В Краснодар – более 20.

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



Сегодня расскажем, как реализовали онлайн-покупку, оформление и изменение билетов в рамках авиапроездного или multipass. И дали активно путешествующим возможность курсировать между городами максимально легко. Если вам интересны технические аспекты укрощения систем бронирования, или вы один из путешественников – наша статья для вас.
Читать дальше →

Преобразование Method Reference в Method в языке Java

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

Представьте, что есть у нас объект Function<A, B> foo = SomeClass::someMethod; Это лямбда, которая гарантированно является ссылкой на не статический метод. Как можно из объекта foo достать экземпляр класса Method, соответствующий написанному методу?


Если в кратце, то никак, информация о конкретном методе хранится исключительно в байткоде (всякие там инструментации я не учитываю). Но это не мешает нам в определённых случаях получить желаемое в обход.


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

Docker in production: «Когда ты это кушаешь, тебе, как минимум, не противно, особенно если знаешь, как готовить»

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


Идея контейнеризации появилась уже давно, однако Docker оказался первой технологией, которая смогла достичь массовой популярности. О том, почему это случилось, насколько Docker «повзрослел» за 3 года, а заодно о том, когда можно перестать волноваться и начать использовать Docker в своем production приложении, мы поговорили с нашими экспертами:

Александр aatarasoff Тарасов — Software Architect в Альфа-Лаборатории. В настоящее время внедряет микросервисную архитектуру и двигает направление DevOps, а больше года назад рассказывал про свой опыт внедрения Docker в Альфа-Банке.

Docker in production: Нельзя использовать инструмент только потому, что он модный


– Почему вы стали использовать Docker?
Читать дальше →

RetroBase — аналог Retrofit для запросов к базам данных

Время на прочтение6 мин
Охват и читатели8.5K
Многие разработчики, используют в своих проектах библиотеку Retrofit, которая позволяет превратить HTTP API в java-интерфейс. Это очень удобно, так как позволяет избавиться от лишнего кода и использовать ее очень легко. Нужно лишь создать интерфейс и навесить несколько аннотаций.

Недавно я занимался разработкой приложения для Android, которому необходимо было делать запросы к базе данных через JDBC- драйвер. Тогда мне пришла идея создать нечто подобное Retrofit только для запросов к базе данных. Так появился RetroBase, о котором я Вам сейчас и расскажу.
Читать дальше →

«Во всех проектах делали именно то, что считали нужным»: Luxoft о Java и не только

Время на прочтение8 мин
Охват и читатели13K
В преддверии Joker 2016 продолжаем серию текстов о тех компаниях, в жизни которых Java-разработка точно играет большую роль: спонсорах Joker. В Luxoft нам ответили на очень разные вопросы — от того, какие Java-технологии используют чаще всего, до того, почему предубеждения по поводу аутсорс-разработки неверны.



Нашими собеседниками стали:

  • Олег Золотых, управляющий директор Luxoft Russia
  • Михаил Дружинин, архитектор и лидер архитектурного комьюнити (а также спикер HolyJS 2016)
  • Максим Сячин, Java-разработчик (а также спикер Joker 2016)
  • Анастасия Тихомирова, специалист по маркетингу
Читать дальше →