@gogolang

Страница 1506 из 1630
Ilya
05.10.2018
12:06:43
и?
Делать тест в транзакции и потом сбрасывать? Возможно это вариант

Сергей
05.10.2018
12:07:17
Делать тест в транзакции и потом сбрасывать? Возможно это вариант
это оч эффективно. сначала создаешь схему, потом каждый тест в своей транзакции и по окончании роллбечится. можно запускать параллельно свободно

Ilya
05.10.2018
12:07:17
Хотя мне бы тестовые данные а не реальную базу

Сергей
05.10.2018
12:07:38
тестовые данные уже в коде теста надо заливать, а не заранее

Google
Ilya
05.10.2018
12:08:07
Так если у меня транзакция над реальной базой то там уже есть данные

Или делать truncate в init?

Как то это того...

Сергей
05.10.2018
12:09:29
Так если у меня транзакция над реальной базой то там уже есть данные
поясни? если что вложенные транзакции работают

для тестов отдельно схему создавай и дропай по окончании тестов

Ilya
05.10.2018
12:10:01
Ну мне нужна чистая база в которую я положу тестовые данные

Сергей
05.10.2018
12:10:21
да, новые создавай, накатывай таблицы, и после тестов дропай

главное, чтобы тесты были независимые

Ilya
05.10.2018
12:10:53
Забыл про схемы)

Сергей
05.10.2018
12:11:14
каждый создавал свои данные, проходил как один так и со всеми вместе, успешность тестов не зависела от порядка прохождения тестов и тд

тогда это хорошие тесты)

Ilya
05.10.2018
12:11:33
Согласен)

Google
Pawel
05.10.2018
12:15:33
если надо адрес первого элемента в слайсе, так можно - uintptr(unsafe.Pointer(&b[0])) ?

Mykyta
05.10.2018
12:25:48
если надо адрес первого элемента в слайсе, так можно - uintptr(unsafe.Pointer(&b[0])) ?
У массива думаю, что да. А у слайса сначала надо выковырять reflect.SliceHeader где уже адрес данных

Pawel
05.10.2018
12:29:01
header := *(*reflect.SliceHeader)(unsafe.Pointer(&b)) ?

Mykyta
05.10.2018
12:32:20
LE, адрес к счастью 32-х битный в любом случае
Кстати bytes := make([]byte, 4) binary.LittleEndian.PutUint32(bytes, 0xB15B00B5)

Artem
05.10.2018
12:49:48
Кто нить юзает Pgx? я вот читал мол там на каждый запрос сначала отсылается prepared statement. То есть судя по всему от SQL Injections я буду защищен и мне можно вообще забить на почти все првоерки?

Mykyta
05.10.2018
12:50:38
Кто нить юзает Pgx? я вот читал мол там на каждый запрос сначала отсылается prepared statement. То есть судя по всему от SQL Injections я буду защищен и мне можно вообще забить на почти все првоерки?
Чтобы защититься от иньекций, тебе вместо встраивания данных в запрос, надо просто передавать их как плейсхолдеры $1, $2.. $N

Artem
05.10.2018
12:50:48
а имя таблицы можно так передать? ну типа Select * from $1 where … ?

Mykyta
05.10.2018
12:51:11
да. я так и передаю.
Потому что тогда подстановку выполняет сама бд

Artem
05.10.2018
12:51:24
ну да. prepare statements

Mykyta
05.10.2018
12:51:58
а имя таблицы можно так передать? ну типа Select * from $1 where … ?
имя таблицы нет, как и нельзя передавать операторы, но в таких случаях, тебе нужно создавать белый список значений и подставлять только на основе их

Mykyta
05.10.2018
12:52:24
да. так и делаю
ну тогда все должно быть ок

Artem
05.10.2018
12:53:22
все данные прогоняй через валидаторы. всегда. во всех языках и на всех базах
зачем? чем плох подход с плейсхолдерами? ну длину я могу завалидировать например. но там чот геморно все остальное валидировать

Shahzod
05.10.2018
12:54:39
DROP TABLE tableName;

Google
Artem
05.10.2018
12:55:11
ну вопрос о том и был. Спасут ли плейсхолдеры и prepared statement от такого

Aleksandr
05.10.2018
12:56:17
от какого?

Sergey
05.10.2018
12:56:51
Посоветуйте, что почитать для углубленного изучения Go? Там, reflect, unsafe, ...

Artem
05.10.2018
12:57:09
от параметров вида “; drop table users; "

Aleksandr
05.10.2018
12:57:16
да

то есть это именно для этого и сделано

Shahzod
05.10.2018
12:57:58
Никогда не доверять пользовательским данным! Они всегда дольжны проходить через валидаторы. Сергей прав

Artem
05.10.2018
12:58:22
Shahzod
05.10.2018
13:00:16
Artem
05.10.2018
13:01:37
окей. есть какие нить валидаторы которые как аннотации к колбекам сервера запиливаются? А то я кастомный написал и он получился гавно с правилами вида const ListEventsIdRule = "request_id,any,nospace,minl=1,maxl=172,req"

Сергей
05.10.2018
13:02:46
валидаторы проверят как минимум тип, отсекут злонамеренно сформированные запросы с данными на граничных условиях - NaN, огромные числа/строки, битые даты

Vildulv
05.10.2018
13:03:07
а есть для Go типа <другой язык> right way? Или вот это оно: https://golang.org/doc/effective_go.html#introduction ?

Vildulv
05.10.2018
13:12:07
ясно ,спасибо

Michael
05.10.2018
14:30:22
Привет всем. Наткнулся на один интересный случай. Я уже понял, почему так происходит, но всегда думал, что case в select не может залочиться и всегда выполнится default. Оказалось нужно внимательнее доку читать Думаю будет интересно посмотреть: https://play.golang.org/p/vblaXUZFvXY

Daniel
05.10.2018
14:31:11
так залочился не селект

залочилось то чтение из канала, которое не в селекте

Michael
05.10.2018
14:36:35
Из out прочитай сначала, а то default ждёт этого.
Нет, сам лок происходит на этой строчке: case out <- <-in:

Google
Michael
05.10.2018
14:36:56
Потому что не может из in прочитать

Pavel
05.10.2018
14:37:45
Ок.

Ну вообще странный код я за пару лет на го такого не видел не писал.

Daniel
05.10.2018
14:38:54
Потому что не может из in прочитать
именно. чтение из in - не в select

Kirill
05.10.2018
14:40:21
Daniel
05.10.2018
14:40:39
не

Kirill
05.10.2018
14:40:50
тьфу, нет же

Daniel
05.10.2018
14:40:52
это чтение из in и немедленно отправка в out

Kirill
05.10.2018
14:40:54
pipe

Admin
ERROR: S client not available

Daniel
05.10.2018
14:42:03
а chan chan'ов я регулярно использую вернее - chan структур, в которой есть chan типа "сделай вот это и пришли мне результат вот по этому каналу"

Интернет Магазин
05.10.2018
14:42:41
Реябт добрый день, я новичек в Го надеюсь вы не против будете видеть меня и мой вопросы в группу.

Dmitry
05.10.2018
14:43:00
Вроде же все логично, из in один раз прочитали, во второй раз будет лок...

Vladimir
05.10.2018
14:44:50
Реябт добрый день, я новичек в Го надеюсь вы не против будете видеть меня и мой вопросы в группу.
тут не очень любят вопросы, если на них ответ есть в рамках go tour, а так как в других русскоязычных IT каналах все

Artem
05.10.2018
14:45:18
Давайте поможем сделать Go еще круче. Чуваки из кор тим просят заполнить опросник. ? https://blog.golang.org/company-questionnaire2018

Интернет Магазин
05.10.2018
14:45:53
Это я понимаю, пока я учил Angular, меня много пинали :)

Viktor
05.10.2018
14:46:33
Это я понимаю, пока я учил Angular, меня много пинали :)
Не переживайте, го сообщество весьма отзывычивое и весьма терпимо относится к банальным вопросам

Интернет Магазин
05.10.2018
14:48:08
Одно хочу сказать, это первый язык который мне вот прям сразу понравился (хотя это может быть плохо), не Nodejs ни php этого не смогли сделать.

Google
John
05.10.2018
14:49:13
Pavel
05.10.2018
14:49:50
а в чем проблема ? О_о
Это шутка была...

Daniel
05.10.2018
14:49:52
Как мне отправить структуру в канал?
пройдите go tour, пожалуйста

Viktor
05.10.2018
14:49:54
Одно хочу сказать, это первый язык который мне вот прям сразу понравился (хотя это может быть плохо), не Nodejs ни php этого не смогли сделать.
Мне тоже он понравился с первого взгляда. Единственная проблема, что все возникающие у меня вопросы легко гуглятся/описаны в документации, так что даже поговорить с чятиком не о чем

Pavel
05.10.2018
14:50:04
Daniel
05.10.2018
14:50:28
да, примерноо так все и будет

Sergey
05.10.2018
14:51:21
пока тут нубские вопросы задают, тоже вклюинюсь. А никто не встречал годной статейки по синглтонам в реалиях го?

Daniel
05.10.2018
14:51:55
а что с ними не как обычно?

Daniel
05.10.2018
14:52:12
зависит от задач

на go - пока? - очень мало библиотек под типовые бизнес-задачи

соответственно - в энтерпрайз на go заехать трудно

ainu
05.10.2018
14:53:55
ни у одного языка я не видел такого вот сходу количества

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

Daniel
05.10.2018
14:54:34
это другое

ainu
05.10.2018
14:54:36
ML не хватает только (это у всех проблемы кроме питона)

Daniel
05.10.2018
14:54:52
это почему?
я строкой выше написал, почему

Сергей
05.10.2018
14:55:06
какие именно бибилиотеки?

Страница 1506 из 1630