Васильев Виктор
типа забытых ерроров
Васильев Виктор
забытых контекстов
Васильев Виктор
неправильное форматирование в принтах
Васильев Виктор
и еще куча мелких вещей. Даже велосипеды иногда находит и говорит как лучше сделать стандартными средствами
Daniel
металиннтер, как мы понимаем, обертка над десятком линтеров.
Васильев Виктор
да да
Tigran
https://m.habr.com/post/354790/
Ух. Ну рейтинг у неё вполне заслуженный.
Васильев Виктор
неэффективно но пока других вариантов нет
Васильев Виктор
Я слушал что собираются делать все линтеры в одном
Васильев Виктор
а не вызовы в другим инструментам
Daniel
а про анализатор, который ловит выход за границы слайса - это утопия в конкурентной программе. для однопоточной можно и написать, че...
Tigran
ну, локального слайса
Васильев Виктор
Я про то и говорил что это глупо. Слишком много статическому анализатору нужно знать о коде чтобы такие вещи думать
Daniel
фактически, надо его исполнять
Маjко
Два фаззера этому господину :)
Васильев Виктор
А в многопоточной что отличается?
Конкурентное изменение его. Когда в однопоточном можно спрогнозировать примерно что проиойдет одно за другим то тут может наслаиваться и спрогнозировать почти невозможно
Васильев Виктор
лучше тесты писать
Васильев Виктор
они тебе и найдут много вещей таких
Васильев Виктор
Так это гонка данных, не?
Я про прогноз для каждого потока для статического анализа а не про конкретное изменение
Tigran
ну, тесты - это дорого
Daniel
да
Васильев Виктор
Дороже когда их нет чаще всего
Tigran
и не то чтобы гонку данных легко было поймать тестом
Daniel
поэтому их пишут, когда без них еще дороже
Tigran
ну я к тому, что тесты - не альтернатива статическому анализу
Tigran
иначе статических анализаторов вообще бы не существовало
Васильев Виктор
Нет ни в коем случае
Tigran
лучше тесты писать
поэтому вот это вот сомнительный тезис
Tigran
лучше иметь и то, и другое
Daniel
кэп, перелогиньтесь
Васильев Виктор
Ну тут спорно) У них разные задачи да и тесты допустим в том же Си++ и Тесты в го это разные плюшки. ТАк как в Го они выполняются чуть ли не мгновенно
Васильев Виктор
поэтому их удобно использовать
Игорь Пинчук
Стоп... Вопрос же не в том что-бы гарантированно предсказать результат в конкуренции.
Васильев Виктор
и поэтому тесты являются приятностью
Игорь Пинчук
Вопрос в том что-бы предупредить о потенциальной возможности выхода за пределы слайса
Васильев Виктор
Я могу такой написать
Daniel
Вопрос в том что-бы предупредить о потенциальной возможности выхода за пределы слайса
слишком много допущений надо сделать, чтобы выдать такое предупреждение. ценность его будет сомнительной
Васильев Виктор
fmt.Println("Потенциально возможно выйти за пределы слайса. Апасна")
Игорь Пинчук
слишком много допущений надо сделать, чтобы выдать такое предупреждение. ценность его будет сомнительной
не скажи. Как-то похожие вещи реализованы для многих языков. не вижу проблемы как таковой в наличии
Васильев Виктор
Чтобы не выйти за пределы слайся
Васильев Виктор
не скажи. Как-то похожие вещи реализованы для многих языков. не вижу проблемы как таковой в наличии
ты приведи пример и тебе скажут почему это не сработает в давнном случае
Васильев Виктор
Простые случаи вроде локальных переменных внутри конкретной функции , которым не присвоен адрес извне ты можешь и сам санализировать. напиши линтер и бог с тобой
Васильев Виктор
Но что-то реально полезное это уже морока
Васильев Виктор
И то даже тут могут быть допущения
Ilia
Привет, всем, есть вопрос: есть ли практики по шарингу swagger api schem-ы, я так понимаю можно просто отдельным рутом, но каким, и как версии отделять?
Daniel
а?!
Artem
а?!
Как я понял, как делиться свпггером с клиентами и как поставлять разные версии схемы
Alexander
const End = 1 func main() { var end byte = 1 fmt.Println(end == End) } всегда ли такой код будет корректно работать? или лучше привести константу к byte или переменную к int?
Daniel
такой - всегда, потому, что константа безтиповая, все приведения нужные сделает компилятор
Alexander
вывод true в данном случае
Alexander
понял, спасибо
Aleksey
коллега, а вы потестите производительность? очень интересно, будет ли быстрее (я вот думаю, что будет медленнее)
Ускорил в разы, но эта вещь только для определения совпадения регулярке, FindStringSubmatch из этого сделать сложно. Сделал этой вещью предварительную проверку на совпадение строки, а потом, если совпала, то уже штатным, этой же регуляркой как и раньше разбираю. Load 27006 lines, skiped 1480858. Execution time: 26.199211173s против Load 27006 lines, skiped 1480858. Execution time: 6m28.098714719s
Daniel
Круто! Спасибо за инфу
heavycharged
за re2 идет спич чтобы включить в Go regexp пакет
heavycharged
https://github.com/golang/go/issues/11646#issue-94162042
Aleksandr
2015 год?
heavycharged
ну не закрыто же
Aleksandr
ну и спич же не идет
heavycharged
спич идет, просто не так быстро, как хотелось бы. во всяком случае, все прекрасно знают, что регулярки в го медленные. а значит решение этой проблемы востребованно.
heavycharged
там если мне не изменяет память все упирается в то, что никто не выродил гошную версию re2.
heavycharged
точнее она вроде была
heavycharged
но не очень то тянет на то, чтобы её протащили в regexp
Nazar
Медленные относительно го в принципе, или относительно других языков?
heavycharged
Медленные относительно го в принципе, или относительно других языков?
Медленно относительно других языков. В Go нативная имплементация.
Daniel
Медленные относительно го в принципе, или относительно других языков?
по совокупности обычно выходит быстрее, чем в перле-пхп-питоне
Pawel
А много тут тех кто пишет без IDE?
недавно обнаружил, что в vscode c плагином микрософта - внезапно! - можно жить, и весьма комфортно
Daniel
но сами регулярки - да, помедленнее
Daniel
зато не зависят от объема входных данных
Daniel
в js же те же pcre
heavycharged
https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html вот в кратце, если про синтетику
heavycharged
помоему, все лучше liteide
Александр
Сегодня днем мне посоветовали storm заместо sqlite, вообщем результат такой на 5200 идентичных данных размер базы в 8 раз больше у storm однако скорость чтения на треть выше