@dlangru

Страница 484 из 719
Stanislav
29.03.2018
13:26:23
Под tcp кстати я бы не стал

Лучше udp

Pavel
29.03.2018
13:26:48
А как же если пакеты потеряются :(

Stanislav
29.03.2018
13:27:52
Недавно только читал историю как упавший сислог уронил сетевую инфраструктуру из-за tcp как раз )

Google
Pavel
29.03.2018
13:36:42
Ну да но что делать с пропадающими пакетами то? Смысл в таком логировании как-то теряется.

Если нельзя доверять тому что видишь.

Логи это такая вещь которая не нужна когда все работает и очень сильно нужна когда что-то начинает работать неправильно

Stanislav
29.03.2018
13:40:17
дополнительно можно хранить локально

Pavel
29.03.2018
13:41:35
Ага. Но в общем управление логами это такая не очень простая задача.

Денис
29.03.2018
13:42:24
А вообще можно писать локально (быстро и надежно), но раз в какое-то время отсылать логи на удаленный сервер (чтобы место не жрали)

Или писать приложением в локальный файл - (дешево, сердито, ничего не ебанется), а другим каким-нибудь демонком - разгребать этот файл и высылать логи куда надо. Во-первых это МИКРОСЕРВИСНО...

Stanislav
29.03.2018
13:47:23
https://www.facebook.com/photo.php?fbid=10215636895216658

понятно, что редкий кейс, но все же. я бы сильно не переживал за потерю логов, если логи конеш не шлёшь поверх интернета (тут да, может быть все что угодно)

Pavel
29.03.2018
13:53:33
Это все палки о мультиконцах. Если писать в лог локально то при сгорании сервера важные логи теряются, если все передавать гарантированно по TCP то может полечь сеть, если писать через UDP и без очереди, то логи тоже будут теряться.

Тут видмо какая-то priority queue нужна с локальным кешированием. Чтобы по TCP гарантированно быстро доставлялись важные записи, а неважные по мере сил.

Ievgenii
29.03.2018
14:16:29
А чего не сделать драйвера под разные нужды и конфигурить по мере необходимости?

Dmitry
29.03.2018
14:42:55
Короче писать в сислог в формате json чтобы было как объект, а дальше уже уже какой-то разгребалкой разгребать это дальше, так?

Google
Denis
29.03.2018
17:55:03
прото народ все время лезет на протобуферы, хотя зачастую им нафиг не сдались всякие версии, хитрожопые опциональные поля и прочие фишки протобуферов
> хитрожопые опциональные поля и прочие фишки протобуферов Они теперь всегда опциональные, в некотором роде проще, но жкономить совсем на спичках не получится

https://www.facebook.com/photo.php?fbid=10215636895216658
кто пишет "сеточка" того никогда не надо слушать, потому что профессиональная терминоголигя очень важна и если он этого не понял то ну его нафиг. Статью не читал сразу скажу.)

@deviator не вижу писали или нет но есть ещё такое: https://capnproto.org/

Evgeny
29.03.2018
18:36:10
@deviator не вижу писали или нет но есть ещё такое: https://capnproto.org/
я читал раньше, лично мне не понравилась слишком крикливая самореклама.

Denis
29.03.2018
18:36:28
удваиваю

вообще не понятно протокол ли это

вопрос стоит типа как "вирус" это живое существо или нет?

Dmitry
30.03.2018
08:25:22
Как понять фразу "элементы зранятся сами, а не указателями". Я думал что в стеке при сохранении строки просто создается ссылка (указатель) на кучу.

Max
30.03.2018
08:55:33
Это в первую очередь значит что элементы лежат в одном куске памяти, называемом объектом

Стек тут вообще не при чём

Valeriy
30.03.2018
09:05:43
А почему alias this только один может быть? И как мне тогда определить автоматическое преобразование типов, когда типов более одного. Пример: struct A { int i = 5; float f = 3.14; alias i this; alias f this; } void main() { A a; int i = a; float f = a; } Получаю Error: there can be only one alias this Как быть?

В C++ я мог бы определить operator int () const; и operator float () const; и без проблем сделал бы что мне нужно

Maxim
30.03.2018
09:07:27
opCast?

Valeriy
30.03.2018
09:07:40
Он требует явного преобразования

Maxim
30.03.2018
09:07:53
а в D и нет неявного преобразования)

это фишка такая

Valeriy
30.03.2018
09:08:19
opCast?
вот так придётся писать: void main() { A a; int i = cast(int) a; float f = cast(float) a; }

Ну да: ./test.d(45): Error: cannot implicitly convert expression a of type A to int ./test.d(46): Error: cannot implicitly convert expression a of type A to float

Maxim
30.03.2018
09:10:22
ну да)

alias this, говорит компилятору, что структура или объект будет вести себя как то, что указано в alias, а нельзя себя вести одновременно как int, float и string

Google
Maxim
30.03.2018
09:12:09
можно вести себя как что-то одно из них, а для остального в D есть явные преобразования

как-то так

Valeriy
30.03.2018
09:16:38
Хорошо, а есть какой то способ перегрузить преобразование в разные типы без cast?

Maxim
30.03.2018
09:17:28
в D нет неявных преобразований типов

Maxim
30.03.2018
09:30:24
наоборот же)

Valeriy
30.03.2018
09:30:33
наоборот же)
меньше гибкости

Maxim
30.03.2018
09:30:41
почему?

хочешь что-то во что-то преобразовать, убеди компилятор, что знаешь, что делаешь.

Valeriy
30.03.2018
09:31:10
уродливый cast писать, там где компилятор сам может понять к какому типу преобразовавать

Maxim
30.03.2018
09:32:28
int a = 480; byte b = a; Вот как компилятору понять, ты специально это делаешь, или просто не понимаешь, что происходит?)

Valeriy
30.03.2018
09:35:53
Maxim
30.03.2018
09:36:22
опыт таких языков как C и C++ говорит, что это слишком дорого обходится)

Valeriy
30.03.2018
09:36:47
опыт таких языков как C и C++ говорит, что это слишком дорого обходится)
Очень удобно это в C++. Позволяет делать гибкие интерфейсы

Maxim
30.03.2018
09:37:10
и в день по пальцу на ноге отстреливать)

в D в плане гибкости нет проблем относительно C++, просто тебе нужно дополнительно cast(ololo) писать

Valeriy
30.03.2018
09:38:22
Те кто стреляет по пальцам на C++ долго не пишут :) Зато он доверяет пргограммисту и просто предоставляет срадства, ничего не навязывая :)

Maxim
30.03.2018
09:38:56
ну, наверное, просто так во всяких шарпах и ди появились явные преобразования типов)

Valeriy
30.03.2018
09:39:17
D в некоторых вопросах гибче С++ Поэтому вызывает недоумение, когда натываешься на такие места, когда компилятор думает, что я стреляю по ногам

Google
Dark
30.03.2018
09:39:36
Valeriy
30.03.2018
09:39:44
это в каких?
В шаблонах

Maxim
30.03.2018
09:39:55
orly?

Valeriy
30.03.2018
09:40:22
А ещё в D миксины без костылей с CRTP есть

Maxim
30.03.2018
09:40:46
В шаблонах
а, блин, не так прочитал)

Admin
ERROR: S client not available

Valeriy
30.03.2018
09:41:09
На JS много кто пишет, с неявными преобразованиями и прочим. Результаты мы видим
у js типобезопасности нет. И вообще язык из другой категории совсем. и для других задач

Maxim
30.03.2018
09:41:10
так и не могу понять в чем негибкость явных преобразований

Valeriy
30.03.2018
09:41:36
Maxim
30.03.2018
09:41:58
каким боком это к гибкости относится?

Dark
30.03.2018
09:41:59
в том что уродливый cast писать надо
Зато все просто, понятно и очевидно

Valeriy
30.03.2018
09:42:17
Зато все гибко)
Да ладно. Хорош тосто тролить. У js много плюсов. Отличный язык. Но гибкость не его конёк

Dark
30.03.2018
09:42:43
Что значит гибкость в твоем понимании?

Valeriy
30.03.2018
09:43:30
каким боком это к гибкости относится?
Вот хочу я определить неявное преобразование, а язык не позволяет. Причём для одного типа позволяет, а для двух нет.

Maxim
30.03.2018
09:43:52
нет в D неявных преобразований

alias this — это эмуляция объектом поведения конкретного поведения

Google
Valeriy
30.03.2018
09:44:35
Что значит гибкость в твоем понимании?
В js нет интерфейсов и перегрузки. Для меня этого достаточно. И вообще тяжело поддерживать код без типов. Я на js писал довольно много

Maxim
30.03.2018
09:44:48
т.е. компилятор будет считать объект эквивалентом конкретного типа с дополнительным поведением

Valeriy
30.03.2018
09:44:49
Dark
30.03.2018
09:45:28
Я не понимаю, как гибкость коррелирует с количеством символов

Valeriy
30.03.2018
09:46:14
Что значит гибкость в твоем понимании?
В ES6 деструктуризация красиво сделана. А ещё он legacy не ломает. Эт его сильные стороны

Maxim
30.03.2018
09:46:23
а то, о чем ты говоришь — это не гибкость, а свобода, и опыт программистов говорит, что неявные преобразования — так себе свобода, от нее больше проблем, чем пользы)

Dark
30.03.2018
09:46:32
Блин

Дайте мне уже определение гибкости

Maxim
30.03.2018
09:47:15
спорный вопрос — это какой?)

Dark
30.03.2018
09:47:53
Оно субъективно
Я прошу лично твое определение гибкости, а не описания фишек JS

Maxim
30.03.2018
09:48:24
ну там два утверждения, первое: ты гибкостью называешь свободу, второе: неявное преобразование — сомнительное удовольствие.

Valeriy
30.03.2018
09:48:28
Щас опять флуд будет на 5 экранов

Всё. Спасибо за ответ. Уважаю ваше мнение. Не хочу спорить

Maxim
30.03.2018
09:49:32
ну, в общем, нету в D неявных преобразований, и с этим придется жить)

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