
Roman
03.04.2017
14:40:58
например тот же hash compact
если бы не было возможности патчить, это был бы какой-то CompactableHash#compact
и было бы сразу видно - это не ядро

Alexander
03.04.2017
14:41:31

Google

Alexander
03.04.2017
14:42:10
просто это усложняет немного, а большинство людей не любят усложнения

Roman
03.04.2017
14:43:06
о чем мы вообще говорим? я отвечаю на вопрос "почему руби путают с рельсами"
и "почему в других языках такого нет"
никто ведь не говорит "ой, я не знал, что этот метод массиву добавляет Yii, а в родном пхп такого нет"

Marat
04.04.2017
05:34:54
манкипатчинг рельсы в какой-то степени простителен)
это же как-бы DSL.
но вот когда сторонние гемы неявно добавляют и переопределяют методы, тогда начинается боль.
нужен какой-то явный и строгий механизм подключения зависимостей что ли.
подключаешь гем а он ActiveRecord::Base.include(ModuleFromGem)
Можно было как-то так:
Рельсы патчат и добавляют свой DSL, дальше в каком-то конфиге происходит явный инклюд остальных библиотек и у классов вызывается freeze
пример: https://github.com/kaminari/kaminari/blob/master/kaminari-activerecord/lib/kaminari/activerecord.rb#L7
зачем мне нужен каминари во всех моделях?

Roman
04.04.2017
05:37:47
потому что все для упрощения пользования
иначе в каждую модель пришлось бы вручную домешивать
ну то есть твоя идея понятна
не все ж модели нужно пагинировать

kolas
04.04.2017
05:39:53
да пусть инклюдит, чо плохого

Marat
04.04.2017
05:41:12

Google

Roman
04.04.2017
05:41:42
совсем немного увеличивает
все равно кеши вызовов и все такое

Marat
04.04.2017
05:42:38
короче, для рельсы текущий подход это оптимальный набор компромиссов)

kolas
04.04.2017
05:42:40
наверное есть альтернативные гемы для пагинации которые не инклюдятся автоматом везде

Roman
04.04.2017
05:43:08
will_paginate кажись тоже самое делает

kolas
04.04.2017
05:43:18
можно и самому написать, вроде не сложная система

Roman
04.04.2017
05:43:32
не надо :)

kolas
04.04.2017
05:43:45
ну я и не буду )
если бы боролся за мегабайты тогда только

Roman
04.04.2017
05:44:52
тогда надо брать mruby :)

Alexander
04.04.2017
05:44:52

Roman
04.04.2017
05:45:36
есть такое

Alexander
04.04.2017
05:46:02

Roman
04.04.2017
05:46:38
у меня не все получилось заменить на refinements
у них лексический scope
ну собственно это и есть их смысл. но все же

Marat
04.04.2017
05:47:23
и в 2.4 уже больше могут
но никто пока толком не пользуется

Roman
04.04.2017
05:47:35
о ещё не смотрел, спасибо

Google

Marat
04.04.2017
05:47:59
хотя видел мерж в рельсу
Since Ruby 2.4, methods defined via refinements will be available when called via methods like Kernel#send & Symbol#to_proc.

Alexander
04.04.2017
05:50:17

Roman
04.04.2017
05:50:30

Alexander
04.04.2017
05:51:00
Но и без этого можно было жить, собственно. Просто стало чуть проще

Roman
04.04.2017
05:54:25
ну ок допустим у меня есть суперметод для хеша, который я использую по всему проекту, если делать через refinement, мне нужно везде писать using

Ilya
04.04.2017
06:02:47
да отвалите вы от этого манкипатчинга наконец уже) 2017 год, в руби критикуют манкипатчинг :) Есть мнение, что если бы не он, руби был бы никому не известной ненужной помойкой, и я с этим мнением частично согласен.

Alexander
04.04.2017
06:04:47

Ilya
04.04.2017
06:05:40
http://rocket-science.ru/hacking/2016/06/27/monkeypatch-it
вот конкретно с этим мнением я согласен

Oleg
04.04.2017
06:06:43
Это дар и проклятье одновременно

Roman
04.04.2017
06:08:02

Alexander
04.04.2017
06:11:39

Ilya
04.04.2017
06:14:39
Чел очень умный и опытный. Пишет кодяру 20 лет, работал в на крутых проектах
И работает на крутых проектах. Я видел его код, он крутой
Он написал очевидную вещь: руби не для всех и не для всего

Roman
04.04.2017
06:16:37
ну петр солница, на которого он ссылается, тоже классный чувак

Alexander
04.04.2017
06:16:49
Аргументация всё равно слаба:
— "используйте МП, это естественно для руби!" (Кто так сказал? С чего ты взял?)
— "пока не было рельсы — были популярны другие языки, а рельса юзает МП, значит популярность руби из-за МП" (цепочка фреймворк — ЯП — паттерн, это вряд ли допустимо)
— "топор хорош для своего дела!" (Бля, ты здесь про МП пишешь или топоры?)
Он не привёл ни одного примера с проблемами. Если он опытный — он должен был с ними столкнуться. Если он только в рельсах работает — то он в относительном вакууме и безопасности, но судя по его словам вряд ли

Google

Alexander
04.04.2017
06:18:25
Тут этот Алексей (?) просто безоговорочно надрачивает на МП, и выглядит это крайне странно

Ilya
04.04.2017
06:20:58
Ему нравится МП, и тысячам людей, которые любят руби, тоже. Вот и все. МП и открытые классы - одна из ключевых возможностей руби, и ты ее либо любишь, либо выпиливаешься в Haskell / Elixir +- 20 ЯП без МП
Нет четкого ответа, хорошо или плохо использовать МП. Создатели руби попробовали, и это зашло, это популярно, это работает.

Alexander
04.04.2017
06:39:05

Ilya
04.04.2017
06:39:49
Эти недостатки очевидны, и их легко избежать, если не стрелять себе в ногу

Admin
ERROR: S client not available

Ilya
04.04.2017
06:41:41

Alexander
04.04.2017
06:42:18

Ilya
04.04.2017
06:44:40
Про недостатки нытики с горящими жопами написали уже миллион статей, можно обойтись и без этого

Marat
04.04.2017
06:45:09

Roman
04.04.2017
06:46:12
нет, это как второй туалет рядом с комнатой: удобно, но если нужно в душ - надо пройти по коридору :)

Alexander
04.04.2017
06:46:26

Roman
04.04.2017
06:47:13
я начал опять писать на js и мне нравится что если что-то в файле используется, то сверху можно увидеть, откуда оно. но и руби подход мне нравится без кучи require. так что все по-разному

Alexander
04.04.2017
06:47:15
Любители неуместных аналогий!
Молотки, туалеты… чат и блоги строителей, а не программистов.

Ilya
04.04.2017
06:50:24
Нравится инструмент - используй, нет - не используй. В руби все используют это: куча библиотек и проектов. В статье Андрей правильно написал: не нравится - иди гуляй в свой двор, никто это менять не будет (и это круто). Нет, мыши плакали, кололись, но продолжали грызть кактус (обсасывать, какое это говно в 2017)

Roman
04.04.2017
06:54:19

Alexander
04.04.2017
06:55:24
Нравится инструмент - используй, нет - не используй. В руби все используют это: куча библиотек и проектов. В статье Андрей правильно написал: не нравится - иди гуляй в свой двор, никто это менять не будет (и это круто). Нет, мыши плакали, кололись, но продолжали грызть кактус (обсасывать, какое это говно в 2017)
Зачем пересказываешь, да ещё с метафорами? Я прочитал, я прекрасно понял, просто говорю, что ценность поста низкая.

Roman
04.04.2017
06:55:59
и вообще, руби красивый и элегантный язык, не в последнюю очередь благодаря МП, но все равно есть люди, которые что-то хотят запретить, чтобы язык был похож на что-то другое. в С тоже вон если указатели криво писать, можно нехило себе в ногу выстрелить, но никто же не призывает отказаться от указателей

Google

Alexander
04.04.2017
06:56:00
Он не оценивает со всех сторон, он не несёт ничего нового — иии?

Alex
04.04.2017
06:56:52
Потому что указатели зло

Alexander
04.04.2017
06:57:31

Roman
04.04.2017
06:57:38
ну давай уж сразу "языки программирования зло. на них можно написать плохой код"

Ilya
04.04.2017
06:57:45
Он выражает мнение опытного человека, этого достаточно. Я поделился постом, как ссылкой на мнение, если конкретно тебе он не зашел, это ничего не значит.
Более того, это нормально.

Alexander
04.04.2017
06:58:06

Alex
04.04.2017
06:58:11

Alexander
04.04.2017
06:58:54

Ilya
04.04.2017
06:59:34
Тебе подсказать, чья это проблема?)

Alexander
04.04.2017
07:00:10
Ты говоришь, что он опытный, но этого не видно — твоя проблема.
Он выражает своё мнение без подтверждения авторитета/опыта — его проблема.
Ну и, конечно же, моя проблема, если я его не знаю, и не могу оценить опыт из поста

Ilya
04.04.2017
07:08:17
Ты ошибаешься, у меня в этом плане нет проблем. У него тоже, он просто выразил свое мнение, с которым некоторые (многие?) согласны.
Опыт человека это не обязательно обилие примеров и пруфов, расследований и графиков, он может проявлятся в стиле изложения, содержании мыслей и т.д.

Alexander
04.04.2017
07:11:48
Ты ошибаешься, у меня в этом плане нет проблем. У него тоже, он просто выразил свое мнение, с которым некоторые (многие?) согласны.
вряд ли я ошибаюсь:
— твои слова выглядят голословно (не значит, что неправда), пока не найдено других пруфов
— его пост имеет малую ценность, потому что из него не видно авторитетности или попытки оценить со всех сторон, опять же, пока не найдено других пруфов.
это моё мнение о субъективности, с которым можно не соглашаться, конечно же