
I
22.11.2016
08:59:53
а, вопрос почему
хм
сорсы к вашим услугам

Alexander
22.11.2016
09:00:07
1. меня смущает, почему можно обращаться к константе без указания класса, хотя она принадлежит классу (классовый метод из инстанции не вызовешь без self.class, а константу получишь)
2. начинается веселье с наследованием: наследование константы не работает без self.class::FOO

Google

Alexander
22.11.2016
09:00:51
сорсы к вашим услугам
да-да, просто хочется меньше страдать, и вдруг кто знает / видел статью на эту тему, у меня не получилось найти

Danila
22.11.2016
09:13:38
гугли constant lookup

Dmitriy
22.11.2016
09:16:38
Привет всем! А использования во view шаблонов .js.erb является не очень хорошей идеей? Просто здесь кто то говорил, что это порождает кривую архитектуру приложения

I
22.11.2016
09:18:05
да, не очень

Dmitriy
22.11.2016
09:18:40
а как быть если нужно js в ответе? писать все в контроллере?

Alexander
22.11.2016
09:19:47

Alex
22.11.2016
09:20:19
JS ответы дебажить посложнее.

Nikolay
22.11.2016
09:20:59

Dmitriy
22.11.2016
09:21:46
Ясно) понял)

Daniel
22.11.2016
09:21:48

Google

Alex
22.11.2016
09:22:35

Daniel
22.11.2016
09:23:00

Alex
22.11.2016
09:23:16
Что мешает фронтендовому js мутировать дом?

Daniel
22.11.2016
09:23:21
Смотри, я не о получении js, а о конкретном использование js.erb
Тоесть запихнуть все в js, и html, и css, и все перемешать ?

Alex
22.11.2016
09:25:58
Что значит перемешать?
js ответ это и есть лапша из кода. Этот JS должен был быть изначально на фронте.
а не в ответе приходить.
JS ответ экономит время, но его сложнее дебажить, тестировать и поддерживать.

I
22.11.2016
09:27:09

Alex
22.11.2016
09:27:23
Так проще протестировать JS который скачивается на клиент изначально.

I
22.11.2016
09:27:30
да
у нас вот нет тестов на фронте - и это порой печалит

Alex
22.11.2016
09:28:07
У меня было react.js приложение. Возможно фронт не очень это понимал, но мы постоянно тормозились изза того что тестов нет, хотя бы интеграционных.
Что то вечно отваливалось на фронте. Тогда как на бэке все ошибки были как правило логические.

I
22.11.2016
09:29:57
ну вообще через тот же protracktor можно написать

Rafkat
22.11.2016
09:30:19
Зелениум?

Alex
22.11.2016
09:30:22
Написано что он для ангуляра.

Daniel
22.11.2016
09:30:27

Alex
22.11.2016
09:30:32
я к nightwatch присматривался, но мне не хватило скилов его прикрутить.

Google

Alexander
22.11.2016
09:39:23

Daniel
22.11.2016
09:40:41
для ajax нужен json, какой js.erb?
Да ладно ? А когда сработает ответ, то ты ничего не меняешь на странице ? И соответственно оперируешь только данными ? + прямо во вьюху пихаешь js ?

Lupsick
22.11.2016
09:40:50
Вот бы щас поговнокодить

Alex
22.11.2016
09:41:05
Толстый клиент.

Alexander
22.11.2016
09:41:46

Daniel
22.11.2016
09:41:46

Alex
22.11.2016
09:42:09
Потому что это дебажить сложно

Alexander
22.11.2016
09:42:17

Alex
22.11.2016
09:42:18
зачем каждый раз генерировать js если тебе нужны только данные?

Alexander
22.11.2016
09:42:35

Daniel
22.11.2016
09:42:35

Alex
22.11.2016
09:42:39
у тебя будет один и тот же клиент который можно протестировать один раз. Который не будет от разных данных ломаться и каждый раз заново генерироваться.
Помимо этого он лучше кешируется и делает меньше нагрузки, т.к ты возвращаешь только данные в виде json.

Daniel
22.11.2016
09:43:07

Alex
22.11.2016
09:43:09
- Гоняешь меньше байтов
- Тестируемость

Daniel
22.11.2016
09:43:22
Гораздо проще будет разбить на мелкие части и протестировать

Alexander
22.11.2016
09:43:26
как пишется api для гугл карт, например? отдаёшь в запрос адрес, получаешь координаты, рисуешь что тебе нужно как нужно где нужно.
вот делайте у себя точно так же, пожалуйста.

Alex
22.11.2016
09:43:26

kolas
22.11.2016
09:43:33
js.erb это как в react jsx

Google

Alex
22.11.2016
09:43:35
На фронте у тебя может быть все нормально и логично сделано. Почему куча то?

Daniel
22.11.2016
09:43:45
А в случае с толстым клиентом нет ?

Alexander
22.11.2016
09:43:52

Alex
22.11.2016
09:44:02

Alexander
22.11.2016
09:44:35
зачем шаблонизатор для бандлинга?

Alex
22.11.2016
09:44:50
Смотри, еще раз плюсы толстого клиента:
- Меньше гоняешь байтов
- Тестируемость
- Меньше нагрузка.

Daniel
22.11.2016
09:44:51

Alexander
22.11.2016
09:45:12

Admin
ERROR: S client not available

Alex
22.11.2016
09:45:17
капибарой тестировал?

Daniel
22.11.2016
09:45:53
С чего бы?
и что, она сама протестит и изменение, и данные ?

Alex
22.11.2016
09:46:27
Зачем тестировать данные которые были сгенерированы в том же тесте? тебя интересует что конечная форма именно такая которую ты ожидаешь.
Возможно стоит попробовать капибару перед тем как говорить что это сложно тестировать.

Daniel
22.11.2016
09:48:41

Alex
22.11.2016
09:49:14
Лол, я выше уже привел плюсы, а тестировать капибарой все равно надо фронт.
Так капибара не добавляется именно тут, капибара уже была.

Google

Alexander
22.11.2016
09:50:25
я хоть и не пишу тесты в большинстве случаев (пепел на мою голову, да), но и то понимаю смысл тестирования, в том числе роль и смысл капибары.
решай не проблемы кода, а проблемы проекта.
тестируй не код, а проект.
изи

Daniel
22.11.2016
09:50:50

Alexander
22.11.2016
09:51:41

Alex
22.11.2016
09:51:42
Ты серьезно? ?

Daniel
22.11.2016
09:52:17

Alexander
22.11.2016
09:52:21
я же не тру за тесты здесь, на этот счёт меня можно правда не слушать, я тру за логику и решение проблем.

Daniel
22.11.2016
09:52:52

Alex
22.11.2016
09:53:10
Тесты банально помогают поддерживать и разрабатывать приложение. Пока не попробуешь активно их юзать профитов не почуствуешь. Т.е тот кто пишет тесты и тот кто не пишет друг друга не понимают.

Alexander
22.11.2016
09:54:18

Alex
22.11.2016
09:54:58
Я не очень понял в чем я ошибаюсь ?

Alexander
22.11.2016
09:55:27

Alex
22.11.2016
09:55:35
Именно по теме тестирования

Daniel
22.11.2016
09:55:38

Alex
22.11.2016
09:55:42
и в частности разработку через тестирование.

Alexander
22.11.2016
09:55:51

Alex
22.11.2016
09:56:18
причем, потом открываются глаза "как я раньше без тестов жил".

Alexander
22.11.2016
09:56:19

Alex
22.11.2016
09:56:34
Он гоняет лишние данные туды сюды и генерит лишний шаблон.