add icon indicating copy to clipboard operation
add copied to clipboard

Выделить циклы и слова если - в отдельную включаемую функциональность, выключенную по умолчанию

Open ghost opened this issue 6 years ago • 10 comments

Существует проблема

Мы не можем съездить в Лондон - потому как вместо Gherkin кто-то реализовал какой-то свой DSL

Хотелось бы иметь следующую функциональность

Переход разделить на 2 этапа

  • При появлении слов для Цикла и Если валить предупреждение о DEPRECATED функциональности
  • с определенного релиза валить ошибку без явного включения функциональности
  • включение использования слов сделать опциональным - в момент включения показывать список Рисков такого включения

Дополнительный контекст

В феврале нас пригласили в Лондон на конференцию, нужно переходить на правильные рельсы.

также смотри #281

ghost avatar Sep 23 '19 04:09 ghost

Имхо нужно сделать два плагина-бэкенда:

  • Gherkin
  • TurboGherkin

И тогда будут и овцы сыты и волки целы ;-) Тем более там как раз код с высокой связностью: вроде как парсинг геркина выделен в отдельный плагин-обработку, но с другой стороны он фактически не отделим и давно напрашивается рефакторинг, мы с @artbear уже этот вопрос затрагивали, когда обсуждали возможность впилить multiline-строки. В итоге строки Артур сделал, но без глобального рефакторинга.

Т.е. высокоуровневый план рефакторинга такой:

  • [ ] "отвязать" текущую реализацию TurboGherkin'а, оформить в виде плагина и сформировать API бэкенда
  • [ ] реализовать плагин Gherkin (Orthodox Gherkin ;-))

("Как нарисовать сову?" https://a.d-cd.net/87d8fb2s-960.jpg)

:heavy_check_mark: Profit!

Если просто тупо выкинуть текущую реализацию со всеми ее циклами и условными конструкциями, то это отвернет 99,9% всех пользователей, это убийство продукта.

kuntashov avatar Sep 23 '19 06:09 kuntashov

@kuntashov чуть расширил - чтобы не звучала так страшно.

ghost avatar Sep 23 '19 07:09 ghost

@kuntashov рефакторинг штатного парсера выделен в отдельный ишуз. Там еще и ускорение в 10 раз предстоит сделать ;-)

ghost avatar Sep 23 '19 07:09 ghost

Вот "прекрасно" все в этом ишью - и мотивация, и решение. Вы хотите ADD закопать?

atai avatar Oct 09 '19 12:10 atai

@atai я не понял вас ? вы хотите оставить Циклы и Условия ? почему вы решили это правильно ?

ghost avatar Oct 10 '19 10:10 ghost

@atai я не понял вас ? вы хотите оставить Циклы и Условия ? почему вы решили это правильно ?

Хочу да. Трудоемкость написания тестов нужно снижать. При этом аргументация "тесты должны быть простыми" мне кажется ошибочной - тесты поведения должны быть на столько сложными, на сколько сложно поведение программы. Кроме того, аргументация в духе "мы тут едем в Лондон поэтому отломаем вам функцию которой вы пользуетесь"... ну как бы оскорбительно для пользователей. Мое мнение. Вынести циклы и условия в опцию - хорошо. Но опция должна быть по умолчанию включена. Вы и в Лондоне все покажете как хотите и не отломаете ничего пользователям ADD.

atai avatar Oct 11 '19 04:10 atai

@atai я вас услышал и понял. Вы меня тоже поймите - у меня нет обоснования методического необходимости условий и циклов. Обоснование - нам удобно я знаю. Я даже знаю почему.

Я закинул удочку методологам по Cucumber в части условий и циклов - их позиция известна. Циклы - это структура сценария. Условия и перебор - это step_defitions.

Это противоречие которое необходимо разрешить в будущем.

ghost avatar Oct 11 '19 10:10 ghost

@artbear проверять можно через Sonar Gherkin

ghost avatar Oct 16 '19 22:10 ghost

Я правильно понимаю, циклы считаются неарийским методом и поддерживаться, развивать и даже исправляться не будут?

Если да. то у меня вопрос - есть например, тысяча контрагентов. которых мне нужно создать а потом выполнить для каждого из них двадцать действий в разных формах. Я правильно понимаю, мне нужно написать 20 тысяч строк? Или же это можно как-то третьим способом сделать?

forsaled avatar Feb 28 '20 15:02 forsaled

Сделай реализацию шага и в коде напиши для сч по 10000 цикл Ванесса.шаг("

pumbaEO avatar Feb 28 '20 19:02 pumbaEO