Rostislav
вы о какой книге?
Дональд Кнут автор. Искусство программирования
Grigorij
про кабана жи
David
жи ес
David
Ваня Гречка
Прочитать кнута мастхев
Ваня Гречка
Только я не читал, не осилил
Ваня Гречка
Ваня Гречка
Дефолт советы от каждого 2
Ваня Гречка
Грокаем алгоритмы идеальная книга для начинания
Ваня Гречка
И этой базы достаточно
Grigorij
или нет
Илья
Дефолт советы от каждого 2
почему хауди хо не выпустил ролик "golang за час"?
David
package main import "fmt" func main() { fmt.Println("Golang за час от Хауди!)))") }
David
вот вы и исвоили го за час
David
дальше вы сможете спокойно развиваться в глубоком мире бэкенд разработки!
Dilame
Есть ли какая-нибудь причина, по которой в go очень любят сокращать названия вообще всего? Будь то имя функции, имя переменной, имя структуры, И так далее? Очень часто можно увидеть имена переменных из одной буквы, и в стандартной библиотеке net.Conn и прочее Даёт ли это какие-нибудь преимущества в случае с go?
Dilame
а проще писать net.Connection?
Понятнее. Вроде как в ИТ обществе принято давать как можно более подробные имена, чтобы код понятнее читался
David
зависит от айти сообщества)
David
в жс да
David
тут так принято
David
понятно
David
но кратко
Илья
written_bytes, fmtError := format.PrintWIthNewLine(MyStringWIthHelloWorld)
Илья
вот так нужно писать
David
Dilame
в жс да
Не только JS, но и Java, Python, и, упаси господи, PHP. Да и в целом правила красивого кода от разных гуру
David
я пример привел
David
потому что на нем писал
David
по началу кажется не понятно
David
а потом норм
Илья
это избыточно
Вроде как в ИТ обществе принято давать как можно более подробные имена, чтобы код понятнее читался
David
да я понимаю, что это рофл) я говорю, что впринципе похожие названия используются в том же жс, и это избыточно)
Dilame
да я понимаю, что это рофл) я говорю, что впринципе похожие названия используются в том же жс, и это избыточно)
Типа в целом программисты на го более прожжённые, чем на JS, и понимают собратьев с полуслова, а иногда даже с полубуквы?)
Dilame
То есть каких-то объективно измеримых причин этому нет?
David
нету, просто так принято
Dilame
Типа производительности
David
из контекста понятно
David
что c - connection
David
а больше и не надо
David
все понятно
Dilame
Ещё такой идеологический вопрос: Если у меня в одной функции вызывается несколько других функций, каждая из которых возвращает ошибку, нормально ли это – обрабатывать кучу ошибок в одной функции?
Dilame
все понятно
Это смотря кому:)
Dilame
Вроде как в ИТ обществе принято давать как можно более подробные имена, чтобы код понятнее читался
Кстати, ещё раз, огромное спасибо за тот пример с кодом для прокси-сервера, он мне очень помог!
Илья
фигня вроде)
Илья
по нормальному нужно просто полный ответ писать, но http не дает записать headers напрямую (поэтому цикл с мапой)
Dilame
А какие имена давать этим ошибкам?
Dilame
Может ли это быть одно и то же имя err для всех ошибок?
Дмитрий
Может ли это быть одно и то же имя err для всех ошибок?
Да, суть всего в том что ошибка у тебя будет из этого всего скорее всего только одна
Дмитрий
И именно ее ты возвращаешь
Dilame
А почему net.Conn всегда передаётся как значение, а не указатель?
Юра (Юрий Александрович)
David
я же правильно понимаю, что нет отличия между new(someStruct) и &someStruct{} ?
Илья
да
David
sps
Dilame
потому что это интерфейс)
Разве нельзя передавать указатель на структуру, имплементирующую интерфейс?
Юра (Юрий Александрович)
Если у нас переменная (или поле структуры) интерфейсного типа, то в ней как раз и содержится указатель на структуру, имплементирующую интерфейс.
Dilame
То есть в интерфейсный тип нельзя передать копию значения?
Юра (Юрий Александрович)
То есть в интерфейсный тип нельзя передать копию значения?
Можно. Но не через присвоение интерфейсной переменной значения интерфейсной переменной. При таком присвоении в интерфейсную переменную копируется ссылка на объект. А чтобы в интерфейсную переменную легла ссылка на копию объекта, надо написать по-другому.
Anonymous
Это же вроде когда err != nil
Anonymous
Почему нет?
Dilame
Почему нет?
Да не знаю, просто непривычно) Кажется, что это должно быть написано как-то иначе, но не понимаю как. Или я просто привык к выбрасыванию исключений
Илья
и просто писать return
Юра (Юрий Александрович)
Илья
Это как?
func (...) (err error)
Dilame
func (...) (err error)
Есть какое-то название у этой конструкции, погуглить?
Maks
Можно дать имена в декларации возвращаемых значений и просто делать return везде
Maks
а значения переменным сетить там где они сетятся собственно)
Maks
ток net.Conn разве может быть nil?
Dilame
ток net.Conn разве может быть nil?
А вот буквально немного выше этот вопрос обсуждали)