Люди, которые такой код пишут, после этой статьи ничего не поймут в лучшем случае. В худшем они сочинят каких-нибудь NullPerson-ов потому что нельзя же null использовать :)
Аккуратнее было бы не писать «Не используйте null», а ограничиться только упоминанием антипаттеров и их объяснением (null вместо коллекций и массивов уже умоминали, но есть еще например «if (param == null) return null»).
Вы как-то очень категорично пишите про null, не надо так :) Не принято возвращать null вместо коллекций и массивов (и передавать в параметрах тоже нежелательно).
В примере defaultPhase = LifecyclePhase.VALIDATE, в тексте LifecyclePhase.VERIFY. Но паковать лучше на фазе package — такой lifecycle задуман в maven. Даже если все в одном pom-е, то это легко решается порядком объявления плагинов в project/build/plugins.
Еще правильнее будет не склеивать команду в строку, а использовать List (см. ProcessBuilder). Для того чтобы например пути с пробелами не привели к ошибке.
Дополню что еще есть вариант использовать BigInteger и хранить деньги в целых числах (в «копейках» соответствующей валюты). О делении вообще лучше забыть, а рассмотреть операцию распределения — когда единицы на троих вместо 0.33, 0.33, 0.33 и потерянной копейки будет 0.33, 0.33 и 0.34.
С трудом представляю систему без таковой. Вернее с трудом представляю себе набор полностью независимых сервисов, которые представляют собой систему, а не кучу.
Речь не про то что между сервисами не должно быть зависимостей, а про shared libraries. Например когда у вас один сервис вызывается из десятка других и все сервисы написаны на одном языке, то возникает желание один раз написать клиентскую библиотеку и использовать ее в 10 сервисах, вместо дублирования/генерирования клиента. Если сервисов много а разработчиков/команд мало — то кажется что это частая ситуация.
JWS != приложение, работающее в браузере. Работают в браузере апплеты. И несмотря на текст приведенной статьи на сайте OpenWebStart видно что апплеты поддерживать они не будут
JavaFX — платформа для создания RIA-приложений: как настольных приложений, запускаемых непосредственно из-под операционных систем, так и для интернет-приложений, работающих в браузерах,
Апплеты и JWS уже не поддерживаются в 11-ой и не будут развиваться. Или есть какой-то еще способ на JavaFX создать интернет-приложение, работающее в браузере?
Но иметь fat jar на 11+ — это неофициальный способ, где ничего не гарантируется.
As explained here, in order to create a runnable jar with all the required JavaFX dependencies, you will need to use a launcher class that doesn't extend from Application.
Спасибо за статью. Интересно было бы почитать как у вас реализованы бизнес фичи, меняющие данные в нескольких сервисах. Саги? Event sourcing? Другое? Все это можно ещё и реализовать по-разному. :)
Знаю, но, увы, для использования на работе не годится.
Это походу зверь для обеспечения четности api)
Последний год использую kate на двух компах, полет отличный. Может вам баг зарепортить?
Хороший, плохой, удаленка
Удаленка: нежданное путешествие
Как я провел эту удаленку
Аккуратнее было бы не писать «Не используйте null», а ограничиться только упоминанием антипаттеров и их объяснением (null вместо коллекций и массивов уже умоминали, но есть еще например «if (param == null) return null»).
wiki.sei.cmu.edu/confluence/display/java/MET55-J.+Return+an+empty+array+or+collection+instead+of+a+null+value+for+methods+that+return+an+array+or+collection
Еще правильнее будет не склеивать команду в строку, а использовать List (см. ProcessBuilder). Для того чтобы например пути с пробелами не привели к ошибке.
Речь не про то что между сервисами не должно быть зависимостей, а про shared libraries. Например когда у вас один сервис вызывается из десятка других и все сервисы написаны на одном языке, то возникает желание один раз написать клиентскую библиотеку и использовать ее в 10 сервисах, вместо дублирования/генерирования клиента. Если сервисов много а разработчиков/команд мало — то кажется что это частая ситуация.
www.microservices.com/talks/dont-build-a-distributed-monolith
www.infoq.com/presentations/netflix-play-api
openwebstart.com/feature-table
Апплеты и JWS уже не поддерживаются в 11-ой и не будут развиваться. Или есть какой-то еще способ на JavaFX создать интернет-приложение, работающее в браузере?
Но иметь fat jar на 11+ — это неофициальный способ, где ничего не гарантируется.
Ссылка «here» ведет к топику mail.openjdk.java.net/pipermail/openjfx-dev/2018-June/021977.html
Официальный способ для 11+ заключается в помещении библиотек JavaFX в module path.