
Pavel
07.08.2017
21:56:49
Как хочешь. Без гц ще надо будет решать кучу проблем с работой с памятью, ловить утечки и т.д.
Так что если производительность позволяет, лучше конечно с гц

Stepanos
07.08.2017
21:58:23
https://www.wordsapi.com/
как думаете долго напилить на D такой бекенд? типа такого сервиса...

Dmitry
07.08.2017
22:06:54
Так что если производительность позволяет, лучше конечно с гц
Я с гц пробовал писать модуль для Emacs, на С всё было ок, а на D сразу всё падало. Может быть дело не в гц, а в том, что заголовочный файл неправильно перевёл. На Racket тем временем вполне получается писать биндинги с сишным либам. На D, по идее, должно быть значительно проще.

Google

Pavel
07.08.2017
22:07:33
racket это что?

Dmitry
07.08.2017
22:12:03
racket это что?
Один из вариантов Scheme, в итоге выросший в отдельный язык. Говоря совсем уж грубо — один из лиспов.
Мне он приглянулся тем, что на нём легко ваять кроссплатформенный гуй.

Pavel
07.08.2017
22:12:41
Даже не слышал о таком. А что там на D падало? Ошибка какая-то?

Dmitry
07.08.2017
22:13:45

Dmitry
08.08.2017
03:26:06
Как я понимаю, если делаешь библиотеку, то надо явным образом позаботиться о том чтобы рантайм проинициализировался до того, как основной код на Ди начнет вызываться. В винде это в DllMain, на других платформах еще как-то. См. статьи об этом на dlang.org. (сам я такие библиотеки не делал, только теорию читал)

Dmitry
08.08.2017
08:26:46
А кто тут в вебе хорошо шарит? Если JS фреймворк генерит URL'ы на лету т.е. их физически нет на сервере, то при обращении к ним снаружи напрямую они возвращают 404 ошибку.
Можно ли как-то заставить эти урлы работать как реально существующие? пример: dlang.ru/book не существует и выдаст 404 ошибку, но если зайти в корень и дальше перейти, то все заработает

Ievgenii
08.08.2017
09:04:19
Не понятно

Dmitry
08.08.2017
09:11:05
в плане? Я тут погуглил. Походу только страницу на сервере генерить иначе нужно с NodeJS возиться и кучей серверных фрймворков
для Vue интересное решение есть, но я реально не хочу с NodeJS связываться https://ru.nuxtjs.org/guide
Про типизирование интересная инфа: "Dart 1.x is an optionally typed language, but types aren’t optional in Dart 2.0. With both static and runtime type checks, Dart 2.0 has a sound type system."
Все же все современные языки должны быть типизируемыми.

Ievgenii
08.08.2017
09:24:14
Или нет)

Dmitry
08.08.2017
11:01:19

Google

Dmitry
08.08.2017
11:02:16
но урла такого же не существует физически т.е. надо переадресовать на корень и дальше переадресовать на сам урл? Так?
я просто пытаюсь vibed еще вкорячить в это все

Dmitry
08.08.2017
11:03:18
если его можно регекспом распознать (или набором оных) - то это можно в конфиге вебсервера указать и перенаправить куда надо
в vibe.d просто route'ов добавить

Dmitry
08.08.2017
11:04:14
ну вот добвялю я их, но он то будет пытаться реальные страницы найти, а их не будет

Dmitry
08.08.2017
11:04:42
кто он? в обработчике раута ставишь свой ответ, никто никакие страницы не ищет

Dmitry
08.08.2017
11:04:43
А вот еще вариант предложили https://stackoverflow.com/questions/45562442/how-to-make-vue-router-from-outside

Pavel
08.08.2017
11:06:42
Vibed на вход принимает урл желаемый, а что отдать в ответ решает сам. Согласно правилам роутинга и любой другой своей логике.

Dmitry
08.08.2017
11:09:29
Другими словами, всегда можно поставить один route "*", где твоя функция будет получать запрашиваемый URL в виде строки, и если он похож на любой из тех "виртуальных" адресов, отвечать что пожелаешь.

Dmitry
08.08.2017
11:15:48
Понятно что vibed может отвечать что пожелает, но тут то перещелкивание страницы происходит в самом JS

Dmitry
08.08.2017
11:16:45
Это "визуальные эффекты" на клиенте, серверу пофиг, что там происходит

Dmitry
08.08.2017
11:17:19
просто как я понимаю в начале движок запускается, отрисовывает все, а потом так же подгружает часть другой страницы (опять см пример на SO)

Pavel
08.08.2017
11:17:27
А ты вероятно про html history api

Dmitry
08.08.2017
11:18:34
ну и про него тоже
просто урл который я вижу в адресной строке он получается через html history api создан

Pavel
08.08.2017
11:20:43
Да. Если при этом запроса на сервер не было, то сервер никак не поможет

Dmitry
08.08.2017
11:23:30
так в итоге воркэраунда никакого нет?

Dmitry
08.08.2017
11:25:50
для какой проблемы? мы ее не видим
если клиент не обращается на сервер, то и проблемы нет

Google

Dmitry
08.08.2017
11:26:12
если обращается - отвечай
как бы адрес не выглядел, на него можно ответить

Dmitry
08.08.2017
11:29:28
так ответить то можно, но данная страница не самостоятельная, а лишь перещелкнутая вьюшка внутри базовой index.html

Dmitry
08.08.2017
11:29:59
и что с того?
и главное - что хочется увидеть?

Dmitry
08.08.2017
11:37:43
я хочу увидеть как если бы урл /book существовал, хотя его нет т.е. внутри index.html просто maincontent перещелкивается на bookcontent.
Просто что я пытаюсь избежать. Я хочу чтобы к примеру если я меняю шапку она менялась в одном месте т.е. не было бы такого, что на каждой страинце нужно ее переверстывать.
Отсюда весь изврат

Dmitry
08.08.2017
11:40:34
отдавать все тот же index.html с твоим JS-аппом, и он по урлу (например) увидит, что в адресе /book и сразу "перещелкнет"

Pavel
08.08.2017
11:41:07
У тебя получается spa, в нем вообще не надо ничего переверстывать. Изменяемая часть страницы меняется только внутри div

Dmitry
08.08.2017
11:41:10
да вот только не перещелкивает нихрена http://dlang.ru/book

Dmitry
08.08.2017
11:41:24
надо научить
JS код на странице должен понимать, что за урл сейчас показывается

Dmitry
08.08.2017
11:43:08
Просто может лучше Pug как-то научить страницы склеивать? Типа чтобы я шапку мог определить отдельно от всего и она была бы на всех страницах

qwerty
08.08.2017
11:43:31
@DmitryBubnenkov используете vue router?
https://github.com/vuejs/vue-router/

Dmitry
08.08.2017
11:43:52
угу именно его

qwerty
08.08.2017
11:44:44
вы настроили роуты и они не работают?
а хотя сам сейчас посмотрю, что Вы там сделали

Dmitry
08.08.2017
11:45:06
@antlord можно на ты) они работают и перещелкиваются, только внутри SPA
https://github.com/bubnenkoff/dlang.ru вот исходники

qwerty
08.08.2017
11:46:20
new Vue({
el: '#app',
router,
data: {
},
})
вот это вообще легально?

Google

Dmitry
08.08.2017
11:46:40
ну собственно да, а что смущает?

qwerty
08.08.2017
11:47:07
у router нет ключа

Dmitry
08.08.2017
11:47:23
такая форма записи вроде бы в ES6 разрешена

qwerty
08.08.2017
11:47:58
ECMAScript)
вы уверены?

Dmitry
08.08.2017
11:48:54
на 80%

qwerty
08.08.2017
11:49:04
О_о
можно ссылку, где Вы такое видели?

Dmitry
08.08.2017
11:49:22
щас поищу

qwerty
08.08.2017
11:49:36
так стоп

Admin
ERROR: S client not available

qwerty
08.08.2017
11:49:42
я ecmascript не могу видеть
я могу видеть только js
ecmascript браузером не интерпретируется

Dmitry
08.08.2017
11:51:45
блин, найти не могу, но было такое, я точно помню, что изменил запись именно на такую т.к. автор урока про это отдельно подчеркнул

qwerty
08.08.2017
11:52:13
это не ecmascript, я не могу его видеть
вы его собираете в js и уже js выдаете

Dmitry
08.08.2017
11:56:10
т.е. есть подозрения что без компоновщика брауер это не так будет понимать?

qwerty
08.08.2017
11:59:09
да это js
я дал кусок js кода

Google

qwerty
08.08.2017
11:59:24
не ecmascript

Dmitry
08.08.2017
12:01:39
кстати, pug подерживает импорт
http://turnoff.us/image/en/functional-world.png

Maxim
08.08.2017
15:13:58
такой вопрос, а что будет, если человек с отключенным js зайдет на этот dlang.ru/book?

Dmitry
08.08.2017
18:10:22
он просто ничего не увидит, там все на js завязано
Я очень долго голову ломал как скрестить ужа с ежом, но все варианты костыльные
Я не хочу ради сайта на 3 страницы NodeJS тащить с пакетами на пол гига

Maxim
08.08.2017
18:17:03
а зачем это делать?)
почему бы просто вайбом не отдавать страницу в fallback режиме?)

Dmitry
08.08.2017
18:18:41
fallback это как? как dt?
Я хотел избавиться от перезагрузки при переключении страниц

Maxim
08.08.2017
18:20:16
не думаю, что это хороший подход)

Dmitry
08.08.2017
18:21:26
мне хочется придумать механизм подгрузки фрагментов страниц в фоне

Maxim
08.08.2017
18:21:28
если это SPA, то подход хороший, но на сайтах с традиционной навигацией, вряд ли это будет приемлемым решением)

Dmitry
08.08.2017
18:22:41
да это понятно, только надо чтобы он еще урлы правильно обрабатывал разные

Maxim
08.08.2017
18:31:14
он это кто?
любой урл — это запрос к серверу, тут два выхода, либо все редиректить на SPA, а уже SPA по URL будет определять, в каком он состоянии; либо по URL отдавать полностью сформированный html
для обычных сайтов с обычной навигацией второй вариант подходит больше, ибо тогда и вся архитектура фронтэнда упрощается, и проблем с поисковиками не будет

Dmitry
08.08.2017
18:36:13
но по идее я же смогу подгружать просто только нужные страницы и все? Т.е. не загуражать весь SPA разом

Maxim
08.08.2017
18:37:54
если реализуешь что-то типа API на сервере, который будет принимать какой-то идентификатор на вход (например, URL) и по нему отдавать нужный кусок, то сможешь

Dmitry
08.08.2017
18:38:32
будет время займусь этим
@maxfreck о чем мне он тут говорит не понимаю http://forum.dlang.org/post/omcmrl$318p$1@digitalmars.com