Pull to refresh
12
Станислав@SimSonic

Душный погромист

Send message

Большое спасибо за статью!
У меня на проекте случилось тоже самое — при обновлении с 14 на 15 увеличилось потребление памяти, ограничения на размер Code Cache не было. На тот момент просто подняли лимиты в K8s, так как ресурсы были. Сейчас тоже думаю заняться вопросом исследования потребления памяти, т.к. функционал растёт, и память хочется ограничить везде, где можно.
Также хочу высказаться в поддержку того, что гораздо проще собирать костыли в небольшом количестве раз в полгода, чем сразу много оптом. Кроме того, все эти промежуточные релизы Java — это именно релизы, полноценные, прошедшие тесты. Это ведь не Beta, где реально могут что-то сломать. А багов каждый раз фиксят много.

Почитал issue на гитхабе ломбока — грандиозный тред получился.

Ну если, например, ваш код вызвал new long[Integer.MAX_VALUE], то именно тут можно и поймать OOM, и как-то обработать (запросить меньше?), и пойти выполняться дальше.

Практически не встречал ситуаций, когда в приложении несколько thread-pool-ов для запуска @Async-методов, и разработчикам приходится выбирать из них.
Всё-таки чаще это или дефолтный, или прям тут в приложении однажды описанный бин, которому нужно просто вызвать setTaskDecorator.

Если над одним кодом работает столько незнакомых людей, всё равно это ничего не ломает — они продолжают писать просто Async. Ситуация, когда и разработчиков овер-много, и тред-пулов в контекст уже набросали — за скоупом моего решения.

Свой decorator, который вешается на thread pool. Почти как таковой от security.


У меня свой mdc closeable, и утильный метод, который знает, что именно в MDC нужно прокидывать. Могу скинуть код, всё лаконично.


И да, sleuth в проекте присутствует и свои поля пробрасывает сам. У меня только нужные мне (api uri, логин юзера, т.п.).

Замечание, не касающееся редактора.


Практически всегда читаю Хабр с телефона. Так вот в мобильном Хроме недавно появилась возможность сделать свайпом "назад" и "вперёд" (проведя горизонтально от края экрана на середине высоты). Работает во всём этом интернете, кроме Хабра. Очень неудобно возвращаться из комментариев в статью или из статьи к списку статей обычными кнопками внизу одной рукой (второй качаю дочку в кроватке).


Как бы, понимаю, что мелочь...

Вот бы найти, если такой существует, список экзаменов и сертификаций по "всему этому IT". В том числе и как эти, CKA и CKS, а также Оракловые по Java и т.п.

Я извиняюсь, но правды ради:


C 11-й Java доступен httpClient, который реализует описанный выше неблокирующий подход. А с Spring 5 есть его обёртка — WebClient, которым можно заменить RestTemplate.

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

У «Науки» 10-летний ресурс… до 2030 года.

Модуль «Наука» должен был отправиться к МКС в 2007 году, однако… пришлось отложить.

Хм :) Гарантия отчитывается с момента "продажи" (запуска)? :)

"Вы все категорически против новых правил, поэтому мы примем их не сейчас, а в мае".
¯\_(ツ)_/¯

Внезапно, начав мердж из сторонней тулзы, не смог найти Resolve conflicts в Идее. Только зная, что они существуют, нашёл через Search everywhere. Верните, плз.

Справедливости ради, Java-имплементации миграций есть у обоих инструментов.

Спасибо за лайфхак!) Сейчас на проекте юзаю lb, но для себя выработал форматирование: каждый атрибут любого тёща, начиная со второго, с новой строки, чтобы преобразовать код из 2мерного в 1мерный по вертикали.
Да, часто видел, что пишут в нём только sql миграции, по-моему это ну такое, местами сомнительное. Почему тогда не flyway?)

Хотелось бы и ложку дёгтя :)
В большой команде, если используется Flyway, приходится придумывать костыли в виде сообщения в чатике "я занял номер миграции 187", либо использовать флаг outOfOrder, и всё равно на ревью могут выскочить одинаковые номера и придется править.
У ликвибейза xml многословен, но у yaml и других вариантов нет автодополнения.

У меня тут свой термин образовался: pet code in production project. Это когда вместо проверенного и знакомого кода суёшь в проект что-то новое и молодежное, потому что "ну а где и когда я это ещё попробую?".

Меня тут немного осенило, и я ещё ускорил свои тесты :) делюсь с вами знанием.
rocketscien.se/testcontainers-2
Согласен, но достигнув состояния из одного коммита, можно не останавливаться и далее разбить его на отдельные :)

Проекту год с небольшим, постоянно пишут код от 1.5 до 2.5 чел. Ребейзим постоянно, мерджи 99% только FF, история прекрасна и чиста. Вероятно, всё-таки большое значение имеет размер команды — чем меньше, тем проще так делать.
Лично я пользуюсь как IDEA, так и TortoiseGit — часть действий мне в нём делать привычнее.


Из лайфхаков. Если история ветки богатая на MR с базовой веткой и ребейз сложен из-за конфликтов, можно сделать Soft Reset на базовую ветку и закоммитить текущее состояние как единственный засквошенный коммит.

Добавлю, что в ряде случаев, когда объекты запросов / expected ответов большие, удобно их не собирать прямо тут, а всё-таки вынести в какой-нибудь .json в ресурсах, и вспомогательными методами (jackson-ом) читать, когда надо. Это в поддержку того, чтобы не использовать продуктовые мапперы.

Странно такое слышать. Спринг куда более магический, чем Ломбок. Документация небольшая и внятная, может быть просто у вас предвзятое отношение с каких-нибудь старых версий, когда ещё в нём были баги.

Information

Rating
5,725-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Бэкенд разработчик
Ведущий
From 500,000 ₽
Java
Spring Boot
PostgreSQL
MySQL
Docker
Kubernetes
CI/CD