Size: a a a

Чат по руби

2021 January 22

FK

Fedor Koshel in Чат по руби
если есть какой-то класс который инициализируется скажем ответом сервера в виде json строки и у него есть куча методов, проверяющих эту строку, то можно сделать еще один метод check_all и вызывать его
источник

FK

Fedor Koshel in Чат по руби
или можно сделать в том классе, который этим пользуется что-то типа
def validation_service
 @validation_service ||= ValidationService.new(@server_response)
end

def test
 validation_service.first_test &&
   validation_service.second_test &&
   validaiton_service.third_test
end
источник

SR

Shattered Ruby in Чат по руби
Fedor Koshel
Я не совсем понял, что имеется в виду
Немного переформулирую вопрос. У меня есть два класса. Первый содержит в себе методы, которые обращаются к серверу, а второй – методы, которые проверяют всевозможные ошибки, которые сервер может вернуть. И мне надо каким-то образом сделать проверку внутри каждого метода в первом классе на эти самые ошибки
источник

SR

Shattered Ruby in Чат по руби
или здесь уже логика проекта шатается и надо найти иной способ реализации проверки на ошибки?
источник

А

Артем in Чат по руби
Hans Hans
По какой статистике? TIOBE - кол-во запросов в гугле по языку, PYPL - запросы по языку со словами "учебник, мануал, курсы"
Точно не помню. Но есть таблица которая гуляет интернету. Си на 1м. Дальше пхп питон джава. Руби где то на 15
источник

FK

Fedor Koshel in Чат по руби
Ну тут можно сделать по разному.
def request
 response = do_request

 if ResonseValidator.valid?(response)
   do something
 else
   raise exception
 end
end
источник

FK

Fedor Koshel in Чат по руби
Можно написать класс который будет парсить ответ и возвращать хэш, или ошибку. Тогда будет что-то вроде
response = ResponseParser(do_request)
источник

FK

Fedor Koshel in Чат по руби
и дальше действовать в зависимости от результата, или делать resque exception
источник

FK

Fedor Koshel in Чат по руби
есть еще подход как в эликсире, когда каждый метод возвращает массив вида [:ok, result] или [:fail, errors]
источник

FK

Fedor Koshel in Чат по руби
и можно по первому элементу принимать решение
источник

SR

Shattered Ruby in Чат по руби
Fedor Koshel
Можно написать класс который будет парсить ответ и возвращать хэш, или ошибку. Тогда будет что-то вроде
response = ResponseParser(do_request)
идея понятна, но по поводу хеша только не понял
источник

SR

Shattered Ruby in Чат по руби
а, не дочитал
источник

HH

Hans Hans in Чат по руби
Артем
Точно не помню. Но есть таблица которая гуляет интернету. Си на 1м. Дальше пхп питон джава. Руби где то на 15
Это тиоби какраз, https://www.tiobe.com/tiobe-index/
источник

SR

Shattered Ruby in Чат по руби
Fedor Koshel
Ну тут можно сделать по разному.
def request
 response = do_request

 if ResonseValidator.valid?(response)
   do something
 else
   raise exception
 end
end
блин, но всё равно не понятно как это применить ко всем методам автоматически, которые у меня есть, ибо у меня получится, что в каждом методе будут повторы из достаточно больших кусков кода, а это уже не соответствует концепции DRY
источник

DG

Denis Gavrilin in Чат по руби
Shattered Ruby
блин, но всё равно не понятно как это применить ко всем методам автоматически, которые у меня есть, ибо у меня получится, что в каждом методе будут повторы из достаточно больших кусков кода, а это уже не соответствует концепции DRY
Соответствует если для изменения логики проверки тебе надо будет поменять ее только в одном месте
источник

SR

Shattered Ruby in Чат по руби
Denis Gavrilin
Соответствует если для изменения логики проверки тебе надо будет поменять ее только в одном месте
да, я это и имею ввиду, что при последующем, так сказать, масштабировании класса с проверкой на ошибки будет больно
источник

SR

Shattered Ruby in Чат по руби
придётся изменять даже такую небольшую логику внутри каждого метода
источник

FK

Fedor Koshel in Чат по руби
Shattered Ruby
блин, но всё равно не понятно как это применить ко всем методам автоматически, которые у меня есть, ибо у меня получится, что в каждом методе будут повторы из достаточно больших кусков кода, а это уже не соответствует концепции DRY
так у тебя разные запросы, разные ответы, значит и вызовы должны быть разные
источник

FK

Fedor Koshel in Чат по руби
если там много повтором, то стоит написать метод, которые будет просто принимать на вход ответ сервера и внутри себя содержать всю повторяющуюся логику
источник

FK

Fedor Koshel in Чат по руби
возможно надо как раз валидатор как-то изменить
источник