четверг, 12 января 2017 г.

Панбагон. Nginx error при просмотре программы лояльности

Когда я жаловалась в ноябре прошлого года о том, как Синема Парк зажал мои билеты, мне писали комментарии в соцсетях — «Ну и че ты жалуешься? Зарегайся и всего делов. Неужели прям уйдешь к конкурентам, потому что поле не сохраняется без регистрации?». Ну как бы да, если появится такой же сервис, но более юзерфрендли, я пойду туда. Пока, правда 4DX кино только в Синема Парке есть, так что приходится страдать и записывать номер брони везде, где только можно.

На выходных пойдем в кино. Покупаю билеты. Может, все же зарегаться? Хрен с тобой... Вот только... Где? На главной есть кнопка «Вход в ЛК», но там только вход, регистрации нету. О, пойдем посмотрим, что у них за программа лояльности такая:

Нажимаем на большую кнопку на главной странице...

Тыкаем на большую кнопку на главной странице и... УПС!

среда, 11 января 2017 г.

Дата некорректна! И дальше что?

Давно пора создать рубрику таких шедевров...

Мой фотограф попросила меня зарегаться на сайте «Горько» и оставить отзыв. Почему бы и нет? Мне не сложно. К тому же я часто выбираю товар, основываясь на чужих отзывах, стараюсь и сама быть полезной. Пишу отзывы на яндекс-маркете, в интернет-магазине, в своем втором блоге...

Открываю сайт, вношу свои данные, включая дату свадьбы. Что я получаю взамен? «Дата некорректна»:

Ну и что я должна понять из этого текста?

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

Попробовала дату "в будущем" — поменяла год на 2017. Зарегалось! То есть "дата некорректна" = "дата не может быть в прошлом". Такое сообщение было бы понятнее, но все равно фигня какая-то. Я зашла в профиль и снова поменяла дату на 2016 — ошибок не было! Ну так и зачем ограничивать пользователя на этапе регистрации? Сайту же выгодно, если будут оставлять больше отзывов. Чем плох сценарий "я пришла после свадьбы, потому что меня попросили оставить отзыв"?

В общем, если улучшать текст ошибки, то писать точнее. Но в данном случае надо не текст улучшать, а вообще эту проверку на дату в прошлом убирать. Ну или не плакать потом, что пользователи жлобье, отзывы не пишут...

См также:
Сообщения об ошибках — тоже документация, тестируйте их!
Твой пароль плохой. Угадай, какой хороший
Найди некорректное сообщение по тексту ошибки

PS — добавила пост в общую копилку багов, сделав там раздел «шедевры плохих текстов об ошибках»

вторник, 10 января 2017 г.

Как воспроизвести то твои шаги?

Я уже научена горьким опытом возвращения к старым задачам. Знаю, что, когда пишешь в задаче "проверила, загрузив дубли" — это ни о чем не говорит. И если понадобится снова проверить тот же кейс, придется тратить время и вспоминать — «А как оно работает то? А что грузить? А данные где бы найти? А...». Поэтому, если я пишу в задаче, как получила ситуацию вручную, то прикладываю все вспомогательные запросы.

Описываем все подробненько

Перед новым годом проверяла большую задачу. Потом резюмировала:
  1. Тут плохо, вот тест.
  2. И тут плохо, вот еще тест.
  3. И тут...
Тестировала вьюшки, писала автотесты под них. Но автотесты могут врать — ведь я сама создаю исходное состояние базы данных. А потом уже смотрю, что приехало во view. И если что-то не приехало, варианта два:
  1. Баг в коде вьюшки.
  2. Баг в моем тесте, неправильно состряпала исходное состояние.
Упал довольно сложный автотест, где мудреное исходное состояние. Вполне могла и я неправильно что-то сделать. Поэтому проверила вручную — повторяется!

Так и записала в комменте к задаче, указала на автотест + подробное описание, как воспроизвести вручную:

четверг, 29 декабря 2016 г.

С новым годом! Прощай, 2016

Ура, новый год!

С наступающим новым годом!
Не уверена, что это какая-то особая, волшебная черта, после которой ты резко займешься спортом, похудеешь, начнешь уделять больше времени семье, учебе, работе... Если хочешь что-то изменить, начинай сегодня, сейчас. Не завтра и не в понедельник.

И все же новый год — хорошее время подведения итогов. Можно оглянуться назад, вспомнить, чего ты хочет. Оценить, что сделал. В общем, провести ретроспективу года, чтобы следующий стал еще лучше Smile :)

Давайте, я начну, а вы подтягивайтесь =)

Итоги года

Наша газета. Все выпуски 2016 года

Лицо года!

В этом году у нас появилась собственная газета! По пятницам у нас проходят «новости компании и мира» — все собираются и рассказывают, что у кого произошло, на работе и не только Smile :)

Новости нравятся ребятам. они рассказывали об этом в ролике о компании. И вот один доброволец решил делать газету. После того, как наш офис опустел, народ собирался на новости вяло, поэтому в один из дней Костя закинул наживку: не просто объявил в общем чатике «новости», но и добавил фор фан картинку новостей:

Первая новость в чатике

Через неделю опять. И опять:

среда, 28 декабря 2016 г.

Больно пилить автотесты? Проси улучшать!

Есть у нас в базе таблица, где хранится плоская запись. Точнее, хранилась, теперь там BLOB. Но не суть. В плоской записи 600 полей, которые называются field_1, field_2... field_600.

В коде зашит меппинг этих филдов на нормальные названия:

<entry key="cat" value="6"/>
<entry key="dog" value="13"/>
...
<entry key="human" value="15"/>

Файлик с меппингом назовем... Ну, допустим, р2о (plain to object). Он с хитринкой — так как в java отсчет начинается с нуля, а не с единицы, то к value надо было добавить 1, чтобы получить field в базе. Вот, например, key="cat" → в базе это был field_7.

Сами по себе поля field_* проблем не приносили, потому что обычно база заполнялась из файликов, а дальше уже темная магия все разруливала и сразу красота! А вот в автотестах всегда черт ногу сломит. Открываешь тест, тебе надо поправить фамилию. А у тебя на входе эти 600 полей. И в каждой сборке свой меппинг. Где-то фамилия — это номер 2, где-то номер 4, где-то 6, и так далее.

И вот ты такой открываешь тест, который надо поправить. Открываешь р2о. Находишь там нужное тебе поле. Сидишь, тупишь, вспоминая, надо от value отнять единичку или прибавить... Правишь тест. Профит! Но затупы на «отнять или прибавить» особенно раздражали.

А уж если кто-то внес изменения в р2о! Изменил одно поле? Все, гудбай все тесты → рассыпались как карточный домик, надо ходить и уныло актуализировать. Так как актуализацией занималась я, то и страдала тоже я Smile :)

Страдала я громко, плакалась на митингах и в чатике:
— Опять тесты развалились из-за р2о. Давайте сделаем так, чтобы они не падали??
— Оля, отстань! Зачем тратить на это ресурсы? Не так уж часто р2о меняется. Один раз в год подняла тесты, это проще, чем тратить пару дней разработчика.

В общем, в случае пожара — горите.

Тебе тяжело? Ты и страдай

Панбагон. Заставка Русалочки не масштабируется на весь экран

В моей любимой «Русалочке (3 в ряд)» снова обновление! Любимой потому, что бажная))) Как не поиграешься, вечно утыкаешься в косяк.

Открываю игрушку на днях, а там заставку обновили — новый год жеж! Повесили на Русалочку шарфик, добавили елки и игрушки:

Видишь проблему?

Видите проблему? Правильно, нет Smile :)
Потому что на этом скриншоте нет проблемы. Ну, допустим, картинка не во весь экран шириной, и что? По бокам уютные синие полосы, ты можешь даже не заметить: