@gogolang

Страница 1050 из 1630
Igor
07.05.2018
11:03:44
Вопрос... Статического анализиатора под goland пока не существует?

Sergey
07.05.2018
11:09:55


Mike
07.05.2018
11:12:12
Зачем там факториал я так и не понял

Google
Виктор
07.05.2018
11:12:42
типа statickcheck или в сборке megacheck или еще больше gometalinter но там не только статический но и стилистический и другие

Просто го изначально разработан чтобы давать по рукам так что там много не насобираешь

Tigran
07.05.2018
11:13:38
Это что за статья?

Igor
07.05.2018
11:13:42
Просто по факту даже обращение с выходом за предела слайса не детектится

грустно же

Mike
07.05.2018
11:14:03
Просто го изначально разработан чтобы давать по рукам так что там много не насобираешь
Особенно за разыменование нулла и гонки данных он офигенно по рукам дает, лол

Igor
07.05.2018
11:14:03
panic: runtime error: index out of range

Виктор
07.05.2018
11:14:06
Так....это слайс же динамическая штука

туда и докинуть можно

Igor
07.05.2018
11:14:23
Согласен. Но простейший статик анализатор может указать по крайне мере ворнингом

Что может выйти обращение за предел

Виктор
07.05.2018
11:14:44
Он может путем глбокого изучения кода узнать что болше нигде в него не добавляют и тогда проверить границы

но это немного глупо

Google
Sergey
07.05.2018
11:14:54
Зачем там факториал я так и не понял
Если честно, я даже отформатированный код не понял Вроде бы смысл задачи отличается от написанного

Jentry
07.05.2018
11:15:08
Просто го изначально разработан чтобы давать по рукам так что там много не насобираешь
Совершенно не характеристика компилятора го, он проверяет только типы и больше ничего. Очень просто собрать то, что не будет работать, банально необработка err и null pointer exception

Sergey
07.05.2018
11:15:10
Это что за статья?
https://m.habr.com/post/354790/

Igor
07.05.2018
11:15:24
Нуу... как глупо. Я просто видел похожие проблемы в других языках и оно детектилось) Просто думал есть инструмент и тут.

Виктор
07.05.2018
11:15:31
я сам пользуюсь металинтером

типа забытых ерроров

забытых контекстов

неправильное форматирование в принтах

и еще куча мелких вещей. Даже велосипеды иногда находит и говорит как лучше сделать стандартными средствами

Daniel
07.05.2018
11:16:57
металиннтер, как мы понимаем, обертка над десятком линтеров.

Виктор
07.05.2018
11:17:07
да да

Tigran
07.05.2018
11:17:12
https://m.habr.com/post/354790/
Ух. Ну рейтинг у неё вполне заслуженный.

Виктор
07.05.2018
11:17:17
неэффективно но пока других вариантов нет

Я слушал что собираются делать все линтеры в одном

а не вызовы в другим инструментам

Daniel
07.05.2018
11:17:57
а про анализатор, который ловит выход за границы слайса - это утопия в конкурентной программе. для однопоточной можно и написать, че...

Tigran
07.05.2018
11:18:38
ну, локального слайса

Google
Виктор
07.05.2018
11:18:43
Я про то и говорил что это глупо. Слишком много статическому анализатору нужно знать о коде чтобы такие вещи думать

Daniel
07.05.2018
11:19:00
фактически, надо его исполнять

Mike
07.05.2018
11:19:26
Два фаззера этому господину :)

Виктор
07.05.2018
11:19:47
А в многопоточной что отличается?
Конкурентное изменение его. Когда в однопоточном можно спрогнозировать примерно что проиойдет одно за другим то тут может наслаиваться и спрогнозировать почти невозможно

Виктор
07.05.2018
11:20:05
лучше тесты писать

они тебе и найдут много вещей таких

Так это гонка данных, не?
Я про прогноз для каждого потока для статического анализа а не про конкретное изменение

Daniel
07.05.2018
11:21:06
Tigran
07.05.2018
11:22:04
ну, тесты - это дорого

Daniel
07.05.2018
11:22:16
да

Виктор
07.05.2018
11:22:21
Дороже когда их нет чаще всего

Tigran
07.05.2018
11:22:23
и не то чтобы гонку данных легко было поймать тестом

Daniel
07.05.2018
11:22:26
поэтому их пишут, когда без них еще дороже

Tigran
07.05.2018
11:22:40
ну я к тому, что тесты - не альтернатива статическому анализу

иначе статических анализаторов вообще бы не существовало

Виктор
07.05.2018
11:22:52
Нет ни в коем случае

Tigran
07.05.2018
11:23:08
лучше тесты писать
поэтому вот это вот сомнительный тезис

лучше иметь и то, и другое

Daniel
07.05.2018
11:23:31
кэп, перелогиньтесь

Google
Виктор
07.05.2018
11:23:34
Ну тут спорно) У них разные задачи да и тесты допустим в том же Си++ и Тесты в го это разные плюшки. ТАк как в Го они выполняются чуть ли не мгновенно

поэтому их удобно использовать

Igor
07.05.2018
11:23:49
Стоп... Вопрос же не в том что-бы гарантированно предсказать результат в конкуренции.

Виктор
07.05.2018
11:24:00
и поэтому тесты являются приятностью

Igor
07.05.2018
11:24:04
Вопрос в том что-бы предупредить о потенциальной возможности выхода за пределы слайса

Admin
ERROR: S client not available

Виктор
07.05.2018
11:24:17
Я могу такой написать

Daniel
07.05.2018
11:24:44
Вопрос в том что-бы предупредить о потенциальной возможности выхода за пределы слайса
слишком много допущений надо сделать, чтобы выдать такое предупреждение. ценность его будет сомнительной

Виктор
07.05.2018
11:24:52
fmt.Println("Потенциально возможно выйти за пределы слайса. Апасна")

Igor
07.05.2018
11:25:25
слишком много допущений надо сделать, чтобы выдать такое предупреждение. ценность его будет сомнительной
не скажи. Как-то похожие вещи реализованы для многих языков. не вижу проблемы как таковой в наличии

Виктор
07.05.2018
11:25:27
Чтобы не выйти за пределы слайся

Виктор
07.05.2018
11:25:56
не скажи. Как-то похожие вещи реализованы для многих языков. не вижу проблемы как таковой в наличии
ты приведи пример и тебе скажут почему это не сработает в давнном случае

Простые случаи вроде локальных переменных внутри конкретной функции , которым не присвоен адрес извне ты можешь и сам санализировать. напиши линтер и бог с тобой

Но что-то реально полезное это уже морока

И то даже тут могут быть допущения

Ilya
07.05.2018
11:58:54
Привет, всем, есть вопрос: есть ли практики по шарингу swagger api schem-ы, я так понимаю можно просто отдельным рутом, но каким, и как версии отделять?

Daniel
07.05.2018
12:07:45
а?!

Artem
07.05.2018
12:23:16
а?!
Как я понял, как делиться свпггером с клиентами и как поставлять разные версии схемы

Alexander
07.05.2018
13:37:48
const End = 1 func main() { var end byte = 1 fmt.Println(end == End) } всегда ли такой код будет корректно работать? или лучше привести константу к byte или переменную к int?

Google
Daniel
07.05.2018
13:39:24
такой - всегда, потому, что константа безтиповая, все приведения нужные сделает компилятор

Alexander
07.05.2018
13:39:31
вывод true в данном случае

понял, спасибо

Alexey
07.05.2018
15:14:36
коллега, а вы потестите производительность? очень интересно, будет ли быстрее (я вот думаю, что будет медленнее)
Ускорил в разы, но эта вещь только для определения совпадения регулярке, FindStringSubmatch из этого сделать сложно. Сделал этой вещью предварительную проверку на совпадение строки, а потом, если совпала, то уже штатным, этой же регуляркой как и раньше разбираю. Load 27006 lines, skiped 1480858. Execution time: 26.199211173s против Load 27006 lines, skiped 1480858. Execution time: 6m28.098714719s

Daniel
07.05.2018
15:17:03
Круто! Спасибо за инфу

The
07.05.2018
16:03:59
за re2 идет спич чтобы включить в Go regexp пакет

The
07.05.2018
16:06:57
https://github.com/golang/go/issues/11646#issue-94162042

Aleksandr
07.05.2018
16:07:26
2015 год?

The
07.05.2018
16:08:27
ну не закрыто же

Aleksandr
07.05.2018
16:08:37
ну и спич же не идет

The
07.05.2018
16:09:49
спич идет, просто не так быстро, как хотелось бы. во всяком случае, все прекрасно знают, что регулярки в го медленные. а значит решение этой проблемы востребованно.

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

точнее она вроде была

но не очень то тянет на то, чтобы её протащили в regexp

Nazary
07.05.2018
16:16:58
Медленные относительно го в принципе, или относительно других языков?

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