@proRuby

Страница 560 из 1594
Alexander
23.05.2017
15:54:15
Я там upcase переделал
не совсем похоже на "гем использовал"

?
23.05.2017
15:54:32
Что-то типа class String def upcase return Unicode::upcase self end end

Nikita
23.05.2017
16:06:34
Ещё и return написал, ну совсем

Google
Oleg
23.05.2017
16:08:18
Достаточно профессиональный программист фортрана может написать на любом языке на фортране (с)

Кстати, после некоторого опыта писания кода для простых сервисов на ExpressJS/Koa и на Sinatra - могу сказать что Sinatra может и не быстрее, но удобнее. Если мне нужно будет что-то написать в будущем простенькое для апи и простого рендеренга страниц - Sinatra + ActiveRecord лучше чем ExpressJS/Koa.

Alex
23.05.2017
16:14:24
Очевидно же, потому что руби

Зато если будет большой IO то проще взять ноду

т.к она вся на асинхронности построена.

на рубях замучаешься это асинхронно писать.

Oleg
23.05.2017
16:14:53
Да

А вот если говорить о шаблонизаторах, то Jade получше чем Slim.

С его миксинами, реквайрами и прочим таким

Ну и Opalrb оказался вполне себе юзабельным, если сильно не извращаться и нужно что-то в стиле jQuery. Не смотря на то что говорят что не взлетел

?
23.05.2017
16:19:41
Ещё и return написал, ну совсем
С недавних пор всегда пишу return

Oleg
23.05.2017
16:19:44
Хотя там есть интересные фреймворки полноценные

Ярослав
23.05.2017
16:20:40
Google
Oleg
23.05.2017
16:21:12
Тоже хотел бы ответ на этот вопрос :D

Nikita
23.05.2017
16:22:13
Alex
23.05.2017
16:22:57
?
23.05.2017
16:25:42
Вы что, все не пишете? Мне нравится, как это слово подсвечивается в редакторе, вот и всё

Roman
23.05.2017
16:26:05
тоже мне аргумент

мне нравится как это слово выглядит, когда его нет

?
23.05.2017
16:26:52
Хахаха

Roman
23.05.2017
16:27:14
ну серьёзно, тебе дали возможность не писать лишние буквы :)

?
23.05.2017
16:27:35
Мне не сложно :)

Roman
23.05.2017
16:28:00
а если у тебя допустим последним statement - each цикл?

будешь делать return bla.each do |wtf| something end

как js

?
23.05.2017
16:28:48
Хм, никогда так не делал

?
23.05.2017
16:29:11
Я это всё в переменную, которую потом возвращаю

Lupsick
23.05.2017
16:29:18
топлю за sequel

Oleg
23.05.2017
16:29:40
А оное валидацию умеет?

Alexander
23.05.2017
16:29:41
?
23.05.2017
16:29:56
Alexander
23.05.2017
16:30:04
Google
Lupsick
23.05.2017
16:30:10
?
23.05.2017
16:30:16
Если это не цепочка, то не юзаю их

Lupsick
23.05.2017
16:30:17
валидировать что-то внутри модели – нонсенс

Oleg
23.05.2017
16:30:19
Аааа, вспомнил про это всё

Alexander
23.05.2017
16:30:37
dry-validation сверху
да можно и из коробки взять) для мелких вещей норм

Oleg
23.05.2017
16:31:46
В активрекорде, на сколько я сейчас умею юзать его, в моделе прописывается валидация, потом я создаю модель новую и туда сырые данные. Если метод валидации говорит ок - значит ок, можно что-то с этим делать, в том числе сохранять-писать в базу. А как оное в Секвеле?

Oleg
23.05.2017
16:44:02
Но, как вижу, не декларативно

Alexander
23.05.2017
16:44:21
Oleg
23.05.2017
16:44:40
В активрекорде на уровне класса прописывается, тут по ссылке - в методе

Alexander
23.05.2017
16:45:05
В активрекорде на уровне класса прописывается, тут по ссылке - в методе
классовый метод или инстанции первое ближе к ФП, второе — к ООП результат один

когда ты кидаешь сырые данные в модель — ты уже получаешь или имеешь объект

Alexander
23.05.2017
16:45:26
объект сам себя провалидировать не может что ли?

Oleg
23.05.2017
16:45:29
Результат один, но выглядит чище когда без метода и вызова супера

Alexander
23.05.2017
16:45:47
можно модуль общей валидации замутить, инклюдить его в несколько моделей, и всё это работать будет средствами руби

Oleg
23.05.2017
16:46:22
Наследование не должно влиять никак, разве что нельзя отменить той валидации что ниже ибо супера нет

Вот вынести в модуль метод валидации - да, плюс

А хотя

Не факт

Google
Alexander
23.05.2017
16:47:01
Не факт
факт, проверял)

Oleg
23.05.2017
16:47:42
Ну в целом задача получить данные сырые, убедится что поля что нужны есть, что они соответствуют нужной простой кондиции и вперед

Активрекорд пока выглядит лучше

Alexander
23.05.2017
16:47:58
ахаха

Oleg
23.05.2017
16:47:59
Но может быть для сложных сервисов нет

Alexander
23.05.2017
16:48:06
далее:

Oleg
23.05.2017
16:48:13
Но тогда и не синатра тут нужна

Alexander
23.05.2017
16:48:53
https://github.com/jeremyevans/sequel/blob/master/doc/active_record.rdoc#validations упоминается плагин validation_class_methods открываем его (идёт из коробки): http://sequel.jeremyevans.net/rdoc-plugins/classes/Sequel/Plugins/ValidationClassMethods.html там классовые методы: http://sequel.jeremyevans.net/rdoc-plugins/classes/Sequel/Plugins/ValidationClassMethods/ClassMethods.html получаем, как я понимаю, то же, что и в activerecord

гибкость

Admin
ERROR: S client not available

Alexander
23.05.2017
16:49:47
но мне в объекте валидация ближе, чем в классе. это чище работает, проще в реализации, и гибче в использовании

Oleg
23.05.2017
16:50:26
Вот и не знаю даже, мне чище когда в классе :D

Ибо декларативный подход

Ты говоришь компьютеру что делать, а не как и тп

Но это тонкие грани, да

Однако спасибо за дискуссию, есть чего поизучать, почитать, попробовать

Спасибо

Alexander
23.05.2017
16:56:34
Однако спасибо за дискуссию, есть чего поизучать, почитать, попробовать
при желании, почитать: https://twin.github.io/activerecord-is-reinventing-sequel/ удивиться: https://www.techempower.com/benchmarks/#section=data-r14&hw=ph&test=db&l=7p6ku3 https://community.rubybench.org/t/rewriting-the-scope-all-benchmark-in-sequel-and-raw/138 (там в комментах уточнения)

Alex
23.05.2017
17:07:03
Google
Alex
23.05.2017
17:08:20
Oleg
23.05.2017
17:08:43
Теперь я точно запутался :D

Alex
23.05.2017
17:08:56
от того что сколько людей столько и мнений?

Oleg
23.05.2017
17:09:26
Да :D

Alex
23.05.2017
17:09:27
мне нравятся лаконичные валидации. Там правда при большом проекте проблемы возникают, но по сути метод будет иметь те же проблемы.

Меня бесит явно все описывать, мне нравится что в руби+рельсах модель можно прямо в классе лаконично, человекочитаемо описать.

Это круто и охуенно.

P.S. Опыт на рельсах всего лишь 2-3 года.

Максим
23.05.2017
17:11:04
это реал круто

(опыт на реальсах гулькин нос)

Klim
23.05.2017
17:11:47
и охуенно. (опыт на рельсах гулькин хер)

Oleg
23.05.2017
17:15:34
Я познал силу декларативного кода когда давно писал чисто фронтенд. И когда ты описываешь виджет конфигом, декларативно, ключ-значение - это было большим шагом по сравнению с явным описанием всего. Такими же там были модели, которые ходили на сервер по единому протоколу. И вот они тоже все напрочь были декларативны. И всё было декларативно где это только было можно. Идеально же - разделение описания функциональности от явных команд для исполнения и прочей рантайм-логики. Возможно по этому мне больше по душе пришелся активрекорд. Но скорость - тож аргумент, да... Ну и наследование интереснее, динамическое задание всего без костылей и всё такое тоже имеет свои плюсы.

Alex
23.05.2017
17:16:58
Скорость не сильно различается я щитаю.

оно ведь при инициализации строится.

Alexander
23.05.2017
17:17:12
Я познал силу декларативного кода когда давно писал чисто фронтенд. И когда ты описываешь виджет конфигом, декларативно, ключ-значение - это было большим шагом по сравнению с явным описанием всего. Такими же там были модели, которые ходили на сервер по единому протоколу. И вот они тоже все напрочь были декларативны. И всё было декларативно где это только было можно. Идеально же - разделение описания функциональности от явных команд для исполнения и прочей рантайм-логики. Возможно по этому мне больше по душе пришелся активрекорд. Но скорость - тож аргумент, да... Ну и наследование интереснее, динамическое задание всего без костылей и всё такое тоже имеет свои плюсы.
Ты на sequel можешь валидацию использовать как с методами инстанции, так и с классовыми — у тебя выбор есть. Это не зависит и не влияет на гибкость и скорость запросов

Скорость не сильно различается я щитаю.
Не сильно, но я как представлю реализацию через классовый метод — ?

Alex
23.05.2017
17:17:52
а что не так?

у тебя класс на момент работы имеет уже конечную форму все равно

это одноразовая инициализация

Alexander
23.05.2017
17:18:17
а что не так?
Сенды вместо нормального вызова?

Alex
23.05.2017
17:18:31
там разве сенды?

Alexander
23.05.2017
17:19:08
там разве сенды?
Хз, предлагаемый вариант. Можно иначе, ну внутри в любом случае будут лишние телодвижения

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