
v
16.08.2016
07:08:14
"Advanced Ruby + Ruby on Rails knowledge – At least 2-10 Years experience"
и они туда подставляют желаемые пункты
"data driven applications", кек

Nikolay
16.08.2016
07:33:27

Google

Кøе-ктø Геннадьевич
16.08.2016
07:35:53
а мне на джуниора звонила тетка с вакансией синьора на хай лоад. Я говорю - я не знаю хайлоад. А она такая - а чо такое хайлоад или что-то вроде.

Nikolay
16.08.2016
07:38:51

ojab
16.08.2016
07:39:37

Кøе-ктø Геннадьевич
16.08.2016
07:40:26
Я говорю - я не знаю хайлоад
ты hr штоле? ))

Nikolay
16.08.2016
07:41:24
внезапно завелось
это у меня так регулярно получается - возишься, возишься, возишься, кокос не растет, а потом ребутнул апп, кеши почистил и работает... магия %)

ojab
16.08.2016
07:41:55
ну ты же знаешь, что не знаешь хайлоад — значит какое-то значение вкладываешь в это слово и должен смочь сформулировать какое-то определение.
не?

Кøе-ктø Геннадьевич
16.08.2016
07:43:09
ну это высоконагруженные системы. типа порталы с миллионной ежедневной посещаемостью
и вытекающей из этого спецификой
в железе, софте и коде
так вижу

ojab
16.08.2016
07:44:23
ок, так и запишем, 12 rps — хайлоад

Google

Nikolay
16.08.2016
07:52:50

Stanislav
16.08.2016
07:53:13

Nikolay
16.08.2016
07:54:38
и вот комплексная оптимизация всего - сторажей, сети, роутеров, свичей, балансеров, фронта, бека и бд вот тебе хайлоад

Кøе-ктø Геннадьевич
16.08.2016
07:55:52
примерно так и представлял
а что такое rps? что per second?

ojab
16.08.2016
07:56:47
requests

v
16.08.2016
07:56:49
request жи

Кøе-ктø Геннадьевич
16.08.2016
07:56:56
ооок спасиб

Nikolay
16.08.2016
08:26:15
народ, такой вопрос. я ж пишу гем. в одном из методов у меня идет запрос/ответ на логин/пароль. у меня есть метод который парсит ответ на тему кода возврата. как мне красиво и правильно вернуть из метода гема ошибку и прекратить его работу, если код ответа равен чему-то
exeption, return, exit...
чтобы это в том числе корректно передать выше рельсоаппу типа с сообщением "что-то пошло не так"

ojab
16.08.2016
08:29:08
raise КакойНибудьException
лучше отнаследовать от RuntimeError какой-нибудь EppClientError и от него наследовать все остальные эксепшны

Nikolay
16.08.2016
08:30:31
эмм кстати, чем raise отличается от throw?
raise, fail, rescue, and ensure handle errors, also known as exceptions
throw and catch are control flow
не очень понимаю..

ojab
16.08.2016
08:31:20
raise кидает exception, throw просто кидает

Konstantin
16.08.2016
08:31:50
через бедрро

ojab
16.08.2016
08:31:57
throw :symbol юзается для выхода из вложенного цикла, например

Google

ojab
16.08.2016
08:32:27
raise/fail используется для кидания exception'a/сигнализации об ошибке

Nikolay
16.08.2016
08:35:57
чот я не очень понимаю. можешь пример кода набросать, если не сложно?
как обрабатывать его рельсой - я уже приблизительно понял, а вот как сгенерить так, чтобы рельса сказала клиенту про факап и носрала админам в почту..

ojab
16.08.2016
08:40:11
да я хз что тут набрасывать, на самом деле
для тебя главное — raise/fail бросает класс с каким-нибудь сообщением, throw бросает символ
raise/fail ловится в rescue и после обработки этот эксепшн можно reraise'нуть
сигнализация об ошибках — всегда raise/fail
если не ловить throw — будет exception

Nikolay
16.08.2016
08:43:11
да мне не обработка нужна, а выход из гема, бо все, логин не прошел, кина не будет
а с наследованием от рантаймеррор?

ojab
16.08.2016
08:44:20
тупо что-то в духе
class EppClientError < RuntimeError
end
class EppAuthError < EppClientError
end
если ловить какой-то определённый класс Exception'ов (i. e. rescue EppClientError) — будут пойманы этот класс и все его потомки

ojab
16.08.2016
08:45:54
так что наследоваться надо чтобы можно было ловить EppClientError и поймать все exception'ы гема

Nikolay
16.08.2016
08:50:20
а что мне даст наследование от runtimeerror вместо простого raise 'someshit' if ??

ojab
16.08.2016
08:51:16
возможность отловить все exception'ы именно от твоего гема
raise кидает RuntimeError, в который попадут не только твои исключения, но и куа всяких других

Nikolay
16.08.2016
08:52:01
ага. спасбо

Eugene
16.08.2016
17:27:33
пасаны такой вопрос
комментите код в самом файле, или пишите код который легко прочитать через 2 недели?

Темур
16.08.2016
17:28:43
комменты не нужны

Google

Темур
16.08.2016
17:28:51
код должен быть легкочитаемым

Stanislav
16.08.2016
17:29:21

Eugene
16.08.2016
17:30:02
https://youtu.be/zAX_IzH-TF8 ну тут вот этот чувак предлогает писать красивый код, который ты понимаешь сразу
но есть жеж моменты, когда нужно как то задекларировать проект
где это делается?

Igor
16.08.2016
17:31:40
Вообще лучше через rspec показать, как класс используется, чем полотно комментов городить

Admin
ERROR: S client not available

Eugene
16.08.2016
17:32:07
аа понятно, т.е. там расписывать как он работает?

Igor
16.08.2016
17:32:33
Хорошие тесты - лучшая документация
Ну ты делаешь набор тестов, которые показывают и одновременно проверяют типичные способы использования публичных методов класса.
Если тестов недостаточно, то имхо лучше внешняя документация , чем комменты.
Это да, есть такая проблема.
Комменты обычно для каких-то необычных и неочевидных вещей именно в реализации(не в интерфейсе)

ojab
16.08.2016
17:35:26
высокоуровневое описание лучше делать, если что-то не вполне тривиальное творится
ну и да, лучше это делать в yard/rdoc, можно будет получить симпатишную html'ину
и другие плюшки

Igor
16.08.2016
17:43:16
yard хорошая штука, но я бы предпочёл описание вне кода, но по проектам не приходится этого делать за исключением высокоуровневых алгоритмов
Yard как по мне компромиссный вариант, т.к. комменты редакторами можно скрыть и показать в нужный момент, и это не будет затруднять читать сам код, а экспорт в html сделает документацию внешней

Stanislav
16.08.2016
17:44:11

ojab
16.08.2016
17:44:54

Google

Igor
16.08.2016
17:45:09
Заебет, поэтому обычно хорошие тесты
Батсов вообще интересный чувак, я на RubyC его летом видел, он там уже пропал в функциональных ЯП и на руби почти не пишет, как я его понял
Взгляды у него специфичные

v
16.08.2016
17:49:50

Stanislav
16.08.2016
17:51:07

Nikolay
16.08.2016
18:30:28
чото я ваще вижу адскую тенденцию сваливать в функциональщику
на ерланге массово народ упарвывается

Stanislav
16.08.2016
18:31:05

Gleb
16.08.2016
18:32:31

Nikolay
16.08.2016
18:33:34
та хз. я иногда думаю правильно ли я выбрал инструмент. перловке отказать, питон не зашел, жава - нафиг, шарпик с мвц скатились в адову херню..
рубя с рельсами вот зашла, считай приложение написать

Gleb
16.08.2016
18:34:15
руби использует кучу функциональных приемов

Nikolay
16.08.2016
18:36:02
например?

Stanislav
16.08.2016
18:36:23
map/reduce :)

Gleb
16.08.2016
18:37:22
функции высшего порядка

ojab
16.08.2016
18:37:48
но в руби же нет функций

Gleb
16.08.2016
18:38:17
есть объекты, которыем ими прикидываются
это особо ничего не меняет