TechCave

Описание сайта

Основная информация

Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно транслируются в специальный байт-код, поэтому они могут работать на любой компьютерной архитектуре, с помощью виртуальной Java-машины. Дата официального выпуска — 23 мая 1995 года.

Рейтинг: 1
Создана 4 года назад
Владелец root

Стена группы

Загрузка...
1 год назад
#

Первый контакт с «var» в Java 10



Представляю вашему вниманию перевод статьи First Contact With ‘var’ In Java 10 автора Nicolai Parlog.

image

Java 10 будет выпущен 20 марта 2018 года, и все фичи, которые должны быть в этом релизе, уже объединены в основную ветку разработки. Одним из самых интересных нововведений Java 10 безусловно является вывод типа локальной переменной (
JEP 286). Это дает вам возможность сократить объявления переменных используя новое ключевое слово
var:

var users = new ArrayList<User>();


И это все, спасибо за внимание!

Нет, я уверен, что вам интересно узнать больше. Под катом я расскажу, где применяется
var, а где нет, как это влияет на читаемость кода и что произошло с
val.

Источник
1 год назад
#

Telegram-бот в качестве подарка



Привет, Хабр! Сегодня я хочу рассказать о том, как писал Telegram-бота, да не простого, а подарочного. Прошу под кат тех, кому эта история кажется забавной, а также тех, кто пытается писать своих Telegram-ботов на Java. Возможно, мой небольшой опыт будет в чем-то полезен.

Источник
Den
1 год назад
#

Simula — 50 лет ООП



Статья представляет собой очень краткое введение в Simula.

Simula ((SIMIUlation LAnguage) ), первый язык программирования с классами и объектами, незаслуженно почти забытый, но из которого выросло современное ООП в том виде, в котором оно присутствует в нашем коде. Это язык для имитационного моделирования реальности. Разработчики новых языков программирования «оглядывались» на Simula при добавлении механизмов объектно-ориентированного программирования в свой язык. Однако Simula упоминается настолько редко, что в русской википедии на момент публикации был только хеллоуворд, а в сети куча устаревших ссылок.



Бьерн Страуструп, говоря о причинах создания C++, сказал так: «Этот язык возник потому, что автору потребовалось написать программы моделирования, управляемые прерываниями. Язык SIMULA-67 идеально подходит для этого, если не учитывать эффективность.»

Источник
1 год назад
#

К вопросу о принципах работы асинхронных решений



Предлагаем вашему вниманию отличное новогоднее чтение для программистов smile Статью
Александра Чистякова (
alexclear ), которую тот написал, вдохновившись тезисами доклада
Mons Anderson (
codesign ) на HighLoad++ 2017.

Александр Чистяков

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

Для того, чтобы классифицировать существующие решения, придумаем сначала оси координат. С точки зрения инженера-разработчика "
синхронная" и "
асинхронная" парадигмы основаны на абстракциях, различающихся как сложностью применения, так и «эффективностью» (что такое «эффективность», нам еще предстоит определить).

Осторожно, под катом
жёсткий хардкор!

Источник
Den
1 год назад
#

Создание дистрибутивов для разных операционных систем в Java 9 и 10



В статье рассказывается о построении полноценных дистрибутивов для
Windows,
macOS и
Linux стандартными средствами
Java 9 и
10.

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

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



Источник
1 год назад
#

Подключаем Swagger модуль в Play Framework



Documenting Play Framework using Swagger

Оригинальный источник по настройке swagger-модуля



Play Framework — это MVC веб-фреймворк для языков программирования Java и Scala от компании ранее называемой Typesafe, а нынее Lightbend.



сайт:



Play Framework

статья с Хабра:



Впечатления от работы с Play! Framework 2.1 + Java

wiki



Play (фреймворк)

записки программиста



Play Framework — все, что вы хотели о нем узнать, но почему-то боялись спросить

Swagger — это целая множество инструментов, на протяжении всего жизненного цикла разработки API, от дизайна и документации, до тестирования и развертывания.



сайт:



Swagger

статьи с Хабра:



Документирование #микросервисов
3 лучших инструмента для описания RESTful API

wiki:



OpenAPI
Swagger (software)


Источник
Den
1 год назад
#

Servlet 4.0: Делаем больше быстрее. Server Push



Всем доброго и постепенно наступающего!

До окончания этого года остаётся не так уж и много времени, но мы ещё похоже успеем запустить два курса, одним из которых будет курс по
Java EE. Так что держите первую часть заметок по Servlet 4.0

Новый крупный релиз API Servlet охватывает протокол HTTP/2 и прогнозирует потребности в ресурсах.


Долгожданное обновление для Java EE 8 включает в себя обновления существующих API: JAX-RS 2.1, Bean Validation 2.0, JavaServer Faces (JSF) 2.3, Contexts and Dependency Injection (CDI) 2.0, JSON with Padding (JSONP) 1.1 и Servlet 4.0, а также два новых API: JSON-Binding (JSON-B) и Java EE Security. Среди этих API, Servlet 4.0 представляет собой достаточно крупное обновление, первое с 2009 года.

Импульс, который вызвал этот большой релиз (а не точечное обновление), — это глобальное развертывание протокола
HTTP/2 и множество новых возможностей, которые он приносит. Это обновление для HTTP является первым за почти 20 лет и устраняет многие недостатки HTTP 1.x. Новые возможности многочисленны (мультиплексирование запросов/ответов, сжатие заголовков, приоритизация потоков и push-сервер), но наиболее заметной функцией для пользователей Servlet API является Server Push, о котором я расскажу в этой статье.

Server Push — это не единственное примечательное дополнение к Servlet 4.0. Этот релиз также представляет усовершенствования в виде Servlet Mapping API, который поддерживает распознавание URL-отображений во время выполнения, за счет улучшений получения ссылочных путей. В этой статье обсуждаются эти функции, и как Server Push был интегрирован в API JavaServer Faces 2.3.



Источник
1 год назад
#

Один день в Альфа-Лаборатории: Java-разработка





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

Думали сделать один «фулл-стековый» текст, но материала набралось столько, что пришлось делить его на части. И сейчас перед вами «утренняя» первая часть, в которой пообщались с Java-разработчиками
Максимом Гореликовым и
Кириллом Толкачёвым. Оба они как раз недавно выступили на нашей конференции Joker.

Источник
1 год назад
#

JUnit тесты для логирования



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

Но когда корректность вывода в лог становится критичной или же чувство прекрасного требует от нас полного покрытия кода тестами — без тестирования логгеров становится не обойтись.

Источник
1 год назад
#

Как я осознал, что такое распределенные системы



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

В скором времени у нас выходит изысканная новинка для разработчиков высшего класса — "
Реактивные шаблоны проектирования".

Автор книги Роланд Кун — звезда первой величины в области распределенных систем, один из разработчиков Akka. Под катом предлагаем перевод его программной статьи о распределенных системах и акторной модели, размещенной на сайте GitHub

Источник
1 год назад
#

Идеальный мавен. Часть 2: структура проекта



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



Источник
1 год назад
#

Дебаты об отличном сервере приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile. Часть вторая



Всем доброго! Как и обещали, вторая часть перевода статьи по теме
Java EE. Первую часть можно увидеть
тут.

ОПЕРАЦИЯ ПОД ПРИКРЫТИЕМ

Надеемся, вы не только сейчас поняли, что бюджет равен 0, и вообще вас покорил WebLogic wink До сих пор, мы рассматривали темы, значимые на начальных этапах, во время изучения серверов приложений. Теперь же посмотрим чуть глубже на каждый сервер, чтобы понять, отвечает ли он реальным задачам разработчика:

  • Настоящие показатели производительности;

  • Функционал и Соответствие Open Standards;

  • Администрирование и Управление/UI;

  • Стоимость $$$/Лицензия.



Читайте дальше, уже скоро мы определим, какой сервер приложений лучший из лучших!

Настоящие показатели производительности

Знали ли вы, что Lamborghini Gallardo LP570-4 Superleggra 2011 г. выпуска разгоняется от 0 до 60 км/ч всего за 2.8 с, а Dodge Viper Hennessey Venom GT делает это за целых 2.9 с? Думаю, водителям Viper ооочень скучно ждать, пока их машина разгоняется до 60!



Источник
1 год назад
#

Java EE


Java EE 13: Servlets 13: Cookies



Java EE 14: Servlets 14: Session



Java EE 15: Servlets 15: Асинхронные сервлеты



Java EE 16: JSP 1: Что такое JSP

1 год назад
#

Алексей Шипилёв — Shenandoah: сборщик мусора, который смог (часть 1)


Этот доклад во многом повторяет доклад Алексея с JPoint 2017:

Если вы его уже слушали или смотрели видеозапись, то нового увидите мало, хотя многое наверняка будет лучше объяснено. Этот доклад является обязательным пререквизитом к докладу на Joker 2017 с тем же названием и припиской "… (часть 2)".

Одна из главных проблем больших Java-приложений — это cбо… рка мусо… ра. Хранение больших куч данных, активно фрагментирующие приложения и прочие выпадающие из гипотезы о поколениях нагрузки приносят ещё больше проблем. Промышленные GC давно решили первую большую часть проблемы сборки, concurrent marking — выяснение графа объектов без долгой остановки приложения.

Shenandoah — новый сборщик мусора, который пытается решить вторую большую часть головоломки, а именно перемещение объектов без остановки приложения, тем самым сбивая паузы ещё больше. Этот доклад об особенностях дизайна и реализации Shenandoah, достоинствах, которыми можно гордиться, и недостатках, с которыми приходится мириться.

Den
1 год назад
#

Что я узнал после 1000 code review



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

Вот мои 3 (+1 бонусная) наиболее распространенные рекомендации по код-ревью.

image

Рекомендация 1: Выбрасывайте исключения, если что то идет не так

Зачастую паттерн выглядит так:

List<String> getSearchResults(...) {
  try {
    List<String> results = // make REST call to search service
    return results;
  } catch (RemoteInvocationException e) {
    return Collections.emptyList();
  }
}


Этот паттерн вызвал перебои в одном из мобильных приложений, над которыми я работал. Поиск на стороне сервера, который мы использовали, начал выбрасывать исключения. Оказалось, на серверном API приложения был некоторый код, похожий на приведенный выше. Поэтому приложение получало 200 ответ сервера и с радостью показывало пустой список для каждого поискового запроса.

Источник
10 11 13 14

Авторизация

Войти с помощью

Пользователи

GeekBrains

КАРКАМ

Нетология