
Alex
23.03.2017
11:30:06
return [] unless phone.any?

ojab
23.03.2017
11:32:04
и чем это лучше if phones.none?

Alex
23.03.2017
11:32:45
потому что в моем случае мы подразумеваем что чаще всего у нас не будет телефонов
в твоем случае мы подразумеваем что у нас иногда не может быть телефонов.

Google

ojab
23.03.2017
11:33:32
а как другие поймут что ты там подразумеваешь?

Alex
23.03.2017
11:33:45
по написанию, не?

ojab
23.03.2017
11:33:54
не

Alex
23.03.2017
11:33:59
unless это редкое исключение, нет?

ojab
23.03.2017
11:34:19
не

Eugene
23.03.2017
11:34:34
Надеюсь, понятно выразился

Alex
23.03.2017
11:34:49
не?
меня например ооочень unless радует

Eugene
23.03.2017
11:35:28

Alex
23.03.2017
11:36:34
да, блочное как правило зло воще.

ojab
23.03.2017
11:36:56
не?
"кроме случаев когда телефоны есть" и "в случае если телефонов нет" не несут абсолютно никакой информации о вероятности

Google

Alex
23.03.2017
11:37:09
лолшто
ты на практике не знаешь как у тебя чаще будет?
я вот например в большинстве случаев могу прикинуть как часто у меня исключение будет срабатывать.
Плюс меня коребит от if !phones
unless phones как то лучше воспринимается
плюс мне как то проще когда есть условие
return [] unless phones.any?
Значит дальше точно удет phones.any? а с if none думать приходится.
Это все субъективные вещи.

Oleg
23.03.2017
11:40:18
unless торт

Ruslan
23.03.2017
11:40:45
код должен быть как можно проще и очевиднее, если код заставляет задуматься других членов команды или независимых опытных людей, значит это плохой код.. и не важно, что тебе удобнее воспринимать `if` или `unless`

Eugene
23.03.2017
11:40:59
Вы из-за такой фигни спорите :)
if ... none? норм
и unless норм
Они оба не ужасны, и это главное

Zufar @Zuf
23.03.2017
11:41:29
лучше язык с картинки распознайте!

Oleg
23.03.2017
11:41:29

Alexander
23.03.2017
11:44:45

Zufar @Zuf
23.03.2017
11:45:34
загадка не дает покоя

ojab
23.03.2017
11:45:35

Плюшка
23.03.2017
12:12:59

Olga
23.03.2017
12:12:59
2 апреля в Санкт Петербурге будет проводиться Crossover hiring tournament – это возможность за 1 день получить работу с зарплатой $100000 в год, которая позволит вам трудиться из любого уголка земного шара!
Этапы турнира будут в себя включать:
тесты — на логику, на знание английского и технические испытания
интервью на английском
С собой необходимо иметь ноутбук для выполнения тестовых заданий.
Конкурс будет на следующие позиции:
Software Engineering Manager (Java или Ruby или .Net).
Technical Product Manager
Регистрация и подробности: https://goo.gl/5FWocK

Google

Alexander
23.03.2017
12:25:48

Lupsick
23.03.2017
12:45:46
надо банить чуханов из кроссовера

Egor
23.03.2017
12:46:36
Это HR’ы новые способы обработки масс осваивают, или что?
т.е. «Нам надоело, что вы не отвечаете на наши тупые письма. Так что вот вам супер-пупер-мега состязание, давайте-ка сами хайритесь»

Rafkat
23.03.2017
13:22:06

Olga
23.03.2017
13:23:49

Egor
23.03.2017
13:25:14
Спасибо, но у меня нет вопрсов )

Silent Bob
23.03.2017
14:17:38
подскажите, есть ли тру вей: мне надо получить из строки массив с двумя дупликатами этой строки
из "string" в ["string", "string"]

kolas
23.03.2017
14:18:45
нафиг над такими мелочами думать )
делай в лоб

Silent Bob
23.03.2017
14:22:33
["string"] * 2
ну да, просто все

Alexander
23.03.2017
14:48:22
["string"] * 2
WARNING
[5] pry(main)> a = ["string"] * 2
=> ["string", "string"]
[6] pry(main)> a[0] << 'lol'
=> "stringlol"
[7] pry(main)> a
=> ["stringlol", "stringlol"]
не играйся в руби так

Silent Bob
23.03.2017
14:49:07

Alexander
23.03.2017
14:49:14
[8] pry(main)> a = Array.new(2, "string")
=> ["string", "string"]
[9] pry(main)> a[0] << 'lol'
=> "stringlol"
[10] pry(main)> a
=> ["stringlol", "stringlol"]
аналогично
ща будет норм способ
[11] pry(main)> a = Array.new(2) { "string" }
=> ["string", "string"]
[12] pry(main)> a[0] << 'lol'
=> "stringlol"
[13] pry(main)> a
=> ["stringlol", "string"]
читай доку: http://ruby-doc.org/core-2.4.0/Array.html

Silent Bob
23.03.2017
14:50:19

Alexander
23.03.2017
14:51:59
спасибо! вот он, тру вей
безопасный, да) нужно внимательно относиться к таким вещам, как присваивание и копипаста объектов.
помни, в руби всё — объект
если он мутабельный — есть опасность объебаться
с числами, буленом, символами и подобным полегче

Google

Oleg
23.03.2017
14:56:18
Передаются по ссылке значит... хм... есть о чем подумать...
А есть кейс где это нужно? С умножением на 2, но где ты юзаешь это для дела?
Именно когда передается по ссылке

Alexander
23.03.2017
14:58:40

Oleg
23.03.2017
14:58:42
Любопытна задача где нужно массив так умножать тогда
Вот оно что...

Alexander
23.03.2017
14:59:13
я ж говорю: мутабельность) но есть немутабельные объекты в руби

Admin
ERROR: S client not available

Oleg
23.03.2017
15:00:33
А строки все по ссылке передаются?
Или только вот в таких вот кейсах?
Надо будет поизучать вопрос примитивами в руби, думал что строки тоже примитивы ?

Alexander
23.03.2017
15:03:36
А строки все по ссылке передаются?
все всегда. но две "явно объявленные" строки — разные. например:
[14] pry(main)> a, b = "string", "string"
=> ["string", "string"]
[15] pry(main)> a == b
=> true
[16] pry(main)> a.eql? b
=> true
[17] pry(main)> a.equal? b
=> false
[18] pry(main)> a.object_id
=> 46998002556480
[19] pry(main)> b.object_id
=> 46998002556460

Oleg
23.03.2017
15:04:30
Ну это да, это как два пустых объекта и прочее - то что они выглядят как утка и крякают как утка не значит что они одна и та же утка ?
Не во всех языках строки не примитивы

Alexander
23.03.2017
15:05:01

Oleg
23.03.2017
15:05:14
JS например
Привык уже к этому, и в руби начал относится к строкам как к примитивам
Вижу что зря, ну хорошо, понимание что это объект тот же - ставит всё на свои места

Google

Alexander
23.03.2017
15:07:33
но === не проходит, да

Oleg
23.03.2017
15:08:07
Через нью это не строка в обычном виде

Alexander
23.03.2017
15:08:14
но 'string'.contructor есть
там вообще жесть запутанная

Oleg
23.03.2017
15:09:18
Через нью собственно никто и не создает. А когда ты вызываешь метод у примитива - оно под капотом оборачивает уже в объект, тот же String, вызывает метод и возвращает результат. Но примитива сама остается не тронута.
Собственно в конструктор new String ты и отправил примитив ?
Так или иначе - главное не забывать что у нас в Ruby строки это объекты и будет всё хорошо

Egor
23.03.2017
16:20:35
Вопрос знатокам - можно ли написать сложное веб приложение, ипользуя Sinatra?

Eugene
23.03.2017
16:20:49
Можно
Но с рельсами будет проще

Egor
23.03.2017
16:24:35
сильно проще?

Eugene
23.03.2017
16:26:02
Приведи пример того, что ты подразумеваешь под "сложным приложением"?

Vladislav
23.03.2017
16:26:13
TODOLIST

Alexander
23.03.2017
16:28:33

Ilnur
23.03.2017
17:42:55

Alexander
23.03.2017
17:45:46

Lupsick
23.03.2017
18:49:37
если оно SPA то еще лучше