
Dima
28.10.2016
13:58:38
При том что в НГУ во времена СССР поподали люди имеющие победы на олимпиадах республиканского уровня. Т.е. разбирающиеся в логике и матиматике на должном уровне.

Sergey
28.10.2016
14:18:51
https://www.ozon.ru/context/detail/id/33253422/ каждой девушке - программистке в подарок?
вообще читал что женщины мало работают в технических сферах потому что им общения не хватает

Google

I
28.10.2016
14:23:20
ой, да как будто в технической сфере нельзя пообщаться)

Sergey
28.10.2016
14:25:45
общение серьезное видимо, логическое, а женщинам эмоции подавай?
Хотя я работал раньше в проектной организации и там целый женский отдел был, все время болтали. Хорошо я в наушниках сидел.

Alex
28.10.2016
14:30:30
в наушниках можно слух испортить.

Sergey
28.10.2016
14:32:15
может быть, сейчас дома работаю, так что без?
ты испортил слух?

Dima
29.10.2016
12:49:19
https://gist.github.com/anonymous/b76d3f289e79bb92b47753a423e706b6 - в коде присутсвуют длиннющие простыни разворачивающие элементы массива params в одноименные переменные. По моему это не самый лучший код. Как решать такие вопросы подобающим образом?

ojab
29.10.2016
12:49:52
а что ты с этими переменными потом делаешь?

Dima
29.10.2016
12:50:50

Danila
29.10.2016
12:51:46
в конструктор объекта нельзя просто передать хэш параметров?

Dima
29.10.2016
12:53:50
Короче я смотрю на код: https://gist.github.com/anonymous/1c719a7ac6bc6bd6b714fa78b745eb4e И что-то внутри меня говорит, что так делать не надо, и что тут нарушины какие-то основопологающие подходы в проектировании rails. Можно как-то изящней и красивей делать.

Alex
29.10.2016
12:55:26
Ага

Google

Alex
29.10.2016
12:55:34
вытащить всё это месиво в отдельный класс
схренали в модельке простыня одного метода на пару страниц?

Dima
29.10.2016
12:55:59

Alex
29.10.2016
12:56:05
ТЕМ БОЛЕЕ

Dima
29.10.2016
12:56:19

ojab
29.10.2016
12:56:26

Dima
29.10.2016
12:56:50

Alex
29.10.2016
12:58:07
вся эта простыня в начале заменяется на params.permit(:from, :blah).map(&:strip)

Dima
29.10.2016
13:00:35
&:strip
это как прочитать?
явно метод strip запускается
а вот &

Иван
29.10.2016
13:01:03
map{|e| e.strip}

Dima
29.10.2016
13:01:24

Alex
29.10.2016
13:01:47
http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby

Dima
29.10.2016
13:02:25

Lupsick
29.10.2016
13:13:33
Кокой длинный метод
спасибо
Попробуй dry-validation или virtus

Dima
29.10.2016
13:15:45
я вот думаю, чтоб не было таких больших методов. Надо по мимо инструментов всторенных в руби, и отдельных гемов, еще внутри класса создавать свои подклассы. чтоб в них переносить логику
Так же делают?

Google

Dima
29.10.2016
13:17:47
или отдельные файлы создают с классами

Alex
29.10.2016
13:18:24
Делают класс который делает какую то задачу
и потом в контроллере просто дергаешь этот класс.

Lupsick
29.10.2016
13:18:37

Alex
29.10.2016
13:18:48
А вот с наследованием поаккуратнее.

Dima
29.10.2016
13:19:27
т.е. даже не надо заморачиваться созданием нового файла

Alex
29.10.2016
13:19:38
Плохая идея.
Зачем пилить класс внутри класса?

Dima
29.10.2016
13:19:52

Alex
29.10.2016
13:19:54
заморачиваться? лол, лучше заморочиться но такие портянки не иметь

Dima
29.10.2016
13:19:55
как правильно?

Alex
29.10.2016
13:20:06
Как тебе удобнее. Я пилю просто специальный класс который делаешт эту задачу и все.
Нет правильного решения, есть решения лучше или хуже.

Dima
29.10.2016
13:20:17

Lupsick
29.10.2016
13:20:25
Это называется сервисы

Alex
29.10.2016
13:20:28
А какую задачу он выполняет?

Lupsick
29.10.2016
13:20:31
Погугли руби сервисы

Alex
29.10.2016
13:20:35
В данном случае сервис да.
Но в модельке бывает своя большая логика и это вроде как не сервисы.

Google

Dima
29.10.2016
13:21:00

Alex
29.10.2016
13:21:08

Lupsick
29.10.2016
13:21:12
Лучше вынести в сервис, модели это вообще зло

Alex
29.10.2016
13:21:20
Вот я этот юзал, не знаю насколько он хорош, но мне понравился

Dima
29.10.2016
13:21:21

Alex
29.10.2016
13:21:28
Он и валидации умеет.

Dima
29.10.2016
13:22:05

Alex
29.10.2016
13:22:26
Есть еще большой вариант: https://github.com/collectiveidea/interactor
Не знаю не юзал. Но функционала у него побольше.

Admin
ERROR: S client not available

Alex
29.10.2016
13:22:41
Я бы начал с первого.

Dima
29.10.2016
13:23:13

Lupsick
29.10.2016
13:23:19
Я юзаю теперь постоянно
Охуенная штука

Dima
29.10.2016
13:23:23
будем разбираться и рефакторить систему

Alex
29.10.2016
13:23:30

Dima
29.10.2016
13:23:32
сервисы

Alex
29.10.2016
13:23:33
Второй полагаю.

Lupsick
29.10.2016
13:23:39

Google

Dima
29.10.2016
13:23:44
а--аа ясно

Lupsick
29.10.2016
13:23:57
Всем советую перекатиться

Alex
29.10.2016
13:24:07
И самое главное их тестировать проще.
Методы контроллеров должны быть небольшие совсем.
Иначе, скорее всего что то не так.

Lupsick
29.10.2016
13:24:27
Можно только их и протестировать
И у тебя 90% считай

Alex
29.10.2016
13:25:01
Ну да. Но все равно можно обжечься.
Я вот даже не знаю что лучше тестировать интерактор или весь контроллер в целом.

Lupsick
29.10.2016
13:25:29
Еще я нашел что есть интеракторы на других языках

Alex
29.10.2016
13:25:32
С контроллером получается полное покрытие. А интерактор банально быстрее протестировать.
Интерактор это паттерн.

Lupsick
29.10.2016
13:25:49
Покажи

Alex
29.10.2016
13:26:08
https://en.wikipedia.org/wiki/Interaction_design_pattern
Думаю оно
Или нет.
http://stackoverflow.com/questions/35746546/android-mvp-what-is-an-interactor
Вот еще по теме.
> Advantages of using interactor in a separate class is that it will decouple your class, thus making it cleaner and testable

Lupsick
29.10.2016
13:33:36
Круто

Alex
29.10.2016
13:33:49
не особо (
Я бы хотел получить фидбэк о лучшем варианте.
Есть configure в котором есть метод default_backend.
Как выглядит более идиоматично/лучше?
ActiveSMS.configure do |config|
c.default_backend = :my_backend_name
end
Или
ActiveSMS.configure do |config|
c.default_backend :my_backend_name
end
Забыл уточнить что там есть проверка вводимого значения.

Dima
29.10.2016
14:31:38