Работа в IT Германия! Ищем сотрудника для работы в немецкой команде Backend developers! Java,Spring, web development Tech Slack: - Java - Spring Framework - Microservices - swagger / open API - kubernetes / docker - PostgreSQL Mongo DB - Pluspunkt: Camunda BPM, Solr Experience 4 years + desired This is a great opportunity to join a team with a modern and friendly culture. Sent your CV at info@econor.io Поддержка на первое время в Германии!
По Spring Security будем что-то снимать, вы не первый, кто спрашивает. Что-то конкретно интересует из Spring Seciruty? Тот же вопрос по написанию тестов - что интересно посмотреть?
GrabDuck! В принципе идеально уже взять готовый REST+Angular (тот что был в уроках ранее), добавить регистрацию, авторизацию и вывод контента в зависимости от группы, например гость, юзер и админ. По тестам, мне так надо с нуля, я однажды только заглядывал в Cucumber на c# но далеко не углубился, решил все же яву изучать. Огурчик есть и на спринг )
вот на 32:54 для каких целей метод doWrite создается? Там всего 1 строка кода, не разумнее ее было оставить в методе write? Это для того, чтобы при тестировании проще понимать где код сыпется?
Я не совсем понял смысла Immutable коллекций в данном контексте, да ее нельзя расширять и удалять из неё, но ведь объекты же в ней менять можно, так как они мутабельные, ещё когда в апи появятся новые поля, скорее всего api client упадёт, потому что у Jackson если я не ошибаюсь по умолчанию поведение такое, что если он находит неизвестные поля, то он выбрасывает исключение. Извините если я где-то ошибаюсь
класс. ты очень хорошо рассказуешь. по делу и с рабочим кодом. пару фишек и себе забрал. но у меня вопрос. ты в доменной модели Suggestion используешь примитивы int/long/double . не опасно ли это? если бы ты данные с бд с Hibernate тащил, то вместо null получил бы 0, что не верно. Думаю, Jackson и другии б-ки сериализуют так же.
Да ты прав, сам всем рассказываю что для JSON сериализации нельзя использовать примитивы, потому что тогда "нет значения" трансформируется в 0 (что как бы валидный результат). Поэтому, на текущем уровне понимания вопроса, я бы сказал так, если значение должно быть, то в доменной модели я бы по прежнему использовал примитивы, с ними проще работать, за целостностью данных все равно нужно смотреть и отслеживать, если значения не те. На выдачу во внешний мир, например сериализация в JSON, лучше использовать полноценные объекты, тогда тот же Jackson настраивается чтобы на null просто пропускал все свойство, что явным образом сигнализирует, что оно (свойство) не определено.
Онлайн-курс от GrabDuck.com: В данном видео посмотрим пример взаимодействия с реальным REST сервисом. Будем по REST получать какие-то данные и конвертировать их в CSV формат. Сама идея подобного примера взята из реального тестового задания, которое компания предлагает выполнить соискателям на свою позицию. Будем использовать Spring Boot, RestTemplate, а также библиотеки Apache HttpComponents с HttpClient и Jackson для работы с JSON и CSV. Посмотрим, как выполняется генерация в формат CSV с использованием Jackson. Приглашаем Вас регистрироваться на grabduck.com
Сложно сказать точно. Тут stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java вот рассуждают, что в 1.6 уже была
Вроде я об этом говорю на 33:50 ;-) - вы можете в тесте подсунуть StringWriter в качестве параметров и потом проверить через StringWriter.toString(), то, что строка (а не реальный физический файл) была сохранена корректно, т.е. схема задана с правильными полями, объект dto соответствует схеме и т.д.
Ну так, как говориться "one step at a time". Выносите функциональность в отдельный приватный метод из соображений изложенных в 33:50. Потом приступаете к написанию теста на метод, выясняете, что не работает, потому как метод приватный, идете и меняете private на package и маркируете метод @VisibleForTesting ;-) Вся цепочка в видео не влезла )
Работа в IT Германия! Ищем сотрудника для работы в немецкой команде
Backend developers! Java,Spring, web development
Tech Slack:
- Java
- Spring Framework
- Microservices
- swagger / open API
- kubernetes / docker
- PostgreSQL Mongo DB
- Pluspunkt: Camunda BPM, Solr
Experience 4 years + desired
This is a great opportunity to join a team with a modern and friendly culture.
Sent your CV at info@econor.io
Поддержка на первое время в Германии!
спасибо Вам за видео - все супер , выкладывайте примеры с реальных проектов , я думаю идея гуд
Хорошо и наглядно все показываете, было бы интересно посмотреть видео на тему Spring Security а так же написание тестов.
По Spring Security будем что-то снимать, вы не первый, кто спрашивает. Что-то конкретно интересует из Spring Seciruty? Тот же вопрос по написанию тестов - что интересно посмотреть?
GrabDuck! В принципе идеально уже взять готовый REST+Angular (тот что был в уроках ранее), добавить регистрацию, авторизацию и вывод контента в зависимости от группы, например гость, юзер и админ.
По тестам, мне так надо с нуля, я однажды только заглядывал в Cucumber на c# но далеко не углубился, решил все же яву изучать. Огурчик есть и на спринг )
Ок, спасибо за идею. Что-нибудь подобное наверное и снимем.
Евгений, спасибо за видео. Очень круто!
Замечательный урок!
Теперь буду смотреть все остальные видео!
Спасибо. Ловите github.com/esurovtsev/goEuroTest
Спасибо большое, очень интересный пример, грамотно и ясно излагаете. Почерпнул для себя много нового, ввиду того что я джун.
вот на 32:54 для каких целей метод doWrite создается? Там всего 1 строка кода, не разумнее ее было оставить в методе write? Это для того, чтобы при тестировании проще понимать где код сыпется?
Спасибо Вам!
Не работает уже ссылка http error 406 И только в отладчике это понял, в логах мне писало просто Application startup failed.
Я не совсем понял смысла Immutable коллекций в данном контексте, да ее нельзя расширять и удалять из неё, но ведь объекты же в ней менять можно, так как они мутабельные, ещё когда в апи появятся новые поля, скорее всего api client упадёт, потому что у Jackson если я не ошибаюсь по умолчанию поведение такое, что если он находит неизвестные поля, то он выбрасывает исключение. Извините если я где-то ошибаюсь
А как записать в ЦСВ новую колонку со списком или мепом, который присутствует в респонсе?
Класс, продолжайте,очень интересно)
класс. ты очень хорошо рассказуешь. по делу и с рабочим кодом. пару фишек и себе забрал. но у меня вопрос. ты в доменной модели Suggestion используешь примитивы int/long/double . не опасно ли это? если бы ты данные с бд с Hibernate тащил, то вместо null получил бы 0, что не верно. Думаю, Jackson и другии б-ки сериализуют так же.
Да ты прав, сам всем рассказываю что для JSON сериализации нельзя использовать примитивы, потому что тогда "нет значения" трансформируется в 0 (что как бы валидный результат). Поэтому, на текущем уровне понимания вопроса, я бы сказал так, если значение должно быть, то в доменной модели я бы по прежнему использовал примитивы, с ними проще работать, за целостностью данных все равно нужно смотреть и отслеживать, если значения не те. На выдачу во внешний мир, например сериализация в JSON, лучше использовать полноценные объекты, тогда тот же Jackson настраивается чтобы на null просто пропускал все свойство, что явным образом сигнализирует, что оно (свойство) не определено.
Не совсем понимаю почему то автовайрим объекты то через new как маппер. Почему бы не придерживаться одной идеологии?
Зачем что-то лепить от ламбока, если можно обойтись try-catch-resource?
Онлайн-курс от GrabDuck.com:
В данном видео посмотрим пример взаимодействия с реальным REST сервисом. Будем по REST получать какие-то данные и конвертировать их в CSV формат. Сама идея подобного примера взята из реального тестового задания, которое компания предлагает выполнить соискателям на свою позицию.
Будем использовать Spring Boot, RestTemplate, а также библиотеки Apache HttpComponents с HttpClient и Jackson для работы с JSON и CSV. Посмотрим, как выполняется генерация в формат CSV с использованием Jackson.
Приглашаем Вас регистрироваться на grabduck.com
в какой версии jdk конкатинация оптимизирована ?
Сложно сказать точно. Тут stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java вот рассуждают, что в 1.6 уже была
thnx
33:50 как предполагается протестировать приватный метод?
Вроде я об этом говорю на 33:50 ;-) - вы можете в тесте подсунуть StringWriter в качестве параметров и потом проверить через StringWriter.toString(), то, что строка (а не реальный физический файл) была сохранена корректно, т.е. схема задана с правильными полями, объект dto соответствует схеме и т.д.
Это я примерно понял. У меня вопрос возник по поводу того, что он private :)
Ну так, как говориться "one step at a time". Выносите функциональность в отдельный приватный метод из соображений изложенных в 33:50. Потом приступаете к написанию теста на метод, выясняете, что не работает, потому как метод приватный, идете и меняете private на package и маркируете метод @VisibleForTesting ;-) Вся цепочка в видео не влезла )
Интересный урок! Дайте код в доступ поклацать самому!
Было уже в другом комменте. Поправлю описание. Держите github.com/esurovtsev/goEuroTest
Юнит тестов крайне мало.
Палец вверх)