Сообщение Re[7]: И вот feedback от них и мои им ответы от 09.03.2019 11:16
Изменено 09.03.2019 11:22 arth
Re[7]: И вот feedback от них и мои им ответы
Здравствуйте, binnom, Вы писали:
...
A>>я, строго говоря, им ничего не должен, как и они мне. вот если бы я на них работал, было бы другое дело.
B>Ты к ним и не попадешь, если будешь и впредь продолжать жить в парадигме совковой настырности. Это не оскорбление, а констатация факта, я сам был таким же, и это стоило мне довольно дорого.
так я и не собираюсь к ним попадать.
A>>>>>>If we transfer negative amount money, author don’t throw exceptions, it takes abs value of this amount and transfer positive amount of money.
A>>>>>>transferring negative amount is something which is odd. So it's a
A>>>>>>convention. It either has to be documented or exception should be
A>>>>>>thrown. So I partially agree.
B>>>>>ИМО это эпичный фэйл, а не partially agree.
A>>>>эпичный фейл это отсутствие abs. а с abs это просто другая культура
B>>>Мде.
A>>ну да. где-то -1 — это "все хорощо", а где-то 0. но я в целом согласен, что тут лучше с exception. я не согласен с тем, что это major
B>Понимаешь в чем проблема, тебе было очевидно, что надо сделать Abs, а мне — нет. Я, как пользователь API, не должен додумывать за его создателя, я должен получить ясный ответ, в чем моя проблема. Не надо делать странные манипуляции с инпутом, надо просто кидать кастомный эксепшен с объяснением проблемы.
получил бы в документации. но тут уже че мусолить, я согласился что у меня не лучший варик
A>>>>>>Author don't know how to catch exceptions in junit
A>>если по теме, то я не совсем понял суть предложения "Author don't know how to catch exceptions in junit". как ловить эксепшены вне Junit я, кажется, знаю)
B>Я не джавист, но полагаю что речь вот об этом:
B>
B>Это собственно, очень печально, поскольку такой функционал появился, судя по release notes, появился в 2006 году. Ты должен был объявить кастомный эксепшен для этой ситуации, и кидать его, а юнит-тест, полагаю, должен был быть таким:
B>
почему печально? я просто этого не знал. может быть потому, что на джаве в прод писал я меньше года. и это как-бы публичная инфа на работодателя.
B>Улучшенная версия, разумеется, не должна содержать конкретной имплементации депенденсис, потому что ты тестируешь поведение твоего кода в контролируемом окружении (повторяю — я не джавист):
B>
у меня прям в коде есть коммент "mock Storage?". Я просто не стал этого делать
...
A>>я, строго говоря, им ничего не должен, как и они мне. вот если бы я на них работал, было бы другое дело.
B>Ты к ним и не попадешь, если будешь и впредь продолжать жить в парадигме совковой настырности. Это не оскорбление, а констатация факта, я сам был таким же, и это стоило мне довольно дорого.
так я и не собираюсь к ним попадать.
A>>>>>>If we transfer negative amount money, author don’t throw exceptions, it takes abs value of this amount and transfer positive amount of money.
A>>>>>>transferring negative amount is something which is odd. So it's a
A>>>>>>convention. It either has to be documented or exception should be
A>>>>>>thrown. So I partially agree.
B>>>>>ИМО это эпичный фэйл, а не partially agree.
A>>>>эпичный фейл это отсутствие abs. а с abs это просто другая культура
B>>>Мде.
A>>ну да. где-то -1 — это "все хорощо", а где-то 0. но я в целом согласен, что тут лучше с exception. я не согласен с тем, что это major
B>Понимаешь в чем проблема, тебе было очевидно, что надо сделать Abs, а мне — нет. Я, как пользователь API, не должен додумывать за его создателя, я должен получить ясный ответ, в чем моя проблема. Не надо делать странные манипуляции с инпутом, надо просто кидать кастомный эксепшен с объяснением проблемы.
получил бы в документации. но тут уже че мусолить, я согласился что у меня не лучший варик
A>>>>>>Author don't know how to catch exceptions in junit
A>>если по теме, то я не совсем понял суть предложения "Author don't know how to catch exceptions in junit". как ловить эксепшены вне Junit я, кажется, знаю)
B>Я не джавист, но полагаю что речь вот об этом:
B>
B> @Test
B> fun testFailedAdd() {
B> val s = WalletImpl( StorageImpl())
B> try {
B> s.add("1", (-1).toBigDecimal())
B> }
B> catch (e: Exception) {
B> Assert.assertTrue(s.list().count() == 0)
B> return
B> }
B> Assert.assertTrue(false)
B>}
B>
B>Это собственно, очень печально, поскольку такой функционал появился, судя по release notes, появился в 2006 году. Ты должен был объявить кастомный эксепшен для этой ситуации, и кидать его, а юнит-тест, полагаю, должен был быть таким:
B>
B> @Test(expected = WhateverCustomException.class)
B> fun Add_should_fail_when_negative_input_value_provided() {
B> val s = WalletImpl( StorageImpl())
B> s.add("1", (-1).toBigDecimal())
B> }
B>
почему печально? я просто этого не знал. может быть потому, что на джаве в прод писал я меньше года. и это как-бы публичная инфа на работодателя.
B>Улучшенная версия, разумеется, не должна содержать конкретной имплементации депенденсис, потому что ты тестируешь поведение твоего кода в контролируемом окружении (повторяю — я не джавист):
B>
B> @BeforeClass
B> public void setUpClass() throws Exception {
B> // тут инициализация абстракций
B> _storage = Substitute.For<Storage>() // хз как это делать в джаве
B> }
B> @Test(expected = WhateverCustomException.class)
B> fun testFailedAdd() {
B> val s = WalletImpl(_storage);
B> s.add("1", (-1).toBigDecimal())
B> }
B>
у меня прям в коде есть коммент "mock Storage?". Я просто не стал этого делать
Re[7]: И вот feedback от них и мои им ответы
Здравствуйте, binnom, Вы писали:
...
A>>я, строго говоря, им ничего не должен, как и они мне. вот если бы я на них работал, было бы другое дело.
B>Ты к ним и не попадешь, если будешь и впредь продолжать жить в парадигме совковой настырности. Это не оскорбление, а констатация факта, я сам был таким же, и это стоило мне довольно дорого.
так я и не собираюсь к ним попадать.
A>>>>>>If we transfer negative amount money, author don’t throw exceptions, it takes abs value of this amount and transfer positive amount of money.
A>>>>>>transferring negative amount is something which is odd. So it's a
A>>>>>>convention. It either has to be documented or exception should be
A>>>>>>thrown. So I partially agree.
B>>>>>ИМО это эпичный фэйл, а не partially agree.
A>>>>эпичный фейл это отсутствие abs. а с abs это просто другая культура
B>>>Мде.
A>>ну да. где-то -1 — это "все хорощо", а где-то 0. но я в целом согласен, что тут лучше с exception. я не согласен с тем, что это major
B>Понимаешь в чем проблема, тебе было очевидно, что надо сделать Abs, а мне — нет. Я, как пользователь API, не должен додумывать за его создателя, я должен получить ясный ответ, в чем моя проблема. Не надо делать странные манипуляции с инпутом, надо просто кидать кастомный эксепшен с объяснением проблемы.
получил бы в документации. но тут уже че мусолить, я согласился что у меня не лучший варик
A>>>>>>Author don't know how to catch exceptions in junit
A>>если по теме, то я не совсем понял суть предложения "Author don't know how to catch exceptions in junit". как ловить эксепшены вне Junit я, кажется, знаю)
B>Я не джавист, но полагаю что речь вот об этом:
B>
B>Это собственно, очень печально, поскольку такой функционал появился, судя по release notes, появился в 2006 году. Ты должен был объявить кастомный эксепшен для этой ситуации, и кидать его, а юнит-тест, полагаю, должен был быть таким:
B>
почему печально? я просто этого не знал. может быть потому, что на джаве в прод писал я меньше года. и это как-бы публичная инфа для работодателя.
B>Улучшенная версия, разумеется, не должна содержать конкретной имплементации депенденсис, потому что ты тестируешь поведение твоего кода в контролируемом окружении (повторяю — я не джавист):
B>
у меня прям в коде есть коммент "mock Storage?". Я просто не стал этого делать
...
A>>я, строго говоря, им ничего не должен, как и они мне. вот если бы я на них работал, было бы другое дело.
B>Ты к ним и не попадешь, если будешь и впредь продолжать жить в парадигме совковой настырности. Это не оскорбление, а констатация факта, я сам был таким же, и это стоило мне довольно дорого.
так я и не собираюсь к ним попадать.
A>>>>>>If we transfer negative amount money, author don’t throw exceptions, it takes abs value of this amount and transfer positive amount of money.
A>>>>>>transferring negative amount is something which is odd. So it's a
A>>>>>>convention. It either has to be documented or exception should be
A>>>>>>thrown. So I partially agree.
B>>>>>ИМО это эпичный фэйл, а не partially agree.
A>>>>эпичный фейл это отсутствие abs. а с abs это просто другая культура
B>>>Мде.
A>>ну да. где-то -1 — это "все хорощо", а где-то 0. но я в целом согласен, что тут лучше с exception. я не согласен с тем, что это major
B>Понимаешь в чем проблема, тебе было очевидно, что надо сделать Abs, а мне — нет. Я, как пользователь API, не должен додумывать за его создателя, я должен получить ясный ответ, в чем моя проблема. Не надо делать странные манипуляции с инпутом, надо просто кидать кастомный эксепшен с объяснением проблемы.
получил бы в документации. но тут уже че мусолить, я согласился что у меня не лучший варик
A>>>>>>Author don't know how to catch exceptions in junit
A>>если по теме, то я не совсем понял суть предложения "Author don't know how to catch exceptions in junit". как ловить эксепшены вне Junit я, кажется, знаю)
B>Я не джавист, но полагаю что речь вот об этом:
B>
B> @Test
B> fun testFailedAdd() {
B> val s = WalletImpl( StorageImpl())
B> try {
B> s.add("1", (-1).toBigDecimal())
B> }
B> catch (e: Exception) {
B> Assert.assertTrue(s.list().count() == 0)
B> return
B> }
B> Assert.assertTrue(false)
B>}
B>
B>Это собственно, очень печально, поскольку такой функционал появился, судя по release notes, появился в 2006 году. Ты должен был объявить кастомный эксепшен для этой ситуации, и кидать его, а юнит-тест, полагаю, должен был быть таким:
B>
B> @Test(expected = WhateverCustomException.class)
B> fun Add_should_fail_when_negative_input_value_provided() {
B> val s = WalletImpl( StorageImpl())
B> s.add("1", (-1).toBigDecimal())
B> }
B>
почему печально? я просто этого не знал. может быть потому, что на джаве в прод писал я меньше года. и это как-бы публичная инфа для работодателя.
B>Улучшенная версия, разумеется, не должна содержать конкретной имплементации депенденсис, потому что ты тестируешь поведение твоего кода в контролируемом окружении (повторяю — я не джавист):
B>
B> @BeforeClass
B> public void setUpClass() throws Exception {
B> // тут инициализация абстракций
B> _storage = Substitute.For<Storage>() // хз как это делать в джаве
B> }
B> @Test(expected = WhateverCustomException.class)
B> fun testFailedAdd() {
B> val s = WalletImpl(_storage);
B> s.add("1", (-1).toBigDecimal())
B> }
B>
у меня прям в коде есть коммент "mock Storage?". Я просто не стал этого делать