@proRuby

Страница 1334 из 1594
Anton
05.08.2018
11:23:59
ты помоему уже аргументировал что это плохо)
Да я решил пойти дальше и задать три вопроса и остановиться на этом, лол

Да я решил пойти дальше и задать три вопроса и остановиться на этом, лол
1. Как будешь пробрасывать определенный контекст в ошибку и ее потом доставать 2. Как будешь гарантировать отлов всех ошибок, которые ты кидаешь 3. Как будешь гарантировать, что ошибки ловятся не из сервиса, который вызывает сервис, а там вызывается что-то ещё

Google
Anton
05.08.2018
11:29:15
1.2.3. в методе перформ у сервиса рескуешь эроры. в сервисе определяешь необходимые методы которые будут презентовать ошибку
Ну вот у тебя энтити не валидный появился, хочу его взять и входные данные и как-то обработать. Будешь в ошибку класть все это?

1.2.3. в методе перформ у сервиса рескуешь эроры. в сервисе определяешь необходимые методы которые будут презентовать ошибку
Второй и третий вопрос был про то, как добиться гарантий, что твоя ошибка 100% поймает и валидный кейс не положит инстанс. Или как не ловить ошибки там где не надо

Anton
05.08.2018
12:32:42
Fedor
05.08.2018
12:33:15
Ага, и ради одной парадигмы надо написать лишнюю пару классов?

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

А если системы обработки ошибок нет, то и городить лишнего не надо

Anton
05.08.2018
12:35:31
Ага, и ради одной парадигмы надо написать лишнюю пару классов?
Готов, потому что иначе это превратиться в хаос через месяц

Fedor
05.08.2018
12:40:30
Или же за этот месяц придуют новую ещеболеелучшую систему обработки ошибок и придется переписывать под нее всю платформу

Nico
05.08.2018
13:06:02
Покажите, пожалуйства, хороший пример или статью про пространства имен моделей AR. Может у кого-то в закладках есть Или тут нет особо подводных камней?

Google
Dima
05.08.2018
14:57:09
https://youtu.be/gTNC26BtRFc

Есть такая чтука инвариант это нечно незименное в не зависимости от окружения. Можно назвать краеугольным камнем, можно назвать основами. Как угодно. Вот в web программировании одним из инвариантов является Linux. Все равно все пути идут к нему, или из него. Мне друг подсказал набор лекций. И очень доволен, хочу им поделиться с вами.

они хороши по многим параметрам: для новечков расскзаывают суть, а для тех кто не первый день, собирают во едино.



Красивое, лаконичное, объяснение сути Linux, так называемых инвариантов от Георгия Курячего. Вот тут он расказал про создание нового процесса через fork и exec до этого и в чатах расказывали, и ролики были. Но, атомарные.

А тут вся картина с комметариями и с завязкой на права доступа. Сначала fork создает копию процесса, практическаое отличие только в значение возвращаемом fork и pid. А потом exec запускает новый код. Рекомендую.

Bakhriddin
05.08.2018
17:22:55
Добрый вечер, нужен ментор который поможет с деплоингом, готов платить 5$за час , установил докер , ансибле, терреформ. Почти на локалке настроил докер

При make app-setup вот эту ошибку выдаёт



В конце

Yevhen Nakonechnyi
05.08.2018
17:24:45
^^^ 0.0.0.0:5432 already in use

у тебя уже какой то инстанс присосался к єтому адресу

Dima
05.08.2018
17:26:42
Добрый вечер, нужен ментор который поможет с деплоингом, готов платить 5$за час , установил докер , ансибле, терреформ. Почти на локалке настроил докер
Тут есть такой нюанс. Что практическая разработка, это постоянно осваивание новых инструментов. Постояннное. И вот этот подход с ментором он конечно милый, и люди заработают, и вы чему-то научитесь. Но вот как бы вы себе глобально подсечёте основной навык.

Dmitriy
05.08.2018
18:22:37
спасибо) давно хотел собрать фрагментированные знания unix во что-то целостное

wi11son
05.08.2018
18:27:23
Самый частый ответ на вопрос зачем ментор? - чтобы быстро, и через 2-3 месяца выйти на работу, чтобы получать много

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

самый частый ответ на вопрос, что ожидаешь от ментора — подскажет и пендаля даст

Google
wi11son
05.08.2018
18:39:44
и далее идет "передача опыта"

пытаюсь представить, что значит "передача опыта"...

как именно образом транслируются набитые шишки прямиком в мозг

Nikita
05.08.2018
18:46:52
Это же жиза

rekero
05.08.2018
18:52:05
научите чтобы ничего не делать и все было

Максим
05.08.2018
20:36:34
уже пол часа ебусь

не могу запустить whenever локально

что за х

задача прописана every 1.minute do runner 'RateUpdateJob.new.perform', :environment => "development", :output => '/log/rate_update_job.log' end в кроне вроде верно отображается # Begin Whenever generated tasks for: /home/maxim/Projects/Rails/app/config/schedule.rb at: 2018-08-05 23:33:30 +0300 * * * * * /bin/bash -l -c 'cd /home/maxim/Projects/Rails/app && bundle exec bin/rails runner -e development '\''RateUpdateJob.new.perform'\'' >> /log/rate_update_job.log 2>&1' # End Whenever generated tasks for: /home/maxim/Projects/Rails/app/config/schedule.rb at: 2018-08-05 23:33:30 +0300 сама задача class RateUpdateJob < ApplicationJob def perform p 1 Rails.logger.info("#{Time.now}") end end и ничего тупо не происходит

никакой ошибки

ничего

Максим
05.08.2018
20:38:22
в консоли когда отдельно запускаю всё работает

может кто чё подсказать?

о

понял

every 1.minute do runner 'RateUpdateJob.new.perform', :environment => "development", :output => '/log/rate_update_job.log' end должно быть every 1.minute do runner 'RateUpdateJob.new.perform', :environment => "development", :output => 'log/rate_update_job.log' end (убрать / перед log)

Roman
05.08.2018
21:02:17
Самый частый ответ на вопрос зачем ментор? - чтобы быстро, и через 2-3 месяца выйти на работу, чтобы получать много
вопрос: зачем ментору это надо, если он сам может найти работу и "получать много"

Максим
05.08.2018
21:32:52
так ребят

чт я запутался

Google
Максим
05.08.2018
21:33:03
в чём разница между интерактором и сервисом?

Gleb
05.08.2018
21:39:47
ну типа интерактор это такой небольшой колабле обжект, инкапсулирующий достаточно атомарное и легкотестируемое действие

Максим
05.08.2018
21:40:02
а интерактор

Gleb
05.08.2018
21:40:12
а сервис это еще смотря как использовать ) если широко, то он просто более "ответственный"

Admin
ERROR: S client not available

Максим
05.08.2018
21:40:21
хм

Gleb
05.08.2018
21:40:38
сервис может инкапсулировать, к примеру, всю логику работы с третьей стороной

либо определенный набор действий в рамках одной темы

сопсна интерактор он очевидный, а сервис кто как напишет

Alexey
05.08.2018
21:42:26
в чём разница между интерактором и сервисом?
каждый называет интерактором и сервисом, что захочет, поэтому можно считать, что это те же яйца, только в профиль

Gleb
05.08.2018
21:43:57
таки по факту штуки разные ) просто "сервис" очень широко трактуют

Alexey
05.08.2018
21:50:17
сложилось впечатление, что интерактор - это просто еще одно название для сервиса, придуманное рубистами. вообще, не уверен, что оно существовало до появления одноименного гема )

вот в документации по ханами как-то так и написано: These are Interactors, also referred to service objects, use-cases or operations

Gleb
05.08.2018
21:52:30
смотря как использовать )

Roman
05.08.2018
21:57:01
сервис-объекты, сервисы, интеракторы, команды - все одно то же

Максим
05.08.2018
22:22:25
блин опять херня какая то

не видит класс в джобе

в джобе в приватном методе зову класс

он говорит в логах мол класс ИмяДжоба::ИмяКласса не существует

сам класс который зову лежит в папке сервисез в папке апп

Google
Максим
05.08.2018
22:23:29
через консоль спокойно класс ИмяКласса видит

вызывается тоже просто private def method_name ClassName.new.call end

спринг вырубал

вызвать через :: Тоже пробовал

разница в том что ошибка становаится просто класс ИмяКласса не существует

имя вроде раз 5 уже перепроверил

хм

запустил джоб из консоли вручную

всё сработало

и как быть

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

Иван
05.08.2018
22:31:55
попробуй руками прописать require в джобе нужного тебе файла

мб с автолоудом что то?

Максим
05.08.2018
22:38:48
попробуй руками прописать require в джобе нужного тебе файла
Running via Spring preloader in process 16071 /home/maxim/.rvm/gems/ruby-2.6.0-preview1/gems/activesupport-5.1.6/lib/active_support/dependencies.rb:292:in `require': cannot load such file -- rate_getter (LoadError)

в консоли опять же зареквайрил и всё ок

Страница 1334 из 1594