@proRuby

Страница 703 из 1594
Alex
07.09.2017
11:05:25
tnx

Zamira
07.09.2017
11:06:02
У меня есть прикольная книжка по трейлблейзер. Могу отфорвардить по email

Vasiliy
07.09.2017
11:06:25
а почему в ханами для репозитория надо инстанс делать?

Google
Alex
07.09.2017
11:06:34
http://telegra.ph/Pepegramming-Contents-07-16
оо, крутяк, спасибо!

Anton
07.09.2017
11:06:45
а почему в ханами для репозитория надо инстанс делать?
потому что никто не любит класс методы

?

Nikolay
07.09.2017
11:06:50
так посмотри на тот же раст, там все это из коробки есть
в том то и дело "из коробки") ведь философия руби "как можно проще и понятнее для всех"

Nikolay
07.09.2017
11:07:11
да и руби тоже

Vasiliy
07.09.2017
11:07:15
ну так нахуя?)

Alex
07.09.2017
11:07:28
паттерн матчинги, монады, монокли
а мне кажется эти плюшки должны перетечь в мейнстрим - удобно же без паттерн матчинга напримре тяжело жить(

Vasiliy
07.09.2017
11:07:39
чем плох то класс метод?

Nikolay
07.09.2017
11:07:59
Anton
07.09.2017
11:08:04
чем плох то класс метод?
ох, долго объяснять

Google
Anton
07.09.2017
11:08:29
советую загуглить

там будет много постов на эту тему

но в целом, класс методы превращают ооп в процедурное программирование и добавляют какой-то глобал стейт

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

Nikolay
07.09.2017
11:09:10
чем плох то класс метод?
потому что не ооп

Alex
07.09.2017
11:09:15
должны, и просто юзай технологии где это из коробки предусмотрено ?
ну когда в java не было лямбд - можно было подключить в библиотеке или ждать 10 лет пока завезут в stdlib мне кажется сейчас ситуация похожая

Nikolay
07.09.2017
11:09:15
бло, опередели(

Vasiliy
07.09.2017
11:09:43
ну т.е. мы создадим инстанс чтобы юзать не через класс методы, а через инстанс?

Anton
07.09.2017
11:09:44
должны, и просто юзай технологии где это из коробки предусмотрено ?
кстати, матц говорил мне пару раз, что хочет паттерн матчинг в руби

Nikolay
07.09.2017
11:10:07
из головы вылетело название

Vasiliy
07.09.2017
11:10:30
эликсир?

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

из головы вылетело название
стрим, мруби или что-то еще?

Nikolay
07.09.2017
11:10:47
mruby

Anton
07.09.2017
11:11:08
ну, он не для этого

Vasiliy
07.09.2017
11:11:24
ну если говорить про ханами, то через инстанс убирается глобал стейт
repository = BookRepository.new book = repository.create(title: "Hanami") чё-то выглядит как лишнее

Nikolay
07.09.2017
11:11:40
я кроме названия ничего не знаю, да и то забыл))

Anton
07.09.2017
11:13:23
repository = BookRepository.new book = repository.create(title: "Hanami") чё-то выглядит как лишнее
так смотри дальше, ты можешь сделать контейнер с репозиторием и вызывать его как хочешь

App['repositories.book'].create(title: 'hanami')

Google
Anton
07.09.2017
11:15:20
так смотри дальше, ты можешь сделать контейнер с репозиторием и вызывать его как хочешь
а можешь вызывать разные инстансы рома в репозитории (этого пока нет) read_only_repo = UserRepo.new(slave_rom) write_repo = UserRepo.new(master_rom)

Vasiliy
07.09.2017
11:16:25
а можешь вызывать разные инстансы рома в репозитории (этого пока нет) read_only_repo = UserRepo.new(slave_rom) write_repo = UserRepo.new(master_rom)
ну вот в этом конксте довольно ок смотрится(так вроде в симфони пхпшной), что с разными БД удобно работать

ну хуй знает, по мне класс методы были б очень ок(и ну и лан что не ооп)

Anton
07.09.2017
11:17:40
сейчас пр найду даже

Vasiliy
07.09.2017
11:18:14
ты ж все равно с репо общаешься, нахуя эта промежуточная переменная

Anton
07.09.2017
11:18:45
https://github.com/hanami/model/issues/290

We are forced to assign a class level adapter (BookRepository.adapter = adapter) before the application starts. We should reduce as much as possible global state. Class methods resist refactoring Dependency injection should work with instances. Having repositories as instances helps to use DI in projects.

Ivan
07.09.2017
11:19:33
@davydovanton мне кажется твоя удаленная работа - это в ТГ чатик постоянно писать))

Anton
07.09.2017
11:19:40
там ссылки посмотри

Dima
07.09.2017
11:19:49
А вот кто знает откуда sublime3 берет настройки для rubucop? что что у меня затык знаете ли. Вот в терминале пишу rubocop и он берет настройки из .rubocop.yml , а в редакторе эти настройки не натягиваются.

Anton
07.09.2017
11:19:52
Mariya
07.09.2017
11:20:17
Доброго дня!:) Меня зовут Мария, я из университета интернет-профессий Нетология. Сейчас у нас активно развивается факультет Программирование и мы планируем запуск курса по Ruby. Мы приглашаем для работы над этим курсом автора, который в сотрудничестве с нами будет разрабатывать учебную программу (концепция, структуру, план). А также методистов, которые будут прорабатывать материалы к отдельным лекциям. В материалы к занятию входит: конспект для преподавателя, презентация, небольшой теоретический тест (5-7 вопросов), формулировка домашнего задания. Было бы кому-то интересно присоединиться к команде наших экспертов?:)

Mariya
07.09.2017
11:21:51
Google
Fedor
07.09.2017
11:22:35
там вроде уже курс даже есть какой-то

от автора

Mariya
07.09.2017
11:23:02
или Ruby School .us
посмотрю)) благодарю

Vasiliy
07.09.2017
11:24:44
ну можно сделать класс методы через магию def method_missing(method_name, *args) inst = new() send(inst, method_name) end

(это схематично)

Nikita
07.09.2017
11:34:51
должны, и просто юзай технологии где это из коробки предусмотрено ?
это заблуждение, вернее подмена понятий. Язык это не более чем инструмент, нужно владеть как инструментом, так и подходами

Vasiliy
07.09.2017
11:36:05
почему?

Admin
ERROR: S client not available

Vasiliy
07.09.2017
11:36:38
почему создавать инстанс только для того чтобы вызвать то что можно вызвать через класс метод прекрасно?

Nikita
07.09.2017
11:37:26
почему создавать инстанс только для того чтобы вызвать то что можно вызвать через класс метод прекрасно?
потому что конструктор принимает стейт, сейчас это может в ханами и не работает, но потом будет. И в роме это обязательно

хочешь глобальных объектов, напиши $user_repo = UserRepo.new

и живи потом в этом проклятом мире

Vasiliy
07.09.2017
11:38:38
не, ну так говно ж

ну просто там экземпляр ради экземпляра

Nikita
07.09.2017
11:39:01
это на сто процентов одно и то же

Vasiliy
07.09.2017
11:39:30
эм... ну нет

Nikita
07.09.2017
11:39:34
ну просто там экземпляр ради экземпляра
еще раз, у конструктора есть аргумент. Если сейчас его нельзя передать, то потом точно можно будет

тебе не придется переписывать весь код

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

Google
Vasiliy
07.09.2017
11:40:36
так можно ж этот адаптер через DI кидать и в случае необходимости менять его(если так можно конечно, гг)

Nikita
07.09.2017
11:40:45
наличие методов класса отменяет даже теоретическое отсуствие глобального состояния

Nikita
07.09.2017
11:41:04
класс — это константа, глобальный объект

Vasiliy
07.09.2017
11:41:14
ну я в скобках пояснил)

Nikita
07.09.2017
11:42:10
ну я в скобках пояснил)
это все не на тему доебаться, а чтобы ты подумал что вообще возможно в языке, а что нет

Vasiliy
07.09.2017
11:42:49
ну что-то типа такого def call_class_metod(*args, adapter: DI['adapter'])

я понимаю

как-то так

Nikita
07.09.2017
11:43:26
ну что-то типа такого def call_class_metod(*args, adapter: DI['adapter'])
да, допустим, но ты затрахаешься потом передавать при вызове каждого метода

Vasiliy
07.09.2017
11:43:48
я чуть поправил, ну и ты ж не часто адаптеры меняешь

Nikita
07.09.2017
11:43:50
DI тут не сработает, потому что он обычно на уровне конструктора отрабатывает

Anton
07.09.2017
11:43:57
ну что-то типа такого def call_class_metod(*args, adapter: DI['adapter'])
а что делать, когда надо использовать сразу 2 адаптера?

Nikita
07.09.2017
11:44:05
Nikita
07.09.2017
11:44:26
?

Vasiliy
07.09.2017
11:44:42
пацаны, я же не против инстанса, когда он в тему

Nikolay
07.09.2017
11:44:48

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