@proRuby

Страница 509 из 1594
Roman
03.04.2017
14:40:58
например тот же hash compact

если бы не было возможности патчить, это был бы какой-то CompactableHash#compact

и было бы сразу видно - это не ядро

Alexander
03.04.2017
14:41:31
например тот же hash compact
это влияение, но оно мало, и я опять же не уверен, что именно рельсы подвели к созданию

Google
Alexander
03.04.2017
14:42:10
если бы не было возможности патчить, это был бы какой-то CompactableHash#compact
есть много способов патчинга и его избежания. например, наследование, модули, и прочее прочее

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

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
есть такое

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:51:00
Но и без этого можно было жить, собственно. Просто стало чуть проще

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

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

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
http://rocket-science.ru/hacking/2016/06/27/monkeypatch-it
Какой-то бред, на мой взгляд

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 ЯП без МП

Нет четкого ответа, хорошо или плохо использовать МП. Создатели руби попробовали, и это зашло, это популярно, это работает.

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
ну ок допустим у меня есть суперметод для хеша, который я использую по всему проекту, если делать через refinement, мне нужно везде писать using
тут ситуация такая. допустим если установить унитаз в спальне то это очень удобно и не надо ходить далеко? но возможно и споткнутся например в софтвер-инженеринге от подобных упрощений в основном отказываются https://learn.javascript.ru/with в рельсовом мире наоборот http://api.rubyonrails.org/classes/ActiveRecord/Enum.html

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

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
Любители неуместных аналогий!
ага, плохая метафора подобна котёнку с дверцей

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

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

Alexander
04.04.2017
06:57:31
Потому что указатели зло
В руби без них лучше, да? ?

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

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

Более того, это нормально.

Alex
04.04.2017
06:58:11
ну давай уж сразу "языки программирования зло. на них можно написать плохой код"
не, есть языки которые сделаны с учетом ошибок предыдущих языков

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
Ты ошибаешься, у меня в этом плане нет проблем. У него тоже, он просто выразил свое мнение, с которым некоторые (многие?) согласны.
вряд ли я ошибаюсь: — твои слова выглядят голословно (не значит, что неправда), пока не найдено других пруфов — его пост имеет малую ценность, потому что из него не видно авторитетности или попытки оценить со всех сторон, опять же, пока не найдено других пруфов. это моё мнение о субъективности, с которым можно не соглашаться, конечно же

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