
Mikhail
11.12.2016
16:41:35
Тогда джунов вообще брать нельзя работать)

Alex
11.12.2016
16:42:25
Если он не юзал STI а в проекте много где это юзается то он долго будет разбираться
а еще это говорит о том что он не знает подводных камней, не набил шишек еще с этими вещами.

Mikhail
11.12.2016
16:42:55
любой код можно нагавнокодить так что даже сеньор будет долго разбираться

Google

Alex
11.12.2016
16:43:22
причем здесь это мне не понятно.

Mikhail
11.12.2016
16:44:14
Ну возможно. Но не думаю что это корень зла. Ты говоришь с того смысла, что валяется брошенный проект и ищут чувака, который придет и будет сходу фичи резилить, тогда я с тобой полностью согласен. Но если на проекте есть команда, я думаю паттерны совсем не критично

Alex
11.12.2016
16:45:29
Критично если об этом указано в вакансии

Антон
11.12.2016
16:45:37
я не встречал челвоека который сходу начинает релизить
всегда нужно время въехать

Alex
11.12.2016
16:46:24
тем более в новый паттерн.

Антон
11.12.2016
16:47:11
эм... ну допустим... но сомнительно
количество паттернов избыточно
это как фактультатив: найти паттерн который в рельсе не реализован и реализовать
а нужен он или нет - не тема факультатива
паттернов как фреймворков в js

Mikhail
11.12.2016
17:09:08
Антон то есть ты отбираешь сотрудников исходя из знания паттернов?
Не юзал форм обджект ты нам не подходишь

Антон
11.12.2016
17:09:29
нет

Google

Антон
11.12.2016
17:09:35
это был скарказм

Mikhail
11.12.2016
17:09:40
тогда зачем это писать в вакансии)

Антон
11.12.2016
17:09:56
нормальых людей не бывает
каждый с придурью

Mikhail
11.12.2016
17:10:19
Бывают те кто юзает паттерны и те кто нет)
?

Антон
11.12.2016
17:10:47
монады - паттерн?

Mikhail
11.12.2016
17:11:03
а я незнаю. не вдавался в подробности
скорее всего да

Антон
11.12.2016
17:11:30
ну я бы указал монады в требованиях
а MVC нет

Mikhail
11.12.2016
17:12:48
сложность использования монад и формобджекта сравнимы?

Антон
11.12.2016
17:13:38
боюсь нет
а формобджект выкуривается за день с тестами и реализацией фичи

Mikhail
11.12.2016
17:14:14
это если ты не юзал

Антон
11.12.2016
17:14:20
я вот не понял монады, мне даже сознаться не стыдно

Mikhail
11.12.2016
17:14:22
и решил сам почитать разобраться.

Антон
11.12.2016
17:14:47
хотя я монады не сильно стремился понять, читал пару раз по диагонали

Mikhail
11.12.2016
17:14:49
Я монады смотрел в рамках dry-rb и тоже не понял профита.

Google

Антон
11.12.2016
17:15:10
кажется мне что они в рубях/рельсах не очень нужны

Mikhail
11.12.2016
17:15:15
по мне это service provider какой то

Alex
11.12.2016
17:15:17
Монады в общем то просты
Просто это не рубивэй
Как уже до этого спор был

Антон
11.12.2016
17:15:40

Alex
11.12.2016
17:15:41
в руби pattern matching нет

Mikhail
11.12.2016
17:15:42
Они же вроде из жабы пришли

Alex
11.12.2016
17:15:56
Ну у тебя есть вызов функции который тебе возвращает объект-результат
как объяснить то

Антон
11.12.2016
17:16:39
ну есть
еееей! я понял монады

Alex
11.12.2016
17:17:01
Там их на самом деле несколько типов
я не очень хорошо знаю реализацию в dry-rb. Я лучше понял монады в Rust

Mikhail
11.12.2016
17:17:33
http://dry-rb.org/gems/dry-monads/

Alex
11.12.2016
17:17:46
Там ты из функции можешь вернуть Result, этот результ матчишь (вроде switch case) если ошибка то делаешь одно, если успех то другое.
Также можно вернуть Option, это либо результаты есть либо их нет
Но это в Rust. В реализацию dry-rb я не вдавался.
Суть в том что если функция сфейлилась то она не эксепшен кидает а объект-провал возвращает. Или пустой если мы говорим про тип "результаты"

Mikhail
11.12.2016
17:18:45
напомнает interaction с цепочкой вызовов

Google

Alex
11.12.2016
17:18:57
ну в общем то это похожие вещи
Монады можно чайнить и еще многие прикольные вещи есть. Есть паралели с js promise

Mikhail
11.12.2016
17:19:18
Еще бы пример из жизни
Как в рамках рельсы заюзать. На какой задаче например можно применить

Alex
11.12.2016
17:20:32
def html_parse()
rating = html.at(".rating")&.text
if rating
return Monads::Some(rating)
else
return Monads::None
end
end

Антон
11.12.2016
17:21:22
и?

Alex
11.12.2016
17:21:31
Ну это базовые монады
Там дальше веселуха начинается когда их чайнишь и еще многие вещи делаешь. Честно говоря до конца не разбирался как с ними эффективно работать, в рубях тем более.
Как уже выше кидали: http://dry-rb.org/gems/dry-monads/
Тут пожалуй все примеры есть.
Выгодны-не выгоды можно только на практике понять.

Admin
ERROR: S client not available

Антон
11.12.2016
17:22:42
они там странные

Anton
11.12.2016
17:23:19
Привет всем
Вопрос
Есть гем rails-i18n для локализации
в геме есть файл с уже локализированными сообщениями рельсов:
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ru.yml
Кто-нибудь пользовался этой штукой? пробовал просто этот файл в проект сунуть, но все сломалось
до этого русками пиал - работало

Alex
11.12.2016
17:24:03
Вот прикольный способ работать с ошибками.

Anton
11.12.2016
17:24:08
и мб кто знает, как с этой дичью работаьт

Mikhail
11.12.2016
17:24:14
это не дичь

Alex
11.12.2016
17:24:16

Mikhail
11.12.2016
17:24:20
это коробочный функционал

Google

Mikhail
11.12.2016
17:24:27
тебе надо поставить rails-i18n

Антон
11.12.2016
17:24:32

Anton
11.12.2016
17:25:02
ну я утрирую, вот
подключил, но локализция не подцепилась, хотя вроде по тутору делал

Mikhail
11.12.2016
17:25:07
дальше ты только переключаешь локали и они подтягиваются из твоих файлов с локалью
ru:
hello: «привет»

Антон
11.12.2016
17:25:09

Mikhail
11.12.2016
17:25:18
не подцепилось потому что ты не переключал локали

Anton
11.12.2016
17:25:40
# I18n configuration
config.i18n.enforce_available_locales = false
config.i18n.available_locales = [:en, :ru]
config.i18n.default_locale = :ru
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
из конфига

Mikhail
11.12.2016
17:25:45
в application.rb
config.i18n.default_locale = :ru
да
все а теперь надо писать

Антон
11.12.2016
17:25:55

Anton
11.12.2016
17:26:00
оно самое
ну в ru.yml логично модели описывать

Mikhail
11.12.2016
17:26:54

Anton
11.12.2016
17:27:14
и так оно рабоатет, если руками писать интернеционализацию
хмм

Mikhail
11.12.2016
17:27:29

Anton
11.12.2016
17:27:29
ну ладно, буда искать, где что пропустил

Mikhail
11.12.2016
17:27:34
ты руками и должен писать

Anton
11.12.2016
17:27:34
нет, не переводит
ну руками я модели описываю