Dmitry
Aleksandr
если договориться, что кириллица только в рамках русского алфавита
Ivan
да ну нафиг
Ivan
я делал так, не работало)
Ivan
спс)
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
Petr
https://www.nginx.com/blog/http2-module-nginx/
🎉
heavycharged
Это вообще инструкция как прикрутить push
heavycharged
push одна из возможностей http2
heavycharged
net/http по дефолту работает с HTTP2, если есть TLS
heavycharged
если я не ошибаюсь, конечно, но твоя статья именно про server push
🎉
Так-то браузеры многие уже умеют http2 вроде...
heavycharged
А ещё, подскажите вот что:
в пакете http есть ServeMux, когда мы делаем NewServeMux, то мапа в нем не инициализируется.. https://i.imgur.com/Tdkt1yZ.png зато когда мы добавляем роут, они делают проверку мапы на нил. Вопросов несколько: почему бы сразу не создать мапу? Есть какие-то причины на это?
И второй вопрос, в коде мы проверяем есть ли в мапе роут (чтобы не было одного хендлера на несколько роутов), а затем мы проверяем не nil ли наша мапа. Вопрос: как мы до этого обращались, если она (допустим) nil? Я имею ввиду, почему до этого не происходило паники? https://i.imgur.com/YBdi91H.png
Daniel
А ещё, подскажите вот что:
в пакете 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
а вот и задачка в тему
Michael
https://tour.golang.org/moretypes/23
Michael
Daniel
чтобы
1. импортнуть пакет, там не много моно огрести, но есть
2. тестить только то, что экспортится
Andrei 🦉
Pawel
Daniel
1. конфликт имен
2. аминь
Daniel
можно назвать свой пакет http
Aleksey
Одно и тоже имя
Aleksey
сделайте вторую строчку такую
import httpcus "custom_name/http"
Andrei 🦉
Aleksey
Вызов функций из пакета происходит по названию пакета в каком из пакетов искать тогда если они одинаково называются?
Aleksey
Нет как раз. Ошибкой будет если имена пакетов одинаковые.
К примеру пакет http имеет заголовок package http.
И если пакет custom_name/http тоже будет иметь в заголовке package http тогда ошибка возникнет а если будет другой заголовок тогда ошибка не возникнет.
Andrei 🦉
Andrei 🦉
Pawel
можно назвать свой пакет http
ну тогда будет квалифицированный импорт с алиасом (или как оно там правильно называется)
может я туплю, но че та не улавливаю тут связи с тем, в какой пакет лучше помещать код тестов
Andrei 🦉
Andrei 🦉
у меня нет идей
Daniel
еще один неприятный залет - это когда имя в инструкции package и последний элемент пути - разные. тоже без теста с import не выяснишь
Pawel
Andrei 🦉
хороший сахар для setup teardown есть в подпакете github.com/stretchr/testify/suite
Илья
почему не тестят приватные функции? 🙁
Daniel
тестят только внешний интерфейс, а не детали реализации