
Denis
23.04.2018
09:51:06
т.е. ничего не теряем

Pavel
23.04.2018
09:54:19

Denis
23.04.2018
09:54:56
ну потому что он не конструктор таких объектов :)

Google

Denis
23.04.2018
09:55:38
сериализация != конструирование сообщения

Pavel
23.04.2018
09:56:28
ну поле в сериализованном json либо есть либо нет. Какой тут еще формат.

Dark
23.04.2018
09:57:09

Denis
23.04.2018
09:57:28

Pavel
23.04.2018
09:59:04
Если ты в структуру записал сертификат - значит он есть и поле надо сериализовать. А если ты поле не трогал значит оно пустое и его сериализовать не надо.

Denis
23.04.2018
09:59:08
сериализации дишных структур такая функциональность не нужна

Pavel
23.04.2018
09:59:52
Не, это все одна структура обслуживает + либо nullable либо @optional

Denis
23.04.2018
10:00:40
стикеры забанены)

Pavel
23.04.2018
10:00:44
Короче все optional поля из спецификации API не должны сериализоваться если к ним не было обращения либо там лежит default значение

Denis
23.04.2018
10:01:05

Google

Denis
23.04.2018
10:01:48
щитаю что Asdf не предназначен для конструирования JSON, а значит надо будет его выпилить со временем

Stanislav
23.04.2018
10:03:23

Pavel
23.04.2018
10:03:33
Думаю что надо просто null поля не сериализовать вот и все. В апи вроде нет таких случаев когда явно null посылается

Stanislav
23.04.2018
10:03:43
я когда свою либу для бота телеги писал все опциональные поля делал nullable
в обе стороны нормально работает

Pavel
23.04.2018
10:05:03
Такая вот инкапсуляция

Denis
23.04.2018
10:05:30
короч, многообразие документов JSON и D не пересекаются полностью

Pavel
23.04.2018
10:06:11

Denis
23.04.2018
10:06:32
поэтому всегда есть шанс что что-то будет реализовано костылём

Pavel
23.04.2018
10:07:05
а если появятся?
Надо просто изучить какие возможности предлагают библиотеки, если не будет вариантов ну тогда выкидывать наверно.

Stanislav
23.04.2018
10:07:10

Pavel
23.04.2018
10:08:20
Людвиг мог бы добавить атрибутов для конфигурации и тогда каждое поле можно было бы настроить под себя идеально

Denis
23.04.2018
10:09:43
есть ещё одна засада. т.к. нам нужна не сериализация а конструирование то мы привязываемся к не всегда оптимальной структуре сериализируемого запроса.
в телеге могут быть даже устаревшие поля и нам придётся с ними жить, если Update например будет по проекту таскаться
или даже не Update а структура запроса, там вероятнее появление таких полей

Stanislav
23.04.2018
10:10:55
было бы неплохо если бы телега как-нить версию api вела или по урлу можно было бы на разные стучаться типа /api/v1, /api/v200
и фиксировала бы изменения

Google

Stanislav
23.04.2018
10:12:32
где-то вроде так сделано было, но чет уже не припомню где )
а потом старые апи просто со временем помечаются как устаревшие и закрываются

Denis
23.04.2018
10:13:16

Pavel
23.04.2018
10:13:48

Denis
23.04.2018
10:14:19
начать с того что вообще использован текстовый протокол

Stanislav
23.04.2018
10:15:49
ну http это в принципе текстовый протокол, даже если bson передавать по нему )

Denis
23.04.2018
10:17:23
нет, там же тело можно бинарное слать

Oleg
23.04.2018
10:18:07

Denis
23.04.2018
10:18:19
даже в первой версии можно
файлы аплоадятся бинарно

Stanislav
23.04.2018
10:19:26
хедеры все равно текстовые )

Denis
23.04.2018
10:23:19

Pavel
23.04.2018
10:38:32
Посмотри вот эту ветку https://github.com/nexor/telega/pull/2/files#diff-e40a697166c006a3b50996397422bf86R1050
Я думал что уже смержил замену asdf на vibe json а оказывается нет. В этой ветке я переделал сериализацию в методе callMethod. Как раз из-за тех проблем что ты описываешь.
Из-за того что asdf мне не позволял нормально алгебраики сериализовать

Denis
23.04.2018
10:46:50
мляя а я уже тоже переделал
кек
@chebotarevp мёрджи тогда это

Google

Denis
23.04.2018
10:47:47
@chebotarevp ты asdf не убрал. почему?

Pavel
23.04.2018
10:53:53
Да не убрал, потому что десериализовывает то он лучше

Denis
23.04.2018
10:54:01
аа
я думаю добавить hooks и потом поверх этого навернуть асинхронный класс который можно было бы использовать с любым способом подключения
а ещё заметил что getUpdates при нулевом таймауте почему-то виснет
вроде должен происходить shortpool

Pavel
23.04.2018
10:59:24
Каким образом виснет? Вешает тред? А то с нулевым таймаутом он и должен виснуть бесконечно пока не придет апдейт.
Я с 26го ухожу в отпуск, подмержу все ветки, методов закомичу, исправлю баги и сделаю рефакторинг с учетом пожеланий :)

Admin
ERROR: S client not available

Denis
23.04.2018
11:00:48

Pavel
23.04.2018
11:00:57
Что это такое?

Denis
23.04.2018
11:01:13
а хз, они не поясняют. как я понял простая проверка "нету ли там чего"?
и сразу выход
не рекомендуют юзать это сами авторы АПИ

Pavel
23.04.2018
11:01:55
Timeout in seconds for long polling. Defaults to 0, i.e. usual short polling. Should be positive, short polling should be used for testing purposes only.
Хм надо проверить, но я до этого момента был уверен что он бесконечно висит и ждет апдейта, такое поведение и есть.

Denis
23.04.2018
11:02:47
и нигде не поясняется что такое short pooling
@chebotarevp https://gist.github.com/denizzzka/b02b5c0650980fbfe9ebb819c3094cdf
может это будет полезно) правильный способ конвертации json vibe и asdf

Eto
23.04.2018
11:05:56

Denis
23.04.2018
11:06:21
да, видимо какой-то оборот речи

Google

Pavel
23.04.2018
11:07:19
Вообще это слово гуглится, вроде означает что мы ждем пару секунд и отключаем соединение

Denis
23.04.2018
11:16:21
значит ни сколько не ждём имеется ввиду
короч, работает оно сейчас явно не так

Pavel
23.04.2018
11:17:45

Dark
23.04.2018
11:23:43
Простите, что не в тему, но насколько глубоко обрабатываются рекурсивные шаблоны?

Denis
23.04.2018
11:23:50
чтобы без кастов странных
хотя хз, касты там встроены
автор asdf неправильно суть кастов понимает, кмк

Pavel
23.04.2018
13:59:32
Нашел сильный аргумент за то чтобы распилить один файл на несколько маленьких - если какие-то функции из модуля не используются и этот модуль не импортируется то он и не будет вкомпилирован, таким образом размер бинарника уменьшится

Oleg
23.04.2018
14:01:26
чёт это вообще не аргумент
аргумент — читаемость кода

Pavel
23.04.2018
14:02:47
Ну так код как по мне тоже будет более читаемый
Конечно весь бинарник весит 9мб так что может разница и не так заметна, но полмегабайта мусора это жесть
Причем ldc2 намного эффективнее все это анализирует, там разница реально получилась в 15 байт )

Oleg
23.04.2018
14:06:15
ну так зачем эти псевдомикрооптимизации?
или debug сборка?

Pavel
23.04.2018
14:07:49
dub -b release