
Rumata
10.07.2016
17:14:58
когда смотрел?

yopp
10.07.2016
17:15:01
плюс это эрланг, а это фп
фп для веба конечно можно, но это очень неэффективно
посмотрите как сделан ORM в фениксе

Google

Rumata
10.07.2016
17:15:47
Экто все эксплисит
не надо магию писать, от размера проекта зависит конечно

yopp
10.07.2016
17:16:33
в руби нет «магии», есть плохое понимание объектной модели

Rumata
10.07.2016
17:16:55
смотри что значит плохое понимание объектной модели
допустим у тебя сложная доменная модель
реально прям много связей и довольно тяжело их менеджить,

yopp
10.07.2016
17:17:41
феникс не решит твоей проблемы
а только усугубит

Rumata
10.07.2016
17:17:52
а причем тут феникс мы за руби говорим
в руби нет «магии», есть плохое понимание объектной модели
ты сам только что об этом написал )

yopp
10.07.2016
17:18:17

Rumata
10.07.2016
17:18:52
ну просто в актив рекорд вероятность запиздюлить N+1 имхо намного выше чем в Экто

Google

Rumata
10.07.2016
17:18:56
ты со мной согласишься?

yopp
10.07.2016
17:19:22
нет, не соглашусь.

Lupsick
10.07.2016
17:19:27
лучше юзать rom и sequel

yopp
10.07.2016
17:19:32
нет, не лучше.

Lupsick
10.07.2016
17:19:37
чейта

yopp
10.07.2016
17:19:57
AR очень взрослый, да у него есть определённые нюансы, но эти нюансы управляемые
и технически и административно

Lupsick
10.07.2016
17:20:13
легче писать скл чистый и не тупить

yopp
10.07.2016
17:20:25
нет, не проще.

Lupsick
10.07.2016
17:20:31
база это не то место где можно играть в активрекорд

Rumata
10.07.2016
17:20:53

yopp
10.07.2016
17:21:01

Rumata
10.07.2016
17:21:09
ты как баран сейчас )

yopp
10.07.2016
17:21:15
простой пример
мы деплоим мониторинг запросов, ставим alarm на некий порог
после прогона тестов мы видим где мы насрали
риск нивелирован

Rumata
10.07.2016
17:21:59
как в телеграмме код послать ?)

yopp
10.07.2016
17:22:04
внедрение такой системы занимает около недели
gist.github.com

Google

Rumata
10.07.2016
17:23:21
#Articles model
class Article < ActiveRecord::Base
belongs_to :author
end
#Authors model
class Author < ActiveRecord::Base
has_many :posts
end
потом вася во вьюхе
делает следующее
@recent_articles = Article.order(published_at: :desc).limit(5)
#in our view file
@recent_articles.each do |article|
Title: <%= article.title %>
Author:<%= article.author.name %>
end
и привет
:)

yopp
10.07.2016
17:24:27
мы делаем rack middleware из 10 строк
подписываемся на событие о запросе в субд
храним счётчик
складываем в базу

ojab
10.07.2016
17:24:52
велосипедисты
bullet же есть

yopp
10.07.2016
17:25:00
есть, да
вопрос в технологии
bullet это реализация

Rumata
10.07.2016
17:25:17
вот ты говоришь за АР
ты так и не ответил на мой вопрос что случится с твоим проектом когда в нем будет более 50 моделей
и второе

yopp
10.07.2016
17:25:51
ничего не случится

Lupsick
10.07.2016
17:25:52
да он интерпрайз

Google

Lupsick
10.07.2016
17:25:56
там у всех так

Rumata
10.07.2016
17:26:02
ведь всем очевидно что миксовать слой бизнес логики
и слой доступа к данным это же пиздец
;)
ну это как бы ебантизм, для маленького проекта это ок
для сайтика там где небольшое количество моделей и простая BL

yopp
10.07.2016
17:26:53
для большого проекта куски sql кода это больший пиздец
например с точки зрения безопасности

Lupsick
10.07.2016
17:27:03
да даже для маленького говно какой толк это тащить

Admin
ERROR: S client not available

Rumata
10.07.2016
17:27:08
а зачем куски скул кода?
есть же мапер выносишь в отдельный слой

yopp
10.07.2016
17:27:21

Rumata
10.07.2016
17:27:24
плюс Repository

yopp
10.07.2016
17:27:42
смотри, на абстрактную проблему есть абстрактное решение

Rumata
10.07.2016
17:27:59
понятно с тобой крч )
ладно посоны все норм ) АР юзаем расходимся

yopp
10.07.2016
17:28:12
если у нас риск заключается в том, что из-за ошибок программистов может возникнуть дополнительная нагрузка на СУБД, надо придумать как этот риск контролировать
для этого надо выделить KPI, и следить чтоб они находились в некоторых заданных диапазонах

Lupsick
10.07.2016
17:29:36
все уходит в компонентную модель

Google

yopp
10.07.2016
17:29:45
мой опыт с большими проектами и как контролировать пиздец, к которому они неизбежно стремятся заключается в двух очень тупых вещах: мониторинг и регламенты

Lupsick
10.07.2016
17:29:48
потому что куски кода эти заебешься писать

yopp
10.07.2016
17:30:04
а дальше у нас есть куча инструментов и паттернов которые позволяют решать конкретные проблемы
например декомопозиция и service objects
когда мы определённые повторяющиеся структурные роли можем отдать определённому классу объектов

Lupsick
10.07.2016
17:30:54
ой бля интерпрайз на интерпрайзе

yopp
10.07.2016
17:31:05
но для того чтоб понять что именно отдавать, это надо иметь какой-то реальный набор данных
оптимизировать коня в вакууме это очень дорого и не эффективно
а для этого надо иметь хороший мониторинг
букинг например гоняет перл в продакшен без тестов
но у них инфраструктура позволяет мгновенно открывать изменения

Lupsick
10.07.2016
17:32:15
у тебя слова человека который работал в компании которая уже была большой когда ты туда пришел

yopp
10.07.2016
17:32:17
потому что пиздатый мониторинг
у меня сейчас своя компания которая делает свой продукт в пять человек

Lupsick
10.07.2016
17:32:41
и че вы делаете?

yopp
10.07.2016
17:32:54
https://www.altread.com
когда несколько вещей у нас созреют, мы отдадим их в опенсурс, пока они ещё не созрели
я хочу хочу наш биллинг стек отдать в OSS
потому что я заебался в кажом проекте с деньгами решать один и тот-же набор проблем

Lupsick
10.07.2016
17:34:52
что такое OSS?

Stanislav
10.07.2016
17:35:51
Open source software

yopp
10.07.2016
17:36:26
потому что ActiveMerchant это очень плохая обёртка вокруг гейтов и пожалуй единственное в чём есть что-то похожее на биллинг это Spree