Dmitry
Aleksandr
если договориться, что кириллица только в рамках русского алфавита
Ivan
да ну нафиг
Ivan
я делал так, не работало)
Ivan
спс)
Aleksandr
я делал так, не работало)
это проблемы рук, а не регулярки
Ivan
да)
Aleksandr
да)
https://play.golang.org/p/w5YDtvKY49t
Aleksandr
https://en.wikipedia.org/wiki/Cyrillic_script_in_Unicode
Ivan
да, все нормально, уже работает, спасибо, я лохануля просто изначально и у меня не находило ничего)
heavycharged
господа, а поясните, если перед Go стоит Nginx, он работает по HTTP2, и делает proxy_pass на fasthttp (который HTTP2 не поддерживает), такая схема работать не будет? или nginx проксирует обычный HTTP/1.1?
Petr
http2 нужен только на клиентской стороне, проксироваться будет по http1.1
heavycharged
спасибо!
🎉
спасибо!
https://blog.golang.org/h2push
heavycharged
это к чему?
🎉
это к чему?
Это к тому как прикручивать http2. Но я ещё не пробовал.
Petr
модуль у нжинкс не поддерживает проксирование по http2 и ближайшее время не будет
heavycharged
Это к тому как прикручивать http2. Но я ещё не пробовал.
это к net/http инструкция, к fasthttp это не подойдет
Petr
https://www.nginx.com/blog/http2-module-nginx/
🎉
это к net/http инструкция, к fasthttp это не подойдет
С чего это? А вообще лучше у Кирилла спроси.
heavycharged
Это вообще инструкция как прикрутить push
heavycharged
push одна из возможностей http2
heavycharged
net/http по дефолту работает с HTTP2, если есть TLS
heavycharged
если я не ошибаюсь, конечно, но твоя статья именно про server push
🎉
https://www.nginx.com/blog/http2-module-nginx/
А на русском нету? А то что-то башка и так кипит, а тут ещё моск напрягать.
🎉
если я не ошибаюсь, конечно, но твоя статья именно про server push
Фрейм Кирилла кста работает тоже на fasthttp, и если не ошибаюсь, он про этот способ говорил. Спроси у него, я прост ссылку сохранил на будущее, но ещё не вникал.
🎉
Так-то браузеры многие уже умеют http2 вроде...
heavycharged
А ещё, подскажите вот что: в пакете http есть ServeMux, когда мы делаем NewServeMux, то мапа в нем не инициализируется.. https://i.imgur.com/Tdkt1yZ.png зато когда мы добавляем роут, они делают проверку мапы на нил. Вопросов несколько: почему бы сразу не создать мапу? Есть какие-то причины на это? И второй вопрос, в коде мы проверяем есть ли в мапе роут (чтобы не было одного хендлера на несколько роутов), а затем мы проверяем не nil ли наша мапа. Вопрос: как мы до этого обращались, если она (допустим) nil? Я имею ввиду, почему до этого не происходило паники? https://i.imgur.com/YBdi91H.png
heavycharged
есть подозрение, что это баг, и его надо репортить
дело в том, что все работает как-бы..
heavycharged
что собственно меня и смущает.
heavycharged
скорее я туплю где-то
Daniel
это просто означает, что в это место мы всегда попадаем с инициализированной мапой
Daniel
но код этот - точно бага
Daniel
вы, кстати, знаете, что не надо код картинкой постить?
Daniel
а надо давать ссылку на исходник
Daniel
гитхаб же позволяет сослаться на конкретную строку
heavycharged
да слышал, я просто человек не гитхабовский, к сожалению :( не очень умею им пользоваться, к моем стыду.
heavycharged
но освою, и исправлюсь.
heavycharged
вообще, тот метод где содержится гипотетический баг, и тот метод который инициализирует ServeMux, между ними больше нет участков где мапа бы проинициализировалась....
heavycharged
mux.HandleFunc дергает mux.Handle с параметрами, а скрин последнего я скинул.
heavycharged
Хм, кстати на гитхабе другие сурцы, видимо пофиксили уже.
MOS2502
Парни, подскажите, как профессионалы, как можно улучшить (облегчить) данный код: https://play.golang.org/p/OjNDYiXy7UJ ? Код получает число, например 999, смотрит в массив, есть ли такое, если число есть не добавляет. Все работает, но смущают костыли.
Тик
идешь по массиву, если находишь выходишь из цикла, если ненаходишь делаешь append
Daniel
а почему не использовать map?
Michael
а почему не использовать map?
https://tour.golang.org/moretypes/22
Тик
тот же вопрос кстати
Michael
а вот и задачка в тему
Michael
https://tour.golang.org/moretypes/23
Pawel
пакет, кстати, лучше делать разный
писать тесты в другом пакете? и зачем?
Andrei 🦉
писать тесты в другом пакете? и зачем?
а еще в таком случае непонятно как тестировать неэкспортированные функции
Daniel
чтобы 1. импортнуть пакет, там не много моно огрести, но есть 2. тестить только то, что экспортится
Daniel
1. конфликт имен 2. аминь
Pawel
1. конфликт имен 2. аминь
можете пример конфдикта имён привести?
Daniel
можно назвать свой пакет http
Andrei 🦉
можно назвать свой пакет http
и каким образом получится конфликт? import "http" import "custom_name/http"
Aleksey
Одно и тоже имя
Aleksey
сделайте вторую строчку такую import httpcus "custom_name/http"
Andrei 🦉
Одно и тоже имя
ну и пусть одно и то же имя, путь то разный
Andrei 🦉
сделайте вторую строчку такую import httpcus "custom_name/http"
это ошибка компиляции вроде, если импорты имеют одинаковые имена
Aleksey
Вызов функций из пакета происходит по названию пакета в каком из пакетов искать тогда если они одинаково называются?
Aleksey
Нет как раз. Ошибкой будет если имена пакетов одинаковые. К примеру пакет http имеет заголовок package http. И если пакет custom_name/http тоже будет иметь в заголовке package http тогда ошибка возникнет а если будет другой заголовок тогда ошибка не возникнет.
Pawel
можно назвать свой пакет http
ну тогда будет квалифицированный импорт с алиасом (или как оно там правильно называется) может я туплю, но че та не улавливаю тут связи с тем, в какой пакет лучше помещать код тестов
Andrei 🦉
у меня нет идей
Daniel
еще один неприятный залет - это когда имя в инструкции package и последний элемент пути - разные. тоже без теста с import не выяснишь
Pawel
ну тогда будет квалифицированный импорт с алиасом (или как оно там правильно называется) может я туплю, но че та не улавливаю тут связи с тем, в какой пакет лучше помещать код тестов
а, я наверное спросил не правлильно. Надо было - можете привести пример конфликта имён который возник из-за того, что тесты и продакшен код находятся в одном пакете?
Andrei 🦉
еще один неприятный залет - это когда имя в инструкции package и последний элемент пути - разные. тоже без теста с import не выяснишь
вот это я встречал, но случай с моей точки зрения случай настолько редкий, что заморачиватся с отдельным пакетом под тесты не имеет смысла
G72K
вот это я встречал, но случай с моей точки зрения случай настолько редкий, что заморачиватся с отдельным пакетом под тесты не имеет смысла
Кстати, в Го не придумали еще как общие хелперы для тестов иметь? Скажем тесты для пакета разделены на два файла, куда всякое общее барахло девать?
Andrei 🦉
Кстати, в Го не придумали еще как общие хелперы для тестов иметь? Скажем тесты для пакета разделены на два файла, куда всякое общее барахло девать?
я стараюсь делать все через интерфейсы и DI и тестирую соответственно через моки к этим интерфейсам, поэтому общего кода между тестами для разных файлов у меня почти нет весь необходимый миниум мне дают пакеты https://github.com/stretchr/testify https://github.com/vektra/mockery
Andrei 🦉
хороший сахар для setup teardown есть в подпакете github.com/stretchr/testify/suite
Denis
писать тесты в другом пакете? и зачем?
Приватные функции не тестят. Если тебе нужно ещё написать клиент к этому - получится каша.
Илья
почему не тестят приватные функции? 🙁
Daniel
тестят только внешний интерфейс, а не детали реализации