ZooMMaX

ZooMMaX

На Пикабу
поставил 614 плюсов и 40 минусов
Награды:
5 лет на Пикабу
273 рейтинг 4 подписчика 12 подписок 13 постов 0 в горячем

Ответ на пост «Почему жизнь так несправедлива? Меня годами унижали в школе, как только я дал отпор - уже до полиции хочет дойти?»

1) Иди к психологу. Иначе это будет очень большой проблемой;
2) Будь умным, имей большой кругозор (читай как можно больше книг). Это даст тебе возможность контролировать себя и УНИЖАТЬ ЛЮДЕЙ БЕЗ РУКОПРИКЛАДСТВА)) Так гораздо приятнее. Смешать с говном, но не как быдло, а красиво. В идеале без оскорблений;
3) В полиции тверди, что тебя унижали много лет, а руководство школы (директор, завуч), классный руководитель и учителя игнорировали данный факт.
4) Найди себе хобби

Удачи.

Продолжение поста «JetBrains plugin - когда на маркетплейсе нет нужного»

Обновление плагина до версии 1.2
Добавил сравнение методов API.

Продолжение поста «JetBrains plugin - когда на маркетплейсе нет нужного» Java, Jetbrains, Плагин, Криптовалюта, Cryptocurrency, YouTube, Ответ на пост
Продолжение поста «JetBrains plugin - когда на маркетплейсе нет нужного» Java, Jetbrains, Плагин, Криптовалюта, Cryptocurrency, YouTube, Ответ на пост

Серым помечены методы, которые есть в обоих версиях API. Зеленым помечены методы, которые есть в этой версии API и нет в другой, а красным - наоборот. Зеленые и серые методы кликабельны. При нажатии открывается подробное описание метода в соответствующей версии API.

Лойс, пи****ка, досвидония (© Doctor DIY)

Показать полностью 1

Ответ aav62 в «Образование + бесполезная нагрузка»

Банальный пример, почему так.

Программист - специальность техничнее некуда.

но если в 6 классе завалил пение и рисование, а в 9-м литературу, историю и обществознание - хер тебе, а не технарь

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

Вот честно. Технари, завалившие пение, ИЗО, лит-ру  и т.д. - нахрен не нужны. Они слишком скудоумны, не способны на нестандартные решения, несамостоятельны и наивны. Такие технари, как в прочем и гуманитарии без знания техническхи предметов - нахрен не нужны.

А Вам слабо показать минусы Вашего поста?

Минусы

А Вам слабо показать минусы Вашего поста? Минусы, Плюсы и минусы, Предложение

Ну вот прям в виде скрина?

Особенно для постов в горячем?

Прям даже иногда обновлять картинку в посте?

JetBrains plugin - когда на маркетплейсе нет нужного

Ты садишься и делаешь свой.

JetBrains plugin - когда на маркетплейсе нет нужного Java, Jetbrains, Плагин, Криптовалюта, Cryptocurrency, Видео, YouTube, Длиннопост

По крайней мере мне так было проще.
А началось все с того, что документация для RPC API Bitcoin Core на официальном сайте отображается кривовато.

JetBrains plugin - когда на маркетплейсе нет нужного Java, Jetbrains, Плагин, Криптовалюта, Cryptocurrency, Видео, YouTube, Длиннопост

Тут мы видим псевдо json и описание полей. Длинное описание переходит на новую строку и ломает удобочитаемость и понимание вложений в объектах json... "Ну "штош". Давайте поправим, а заодно запихнем это дело в студию" - подумал я и приступил.

Ожидал, что с ходу ничего не выйдет, но нет. Сложность написания плагина зависит от целей. Для работы плагина прям в редакторе, а уж тем более с языковой разметкой - придется вникнуть в дебри SDK JB)
Мне же вполне хватило Tool Window, которое по факту представляет из себя приложение на Java Swing. Окно - это уже готовый JFrame, который вызывается студией (только в plugin.xml надо указать, какой класс дергать). В остальном можно писать обычное swing приложение. В наличии у SDK есть унаследованные элементы интерфейса с более простым конструктором. Например вместо JLabel можно использовать JBLabel. Для поддержки темной и светлой темы вообще ничего не надо. Делаем все для одной из тем, а остальное студия преобразит сама. Публикация в JB Market тоже проста до безобразия)

В прочем это пост о плагине BitcoinDocs, так что к нему и вернемся.
Чего-то подобного я не нашел.
Что делает плагин. Шастает на сайт https://bitcoincore.org/en/doc/, и парсит его с помощью Jsoup. Вытаскивает все версии для доков. Вытаскивает все API для конкретной версии. Вытаскивает все методы для конкретного API. Дергает доку и парсит ее, исправляя вид и повышая читабельность.
Проще посмотреть видео.

Знаю, знаю. Ничего особенного.
Ничего особенного ни в исходниках под лицензией MIT, ни в самом плагине, доступном в маркете JB (а значит доступна установка прямо из студии) и так же под лицензией MIT.

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

P.S.
Все. Похвастался. Ставим плюс и листаем дальше) Всем спасибо.

Показать полностью 1 1

Твикс

В добрый дальний🌈

Продолжение поста «Java Simple Server для микросервисов?»

Продолжим собирать критику.

Погнали)



После прочтения комментариев к прошлому посту (особенно от @Deadwire, @MJcom и @user5097930) внес ряд изменений в библиотеку.

Коротко:

  1. Аннотации. Да они появились (аж целых две)

  2. Логирование. Пока не везде, но уже имеется.

  3. Автостартер сервера.


Есть два варианта запуска библиотеки:

  1. С аннотациями

  2. Без аннотаций

С аннотациями

Без наследования

Продолжение поста «Java Simple Server для микросервисов?» Java, Код, Длиннопост, Ответ на пост

С наследованием

Продолжение поста «Java Simple Server для микросервисов?» Java, Код, Длиннопост, Ответ на пост

Итого надо запомнить, что:

  1. Метод или класс, который запускает сервер, должен быть аннотирован @InitWebServer.

  2. @InitWebServer принимает два параметра: port и threads. По умолчанию port равен 8080, а threads равен 1.

  3. Метод, который реализует логику конечной точки, должен быть аннотирован @Endpoint.

  4. @Endpoint принимает четыре параметра: path, httpMethod, statusCode и filterContentLength. По умолчанию httpMethod равен HttpMethod.GET, statusCode равен 200, а filterContentLength равен -1.

Без аннотаций

Продолжение поста «Java Simple Server для микросервисов?» Java, Код, Длиннопост, Ответ на пост

Запуск без аннотаций больше похож на старый подход (тем не менее старая реализация помечена как устаревшая в первую очередь из-за изменений в классе Server. Теперь используется класс ServerNext).

Ничего умнее для названия класса ServerNext в голову не пришло.

Кто хочет - может кинуть в меня тапком. Для этого даже есть канал в дискорде))

Кидать в ZooMMaX`а

https://github.com/ZooMMaX/SimpleServer/wiki/ru

https://github.com/ZooMMaX/SimpleServer

Показать полностью 3

Java Simple Server для микросервисов?

Главное помни - эта либа не подойдёт для разработки сложной бизнес логики.
©Я

Java Simple Server для микросервисов? Java, Код, Длиннопост

Возможно кому-то, кроме меня, пригодится такая реализация java сервера. Это opensource библиотека, распространяемая по лицензии Apache (возможно стоит сменить лицензию?), которая была создана в тот момент, когда стало понятно, что я раз за разом использую один и тот же код. Базируется эта либа на com.sun.net.httpserver и доступна в Maven Central.

Запустим сервер!

Java Simple Server для микросервисов? Java, Код, Длиннопост

Довольно просто и быстро. Сервер запускается на указанном порту и создает thread executor с пулом потоков равным количеству потоков процессора. При запуске вешает родительский поток в ожидание на две секунды. В stdout плюнет вот такое:

Java Simple Server для микросервисов? Java, Код, Длиннопост

Теперь можно проверить работает ли сервер. Делается предельно просто. Открыть браузер и стукнуть по адресу http://localhost:8080/alife. В ответ придет текст life. (Думаю всем понятно, что GET запрос можно не только браузером сделать).

Добавим endpoint!
Main.java

Java Simple Server для микросервисов? Java, Код, Длиннопост

Hello.java

Java Simple Server для микросервисов? Java, Код, Длиннопост

После запуска, в stdout плюнет

Java Simple Server для микросервисов? Java, Код, Длиннопост

Это был пример создания конечной точки с методом GET. С методом POST создается схожим образом.
Для всего остального есть мастеркард HttpHandler. Почему так? Ну мне другое пока не особо нужно, вот и не добавил. По той же причине ответы принимают String (я в основном с json работаю).

Короче кому надо - юзайте на здоровье. Кто хочет помочь - прошу на GitHub проекта. Есть пожелания - пишите тут или в issue на гите.

P.S.
Попытка попасть на habr

Показать полностью 5
Отличная работа, все прочитано!