Evgeny
Добрый день. Подскажите пожалуйста, я не замечаю какое-то очевидное апи, или dynamock правда не умеет мокать скан с фильтром? Заранее спасибо.
Evgeny
ничем не могу помочь, но очень любопытно, какой юзкейс такого потребовал
Alexey
ну их же туда поставили зачем-то, а они как раз и нужны для сохранения целостности таблиц. снять их только table owner и выше может. Или просто так кто-то их туда добавил?)
whois
Друзья, подскажите как слайс структур превратить в json подобно мапе?
Вот так выглядит мапа замаршаленная в json: {"key4":"val4", "key2":"val2", "key7":"val7"}. Обратите внимание, порядок отсутствует!!! Это же мапа.
А мне нужен json подобный этому, но с условием порядка: {"key1":"val1", "key2":"val2", "key3":"val3"}
Andrey
whois
Благодарю, я что-то подобное хотел сделать
whois
Andrey
Если ты маршалеш структуру, то поля в json летят так же, как у тебя описана структура. А вот если ты маршалеш мапу, то ключи ставятся автоматически в лексеграфическом порядке
John
John
если тебе нужен порядок/очередность, то указывай его в явном виде, а не это вот всё
John
ибо спустя полгода твоя магия выстрелит тебе в ногу веревкой достаточной длинны
Alexander
Crud это понятно, join ты прав, это про объединения
Herman
нет
Herman
не понял
Herman
thread это поток
Herman
поток != горутина
Herman
они не обязательно распределятся на все возможные потоки
Evgeny
а расскажите плз про то как вообще моки в го делаются для тестов
Evgeny
только кодогенерацией?
Evgeny
мне просто неуютно от этого, я явер
Herman
это в документации
Tikhon
Ребят, вопрос возможно глупый, но я новичок. Возможно ли в go как-то организовать запуск БД ? В общем сделать так, чтобы она запускалась из go, а не работала где-то отдельно
ARTEM
><
Alexander
Alexander
Или ты хочешь какую-то БД, для работы которой не требуется СУБД?
Tikhon
Или ты хочешь какую-то БД, для работы которой не требуется СУБД?
Скорее всего, не знаю. Ситуация такая - у меня работает apache, на нём mysql. С этим всем взаимодействует сервер. Проблема появилась тогда, когда попытался запустить свой сервер на windows вместо linux. Там уже пришлось устанавливать и запускать openserver, для запуска той же самой mysql
Хотелось бы автоматизировать этот процесс - чтобы запуск БД не ложился на пользователя
Tikhon
Возможно ли реализовать такое ?
Tikhon
Andrey
какая-то у тебя странная концепция понимания БД, так как ты считаешь, что ЮЗЕР должен ее поднимать
Tikhon
Ну.. под юзером я подразумеваю не конечного пользователя, а того, кто запускает сервер
Alexander
Tikhon
да, понимаю
Alexander
да, понимаю
Чтобы автоматизировать поднятие тестового окружения посмотри в сторону вирутализации и контйнеров
Tikhon
Спасибо
Evgeny
Спасибо
короче, если ты писал-писал свой обучающий проектик под виндой, а потом решил его запустить на линухе, и расстроился что бд надо заново настраивать — встраивать бд в приложение это неправильное решение и научит тебя не тому. иногда это имеет смысл, но не в твоем случае.
Tikhon
Понял
Tikhon
Тогда не буду этим заниматься
Evgeny
так, я хочу поюниттестать код, который ходит в dynamo. как мне правильно мокать запросы к бд?
Evgeny
есть например dynamock, но он сырой и много чего не умеет самого тривиального
Andrey
мокай интерфейс, в чем проблема то?)
Evgeny
ну мне лень руками это делать
Evgeny
в смысле прям честно сидеть реализовывать нужные методы, экспектейшены всякие и тд
Evgeny
я думал вдруг какой-нибудь фреймворк есть нормальный
Herman
Evgeny
это не про dynamo
Evgeny
Vladislav
Кто нибудь знает библиотеку для проверки/генерации mrz на go?
N
Привет, подскажите пожалуйста , хочу вот этот кусоечк кода вывести в отдельную функцию
result = append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: amount,
Currency: "USD",
Created: created,
})
Подскажите как сделать это то что я набросал
func Conversions(ID, currency string, created time.Time, amount float64, result []string) string {
result = append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: amount,
Currency: currency,
Created: created,
})
return fmt.Sprint(result)
}
Что то накидал, но не правильно ...
helpers.Conversions()
Herman
Привет, подскажите пожалуйста , хочу вот этот кусоечк кода вывести в отдельную функцию
result = append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: amount,
Currency: "USD",
Created: created,
})
Подскажите как сделать это то что я набросал
func Conversions(ID, currency string, created time.Time, amount float64, result []string) string {
result = append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: amount,
Currency: currency,
Created: created,
})
return fmt.Sprint(result)
}
Что то накидал, но не правильно ...
helpers.Conversions()
а зачем стринг возвращать?
N
а зачем стринг возвращать?
func Conversions(ID, currency string, created time.Time, amount float64, result []string) []string {
result = append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: amount,
Currency: currency,
Created: created,
})
return result
}
так сделать?
Herman
func Conversions(ID, currency string, created time.Time, amount float64, result []string) []string {
result = append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: amount,
Currency: currency,
Created: created,
})
return result
}
так сделать?
Если идея добавить в слайс в функции, то да
Herman
Можно сократить return append …
N
```result = append(result, responses.ConversionResponse{```Вот тут ошибка
N
helpers.Conversions(сюда ID,Time и тд.) Хочу вызывать ее и просто указаывать парамы и все
Nikita
helpers.Conversions(сюда ID,Time и тд.) Хочу вызывать ее и просто указаывать парамы и все
Как говорил дядюшка боб, нельзя делать функции более чем с 2 аргументами.
Любые функции, где более 2х - фигня не очевидная.
Если необходимо передать много параметров, как в твоём случае, сделай что то типо дто.
Объявляешь структуру, и передаешь её как аргумент.
Или ещё проще, на вход даёшь result и ConversionRespose а на выход []string
И даёшь return append
Но коротко - не всегда хорошо .
Лучше чуть длиннее, зато очевиднее
N
Как говорил дядюшка боб, нельзя делать функции более чем с 2 аргументами.
Любые функции, где более 2х - фигня не очевидная.
Если необходимо передать много параметров, как в твоём случае, сделай что то типо дто.
Объявляешь структуру, и передаешь её как аргумент.
Или ещё проще, на вход даёшь result и ConversionRespose а на выход []string
И даёшь return append
Но коротко - не всегда хорошо .
Лучше чуть длиннее, зато очевиднее
Ty, сделал так
func Conversions(ID, Currency string, Created time.Time, Amount float64, result []responses.ConversionResponse) []responses.ConversionResponse {
return append(result, responses.ConversionResponse{
LeadBrandCrmID: ID,
Amount: Amount,
Currency: Currency,
Created: Created,
})
}
Nikita
Ну, да.
А можно
func Conversions(result []responses.ConversionsResponse, item responses.ConversionsResponse) []responses.ConversionsResponse
{
return append(result, item)
}
Nikita
Будет ещё короче 😁
Nikita
За отступы сорри, с телефона писать код не удобно
Anonymous
Здравствуйте ребят знает кто что такое ispmanager
John
Anonymous
😁
Oleg
params = "file=test.htm&p1=aaa&p2=bbb"
test, _ := url.ParseQuery(params)
log.Print(test["file"])
=======
[test.htm]
Почему, аглавное, зачем url.ParseQuery парсит и запихивает значения в квадратные скобки? Если я делаю парсинг набора url запроса, я логично хочу получить массив пар ключ-значение и потом по ключу вытаскивать нужное мне значение. Какого лешего мне возвращается значение в гребучих квадратных скобках? Что со мной не так? У меня настолько извращённая логика и я хочу невозможного?
Oleg
Oleg
Хорошо, пусть я извращенец конченный. Думаю, ладно, будем хардкодить!
params := "file=test.htm&p1=aaa&p2=bbb"
pairs := strings.Split(params, "&")
for _, values := range pairs {
keyval := strings.Split(values, "=")
x := string(keyval[0])
y := string(keyval[1])
//d.setParam(x, y)
log.Println(x, y)
}
Oleg
ок, типа работает
Oleg
раскоменчиваю d.setParam(x, y)
Oleg
нафига? если сервер всё равно будет брать последнее значение?
Oleg
если ты присвоил переменную, а потом ещё раз, то результирующее значение - последнее
Oleg
нафига мне этот массив массивов? если в url передаются пары ключ-значение
Oleg
пытаюсь, с плачевным результатом
Oleg
Квадратные не нужны
Oleg
<?php
$str = "file=test.htm&p1=aaa&p2=bbb";
parse_str($str, $res);
print_r($res);
?>
вот на PHP - всё логично
Array
(
[file] => test.htm
[p1] => aaa
[p2] => bbb
)
Oleg
почему в Go парсер возвращает ахинею?
ладно, пусть не ахинею, а логичный результат
тогда объясните мне, пожалуйста, логику
Nikita
Get и set и никаких проблем.
Зачем парсить параметры в json?
Oleg
Oleg
и почему тогда url.ParseQuery сразу не возвращает результат с предложенными вами преобразованиями
Oleg
зачем я должен ещё двацикла крутить после парсинга? нах он такой нужен?