@dlangru

Страница 103 из 719
Oleg
12.11.2016
17:31:44
В итоге это не пиарят и народ думает что в D нихрена нет

На этой неделе уже начну плотненько кодить, нашел и вроде как фикс сегфолтов при экспорте DLL: нужно помечать функции как nothrow и лучше в них ничего не делать, а просто вызывать внутри уже "обычные" Dшные функции. Вдруг кому инфа пригодится. Надеюсь это мне поможет :)

0x9d8e
14.11.2016
15:29:50
Впечатляет. Т.е. проблема со сбежавшими указателями решилась путем оборачивания значений в классы (вместо использования указателей)?
Проблемы со сбежавшими указателями небыло. Просто такая больная логика, что выглядит как полный треш. Когда она была реализована в виде кучи костылей это было не так заметно, чем когда всё стало прозрачно.

Dmitry
14.11.2016
16:41:16
Так, а где лучше обхявить? auto fLogger = new FileLogger("error.log"); Может его вообще в static this() { } ?

Google
Pavel
14.11.2016
16:41:56
можно впринципе

Dmitry
14.11.2016
16:45:49
Я немного про sharedLog тут не понял https://dlang.org/phobos/std_experimental_logger.html

почему оно в примере создается без указания типа?

Pavel
14.11.2016
16:49:50
auto fLogger = new FileLogger("NameOfTheLogFile");

Почему ж без указания

Dmitry
14.11.2016
16:55:08
sharedLog = new FileLogger("New_Default_Log_File.log");

Кстати, а по логике, если мне нужно экспшены ловить я так и должен писать: fLogger.log(e.msg); ?

Так. Если я логгер объявлю в app.d и мне потребуется залоггировать что-то в db.d то мне получается чnобы увидеть из DB.d FileLogger fLogger; нужно будет import app.d делать, что как-то не очень красиво. Есть варианты лучше? Просто создавать в каждом классе свой объект логгера как-то странно

0x9d8e
14.11.2016
17:28:01
Синглтон?

Dmitry
14.11.2016
17:28:36
да мы как-то это обсуждали уже, но кажется никакого красивого варианта так и не придумали.

Вообще на сколько упоротый вариант делать globals.d куда класть объявление всех вещей которые нужны глобально, и ту часть из них которую нужно инициировать при запуске инициировать в shared static this() ?

Oleg
14.11.2016
17:31:13
Можно же из модуля экспортировать импорты других модулей. А в чем совбсвтенно проблема то?

import logger почему не вариант?

Google
Dmitry
14.11.2016
17:33:30
так, погоди, ты имеешь ввиду импорт самого определения логгера? Просто речь про реализацию. Т.е. если я его внутри app.d объявлю, то внутри db.d нужно же будет делать imporе app.d чnобы увидеть его объявление

Oleg
14.11.2016
17:35:33
Ну сделай logger.d, module logger; public import app : logger;

Вродь долно заработать

При импорте logger.d будет доступ к app.d : logger

Потом при реакторинге вынесешь логер из app в другой файл (че он в апп делает то?), и придется только logger.d исправлять, а не все импорты во всех файлах

Но всеравно не пойму, к чему эта балалайка, если можно import app : logger

Я немного про sharedLog тут не понял https://dlang.org/phobos/std_experimental_logger.html
Он тут глобальная переменная стандартной либы

Dmitry
14.11.2016
18:15:15
А это глобальная переменная стандартной либы она в какой момент создается и инициализируется? Как ей допустим имя другое подсунуть?

Oleg
14.11.2016
18:21:20
import ololo = std.logger : Logger; ?

Да гдетож создается)

Походу static this

Dmitry
14.11.2016
18:22:35
Так ну понял, мне по большей части бест-практис интересовал. А дальше в блоке catch лог записывать?

Oleg
14.11.2016
18:23:24
Для бест праткис это к https://p0nce.github.io/d-idioms/

Может там написано

Dmitry
14.11.2016
18:23:58
это видел и даже сам туда коммит один сделал на базе чужого исходника правда)

Oleg
14.11.2016
18:25:53
Ну тогда фиг знает. Какие-то слишком странные проблемы для меня)

В джаве же в catch ошибку логируют обычно

Dmitry
14.11.2016
18:27:19
у меня просто опыта не так уж много...

Oleg
14.11.2016
18:31:33
Когда у тебя прога будет рушиться, а логов нет, тебе будет всеравно красиво оно там или нет)

Dmitry
14.11.2016
18:35:01
ну хоть место найти где падает....

Google
Dmitry
14.11.2016
18:37:41
так, а как сделать чтобы в файл писать: http://vibed.org/api/vibe.core.log/ fLogger = new FileLogger("error.log"); log же просто тут юзать нельзя — он на экран пишет, а как в файл писать?

Dmitry
14.11.2016
18:42:54
Я просто не догоняю, есть отдельный функции логирования Functions а есть которые в меодах?

Oleg
14.11.2016
18:44:03
Похоже на то

Dmitry
14.11.2016
18:44:21
fLogger = new FileLogger("error.log"); это разве не то?

или сюда будут все логи дублироваться которые я буду выводить?

Oleg
14.11.2016
18:57:18
У вайбеда свой

Dmitry
14.11.2016
18:57:26
нет вайбовский

http://vibed.org/api/vibe.core.log/FileLogger

Oleg
14.11.2016
18:58:05
Ты бы быстрее юнит тест написал уже и проверил

Dmitry
14.11.2016
18:58:50
Мне их в начале писать научиться надо)

Oleg
14.11.2016
18:59:20
Да просто программу напиши которая в лог выводит разными способами

Dmitry
14.11.2016
19:00:18
Хорошо, попробую. Но доки без примеров конечено очень тяжело в голову ложатся

Oleg
14.11.2016
19:01:40
Заходишь на гихаб, там вверху поиск, вводишь название функции из жокументации, жмешь энтер, слева потом выбери язык Д

Примеров будет завались

Dmitry
14.11.2016
19:01:55
во точно) так и сделаю

Oleg
14.11.2016
19:03:09
http://vibed.org/api/vibe.core.log/registerLogger

Google
Oleg
14.11.2016
19:03:21
И кстати примеры есть, правда мелкие

Сам не люблю фиговые примеры

Dmitry
14.11.2016
19:04:00
а чем отличается регистрация логера в отдельной функции от создания экземпляра класса логера?

registerLogger Registers a new logger instance. и FileLogger Plain-text based logger for logging to regular files or stdout/stderr

Dmitry
14.11.2016
19:06:09
ну я же могу создать экземпляр класса и тоже его заюзать, разве нет?

там же тоже будет путь указываться

Oleg
14.11.2016
19:07:27
Возможно регистрация нужна чтобы сам вайбед свои внутренние причуды логировал

Dmitry
14.11.2016
19:07:50
Олег, тебе тоже кажется это все запутанным и похожим на тыкание вслепую?

Oleg
14.11.2016
19:08:07
Это же системное программирование

Admin
ERROR: S client not available

Oleg
14.11.2016
19:08:10
Ты должен страдать

Dmitry
14.11.2016
19:08:14
Просто меня не покидает чувство, что я или что-то дико не понимаю или оно реально мутное и неоднозначное

господи, а прикладное то когда же начинается?

Oleg
14.11.2016
19:08:42
На Го небось пишется в четыре строки, а в ноде в три

Dmitry
14.11.2016
19:09:40
Го реально в этом отношении проще получается??

Oleg
14.11.2016
19:10:37
Я более чем уверен

Сам я кодил ноду

Вобще без вопросов

Pavel
14.11.2016
19:10:57
Проще да)

Google
Dmitry
14.11.2016
19:10:59
а почему в ди то все так сложно?

Pavel
14.11.2016
19:11:01
Ди для гурманов

Oleg
14.11.2016
19:11:07
Чаще ты просто в npm пакеты ставишь чем думаешь)

Pavel
14.11.2016
19:11:46
а почему в ди то все так сложно?
Чтобы сложные и противоречивые разработчики могли выразить свой неоднозначный внутренний мир через ди

Oleg
14.11.2016
19:12:50
За что им пламенный привет

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

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

Почитывать книжечки Александреску и строить милые сердцу абстракции и метакод

В ноде у меня код работал даже если я лицом бился о клавиатуру. К такому быстро привыкаешь.

О, а в РНР...

0x9d8e
14.11.2016
19:29:48
... а в PHP порой годами остаётся незамеченным код, который вообще работать не должен бы.

Со всеми вытекающими

Oleg
14.11.2016
19:30:38
Зачем писать сервер на D если ты не фанат бекенда?

Или там ниже итоговая стоимость сопровождения?

При более дорогой разработке

И спецы ж небось дороже чем гошники стоят

Боттлнек всеравно в БД

Dmitry
14.11.2016
19:34:32
Да блин... фронтенд у меня еще хуже идет)

Задача в идеале и в том и в том разбираться хоть как-то, чтобы можно было решения делать более или менее рабочие

Pavel
14.11.2016
19:35:14
Боттлнек всеравно в БД
Зависит от приложения, если в бизнес логике выполняется дофига вычислений то может и бэкенд залагать сперва

Но в 90% случаев ты впринципе прав.

Oleg
14.11.2016
19:36:33
Задача в идеале и в том и в том разбираться хоть как-то, чтобы можно было решения делать более или менее рабочие
Для рабочести есть го или нода. Ты из какой области что на Д накинулся? Плюсовик?

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