JAVA — TechCave

Java — строго типизированный объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle).

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

Стена группы

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

Компилируем Kotlin: JetBrains VS ANTLR VS JavaCC





Насколько быстро парсится Kotlin и какое это имеет значение? JavaCC или ANTLR? Годятся ли исходники от JetBrains?

Сравниваем, фантазируем и удивляемся.

Источник
Загрузка...
3 дня назад
#

Исходный код OpenJDK содержит слишком много бранных слов



Именно с таким заголовком был создан тикет в багтрекере исходников Java:

https://bugs.openjdk.java.net/browse/JDK-8215217

Автор считает, что наличие разнообразной бранной лексики в OpenJDK/JDK исходниках мешает профессиональному сообществу, если не в целом, то как минимум некоторым индивидуумам. Всего автор насчитал 12 экземпляров подобного рода «багов».

Цитата:

There are many instances of swear words inside OpenJDK jdk/jdk source, scattered all over the place.
As OpenJDK is used in a professional context, it seems inappropriate to leave these 12 instances in there, so here's a changeset to remove them.


Автор
приложил changeset с заменой нецензурной брани на цензурную. Список привожу целиком:

Источник
Загрузка...
Den
3 дня назад
#

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



Йода: Мастер Квай-Гон, есть что еще сказать тебе?
Квай-Гон Джин: С вашего позволения, магистр. Я обнаружил точку сосредоточия Великой Силы.
Йода: Сосредоточия, сказал ты?
Мэйс Винду: Внутри живого существа?
Квай-Гон Джин: В мальчике. Его клетки содержат высочайший уровень мидихлориан из всех, что я видел. Вероятно, он был зачат мидихлорианами.
Мэйс Винду: Ты намекаешь на пророчество об Избранном, который привнесет баланс в Силу. Ты веришь, что это тот мальчик?
Звёздные войны. Эпизод I. Скрытая угроза.



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

Темная сторона Силы скрывает все. Предвидеть невозможно наше будущее…

Защитил я свой красный диплом на тему беспилотной авиации и решил внедрить свой беспилотник, который я же сам и «надипломил». К тому времени я уже полтора года работал инженером-конструктором в отделе аэродинамики ОКБ (опытно-конструкторского бюро). Эх, знал бы я заранее, как быстро меня «приземлят» вместе со всеми моими амбициями и хотелками… В общем, осознал я суровую реальность и продолжил тихо работать в тряпочку.

Романтика работы рядового инженера обычно заключается в расчетах, отчетах, перерасчетах, в вечном переделывании, вплоть до потери связи с реальностью. У нас даже у начальника была забавная печать «Все *ня. Переделать!» И все бы ничего, но меня стал дико угнетать тот факт, что вот ты колдуешь-колдуешь годами, а результата-то нема! Нет четкого группового мозгового взаимодействия — половина работы, которую мы делаем, оказывается ненужной. Отсюда и вечные переработки, и выходы в выходные. Ну и как-то нет той «советской», общей идеи и желания руководства обогнать «клятые штаты». А ведь главный мотиватор в опытном проектировании — общая идея.

Источник
Загрузка...
5 дней назад
#

Пример использования Java-библиотеки для создания Telegram-бота



Каждый разработчик (и не только), который использует Telegram в повседневной жизни, хотя бы раз задумывался о том, каково это — создать своего бота, на сколько это сложно и какой язык программирования лучше использовать.



Источник
Загрузка...
5 дней назад
#

Devops, JUnit5 и тестирование микросервисов: субъективный взгляд на московский “Гейзенбаг”





6-7 декабря в Москве состоялась пятая по счёту конференция «Гейзенбаг».

Её слоган — «Тестирование. Не только для тестировщиков!», и за два года регулярного посещения «Гейзенбагов» мне (прежде Java-разработчику, ныне — техническому лиду в маленькой компании, никогда не работавшему в QA) удалось многому научиться тему тестирования и многое внедрить в нашей команде. Я хочу поделиться субъективным обзором запомнившихся мне на этот раз докладов.

Источник
Загрузка...
Den
5 дней назад
#

Разбираем лямбда-выражения в Java



image



От переводчика: LambdaMetafactory, пожалуй, один из самых недооценённых механизмов Java 8. Мы открыли его для себя совсем недавно, но уже по достоинству оценили его возможности. В версии 7.0 фреймворка CUBA улучшена производительность за счет отказа от рефлективных вызовов в пользу генерации лямбда выражений. Одно из применений этого механизма в нашем фреймворке — привязка обработчиков событий приложения по аннотациям, часто встречающаяся задача, аналог EventListener из Spring. Мы считаем, что знание принципов работы LambdaFactory может быть полезно во многих Java приложениях, и спешим поделиться с вами этим переводом.



В этой статье мы покажем несколько малоизвестных хитростей при работе с лямбда-выражениями в Java 8 и ограничения этих выражений. Целевая аудитория статьи — senior Java разработчики, исследователи и разработчики инструментария. Будет использоваться только публичный Java API без com.sun.* и других внутренних классов, поэтому код переносим между разными реализациями JVM.



Источник
Загрузка...
5 дней назад
#

Радость Haxe. Роман с обделенным вниманием языком программирования



Привет, Хабр! Представляю вашему вниманию перевод статьи
The Joy of Haxe. FontStruct’s love affair with a neglected programming language.

Логотип Haxe в редакторе шрифтов FontStruct

Довольно грубая попытка воспроизвести логотип Haxe в редакторе шрифтов FontStruct

Недавно мы открыли исходный код наиболее важной части нашего модуля для создания шрифтов. Это библиотека
fonthx для создания TrueType-шрифтов, и написана она на
Haxe.

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

Источник
Загрузка...
Den
9 дней назад
#

Spring + Firebird + REST. Часть 1 Конфигурирование проекта



Вместо вступления

Если разбираешь что-то, попробуй это описать понятным языком и найти того, кто прочитает и выступит с замечаниями (перефразировал Р.Фейнмана, таки да я это сделал).
Все комментарии, даже злобные в стиле «Да, что этот ~белый~~чел. себе позволяет» приветствуются.



Цели

Приложения — отображение отчетов о ходе продукта (весы) по возможности с раздачей этих данных по сети в пределах предприятия (для функционала);
Личная — немного разобраться в технологии spring



Технологии

  • Spring Web

  • Spring JPA

  • Lombock
    • Thymeleaf


  • SpringFox Swagger (буду тестить рест на нем)

  • jaybird-jdk17, версия 3.0.5

  • Maven



Мотивация запилить spring+firebird

Недавно было сделано первое клиентское место под ОС Linux Mint для оператора «Овсезавода» и не всегда адекватная работа отображения отчетов из под Wine. (все остальное работает норм — визуализация Qt — SCADA, архивы Java SE).



Некоторые грабли на которые пришлось наступить

  1. jackson зависимости разных версий (исправлено),

  2. firebird не установленный тип кодировки ведет к default (ной) NONE,



Ссылка на git в конце публикации .



Источник
Загрузка...
Den
9 дней назад
#

Spring Boot решение задачи с ManyToMany





Статья адресуется тебе, бредущему во мраке ночи. Тебе, чей путь освещают лишь одинокие светлячки. В общем, программисту, изучающему Spring Boot и отношение ManyToMany в Hibernate.

Делал тестовое задание на отвлеченную музыкальную тему: написать сервис для хранения данных о музыкантах, песнях, альбомах, используя Java, Spring, Hibernate. Частью задания было создание классов «Композиции» и «Исполнители». Композицию могут исполнять многие исполнители, и исполнитель может исполнять многие композиции. Типичное bidirectional отношение ManyToMany.

На курсах Khasang рассказывали, как избежать зацикливания rest запросов на Spring с помощью DTO класса, но Spring Boot это другая история. На русскоязычных сайтах видел ответы типа «Да это все элементарно», но без конкретных пояснений. Приведу пример решения этой задачи. Полный код размещен на гитхабе, ссылка внизу.

Источник
Загрузка...
9 дней назад
#

Как обрабатывать ошибки на JVM быстрее



Существуют различные способы обработки ошибок в языках программирования:



  • стандартные для многих языков исключения (Java, Scala и прочий JVM, python и многие другие)

  • коды статуса или флаги (Go, bash)

  • различные алгебраические структуры данных, значениями которых могут быть как успешные результаты так и описания ошибок (Scala, haskell и другие функциональные языки)



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



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



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



UPDATE: к сравнению добавлены исключения без стек-трейсов



Источник
Загрузка...
9 дней назад
#

Camunda BPM Meetup Raiffeisenbank



18 декабря приглашаем на первый открытый митап
Camunda BPM, который пройдет на площадке Райффайзенбанка в Нагатино.

Для нас очень важно формировать сообщества и делиться знаниями и опытом как внутри компании, так и во вне. Именно поэтому на регулярной основе мы проводим открытые митапы по разным направлениям. В этот раз мы открываем двери и приглашаем вас на первый митап Camunda BPM. В рамках митапа мы также хотим создать и чат Camunda BPM User Group, с чатом жить гораздо проще, ведь тогда появляется возможность что-то быстро спросить у коллег или просто скинуть интересную статью или мем. Хотите в чат?
Тогда вам сюда

Источник
Загрузка...
9 дней назад
#

Java Challengers #3: Полиморфизм и наследование



Java Challengers #3: Полиморфизм и наследование

Мы продолжаем перевод серии статей с задачками по Java. Прошлый пост про строки вызвал на удивление бурную дискуссию. Надеемся, что мимо этой статьи вы тоже не пройдете мимо. И да — мы приглашаем теперь на юбилейный десятый поток нашего курса «Разработчик Java».



Согласно легендарному Венкату Субраманиам (Venkat Subramaniam) полиморфизм является самым важным понятием в объектно — ориентированном программировании. Полиморфизм — или способность объекта выполнять специализированные действия на основе его типа — это то, что делает Java — код гибким. Шаблоны проектирования, такие как Команда (Command), Наблюдатель (Observer), Декоратор (Decorator), Стратегия (Strategy), и многие другие, созданные бандой четырех (Gang Of Four), все используют ту или иную форму полиморфизма. Освоение этой концепции значительно улучшит вашу способность продумывать программные решения.





Источник
Загрузка...
12 дней назад
#

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



Мир сходит с ума. Говорят, все новые мобильные проекты на Андроиде пишут исключительно на Котлине. В наше время очень опасно не учиться новым технологиям. Вначале твои знания устаревают, ты вылетаешь с работы, живешь у теплотрассы, дерёшься с бомжами за еду и умираешь в безвестности, так и не выучив функционального программирования. Поэтому я отправился на Курсеру изучать курс Kotlin for Java Developers и начал читать книжку (привет, abreslav, yole), поспрашивал друзей сами знаете откуда и вернулся назад с некой пустотой в душе. Помогите Олегу-путешественнику найти смысл в Котлине!



  • Бонус: хаброопрос «Как вы используете Kotlin?»






Источник
Загрузка...
12 дней назад
#

Что такое Method Handles в Java



1. Вступление

В этом туториале мы рассмотрим важный API, представленный в Java 7 и расширенный в новых версиях, java.lang.invoke.MethodHandles.





Мы узнаем, что такое method handles, как их создавать и использовать.



Источник
Загрузка...
12 дней назад
#

Gradle 5.0 — что нового



В процессе разработки CUBA мы применяли все три основных инструмента сборки — начали с Ant, потом перешли на Maven на короткое время, а сейчас используем Gradle и, похоже, что в ближайшее время останемся с ним.



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



image



Источник
Загрузка...
2 3

Авторизация

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

naikdij88
NewEXE
Георгiй Москвитинъ
Andpyxa Tutunnik
Andrey_fox
Jane linch
genagy
Pasha Radiuk
KotikBSD

Именинники

IvanNik

GeekBrains

Нетология

Нетология