LINUX.ORG.RU

Встреча для Java-разработчиков: говорим про асинхронные микросервисы и опыт создания большой билд-системы на Gradle

 , , ,


1

3

DINS IT Evening, открытая площадка, объединяющая технических специалистов по направлениям Java, DevOps, QA и JS, проведет 26 июня в 19:30 по адресу Старо-Петергофский проспект, 19 (Санкт-Петербург), встречу для Java-разработчиков. На встрече будут представлены два доклада:

«Асинхронные микросервисы – Vert.x или Spring?» (Александр Федоров, TextBack)
Александр расскажет про сервис TextBack, про то, как они мигрируют с Vert.x на Spring, какие трудности встречают и как выживают. А также, о том, чем еще можно заняться в асинхронном мире. Доклад будет интересен тем, кто хочет начать работать с асинхронными сервисами и выбрать для этого фреймворк.

Advanced Gradle Build (Никита Туккель, Genestack)
Никита опишет решения специфических задач, свойственных для больших и супер-больших билдов. Доклад будет интересен тем, кого волнуют проблемы построения эффективной билд-системы в проекте, количество модулей в котором уверенно переваливает за сотню. В докладе содержится очень мало информации об основах Gradle, некоторые его части могут оказаться мало понятны для тех, кто с Gradle совсем не знаком.

После докладов мы продолжим общение со спикерами и подкрепимся пиццей. Мероприятие продлится до 22.00. Предварительная регистрация обязательна.

>>> Подробности и бесплатная регистрация



Проверено: jollheef ()
Последнее исправление: CYB3R (всего исправлений: 2)
Ответ на: комментарий от vitalif

У нас постгрю в докере из мавена для тестов поднимали.

Это немного не тот пример — тесты-то у Вас всё равно на JVM гонялись, хотя и лазили на Postgres.

Я имел в виду запуск JVM из-за невладения инструментами ОС.

Bass ★★★★★
()
Ответ на: комментарий от vitalif

Решениями, хосспаде. Говнокод говнокодом в 99% случаев

Как и везде. Но на джаве этот говнокод можно хоть как-то поддерживать. А на других только всё переписывать.

foror ★★★★★
()
Ответ на: комментарий от Bass

Ох, люто плюсую этот пост, прям с языка снял.

Что касается var, в целом я вроде бы и согласен, но не был бы так категоричен. В некоторых случаях он улучшает читаемость кода.

hippi90 ★★★★★
()
Ответ на: комментарий от foror

Ну блин, я точно так же могу попросить пруфов, но их не будет) у нас хватает экземпляров кривейшего г*на на яве.

Про IDE - да, язык неудобен. Заставляет юзать IDE.) Linux пишут без IDE. Ceph пишут без IDE. А вы не можете.)

vitalif ★★★★★
()
Ответ на: комментарий от foror

Кода как и везде, с чего бы ему быть в 5 раз больше?

Ну это конечно субъективное ощущение. Но оно есть. Условно отражение в реальности шутки «you have a problem and decide to use java. now you have Problem, ProblemImpl, ProblemException and ProblemFactory»

За var в джаве я бы убивал

Блин. Вот в итоге и получается код, который выглядит как захламлённый. Условно «соотношение сигнал/шум» хреновое - «шума» много, а логики мало.

Не используйте спринг, есть другие хорошие фреймворки.

1) Какие? От вертекса вон народ отказывается уже))

2) Язык программирования идёт в комплекте с практиками его использования. На Perl тоже можно писать нормальный код, но репутация у него тем не менее «write-only». Почему? Потому что вот МОЖНО, НО НЕ ПИШУТ.

Так же и на яве. МОЖНО писать нормальный код. МОЖНО не юзать спринг. Но встречается в корпоративном софте это крайне редко. Потому что практики такие сложились.

Первый ЯП по популярности

Ага, сразу после JS. И по статистике гитхаба. И включая андроид. А если взять статистику по вебу - то там PHP и ASP.NET в топе, явой и не пахнет. Если взять по крупным сайтам то там чуть больше, но всё равно она явно не первая.

Первый он по популярности только в «ынтерпрайзе», но не потому что так лучше, а потому, что так принято.

vitalif ★★★★★
()

запись будет вестись? потом запись (если будет) выкладывать будете?

bvn13 ★★★★★
()
Ответ на: комментарий от vitalif

в энтерпрайзе джава популярна потому что: 1) статическая типизация (в иде позволяет строить дерево вызовов и тп, что важно в развесистых говнокод-энтерпрайз-проектах) 2) куча библиотек и фреймворков 3) несложный синтаксис (типовой код доступен для понимая рядовому разрабу) без ненужных низкоуровневых деталей как в с++ 4) при желании можно достичь практически нативной производительности 5) простой мониторинг (средствами тулов для jvm)

но всё это не отменяет того, что синтаксис убог и многословен, и имеет длинную историю заимствования фичей, причем далеко не в самом элегантном исполнении (не хотят ломать обратную совместимость), те же дженерики появились далеко не сразу и страдают от такого явления как type erasure

попытки заменить на что-то поприличнее существуют (scala clojure и тд), но не очень успешны, так как порог вхождения повыше, и быдлокодеру тяжело, недавний пример Apache Storm https://yahoodevelopers.tumblr.com/post/185258393008/apache-storm-20-improvem...

Prior to 2.0, Storm was primarily written in Clojure. Clojure is a wonderful language with many advantages over pure Java, but its prevalence in Storm became a hindrance for many developers who weren’t very familiar with it and didn’t have the time to learn it. Due to this, the community decided to port all of the daemon processes over to pure Java.

anonymous
()
Ответ на: комментарий от anonymous

became a hindrance for many developers who weren’t very familiar with it and didn’t have the time to learn it

Ну так людям нужно свои идеи реализовывать, а не вкусовщину очередной инопланетный синтаксический сахар изучать: (defn greet [name] (str «Hello, » name) )

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

А нафига DOM, особенно в свете топика, т.е. всяких микросервисов.
Там, насколько представляю, вполне достаточно diesel+serde+actix-web,rocket,etc.

Ну а cargo как средство сборки вполне себе. Да и опять же стало стандартом и не будет 100500 различных систем сборки несовместимых друг с другом, как в сишечке с плюсами.

WatchCat ★★★★★
()
Ответ на: комментарий от vitalif

Ну это конечно субъективное ощущение. Но оно есть. Условно отражение в реальности шутки «you have a problem and decide to use java. now you have Problem, ProblemImpl, ProblemException and ProblemFactory»

У меня, например, есть правило если не могу придумать название класса FooBar, то я оставляю FooBarQuz, но в последствии в подкорке оно крутится и в какой-то момент я FooBarQuz рефакторю в осмысленный FooBar.

Что касается Impl, Factory и подобное это легаси и дурной тон. Мало кто так пишет в современных проектах.

Блин. Вот в итоге и получается код, который выглядит как захламлённый. Условно «соотношение сигнал/шум» хреновое - «шума» много, а логики мало.

Этот шум затем сильно облегчает чтение кода, мозг и пальцы меньше напрягаются. А значит больше сможешь поработать, больше порефакторить.

В IDE на этот var пофиг, потому что та же IDEA может BigInteger математику развернуть в операторы (визуально как перегрузка методов в С#), что уже говорить об убирании var взад.

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

Какие? От вертекса вон народ отказывается уже))

Это сугубо вкусовщина. Я раньше работал с Tapestry 5, сейчас делаю собственный фреймворк (естно не такой как все) и БД в одном флаконе. Но мне не только джава фреймворки не нравятся. Я вообще все фреймворки, на всех ЯП считаю ущербными для веб-разработки )

но не потому что так лучше, а потому, что так принято.

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

foror ★★★★★
()
Ответ на: комментарий от WatchCat

А нафига DOM, особенно в свете топика, т.е. всяких микросервисов.

Мне, для моего фреймворка нужен DOM и отражение W3C стандартов на ЯП отличный от JS.

diesel+serde+actix-web,rocket

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

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от Bass

Ну не знаю, после Ant мне Gradle показался глотком чистого воздуха, хотя с большими проектами я и не особо сталкивался.

А Maven почему-то вообще мне не зашёл. Насколько я помню, тот же Spring на Gradle потихоньку перелазит.

EXL ★★★★★
()
Ответ на: комментарий от foror

при сомнительном выигрыше в перформансе.

Там всё-таки не только и не столько производительность, но ещё и память.
Всё-таки Ява память любит и в некоторых случаях это может оказаться критично.

WatchCat ★★★★★
()
Ответ на: комментарий от EXL

после Ant мне Gradle показался

Вы сравниваете качественно разные (т е несравнимые) инструменты =)

Насколько я помню, тот же Spring на Gradle потихоньку перелазит.

Это может быть в т ч и дань моде. Завтра они переползут на Bazel.

Bass ★★★★★
()
Ответ на: комментарий от WatchCat

Всё-таки Ява память любит и в некоторых случаях это может оказаться критично.

Это сегодня. Тот кто в теме сейчас видит как джава реально меняется к лучшему, в плане перформанса и памяти. Я даже пока вычеркнул разработку нового ЯП из своего TODO списка ) Может джава за эти год-два удивит и не нужно будет мучиться )

foror ★★★★★
()
Ответ на: комментарий от vitalif

В джаве точно так же срисовывают с js - var и кложуры.

Это совсем не с JS.

korvin_ ★★★★★
()
Ответ на: комментарий от foror

Этот шум затем сильно облегчает чтение кода, мозг и пальцы меньше напрягаются. А значит больше сможешь поработать, больше порефакторить.

В IDE на этот var пофиг, потому что та же IDEA может BigInteger математику развернуть в операторы (визуально как перегрузка методов в С#), что уже говорить об убирании var взад.

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

А нефиг читать на гитхабе,

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

var всяко лучше дерьма вида

MyCoolFooBarModelEntityRepository fooBarModelEntityRepository = new MyCoolFooBarModelEntityRepository();
korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

var всяко лучше дерьма вида

Если было бы разрешено только в таком контексте, то я только за.

foror ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.