
Denis
06.06.2017
15:57:41
без всего кода сказать нельзя
я подозреваю ты запилил DBExtractor именно так как я объясняю тебе.
Вопрос: в каких классах у тебя встречается SQL-код?
Нужно сделать так чтобы такой класс был один. (Один для каждого типа поддерживаемой БД.)

Dmitry
06.06.2017
15:58:49
DBExtractor
MyCalculator
и еще пара

Google

Denis
06.06.2017
15:59:14
http://vpaste.net/Dq2LK:
import ddb.postgres;
import mysql;
OMG)
DBExtractor
MyCalculator
и еще пара
Надо сделать чтобы был один класс для каждой БД. Если ты сейчас только мускл поддерживаешь то делай для неё такой класс. Больше нигде не импортируй import mysql;
Скоро OSM станет законом, по данным которого будут карать за превышения скорости))
(Давно пора)
Можешь считать что программисты D SQL НЕ знают. А кодеры SQL не знают языка Ди. Так что такое смешение языков по всей программе приводит к нечитаемому коду.

Shorty(Ale Chapa) Manskiy
07.06.2017
08:47:46
@DmitryBubnenkov Там где ты работаешь, на D только ты пишешь, а остальные на других языках?

Dmitry
07.06.2017
08:48:31
я и еще один человек на Ди, еще 3 человека на C# и один на PHP

Denis
07.06.2017
08:48:53
Повезло, чо сказать

Shorty(Ale Chapa) Manskiy
07.06.2017
08:49:10
Тимлид на D?

Dmitry
07.06.2017
08:49:13
да

Denis
07.06.2017
08:49:29
Наверняка он тут трётся)

Shorty(Ale Chapa) Manskiy
07.06.2017
09:03:20
Вот тебе еще книга - Эффективная работа с унаследованным кодом https://rutracker.net/forum/tracker.php?nm=Working%20effectively%20with%20legacy%20code
это как раз про тот код что ты пишешь.

Google

Dmitry
07.06.2017
13:15:02
Config config = new Config();
DataWriterFactory dataWriterFactory = new DataWriterFactory(database, config);
В фабрике полный конфиг не нужен т.е. мне туда только два параметра (логин, пароль) надо передать (наверно лучше) виде хэша string[string]
Я что-то не пойму как это можно сделать? В голову что-то типа new DataWriterFactory(database, config.login[config.pass]) лезет.

Denis
07.06.2017
15:37:09
ФАБРИКА АБСТРАКТНЫХ СИНГЛТОНОВ

Shorty(Ale Chapa) Manskiy
07.06.2017
15:37:21
+

Denis
07.06.2017
15:37:24
(шутка юмора)
ну так и передай string[string]

Ievgenii
07.06.2017
15:45:33

Denis
07.06.2017
15:46:08
Просто дрочево на паттерны уже утомило. Паттерны ради паттернов.

Pavel
07.06.2017
15:49:38
Да мы же только начали

Oleg
07.06.2017
16:35:54
ребят, как получить tuple параметров метода/функции?
именно значений, а не типов и не имён
внутри функции, естественно

qwerty
07.06.2017
16:36:46
эмм?
шаблон

Oleg
07.06.2017
16:36:57
кроме как пройтись миксином по именам не понял как сделать

qwerty
07.06.2017
16:36:59
внутри шаблона?

Oleg
07.06.2017
16:37:05
нет
просто метод

qwerty
07.06.2017
16:37:25
обычный метод, в котором надо пройтись по именам?
можно декларацию метода

Google

qwerty
07.06.2017
16:37:36
?

Oleg
07.06.2017
16:38:16
int foo(string, int)
{
// mega mixin
}
хочу отвязаться от имён параметров
а чёт как-то не выходит
вызываю например так foo("hello", 123)
внутри mixin'а хочу получить tuple("hello", 123)

qwerty
07.06.2017
16:46:25
А почему просто не ждать tuple?

Oleg
07.06.2017
16:46:51
потому)))

qwerty
07.06.2017
16:46:55
если честно, то я не знаю как собрать tuple из входящих аргументов

Oleg
07.06.2017
16:47:11
Remote Function Call пытаюсь красивый сделать
ну +/- красивый

Denis
07.06.2017
16:47:37

Oleg
07.06.2017
16:47:42
можно объявить интерфейс и автоматически собрать "отправителя" и "распаковщика"

Oleg
07.06.2017
16:48:11

Denis
07.06.2017
16:48:20

Oleg
07.06.2017
16:48:33
Remote Function Call пытаюсь красивый сделать
ну +/- красивый
можно объявить интерфейс и автоматически собрать "отправителя" и "распаковщика"
уже сделал, но требуется чтобы в интерфейсе были имена параметров
чтобы при сериализации можно было по ним пройтись
именно в сериализации дело, десериализация может проходить без имён

Google

Denis
07.06.2017
16:53:30
подсмотреть как в других сериализаторах сделано?
хотя, там структуры, не функции

Oleg
07.06.2017
16:56:05
в любом случае получается, что нужно как-то да называть параметры, чтобы получить к ним доступ

Denis
07.06.2017
16:56:45
Function traits? https://dlang.org/library/std/traits.html
https://dlang.org/library/std/traits/parameter_identifier_tuple.html
int foo(int num, string name, int);
static assert([ParameterIdentifierTuple!foo] == ["num", "name", ""]);

Oleg
07.06.2017
16:58:31
хочу отвязаться от имён параметров
а чёт как-то не выходит

Denis
07.06.2017
16:58:51
Непонимаю что значит "отвязаться"

Admin
ERROR: S client not available

Denis
07.06.2017
16:58:59
пронумеруй
храни массив названий и ходи в него по номеру элемента

Oleg
07.06.2017
16:59:39
вот только если так... уже почти написал такой вариант, но он меня чем-то смущает
хотя нет, теперь он меня ничего не смущает)

Denis
07.06.2017
17:02:57
тем что в рантайме имена будут резолвиться?

Oleg
07.06.2017
17:03:11
они резолвятся в ct
ну всмысле они не резолвятся вовсе
как раз ParameterIdentifierTuple возвращает тупль и по нему foreach'ем и mixin'ом заполняются поля json

Denis
07.06.2017
17:04:41
Ну и отлично)

Oleg
07.06.2017
17:04:44
а в обратном порядке можно получить просто Parameters!foo.init и просто пройтись по массиву из json

Google

Denis
07.06.2017
17:04:56
Json из vibe?

Oleg
07.06.2017
17:05:06
вот думаю как абстрагироваться
нужен тип-переносчик, чтобы можно было куда угодно (хоть файл) данные записать
это json (bson) и иже с ними
сейчас в любом случае будет vibe, но не хочется от него зависеть на 100%

Denis
07.06.2017
17:06:30
а мне его bson и json по нраву. ЛУчше чем из стд который

Oleg
07.06.2017
17:06:51
они хороши, только это vibe
хотя с другой стороны там вроде ничего особо то и нету (vibe-d:data)
и вроде не страшно должно быть
что тянутся какие-то горы странностей

Denis
07.06.2017
17:07:55
я в них заглядывал прост

Oleg
07.06.2017
17:08:52
Людвиг мог бы уже давно такой json с сериализаций и десериализацией протолкнуть в std, хз чё он тупит
ну или не он тупит, а кто-нибудь из команды разработчиков языка

Denis
07.06.2017
17:15:04
А зачем?
Нужен ли стандартный json? А если потом ещё один третий напишут?
(и ведь напишут - тренд идёт к отказу от gc)
http://code.dlang.org/ обзавёлся пагинацией

Oleg
07.06.2017
17:16:03
И страницы другие
Видно кол-во скачиваний

Denis
07.06.2017
17:16:26
подкрутил limit ручками в УРЛ)
а то маловато

Dmitry
07.06.2017
17:19:01
Кстати, а кто на Go писал, там есть все эти Синглтоны, фабрики методов и тп?