@proRuby

Страница 967 из 1594
Dima
10.12.2017
18:00:42
Ну это проще как по мне, чем какие нибудь миксины :)
дак миксины тоже простые как топор.

1 минута

сейчас

Mikhail
10.12.2017
18:01:06
дак миксины тоже простые как топор.
Не знаю, я бы не сказал :)

Google
Dima
10.12.2017
18:01:41
Не знаю, я бы не сказал :)
Все решается через понимание наследования как делегирования сообщения.

Mikhail
10.12.2017
18:02:20
Ну вот таких схем в си рисовать не придётся :)

Dima
10.12.2017
18:02:33
к нам приходит сообщнеие, и мы идев вверх по цепочке в поисках кто знает как на это сообщение отвечать. все

Dima
10.12.2017
18:02:54
Во во, начинается ?
ну так в си арифметика указателей такие-же схемы.

Mikhail
10.12.2017
18:03:01
Нет:)

Просто адреса икрементируются :)

Вот плюсы и в изучении сложнее руби

Dima
10.12.2017
18:03:55
Просто адреса икрементируются :)
а тут просто инкрементируется следующий уровень в цепочке наследования.

Mikhail
10.12.2017
18:04:24
Ну даже эта схема проще :)

Google
Dima
10.12.2017
18:05:08
Не знаю, мне так не ясно :)
А что не ясно? у нас тут чат как раз для того чтоб всем все было ясно.

Mikhail
10.12.2017
18:05:45
Я не использую их в принципе, поэтому не разбираюсь даже :) но с ходу не раздуплил

Dima
10.12.2017
18:06:03
Mikhail
10.12.2017
18:06:37
Примерно, но как это устроено не разбирался

Иван
10.12.2017
18:08:12
вообще объектная модель в руби не самая простая

Dima
10.12.2017
18:09:39
Примерно, но как это устроено не разбирался
https://www.codewars.com/kumite/5a2d784055519eea1c000083?sel=5a2d784055519eea1c000083 смотри тут ясно что происходит?

Mikhail
10.12.2017
18:10:22
https://www.codewars.com/kumite/5a2d784055519eea1c000083?sel=5a2d784055519eea1c000083 смотри тут ясно что происходит?
Спасибо дружище, но с телефона не очень разбираться :)

Да кстати, это ещё одно отличие языков

Dima
10.12.2017
18:10:47
Спасибо дружище, но с телефона не очень разбираться :)
Коля отнаследован от Васи, Вася от Андрея, Андрей от Ивана

Mikhail
10.12.2017
18:11:11
Комунити плюсов и си очень агрессивное и страшно что спросить

А тут сами объясняют без вопросов ?

Dima
10.12.2017
18:12:02
Спасибо дружище, но с телефона не очень разбираться :)
Ты говоршиь Коли, дай пиво. А он не знает "дай пиво", он делегирует "дай пиво" Васе. Вася не знает "дай пиво", он делегирует "дай пиво" Андрею. Андрей не знает, и делегирует это сообщение уже Ивану. Котоный говорит НА

понятно?

Mikhail
10.12.2017
18:12:37
Так это стандартная модель наследования же

Dima
10.12.2017
18:12:44
а теперь миксины это тоже самое наследование 1 в1

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

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

как петелька появляется в цепочке

Google
Dima
10.12.2017
18:14:14
Mikhail
10.12.2017
18:14:20
А так понял теперь, спасибо :)

Dima
10.12.2017
18:18:08
я прикрутил туда модуль девелпоер

который примешал к Васе

теперь когда колю спрашиваешь "А ты программист", он делегирует этот вопрос родителю Васе, Вася говорит "да"

получается в дереве поиска такая петля

А так понял теперь, спасибо :)
https://www.codewars.com/kumite/5a2d784055519eea1c000083?sel=5a2d7a498f27f238120000bb

Иван
10.12.2017
18:20:10
короче во время инклюда создается класс-копия твоего модуля, который встравивается в цепочку наследования между твоим классом и его суперклассом

Mikhail
10.12.2017
18:20:52
Ага, догнал, спасибо :)

Dima
10.12.2017
18:21:58
Ага, догнал, спасибо :)
фактически можно вмешать в класс кучу модулей. в Ruby On Rails их под 60, и добавить объектам функционал.

Ага, догнал, спасибо :)
вот mixin это от слова "вмешивать".

все достаточно просто.

Иван
10.12.2017
18:28:30
модуля)

Roman
10.12.2017
18:29:07
я имел в виду, почему вдруг копия

это сам модуль и есть

Иван
10.12.2017
18:29:21
ну такая реализация

Roman
10.12.2017
18:29:59
ну если ты заинклюдишь модуль, а потом его поменяешь - изменится везде

Google
Иван
10.12.2017
18:37:22
ага, там идет ссылка на таблицу методов модуля а не полная копия, но не у самого же модуля меняется суперкласс

Roman
10.12.2017
18:41:46
а, понял

Иван
10.12.2017
18:47:05
и кстати если потом открыть уже заинклюженный модуль и заинклюдить модуль в модуль, то класс об этом не узнает



Roman
10.12.2017
18:54:17
да, я с этим сталкивался когда переделывал alias_method_chain в prepend

приходилось препендить уже в финальный класс, что не очень круто

Angelina
11.12.2017
11:35:02
#Вакансия #удаленно #teamlead #fulltime #ruby #VR #speech_recognition #api Всем привет! Ищу Тимлида RoR в сервис онлайн-обучения менеджеров по продажам крупных компаний с VR и распознаванием речи. Среди клиентов крупные российские и зарубежные компании. Требования: Опыт организации работы удаленной команды программистов с помощью Kanban. Компания использует Trello. Опыт разработки приложений на Ruby on Rails. Желание изучать новые технологии: VR, speech recognition, API партнеров. Желание вникать, какая потребность пользователей стоит за той или иной фичей. Условия: Удаленная работа ЗП 120000–180000 рублей на руки Заинтересованные пишите - @brusyaa ?

George
11.12.2017
12:08:26
Привет. Кто-то работал с гемом paperclip google drive new?

Mikhail
11.12.2017
15:37:09
Всем привет! Как в руби читать файл с конца, как это делает команда tac?

A
11.12.2017
15:37:28
`tac filename`

Mikhail
11.12.2017
15:37:38
?

А если не в линуксе? :)

Nikita
11.12.2017
15:38:34
https://stackoverflow.com/questions/3024372/how-to-read-a-file-from-bottom-to-top-in-ruby

Mikhail
11.12.2017
15:39:06
https://stackoverflow.com/questions/3024372/how-to-read-a-file-from-bottom-to-top-in-ruby
Я видел, спасибо. Думал может появился гем какой нибудь

Mikhail
11.12.2017
16:02:24
А, точно, спасибо! :)

Alex
11.12.2017
19:31:57
какая версия понятнее, легче читается? v1: response = Namespace::Abstract::Service.new( param1: val1, param2: val2, ).perform track_errors(response) response v2: Namespace::Abstract::Service.new( param1: val1, param2: val2, ).perform.tap(&method(:track_errors))

Google
Nikita
11.12.2017
19:41:18
а какая разница?)

Alex
11.12.2017
19:42:32
есть мнение что 2я версия тяжелее читается т.к. в одной строчке, в последней, несколько действий ну а желательно чтобы программисты тратили минимум времени на прочтение и понимание кода - "долой сложность!" и все такое

Alexey
11.12.2017
19:42:46
конечно, 1

в задницу эту рубишную магию

Alex
11.12.2017
19:49:22
в задницу эту рубишную магию
окей) сила бобра на этот раз победила

Roman
12.12.2017
06:43:25
ну тут это не критично, так как не цикл

я бы сделал Namespace::Abstract::Service.new().tap do |s| track_errors(s) end либо вообще Namespace::Abstract::Service.new() do |s| track_errors(s) end

Alex
12.12.2017
06:57:15
да, верно, но производительность пока роли не играет - важнее именно читаемость

Roman
12.12.2017
06:58:46
ну да, производительность это я для галочки

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