Sergey
0_о ребят, а в 1.11 go get реп клонит в текущую директорию? или я чего-то не понимаю
Sergey
а как же GOPATH?
Aleksandr
В gopath
Sergey
блин, а теперь в gopath, неужели по запарке git clone сделал вместо go get
Roman
короч по поводу констант и иммутабельных типов я выяснил, что иммутабельные типы заменяют константы: const Constant string = "rvalue" var Immutable const string = "rvalue" Immutable и Constant это практически одно и то-же это даже исправляет такие дефекты языка как отсутствие возможности использования не-скалярных типов в качестве констант: const ConstantSlice []string = []string{"first", "second"} вот так выглядит решение: var ConstantSlice const []string = const([]string {"first", "second"})
Sergey
хистори посмотри)
посмотрел, go get)
Sergey
но не могу воспроизвести ситуацию
Roman
syntax error: unexpected const, expecting type missing value in const declaration
this won't compile because Go 1 doesn't currently support immutable types which are proposed here: https://github.com/romshark/Go-2-Proposal---Immutability#2101-simple-casting
Artem
не doesn't а lack of, потому что string
🏁Александр
а когда канал перешел на инглиш?
Artem
тебя тоже поправлю, не инглиш, а рунглиш все, ушел
Roman
https://github.com/romshark/Go-2-Proposal---Immutability#114-inconsistent-concept-of-constants
Roman
а когда канал перешел на инглиш?
лингуа франка ай-ти мира как-бэ но да, лучше на рунглише максимум)
.
Ребята из Авито действительно странные ) Не совсем понял их "проблемы"
𝗠𝗮𝗿𝘂𝗳
Всем салют,помогите разобраться есть два роута: /users /user/{id} первый показывает в index.html template ,через {{range . }}, таблицу юзеров их данные второй тоже использует index.html, но при выводе данных консоль ругается executing "index.html" at <.>: range can't iterate over какие есть способы избавиться от этой ошибки?
Slava
а что в контекст шаблона передаётся?
Slava
для /user/{id}
𝗠𝗮𝗿𝘂𝗳
та же структура
𝗠𝗮𝗿𝘂𝗳
что и для первого роута
Slava
а код можешь показать?
𝗠𝗮𝗿𝘂𝗳
<tbody> {{ range . }} <tr> <td>{{ .FullName }}</td> <td>{{ .Contact }}</td> <td>{{ .SerialNumber }}</td> <td>{{ .PurchaseDateTime }}</td> <td>{{ .Сhecked }}</td> </tr> {{ end }} </tbody>
Slava
а то на словах у всех всё то же
Slava
код вызова шаблона
𝗠𝗮𝗿𝘂𝗳
сек
𝗠𝗮𝗿𝘂𝗳
func (c *AuthenticationControllers) SelectUserById() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) id, _ := strconv.Atoi(params["id"]) ........................... user, _ := c.srv.repo.GetPersonById(id) templates.ExecuteTemplate(w, "admin.html", user) } }
𝗠𝗮𝗿𝘂𝗳
...достаточно?
Slava
ну вот, а в том где /users/ как передаётся?
Maksym
Ты итерировать пытаешься по переменной без имени
𝗠𝗮𝗿𝘂𝗳
func (c *AuthenticationControllers) SelectUsers() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { ......................... users, err := c.srv.repo.GetPersons() templates.ExecuteTemplate(w, "admin.html", users) } }
Slava
вот, в первом случае ты передаёшь один объект и пытаешься по нему итерироваться
Slava
во втором случае передаёшь список объектов и пытаешься по нему итерироваться
Slava
у тебя должны быть либо 1) разные шаблоны, 2) в обоих случаях список
𝗠𝗮𝗿𝘂𝗳
спасибо, думаю 2ой вариант использую
𝗠𝗮𝗿𝘂𝗳
жаль нет бота благодарности
𝗠𝗮𝗿𝘂𝗳
@gothankbot @m0sth8 😁
Slava
:)
Anonymous
ребят, подскажите пожалуйста как заэкспортить структуру и заимпортить её в другом файле? (в моем кейсе модель) гуглил, не очень помогает
Daniel
вопрос не ясен
Daniel
любы типы, названия которых начинаются с заглавной буквы, экспортируются
Daniel
в другом пакете к таким типам обращаются с указанием имени пакета
qurabay
Плиз помогите например как обработать 1 млн запросов объясните
Misha
Всем доброго времени суток! Есть апи связанное с sqlitе. Для тестирования хендлеров, которые получают данные из бд или помещают их туда, нужно как то сфабриковать саму бд. То есть чтобы на уровне тестирования было понятно, что есть в бд и что в ней происходит. Данные у меня очень объемные и как-то нахожусь в растерянности, как тестировать это все. Поначалу думал, что можно создать так называемую test_db, закинуть туда руками данные и дальше с этим работать. Нет ли более оптимального метода для данной ситуации? Или все действительно так, ручками?
𝓢𝓮𝓻𝓰𝓮𝔂
Плиз помогите например как обработать 1 млн запросов объясните
Можно последовательно, модно параллельно. Главное - по ошибки не забывать
Maksym
С кодом и обьяснением
qurabay
Можешь скинуть? пж
Maksym
Если делать параллельно, то надо через диспетчер и воркеров
Maksym
Окей
qurabay
Спасибо вам !!
Maksym
http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/
Maksym
Еще от мейла на хабре статья есть
Maksym
Если хочешь могу скинуть свой пример реализации
qurabay
Да скиньте !
Maksym
Но я бы советовал статью почитать и разобраться
Maksym
В лс кину
qurabay
Ок
Anonymous
в другом пакете к таким типам обращаются с указанием имени пакета
это все понятно, предположим, я делаю пакет user, где описываю структуру модели User, в другом пакете импорчу, в виде: import user_model "path/to/package" доступ к ней будет по: user_model.User есть ли возможность как-то заимпортить, чтобы доступ был просто по User, без user_mode.User ?
Илья
Import . "/path/to/package"
Anonymous
Import . "/path/to/package"
линтер говорит, что should not use dot imports
Илья
Потому что это плохой стиль, но это то, что вы спросили
Anonymous
Потому что это плохой стиль, но это то, что вы спросили
в таком случае как сделать лучше и правильно?
Anonymous
если не сложно – посдкажите, пожалуйста
Anonymous
я вижу вариант объеденить все модели под 1 пакет, импортить его и использовать нужную структуру, типа: models.User
Daniel
Или так, или эдак
Илья
Сделать пакет models, положить туда User, обращаться как models.User
Anonymous
ага, спасибо!
Anonymous
так и сделал на текущий момент
Roman
https://www.youtube.com/watch?v=ZbtB1Aqc41A
Andrey
Ребята из Авито действительно странные ) Не совсем понял их "проблемы"
Они же сразу сказали... небыло экспертизы. Их коллеги (OLX) в Берлине, начинают писать на Котлине и еще PHP есть. Но они видимо не дружат между собой.
JohnnyPitt
Подскажите пожалуйста такой вопрос, скачал проект, запустил dep ensure -v, оно создало vendor папку и включило мой проект туда. Почему это могло случиться и как это можно поправить?
Диёр
Погугли такие слова: IoC, DI и Mocks
За такие слова в аду уже начали отдельный котёл готовить
Nikita
За такие слова в аду уже начали отдельный котёл готовить
В практике тестирования нового еще ничего не придумали