Size: a a a

pro.rb (Ruby/Rails / RU)

2020 September 15

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Vyacheslav Koval
А что нечитаемого в коде есть у вас?
Ну вот например 25 +- 5 параметров из конфигурационного файла подгружается по шаблону:
my $failure_max_num_rep=$cfg->val('watchdog','failure_max_num_rep'); if($failure_max_num_rep eq undef) {$debug->print_log("Error: в конфиге не указан опция watchdog.failure_max_num_rep"); exit;}
И даже если отформатировать это не сильно лучше становится - вместо одного экрана из забора таких строк получается 2,5 экрана копипасты.
Или вот моя любимая идиома, из которой один скрипт состоит полностью
eval
{
   $sth = $mysql->prepare($query{'AAA'});
};
if ($@)
{
   syslog(LOG_ERR, "Ошибка при формировании запроса: '%s'", $@);
}

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

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
И да первый пример - одна строка, которая на экране не помещается
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Понятно что большая часть моих проблем от того, что доставшееся наследтво состоит из двух крайностей - одни разработчики выделывались своим знанием перла, другие незнанием...
источник

КК

Кракозябр Кракозябро... in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
Посмотрите в документации как идет подключение к редису и ищите ченить типа Redis.connect по всему проекту
Похоже редис вызывается из гема JWT, больше явных упоминаний не нашёл, а в доке написано
You can also specify connection options as a redis:// URL:
redis = Redis.new(url: "redis://:p4ssw0rd@10.0.1.1:6380/15")
🤔
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Кракозябр Кракозябрович
Похоже редис вызывается из гема JWT, больше явных упоминаний не нашёл, а в доке написано
You can also specify connection options as a redis:// URL:
redis = Redis.new(url: "redis://:p4ssw0rd@10.0.1.1:6380/15")
🤔
Что он забыл в геме JWT?
источник

КК

Кракозябр Кракозябро... in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
Что он забыл в геме JWT?
там по дефолту вызов идёт, для нужд авторизации же. Похоже надо где-то передавать параметры хоста. Осталось вкурить где
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
Кракозябр Кракозябрович
там по дефолту вызов идёт, для нужд авторизации же. Похоже надо где-то передавать параметры хоста. Осталось вкурить где
звучит очень странно что ему вообще редис нужен
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
я вроде jwt без редиса использовал, сейчас посмотрю.
источник

КК

Кракозябр Кракозябро... in pro.rb (Ruby/Rails / RU)
Alex Ilizarov
я вроде jwt без редиса использовал, сейчас посмотрю.
Да, нашёл, там можно указывать адрес в
JWTSessions::Session.new(payload: payload,
                                  redis_host: redis,
                                  redis_port: 6379,
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
JWTSessions это разве jwt гем?
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
крч понятно, у тебя другой гем который сессии в редисе хранит
источник

КК

Кракозябр Кракозябро... in pro.rb (Ruby/Rails / RU)
либо я неудачно сократил название)
источник

AI

Alex Ilizarov in pro.rb (Ruby/Rails / RU)
https://github.com/jwt/ruby-jwt
Я вот этот использовал, тут ты сам с сессиями разбираешься
источник

VK

Vyacheslav Koval in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
Ну вот например 25 +- 5 параметров из конфигурационного файла подгружается по шаблону:
my $failure_max_num_rep=$cfg->val('watchdog','failure_max_num_rep'); if($failure_max_num_rep eq undef) {$debug->print_log("Error: в конфиге не указан опция watchdog.failure_max_num_rep"); exit;}
И даже если отформатировать это не сильно лучше становится - вместо одного экрана из забора таких строк получается 2,5 экрана копипасты.
Или вот моя любимая идиома, из которой один скрипт состоит полностью
eval
{
   $sth = $mysql->prepare($query{'AAA'});
};
if ($@)
{
   syslog(LOG_ERR, "Ошибка при формировании запроса: '%s'", $@);
}

На каждый чих в базе это делается. И что хуже всего - зачастую комментарии шаблонные и что вызвало ошибку приходится гадать
А на что портируете/рефакторите - на Mojolicious/Dancer2 или другой язык?
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
У меня специфичная область - телефония. Пока у нас стандарт питон. Потом возможно Го будем внедрять - питон себя не лучшим образом в некоторых вещах показал
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Ну и подпирать легаси костылями приходится на том же перле
источник

A

Alexander in pro.rb (Ruby/Rails / RU)
А разве в телефонии не ырланг?
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Все несколько сложней)
источник

VK

Vyacheslav Koval in pro.rb (Ruby/Rails / RU)
ShadoWalkeR
У меня специфичная область - телефония. Пока у нас стандарт питон. Потом возможно Го будем внедрять - питон себя не лучшим образом в некоторых вещах показал
А какие были проблемы с питоном, просто интересно?
источник

S

ShadoWalkeR in pro.rb (Ruby/Rails / RU)
Производительность. Какие то явные проблемы с поотрохами питона - при росте нагрузки появлялись паузы в вызовах - из астериска звонок по ARI был передан скрипту, а в самом скрипте еще не появился. И они измеряться могли в десятках секунд
источник