Chebyrash
Падает когда вызываю WriteMessage
ceiling cat
Падает когда вызываю WriteMessage
Создавай через var connections = make([]*websocketConn, 0)
Chebyrash
ceiling cat
Ребята, кто-нибудь знает, есть ли линтер для go? Или стандартной утилиты gofmt достаточно?
ceiling cat
Мерси. Попробую
Chebyrash
Создавай через var connections = make([]*websocketConn, 0)
Всё равно ругается на WriteMessage, правда я не понимаю почему...
Chebyrash
Ладно, видимо fasthttp пока что не поддерживает вебсокеты или у меня кривые руки.
Chebyrash
Странно, я могу работать с connection в функции newConnection, но если его засунуть в слайс и потом попробовать что-то сделать, то падает.
ceiling cat
может указатель пустой?
Chebyrash
Chebyrash
Chebyrash
Следую примеру отсюда
Chebyrash
//Do something with connection Пытаюсь его засунуть в слайс для будущей обработки
Chebyrash
Chebyrash
Вот так работает :(
Sergius Ofitserov
Расслабляться только патчем ядра 🎩
Oleg
vim кто пользует при разработке?
✙ Egor ✙
Ненавижу когда линтер ругается на комментарии
✙ Egor ✙
мол у такой то структуры нет комментария
Igor
Нужны не только комментарии, я бы еще без более чем 70% покрытия тестами вообще проект не принимал 🙂
✙ Egor ✙
а вот golint не настраивается
Igor
Так настрой CI хули
Что за молодежь пошла: 1. Во первых на Вы не помешало бы обращаться 2. Кому настроить? У нас всё настроено. 3. golint всё правильно делает
✙ Egor ✙
Ой, сколько же у тебя спеси
Denis
а вот golint не настраивается
через gometalinter исключения на конкретне правила (в тч комменты у структур) легко настраиваются
Denis
лучше вообще gometalinter использовать, сразу десяток линтеров
Мерль
Он немного тормозной Так что лучше выставить таймаут на 2-5 секунд А полный цикл гонять отдельно И ещё не забыть исключить vendor из проверки
Alex
Всем привет. Ребят кто то из Вас в связке с Go использует советами? И пользуетесь ли Вы какими то либами и если да то почему?
Alex
* сокетами
Kirill
Gorilla socket или как-то так
Kirill
Либа называется
Alex
Пользовался ей, довольно таки хорошая, но просматриваю на другие которые имитируют socket.io и они достаточно просты и удобны
Kirill
Можешь по подробнее рассказать?
Alexander
Всем привет
Alexander
кто-нибудь пользовал - http://www.blevesearch.com/ ?
Alexander
думаю им заменить elastic на проекте
Igor
Если кому-то интересно: Довольно часто весомым аргументом для отказа кандидату после выполнения тестового задания являются: - отсутствие комментариев в коде - отсутствие документации - отсутствие тестов Причина: нет опыта работы в команде, никому не интересно разбираться по коду - что там имелось ввиду, также команде нужен стабильный, надежный код.
Evgenii
Тесты могу понять. Но комментарии?
Evgenii
Они нужны если нужно пояснить причину почему сделано так или иначе. Как правило тз не содержит такого кода.
Igor
Тесты могу понять. Но комментарии?
Говорю же, чужой код читается легче, если присутствуют комментарии - в команде это важно. Посмотрите на Github код профессионалов, посмотрите стандартные либы Go - там не только объяснение почему так сделано. Теперь про техническое задание. Большинство решений можно найти в интернет. Смотрится не только как человек умеет кодировать, но и как может объяснять свои действия, кратко и емко - это важно.
Igor
Почему для стартапов сейчас очень популярен язык Go? Потому что очень легко читается. Привлекает контрибьютеров тем, что им понятно и легко участвовать в проектах. Так вот, комментарии для любого ЯП повышают читаемость в разы.
Irina
А есть у кого-то примеры тестовых заданий?
Igor
Ну может это специфика го, что нет объектов. Если у тебя есть класс NewsManagager и и него есть метод downloadAllNewsFromServer То как бы что там ещё в комментариях писать?
В комментариях нужно писать кратко что делает метод и если есть ньюаннсы работы сервера, то обязательно их упомянуть. Что касается downloadAllNewsFromServer - попытка впихнуть в название комментарий - это тоже тяжело читается, так как обращение в коде к 3-5 методам с таким названием перегружают сам код.
Andrii
Ира: https://pastebin.com/RZiDWhYC
Evgenii
Самодокуменьируемый кол
Igor
Самодокуменьируемый кол
Вот кстати не первый раз слышу такую фразу. В конечном счете она ошибочна. В официальном гайде вам не рекоммендуют НЕ писать комментарии к коду. К тому же в методах типа downloadAllNewsFromServer может быть много особенностей, например: - формат закачки - кол-во данных - протокол соединения - особенности сервера ... список можно продолжить - это всё ньюансы и не все бывают очевидны
Valentin
Ещё более простой пример- функция SaveUser(user)- что тут можно написать в комментарии ?
Igor
Названия функций должны самодокументрировать код и четко отражать работу функции
Верно, но это не повод называть функцию типа downloadSpecificNewsByAuthorFrom SpecificServer
Igor
Ещё более простой пример- функция SaveUser(user)- что тут можно написать в комментарии ?
Здесь и в любой подобной функции всегда хорошо указывать ньюансы работы функции, если конечно она не трёхстрочная (хотя и там бывают интересные случаи 🙂)
Igor
Пример описания WriteHeader https://github.com/golang/go/blob/master/src/net/http/server.go#L1125
Igor
Однострочная функция Write https://github.com/golang/go/blob/master/src/net/http/server.go#L1438
Igor
Стандартная либа в некоторых случаях - хороший пример как писать на Go
Slach
Бодрый вечер люди добрые подскажите глупому? есть две даты типа time.Time как между ними цикл сделать? через равное кол-во дней? хотел как то по питонячи... но в time.Time кучи операторов оказывается не определено for date := Config.DateSince; date < Config.DateUntil; date = date + time.Hour * 24; { }
Igor
Gometalinter бы поругался на комментарий ))
Либа создавалась куда раньше металинтера 🙂
Andrii
Carbon ищи в golanglibs
Andrii
>Carbon ищи в golanglibs
Evgenii
Верно, но это не повод называть функцию типа downloadSpecificNewsByAuthorFrom SpecificServer
Я же говорю это официальный гайд, более того тебя не поймут если ты будешь писать по другому. Ну и много книг пишут об этом. Например чистый код. Формат закачки, количество данных, протокол соединения это все отражается в именах методов и классов. То есть у тебя фабрики который иждектят другие классы по протоколам и они меняют логику твоего кода, но все это отлично читается. Но, если уже есть какие то реальные нюансы, которые не удалось отразить в названии или архитектуре то ты пишешь комментарий. Но такое в типичных проект не часто встречается
Slach
time.Time это ж вроде int64 под капотом
нашел .Before спасибо за помощь
Andrii
https://github.com/andboson/carbon https://github.com/uniplaces/carbon нельзя сравнивать по инту вы тогда теряете пояс
Anonymous
https://github.com/andboson/carbon https://github.com/uniplaces/carbon нельзя сравнивать по инту вы тогда теряете пояс
Думаю, что не теряется, т.к. в int'е хранится отсчёт от одной даты https://golang.org/pkg/time/#Time
Andrii
ага, только в Москве и в Лондоне это будет разное время
Evgenii
И как раз в техническом задании есть великолепный повод показать, что есть умение объяснять свои действия в коде. Есть прекрасное выражение То, что очевидно для одного, совершенно не обязательно очевидно для всех
Ну может быть обратный эффект. Проверяющийся может подумать что твой скилл не очень, если ты в комментариях пишешь очевидные вещи. //это цикл для поиска четных элементов For element in array{ If element.index %2 == 0 }
Anonymous
Ну может быть обратный эффект. Проверяющийся может подумать что твой скилл не очень, если ты в комментариях пишешь очевидные вещи. //это цикл для поиска четных элементов For element in array{ If element.index %2 == 0 }
Справедливости ради, проверяющий может что угодно себе надумать. Много комментариев - пишеш очевидные вещи. Мало комментариев - недостаточно комментируешь.