@dlangru

Страница 381 из 719
Pavel
14.01.2018
11:33:54
Ну твиг то читает файл и из него делает кешированную версию. У тебя в рантайме?

Stepanos
14.01.2018
11:37:47
хз) формирую строку на лету по нужньім данньім, кеширую ее и в mixin

если сума контрольная не менялась - с кеша беру вместо формирования строки заново

Google
Evgeny
14.01.2018
11:45:21
Способность в рантайме компилировать шаблоны - это не свойство самого "языка" шаблонов, а свойство его реализации.

В продакшене можно и в compile-time парсить. Максимально возможная скорость получается

К сожалению SDC слабо развивается, а было бы неплохо иметь компилятор D как библиотеку

В Diet еще переменные в виде alias-ов передаются.

Ну твиг то читает файл и из него делает кешированную версию. У тебя в рантайме?
Нет, Diet не умеет в рантайм. Но умеет не перекомпилировать шаблон, если он не менялся. Что ускоряет компиляцию.

Pavel
14.01.2018
11:51:54
А рантайм будет работать медленнее? Мне кажется нет

Evgeny
14.01.2018
11:54:41
Будет, потому что придется интерпретировать вставки кода

либо надо запекать шаблоны в шаред-либку

с этим у дешки под вяндой не ахти

Pavel
14.01.2018
11:55:52
А в скомпилированном шаблоне как вставки переменных интерпретируются?

Там же наверняка все сводится к write(str)

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

Evgeny
14.01.2018
11:57:44
да, так и есть, оно переводится в нативный код и компилируется в бинарные данные

Google
Dmitry
14.01.2018
12:09:45
Я не могу кстати понять, что значит "скомпилированный в машинный код шаблон". Браузер то HTML в итоге интерпритирует все равно.

Evgeny
14.01.2018
12:13:23
Я не могу кстати понять, что значит "скомпилированный в машинный код шаблон". Браузер то HTML в итоге интерпритирует все равно.
Это значит, что управляющие конструкции шаблона транслируются непосредственно в машкод, а не в некий промежуточный код, который затем интерпретируется в ран-тайм

сам HTML естественно ни во что не компилируется, просто превращается в дешные строки

Pavel
14.01.2018
12:28:30
Ну как я себе это вижу - в итоге шаблон парсится и превращается в длинный массив. Какие то его элементы это статические строки, какие то - колбеки на логику циклов например

Когда надо отрендерить, код идет по массиву, если строка то он делает write(a[i], stdout)

Pavel
14.01.2018
12:29:52
да

Evgeny
14.01.2018
12:30:23
для этого придется делать некую мини виртуальную машину

основная сложность перевести код шаблона в этот самый массив

в Diet поступили самым простым способом, код шаблона переводится во внутреннее представление компилятором

Pavel
14.01.2018
12:33:33
Короче у меня сомнения что в рантайме будет медленнее

Но будет больше вызовов write и дерганья колбеков

Но такие вещи может оптимизируются процессором, не знаю

Evgeny
14.01.2018
12:51:59
Короче у меня сомнения что в рантайме будет медленнее
скажем так, оно будет медленнее, но незначительно.

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

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

но зато можно сказать: "Зато Diet супербыстрый!" :lol:

Pavel
14.01.2018
12:54:59
Если так нужна супербыстрота то стоит подумать о json api и переходе на клиентский рендеринг, так еще быстрее будет

Evgeny
14.01.2018
12:55:40
Но будет больше вызовов write и дерганья колбеков
не только, тебе придется писать код, который будет бегать по этому массиву, читать из него и вызывать нужные коллбеки с нужными параметрами.

Если так нужна супербыстрота то стоит подумать о json api и переходе на клиентский рендеринг, так еще быстрее будет
у рендеринга на клиенте есть один АААААГРОМНЫЙ недостаток, из-за которого я отказываюь от него: абсолютно недружелюбно к поисковым системам.

Google
Pavel
14.01.2018
12:57:07
Они уже научиться должны

Evgeny
14.01.2018
12:57:20
сложный жсон они не умеют - слишком накладно

поэтому пилят параллельно клиентский рендеринг для людишек и серверный для поисковиков

по мне так - двойная работа

процесс отказа от клиентского рендеринга уже пошел

блядская веб-экосистема, только освоишь новую технологию, а она уже устарела.

реакт нынче не стильно, не модно и не молодежно

https://habrahabr.ru/post/315666/

Dmitry
14.01.2018
13:04:02
ReactJS это вообще какая-то наркомания. После того как я увидел что там код и вьюшки мешаются вперемешку желание учить его отпало раз и навсегда. Если создатели такую наркоманию в самых базовых вещах творят, то что там будет если глубже копнуть

Ackeard
14.01.2018
14:02:38
Есть вопрос по vibe.d. Допустим будет rest интерфейс с авторизацией. Можно либо будет в любой момент времени отправить POST авторизированному клиенту? Тоесть инициатор это сервер?

Ackeard
14.01.2018
14:04:46
Вот поэтому и вопрос

Dmitriy
14.01.2018
14:04:50
Эм, протокол не так делать. У браузера 20 секунд таймаут подключения

Evgeny
14.01.2018
14:04:52
как можно клиенту отправить POST вообще?

Dmitriy
14.01.2018
14:05:01
Вебсокеты в помощь

Ackeard
14.01.2018
14:05:36
ладно спасибо, посмотрю веб сокеты

Evgeny
14.01.2018
14:05:38
Это вопрос не по vibe.d, а скорее по HTTP :)

я бы даже сказал вообще по WEB-технологиям

Dmitriy
14.01.2018
14:06:10
Короче http не умеет так :) По теме можно погуглить long polling

Google
Ackeard
14.01.2018
14:06:15
это такой абстрактный вопрос. про понимание в принципе

Dmitriy
14.01.2018
14:06:21
Но лучше ws

Evgeny
14.01.2018
14:06:31
в vibe.d есть вебсокеты

яих ни разу не использовал

Dmitriy
14.01.2018
14:07:14
Они норм, тестил) Всё стандартно там

Evgeny
14.01.2018
14:07:18
у меня древняя технология периодического опроса сервера

без вебсокетов

Dmitriy
14.01.2018
14:07:44
Не стильно, не модно, не молодёжно ?

Evgeny
14.01.2018
14:07:54
ага, так что перехожу на них :)

Admin
ERROR: S client not available

Ackeard
14.01.2018
14:08:06
периодические запросы это первое что приходит на ум

Evgeny
14.01.2018
14:08:38
когда не было вебсокетов, это был единственный вариант. сейчас они поддерживаются всеми

Ievgenii
14.01.2018
20:08:48
1. У клиента может не быть public IP

И ты просто к нему не сможешь достучаться

2. У клиента нет запущенного веб сервера, чтобы к нему обращаться

3. У клиента нет сессии (даже если у него будет веб сервер и публичный IP) которая будет связанна с серверной сессией

Evgeny
14.01.2018
20:12:59
:)))) мне-то зачем это объяснять?

Google
Evgeny
14.01.2018
20:14:14
пост запросы клиенту - это вообще абсурд.

Ievgenii
14.01.2018
20:14:37
пост запросы клиенту - это вообще абсурд.
Если клиентом не является какой-то другой сервер

Evgeny
14.01.2018
20:16:24
ну полюбас это будет запрос к HTTP-серверу, а не HTTP-клиенту. по определению.

?
15.01.2018
09:41:30
Ребят продублирую не могу найти свое сообщение

Насколько актуальна книга александреску

Или совсем протухла?

Alexander
15.01.2018
09:44:08
В целом, для изучения основ сойдет. Но так как язык периодически изменяется, то 100% гарантий истинности нет.

Stepanos
15.01.2018
09:45:09
там базовьіе моментьі изложеньі, а они по сути те же остались

?
15.01.2018
09:45:18
Но для ru альтернатив нет?

Stepanos
15.01.2018
09:45:52
http://dlang.ru/book

?
15.01.2018
09:47:00
Надо полистать

Введение в D перевод которой на гитхабе я прочитал

http://dlang.ru/book
О все там хорошо кроме faq)

Stepanos
15.01.2018
09:51:02
https://tour.dlang.org/tour/ru/welcome/welcome-to-d

?
15.01.2018
10:09:58
Ооо спасибо

Dmitry
15.01.2018
13:44:46
Насколько актуальна книга александреску
Даже если не на 100% актуальна, почитать ее все равно очень полезно, она мотивацию хорошо передает, заразительно. Правда, русский перевод тут ругали, я читал оригинал и могу лишь о нем говорить.

Oleg
15.01.2018
13:50:02
Но для ru альтернатив нет?
https://github.com/deviator/duseful/blob/master/README.md#%D0%BD%D0%B0-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%BC-1

?
15.01.2018
14:14:55
https://github.com/deviator/duseful/blob/master/README.md#%D0%BD%D0%B0-%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%BC-1
Я уже нашёл, там опять же одна книга которую я прочитал и про шаблоны

Но она для меня пока сложновата

Буду читать что накидали, а потом александреску

Dmitry
15.01.2018
17:15:06
Чем дело с переводом книги Али кончилось?

Страница 381 из 719