Как стать автором
Обновить
109
0
Иван Пономарев @IvanPonomarev

Программист

Отправить сообщение

Насколько я понимаю, цена там сейчас определяется индивидуально, но: а сколько у вас примерно таблиц? Не исключено, что проще уговорить подвинуть лимиты бесплатной версии

Вот, надо мне проверить, что сервис ищет какие-то данные в БД, используя внешнее соединение таблиц

Посмотрите ещё раз на getTalksByConference.В нем мы проверяем, что из доклада вытаскивается и конференция, и спикеры, т. е. ровно то, о чём Вы и пишете :-)

Помимо шуток -- я согласен с тем, что в общем случае случайно выбранная запись может не обладать нужным состоянием и её придётся в это состояние загонять. Но по опыту можно исходить из того, что делать это придётся реже (и прикладывать меньше усилий), чем пытаясь заполнить базу с нуля. Здесь мы имеем классический инженерный трейд-офф, что за какие-то преимущества приходится платить какую-то цену. Преимущество, которое мы получаем -- объективно меньше кода для сетапа тестов и меньше затрат на его поддержку. Цена, которую платим: тесты надо писать, помня о том, что по умолчанию мы ничего не можем "подразумевать" о входных данных, не прописав в них явно какое-то состояние. В 9 случаях из 10 нам подойдёт и то, что сгенерировано случайным образом. В 1 случае из 10 придётся заморочиться. Не используя генерацию, мы будем заморачиваться в 10 случаях из 10.

К сожалению, нет: jOOQ это jOOQ, Celesta это Celesta, вы выбираете либо одно либо другое

Да, TC тесты с реальным постгресом сильно проигрывают по скорости тестам с in-memory H2. Можно попробовать заточить ваши тесты для jOOQ для in-memory H2, но нужно быть очень осторожным, чтобы не попасть в проблему связанную с различиями в реализации PostgreSQL и H2 (именно эту проблему решает Celesta, абстрагируясь вообще над всеми поддерживаемыми базами данных)

Кстати, ведь была сейчас проблема, что ФОС мало кто заполнил, ибо не было мотивации.

Так вот, видео же можно закрывать — а открывать или через подписочку, или заполнившим ФОС :-))
Да, подписка была бы интересна, как мне кажется.
Конечно, эта модель не решит проблему, когда хочется поделиться ссылкой с кем-то, кто не является твоим сотрудником.
Очень просто решит: мы купим сотруднику платный доступ, как покупаем какие-нибудь книжки. Если это будет по цене книжки, то вполне.
Дорогие JUG, вот ваши видео больше не в YouTube, а в собственной платформе. И для тех, у кого есть туда доступ, всё стало очень удобно.

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

Можно ли как-то решить эту проблему? Например, если бы была возможность за разумную цену купить доступ к контенту уже прошедших конференций, я бы ею воспользовался
Тут в комментариях все набросились на volatile, а в статье требуют апдейта гораздо более базовые вещи.

  1. Пожалуйста, пожалуйста, пожалуйста замените Random на ThreadLocalRandom. Класс ThreadLocalRandom существует начиная с Java 7. Он в 3-4 раза быстрее, потокобезопасный, более удобный. О его абсолютном преимуществе перед Random написано в книге «Effective Java». Использовать Random сейчас — то же самое, что использовать какой-нибудь Vector вместо ArrayList.
  2. Для чего нужен LinkedHashMap? — почему-то не увидел в ответе «для реализации LRU cache», хотя это один из основных сценариев использования, о чём даже сказано в его Javadoc
  3. Секция про ввод-вывод крайне куцая и устаревшая. Вообще ничего нет про java.nio, что странно в 2020м. Хотя бы включите вопрос «какие знаете способы прочитать текстовый файл
Проверка идемпотентности — это запуск плейбуки повторно с проверкой состояний changed/ok на каждом шаге — только так.


Спасибо, Капитан Очевидность, а я-то не знал :-) Да, также как и всевозможные findbugs и другие средства статического анализа — это не тестирование от слова совсем. Ansible-lint — это средство статического анализа, которое позволяет найти некоторые явные проблемы в коде, не запуская его.
В ansible-lint есть проверки, запрещающие выполнять «незащищённые» command/shell операции, которые будут приводить к изменениям при каждом выполнении. Разумеется, это формальная проверка, но она находит такие случаи.

Ещё раз напомню, что это — расшифровка доклада, который готовился летом 2018 года. На тот момент я не помню, чтобы в молекуле был верификтор Ansible. Testinfra был дефолтным.
* Докладу уже 2 года, кое-что и устарело.
* С помощью ansible-lint _можно_ находить неидемпотентность!
* Плейбуки тестить можно, но это не основной use case.
* Выше уже отметили. Да, не знал я про `changed_when`. Но интересно, что когда я доклад готовил с ревьюерами и потом делал на одном большом митапе и двух конференциях, мне на это никто не указал. Видимо, на тот момент это не очень известная фича была.
* Да, именно так. В контексте того что я говорю в докладе.
* Почему не упомянут? Упомянут assert.
Немного 6 ролей, покрыты все, проверяем в докере, используем только один инстанс — Ubuntu, время около 5 минут
Не знал, где вы раньше были!
Понял, changed_when: false будет всегда говорить ансиблу, что ничего не изменилось, и поэтому не будет провален тест на идемпотентность. Век живи, век учись!!!
Курсоры можно эмулировать с помощью SQL и логики на сервере приложений.
Бесконечный скроллинг — это лишь один из возможных подходов, довольно тривиальный. Я же рассказывал про то, как мы сделали честный скроллинг на датасете в несколько млн записей, развивая идею про «пляшем от ключа».
Развивая данную идею (OFFSET не нужен, «пляшем» от ключа), можно построить не только пагинацию, но и непрерывный скроллинг — что гораздо интереснее, чем пагинация. Более того, reverse engineering некоторых вещей показывает, что люди давно так его и делают.

Поддержка подобных запросов была бы хороша не только на уровне фреймворков, но и на уровне СУБД.

Уже несколько лет как я пишу по этой проблеме и делал доклад на JPoint, наиболее удачное изложение, на мой взгляд, здесь: dzone.com/articles/hidden-complexity-of-a-routine-task-presenting-tab
В таких обзорах всех не упомянешь) или надо писать нескольким авторам.

Да, мне тоже понравился Хорстман, неплохой overview по новым фичам Java. Хотя например прошлогодний доклад Тагира про «pattern matching и его воображаемых друзей» ничуть не хуже погружает в проблемы эволюции языка.
Кстати, не задумывался о том, что такое возможно с PDF… В ситуации, когда конференция не даёт подключать свой ноутбук, у них в любом случае будет только Adobe Acrobat в Full-screen режиме.

В ситуации, когда свой ноутбук подключить можно, я открываю RevealJS презентацию в браузере, нажимаю кнопку S — и в отдельном окне браузера всё есть. Но я этим обычно не пользуюсь, текущего слайда мне вполне достаточно.

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Зарегистрирован
Активность