Комментарии 27
>> Если Quarkus и Micronaut воспринимаются как смелые эксперименты
На всякий случай замечу, что и микропрофайл и хибернейт(а так же многое другое как например vert.x или resteasy и smallrye) поддерживаются именно RedHat. Более того, поддерживаются одними и теми же людьми. При чем даже на экспериментальные фичи, иногда выдавали мне фиксы за день и со мной эти же люди дебажили код из jdk вплоть до натива по обычной апаче лицензии, чтобы понять где проблемы... Ну да, очень смелые эксперименты.
Ну а с учётом, что эти эксперименты уже давно и глубоко используются в Энтерпрайз, да и тот же редхат уже на quarkus переписал keycloak и infinispan - то я бы не называл их экспериментами уж точно.
Может быть, разные люди и компании живут в разных реальностях, своих информационных бабблах... Ты знаешь какие-нибудь соцсети, банки, государственные структуры, крупный ритейл (аля X5) и другой российский энтерпрайз, который сидит на Кваркусе? Если знаешь - поделись, пожалуйста. Я знаю много кто экспериментировал, но у них (этих неназванных из-за NDA компаний) это всё так и живёт на фазе эксперимента, а в проде там крутится JavaEE такой версии, что на ней писали ещё прадедушки
Российские банки и государственные структуры - это немножко меньше мирового IT. И окологосударственнось(как и везде) накладывает какие то ограничения. На "сертифицированный Линукс", "сертифицированный JDK", фрэймворк и так далее. При чем чем глубже сидят эти компании, тем больше ограничения.
Про j2ee в проде - это отдельная история. Как про ту же сертификацию, так и про то, что апгрэйд чего то на что то надо тестировать, а это деньги. И не айтишные дяденьки, с большими калькуляторами прекрасно умеют считать, что "модно и молодежно" и "зачем платить много денег когда jdk в LTS" прекрасно делают выбор.
Кстати, на сколько я помню, Твиттер переехал на Грааль и натив ещё во времена 19й версии.требования по железу упали на 10-15%. На их объемах, это солидная экономия. Соответственно кваркуса тогда не было, а Спринг в нативе до сих пор толком то и нет
Эмм, я же не утверждаю, что Спринг Нейтив или Кваркус или не работают. Хочу только отметить, что большая часть мира не в курсе, что они вообще существуют, и более того - им всё равно.
Хочется еще раз пропиарить схему из книги Crossing the Chasm.
Иногда инноваторы забывают, что там на схеме есть ещё и весь остальной мир :)
Превращение продукта из "смелого эксперимента" для аудитории инноваторов в "этим легаси мы уже миллион лет пользуемся" для laggards - это целая история!
![](https://habrastorage.org/webt/yt/2j/33/yt2j33j3kvssjasbxpsndf6hlfq.jpeg)
Зевает. Ну не подводите "большую часть мира" под себя.
То есть то что вы не пользовались, это не значит, что это эксперементально или вообще не существует. Скорее поинт в том, что в следующий раз разберитесь глубже, либо используйте более мягкую терминологию.
Большая часть мира вообще считает что айтишники - это какие то странные ребята, бубнят себе что-то под нос и делают всякие непонятные вещи.
А для большей части мира Сишников - все java фрэймворки могут быть так же на одно лицо и иногда даже совсем не существуют.
На тренировках по фехтованию нас учили, что самое непродуктивное, что можно сделать - закрывать глаза, когда тебя бьют в голову. Ты можешь нормально что-то сделать только пока полностью адекватен реальности, видишь всё широко раскрытыми глазами и способен моментально реагировать на это.
Нельзя закрывать глаза на факты типа того, что айтишников действительно супер мало (до Событий их было в России не больше 2 миллионов человек), а Спринг Нейтиву и Кваркусу до стандарта индустрии - как пешком до Марса. Не надо врать, в особенности себе. Тогда появляется шанс как-то выбраться из сложившейся ситуации
А простите, что есть "стандарты индустрии" и не расскажите, каким образом и в каких местах тому же Кваркусу далеко. Спринг-натив понятно, он там еще из беты по моему не выбрался. Что с Кваркусом не так? Просто вот интересно, то ли вас фихтованию не доучили, то ли я индустрию не так понимаю. Но определенно, кто-то из нас ошибается. Можно по пунктам, у вас же будет аргументация?
Пока для меня это звучит просто как голословные утверждения, хотелось бы фактаж.
Берем какой-нить опрос по-репрезентативней, например, JetBrains: https://www.jetbrains.com/lp/devecosystem-2021/java/, смотрим на 3% Кваркуса, и понимаем, что надо слушать Олега, а не жить в своём баббле.
Слушать, простите что? Что Олег что-то придумал и не может аргументировать?
https://www.jrebel.com/blog/2021-java-technology-report тут 6%
Я вот какую мысль пытаюсь понять. Новые технологии - это плохо и надо вечно сидеть на старых? Вроде как нет. Вы тому пример в том числе.
Или что Олегу (да и всем остальным) надо бежать по всем своим клиентам/заказчикам и компаниям и пытаться их заставить отказаться от KeyCloak/Infinispan т.к. они написаны на "смелых экспериментах", а в дальнейшем от всего RedHat, который на java? Попробуйте, потом расскажите, интересная статься может получиться.
Или все же таки попробывать разобраться и говорить о плюсах, минусах, экперементальности и production ready? Пока от Олега было ноль аргументов.
Пока я вижу минус только один. В RUнете на нем никто(практически) писать не умеет. Как когда то на том же Spring-е. Коммерчески (для компаний) это в чем то show-stoper, но как бы и на golang совсем недавно никто не умел.
Да, возможно кваркус где то приживется, где то нет. Может и совсем умрет, но говорить о эксперементальности - это просто не знание контекста.
мне интересно помогать людям, а пишут они на новых или старых технологиях - не имеет никакого значения
Для большинства приложений, хорошая практика - заводить эндпоинт
/health
в части 5 описан Actuator - он прекрасно справляется с поставленной задачей
После прочтения статьи
<sarcasm>Мама, я теперь DevOps и пойду получать +300кк\с</sarcasm>
Спасибо за познавательную статью. Много полезного для себя нашел хоть Java не относится к моему стеку. Хотелось бы отметить, что дополнительно можно использовать Terraform для описания всей инфры.
@Repository
public interface OrderRepository extends MongoRepository<Order, String> {
}
@Repository
здесь лишний: ЕМНИП, Спринг подхватывает любой интерфейс унаследованный от CrudRepository
, JpaRepository
и т.п.
Ты прав. Либо экстендить стандартные репозитории (Crud, Jpa..), либо помечать через @Repository@RepositoryDefinitionn.
@RestController
@RequestMapping("/api/v1")
public class HealthStatus {
private final Logger log = LoggerFactory.getLogger(HealthResource.class);
//...
}
Скажите, а чем вызвано явное приписывание логгеров в коде, у нас же Ломбок прикручен и мы можем использовать @Slf4j
?
на MongoDB Atlas битая ссылка
И дополняющий его класс HealthStatus:
@RestController
@RequestMapping("/api/v1")
public class HealthStatus {
private final Logger log = LoggerFactory.getLogger(HealthResource.class);
Наверное все же класс HealthResource. А HealthStatus это просто enumeration. Кстати почему Ресурс? 12 лет назад вроде это называли контрОллером, о чем кстати намекает аннотация?
"Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях."
Отметился)
Печально. Раньше аргументировали своё решение тем, что оно "быстро и надёжно", сейчас тем что "модно и молодёжно". Ну типа штанов с промежностью на уровне колен. И все эти танцы с бубнами и определение таблиц через java annotation чтобы было кому отвечать на http запросы. На которые уже можно повесить JS интерфейс. Получается если научить SQL сервер напрямую отвечать на http запросы, какой-нибудь бездумный плагин, который бы автоматический конвертил http в SQL и обратно, то все эти модно-молодёжные технологии будут не нужны. Можно будет по старинке писать процедуры, которые работают внутри транзакций.
Более того, так многие компании делали и продолжают делать. Особенно в финтехе, где у тебя много stored procedures и строгая row level security (RLS), за которую ты жопой отвечаешь перед проверяющими органами. Там обычно делают какие-то самописные плагины, которые из описанной на каком-то формальном языке структуры генерят одновременно базу в соответствии с моделью безопасности, и код-клей для передачи наружу. К сожалению, я даже не представляю, как подступиться к написанию такой фундаментальной статьи, да и у меня нет в этом экспертизы. Если тебе интересны такие вопросы, попробуй найти в соцсетях какого-нибудь Олега Царева, ему наверняка есть, чего рассказать.
Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana