@rubyschool

Страница 411 из 921
Ro
17.10.2017
21:42:41
насчет сортировки - метод не работает в случае если строка - 1 гб, например

это не рационально, обычно кандидат должен уточнять условия задачи, а не делать предположения без разрешения)

Google
Ro
17.10.2017
21:50:32
в каком смысле?

типа тебе не понравится задача?))

spartakusQ
17.10.2017
22:00:23
Пол часа на собесед и всё время уточняющие вопросы спрашиваешь.

Ro
17.10.2017
22:42:19
обычно час дают на 1 задачу

полчаса редко встречал

точнее никогда

Fedor
18.10.2017
04:12:53
Каждому символу соответствует количество вхождений

И вот оно декрементируется

Ro
18.10.2017
04:24:36
да, лучше декременировать

и 1 хеш

Vlad
18.10.2017
04:32:55
На самом деле, я тоже верю, что алгоритмы человек должен если не знать, то хотя бы понимать нахера они, чем важны и в необходимой ситуации придумать как что то сделать. А если он еще и знает кучу разных уже изобретенных велосипедов, дак это вообще хорошо.

Явный пример был в работе. За чуваком, что у нас на фрилансе работал, переписывал его код, сокращая 300-1200 операций до максимум 12. Ну соответственно прирост был на глаза. Собственно после этого мое начальство и перестало с ним работать

Google
Vlad
18.10.2017
04:38:00
*операций записи в базу

Ro
18.10.2017
04:40:08
но справедливости сказать - хоть и спрашивают алгоритмы в конторах типа нашей

но код отстой вообще

лучше бы они код писали нормальный

один тут написал: loop do if time_to_do_something # ... end sleep 0.1 end

(упрощенно) т.е. каждые 100 мсек вызывается метод, который вычисляет время, которое осталось до выполнения какой-то операции, и если оно не пришло, возвращает false

почему бы сразу не написать sleep whatever_it_takes

и чтобы оно ждало сколько надо

нет, написал sleep 0.1

к слову, он меня на работу принимал - гонял по алгоритмам)))

Aleksej
18.10.2017
04:42:55
нет, написал sleep 0.1
Мда... И это в лучшей компании мира.

Vlad
18.10.2017
04:42:57
ученик всегда должен превзойти учителя)

Ro
18.10.2017
04:43:29
Мда... И это в лучшей компании мира.
ну у нас не лучшая. По версии glassdoor она была _одной из_ лучших для работы в Сан-Франциско в 2016

сейчас уже не лучшая)

Vlad
18.10.2017
04:44:33
я того фриланса за пол года обогнал, в плане чистоты и адекватности именно кода, хотя изначально он меня подтаскивал. Сейчас мой подчиненный меня обогнал, ему тоже потребовалось пол года.

Ro
18.10.2017
04:44:48
или еще пример, код который проверял живучесть определенного сервиса. Код был написан так: service.check || 'healthy'

т.е. если service.check возвращал false, то метод возвращал healthy ?

ну это уже другой выдающийся деятель

при этом все радели за алгоритмы, мудаки

так что я согласен с DHH - что сначала надо научиться писать понятный людям код, а потом уже вые...ваться алгоритмами

Google
Aleksej
18.10.2017
04:46:18
Ну, одна из, по крайней мере. Вообще с кодом забавная ситуация. Меня на одном собеседовании отфутболили, а потом выяснилось, что они даже тестами код не покрывали (код на руби). Для этого они потом наняли тестера. На мой вопрос в целесообразности тестера теперь, когда код уже написан (с их слов наняли тестера чтобы устранить "отсутствие тестов") - внятно ответить не смогли.

Vlad
18.10.2017
04:46:35
к сожалению, я на той стадии, когда скорее всего пишу полное дерьмо)?

Ro
18.10.2017
04:46:36
хы)

к сожалению, я на той стадии, когда скорее всего пишу полное дерьмо)?
одно дело когда ты пишешь дерьмо и это признаешь, а другое - когда у тебя претензии на оригинальность и ты радеешь за алгоритмы, любишь посмотреть какой-нить вопрос в инете и помучать какого-нибудь джуна этим вопросом, на который заранее подглядел ответ)

Aleksej
18.10.2017
04:48:59
так что я согласен с DHH - что сначала надо научиться писать понятный людям код, а потом уже вые...ваться алгоритмами
Вот да. А то куда не придёшь - везде чуть ли не Торвальдсы на словах. А по факту... А по факту - жор оперативной памяти гигабайтами на старте в моём телефоне, обновления весом в гигабайт, чтобы пофиксить мерцающий курсор и гугломобили, которые периодически попадают в ДТП.

Vlad
18.10.2017
04:55:29
кто то может маленькое ревью сделать? 35 строк, указать ошибки в стиле написания

*наверное за первые три строки, мне бы просто пальцы отрубили на работе* https://github.com/sogrinvlad/ruby_practice/blob/master/iptocountry/iptocountry.rb

Konstantin
18.10.2017
05:46:12
Это какой-то отрицательный IQ

одно дело когда ты пишешь дерьмо и это признаешь, а другое - когда у тебя претензии на оригинальность и ты радеешь за алгоритмы, любишь посмотреть какой-нить вопрос в инете и помучать какого-нибудь джуна этим вопросом, на который заранее подглядел ответ)

Ro
18.10.2017
05:53:30
будет понятно что делается хотя бы)

Vlad
18.10.2017
05:54:31
принял, пошел напишу, спасибо, что посмотрел

Vlad
18.10.2017
06:16:53
Ха, начал писать комменты, понял, где прямо сверх люто наговнокодил ?

Andrey
18.10.2017
06:32:27
кто то может маленькое ревью сделать? 35 строк, указать ошибки в стиле написания
жаль там на месте комментить нельзя. там можно на каждую вторую строку написать замечания ))

https://github.com/sogrinvlad/ruby_practice/blob/master/iptocountry/iptocountry.rb#L7-L12 Почему ты здесь делаешь отдельный массив с элементами которые хочешь удалить, а не возьмешь и прямо в цикле не начнешь очищать исходный?

Vlad
18.10.2017
06:34:54
лишняя память, хм, верно...

Andrey
18.10.2017
06:35:13
-ip_arr.index(val) + 3 != 0 Это что за проверка такая? Это подразумевалось? ip_arr.index(val) != 3

Vlad
18.10.2017
06:35:48
Я уже это исправил, это дикое извращение, но решилось на самом деле просто, я забыл про существование reverse!

Andrey
18.10.2017
06:36:43
Google
Vlad
18.10.2017
06:36:55
цель была получить индекс по счету с конца до начала, при том, последнее считать 0, предпоследнее 1. Крч, да, забыл про реверс

погоди, я накомменчу и запулю

3 минуты еще

Andrey
18.10.2017
06:37:18
что за реверс?

а понял

Nikolay
18.10.2017
06:38:08
куда тыкать? ))
Где-то на строчке плюсик что ли

Andrey
18.10.2017
06:38:53
В pull request плюсик, да. А тут такого не увидел, это просто файл.

У нас правило что если ревьюверу без комментов не понятно, то строка переписывается =))

название переменной array ни о чем не говорит.

Vlad
18.10.2017
06:44:02


Admin
ERROR: S client not available

Vlad
18.10.2017
06:44:16
Почему так за пушилось?! Rubocop может быть причастен к этому?

Fedor
18.10.2017
06:44:33
врядли

ты в цем это редактировал?

Vlad
18.10.2017
06:45:16
я в RubyMine редактировал... Но жо

Andrey
18.10.2017
06:45:34
в windows?

Vlad
18.10.2017
06:46:00
но до этого все ровно было, единственное отличие, сегодня копа поставил. И возможно при diff что то нажал лишнее...

Черт, да win на работе, на линукс пока не могу тут переключиться, база 1С локальная нужна часто(

Fedor
18.10.2017
06:47:36
правь прям в браузере

все лучше, чем под виндой )

Google
Andrey
18.10.2017
06:49:13
https://github.com/sogrinvlad/ruby_practice/blob/master/iptocountry/iptocountry.rb#L21-L33 я такой код последний раз видел на плюсах, стиль совсем не рубишный =)

этот loop end точно правильно рабоает?

тесты на эту штуку писал?

Di
18.10.2017
06:50:36
К слову, а никто не кодит в связке винда - виртуалка в вагранте? Я помню кто-то говорил что неплохой вариант. Я решил попробовать, но столкнулся с проблемой. Там же код через synced folder доступен в редакторе. И всё б ничего, но этот самый synced folder хранится на хосте, а гость его читает через механизм вагранта и из за этого медленно рельса работает. В два раза дольше рендер идет.

Vlad
18.10.2017
06:51:10
какие тесты, я еще даж не узнал что это) а луп, ну по крайней мере, что мне надо, верно выдает. Думаю, если чет левое подсунуть, полетит к чертям

Andrey
18.10.2017
06:53:39
ну просто конструкции опасные pooly = array.size-1 потом counter = (pooly - poolx)/2 потом pooly -= counter я вот сходу не могу сказать нет ли тут ошибки, может на пограничных случаях упасть или нет.

Fedor
18.10.2017
06:54:47
я правильно понял, что ты реализовал бинарный поиск по массиву численных строк из файла?

Vlad
18.10.2017
06:56:08
ну типо да...

там в файле рядом куча строк, они вот такие(через ; новая строка, экономия места): 1,10,RU; 11,30,EU; 31,100,US Ввожу число 36, выплевывает US

Fedor
18.10.2017
06:58:45
lines = File.open('test.txt').map do |line| next if line.strip[0] == '#' line.to_i end.flatten lines.bsearch {|line| line == ip_code}

ага, тоесть там не только числа есть, еще и буквы

тогда тут, как раз отлично пойдут хэши )

Vlad
18.10.2017
07:01:59
Там вообще строка внутри "1","10","ru","Russia" Что-то типо такого

Fedor
18.10.2017
07:01:59
lines = File.open('test.txt').inject({}) do |res, line| next if line.strip[0] == '#' line_array = line.split(',') res[line[1]] = line[2] end lines[ip_code] || 'Not Found!'

ну как бы строку '10' очень легко превратить в число 10 и пользоваться как числом

это просто удобнее

смотри в чем идея, берем файл, читаем его и заполняем хэш: ip_code => country_code

при этом комменты пропускаются сразу в том же проходе

потом ты просто ищешь в хэше свой ip_code, переданный в программу

а поиск по хэшу имеет сложность O(1)

Vlad
18.10.2017
07:04:31
нене, погоди, у меня ж нет ip_code напрямую в строках

Fedor
18.10.2017
07:04:45
а что там есть?

Vlad
18.10.2017
07:05:24
у меня там "1","10",RU то есть от 1 до 10 логически, а искать я буду к примеру 5

Страница 411 из 921