
Alexander
23.05.2017
15:54:15

?
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

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
Хм, никогда так не делал

Alexander
23.05.2017
16:28:53

?
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

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

Alexander
23.05.2017
16:43:32

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

Aleksey
23.05.2017
17:07:27

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


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
там разве сенды?
Хз, предлагаемый вариант. Можно иначе, ну внутри в любом случае будут лишние телодвижения