All streams
Search
Write a publication
Pull to refresh
35
0
Илья Сазонов @poxvuibr

Software developer

Send message

Стоит что-то пропустить и затем либо вечно об этом помнить, чтобы никому ничего не сломать

Давайте может с вами немного подискутируем? Для того, чтобы ничего не сломать по идее должны быть интеграционные тесты, которые проверяют интеграцию целиком. И так как раз вся сериализация и десериализация тоже проверяется. Может быть тесты с аннотацией JsonTest излишни, раз есть такие интеграционные тесты?

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

В примере используется Lombok, его можно настроить, чтобы он ставил на сгенерированные dto анотации *Generated . Тогда jacoco проигнорирует сгеренерированный код. Затраты небольшие, специально пакеты указывать не надо. Мне кажется эту фичу часто используют

Спасибо за статью! У меня есть пара вопросов, которые хотелось бы обсудить, но не про плагин, а про подход.

Я часто встречаюсь с мнением, что такие тесты вооще не нужны, потому что работоспособность сериализации и десериализации постоянно проверяется QA в процессе тестирования системы и разработчиками в процессе разработки (они это через сваггер делают). Это мнение мне неблизко, но всё-таки мне очень интересно, как вы убедили разработчиков, что такие тесты нужны.

И ещё интересно как контролируется, что разработчик не забыл написать тест. Я так понимаю покрытие тут не поможет, потому что генерированный ломбоком код всё равно туда не попадает. Да и в любом случае, скорее всего геттеры и сеттеры покрываются какими-то соседними тестами. Остаётся только надеяться на то, что другие разработчики будут внимательны и не дадут смёржить пул реквест без такого теста?

Чисто навскидку, насколько lfs собирать дольше, чем то, что описано в статье?

Редактор статей вроде понимает маркдаун-команды

Ооо, действительно )). Он преобразует текст на лету.


Пользоваться этим для редактирования текстов, конечно, невозможно, но ведь можно написать текст в стороннем редакторе, вставить в редактор хабра и посмотреть, что получилось.


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


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


Хорошая новость )))

Аа, вы по комментарии! Я то подумал, может и правда можно статьи с помощью Markdown писать. Увы ((

На «Хабре» бесподобный новый редактор. Хочешь WYSIWYG, хочешь маркдаун

А как включить маркдаун в новом редакторе?

А какая альтернатива у UUID.toString()? Что вам нравится меньше?

Используйте UUID как идентификатор.
String id;

Так UUID или String ?

например, сущность не имеет связей и коллекций. все равно плохо?

Всё равно плохо. Кто-нибудь обязательно положит сущности в коллекцию и добавит связи. Вас в этот момент может уже не быть на проекте. А те кто остался словят всяких неожиданных багов.


так а если есть необходимость использовать все поля для equals и hashcode?

А как возникнет такая необходимость, если сущность не хранится в коллекциях? Для чего это может понадобиться?

А может быть кто-нибудь в курсе, почему решили убрать возможность использовать markdown для статей?

Я ответил на ваши вопросы?

Да, исчерпывающе, большое спасибо!


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

Очень интересно по поводу суставов. Можно велосипедом колени повредить? Я то думал, крути себе педали и крути, по сравнение с бегом вообще для колен не вредно

Да что такое этот ваш набор высоты? Почему надо было показывать, что это условность? Зачем вместе с рекомендацией игнорировать набор высоты рядом стоит рекомендация беречь суставы? Так много вопросов и так мало ответов!

Боже мой )).


Есть два типа устройств. Одно следит за тобой постоянно и непрерывно, записывает твои перемещения, хранит идентификаторы сетей, к которым ты подключался. И второе считай почти не следит.


Но именно вот это, не следящее устройство назвали Большим Братом )). Какая ирония!

Любопытно, как на текущем месте работы обоснована рекомендация не использовать JPA. Или это просто так сложилось?

Это круто, конечно! Год назад где-то мне бы очень помогло что-то, что роутит запросы не по айпи, а по символьному имени. То есть всё, в чём есть, например, слово youtube, нужно направлять в vpn, а всё, где его нет, мимо vpn. Да и сейчас это мне пригодится. Я так понимаю mrvpn либо это уже может, либо надо только совсем немного поправить код. Бурные апплодисменты!


У меня ещё есть пара вопросов, прямого отношения к делу не имеющих. Насколько я понимаю ваше решение поднимает несколько докер-контейнеров, в одном из которых сервис на питоне.


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


Ещё интересно, почему именно веб-сокеты. Почему не обыкновенные сокеты (не знаю, как их правильно назвать )) ) или не unix domain sockets?


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

Зачем? Я упоминал первоисточники. С работами Савельева знаком, противоречий особых не вижу.

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

Да, Савельев к статье имеет отношение, натолкнул на идею ее написать.

Так чего ж вы в статье про Савельева ни слова не написали?

Давненько я не читал такой лютый гугл транслейт

Это вы зря. Статья практически краткий пересказ выступлений профессора Савельева, который к англоязычным авторам относится с нескрываемым презрением. Личность, кстати, очень неоднозначная. По-моему ему даже хотели выдать премию ВРАЛ, но в конце концов он в финал не вышел.

Полностью ли я ответил на Ваш вопрос?

Да, вполне, спасибо )). Хотя ещё любопытно, что у вас в стартерах. Теоретически каждому клиенту может понадобиться своя конфигурация и свой собственный, например, ObjectMapper. Вы как-то делаете отдельные конфигурации для каждого клиента?

Information

Rating
4,773-rd
Works in
Date of birth
Registered
Activity