Size: a a a

Чат по руби

2021 July 15

SR

Shattered Ruby in Чат по руби
а ведь я верно понимаю, что кваргс используются только для опциональных аргументов? просто я использую этот приём у себя в проекте для пропуска некоторых аргументов при вызове метода
источник

AS

Alex Sherman in Чат по руби
почитай POODR Сэнди Метц про это добро
Там вообще рекомендуется их использовать каждый раз, когда аргументов у метода больше одного
источник

SR

Shattered Ruby in Чат по руби
хорошо, благодарю
источник

AS

Alex Sherman in Чат по руби
цитирую
Keyword arguments offer several advantages. As you likely noticed in two exam- ples above, keyword arguments may be passed in any order. Additionally, Gear is now free to add or remove initialization arguments and defaults, secure in the knowl- edge that no change will have side effects in other code.

When Gear switched to keyword arguments, it lost its dependency on argument order but it gained a dependency on the names of the keywords. This change is healthy. The new dependency is more stable than the old, and thus this code faces less risk of being forced to change.
Using keyword arguments requires the sender and the receiver of a message to state the keyword names. This results in explicit documentation at both ends of the message. Future maintainers will be grateful for this information.
Keyword arguments are so flexible that the general rule is that you should prefer them. While it’s certainly true that some argument lists are so stable, and so obvious, that keywords are overkill (for example, what would Point take but an x and a y?), your bias should be toward declaring arguments using keywords. You can always fall back to positional arguments if that technique better suits your specific problem.
источник

AS

Alex Sherman in Чат по руби
ну то есть не “только кварги, или расстрел”, а “с кваргами вам будет удобнее, но, если считаете это оверкиллом - конечно, не следует”
источник

SR

Shattered Ruby in Чат по руби
ага, вижу. спасибо!
источник

AS

Alex Sherman in Чат по руби
Practical Object-Oriented Design An Agile Primer Using Ruby by Sandi Metz, страницы 49-50
источник

VM

Victor Maslov in Чат по руби
а почему тогда у HTTParty там не kwargs? не шарят?
источник

VM

Victor Maslov in Чат по руби
kwargs для того случая, когда есть независимые опциональные аргументы -- приходилось пробрасывать nil, nil, nil между ними
плюс можно передать в таком порядке, в каком посчитаешь красивым
источник

И

Иван in Чат по руби
да хз, они в целом дают понять что это за аргумент по названию для того кто код читает
источник

И

Иван in Чат по руби
есть у тебя метод который принимает 3 инта например
источник

И

Иван in Чат по руби
почему бы не сделать его c kwargs?
источник

И

Иван in Чат по руби
согласись что гораздо понятнее когда ты видишь в коде что нибудь типо
calc(width: 10, height: 10, depth: 10) чем
calc(10, 10, 10)
источник

И

Иван in Чат по руби
ну и кстати условие в вопросе гораздо более читаемое чем в твоем примере с raise
источник

A

Alex in Чат по руби
Хаю, если в контроллере два одинаковых имени методов, то запускается первый при вызове?
источник

И

Иван in Чат по руби
второй. он переопределит первый метод
источник

A

Alex in Чат по руби
спасибо
источник

И

Иван in Чат по руби
пример конечно супер надуманный, потому что в коде ты все таки оперируешь какими то переменными, которые ты можешь адекватно назвать, но все же ничего плохого в kwargs не вижу
источник
2021 July 16

VM

Victor Maslov in Чат по руби
все может быть к месту и не к месту
источник

VM

Victor Maslov in Чат по руби
по твоей логике кваргсы должны быть везде, где больше одного аргумента
источник