@rubylang

Страница 65 из 1684
Vladimir
08.06.2016
09:30:20
если не нужна *инициализация*, то и возня с классами не нужна в принципе, достаточно статических методов. а если она нужна, то ее надо делать потокобезопасно, ну и напомню что в руби нет аналога статических конструкторов

а синглтоны как раз дают безопасную инициализацию

yopp
08.06.2016
09:32:11
в mri ещё может быть

Google
Vladimir
08.06.2016
09:33:30
но в то же время я не топлю за синглтоны, это антипаттерн.

в mri ещё может быть
ну дабл чек, на котором инициализация синглтона в стдлибе сделана, может в жруби конечно не работать как следует

я про double-checked locking

надеюсь, в jruby другая реализация синглтона

если не ошибаюсь, именно для подобных вещей Чарльз Наттер просил в руби volatile

yopp
08.06.2016
09:39:16
я про double-checked locking
там всё несколько хуже, на самом деле. ещё недавно в jruby были очень большие проблемы с назначением констант. это не threadsafe операция

Vladimir
08.06.2016
09:40:22
ну, да

yopp
08.06.2016
09:40:31
ну вот :)

Vladimir
08.06.2016
09:40:45
но это тоже не что-то хорошее уже само по себе

yopp
08.06.2016
09:41:01
ну привет, рельса вся на автолоаде построена :)

Vladimir
08.06.2016
09:41:07
знаю

Google
Vladimir
08.06.2016
09:41:27
но рельса тоже не что-то хорошее

отчасти поэтому тоже

да не троллю. просто это не аргумент в пользу автолоада

yopp
08.06.2016
09:43:56
да не троллю. просто это не аргумент в пользу автолоада
то что назначение констант не threadsafe это не проблема автолоада

Vladimir
08.06.2016
09:46:35
ну нельзя сделать абсолютно всё потокобезопасным в языке где всё подряд мутируется.

не измазывать же всё блокировками

yopp
08.06.2016
09:47:18
Aldar
08.06.2016
11:21:20
https://news.ycombinator.com/item?id=11814828

Pavel
08.06.2016
11:25:02
https://news.ycombinator.com/item?id=11814828
Вот тебе в коллекцию https://weworkremotely.com/

Вот ещё: https://angel.co/

https://whoishiring.io/search/27.859/-37.178/2/?order=distance (ссылка с твоего сайта)

Konstantin
08.06.2016
12:02:45
бля, grape внутри это просто треш

Vladimir
08.06.2016
12:06:03
не используй его

он решает проблему которой нет

Konstantin
08.06.2016
12:07:36
снаружи он хорош.

а какая альтернатива?

Anton
08.06.2016
12:08:21
Любой другой роутинг Фреймворк

Vladimir
08.06.2016
12:08:55
а какая альтернатива?
вопрос лишен смысла, потому что грейп возник просто ни зачем

он не решает ничего

никаких задач

Google
Vladimir
08.06.2016
12:09:58
а альтернативой в нерешении задач может быть вообще что угодно :)

yopp
08.06.2016
12:10:12
он не решает ничего
он пытается решить всё, наеборот :)

но там удобная история с версионированием

но это, кажется, всё

Konstantin
08.06.2016
12:10:55
@async_prince а какой решает? и что вообще есть задача?

yopp
08.06.2016
12:10:59
ну и валидация параметров, может быть

Konstantin
08.06.2016
12:11:12
@davydovanton никакой гарантии, что не поменяешь шило на мыло

v
08.06.2016
12:11:34
Да вроде грэйп один такой в своем роде

Konstantin
08.06.2016
12:11:35
@dd_bb документация апи в коде

v
08.06.2016
12:11:45
другие фрэймворки на себя столько не берут

Konstantin
08.06.2016
12:13:24
@dd_bb краткая. https://github.com/ruby-grape/grape#describing-methods

Vladimir
08.06.2016
12:13:36
блин да обычный рельсовый роутер с обычными рельсовыми контроллерами, например, заменяют грейп.

yopp
08.06.2016
12:14:09
@dd_bb краткая. https://github.com/ruby-grape/grape#describing-methods
оно параметры автоматически из декларации берёт?

и документирует запрос/ответ?

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

ну и документация это бонус, да

но в остальном я согласен что грейп нинужен

Konstantin
08.06.2016
12:16:50
@async_prince и околонулевой декларативностью. едет convention через configuration, что в итоге получается непонятно.

в грейпе на выходе гораздо более шумный код на первый взгляд, но зато он весь вот он, перед тобой, только руку протяни

Google
Aldar
08.06.2016
12:20:09
вот у меня есть миксин в котором в методе initialize есть инициализация инстанс переменной

как запустить метод initialize миксина, в классе в который я его инкладил?

module Mixin def initialize @a = :foo end end class MyClass include Mixin def initialize end end

yopp
08.06.2016
12:21:57
prepend

У тебя из класса метод перекрывает миксин

Aldar
08.06.2016
12:22:13
как сделать чтобы в MyClass была @a из Миксин

а если я вызову super?

Vladimir
08.06.2016
12:22:46
в грейпе на выходе гораздо более шумный код на первый взгляд, но зато он весь вот он, перед тобой, только руку протяни
там все эти стэкающиеся настройки это ад просто, нинужна такая декоративность. там реально плохо сделали

Admin
ERROR: S client not available

Konstantin
08.06.2016
12:22:48
@hardliner ты не хочешь так делать

yopp
08.06.2016
12:22:54
До миксина поиск не дойдёт тупо

Aldar
08.06.2016
12:23:17
class MyClass include Mixin def initialize super end end

Vladimir
08.06.2016
12:23:32
Aldar
08.06.2016
12:23:32
почему не дойдёт

yopp
08.06.2016
12:23:48
У тебя цепочка поиска: MyClass', MyClass, Mixin

Aldar
08.06.2016
12:23:49
поидее он должен искать сначала в модулях

Aldar
08.06.2016
12:24:08
тут без разницы

Mikhail
08.06.2016
12:24:15
включит тебе инитиалайз парента

Google
Aldar
08.06.2016
12:24:16
потому что аргументов нет

yopp
08.06.2016
12:24:17
Если сделать prepend будет MyClass', Mixin, MyClass

Konstantin
08.06.2016
12:24:21
@hardliner почему наследование тупо не сделать? и дергай super

и будет работать

Aldar
08.06.2016
12:25:12
вроде как я написал работает

Vladimir
08.06.2016
12:26:07
ой всё, в этом чяте советуют пользоваться наследованием...

Konstantin
08.06.2016
12:26:07
Aldar
08.06.2016
12:26:25
зачем мне наследование, если я хочу миксин написать?

Vladimir
08.06.2016
12:26:26
там что-то стекается, что-то нет, что-то мержится

Слишком сложно

Грейп сложный

Aldar
08.06.2016
12:26:49
а если у меня несколько миксинов?

что делать?

супер не проканает

точнее проканает только для одного миксина, который заинклужен последним

yopp
08.06.2016
12:27:35
Во всей цепочке наследования. Тогда проканает

Aldar
08.06.2016
12:27:55
во всех миксинах

yopp
08.06.2016
12:27:58
Да

Aldar
08.06.2016
12:28:07
решение не очень

yopp
08.06.2016
12:28:14
Другого нет

Aldar
08.06.2016
12:28:18
есть

Страница 65 из 1684