@proelixir

Страница 333 из 1045
Sergey
10.02.2017
21:59:09
https://github.com/stavro/remodel

Что-то уже немного похожее

Я вообще против вызова функций в темплейте, поэтому и хочу пробросить сразу структуру

Видимо в elixir не получится сделать lazy

Google
Rumata
10.02.2017
22:01:27
что ты подруземваешь под лейзи?

lazy loading?

Sergey
10.02.2017
22:02:19
Ага

Грубо говоря

{ products: Products.last(5) }

Это не lazy

В ruby lazy достигалось неявным вызовом методов

А тут все по-другому

Видимо придется пожертвовать

И делать просто структуру и кидать ее в шаблон

Dmitry
10.02.2017
22:04:07
У меня просто мозг ща взорвётся

В рельсах вызываем методы AR в темплейте и называем это lasy

Или я не так понял?

Google
Sergey
10.02.2017
22:05:54
Нет, вызывать методы AR в темплейте это сразу себе гроб заказать, для этого все это выносится в Presenter

Dmitry
10.02.2017
22:06:34
Нормальные люди это выносят в модель)

А после модели есть ещё контроллер, в котором можно договнокодить то, что не сделал в "тостой" модели

А в фениксе есть ещё вьюха, в которой можно допиздокодить то, что не договнокодил в контроллере, после того как не закодил в модели

Sergey
10.02.2017
22:08:41
Договнокодить не пойдет, ладно)

Aldar
10.02.2017
22:19:01
И в контроллере не получится сделать lazy
можно вынести в какой нибудь отдельный модуль

Sergey
10.02.2017
22:19:14
А потом это кинуть во вью?

* а как

Aldar
10.02.2017
22:19:50
что надо сделать то?

Sergey
10.02.2017
22:20:43
defmodule App.PostController do use App.Web, :controller alias App.Controllers.Post.IndexEntity alias App.Controllers.Post.ShowEntity def index(conn, _params) do posts = Repo.all(App.Post) entity = %IndexEntity{ posts: posts } conn |> render(:index, entity: entity) end def show(conn, _params) do end end

defmodule App.Controllers.Post.IndexEntity do defstruct posts: [] end

Пока придумал что-то такое

Можно не Entity называть, но суть одна – на рендеринг шаблона подаются уже готовые данные

Которые описаны в определенном модуле / tec

etc

Ivan
10.02.2017
22:23:49
так у тебя ж еще view layer, который идет как presenter

Dmitry
10.02.2017
22:23:54
Кароч последний раз говорю что рендерится не шаблон а view, и если не поможет - то либо вам надо остаться в рельсах, либо расширить наконец своё сознание.

Ivan
10.02.2017
22:24:20
и там ты можешь че хочешь сделать

Sergey
10.02.2017
22:24:22
View layer ПОХОЖ на презентор

Но я вижу, что он превратится в свалку хелперов

Google
Dmitry
10.02.2017
22:24:58
Приведи пример хелпера?

Ivan
10.02.2017
22:25:12
дык он же только для этого экшена

в чем проблема?

Sergey
10.02.2017
22:25:29
Нет, он для контроллера

Может я неправильно понял

Ivan
10.02.2017
22:27:28
ну ок для контролера. но это будет очень много штоли? это ж не application helper

Sergey
10.02.2017
22:28:08
Так нельзя рассуждать, имхо

Много - немного

Ivan
10.02.2017
22:29:06
а зачем изобретать велосипед? тебе дан патерн .. . юзай

костыли писать тож не айс

Rafkat
10.02.2017
22:31:00
Так нельзя рассуждать, имхо
Сколько опыт в рельсе?

Aldar
10.02.2017
22:31:00
Собсно в эликсире то ничего и нету - только модули и функции

Dmitry
10.02.2017
22:31:34
Короч так и не привёл пример хелпера

Который будет "одним на свалке из"

Sergey
10.02.2017
22:32:32
2 года

Rafkat
10.02.2017
22:34:24
А вообще опыт программирования?

Sergey
10.02.2017
22:34:35
6 лет

Rafkat
10.02.2017
22:35:28
Феникс не рельса

Эликсир не руби

Подходы разные

Google
Aldar
10.02.2017
22:36:28
Например если ты не обращаешься к Repo, то запроса к бд не происходит, только преобразования данных

Sergey
10.02.2017
22:37:09
Да, интересно именно для базы

Rafkat
10.02.2017
22:37:14
Презентер, как я помню, нужен для того, что разгрузить контроллер от действий как отобразить данные

Admin
ERROR: S client not available

Dmitry
10.02.2017
22:38:16
Смысл в том, что phenix и rails - как react и angular

eex - не шаблонизатор

Он не рендерит шаблон

Шаблон компилируется в функцию

Aldar
10.02.2017
22:39:10
поэтому можно выделить модули с чистыми функциями с бизнес логикой - и потом на них тесты написать, которые будут запускаться параллельно

и отдельно модуль где происходит обращение к бд

Dmitry
10.02.2017
22:39:30
И эта функция вызывается по цепочке до самого верхнего "рендера" в контроллере

Всё - это сраные чистые функции

Aldar
10.02.2017
22:40:34
Вьюха просто подставляет данные в чистые функции - скомпилированные шаблоны

Dmitry
10.02.2017
22:40:42
Можно на каждую строчку твоей любой html странцы сделать отдельный модуль

Aldar
10.02.2017
22:40:55
поэтому фениксовские шаблоны такие шустрые

Dmitry
10.02.2017
22:41:02
Только смысл в том, что template - это хелперы

А View - презентер

И не наоборот

Наоборот - это в рельсах

Потому что там шаблон "рендерится"

Google
Taras ?
10.02.2017
23:17:57
* а как
http://learningelixir.joekain.com/use-import-require-in-elixir/ вот разница в примерах

Собсно в эликсире то ничего и нету - только модули и функции
это в эрланге модули и функции, в эликсире — либы-либы-сахар-сахар-сахар...))

Шаблон компилируется в функцию
именно, в фениксе это неочевидно, но если попробовать самому с нуля "сообразить фенить феникс", то это оказывается несложно https://github.com/221V/iexfly вот и шаблоны видно

в тему обсуждения выше — я просто оставлю это сдесь — https://www.b17.ru/blog/reality_and_illusion/

anton
11.02.2017
00:07:36
https://www.humblespark.com/ellie-announcement/

Mikhail
11.02.2017
07:15:32
кто здесь?

Dmitry
11.02.2017
07:40:19
Здесь 290 человек, судя по надписи "290 members". Кто конкретно тебя интересует?

Mikhail
11.02.2017
07:43:37
Хосе Валим

Dmitry
11.02.2017
07:53:36
Жозе Валим. Он же бразилец)

Можешь написать ему лично jose.valim@plataformatec.com.br

Только емэил никому не давай - это только по большому секрету...

Mikhail
11.02.2017
07:56:09
хорошо

Страница 333 из 1045