Size: a a a

QA — Автоматизация

2019 December 24

M

Mikhail in QA — Автоматизация
Вот ещё аргумент, почему там должны быть геттеры. Ведь можно было просто добавить поля класса в публичную область видимости. Но тогда бы мы могли извне иметь доступ к изменению этих значений. Что противоречит написанному выше. Поэтому, если подходить правильно, то поля делают приватными и на каждое поле добавляют геттер. Логики DTO тоже не содержит. И никаких действий, кроме присвоения, к конструкторе не содержит.
источник

AV

Alexei Vinogradov in QA — Автоматизация
Mikhail
Потому что разрастается сигнатура метода, и появляется множество параметров, которые нужно поддерживать. Потому что при необходимости добавить ещё одно-два поля, придётся изменять все участки кода, где происходят вызовы этого метода (и, не дай бох, ещё править пробросы во вложенные методы), вместо того, чтобы изменить список полей DTO в одном месте.
Ну в IDEA есть refactoring- "изменить сигнатуру метода". Меняет сразу везде где нужно.
источник

M

Mikhail in QA — Автоматизация
Alexei Vinogradov
Ну в IDEA есть refactoring- "изменить сигнатуру метода". Меняет сразу везде где нужно.
А, ну тогда всё в порядке.
источник

AV

Alexei Vinogradov in QA — Автоматизация
В тестах это чаще всего оверинжЫниринг, особенно с тех пор, когда IDEA получила функцию hints parameter names.
источник

С

Сергей in QA — Автоматизация
Mikhail
Там в ссылке приведён пример на студентах. Это Value Object, потому что бывают студенты с одинаковыми именами, и если создать 2 VO с одинаковыми полями, это будут разные объекты с разной идентичностью и разными значениями для бизнес-логики. В отличии от DTO. Который нужен только для одной задачи. Напихать при создании объекта в него типизированных значений и получать из него эти значения в дальнейшем в тех местах, куда мы этот объект передадим. DTO не подразумевает наличия сеттеров, он иммутабельный. Если вам по какой-то странной причине нужно отредактировать его поле, то, скорее всего, вам нужно создать новый DTO.
У меня задача. Ну к примеру: я нагенерил данных по пользователю ... Создаю я его через одну api, а через другую аришку мне надо проверить все ли там корректно в БД. И методы могут быть в разных классах. Я раньше все передавал через статическую мапу. Стоит вообще переходить на DTO, VO или что-то ещё? Что для этого подходит лучше, чтоб было правильно ?)
источник

AV

Alexei Vinogradov in QA — Автоматизация
Сергей
У меня задача. Ну к примеру: я нагенерил данных по пользователю ... Создаю я его через одну api, а через другую аришку мне надо проверить все ли там корректно в БД. И методы могут быть в разных классах. Я раньше все передавал через статическую мапу. Стоит вообще переходить на DTO, VO или что-то ещё? Что для этого подходит лучше, чтоб было правильно ?)
Если метод возвращает несколько полей, то да, лучше в DTO запихнуть к примеру, потому что Java не умеет пока больше одного объекта возвращать.
источник

AV

Alexei Vinogradov in QA — Автоматизация
А некоторые языки могут. Кстати про Котлин не совсем понятно- там вроде и есть multiple return types, но они как-то нетривиальны в использовании.
источник

A

Alex in QA — Автоматизация
Alexei Vinogradov
А некоторые языки могут. Кстати про Котлин не совсем понятно- там вроде и есть multiple return types, но они как-то нетривиальны в использовании.
там скорей всего как и в питоне возвращается тапл
источник

M

Mikhail in QA — Автоматизация
Сергей
У меня задача. Ну к примеру: я нагенерил данных по пользователю ... Создаю я его через одну api, а через другую аришку мне надо проверить все ли там корректно в БД. И методы могут быть в разных классах. Я раньше все передавал через статическую мапу. Стоит вообще переходить на DTO, VO или что-то ещё? Что для этого подходит лучше, чтоб было правильно ?)
Да, не помешает, как минимум, набить руку в дизайне.
источник

AV

Alexei Vinogradov in QA — Автоматизация
https://youtu.be/pln38fIbYqA

Вот тут кстати много похожих тем про оверинжыниринг в том числе.
источник

А

Алексей in QA — Автоматизация
Alexei Vinogradov
А некоторые языки могут. Кстати про Котлин не совсем понятно- там вроде и есть multiple return types, но они как-то нетривиальны в использовании.
котлин - надстройка над джавой, использующая JVM. Ограничения аналогичные, просто в котлине добавлены классы обертки типа пары и трипла. В том же питоне - возвращается тоже один объект, типа тупл. В прочих Растах - аналогично
источник

AV

Alexei Vinogradov in QA — Автоматизация
Алексей
котлин - надстройка над джавой, использующая JVM. Ограничения аналогичные, просто в котлине добавлены классы обертки типа пары и трипла. В том же питоне - возвращается тоже один объект, типа тупл. В прочих Растах - аналогично
Вроде когда-то читал, как больше чем 2-3 передавать. Но это не точно.

А вообще с помощью буханки хлеба и коробки спичек можно много чего сделать. Не всегда понятно зачем :-)
источник

А

Алексей in QA — Автоматизация
Alexei Vinogradov
Вроде когда-то читал, как больше чем 2-3 передавать. Но это не точно.

А вообще с помощью буханки хлеба и коробки спичек можно много чего сделать. Не всегда понятно зачем :-)
Через датакласс
источник

AV

Alexei Vinogradov in QA — Автоматизация
Алексей
Через датакласс
Во-во. Ну в общем, проще сделать DTO и не париться, наверное :)
источник

AV

Alexei Vinogradov in QA — Автоматизация
Сергей
У меня задача. Ну к примеру: я нагенерил данных по пользователю ... Создаю я его через одну api, а через другую аришку мне надо проверить все ли там корректно в БД. И методы могут быть в разных классах. Я раньше все передавал через статическую мапу. Стоит вообще переходить на DTO, VO или что-то ещё? Что для этого подходит лучше, чтоб было правильно ?)
Кстати, а какие проблемы ты начал замечать со статической мапой?
источник

С

Сергей in QA — Автоматизация
Alexei Vinogradov
Кстати, а какие проблемы ты начал замечать со статической мапой?
Да на самом деле не в проблемах дело. Просто в какой то момент надо думать уже о дизайне и делать все правильно )))
источник

AV

Alexei Vinogradov in QA — Автоматизация
Сергей
Да на самом деле не в проблемах дело. Просто в какой то момент надо думать уже о дизайне и делать все правильно )))
Просто дизайн - это не про "правильно", это про решение проблем.

Нет проблем - что решаем?
источник

С

Сергей in QA — Автоматизация
Alexei Vinogradov
Просто дизайн - это не про "правильно", это про решение проблем.

Нет проблем - что решаем?
Я же ответил, что решаем )) не интересно просто писать как получается, интересно применять какие то практики и шаблоны проектирования ... Расти надо, иначе деградация ... ))
источник

O

Oleg in QA — Автоматизация
Главное логику в тесты не приносить. А то тестировать приложение будет такое же приложение.
источник

С

Сергей in QA — Автоматизация
Неожиданно слетел огурец... В общем не распознает формат файла, нет огурца рядом с файлом. Плагин стоит ... Я когда ставил его была такая же история. Забыл как решается. Подскажите если помнит кто ,))
источник