
Alexander
30.10.2016
09:01:39

Alex
30.10.2016
09:01:40

Alexander
30.10.2016
09:02:03

Google

Alexander
30.10.2016
09:02:14

Alex
30.10.2016
09:02:37
Твое имхо базируется на выводе твоего кодстайл инструмента, разве нет?

Alexander
30.10.2016
09:02:50
Эстетика ещё для меня. Как отсутствие скобок. Это просто лучше выглядит

Alex
30.10.2016
09:03:29
бесмысленные расшифровки только снижают читабельность

Alexander
30.10.2016
09:04:10
Помнишь упртй стиль? Это короче и понятно. Почему мы не перешли на такое общение?

Alex
30.10.2016
09:06:45
потому что k, v любому нормальному программисту очевидно
если ты k, v разворачиваешь в длинную форму не имея на то особого смысла то ты в типичный шаблон в моей голове не вписываешься, следовательно снижается т.н. читабельность

Alexander
30.10.2016
09:13:20

Alex
30.10.2016
09:13:52
более полноценные названия - key, val, key, value делают однострочник длиннее без всякого на то смысла

Alexander
30.10.2016
09:18:09

Alex
30.10.2016
09:18:24
+5 к читаемости там где k, v имеют такую же читаемость?

Google

Alex
30.10.2016
09:18:39
блин серьезно, в чем суть key, value если они не объясняют какие именно ключи/значения лежат?

Alexander
30.10.2016
09:18:49

Alex
30.10.2016
09:19:12
вот если я делаю reject{ |domain, _| domain.end_with?(".ru") } это добавляет читабельности
А вот если я делаю key, value это бесмысленно

Alexander
30.10.2016
09:19:24

Alex
30.10.2016
09:19:33
Потому что это не объясняет что там лежит внутри них
так в чем суть?
Так вот именно в пояснении смысл есть, а вот разворачивать k, v в длинные слова и удлинять однострочник без причины - следование правилам без применения здравого смысла.
Не буду дальше спорить.

Alexander
30.10.2016
09:20:28
так в чем суть?
Сталкивался вроде с кастомными классами, где v не означало value, а интерфейс похож

Alex
30.10.2016
09:20:50
Так это автор того кода не развернул значение которое не являлось общепринятым

Vitaliy
30.10.2016
09:28:47
#работа
Ruby on Rails dev, фултайм/парттайм, оплата почасовая - 500 руб./ч (в месяц при фултайме будет выходить 40-80 т.р.)
Ищем человека в команду - создаем облачный сервис для поиска частных исполнителей (аналоги - youdo.com, thumbtack.com). Летом 2015 запустили MVP - чисто рельсовое приложение - получили отдачу от первых пользователей, и ушли в оптимизацию. Сейчас у нас сервер с API, iOS-приложение, новый дизайн и верстка. Готово все на 90%.
Человека ищем для админки и веб-версии - взять верстку (slim, sass, производный от bootstrap фреймворк + верстка по БЭМ), и сделать традиционное фулстек RoR приложение, rails engine.
Я - сооснователь, занимаюсь версткой, над рельсовым приложением будем работать совместно. Пишите в личку.


Dima
30.10.2016
10:54:21
А ключи то у хеша почему-то получаются строки
https://gist.github.com/lbvf50mobile/d4e24c0392d4da528b06493796e26a29#file-select_and_cut_key-rb-L26
Интреесно вообще ключь он по определеню всега символ, или может быть то символом то строкой?

I
30.10.2016
10:55:03
k.to_s сперва делают - а потом жалуются...

ojab
30.10.2016
10:55:09
потому что ты в .map делаешь .to_s

Dima
30.10.2016
10:55:37

Nick
30.10.2016
10:55:57

Dima
30.10.2016
10:56:05

Google

Alex
30.10.2016
11:12:05
и вообще.

Dima
30.10.2016
11:18:43
Боролся с простынями, получилась лыжа: https://gist.github.com/lbvf50mobile/b15d8f931f9d5f0eef1a0c0e5b5bad78#file-dry_select_cut_strip-rb-L26
и вообще.
кстати
map{&:strip}
ругается потому что оно разворачивается в
map{|p| p.strip}
а p === [k,v]

Alex
30.10.2016
11:21:05
{&:strip}?
hash.select{|k,v| k.to_s.start_with?(prefix)}.inject({}){|x,(k,v)| x[k.to_s.sub(Regexp.new("/{prefix}/"),"").to_sym] = v; x}.map{|k,v| [k,v.strip]}
Ого
перл атакует
более трешовой строчкия еще не видел.
lambda тут зачем?
что если я скажу что однострочники можно разбивать по строкам?

Dima
30.10.2016
11:22:40
я не против, я только за

Dima
30.10.2016
11:22:49
я за красоту DRY и все прочее

Alex
30.10.2016
11:22:51
для начала скажи что здесь происходит

I
30.10.2016
11:23:00
используйте рубокоп

Alex
30.10.2016
11:23:04
с DRY можно об стенку расшибиться если юзать его налево и направо.

Плюшка
30.10.2016
11:23:09

I
30.10.2016
11:23:13
и вообще, в inject можно делать .strip
и тогда одним перебором меньше

Alex
30.10.2016
11:23:33
@lbvf50 скажи что этот кусок кода вообще делает?

Google

Dima
30.10.2016
11:24:13

Alex
30.10.2016
11:24:33
Подожди
чего ты хочешь добиться?

I
30.10.2016
11:24:38
кстати, этот select тоже вполне себе можно выполнить в inject

Alex
30.10.2016
11:24:47
вот я увижу у тебя хэшик сверху
что ты хочешь получить из него?

[Anonymous]
30.10.2016
11:25:06

kolas
30.10.2016
11:25:15
а не проще на вход нормально разделенный хэш давать?

[Anonymous]
30.10.2016
11:25:18
Однажды мне на собеседовании сказали, что я сделал НЕКРАСИВО.

Admin
ERROR: S client not available

Alex
30.10.2016
11:25:19

[Anonymous]
30.10.2016
11:25:40
Почему бы руками не задать эти два хэша, если один уже задан.

Плюшка
30.10.2016
11:26:15
Regexp.new(...) тут не нужен же , просто .sub(prefix,"")

Alex
30.10.2016
11:26:20
Вообще на собеседовании максимум что могут требовать по красоте это чтобы дефолтный рубокоп проходил например

[Anonymous]
30.10.2016
11:27:02
Ну время прошло и теперь на собеседовании требую я. Правда у нас Ruby очень мало, только в одном месте рельсы.

I
30.10.2016
11:27:10
prefix.to_r

kolas
30.10.2016
11:27:11
почему, что хотят то и требуют, хозяин - барин

Google

Alex
30.10.2016
11:27:25
Во, у тебя с детства привили нелюбовь к руби с этими красивостями

Dima
30.10.2016
11:27:27
Смотрие, речь о рефакторинге данной функции мы о ней говорили дня 2 назад: https://gist.github.com/lbvf50mobile/2fd55a4a331a3ca9015ca95c02fcb91a
и все мы пришли к выводу что так жить нельзя. Начинаем спервых строк формирования двух хешей
строчки 12-20 21-28

Плюшка
30.10.2016
11:28:07

Alexander
30.10.2016
11:28:22

Dima
30.10.2016
11:28:41

Alex
30.10.2016
11:28:49
Есть пример?
Применр заключается в том что ты делаешь два куска кода одинаковыми, т.е создаешь абстракцию где в дальнейшем эта абстракция не подходит

Плюшка
30.10.2016
11:28:51
хотя...

Alex
30.10.2016
11:28:53
т.е схожий код но не один и тотже.

Dima
30.10.2016
11:29:02
погодите

kolas
30.10.2016
11:29:18
сразу с фронта должны отправить хэш вида {to: {}, from: {}}

Dima
30.10.2016
11:29:41
короче какие задаи
1) высленить for и to
2) сотвественно обзать
3) strip

Alexander
30.10.2016
11:30:13

Dima
30.10.2016
11:30:59
это рубокоп: https://github.com/bbatsov/rubocop ?

I
30.10.2016
11:31:09
да
еще советую сразу .rubocop.yml найти
а то он просто возьмет и обосрет каждую строчку... и отчасти будет прав

Alexander
30.10.2016
11:31:56

I
30.10.2016
11:32:52
некоторые правила далеко не всегда применимы. К примеру, правила с документированием кода практически всегда я стараюсь отключить.

Alex
30.10.2016
11:33:11
@lbvf50 сделай пожалуйста p params и скинь сюды

Dima
30.10.2016
11:33:29