Сохранен 619
https://2ch.hk/pr/res/2665435.html
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Go тред №23 /go/

 Аноним OP 07/04/23 Птн 19:53:38 #1 №2665435 
NewProject-57.png
446E483C-40D5-4A50-ACA1-BF083EFA193A.jpg
NewProject3.png
image.png
Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, имеет богатую и универсальную стандартную библиотеку и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де-факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

С чего начать:
- В обязательном порядке проходим Go Tour:
https://go.dev/tour/welcome/1
- Читаем документацию прямо по порядку (пункт "Learning Go"): https://go.dev/doc/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)

Литература:
- Донован, Керниган "Язык программирования Go"
- Также хорошие книги для начала: https://www.golang-book.com/ и https://www.practical-go-lessons.com/ (веб-версия - бесплатная и хорошо подходит для новичков в программировании)
- Книги из списка https://github.com/dariubs/GoBooks

Полезные ресурсы:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/
- Смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw
- Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшая конфа треда: https://t.me/golang2ch более чем живая!

Предыдущий тред тонет здесь: >>2614678 (OP)
Аноним 07/04/23 Птн 19:55:22 #2 №2665440 
>>2665435 (OP)
Ты создал ещё один тред, но R всё ещё лучше чем Go.
Аноним 07/04/23 Птн 20:09:47 #3 №2665472 
А где третий тред? Чёт не могу найти, только эти два.
Аноним 07/04/23 Птн 20:17:20 #4 №2665493 
>>2665472
По тегу 3 треда, дебил
Аноним 07/04/23 Птн 20:19:19 #5 №2665495 
>>2665493
Так свежЫх только 2! Один тухлый! Лера, ТУХЛЫЙ!!!
Аноним 07/04/23 Птн 20:29:27 #6 №2665509 
>>2665493
Дебил, ты не понял нихуя. По тегу два 23-х треда, а надо три.
Аноним 07/04/23 Птн 20:37:24 #7 №2665512 
>>2665509
Какой же ты тупой. По тегу два 22-х.
Аноним 07/04/23 Птн 20:53:18 #8 №2665529 
>>2665512
Ну ты и даун.
Аноним 07/04/23 Птн 20:58:35 #9 №2665535 
Так чем го лучше шарпа?
Аноним 07/04/23 Птн 21:10:12 #10 №2665550 
>>2665535
Использует UTF-8 и расходует в 2 раза меньше памяти на строки
Аноним 07/04/23 Птн 21:14:43 #11 №2665555 DELETED
>>2665535
Аноним 07/04/23 Птн 21:29:13 #12 №2665568 
>>2665555
Не мог сказать, чтобы на русский сразу переводил?
Аноним 07/04/23 Птн 21:41:01 #13 №2665581 
>>2665555
Доставьте ролик с /dev/null is web scale
Аноним 07/04/23 Птн 22:02:35 #14 №2665595 DELETED
>>2665568
Да, хозяин.
Аноним 07/04/23 Птн 22:18:07 #15 №2665610 
>>2665595
Всё перечисленное есть в /dev/null. А ещё он web scale, как ихвестно.
Аноним 07/04/23 Птн 23:37:31 #16 №2665662 
>>2665595
>маленький размер двоичных файлов Go
Че блять?
Аноним 08/04/23 Суб 00:07:55 #17 №2665673 DELETED
>>2665662
Аноним 08/04/23 Суб 00:09:04 #18 №2665674 
>>2665673
Бинарники гошки весят как ебучие слоны
Аноним 08/04/23 Суб 00:11:18 #19 №2665675 DELETED
>>2665674
Аноним 08/04/23 Суб 09:08:12 #20 №2665787 
>>2665535
Полная обратная совместимость. Можно поставить последний компилятор голанга и запускать старые программы. А в дотнете каждый год надо переписывать программы на новый дотнет или маяться с подключением старых дотнетов, которые как правило удаляют из репозиториев и фиг снова установишь.
Аноним 08/04/23 Суб 09:15:22 #21 №2665791 
>>2665675
Эталонное тольковыигрываете и правота в главном.
Аноним 08/04/23 Суб 09:22:20 #22 №2665793 
>>2665791
А ты размер .NET SDK видел?
Аноним 08/04/23 Суб 15:33:54 #23 №2666195 
>>2665793
Сейчас бы на втором году СВО думать о размере sdk
Аноним 08/04/23 Суб 16:55:57 #24 №2666251 
>>2665793
Он не стендалон а искаробочная шинда, это не считается.
Аноним 08/04/23 Суб 18:21:05 #25 №2666326 
>>2666251
>искаробочная шинда
это сколько в гигобитах?
Аноним 09/04/23 Вск 07:52:09 #26 №2666921 
>>2665535
Го поддерживает восьмеричные литералы
Аноним 09/04/23 Вск 12:40:53 #27 №2667002 
image.png
image.png
image.png
image.png
Ну и кто долбоёб? Если заменить на testfield, то всё отлично работает.
Аноним 09/04/23 Вск 12:43:27 #28 №2667005 
image.png
image.png
image.png
>>2667002
Аноним 09/04/23 Вск 16:04:22 #29 №2667154 
>>2667002
Очевидно ты, потому что в репорте написан какой-то нечитаемый бред уровня "я ебаль ийо рука", ну и конечно классика индусоговна "NOT PROPERLY WORKING". Олд тебя бы еще назвал говноедом и обоссал, но очевидно мейнтейнеру КоК этого не позволяет, так что он послал очередного долбоеба нахуй максимально вежливо.
Аноним 09/04/23 Вск 16:07:14 #30 №2667158 
>>2667154
Так это не моя ишью, она же вообще от 18го года. Просто я сейчас столкнулся с этой проблемой, нагуглил только это.
Аноним 09/04/23 Вск 16:31:34 #31 №2667180 
>>2667158
Тогда /s/ты/индус-репортер.

Зарепорти нормально. В тестах у них по крайней мере я конкретно этого кейса не нашел, так что. Конфёрмить лень, сорян
Аноним 09/04/23 Вск 16:53:02 #32 №2667200 
image.png
>>2667180
Аноним 09/04/23 Вск 19:21:47 #33 №2667427 
В чём отличие объявлений следующих функций:
func FuncName(arg []any)
func FuncName[T comparable](arg []T)

Чатгопота мне затирает, что во втором случае якобы нельзя принять слайс с различными типами, а он прекрасно обрабатывается в обоих случаях. Так в чём же отличие?
Аноним 09/04/23 Вск 19:28:12 #34 №2667437 
>>2667427
Точно обрабатываются? Строки, целые и флоаты в одном слайсе?
Аноним 09/04/23 Вск 19:43:33 #35 №2667460 
>>2667437
Да. Сейчас обнаружил различие. Первый случай обрабатывает только интерфейсный слайс. Сколько же пиздабольства я сейчас выслушал от чатгпт. Абсолютно противоположное утверждала.
Аноним 09/04/23 Вск 19:54:00 #36 №2667477 
image.png
>Действительно, при передаче []string{"hello", "world"} в первую функцию func_name(arg []any) не возникнет ошибки
>Так она возникает
>Ой, извините
>Действительно, при передаче []string{"hello", "world"} в первую функцию func_name(arg []any) не возникнет ошибки

Программист уровня /b/. Гопоте еще даже вкатуном не быть.
Аноним 09/04/23 Вск 20:33:57 #37 №2667545 
>>2667427
В том, что в одном случае у тебя тип any, а во втором - comparable. ты аутист?
Аноним 09/04/23 Вск 20:52:28 #38 №2667583 
>>2667427
>Чатгопота мне затирает, что во втором случае якобы нельзя принять слайс с различными типами
ну это верно. в []any у тебя в каждом элементе могут быть совершенно разные типы.
а в []T у элементов будет один тип, который соответствует констрейнту. т.е. нельзя float32 и int например смешать.
Аноним 09/04/23 Вск 21:04:55 #39 №2667590 
>>2667002
вроде работает??
https://go.dev/play/p/5-wVk8CEd6h
Аноним 09/04/23 Вск 21:17:59 #40 №2667603 
>>2667545
До этого момента не понимал, что any - это такой же тип, как и int, string, etc.

>>2667583
Ботяра затирал, что во втором случае []any{"hello", 123, true, 3.14} вызовет ошибку, хотя это не так.
Аноним 09/04/23 Вск 22:23:38 #41 №2667650 
>>2667590
Лол, действительно. Попробовал твой код на локалхосте запустить, тоже всё работает. Мистика какая-то. Спасибо!
Аноним 10/04/23 Пнд 09:44:34 #42 №2667828 
А правда, что в голанге тоже надо ставить какие-то левые программы на комп и генерировать в них миграции?
Аноним 10/04/23 Пнд 10:34:52 #43 №2667860 
>>2665550
>Использует UTF-8 и расходует в 2 раза меньше памяти на строки
Ебать перемога.
Аноним 10/04/23 Пнд 12:58:01 #44 №2667983 
>>2667603
не такой же
Аноним 10/04/23 Пнд 14:19:04 #45 №2668063 
>>2667828
Что ты имеешь ввиду под миграциями? Если про создание таблиц в бд, то у тебя есть CREATE TABLE IF NOT EXISTS, буквально ее любая тулза для миграции и заводит лол
Аноним 10/04/23 Пнд 14:34:21 #46 №2668067 
В голанге вообще нельзя получить доступ к значению ключа через поинтер? Нижеуказанное не работает со второй строки.
mymap := map[string]int{"a": 1}
point := &mymap["a"]
*point = 2
Аноним 10/04/23 Пнд 14:39:33 #47 №2668075 
>>2668067
map[string]*int, мапы это не обычная переменная, тебе возвращает копию, а не сам элемент, что вполне ожидаемо
Аноним 10/04/23 Пнд 14:52:33 #48 №2668078 
>>2668075
>map[string]int

Это надо тогда кучу переменных пихать. Типа:
var1 = 1
mymap := map[string]
int{"a": &var1 }
Без такого оверхеда вариантов нет?
Аноним 10/04/23 Пнд 14:53:17 #49 №2668079 
>>2668078
Блядский двощ сожрал астерикса.
Аноним 10/04/23 Пнд 15:06:20 #50 №2668084 
>>2668078
Так ты в любом случае так или иначе будешь из переменной какой то его пиздить, а не добавлять вручную, и про какой ты оверхед я что то не поняла, уж выделить 4 байта на указатель процессору будет явно не тяжело, поверь
Аноним 10/04/23 Пнд 15:10:04 #51 №2668088 
>>2668084
Понято, принято. Благодарю. Сиськи с супом где?
Аноним 10/04/23 Пнд 15:18:22 #52 №2668105 
>>2668084
Дополню

Если прям совсем лень создавать переменную, то можешь сделать, только не забывай, что оно будет указывать уже на новую переменную, а не твою оригинальную, если ты туда for some reasons будешь передавать что то другое, не могу представить только зачем

func newPtr[T any](val T) *T {
return &val
}
Аноним 10/04/23 Пнд 15:46:25 #53 №2668136 
>>2668063
Я не знаю, что такое миграции, потому что нигде толком про это не пишут. Слышал, что надо скачивать программы с гитхаба от левых чуваков и они генерируют эти миграции. Зачем? Не знаю.
Аноним 10/04/23 Пнд 16:08:24 #54 №2668155 
>>2668136
Тогда нахуя ты пишешь про них?
Аноним 10/04/23 Пнд 16:35:21 #55 №2668171 
>>2668155
Вдруг меня на собесе спросят про миграции
Аноним 10/04/23 Пнд 16:56:24 #56 №2668197 
>>2667828
1. Это вообще не связано с языком. Ты можешь тот же ликвибейз взять и использовать.
2. Если нормальная прод система, то да надо использовать и миграция это отдельный шаг выката на прод.
Аноним 10/04/23 Пнд 16:59:15 #57 №2668202 
>>2668197
Нужно ли вкатуну их учить?
Аноним 10/04/23 Пнд 17:13:20 #58 №2668211 
>>2668202
Я бы сказал - нет, достаточно знать что они есть и представлять как в целом они работают. Но сколько компаний столько и мнений, меня пару раз в тестовых просили создавать базу с помощью системы миграций.
я правда не вкатун
Аноним 10/04/23 Пнд 18:59:13 #59 №2668336 
Как правильнее объявить пустой слайс? Нахуя нужны два оставшихся, когда ты назовёшь наиболее кошерный?
a := []int{}
b := *new([]int)
c := make([]int, 0)
Аноним 10/04/23 Пнд 19:57:19 #60 №2668387 
>>2668067
Иди читай учебник "алгоритмы и структуры данных", 1 курс любого технического вуза. Чтобы более не задавать подобных вопросов.
Аноним 10/04/23 Пнд 19:59:22 #61 №2668389 
>>2668336
>Нахуя нужны два оставшихся
Это же ГОВНОЛАНГ, простой язык! Поэтому мы добавили десять синтаксисов для каждой фичи, а также завезли неоднозначность грамматики, ну чтоб было веселее. Простота!

>a := []int{}
this
Аноним 10/04/23 Пнд 20:21:00 #62 №2668404 
>>2668387
>Алгоритмы
Рано ещё, но обязательно буду.

>Структуры данных
А вот здесь охуел, копнув лишь немного. Оказывается все языки программирования их повторяют один в один. Спасибо, читаю.
Аноним 10/04/23 Пнд 20:40:58 #63 №2668432 
А есть какая-нибудь книга по gin?
Аноним 10/04/23 Пнд 20:48:20 #64 №2668437 
>>2668404
не все
не один в один
Аноним 11/04/23 Втр 07:15:59 #65 №2668670 
>>2668336
=a := (&((&((&((&(*(&[]int{})))))))))
Аноним 11/04/23 Втр 07:17:33 #66 №2668671 
image.png
>>2668670
ну кроме ебаной макаки я думаю все поняли что я имел в виду
Аноним 11/04/23 Втр 09:57:36 #67 №2668700 
>>2668067
Я понял, что ты хочешь сделать. Так делать не надо. Даже если бы было возможно - не надо. Не делай так. Поверь дяде, кака это плохо, брось каку.
Аноним 11/04/23 Втр 10:43:50 #68 №2668719 
>>2665435 (OP)
гайсы, а есть у кого программа/скрипт, чтобы копировать все медиа с треда?
Готов купить тг @dima_ermolaev1999
Аноним 11/04/23 Втр 11:24:39 #69 №2668749 
>>2668700
То есть не очевидные шаманства с массивами и срезами через поинтер это не кака, а тоже самое с мапой уже кака?
Аноним 11/04/23 Втр 11:44:49 #70 №2668766 
>>2668336
>c := make([]int, 0)
this
Аноним 11/04/23 Втр 12:26:17 #71 №2668806 
>>2668749
Мапа в го периодически двигается в памяти с места на места. Надо тебе ебатория о том почему у тебя вдруг указатель указывает на нихуя и ты внезапно ловишь сегфолт? Надо бля?
Аноним 11/04/23 Втр 12:29:05 #72 №2668811 
>>2668749
> неочевидные шаманства через поинтер
Это кака. Бобо. Фу. Запомни это.

PS Капча говно
Аноним 11/04/23 Втр 17:55:05 #73 №2669227 
go1.jpg
go2.jpg
Объясните эти 2 момента плиз

пик 1. Почему capacity слайса уменьшается только в этом моменте
s = s[2:]

Тут мы выкинули первые две цифры из слайса и объем его уменьшился на эти 2 цифры. Но почему чуть выше где
s = s[:4]
объем слайса не уменьшается?

пик 2. Пустой слайс поначалу. Добавили 0, длина - 1 и объем - 1.
Потом добавили 1. Длина - 2 и объем - 2.
Потом сразу 3 цифры добавили. Длина стала 5. Но почему объем стал 6?
Аноним 11/04/23 Втр 18:04:13 #74 №2669241 
>>2669227
Ну значит щенок слушай

>1. Почему capacity слайса уменьшается только в этом моменте
Потому что слайс обрезается только с одной стороны, со второй тебе его и возвращает, считай просто оффсет

>Тут мы выкинули первые две цифры из слайса ~snip~
А тут ты считай взял весь массив целиком, без оффсета, но длину ему только 4 указал

>~latest snip~
А все просто, собсна капасити увеличивается не так, как увеличивается длина, капасити у нас длина помноженная на два, и собсна увеличивается, если при добавлении у тебя len > cap становится, после тысячи там уже по 10% только добавляется
Аноним 11/04/23 Втр 18:07:36 #75 №2669247 
>>2669241
Если тебе нужно прям конкретно почитать как работает конкретно сейчас - https://github.com/golang/go/blob/master/src/runtime/slice.go#L157

Надеюсь я помогла тебе понять что это такое
Аноним 11/04/23 Втр 18:27:09 #76 №2669267 
>>2669241
>>2669247
Спасибо
Аноним 11/04/23 Втр 20:01:22 #77 №2669406 
>>2668719
Dollchan
Аноним 11/04/23 Втр 22:46:42 #78 №2669565 
Короче, я готов признать, что я макака, который не знает как работает этот ёбанный multipart/form-data
Проблема некст: нужно получать мультипарт частями и отправлять полученную часть на другой сервер (minio), не записывая весь файл в память, так вот возник вопрос, есть ли возможность это реализовать или это ебанина такая же как и мой говнокод, который я настругал, пытаясь решить эту задачу?
Аноним 11/04/23 Втр 23:56:50 #79 №2669628 
>>2669565
Отправлять тоже частями, а как ты собираешься иначе сделать, не держа в памяти?
Аноним 12/04/23 Срд 00:05:14 #80 №2669632 
>>2669565
Учись у лучших умов - создателей 1С битрикса. Хуяришь гигабайтный файл в base64 и все
Аноним 12/04/23 Срд 00:09:32 #81 №2669633 
>>2669227
>Тут мы выкинули первые две цифры из слайса и объем его уменьшился на эти 2 цифры. Но почему чуть выше где
>s = s[:4]
>объем слайса не уменьшается?
Ну допустим твой слайс [0:5] это длина от Москвы до Нижнего Новгорода и он уже аллоцирован. Если ты обрезаешь его [2:5], то это расстояние от Петушков до Нижнего Новгорода. Аллоцировано при этом всё расстояние от Москвы, но ехать тебе только от Петушков до НиНо и не дальше. А если обрезать [:4], то это расстояние до Дзержинска от Москвы, но при этому у тебя есть уже аллоцированный запас до НиНо.
Аноним 12/04/23 Срд 00:10:44 #82 №2669635 
А если серьезно то режь файл https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice на куски и складывай их на диске обратно в файл.
Аноним 12/04/23 Срд 09:49:17 #83 №2669820 
perenos.jpg
Вопрос про оформление кода.
Как правильно переносить длинные строки кода? К примеру, есть длинная строка с сигнатурой метода, то как её перенести на новую строку, чтобы было красиво, читабельно и идеоматично?
Если просто какой-то параметр функции перенести, то он выравнивается по первому табу и сливается с кодом ниже. В итоге получается не читабельно, но именно так выравнивает линтер. Может надо делать как-то по другому?
Аноним 12/04/23 Срд 13:14:48 #84 №2669976 
>>2669820
Как делает go fmt так и писать
Аноним 12/04/23 Срд 14:03:04 #85 №2670025 
>>2669820
>Как правильно переносить длинные строки кода?
Не писать их. А если тебе приходится, то у тебя как раз проблемы
Аноним 12/04/23 Срд 14:36:07 #86 №2670070 
>>2669820
>reflect
>interface{}
>panic
Ебать у тебя там целый обитель говнокода, тебя в школе обижали, да?
Аноним 12/04/23 Срд 15:26:52 #87 №2670171 
adamfreeman.jpg
>>2670070
Хочу, чтобы было всё как в дотнете
Аноним 12/04/23 Срд 15:39:26 #88 №2670195 
>>2669406
спасибо тебе добрый человек
Аноним 12/04/23 Срд 16:05:11 #89 №2670234 
>>2670171
Не выйдет. Если хочешь писать на дотнете, надо писать на дотнете.
Аноним 12/04/23 Срд 16:31:24 #90 №2670277 
>>2670234
Дак никто не скидывает книгу, где пишут реальное веб-приложение не как в дотнете. Единственный, кто показывает как можно написать реальное веб-приложение, пишет всё как в дотнете. Приходится разбираться в этой дотнет параше с рефлексией и тонной абстракций на абстракциях.
Аноним 12/04/23 Срд 16:50:07 #91 №2670296 
>>2670277
А нахуя тебе для этого целая книга, шизоид
Аноним 12/04/23 Срд 17:26:42 #92 №2670341 
>>2670296
Книга даёт гарантии, что информация достоверна, не оборвется на полуслове, можно планировать своё обучение.
Видосики не нравятся, в них много мусора и темп редко совпадает с моим. Автор либо тараторит, либо засыпает. Ещё раздражает, когда полчаса разглагольствует, а потом за 5 минут торопится выдать всю инфу. Встречались даже курсы, где препод не успевал дописать программу за пару, в итоге у тебя оставался незаконченный пример. С книгой такого нет.
Аноним 12/04/23 Срд 17:32:18 #93 №2670347 
>>2670341
>что информация достоверна
Кто-то расскажите ему что за люди пишут эти книги))))
Аноним 12/04/23 Срд 17:38:13 #94 №2670356 
gobook.jpg
gobook2.jpg
>>2670347
Аноним 12/04/23 Срд 17:41:29 #95 №2670362 
>>2670347
Дак что ты предлагаешь? Как научиться писать реальные веб-приложения профессионального уровня?
Аноним 12/04/23 Срд 18:00:12 #96 №2670401 
>>2670356
Так, блеать. Я тоже где-то читал, что len и cap зашиты в коллекции. Насколько тяжки для приложения частые вызовы len() и cap()?червяк
Аноним 12/04/23 Срд 18:29:13 #97 №2670433 
>>2670401
len() и cap() это метаданные переменной твоего слайса
https://github.com/golang/go/blob/master/src/runtime/slice.go#L15

Вызывать их тоже самое, что и спиздить поле из структуры, можно зааппендить в какой то слайс новые значения (главное что бы капастили не привысилось), тогда ты увидишь фокус, что сама длина массива как бы уже выше, но len твоей переменной все равно остался прошлым
Аноним 12/04/23 Срд 18:36:17 #98 №2670444 
>>2670433
Какая ещё опасность кроется в превышении capacity? Поинтеры сразу слетают при перераспределении?
Аноним 12/04/23 Срд 18:37:40 #99 №2670445 
>>2670444
Это просто для примера, что у тебя метаданные капасити и длины остались теми же, но при этом фактическая длина выше прошлой
Аноним 12/04/23 Срд 18:37:51 #100 №2670446 
>>2670356
Из не инициализированной map можно читать она ведет себя как пустая, а вот при попытки записи будет паника. Решение крайне хуевое, потому что нужно знать про эту "фичу" когда дебажишь сообщения с паникой.
Аноним 12/04/23 Срд 18:45:54 #101 №2670457 
image.png
>>2669820
ну я стараюсь этих двух вариантов придерживаться, aka единственные два варианта, где перед телом нет отступа и тело визуально не смешивается с сигнатурой. gofumpt помогает.

гугл конечно советует переносами не упарываться https://google.github.io/styleguide/go/guide#line-length
Аноним 12/04/23 Срд 18:47:55 #102 №2670459 
Чё то тяжело ваш го идёт после тайпскрипта.
Аноним 12/04/23 Срд 18:50:07 #103 №2670466 
>>2670446
>>2670457
В чем проблема сделать структуру, если у тебя настолько много параметров? Если больше 3, значит однозначно нужно делать
Аноним 12/04/23 Срд 18:50:37 #104 №2670468 
>>2670444
Мда, поинтер остаётся на старом адресе и можно соснуть крепко.
a := make([]int, 0, 2)
a = append(a, 123)
point := &a[0]
fmt.Println(point, a)
a = append(a, 4, 5, 6)
a[0] = 789
fmt.Println(
point, a)
Аноним 12/04/23 Срд 18:53:28 #105 №2670473 
\ тест \*
Аноним 12/04/23 Срд 18:55:02 #106 №2670476 
>>2670468
А как ты собираешься это хотя бы теоретически реализовать, у тебя физического места нету, а значит нужно делать новые указатели, переносить куда то их, ничего странного в этом поведении нету, это вполне ожидаемо, такое везде
Аноним 12/04/23 Срд 19:01:31 #107 №2670488 
>>2670476
Ожидаемо для тех, кто давно рулит памятью. Питонистам и прочим скриптомакакам не очень ожидаемо.
Аноним 12/04/23 Срд 19:02:47 #108 №2670490 
>>2670488
>Ожидаемо для тех, у кого больше полторы извилины
не благодари
Аноним 12/04/23 Срд 19:08:12 #109 №2670501 
>>2670459
Если надо, могу помочь с чем то в телеге, но скорее буду отвечать на вопрос/ответ как что работает или как что сделать, менторить прям полноценно не смогу, только вопрос-ответ
Аноним 12/04/23 Срд 19:12:07 #110 №2670506 
>>2670501
А потом тред в /b/ с диваноном и травлей вкатуна. Уже было.
Аноним 12/04/23 Срд 19:14:28 #111 №2670510 
>>2670506
Синдром бога, ты?
@mentallyunstabledev
Аноним 12/04/23 Срд 19:19:39 #112 №2670515 
>>2670510
Не я. А там омежку какого-то по приколу обвинили в програмирывании краж денег с карт. Майоры с двача вызывали мамку вкатуна на допрос.
Аноним 12/04/23 Срд 19:33:46 #113 №2670534 
>>2670501
Спасибо. Но думаю зря потрачу только твое время. Я вкатываться во фронт буду. Бэк слабо знаю. И ещё не определился на чем изучать его. Параллельно ковыряю пхп, сишарп и го. Но все же склоняюсь к пхп. Уж слишком мало у меня говакансий
Аноним 12/04/23 Срд 19:37:28 #114 №2670540 
>>2670466
>Если больше 3, значит однозначно нужно делать
а я так не считаю
Аноним 12/04/23 Срд 19:38:55 #115 №2670544 
>>2670540
Тогда не жалуйся, что у тебя миллион аргументов везде выходит лол
Аноним 12/04/23 Срд 19:48:14 #116 №2670559 
>>2670544
таки я не жалуюсь
Аноним 12/04/23 Срд 20:51:35 #117 №2670652 
>>2669565
А в чем конкретно проблема? Перекидываешь из одного сокета в другой через фиксированный буфер в памяти. Что именно у тебя не работает в таком подходе (самому интересно)?
Аноним 12/04/23 Срд 20:54:07 #118 №2670655 
>>2669820
>красиво, читабельно
>голанг тред
))
Аноним 12/04/23 Срд 21:53:46 #119 №2670693 
>>2670466
>В чем проблема сделать структуру, если у тебя настолько много параметров? Если больше 3, значит однозначно нужно делать
Это не имеет отношения к тому, что я писал.
Аноним 12/04/23 Срд 22:10:32 #120 №2670702 
>>2670693
У пастерка задели его эго :XXXXXD
Аноним 12/04/23 Срд 22:38:26 #121 №2670705 
image.png
Сап, двач. Мимо пхп-макака. Работаю в финтехе, не веб-мастер не подумайте.

Есть ли вкат, и нужен ли?
Аноним 13/04/23 Чтв 07:27:45 #122 №2670826 
>>2670705
Вкат есть, но голанг не выучить, потому что никто не пишет как писать реальные приложения на нём.
Аноним 13/04/23 Чтв 14:25:54 #123 №2671114 
>>2670826

Шо за локальные мемы?
Аноним 13/04/23 Чтв 14:54:25 #124 №2671137 
>>2671114
Это нытик вкатун, забей
Аноним 13/04/23 Чтв 14:59:33 #125 №2671143 
>>2671114
Это не мемы, а ограничение инфы по голангу
Аноним 13/04/23 Чтв 16:48:21 #126 №2671258 
>>2671114
Это местный шизоид, которому требуется книга по любой хуйне, можешь забить, там уровень айсикью не превышает полсотни
Аноним 13/04/23 Чтв 17:48:33 #127 №2671314 
кого из интересных людей можно посмотреть?
Вот у жсеров есть очень толковый Илья Климов, стримы которого всегда интересно смотреть, есть ли кто-то подобный у гошников?
Аноним 13/04/23 Чтв 18:16:34 #128 №2671362 
>>2671314
Как можно смотреть лекции по программированию? Как вы это делаете, зумеры? Говорящая голова гнусаво полчаса проговаривает то, что можно прочесть за пять минут, а по диагонали - 9а полторы
Аноним 13/04/23 Чтв 19:08:51 #129 №2671424 
image.png
Объясните, пожалуйста, в чём сакральная прелесть помещения методов в интерфейсы? На пике для достижения результата 1 и 2 надо дополнительный код писать, а можно просто вызвать напрямую в примере 3 и 4. Так зачем в документации рекомендуют делать сложнее? В чём профит?
Аноним 13/04/23 Чтв 19:13:10 #130 №2671429 
>>2671258
Можно подумать, что кто-то что-то не из книг смог предложить. Я привёл пример книги Адама Фримана, где разрабатывается полноценное приложение, а в ответ только насмешки. У вас нет альтернативы или просто не хотите делится из-за жадности. А жадность и глупость всегда идут рядом и явно не признак высокого айсикью.
Аноним 13/04/23 Чтв 19:31:12 #131 №2671450 
>>2670652
Попробовал много всякой хуйни, по итогу сошлись на мнении, что мультипарт нормально не парсится на части в потоке, а прокидывать полностью не получается, потому что мимы файла теряются при такой передаче(хотя сам файл в потоке сохраняется и оперативу не жрёт, только после выгрузки, ты нихуя с ним уже не сделаешь, потому что из архива получилась тыква). Сначала нужно на принимающем серве закинуть мимы, потом файл. Если есть предложения, как это правильно прокидывать, то было бы неплохо описать процесс, потому что все примеры из этого вашего интернета говна кусок, которые сначала прогружают весь файл с мимами в оперативу, потом льют на другой серв/сохраняют у себя на постоянке
Аноним 13/04/23 Чтв 19:51:41 #132 №2671473 
>>2671424
ну на практике в 99% случаев чтобы замокать зависимости и написать юнит тесты, покрыв хуево тестируемые кейсы (сетевые походы или неожиданные ошибки от БД например).
в 1% случаев чтобы иметь код, который может работать с разными имплементациями одного интерфейса, потому что бизнес-логика так легче реализуется. (да-да, в сишке как-то без этого костылилось, но все-таки)
Аноним 13/04/23 Чтв 19:53:39 #133 №2671476 
>>2671424
Конкретно на данном примере это передать сложно. Но представь себе ситуацию, когда у нас ручка идет в базу и еще в несколько мест. Ты как хороший программист будешь писать тесты для этой ручки, соответственно в твоем тесте при этом раскладе тебе придется идти в базу, что не очень хорошо. Куда лучше будет, если твой handler/router не будет зависит от конкретной реализации репозитория а будет просто ссылаться на интерфейс, который должен реализовывать какие-то там методы. В данном случае репозиторий можно очень просто мокнуть и протестировать ручку. Кроме всего прочего когда твоему хендлеру просто нужна хуевина которая условно умеет только Get/Set. То ей по факту вообще похуй на реализацию, это может быть что угодно. База, диск, облако, сесть.
Аноним 13/04/23 Чтв 19:56:27 #134 №2671483 
Screenshot2023-04-1319-43-47.png
Сап. Праздный вопрос. Пишу простенький пет проект, проблема следующая: сил нет очень хочется сделать вот такую абстракцию над мютексами в виде функции, которая принимала бы сам мютекс и какой-то generic-callback, в котором доступы к общей памяти переданный мютекс бы защищал. Моя голова родила что-то вроде пикрелейтед, но оно не очень хочет компилироваться.

Хочу услышать совет, можно ли подобный механизм реализовать вообще и если да, то как это можно эстетичнее сделать.
Аноним 13/04/23 Чтв 19:58:58 #135 №2671486 
>>2671483
ну ты же в качестве колбека передаешь функцию с другой сигнатурой. ...any это не TestRequest.

принимай тупо func() и не еби мозги. в месте вызова пользователь сам решит что оттуда вызвать.

func safe(lock *sync.Mutex, f func())
Аноним 13/04/23 Чтв 20:04:49 #136 №2671489 
>>2671473
>>2671476
Такое мне ещё не понятно. Это инфа с планеты сеньоров-помидоров. Ладно, разгуглю, как бы это упростить для усвоения.
Аноним 13/04/23 Чтв 20:14:11 #137 №2671498 
image.png
>>2671489
Аноним 13/04/23 Чтв 20:21:21 #138 №2671503 
>>2671498
Спасибо, отличный перевод. Сразу стало понятно.
Аноним 13/04/23 Чтв 20:48:23 #139 №2671530 
>>2671486
>f func()
Это такой any для функций? Прикольно.
Аноним 13/04/23 Чтв 20:51:24 #140 №2671533 
>>2671486
Плагин для VS Code дико тупит на всех этих передачах функций.
Аноним 13/04/23 Чтв 20:57:40 #141 №2671544 
Screenshot2023-04-1320-53-51.png
>>2671486
А, значит я не совсем уловил семантику работы сигнатур вместе с any. Просто суть в том, что я хотел бы пробрасывать функции вообще с любой сигнатурой в Locker. Как если бы мой общий тип при каждой конкретной подстановке редуцировался до конкретного типа принимаемой функции. Почитал про дженерики немного и смог родить вот это

type General[Get any, Return any] func(Get) Return

Но теперь проблема в фиксированной арности моего коллбека, ровно один аргумент принять и ровно одно значение отдать. f func() так же выдаёт ошибку типов. Просто хотелось бы сделать что-то вроде как пикрилейтед в плюсах: есть общая сигнатура функции с переменными типов, при подстановке конкретной функции конкретный типы соответственно выводятся. Но судя по всему так сделать не получится, либо выйдет уродство совсем.
Аноним 13/04/23 Чтв 21:08:39 #142 №2671552 
>>2671544
> семантику работы сигнатур вместе с any
В го нет ко- и контрвариантности. Это простой язые. Поэтому []byte и any[] - это разные вещи, func() byte и func() any - тоже разные вещи. Иногда их можно скастовать руками.
Аноним 13/04/23 Чтв 21:14:21 #143 №2671556 
Киньтесь в меня хорошей ссылкой про юнит-тесты, желательно в применении к го.
Аноним 13/04/23 Чтв 21:17:59 #144 №2671559 
>>2671556
Юнит-тесты - антипаттерн.
Аноним 13/04/23 Чтв 21:20:19 #145 №2671560 
>>2671559
Дада, безусловно, и тем не менее.
Аноним 13/04/23 Чтв 21:33:04 #146 №2671568 
>>2671544
В общем решил всё таки просто func() T передавать, замыкать на аргументах и каждый раз явно возвращаемый тип указывать, вышло что-то вроде такого:

func Locker[Return any](mu *sync.Mutex, func() Return) Return {...}

Вроде даже выглядит не очень плохо, благодарю всех за пояснения.
Аноним 13/04/23 Чтв 22:20:28 #147 №2671614 
Оказывается параметр типа можно превратить в any, а затем натравить на него тайп свитч. Ебануться.
Аноним 13/04/23 Чтв 22:21:21 #148 №2671615 
>>2671614
Все это уже мало актуально. Дядя Пайк дал вам дженерики.
Аноним 13/04/23 Чтв 22:23:38 #149 №2671617 
>>2671615
Ну вперёд, сделай жир ьещ any. Это простой язык, и any в нём будет ак туален всегда!

// капча вражда
Аноним 13/04/23 Чтв 22:25:04 #150 №2671621 
>>2671617
Нехороший ты человек конечно. Из-за таких как ты потом нихуя не очевидно с чем функция работает. Сложно тебе по жизни будет
Аноним 13/04/23 Чтв 22:44:37 #151 №2671647 
>>2671621
Функция работает с чем надо. Просто нельзя напрямую сделать тайп свитч от T. А от any можно. Простой же язык. Просто сделай переменную, которая тете будет нужна только для проверки типа, сделай из нее any - и проверяй на здоровье!
А ещё мне очень понравились теги структур. Такие себе атрибуты в простом языке, для простых. Работать с которыми можно только в рантайме, а создать только при компиляции. Шикарный дизайн.
Аноним 14/04/23 Птн 00:05:10 #152 №2671687 
>>2671568
А зачем тебе собственно возвращать какие то там аргументы, почему так сложно сделать функцию которая не имеет в себе аргументов и ничего не возвращает? Это будет удобнее и понятнее лол
Аноним 14/04/23 Птн 00:14:51 #153 №2671691 
>>2671687
> А зачем тебе собственно возвращать какие то там аргументы
Потому что я хочу сделать обёртку над уже имеющимися функциями, которые возвращают определённые значения. Более конкретно, я для себя пишу бек сервера, которые жсонки принимает и возвращает. Вот у меня есть такая функция для обработки конкретного запроса:

func SomeModel(req SomeRequest) SomeResponse { return SomeResponse{} }

Она использует переменные, которые шарятся между другими подобными функциями, потому при вызове я хочу их лочить. Собственно SomeModel превратится лёгкой рукой в

func SafeSomeModel(req SomeRequest) SomeResponse {
return Locker(&mu, func() SomeResponse { return SomeResponse{} })
}

Не очень понимаю, как здесь без возвращаемого значения. На ум приходит только так же переменную завести и потом на неё замыкать, а после выхода возвращать, но это получается не
> удобнее и понятнее
имхо.
Аноним 14/04/23 Птн 00:17:37 #154 №2671692 
543DB929-7DB9-4D29-B3A0-9F40422254FD.png
>>2671691
Мутишь какую то ненужную дичь, которая только добавит лишних строк и лишний уровень абстракции
Аноним 14/04/23 Птн 00:23:04 #155 №2671693 
>>2671692
Ну лично мне полезно было, пока пытался это запилить лучше прояснил для себя систему типов местную. Про ненужные абстракции согласен, но это игрушечный проект, а значит полная свобода для экспериментов.
Аноним 14/04/23 Птн 00:23:21 #156 №2671694 
>>2671691
Так а зачем тебе этот весь оверхед в итоге то?
Аноним 14/04/23 Птн 00:24:37 #157 №2671696 
>>2671694
Эстетично выглядит.
Аноним 14/04/23 Птн 00:26:45 #158 №2671698 
>>2671696
Ни капли, классический mutex.lock() с анлоком выглядит куда чище лишних абстракций и усложнений кода, как и будет отсутствовать оверхед, но лучше всего использовать атомики и синк.мапы, если у тебя дело с переменными и их не слишком много
Аноним 14/04/23 Птн 09:15:05 #159 №2671806 
Go by example в миллион раз лучше Го тура. Ебал в рот этот тур.
Аноним 14/04/23 Птн 10:04:07 #160 №2671833 
>>2671424
А в чем смысл создания переменной с интерфейсом и присвоения ей объекта Nums?
мимо неофит
Аноним 14/04/23 Птн 10:12:08 #161 №2671839 
>>2671806
Только ни тот, ни другой не рассказывают как писать реальные веб-приложения.
Аноним 14/04/23 Птн 10:33:47 #162 №2671847 
>>2671839
Похуй, я же не макака как ты чтобы не разобраться
Аноним 14/04/23 Птн 10:50:47 #163 №2671852 
>>2671839
Попробуй сначала на ноде писать, на express. На ютубе миллион видосов обучающих как вебдрисню писать. Потом на голенге возьми ozzo-routing (очень похоже на express) и перепиши с ноды на гошку.
Аноним 14/04/23 Птн 13:05:57 #164 №2671965 
>>2671691
>Не очень понимаю, как здесь без возвращаемого значения. На ум приходит только так же переменную завести и потом на неё замыкать, а после выхода возвращать, но это получается не
это классический паттерн. Once.Do тебе не возвращает ничего, errgroup.Go возвращает только ошибку, которая используется в самой логике errgroup и так далее. уже вангую варианты "для удобства" с двумя значениями, а еще значением и ошибкой
Аноним 14/04/23 Птн 15:11:52 #165 №2672080 
>>2671314
Если хочешь интересных людей, то смотри в сторону хаскелля, кложи, эрланга, ну раста на худой конец. Там сильные комьюнити.
Аноним 14/04/23 Птн 15:14:36 #166 №2672086 
>>2671530
Нет.
Аноним 14/04/23 Птн 16:08:57 #167 №2672138 
>>2672086
,Жаль.
Аноним 14/04/23 Птн 16:48:14 #168 №2672207 
Нужно ли знать РНР, чтобы устроится голанг-программистом?
Аноним 14/04/23 Птн 16:50:26 #169 №2672209 
>>2672207
От вакансии зависит. Но обычно если и требуется то попадает под раздел "желательно"
Аноним 14/04/23 Птн 17:11:14 #170 №2672235 
>>2672209
Дак желательно голанг, а РНР обязательно
Аноним 14/04/23 Птн 17:30:25 #171 №2672265 
>>2672235
Чаще всего да, но обратное тоже попадаетя
Аноним 14/04/23 Птн 19:35:35 #172 №2672386 
Ну и говённая документация у голанга. На официальном уровне пишут, что за подробностями пиздовать в васянские блоги 10-х годов выпуска.
Аноним 14/04/23 Птн 19:54:14 #173 №2672390 
>>2672386
А про написание реальных веб-приложений вообще ничего не найдёшь
Аноним 14/04/23 Птн 19:56:45 #174 №2672392 
>>2672386
Какой язык - такая и документация.
Аноним 14/04/23 Птн 21:00:56 #175 №2672447 
>>2672386
Это где такое?
Аноним 14/04/23 Птн 21:21:16 #176 №2672457 
>>2672447
https://go.dev/blog/all мб this. кстат кульная фича и не духота.
Аноним 14/04/23 Птн 21:23:56 #177 №2672459 
>>2672457
Какая фича-то? Blog index?
Аноним 14/04/23 Птн 21:24:21 #178 №2672460 
Зашёл в документацию gin, а там вместо документации какие-то рофельные странички из разряда: смотрите, наш фреймворк используют солидные челики. А где описание вашего фреймворка? Туторы?
Аноним 14/04/23 Птн 21:29:42 #179 №2672467 
>>2672460
Gin это вообще рофель. "Посоны, смарите Hello World! Поняна? Ну дальше сами разберётесь. Вот сорцы".
Аноним 14/04/23 Птн 21:32:47 #180 №2672470 
>>2672467
>"Посоны, смарите Hello World! Поняна? Ну дальше сами разберётесь. Вот сорцы".
Ты только что гугель вей.
Аноним 14/04/23 Птн 21:33:12 #181 №2672471 
>>2672459
там лобают всякие секретные приколдесы на гошечке без нудных рассуждений
Аноним 14/04/23 Птн 21:34:02 #182 №2672472 
>>2672471
Типа?
Аноним 14/04/23 Птн 21:34:13 #183 №2672473 
Заебали ныть. Хочется документацию как в жабе или шарпе - пишите на жабе или шарпе.
Аноним 14/04/23 Птн 21:35:40 #184 №2672474 
Чет рил многовато нытиков стало. Какого хуя вкатунье и low level говно с других языков прется сюда? GO для сильных спецов на нем нет вкатунства. Пиздуйте в пхп и не возвращайтесь оттуда
Аноним 14/04/23 Птн 21:38:29 #185 №2672477 
>>2672474
В мвп-треде сказали, что в го самый высокий рейтинг вката
Аноним 14/04/23 Птн 21:38:29 #186 №2672478 
>>2672472
ну тип всякие неочевидные трики вообще со всем. читай там кульней любых доков
Аноним 14/04/23 Птн 21:39:34 #187 №2672481 
image.png
>>2672477
напиздели

дай деняк
Аноним 14/04/23 Птн 21:41:45 #188 №2672487 
>>2672477
Сук, тебя затралили челик. Неиронично тебе советую, иди в пхп тред и если балду не будешь гонять, года через 3 возвращайся
Аноним 14/04/23 Птн 21:48:30 #189 №2672505 
>>2672487
А можно в сишарп-тред?
Аноним 14/04/23 Птн 21:51:56 #190 №2672513 
>>2672505
У тебя талант выбирать неудачные решения. С сисярпом туговато в Рашке будет после ухода микрософта. Может и не будет но есть риск обосраться по итогу пытаясь вкатиться туда
Аноним 14/04/23 Птн 21:53:27 #191 №2672517 
>>2672505
Первым языком лучше питон или пыху или жаву брать. Байтоёбство в го/с/крестах/шарпах без дроча матанов в вузе == лютое падение мотивации от постоянных проблем с пониманием.
Аноним 14/04/23 Птн 21:53:48 #192 №2672518 
>>2672513
А как в Рашке будет с Go после ухода гугла, м?
Аноним 14/04/23 Птн 22:13:42 #193 №2672541 
>>2672513
> после ухода микрософта
А какое отноешние мелкософт в России имеет к рынку шарпа?
Аноним 14/04/23 Птн 22:13:57 #194 №2672542 
>>2672518
Go простой инструмент и не так зависим от экосистемы как огромный неповортливый сисярп энтерпрайз
Аноним 14/04/23 Птн 22:14:18 #195 №2672543 
>>2672541
тебя это ебать не должно
Аноним 14/04/23 Птн 22:15:31 #196 №2672544 
>>2672542
>>2672543
Убедили, буду вкатываться в шарп. Спс.
Аноним 14/04/23 Птн 22:18:25 #197 №2672548 
>>2672478
Сходил прочитал про дженерики. Ничего нового или хотя бы интересного - здесь можно, а здесь нельзя потому что убогий недоязычок не разрешает вам делать это
Аноним 14/04/23 Птн 22:32:22 #198 №2672567 
>>2672544
Только не ной потом что никуда не берут
Аноним 15/04/23 Суб 01:10:41 #199 №2672663 
>>2672567
На шарпе крайне много вакансий в рф, на гошке считай их вообще нету, сравнивая с шарпом.
Но на шарп если джуном идти, то там фуллстек в основном
Аноним 15/04/23 Суб 06:56:09 #200 №2672696 
>>2672663
>На шарпе крайне много вакансий в рф
Повеселил. Там как с питоном если левый шлак отсеить который к твоей области деятельности отношения не имеет то остается не так уж и много

>на гошке считай их вообще нету
Так гоха и не для тупых вкатунов, сто раз уже поясняли.
Аноним 15/04/23 Суб 08:06:11 #201 №2672711 
>>2672696
Заебал пиздеж про шарпы на дваче, особенно от вчерашних пхпшников
Вот вакансии на шарп веб в москве с фильтром по названию:
461 вакансия «(C# or net) NOT unity NOT desktop NOT QA NOT xamarin NOT gamedev NOT wpf NOT winforms»
Покажи сколько на го? Там половина выдачи будет яндекс.го и танцовщицы
Аноним 15/04/23 Суб 08:43:45 #202 №2672722 
>>2672711
Ты еблан тупорылый, даже чатгпт и то лучше контекст понимает чем ты. Мы не в вакууме сравниваем шарп и го а конкретно для дауна вкатуси выше. И в контексте этого что шарп что го неудачные выборы.
Аноним 15/04/23 Суб 14:09:25 #203 №2672907 
image.png
>>2672541
>А какое отноешние мелкософт в России имеет к рынку шарпа?
Для шарпа есть две IDE и обе компании ушли. inb4: VS Code не IDE, там нехватает всяких ассистентов для ентерпрайз фигни
Аноним 15/04/23 Суб 14:30:52 #204 №2672919 
>>2672907
Пользуюсь Иде от второй компании, не знаю, куда и откуда они ушли, меня это не касается. ЧЯДНТ? А кабанчик могут и прдскочить с Корп. лицензиями.
Аноним 15/04/23 Суб 14:32:38 #205 №2672921 
>>2672907
Кстати, чем vs камунити принципиально хуже проф?
Аноним 15/04/23 Суб 14:44:27 #206 №2672932 
>>2672919
>ЧЯДНТ?
Пиратишь.

>Кстати, чем vs камунити принципиально хуже проф?
ASP.NET и прочий энтерпрайз не поддерживается.
Аноним 15/04/23 Суб 16:26:19 #207 №2672981 
>>2672932
>Пиратишь
Да похуй. Я использую - возможность использования есть, и похуй кто там ушел кто нет. Может ещё и Винду не использовать? Я с виндо был когла мелкософта здесь ещё не было, я с ней и сейчас, когда мелкософта уже нет. И половина страны таких, ну кроме червей-зумеррв, конечно.
Аноним 15/04/23 Суб 18:41:08 #208 №2673062 
Товарищи, совершенно ослеп от мастурбации. Ткните меня носом, где в документации описаны правила написания этой самой документации к коду?
Аноним 15/04/23 Суб 18:58:51 #209 №2673075 
Мне кажется вы меня обманываете, что в голанг не берут вкатунов, а сами хотите занять моё место.
Аноним 15/04/23 Суб 19:05:04 #210 №2673082 
>>2673075
Чел, учи любой язык, хоть голанг. Перекатиться на другой потом будет очень легко. Работы для вкатунов действительно нет, ибо требуют хотя бы 2-3 года опыта в разработке на любом направлении.
Аноним 15/04/23 Суб 19:18:04 #211 №2673102 
>>2673082
Я собираюсь устраиваться уже этой осенью, а ни когда-то потом. Вообще, хотел уже в мае, но понимаю, что уже не успею.
Аноним 15/04/23 Суб 19:26:30 #212 №2673117 
>>2673075
Вкатуны нужны, только чтобы заплатить шекели барыгам со всяких манякурсов по пограмированию, больше они нахуй никому ненужны (тут гуглометы сокращают синьоров тысячами, а эти в го в рф без опыта собрались вкатываться, лол)

учите лучше станки чпу, скоро будет спрос
Аноним 15/04/23 Суб 19:27:53 #213 №2673122 
>>2673102
Тогда ищи по знакомствам. Вкатунов надо менторить жестко. Это на пыхе тебе добрый дяденька мидол будет полгода сопельки подтирать, а в гошке кровавый тырпрайс, там не до разжёвывания очевидных вещей.
Аноним 15/04/23 Суб 20:29:06 #214 №2673220 
>>2673075
А ты думаешь почему во всех рейтингах зарплат голанг в топе? Как раз из-за малого количества джунов с низкими зп.

>>2673102
Тяжело тебе будет вкатиться. Судя по твоим постам у тебя туго с восприятием инфы. Я сомневаюсь что даже в пхп сможешь вкатиться

>>2673122
Еще варик хорошего ментора за деньги найти. Некоторые даже реальные задания дадут со своей работы. Но сомневаюсь что у тутошных нищих вкатусь есть деньги
Аноним 15/04/23 Суб 21:13:34 #215 №2673254 
>>2673117
> станки чпу
Вот их как раз нейросети будут программировть.

апломб
Аноним 16/04/23 Вск 09:51:38 #216 №2673505 
>>2672696
>Так гоха и не для тупых вкатунов, сто раз уже поясняли.
Вообще-то для тупых, го создавался для дещевых индусов лол, которые способны чуть ли не копипастом ебашить микросевисы, над ними стоит погонщик поумнее, который будет их бить палкой по рукам, если что не так.
Аноним 16/04/23 Вск 11:48:13 #217 №2673577 
>>2673505
Задачи которые решаются на го не для новичков. Только дауны судят сложность работы по инструменту лол. Я за последний год кодил на расте, го и ноде. И задачи на ноде той же бывали сложнее чем на расте. А когда на с++ том же работал то кучу тупых вкатунов набирали несмотря на сложность самой сишки
Аноним 16/04/23 Вск 11:57:38 #218 №2673582 
>>2673577
Да да, сложнейшие задачи по типовым паттернам для микросервисов.
Ухх блять, сложнааа
Аноним 16/04/23 Вск 12:02:28 #219 №2673585 
>>2673582
> Тупой вкатун занимается самоутешением
Аноним 16/04/23 Вск 12:05:09 #220 №2673586 
>>2673585
Причина тряски? Я на твое место говнаря не претендую, успокойся.
По факту тебе сказать нехуй.
Аноним 16/04/23 Вск 12:07:15 #221 №2673587 
>>2673586
Да да, чем меньше тупых вкатунов тем лучше. И слава богу что гоха на уровне вакансий уже их отсеивает. Так что вкатывайтесь, не стесняйтесь. Крылышки все равно обломают лол
Аноним 16/04/23 Вск 12:38:54 #222 №2673598 
>>2672981
>Да похуй.
Антону с двачей может и похуй, а для крупной компании такое не катит.
Аноним 16/04/23 Вск 13:04:42 #223 №2673617 
>>2673598
А эти самые крупные компании.. Они сейчас с нами? В этом треде?
Аноним 16/04/23 Вск 14:10:20 #224 №2673705 
image.png
>>2673617
Аноним 16/04/23 Вск 14:23:12 #225 №2673723 
>>2673617
Хантеры из крупных компаний сидят в мвп-треде
Аноним 16/04/23 Вск 18:48:30 #226 №2673982 
Двач, а как работает репликейшон в Го?
https://setapp.com/how-to/use-go-with-mysql

Ну то есть как сделать так шоб читать со слейвов писать в мастеры? В мануале только

sql.Open("mysql", "root:<yourMySQLdatabasepassword>@tcp(127.0.0.1:3306)/test")
Аноним 16/04/23 Вск 19:00:05 #227 №2673994 
>>2673723
Там только эйчарки, которым похуй на домашнее пиратство. На него всем похуй, всё равно почти весь доход с продажи лицензий идёт от организаций.
Аноним 16/04/23 Вск 19:01:38 #228 №2673995 
>>2673982
upd: я правильно понимаю что нужно сделать connect к слейвам вручную, а потом при операции "чтение" выдавать рандомный из коллекции конекшонов?
Аноним 16/04/23 Вск 19:03:51 #229 №2673998 
>>2673994
Я так и не смог ломануть голэнд
Аноним 17/04/23 Пнд 00:54:06 #230 №2674258 
>>2673995
>upd: я правильно понимаю что нужно сделать connect к слейвам вручную, а потом при операции "чтение" выдавать рандомный из коллекции конекшонов?
В целом - да. Два пула, один RW, второй RO. Вопрос как внутри балансировать, как простейший вариант round-robin сойдёт.
Аноним 17/04/23 Пнд 18:37:41 #231 №2674798 
Подкиньте идей для пет-проекта
чтобы было не уровня хеллоу ворлд но и не уровня написать постгресс с нуля
чтобы обязательно внутри были алгосики
Аноним 17/04/23 Пнд 19:30:29 #232 №2674826 
>>2674798
> чтобы обязательно внутри были алгосики
Клон литкода.
Аноним 17/04/23 Пнд 20:00:45 #233 №2674855 
>>2674798
Я планировал написать бэк-сервис и фронт на шаблонизаторах, они общаются между собой через REST API и gRPC. Но потом мне сказали, что в голанг вкатунов не берут и я расстроился. Теперь думаю куда идти: в РНР или сишарп. Оба языка мне не нравятся. Первый переделали под джаву с корявыми инструментами. Второй загажен синтаксическим сахаром.
Аноним 17/04/23 Пнд 20:12:59 #234 №2674866 
>>2674826
круто но боюсь что будет много фронтенда
а мне с ним совсем не хочется ебаться
Аноним 17/04/23 Пнд 20:29:50 #235 №2674884 
>>2674855
На шарпе тоже не особо в цене вкатуны. Но в целом так про все можно сказать. Так что единственный реальный вариант пхп и есть. Ну и 1с еще
Аноним 17/04/23 Пнд 20:32:45 #236 №2674887 
>>2674884
В РНР треде тоже сказали, что не нужны
Аноним 17/04/23 Пнд 20:34:39 #237 №2674890 
>>2674887
PHP это последний рубеж. Если и на нем не нужны то остается только... 1с.
Аноним 17/04/23 Пнд 20:46:41 #238 №2674904 
>>2674890
А после 1С возьмут на голанг?
Аноним 17/04/23 Пнд 20:50:45 #239 №2674908 
>>2674904
Нет. 1С - это дорога в один конец.
Аноним 17/04/23 Пнд 21:03:58 #240 №2674918 
>>2674904
Если и возьмут то на общих основаниях. То есть никакого преиущества перед остальными вкатунами не будет. С пхп еще можно что-то как-то конвертировать.
Аноним 17/04/23 Пнд 22:34:40 #241 №2674976 
>>2674904
Та сам не сможешь. 1С отформатирует твои мозги раз и навседа. На низком уровне.
Аноним 17/04/23 Пнд 22:45:20 #242 №2674984 
>>2674866

Сделай без фронтенда. Пользователь загружает файл с кодом, выбирает компилятор, берет данные из файла инпут достает из файла аутпут. Ну или из сосноли, как ему больше нравится.

А задачи храни в виде наборов интутов и аутпутов
Аноним 18/04/23 Втр 00:58:50 #243 №2675040 
>>2674866
да там три <input> на страничке - два текста и кнопка. ну и один текст нужно будет научиться заполнять ответом от сервера. вот реально задача для стажера, чтобы он познакомился с фронтом минимально.
Аноним 18/04/23 Втр 02:23:31 #244 №2675055 
>>2674866
Мало что можно написать онли бекенд, можешь написать низкоуровневую хуйню, что бы просвапать регистры и заводить указатели на C функцию прямо из гошки (сейчас оно требует мост пастить, что дико неудобно)
Аноним 18/04/23 Втр 13:20:14 #245 №2675319 
Голангуны, в тысячный про вкат спрошу. С техническим бэкграундом в виде ковыряния железок на C, написания сетевых приложух на C++/Qt, создания небольших API-шек с БД (без всяких брокеров, редисов) на Python таки смешно вкатываться в Go и попустят, или опыт немного релевантен?
Аноним 18/04/23 Втр 13:46:54 #246 №2675342 
>>2675319
Опыт релевантен только коммерческий и только в компании, все остальное - никому не нужный мусор, тебя просто будет отсекать еще хрюши, а не техи
Аноним 18/04/23 Втр 22:48:02 #247 №2675787 
image.png
Что произойдет при вызове y := append(x, 3)? Почему получается в результате [0, 1, 2, 4]?
Аноним 19/04/23 Срд 00:33:46 #248 №2675847 
>>2675787
он добавит 3, но после второго апенда
Копировать элементы слайса в другой слайс в Go просто, но это нужно делать с помощью встроенного copyили же appendфункции. Если вы просто присвоите существующий срез новой переменной, срез не будет дублироваться.

Обе переменные будут ссылаться на один и тот же слайс, поэтому любые изменения значения слайса будут отражены во всех его ссылках. Это также верно при передаче слайса в функцию, поскольку в Go слайсы передаются по ссылке.
https://()freshman.tech/snippets/go/copy-slices/
Аноним 19/04/23 Срд 00:34:25 #249 №2675848 
>>2675787
он добавит 3, но после второго апенда
Копировать элементы слайса в другой слайс в Go просто, но это нужно делать с помощью встроенного copyили же appendфункции. Если вы просто присвоите существующий срез новой переменной, срез не будет дублироваться.

Обе переменные будут ссылаться на один и тот же слайс, поэтому любые изменения значения слайса будут отражены во всех его ссылках. Это также верно при передаче слайса в функцию, поскольку в Go слайсы передаются по ссылке.
https://()freshman.tech/snippets/go/copy-slices/
Аноним 19/04/23 Срд 00:45:28 #250 №2675854 
>>2675847
>он добавит 3
Куда? Ниже вывод этого кода. [0, 1, 2, 4]
Аноним 19/04/23 Срд 01:08:33 #251 №2675863 
>>2675854
fmt.print подними выше второго апенда
Аноним 19/04/23 Срд 13:07:56 #252 №2676148 
image.png
>>2675787
Аноним 19/04/23 Срд 13:27:04 #253 №2676160 
>>2676148
Аппенд идет у тебя на len()+1, а длина твоего Х = 0, додумаешь дальше сам? Аппенд не изменяет метаданные массива, но возвращает их
Аноним 19/04/23 Срд 14:18:45 #254 №2676213 
>>2676160
да это не вопрос был. я конечно пример не рассосал
Аноним 19/04/23 Срд 20:03:35 #255 №2676463 
Братишки, как устанавливать пакеты в голанге, чтобы они были доступны для импорта хоть у чёрта на рогах? Например, я могу слелать import "fmt" в любом .go файле, а import "github.com/atotto/clipboard" уже требует какого-то нездорового пердольства go.mod. Как уравнять васянские пакеты с системными?
Аноним 19/04/23 Срд 20:11:43 #256 №2676473 
>>2676463
Ты ведь понимаешь, что это сделано специально?
Аноним 19/04/23 Срд 20:15:39 #257 №2676475 
>>2676473
Это не понимаю. Я понимаю, что пакет нужен в куче файлов, а мне не охота делать "проекты"тм на скрипты уровня хелло ворлд.
Аноним 19/04/23 Срд 20:38:50 #258 №2676503 DELETED
>>2676475
Просто используй питон.
Аноним 19/04/23 Срд 20:40:03 #259 №2676506 
бля пхп макак на связи, решил пополнить стек еще и Go, сам бывший вкатун, уже месяцев 7 опыта.
Скчал значит курс по GO, в ожидании что меня научат как можно интегрирывать Go с пыхой как json чики получать и отправлять и тд.
по началу все было легко синтаксис и тп и тут началась лютая дрочь с математикой. Определите периметр/площадь/ решите ебаное уровнение, определить кол-во корней и тп.
Неужели в GO нельзя быть крудошлепом и просто в распаралеливать запросики в БД.

Кстати когда начал вкатываться, мне посоветовали начать с питона. Начал тогда смотреть курс по питону на ютубе и когда началась подобная хуйня с математикой я дропнул т.к. не понял нахуя все это вообще нужно и занялся версткой.
Аноним 19/04/23 Срд 20:43:14 #260 №2676509 
>>2676503
Его и использую, но есть узкие пёзды места с лютым матаном, где голанг в разы быстрее гоняет байты.
Аноним 19/04/23 Срд 20:55:42 #261 №2676521 
>>2676506
Go - это типа C. Прежде чем крудошлёпить, придётся фреймворк переизобрести.
Аноним 19/04/23 Срд 21:01:01 #262 №2676527 
>>2676521
Да я к этому готов, сейчас посмотрел вообще че за курс скачал, он вообще для студентов каких то.
Чел рассказывает про условные конструкции, типы данных а задачки задает связанные с матаном.
Я такое не вывезу. Буду искать что то чисто с web разаботкой на GO связанное.
Аноним 19/04/23 Срд 21:05:49 #263 №2676535 
>>2676506
Можно, конечно, просто ты взял какой-то курс от шизов, которые дрочат на базу и классический подход к обучению. Это почти то же, что в вузиках, когда не можешь сдать лабу по программированию, потому что не осилил какую-то залупу из математической физики, хотя само программирование знаешь лучше препода.
Аноним 19/04/23 Срд 21:10:49 #264 №2676542 
>>2676535
спасибо анончик, я думал меня тут попустят если честно.
Теперь я точно уверен что просто не туда полез, жаль что 2 дня потерял на это.
Аноним 19/04/23 Срд 21:25:48 #265 №2676557 
>>2676542
Это давняя проблема со многими курсами, тянется ещё из 80-х, когда это ещё имело смысл. Сейчас можно смело скипать подобное. Тысячи новичков вообще забросили программирование, потому что вместо самого программирования их пичкают ёбнутыми математическими задачками.
Аноним 20/04/23 Чтв 00:03:21 #266 №2676694 
>>2676463
Используй IDE, Люк.
Аноним 20/04/23 Чтв 06:39:21 #267 №2676744 
>>2676463
>а import "github.com/atotto/clipboard" уже требует какого-то нездорового пердольства go.mod
т.е. тупо сделать go mod tidy?
Аноним 20/04/23 Чтв 19:05:11 #268 №2677346 DELETED
>>2676509
Испокон веку такое на крестах писалось. Можно с питоном скрестить через pybind11.
Аноним 22/04/23 Суб 01:34:42 #269 №2678363 
Какой же простой язык, яебу. Из функции можно вернуть два значения. И можно их передать в функцию с двумя значениями. А в функцию с тремя - нельзя!
Аноним 22/04/23 Суб 05:16:50 #270 №2678381 
image.png
Возглавляется неким "Робом Пайком", который не знает:
о существовании модели акторов с разделяемой памятью
о динамической линковке
об обобщенном программироние и о о функциях map, filter, reduce
и вообще судю по убожеству первого пейпера (и это-то после 30 лет опыта в белл лабс!) выдал какой-то полуси с корутинами и в дизайне яп не особо рубит
если бы не Дмитрий Вьюков, поднявший в свое время ГЦ голанга из той параши, где он находился, язык так и остался бы никому не нужным
Хуеватая система импорта, зашивающая в имя пакета путь в рептозитории, а если надо обратиться к защищенной репе, то скреды прописать ЯВНО В СТРОКЕ ИМПОРТА
ВНЕЗАПНО nil, переданный как значение в тип unterface{} перестает равнятся своему же значения
Язык объективно хуевый, чего стоит одна система типов, требующая постоянных подсказок в виде явного объявления типа над функцией. Вывод типов? Ленивые вычисления? Автор так и остался в Bell Labs середины 70-х.
Нет постоянного стандарта на язык, а только какие-то "отчеты".
И многое другое!
Аноним 22/04/23 Суб 05:37:59 #271 №2678382 
>>2678381
> Аряяя тут нет ненужной хуйня которая никому не всралась значит хуйня
Макака с эффектом даннинга Крюгера не палится
Аноним 22/04/23 Суб 07:04:55 #272 №2678386 
>>2678363
А что ты ожидал? Что у тебя в функции внезапно 3й аргумент родится магией?
Аноним 22/04/23 Суб 09:45:35 #273 №2678408 
>>2678386
Я ожидал, что два это два, и я могу просто добавить третий.
Аноним 22/04/23 Суб 09:55:55 #274 №2678416 
>>2678408
Алсо нашел совершенно шикарную дискуссию на гитхабе. Типа, а давайте так сделаем? А ему в ответ - ничего мы делать не будем, потому что или нахуй. Как всё-таки ЭТО могло стать популярным?
Аноним 22/04/23 Суб 11:32:45 #275 №2678448 
>>2678416
>А ему в ответ - ничего мы делать не будем, потому что или нахуй
база
Аноним 22/04/23 Суб 16:13:25 #276 №2678694 
image.png
>>2678416
>Типа, а давайте так сделаем? А ему в ответ - ничего мы делать не будем, потому что или нахуй.
Все правильно сказал. Это совершенно минорная фича чтобы тратить на нее время.
капча тоже намекает что тебе стоит пойти нахуй
Аноним 22/04/23 Суб 19:38:37 #277 №2678805 
>>2678694
Да в этом языке любой QoL - минорная фича
Аноним 22/04/23 Суб 22:00:05 #278 №2678881 
>>2678805
Таков путь.
Аноним 24/04/23 Пнд 19:27:31 #279 №2680270 
image.png
image.png
image.png
Сап голангач. Имеется директория с файлами main.go (пик 1) и suite.go (пик 2). ChatGPT с VSCodом утверждают, что всё заебись, будет работать. При запуске выдаёт ошибки, представленные на пик 3. Что сделано не правильно? Как вынести определения функций за пределы main.go, оставив только вызовы?
Аноним 24/04/23 Пнд 19:45:46 #280 №2680285 
>>2680270
go mod init pack_name
go run pack_name
бля...
Аноним 25/04/23 Втр 01:06:56 #281 №2680487 
>>2665535
Мягкие викинули линупс с maui, где он изначально и был, замарин.формс.
Это очень похоже на:
https://ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish

Мягкие также продвигают свою ось, новый дотнет уже не дружит с 7, хотя поддержка только недавно прекратилась. Хотя сейчас это прям тренд, но раньше языки так быстро по ОС не скакали. Если ты веб макака, то пох, но если есть клиенты, то гемор. Нахера двигать свою ось через разработку, денег мало чтоль.

ООП говнище само по себе, усложнение на равном месте. Писать легко, сопровождать гемор.

Анальная привязка к IDE, так как из-за ооп хер разберешься что тысячи пустых классов делает и что подключать. А так как классов тысячи, нахвание у них на четверть экрана.

Таскать всюду вирт машину, если не тоскать получи под две сотни мб хеллоу ворд у которого будут все равно еще какие-то файлы помима экзешника, в общем, хер поймешь в общем.

Но у го ппц какой кривой дизайн языка, я бы лучше раста накатил.
Аноним 25/04/23 Втр 07:31:05 #282 №2680525 
>>2680270
go run main.go suite.go
или более классически go run .
Аноним 25/04/23 Втр 14:27:12 #283 №2680818 
>>2680487
Семёрку далеихпом не поддерживает. И вообще проблемы бы не было, не будь детсятка говном, а 11 - отборным говном.
Аноним 25/04/23 Втр 17:51:59 #284 №2681078 
show.png
>>2680818
>далеихпом
Что это?
Аноним 25/04/23 Втр 23:26:40 #285 №2681344 
>>2681078
Даже хром.
Аноним 26/04/23 Срд 03:37:21 #286 №2681464 
>>2681344
Ппц тебя скрючело.
Так то срать какой продукт что не поддерживает, хром монополист, может говнить себе в штаны, но вот эта тенденция языков, такого раньше (лет 10-15 назад) не было, чтоб в момент сразу все к херам бросать. Забавно что го все еще поддерживает 7.
Аноним 26/04/23 Срд 08:14:02 #287 №2681511 
Пацаны, я тут смотрел 10-летней давности проект на пыхе и меня вдруг осенило.
https://github.com/ornicar/lichess-old
Обратите внимание на файлы deps и deps.lock.
Очевидно, что это разрабатывалось до появления композера.
Ничего не напоминает?
А что, если гошке не хватае НОРМАЛЬНОГО менеджера пакетов/зависимостей? Или текущее состояние вещей вам норм?
Аноним 26/04/23 Срд 09:43:56 #288 №2681559 
>>2681511
>что, если гошке не хватае НОРМАЛЬНОГО менеджера пакетов/зависимосте
Ну напиши, ёпт
Аноним 26/04/23 Срд 09:48:06 #289 №2681561 
>>2681464
Шарп - это не только язык, но и платформа, виртуальная машина. Вот есть моноч к примеру - он идёт на семёрке?
Аноним 26/04/23 Срд 09:56:45 #290 №2681566 
image.png
>>2681559
Так я почву и пробиваю, стоит ли этим заниматься или и так всё нормально.
Аноним 26/04/23 Срд 09:59:27 #291 №2681567 
>>2681566
Ну вот тебе самому как?
Аноним 26/04/23 Срд 11:10:43 #292 №2681619 
>>2681511
Чем тебя go.mod не устроил?
Аноним 27/04/23 Чтв 15:54:21 #293 №2682688 
Подскажите, как правильно установить пакет github.com/google/gopacket
go get и go install в данном случае не работают.
Аноним 27/04/23 Чтв 17:10:31 #294 №2682789 
Кто нибудь в Go перекатывал с php? Че-то у меня не получается, очень редко на собесы зовут. Имею только 2 года опыта в резюме.
Мб пририсовать еще годик полтора?
Аноним 27/04/23 Чтв 21:11:23 #295 №2683031 
>>2682789
А ты уверен, что у тебя проблема в годах опыта, а не в том, как этот опыт описан? Если что «пук срень пыха ну так пук лара пастил» не подходит, тебе нужно во всех интимных деталях объяснять чем ты занимался, какие паттерны использовал, технологии (даже самые смешные и простые)
Аноним 27/04/23 Чтв 22:34:09 #296 №2683055 
>>2682688
а зачем тебе устанавливать его?

если там бинарник, то делаешь go install github.com/google/gopacket@latest
если не бинарник, то тупо добавляешь его импортом в код и делаешь go mod tidy, он автоматом скачивается в кеш покетов
Аноним 28/04/23 Птн 12:48:44 #297 №2683386 
>>2683031
>чем ты занимался, какие паттерны использовал, технологии (даже самые смешные и простые)
Пиздец ты жалкий кретин. Такую хуйню обычно говно из гнойный аутсорс-бодишопов пишет в своих сраных резюме
Аноним 28/04/23 Птн 15:00:22 #298 №2683515 
Всем привет. Есть несколько сервисов, штук 10. Все они ходят друг в друга. Как можно их красиво инициализировать? Например сервис A ходит в сервис B, а сервис B ходит в сервис A. Код писал не я, но мне к сожалению нужно его фиксить. Как можно это реализовать кроме как через публичные поля структуры?
Аноним 28/04/23 Птн 16:01:17 #299 №2683586 
>>2683515
инициализировать что? это сервисный слой в коде? ну самое простое это вместо походов друг в друга сделать чтобы они ходили в общую зависимость
Аноним 28/04/23 Птн 19:17:55 #300 №2683752 
Сап голангач. Есть два стула.
Первый: забилдить фронтенд, бэк без апи, скомпилировать фронт + бэк в один бинарь.
Второй: забилдить фронтенд, скомпилировать бэк с апи, фронт с бэком общаются через апи.
На какой стул сейчас принято садиться в промышленной разработке?
Аноним 28/04/23 Птн 20:04:30 #301 №2683801 
как же ебет строгая типизация, это писда.
а еще интерфейсы нихуя не понятны.

type geometry interface {
area() float64
perim() float64
}
type rect struct {
width, height float64
}

func measure(g geometry) { //тип geometry
fmt.Printf("%T: %+v\n", g, g)
fmt.Println("area:", g.area())
fmt.Println("perimiter:", g.perim())
}

r := rect{width: 3, height: 4}
c := circle{radius: 5}

measure(r) // тип rect
как же блядь это странно и не интуитивно понятно.
Аноним 28/04/23 Птн 21:20:42 #302 №2683894 
>>2683752
На второй стул. Бэк ничего не знает о фронте, фронт деплоится отдельно на какой-нибудь Nginx.
Аноним 28/04/23 Птн 21:36:40 #303 №2683903 
>>2683894
Т.е. оба крутятся на локалхосте, но бэк там и остаётся, а к фронту можно стучаться из интернетов через реверс проксю? Первый стул считается эталонным говнокодом или допустим в отдельных случаях?
Аноним 28/04/23 Птн 21:49:41 #304 №2683912 
>>2683903
Хост не обязательно один и тот же, это смотря как построить инфраструктуру. Бэк в любом случае будет доступен из интернета в обход фронта, какими проксями ни обмазывайся, фронт же должен их как-то дёргать с машины пользователя.
Первый стул сам по себе не говнокод, просто инфраструктура будет менее гибкой, но это не всегда критично.
Аноним 28/04/23 Птн 21:50:02 #305 №2683913 
>>2683903
>Первый стул считается эталонным говнокодом или допустим в отдельных случаях?
конечно же допустим. тот же pprof сервит страничку со ссылками https://cs.opensource.google/go/go/+/refs/tags/go1.20.3:src/net/http/pprof/pprof.go;l=412
>>2683752
>бэк без апи
может я чего-то не понимаю но как ты с ним общаться будешь??
Аноним 28/04/23 Птн 21:51:19 #306 №2683914 
>>2683913
> может я чего-то не понимаю но как ты с ним общаться будешь??
Будет как в пхп вместо жсонов отдавать срендеренные на сервере хтмлы.
Аноним 28/04/23 Птн 21:56:14 #307 №2683917 
>>2683914
ну в SSR ничего плохого самого по себе нет, но помимо этого там же все равно же апишка будет для всяких кнопок формочек тили-вили
Аноним 28/04/23 Птн 21:58:47 #308 №2683920 
>>2683913
>>2683914
Нет. Готовый в прод фронтенд реакта запихивается в бинарь, а request-response в контекст запросов, минуя жсоны.
Аноним 28/04/23 Птн 22:08:15 #309 №2683930 
>>2683920
То есть вместо жсонов будет x-www-url-form-encoded? Это тоже API, хоть и ограниченное примитивными key-value парами.
Аноним 28/04/23 Птн 22:13:06 #310 №2683940 
>>2683930
>>2683917
Спасибо за ответы. Сам на второй сяду, заказчика на колени посажу. Первый для петов оставлю. Больно уж его просто деплоить на своём сервере.
Аноним 29/04/23 Суб 00:10:59 #311 №2684063 
>>2683801
> как же блядь это странно и не интуитивно понятно.
Что в этом непонятно? Разве так сложно понять, что интерфейс в твоем случае означает просто условие, что передаваемый тип должен иметь эти функции, ВСЕ
Дай угадаю, питон-макака? Только там настолько тупые могут быть
Аноним 29/04/23 Суб 00:12:51 #312 №2684064 
>>2683386
Ну кто то жалкий, а кто то просто ищет работу. Как бы тебе не нравилось, но это суровая реальность, к которой тебе придется привыкать и изучать, ибо на собесах как раз и спрашивают про них
Аноним 29/04/23 Суб 00:44:40 #313 №2684072 
>>2665435 (OP)
> от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других

Их предки написали Библию.
Аноним 29/04/23 Суб 02:25:52 #314 №2684094 DELETED
>>2684072
>>Библию
>>греч. βιβλίον — «книга»;
Проблема с названием переменных
>>Нулевой год и «нулевой год до н. э.» отсутствует в григорианском и юлианском календарях
и ошибка на единицу

>>Их предки написали Библию.
похоже на правду
Аноним 29/04/23 Суб 11:36:43 #315 №2684214 
image.png
Столкнулся с ложным сообщением об ошибках импорта в VSCode. У меня есть общая директория, которая содержит вложенные директории с проектами. Когда открываю отдельно какую-то вложенную, то всё в порядке. Когда открываю общую директорию, то в каждом из проектов возникает пикрил сообщение, при этом код работает исправно. Как можно это пофиксить? Иногда цепляю шаблоны из других проектов, а эта ошибка мешает.
Аноним 29/04/23 Суб 12:08:40 #316 №2684233 
>2
Они правда гордятся наличием try/catch?
Аноним 29/04/23 Суб 12:23:43 #317 №2684243 
16695801966470.png
image.png
>>2684214
Добавил "go.gopath": "C:\\Users\\Dvach\\go\\pkg\\mod". Нахуя это гошное расширение впихивает src в путь? Модули же лежат в C:\Users\Dvach\go\pkg\mod
Аноним 29/04/23 Суб 13:29:50 #318 №2684304 
>>2684214
>. У меня есть общая директория, которая содержит вложенные директории с проектами
гоплс издавна не мог работать с проектами где несколько go.mod в разных папках. для этого https://go.dev/doc/tutorial/workspaces добавляли
Аноним 29/04/23 Суб 13:41:22 #319 №2684324 
>>2684304
Благодарю, работает. А нельзя как-то изменить $GOPATH/src на $GOPATH/pkg/mod? В \.vscode-oss\extensions\golang.go-0.38.0\dist\debugAdapter.js об этом что-то есть, но я не шарю в JS:

/
Given a remotePath, check whether the file path exists in $GOPATH.
This can be either in $GOPATH/pkg/mod or $GOPATH/src. If so, return that path.
remotePath can be something like /usr/local/gopath/src/hello-world/main.go
and relativeRemotePath should be hello-world/main.go. In other words,
relativeRemotePath is a relative version of remotePath starting
from the import path of the module.
*/
Аноним 29/04/23 Суб 14:15:14 #320 №2684347 
>>2665435 (OP)
Платиновый вопрос - с нуля стоит вкатываться в голанг разработку? Хочу грузить жсоны. Вышки нет, так что вариант со стажировками в МЯСКОТЕ не подходит
Аноним 29/04/23 Суб 14:30:51 #321 №2684363 
5yv6JG8.gif
image.png
>>2684347
>с нуля стоит вкатываться в голанг
>Вышки нет, так что вариант со стажировками в МЯСКОТЕ не подходит
Аноним 29/04/23 Суб 14:43:22 #322 №2684374 
>>2684363
Я молодой, шутливый, мне все легко
Аноним 29/04/23 Суб 17:12:46 #323 №2684496 
>>2684233
Отсутствием. Да, правда. Они гордятся всем, его у них нет. Вот дженерики теперь есть, и казалось бы, зрада зрадой, но есть повод для перемоги - нельзя вырабить обобщённый метод, неользя тип с констрейнтом мспольовать иначе, как в заголовке.
Аноним 29/04/23 Суб 20:51:56 #324 №2684605 
>>2665440
Хм R разве не аналог Python?
Аноним 29/04/23 Суб 21:09:38 #325 №2684617 
anon.jpg
>>2665675
>>2665674
>большие бинарники
в go штоле нет динамически линкуемых либ (dll / so)?
Аноним 29/04/23 Суб 21:28:52 #326 №2684629 
>>2684617

http://harmful.cat-v.org/software/dynamic-linking/

В го их не любят, чекни
Аноним 29/04/23 Суб 23:04:32 #327 №2684706 
>>2684617
Го - простой язык без излишеств, что неясно?
Аноним 29/04/23 Суб 23:08:14 #328 №2684707 
Джва вопроса
Почему в языке, который расчитан на быстроту выполнения нет различных флагов оптимизации в ущерб скорости компиляции, как в других ЯПах?
Почему нет настроек гц уровня жабы и создатели сами решают это заместо тебя?
Понятно, что язык создавался что бы быть простым как палка, но погромисты не дауны же.
Аноним 30/04/23 Вск 00:07:37 #329 №2684737 
>>2684707
минимализм
Аноним 30/04/23 Вск 01:05:11 #330 №2684786 
>>2684707
Язык идеален. ЕМу не требуются флаги в нём ннайден оптимальный баланс по скорости компиляции, размеру бинарника и скорости работы кода.
Аноним 30/04/23 Вск 10:45:57 #331 №2684893 
>>2684707
Потому что еще одна цель языка - унификация. Это видно даже по тому, как он инфорсит стиль написания кода. В идеале одну и ту же задачу на Go можно решить одним способом и код при этом будет получаться максимально похожим, начиная с форматирования и заканчивая логикой. Всякие флаги добавляют непредсказуемости и возможностей накосячить.
Ты правильно заметил, что существуют другие языки, где эти возможности реализованы.
Аноним 30/04/23 Вск 11:21:40 #332 №2684904 
>>2684707
>Почему в языке, который расчитан на быстроту выполнения нет различных флагов оптимизации в ущерб скорости компиляции, как в других ЯПах?

Есть флаги отменяющие оптимизацию и инлайнинг, но по дефолту то что билдится оптимизированно
Аноним 30/04/23 Вск 15:24:09 #333 №2685047 
>>2683055
Я ж написал, что go get и go install не работают с этим пакетом.

>делаешь go mod tidy

У меня есть куча учебных однофайловых программ, которые требуют github.com/google/gopacket
Это ж придётся каждый раз go mod tidy вводить, почему так геморно сделано? Неужели нельзя один раз установить зависимость и при компиляции новых программ она будет автоматически обнаруживаться сборщиком?

>он автоматом скачивается в кеш покетов

А почему гошный сборщик в кэш не смотрит при последующих сборках? В чем смысл этого кэша, если сборщик не может найти уже "закэшированный" gopacket? Зачем на каждую однофайловую прогу вводить go mod tidy, пересоздавая кэш? Даже в устаревшем Си сделано более человечно, когда "кэш" автоматом ищется в стандартных директориях.
Аноним 30/04/23 Вск 16:03:12 #334 №2685074 
Есть один сторонний пакет, импортировал его по URL (github.com/...) и в процессе выяснил, что некоторые функции там не реализованы, не долго думая я начал просто локально править исходники. Все работает, но как правильно теперь завендорить данную библиотеку или как это назвать, короче чтобы был пакет с моими правками и плюс вопрос, если сделать например go get -u all или еще какую-нибудь подобную команду, мои изменения пропадут и пакет опять подтянется с гитхаба?
Если честно, впервые в такой ситуации.
Аноним 30/04/23 Вск 16:40:32 #335 №2685094 
>>2685074
Сделай форк и тяни от себя. Или сделай пул реквест, чтобы твои правки приняли в апстрим.
Аноним 30/04/23 Вск 17:11:12 #336 №2685104 
Как часто используется defer? Не могли бы вы привести парочку примеров из реальной практики? Вкатываюсь с другого языка и пока не могу понять прикола
Аноним 30/04/23 Вск 17:27:31 #337 №2685115 
>>2684347
Бамп вопросу. Почитал чатики гоферов в телеге и выглядит так, что все пришли в го после работы на других языках
Аноним 30/04/23 Вск 17:56:40 #338 №2685137 
>>2685047
Для этого IDE придумали, свыня вимовская, там буквально все это за тебя делается
Аноним 30/04/23 Вск 17:58:20 #339 №2685139 
>>2685104
Буквально всегда, например при открытии файла, что бы можно было везде ретурнов совать и не бояться, что где то можешь забыть хендл прикрыть, применений уйма
Аноним 30/04/23 Вск 18:04:30 #340 №2685148 
>>2685094
Почему для разработки на этом ЯП нужна анальная фиксация на стороннем сервисе, которым владеет компания МАЙКРОСОФТ?
Аноним 30/04/23 Вск 18:09:08 #341 №2685153 
>>2669241
Че бля,оффсет,нахуя мне кафка партиция в виде структуры данных? Гошники вы ебанутые? Оправдывайтесь
Аноним 30/04/23 Вск 18:14:35 #342 №2685159 
Решил по накурке почекать гошечку вашу. Смешной язык, синтаксис вообще улет, несколько возвращаемых значений это сильно. Ну че рассказывайте как вам на нем работается?

мимо джава
Аноним 30/04/23 Вск 18:16:39 #343 №2685162 
>>2684893
Нахуярим сверху абстракций над самыми популярными кейсами и че,получим кастрированную джаву
Аноним 30/04/23 Вск 18:40:34 #344 №2685182 
>>2685153
А нахуя тебе копировать весь массив, у тебя память бесконечная что ли?
Аноним 30/04/23 Вск 18:59:07 #345 №2685189 
>>2685148
Тебя часто били в детстве об угол головой?
Аноним 30/04/23 Вск 19:03:45 #346 №2685195 
>>2685159
>несколько возвращаемых значений это сильно
Сильнее чем ты думаешь. Их не несколько, а одно множественное. Это такой неявный кортеж. В случаях, когда длина кортежа равна количеству пара Петров функции, можно этот кортеж передать в функцию. Или присвоить списку переменных, опять же, только такой длины.
Аноним 30/04/23 Вск 19:07:10 #347 №2685196 
>>2685148
Ну тогда качай со своих серверов, ебанат линуксопомешанный
Аноним 30/04/23 Вск 19:20:42 #348 №2685206 
>>2685196
А ты качай с серверов дядюшки Билли, который может тебе доступ обрубить, если ты ему не понравишься, кек.
Аноним 30/04/23 Вск 19:54:35 #349 №2685257 
>>2685206
Ну так обрубит, я буду качать через зеркала, которые сразу же изобретут, в чем проблема? Либо свой сервер опять же
Аноним 30/04/23 Вск 21:50:31 #350 №2685355 
Хули го такой нечитаемый кал?
Аноним 01/05/23 Пнд 00:02:09 #351 №2685405 
>>2685355
Наоборот же. Неописуемый.
Аноним 01/05/23 Пнд 11:24:20 #352 №2685564 
>>2665435 (OP)
Аноны, а какие проблемы закрывают облака? У меня есть монолит на Го, покрыт тестами и в целом все вынесено по слоям, деплоюсь на вдске в докере, сам монолит + инфра, рпс маленький, это скорее сервис для небольшого количества людей, а написан на го, потому что приятно писать.

Все вроде норм, но дай думаю попробую себя в найме. собесился сразу на мидла, начали спрашивать за гугл клауд, я сказал что не знаю, он мне не был нужен, никаких моих проблем он не решал. Собственно, а какие проблемы он решает для небольших компаний ? Целюсь в именно такие, с штатом до 50 человек(но вообще таких очень мало хех)
Аноним 01/05/23 Пнд 11:34:58 #353 №2685571 
image.png
ПЕРЕКАТЫВАЕШЬСЯ В ГОШКУ ПО МАНЯ ГАЙДАМ ОТ ИНДУСОВ
@
ПРЕДВКУШАЕШЬ ОХУЕННЫЙ, МИНИМАЛИСТИЧНЫЙ КОД
@
ВЗЯЛИ НА ГОШНУЮ ГАЛЕРУ
@
ПИКРИЛ
@
ОБТЕКАЕШЬ
@
СОБЕСИШЬСЯ НА ПРЕЖНЕЕ МЕСТО


У вас там когда планируют внедрить нормальную обработку исключений?
Аноним 01/05/23 Пнд 11:42:32 #354 №2685575 
>>2685571
Нормальную это как в расте или антипаттерн убожество из джавы?
Аноним 01/05/23 Пнд 11:42:36 #355 №2685576 
Может кто подскажет как у fiber тестировать Params? Как мне сформировать контекст в роутер, с нужным мне параметром params?
Аноним 01/05/23 Пнд 12:40:58 #356 №2685634 
>>2685571
Он минималитичный в смысле простой как камень, а не в смысле все можно в ванлайнер завернуть как в котлиине
Аноним 01/05/23 Пнд 12:51:09 #357 №2685637 
>>2685575
У тебя и дженерики антипатерн лол
Аноним 01/05/23 Пнд 13:05:14 #358 №2685641 
>>2685564
Serverless, деплой кучи микросервисов, только хуй знает почему это спрашивают у тебя, если ты я так понимаю не на девопса пошел, но тут думаю из за размеров команды им нужен человек-мультитул
Аноним 01/05/23 Пнд 13:16:10 #359 №2685653 
Снимок экрана 2023-05-01 в 12.16.03.png
>>2685641
Возможно ты прав, но это единственный собес за месяц, с работкой грустно, поэтому каждый провал довольно значителен в общем, было б это собес 1 раз в неделю то пох
Аноним 01/05/23 Пнд 14:16:20 #360 №2685685 
>>2685571
>У вас там когда планируют внедрить нормальную обработку исключений?
А log.Println() тебе норм?
Аноним 01/05/23 Пнд 14:22:45 #361 №2685688 
>>2685571
Лучше того говна что в джаве, уже хорошо
Аноним 01/05/23 Пнд 14:24:24 #362 №2685690 
>>2685688
А че там у хохлов?
Аноним 01/05/23 Пнд 14:25:26 #363 №2685691 
>>2685564
1. Маштабируемость: если у твоего приложения будет резкий рост нагрузки, можно достаточно легко иногда даже автоматически увеличить количество нод, дать больше памяти/процессора, БД, очередей.
2. Все необходимое есть из коробки: базы, очереди, кеши, мониторинг, логи, фаерволы, защита от DDoS, хранение секретов. И все это хорошо интегрировано, если следовать рекомендуемому пути все будет работать отлично.

Взамен ты получаешь конские цены, когда у приложения нагрузка вырастает до больших значений. И очень часто - вендор лок.
Аноним 01/05/23 Пнд 16:19:57 #364 №2685768 
>>2685148
У меня свой git сервер я просто клоню нужные мне либы и всё работает.
Аноним 01/05/23 Пнд 16:25:21 #365 №2685772 
>>2685206
Анончик у нас на работе artifactory кэширует все внешние зависимости и если Билли отрубит у нас ничего не наебнется
Аноним 01/05/23 Пнд 16:31:52 #366 №2685777 
>>2685206
И кстати юзать module_name@latest не комильфо, тк никто не застрахован от кейса с node-ipc
Аноним 01/05/23 Пнд 22:06:50 #367 №2686070 
>>2685148
он же с гитлабом и всякой хуйней тоже работает. остается вопрос у кого анальная фиксация
Аноним 01/05/23 Пнд 23:13:59 #368 №2686089 
я правильно понял, что closures в go это аналог stl::bind?
Аноним 01/05/23 Пнд 23:42:06 #369 №2686103 
>>2686089
Это же насколько нужно быть тупым, что бы не понять этого? Твой стд бинд просто возвращает враппер, где строго говоря какие то аргументы уже забинжены и тебе не нужно их юзать, closures в go, как ты их называешь, это просто вызов функции, которая возвращает тебе функцию, внутри которой есть переменные из первого вызова
Аноним 01/05/23 Пнд 23:49:22 #370 №2686108 
>>2686103
Понятно функция и переменные из скоупа внешней функции. А где такое может быть полезно на практике?
Аноним 01/05/23 Пнд 23:50:41 #371 №2686109 
>>2686108
Ну йобанный в рот, да где угодно, почему тебе обязательно быть таким душнилой
Аноним 02/05/23 Втр 01:24:57 #372 №2686146 
>>2686108
А что, плюсы так до сих пор не умеют?!
Аноним 02/05/23 Втр 04:06:08 #373 №2686178 
>>2686108
там же, где [&](){}
Аноним 02/05/23 Втр 06:55:44 #374 №2686208 
>>2686070
Телеметрию в гугл отправить не забыл?
Аноним 02/05/23 Втр 09:55:45 #375 №2686266 
>>2686208
вроде же решили добавить опциональную телеметрию или я чего-то не понял https://research.swtch.com/telemetry-opt-in
Аноним 02/05/23 Втр 10:34:23 #376 №2686287 
>>2686266
Которая включена по умолчанию и о которой тебе компилятор вежливо не скажет.
Аноним 02/05/23 Втр 14:54:42 #377 №2686490 
>>2686208
Шизик, ты чего или кого боишься?
Не удивлюсь, если ты пользуешься какой нибудь федорой или арчем, где бесконечное количество телеметрии лол
Аноним 02/05/23 Втр 15:15:40 #378 №2686517 
>>2686208
От кого шифруешься, мань
Аноним 02/05/23 Втр 22:48:57 #379 №2686888 
Как думаете стоит перекатиться джуном на го с джавы? На просадку в зп в первый год пох. Миддл-крудошлеп
Аноним 02/05/23 Втр 23:36:18 #380 №2686907 
>>2686888
Язык не более чем инструмент. Если тебе предлагают Уже работу и тебе нравится язык, то почему нет?
Аноним 03/05/23 Срд 00:46:06 #381 №2686935 
>>2686888
А смысл? Разве гоыеры получают x2 от джавистов?
Аноним 03/05/23 Срд 01:00:43 #382 №2686942 
image.png
>>2686888
Аноним 03/05/23 Срд 01:21:40 #383 №2686949 
>>2686907
Работу никто не предлагает, сижу в гэпе пока. Просто весь опыт джавы это круды на спринге + кубер. Про инструмент - золотые слова, но вот хотелось бы подтянуть фундаменталс с чистого листа на новом стеке.
>>2686935
Кажется джава очень громоздка в плане инфраструктуры, хочется просто кодить и решать кодерские задачки, а не пердолиться с зависимостями, фреймворками, сборщиками и т.д. Ну и 90% задач - круды шаблонные.
Аноним 03/05/23 Срд 10:11:23 #384 №2687041 
>>2686490
>>2686517
Про приватность слышали?
Алсо, нет, у меня не systemd дистр и естественно без всякой параши типа снэпов/флэтпаков.
Аноним 04/05/23 Чтв 02:28:53 #385 №2687847 
image.png
спрошу тебя на собесе че напечатает
Аноним 04/05/23 Чтв 04:17:13 #386 №2687863 
>>2687847
Рубрика «задачки для стажера»?
1 1
Аноним 04/05/23 Чтв 13:30:00 #387 №2688019 
>>2687847
Отвечу, что если у вас принят такой кодстайл, мы не сработаемся
Аноним 04/05/23 Чтв 22:43:43 #388 №2688607 
>>2687847
это типо темка а-ля акме?
Аноним 05/05/23 Птн 03:00:31 #389 №2688740 
>>2688607
это https://go.dev/play/ с шрифтом go mono
Аноним 05/05/23 Птн 10:25:46 #390 №2688809 
learninggo.mp4
Аноним 05/05/23 Птн 10:35:18 #391 №2688820 
png-clipart-yellow-emoji-face-with-tears-of-joy-emoji-discord-emoticon-sticker-emoji-discord-smiley-anger.png
>>2688809
Аноним 05/05/23 Птн 14:47:46 #392 №2689004 
err == nil, or err != nil, that is the question
Аноним 05/05/23 Птн 16:02:23 #393 №2689116 
>>2689004
Как правило err != nil, потому что за этим обычно следует вывод ошибки в лог и ретурн/передача управления в другую функцию. В противном случае будут появляться else, вложенные ифы или просто вся логика будет внутри большого ифа. это если вопрос был серьезный, а не насмешка над типичным гошным бойлерплейтом
Аноним 05/05/23 Птн 17:27:42 #394 №2689213 
IMG0861.png
>>2688809
Имагинирую, как будут отменять коммит в бд используя try catch
Аноним 05/05/23 Птн 18:05:55 #395 №2689250 
>>2688809
можно как нибудь так

var (
ErrPasswordNotFound = errors.New("password not found")
ErrPasswordExists = errors.New("password already exists")
)



func handleError(err error) {
if err != nil {
fmt.Println("Error:", err)
os.Exit(1)
}
}
Аноним 05/05/23 Птн 18:07:19 #396 №2689252 
>>2689250
а хотя нет
Аноним 05/05/23 Птн 19:05:13 #397 №2689314 
Просто скопировал свою же прогу с одного компа на другой и при go get all получаю кучу таких сообщений
>go: all: malformed module path "sync/atomic": missing dot in first path element
(для всех зависимостей)

Вообще чет сильно испоганили работу с зависимостями, в 2017 такого не было, можно было просто кодить, сейчас какой-то пиздец. Естественно в go.mod я добавил путь с гитхабом.
Аноним 05/05/23 Птн 22:30:15 #398 №2689520 
>>2689314
go mod download или go mod tidy

Хуй пойми откуда и зачем ты взял get all
Аноним 05/05/23 Птн 22:36:24 #399 №2689524 
>>2689213
Мне вообще люто доставляет подход к ошибкам в гошечке, после питухона, когда любая внешняя хуйня может выкинуть исключение и ты узнаешь что она выкидывает исключения только когда это случится или проштудировав код/документацию. Охуенная идея насильно заставить обрабатывать все ошибки и похуй на пару дополнительных строчек кода.
Аноним 06/05/23 Суб 15:06:00 #400 №2689946 
>>2686888
Гошка простая, нет никакого смысла идти в джуны, если есть опыт программирования уже.
С джавы однозначно да. Сама по себе жаба неплохой язык, но те подходы и инструменты, которые популярны в ее сообществе - делают разработку на жабе полнейшим говном. Причем нелепым и кринжовым прям, если у тебя есть опыт в других экосистемах. Да и сами адепты джавы, зачастую, довольно туповатые и ограниченные, особенно спринганы.
Мимо 12 лет в ИТ, рулил проектами на nodejs, go, java/spring, python
Аноним 06/05/23 Суб 19:25:48 #401 №2690223 
>>2689946
>Гошка простая
Эти мантры. назови мне сложный язык, который появился после 2000го
Аноним 06/05/23 Суб 19:34:32 #402 №2690228 
>>2690223
rust
Аноним 06/05/23 Суб 21:33:43 #403 №2690352 
>>2690223
Какие мантры? Гошка очень топорная и простетская, это и была одна из целей создания.
Scala, Idris, Rust, F# да дохера их.
И C# ровно в 2000-м.
Аноним 07/05/23 Вск 09:43:26 #404 №2690545 
>>2689524
Так панику в го у тебя никто не отменял, плюс этих "дополнительных строчек" настолько много, что ты далеко не всегда можешь сказать какие ошибки вернёт твоя функция.
Аноним 07/05/23 Вск 11:39:11 #405 №2690583 
>>2690545
Шиз, ее никто не использует, разве что редкие перекатуны из джавы или шарпов, это ебейший пиздец такое использовать
Аноним 07/05/23 Вск 11:45:49 #406 №2690586 
>>2690583
Там она может сама случиться, хочешь ли этого ты или автор внешней либы, банальный доступ по несуществующему индексу.
>когда любая внешняя хуйня может выкинуть исключение и ты узнаешь что она выкидывает исключения только когда это случится или проштудировав код/документацию
По этому кейсу, ты все равно должен штудировать сорцы/документацию, что бы знать какой из сотни видов ошибок у тебя прокинется выше и навесить на его обработку какую-то логику.
Аноним 07/05/23 Вск 11:57:45 #407 №2690592 
>>2690586
> что бы знать какой из сотни видов ошибок у тебя прокинется выше и навесить на его обработку какую-то логику.
Ты же понимаешь что в 98% случаев тебе не нужно по особенному обрабатывать каждую ошибку? Максимум - выкинуть 500 статус код и в боди саму ошибку
Аноним 07/05/23 Вск 11:59:42 #408 №2690594 
>>2690592
А в остальных 2% ты уже наверняка знаешь какую конкре но ошибку тебе нужно обрабатывать отдельно

> банальный доступ по несуществующему индексу.
Если у тебя есть такая проблема, то тебе ни один язык не поможет, ты везде будешь тупым
Аноним 07/05/23 Вск 12:06:56 #409 №2690598 
>>2690592
>Максимум - выкинуть 500 статус код и в боди саму ошибку
Если у тебя такая обработка ошибок, то в случае с try catch никакой проблемы тоже нет, оборачиваешь реквест в него, пользователю 500, в логи стектрейс.

>Если у тебя есть такая проблема, то тебе ни один язык не поможет, ты везде будешь тупым
А ты уже проштудировал сорцы внешних либ и убедился, что такого точно не будет блябуду?
Аноним 07/05/23 Вск 12:09:09 #410 №2690600 
>>2690598
Мистер блябуду, ты же знаешь, что в го не используют миллиард библиотек и всякие спринги?
Аноним 07/05/23 Вск 12:14:57 #411 №2690608 
>>2690598
В го для джавистов специально есть аналог твоего try/catch, recovery() зовется, но это ебейший антипаттерн
Аноним 07/05/23 Вск 12:16:54 #412 №2690609 
>>2690600
Достаточно одной, которую написал не ты и не знаешь что там под капотом

>>2690608
>но это ебейший антипаттерн
И какой правильный способ перехватить панику? Просто писать код без ошибок?
Аноним 07/05/23 Вск 12:18:08 #413 №2690610 
>>2690609
>И какой правильный способ перехватить панику?
Не выкидывать панику, шиз
Аноним 07/05/23 Вск 12:21:56 #414 №2690611 
>>2690610
Паника это любая необрабатываемая ошибка, которая может случиться во время выполнения программы, что бы ее получить не обязательно, что бы ее кто-то явно кидал.
Аноним 07/05/23 Вск 12:24:20 #415 №2690612 
IMG0884.png
>>2690611
Ну да, каждый день же делишь на 0 и индексируешь элемент больше капасити у слайсов, голову лечи
Аноним 07/05/23 Вск 12:32:04 #416 №2690616 
>>2690609
почему данная проблема присутствует у всех, но не у разработчиков на го?

другой анон
Аноним 07/05/23 Вск 12:39:57 #417 №2690626 
>>2690616
Потому что те кто делают дейтвительно большие приложения не кричат, что recover это антипаттерн
https://github.com/gin-gonic/gin/blob/master/recovery.go#L58
Аноним 07/05/23 Вск 12:43:26 #418 №2690632 
>>2690626
>те кто делают дейтвительно большие приложения
И давно на гошке стали монолиты писать?
Аноним 07/05/23 Вск 12:46:19 #419 №2690635 
>>2690632
Тут дело в значимости, авторы gin понимают, что паника может случиться где угодно и спокойно юзают recover, а неофиты начали вторить евангелистам и объявили весьма полезную функциональность антипаттерном
Аноним 07/05/23 Вск 14:39:56 #420 №2690774 
>>2690352
Попробуй отведать ради интереса систему типов из f#, а лучше из ocaml с его алгебраическими типами, Polymorphic variants и.т.д. Потом больше ничего не захочешь.
Аноним 07/05/23 Вск 14:42:34 #421 №2690778 
>>2690608
>Есть аналог твоего try/catch, recovery() зовется, но это ебейший антипаттерн
А нахуй тогда это есть в языке, если это такой пиздецкий антипатерн? Он же вроде простой и в нём нет ничего лишнего.
Аноним 07/05/23 Вск 14:59:58 #422 №2690811 
>>2690778
Та не... гошка довольно касая, топорная, а местами откровенно всратая. Просто менйстрим и промышленное разработка, скажем так, это про выбор меньшего из зол и уворачивания от костылей, который летят тебе в лоб, от создателей различных инструментов.
Просто исторически сложилось, что простой, производительный зяык, с грин-тредами и CSP - это го, лучше пока ничего нет.

на самом деле crystal (https://crystal-lang.org/) куда лучше и органичнее, как язык. но оно нихуя не популярно и имеет беды с кросс-копиляцией
Аноним 07/05/23 Вск 20:41:20 #423 №2691277 
>>2690778
Что бы джависты и дальше могли делить на нуль и индексировать несуществующую память
Аноним 07/05/23 Вск 22:48:00 #424 №2691425 
>>2690626
Ты что, gin это же почти спринг, а на го только велосипедостроение, только хардкор!
Аноним 07/05/23 Вск 22:55:12 #425 №2691429 
>>2691277
Ты что-то перепутал. Это гоферы никак, то есть вообще никак, не могут защититься от разыменования нила.
Аноним 08/05/23 Пнд 00:24:06 #426 №2691518 
>>2689524
В Go есть panic. Просто преобладает подход с возвратом (недо-)тьюплов и язык старается уйти от исключений.
>>2690583
Паника - это вполне нормальное поведение в определенных ситуациях, когда ошибка настолько серьезная, что выполнение продолжать не нужно или просто невозможно.
Аноним 08/05/23 Пнд 02:56:18 #427 №2691582 
хз ру на запрос "golang" выдает тысячу ваканский. На запрос "go" 6к вакансий. При том что по запросу Java выходит всего 3к. Так 1к или 6к более правдиво?
Аноним 08/05/23 Пнд 03:38:03 #428 №2691585 
.png
>>2691582
Поставь эту галку и узнаешь.
Аноним 08/05/23 Пнд 07:37:15 #429 №2691622 
>>2691582
Представляю как тянучка ищет вакансию го-го танцовщицы, а хх ей засирает результаты поиска говолангами....
Аноним 08/05/23 Пнд 11:05:24 #430 №2691720 
Допустим есть две структуры A и B, (определенные во внешней библиотеке), обе имеют одно и то же экспортируемое поле Foo string и при этом не находятся в отношении наследования.
Как (и можно ли вообще) на го написать функцию, которая будет принимать в качестве параметра переменную типа A или B и выполнять операции над значением поля Foo независимо от типа структуры и чтобы написать метод один раз, а не для каждого типа отдельно?
Аноним 08/05/23 Пнд 11:21:07 #431 №2691749 
>>2691582
Чтобы получить выдачу без мусора поиск настрой по названию вакансии
Go or golang
Но и там попадается мусор типа Яндекс.Go и Go-go танцовщицы
Аноним 08/05/23 Пнд 11:37:29 #432 №2691775 
>>2691720
https://go.dev/play/p/wQLSJMJjbrN
Аноним 08/05/23 Пнд 11:42:27 #433 №2691780 
>>2691775
Можно еще так, но это совсем уродство

https://go.dev/play/p/krGaER7W5mQ
Аноним 09/05/23 Втр 07:58:24 #434 №2692710 
>>2691780
То что в других языках норма, в гошечке уродство... Но да, с дженериками он проклянёт все на свете.
Аноним 09/05/23 Втр 08:01:13 #435 №2692711 
>>2691518
Только вот почти всегда ветка err!=nil заканчивается return. Это ли не признак того, что
>продолжать не нужно или просто невозможно
?
Аноним 09/05/23 Втр 14:41:11 #436 №2693009 
>>2692711
А если нужно отменить коммит? Но одна из ошибок произошла еще до создания коммита
Аноним 09/05/23 Втр 17:19:13 #437 №2693158 
>>2692711
Это он скорее всего про всю программу в целом, а не про отдельную функцию
Аноним 09/05/23 Втр 21:38:24 #438 №2693411 
>>2693009
Щто? К4кой нахуй коммит?
Аноним 09/05/23 Втр 22:32:05 #439 №2693478 
>>2693411
Он коммитом назвал транзакцию.
Аноним 10/05/23 Срд 12:35:07 #440 №2694024 
>>2693009
И что? Ты к тому, что роллбек надо делать сейчас, а не выше? Ну сделай, и выбрось с чистой совестью панику, здесь делать больше нечего, и в пределах 3х уровней выше тоже скорее всего нечего.
Аноним 10/05/23 Срд 18:01:13 #441 №2694373 
Гошники вы там совсем ебанулись? Только сейчас фикс завезли

https://github.com/golang/go/issues/60078
Аноним 10/05/23 Срд 20:44:57 #442 №2694516 
>>2665435 (OP)
Аноны, а зочем Роб Пайк и Кен Томпсон добавили возможность с декларировать на любом языке?? Чтобы студентам из России было проще??
Аноним 11/05/23 Чтв 09:23:15 #443 №2694669 
>>2694516
Чтобы 1с-никам было проще перекатываться.
Аноним 11/05/23 Чтв 12:22:36 #444 №2694864 
>>2694516
Так на любом языке можно писать на любом языке, не?
Аноним 11/05/23 Чтв 16:33:06 #445 №2695150 
16807205826000.mp4
Кто шарит за планировщик в последних версиях go?
На сколько я знаю с 1.18(вроде) гарантируется, что ни одна горутина не будет занимать системный поток бесконечно.
В случае, когда есть свободные потоки, я понимаю как они могут прервать выполнение другой горутины. Но если все потоки будут заняты и не будут совершать действий вызывающие планировщик, что происходит в этом случае?
Аноним 11/05/23 Чтв 16:45:14 #446 №2695166 
>>2694864
в сьях нельзя вроде декларировать переменные на не ascii
Аноним 11/05/23 Чтв 18:22:48 #447 №2695260 
Документация во всём стеке голанга это пиздец конечно. Фактически отсутствует, что приводит к необходимости лазить по сорцам и вдуплять смысл каждой фичи. Если бы не перекатывался с жабы, имея за плечами солидный опыт работы с гнилой легасью, уже забил бы на изучение.
Аноним 11/05/23 Чтв 19:01:27 #448 №2695292 
>>2695260
>документации во всем стеке
Это какой? Который буквально пару роутеров имеющие в себе полторы функции и грпц в котором тоже пару функций, и те генерируются сами?
Аноним 11/05/23 Чтв 19:05:01 #449 №2695294 
image.png
>>2695166
Аноним 11/05/23 Чтв 19:59:56 #450 №2695333 
>>2695150
Наверное новый поток создадут, но это лишь предположение.
Аноним 11/05/23 Чтв 20:01:32 #451 №2695337 
>>2695333
так вот а ктож его создаёт если все потоки заняты?
Аноним 11/05/23 Чтв 20:49:09 #452 №2695391 
image.png
Импортопроблем тред. Файл с package main и файл с package hui ни при каких условиях не могут находится в одной директории?
Аноним 11/05/23 Чтв 22:21:26 #453 №2695498 
>>2695391
не могут. один каталог - один пакет. Можно делать подкаталоги с другими пакетами.
Аноним 11/05/23 Чтв 22:56:23 #454 №2695529 
>>2694516
Чтобы Deutsche Pidoraßen могли писать на родном языке.
Аноним 11/05/23 Чтв 23:06:38 #455 №2695531 
>>2694516
Пиздец, я только по ответам анонов понял, о каких языках вопрос.
Аноним 12/05/23 Птн 00:18:10 #456 №2695591 
>>2694516
Спасибо, Анон. Наверное очевидно, но я не рефлексировал, пока ChatGpt не сгенерировал такой код и возможно детская травма от чтения книжек по borland c
Аноним 12/05/23 Птн 16:18:49 #457 №2696177 
>>2695150
>В случае, когда есть свободные потоки, я понимаю как они могут прервать выполнение другой горутины. Но если все потоки будут заняты и не будут совершать действий вызывающие планировщик, что происходит в этом случае?
отправкой сигнала занимается sysmon тред, а не треды, которые твои горутины с твоим кодом крутят
Аноним 12/05/23 Птн 19:19:24 #458 №2696451 
>>2696177
спасибо брат.
Я так понимаю этот поток никак с шедулингом не связан?
И можно как-то через dlv на рантайм смотреть?
Аноним 12/05/23 Птн 19:19:26 #459 №2696453 
>>2695498
Допустимо-ли клепать приложения без применения подкаталогов с другими пакетами? Т.е. раскидать код на несколько файлов в одном каталоге, относящихся к package main. Вижу некоторую трудность в выяснении источника функции, т.к. в едином пакете нет вызова типа: hui.Droch(), а сразу Droch() непонятно откуда. Насколько это будет/не будет считаться говнокодом? Мне не нравится куча подкаталогов, которые надо раскрывать.
Аноним 12/05/23 Птн 20:46:56 #460 №2696570 
>>2696453
Да, конечно, многие крупные и уважаемые проекты так и склепаны. Sarama, например.
В любом случае код на го не может быть нормально организован из-за предельно всратой системы модулей и управления зависмостями.
Поэтому просто пиши как тебе меньше страдается.
Аноним 12/05/23 Птн 21:10:09 #461 №2696607 
>>2696453
>Вижу некоторую трудность в выяснении источника функции, т.к. в едином пакете нет вызова типа: hui.Droch(), а сразу Droch() непонятно откуда
из того же пакета main, понятно же
>Допустимо-ли клепать приложения без применения подкаталогов с другими пакетами
ну допустимо. но это зависит от объема и обычно так не принято. на практике ты можешь притвориться сишником и писать префиксы без точки у каждой функции/типа, но тебя захуесосят. мне как стажеру в первый день говорили вот если хочеш напиши сначала в одном пакете, потом разобьеш)))))))))))))
Аноним 12/05/23 Птн 21:47:02 #462 №2696657 
image.png
>>2696570
Система модулей абсолютно всрата, хоть на 1.15 возвращайся.

>>2696607
>понятно же
C IDE оно конечно понятно через ctrl, а в иных ситуациях придётся кучу файлов пакета в поисках дрочи перерыть.
Аноним 12/05/23 Птн 21:54:24 #463 №2696665 
>>2696657
>C IDE оно конечно понятно через ctrl, а в иных ситуациях придётся кучу файлов пакета в поисках дрочи перерыть.
да ладно тебе слыш, у тебя один пакет, в котором может может быть одна функция с таким названием, оверлодинга же нет
Аноним 13/05/23 Суб 08:20:24 #464 №2696923 
>>2696657
А какой смысл кодить не с иде?
Аноним 13/05/23 Суб 08:34:23 #465 №2696937 
>>2696923

В go очень хорошая поддержка vim-а, если умеешь пользоваться - вообще сыто живешь
Аноним 13/05/23 Суб 12:36:24 #466 №2697073 
>>2696937
>vim
Позер спок
Аноним 13/05/23 Суб 15:03:55 #467 №2697208 
>>2697073

VS Code говно, IDE денег стоит и в рашке не продаются. Остается ток вим
Аноним 13/05/23 Суб 16:05:23 #468 №2697272 
>>2697208
Ничего против вима не имею, но что именно он умеет, чего не умеет вскод а то может стоит изучить.
По факту 99% того, что мне требуется - это ctrl+click и переименование символов по f2, но то я. Интересно, какие еще есть реально полезные фишки.
Аноним 13/05/23 Суб 17:40:09 #469 №2697356 
>>2697208
> IDE денег стоит и в рашке не продаются.
Ну, давай разберём по пунктам тобою написанное.
1. "Денег стоит". То есть ты, высококвалифицированный айти-специалист, не можешь заработать себе на инструмент?
2. "Не продаётся в РФ". Читать как "я, высококвалифицированный айти-специалист, настолько туп, что не могу осилить обход формальных ограничений".
Аноним 13/05/23 Суб 17:49:41 #470 №2697367 
IMG0956.png
>>2697208
> IDE денег стоит
Так сразу бы сказал, что ты не просто позер, так еще и школьник-позер. Поэтому тут да, хелловорлды писать иде не нужна

даже капча считает тебя псевдопрограммистом
Аноним 13/05/23 Суб 17:54:35 #471 №2697375 
>>2697272
Стоит как минимум попробовать vim-mode, вроде как для вскода он был. Основная фишка как бы в этом. Как редактор вим изкоробки не умеет ничего. Есть есть желание подучить lua, и пару тройку вечеров чтобы сделать себе конфиг то вперед. Однако поебавшись и настроив все мы получаем редактор уровня vscode с консольным ui. В конечно счете за несколько лет использования ты настолько сильно врастаешь в этот вим, что его хочется буквально везде, и любое редактирование текста ты себе иначе уже не видишь. Что касательно пользы то как бы удивительно это не звучало то это экономия время не редактирование текста. Да, ты тратишь время на конфиг, но компенсируешь его когда освоишь редактор хотя бы через месяц-два использования. Кроме того вим не вешает 32гб машину с запущенными фоном 8-ю gopls, докерами и прочей хуетой.
Аноним 13/05/23 Суб 18:00:13 #472 №2697377 
>>2697208
>>2697367
Использование IDE для го в принципе никак не обоснованно. Кроме, разве что, фантазий про серьезных программистов купивших себе goland. Скажу больше, если забрать у тебя все эти удобные кнопки которые тебе дает IDE, и без которых ты ничего не можешь, то грош тебе цена как программисту. Не можешь сам автоматизировать и настроить свое рабочее окружение - идешь нахуй, ты не программист.
Аноним 13/05/23 Суб 18:21:29 #473 №2697395 
>>2697377
> Использование IDE для го в принципе никак не обоснованно.
> все эти удобные кнопки которые тебе дает IDE
)))))))))))

> и настроить свое рабочее окружение
Кто то мешает настроить иде? Настраивай как хочешь, хоть шорткаты вима накати, плагинов на это миллиард и больше

Найди работу, долбаеб
Аноним 13/05/23 Суб 18:28:18 #474 №2697403 
>>2697377
>ничем не обосновано
>РРРЯЯЯЯЯ НИНУЖНА
А твой вим изкаропки такое имеет без пердолинга? И это только одна миллионая всех возможностей

https://imgur.com/a/oeDsuUi
Аноним 13/05/23 Суб 18:32:32 #475 №2697409 
>>2697395
Это некоем образом не причина использовать IDE, это может быть поводом но никак не причиной. Тем более говорить что только тру программисты выбирают IDE. Иш какой сурьезный, сидит там в IDE. У тебя риторика уровня, не хочу ебаться с настройкой потому что я дохуя занятой. При этом проебывая время в треде и споря с каком-то рандомным челом. Настроить можно все что угодно и как угодно. И код ты можешь писать где хочешь. Ничто из этого не делает тебя программистом лучше или хуже. Поэтому заканчивай свою хуйню с вешанием ярлыков. Есть у меня работа, и вим мне в ней очень помогает.
Аноним 13/05/23 Суб 18:36:19 #476 №2697411 
>>2697409
Сразу отвечу, что и в моем понимании человек использующий vim никоем образом программистом лучше вас сидящих в IDE не является. Я говорил только о знаниях и возможностях, и наверное даже скорее понимании того как настроить своей рабочее окружение. Если ты не можешь сделать этого сам, то ты не понимаешь как это работает. А значит что ты макака которую можно легко заменить такой же макакой которая будет нажимать удобные кнопки в IDE и рассказывать про трушность и серьезность программистов.
Аноним 13/05/23 Суб 18:36:26 #477 №2697412 
goland64Z0s8df61gb.gif
>>2697403
Дополню еще одной бесполезной фичей, авто-импортом
Аноним 13/05/23 Суб 18:39:42 #478 №2697417 
>>2697411
>sudo apt install vim
>ДА НИ МАКАКА Я НИ МАКАКА ЭТО ВЫ МАКАКИ ЗАПУСТИЛИ СВОИ ВСЯКИЕ .EXE .DMG

>конфигурация посредством редактирования .yaml / .lua / whatever else
> VS конфигурация нормальным UI и плагинами в одну кнопку с маркетплайся
>РЯЯЯЯЯ МАКАКИ КНОПКОДАВЫ НИЧЕГО НЕ СТОИТЕ РЯЯЯЯЯ ВИМ СЛОЖНАААА
Аноним 13/05/23 Суб 18:40:28 #479 №2697418 
>>2697411
>Если ты не можешь сделать этого сам, то ты не понимаешь как это работает
Может еще свой менеджер тредов, процессов и памяти написать? А то хули, как ты им пользуешься сам не реализовывал.
Аноним 13/05/23 Суб 18:42:27 #480 №2697419 
>>2697418
Ты бросаешься из крайностей в крайности. Если тебе нужно понимать как работают эти вещи в твоей рабочей повседневной деятельности, то да, это хороший способ понять что это такое. Квинтэссенция программирование про автоматизацию процесса, в данном случае разработки.
Аноним 13/05/23 Суб 18:45:22 #481 №2697422 
>>2697367
Для школоты-студентоты жидбрейнс бесплатный, кстати.
Аноним 13/05/23 Суб 18:46:07 #482 №2697424 
>>2697419
>Квинтэссенция программирование про автоматизацию процесса, в данном случае разработки
Программирование это про перевод бизнес-требований или личных хотелок в код, а не твоя шиза про настоящих программистов.
Аноним 13/05/23 Суб 18:46:10 #483 №2697425 
>>2697419
> Ты бросаешься из крайностей в крайности.
Так а нахуя мне тогда понимать как работает ебанная IDE? И самое главное не нахуя, а ЧТО ПОНИМАТЬ, что ты в ней собрался понимать? Вот скажи блять, ЧТО В НЕЙ ПОНИМАТЬ

Я понимаю как работает язык и нужные мне библиотеки. НО ЧТО Я БЛЯТЬ ДОЛЖЕН ПОНИМАТЬ В ЕБАННОМ РЕДАКТОРЕ, ЧТО БУКОВКИ ВСТАВЛЯЮТСЯ ПРИ НАЖАТИИ?
Аноним 13/05/23 Суб 18:47:12 #484 №2697427 
>>2697403
Ебать ты МЫШЕВОЗ, поди ещё и на винде сидишь или каком-нибудь богомерзком DE без тайлинга.
Аноним 13/05/23 Суб 18:48:32 #485 №2697430 
>>2697427
> поди ещё и на винде сидишь
Предпочитаю пользоваться удобной системой без проблем, а что? В разработке она не нужна, голенг умеет в кроссплатформу

ожидаю выпуки про драйвер постгре
Аноним 13/05/23 Суб 18:52:36 #486 №2697431 
image.png
>>2697430
На случай высера про --race отвечу сразу пикрилом, докер.
Аноним 13/05/23 Суб 18:53:15 #487 №2697432 
>>2697424
Это и есть автоматизация. Берешь идею - автоматизируешь процесс.
>>2697425
Ты несколько уводишь наш разговор от темы. Я говорил не об этом и имел ввиду совсем не это. Ты, или это был не ты, неважно. Тот анон что выше, его основная логика, что все крутые и серьезные программисты используют IDE. Моя же логика не в том, что все программисты использующие vim по настоящему крутые и куда лучше вас бездарей из IDE. Моя логика что если ты вешаешь ярлыки по тому что использует человек, при этом сам не вдаешься в технические вопросы того что ты повседневно делаешь, то ты просто долбаеб, вот и все.
Аноним 13/05/23 Суб 18:55:50 #488 №2697434 
>>2697432
>Это и есть автоматизация. Берешь идею - автоматизируешь процесс.
Если это лично тебе нравится или это требования работадателя, то да. Если нет, то это не стоит твоего времени.
Аноним 13/05/23 Суб 18:56:09 #489 №2697435 
>>2697432
> того что ты повседневно делаешь
Я пишу бизнес-логику, а не IDE, помешанный вимошвайнокарась

> если ты вешаешь ярлыки по тому что использует человек
Увы, но так показывает практика, 99% вимошизиков - пишут на уровне хелло ворлдов
Аноним 13/05/23 Суб 19:00:05 #490 №2697437 
>>2697435
Не смеши. Ты еще скажи, что ты можешь по коду определить был ли он написан в профессиональной IDE, или в плебейском виме.
Аноним 13/05/23 Суб 19:02:32 #491 №2697439 
>>2697437
> ты можешь по коду определить
В теории можно, IDE обычно сама сортирует импорты и заводит go fmt, но это так, косвенные
Аноним 13/05/23 Суб 19:05:42 #492 №2697440 
>>2697439
Ну это уже шутки какие-то несерьезные пошли. Даже неуважение какое-то, ей богу. Ты судя по всему дальше :q в вим не заходил.
Аноним 14/05/23 Вск 14:45:15 #493 №2698178 
vim.gif
>>2697403
>>2697412
Блядь, просто киллер-фичи. Срочно перекатываюсь в говленд
Аноним 14/05/23 Вск 14:50:40 #494 №2698188 
>>2698178
Дебаггер тебе я так понял нинужын.
Смысл в идее и ее потомках - то что там нормально сделан дебаг для любого официально поддерживаемого языка.
Аноним 14/05/23 Вск 14:55:33 #495 №2698194 
>>2698188
Внезапно и дебаггер тоже есть.
Аноним 14/05/23 Вск 16:42:31 #496 №2698340 
>>2698194
Видели мы ваши дебаггеры и функционал, спасибо ненадо, лучше уж совсем без него, чем с ЭТИМ
Аноним 14/05/23 Вск 17:14:55 #497 №2698368 
>>2698178
Ты сутки искал плагины? Красава, а теперь найди работу. В голенде такое изкаропки
Аноним 14/05/23 Вск 17:21:20 #498 №2698374 
>>2698340
>ваши дебаггеры не дебаггеры
Тащемта гойленд под капотом использует тот же Delve.
Аноним 14/05/23 Вск 17:23:17 #499 №2698375 
>>2698368
Когда начал учить го, потратил минут 30 чтобы установить vim-go. Было безумно сложно дописать в конфиг пару строк, но я каким-то чудом справился.
Аноним 14/05/23 Вск 20:51:54 #500 №2698585 
Почему так сложно форкнуть библиотеку и использовать ее?
Камитишь блять пушишь и все равно, твои изменения не видны, несмотря на то что ты импортируешь библиотеку уже из своего репозитория. Версии какие-то, ну нахуй это надо, почему нельзя просто брать последнюю версию из мастер бранча?
Аноним 14/05/23 Вск 21:20:37 #501 №2698612 
Прошел го тур, думаю порешать задачки с литкода на го и написать простенький проект. Какую ide можете посоветуете? vim только начал осваивать, сам привык к intelli j, но платной подписки нет.
Аноним 15/05/23 Пнд 00:12:52 #502 №2698827 
>>2698612
Если торопишься - vscode или его открытый форк. Не ебись с вимом, учи язык. Потом когда будешь синьером-помидором хуи пинать, можно и вим позадрачивать.

Если по фану - то конечно neovim, сначала будет непривычно, потом сложно, но в какой-то момент ты поймешь, что получил охуенный инструмент, которым будешь пользоваться всю жизнь.
Аноним 15/05/23 Пнд 00:15:09 #503 №2698830 
>>2698827
>получил охуенный инструмент, которым будешь пользоваться всю жизнь пока не перейдешь на emacs с evil-mode
Пофиксил
Аноним 15/05/23 Пнд 00:40:50 #504 №2698842 
Попробую спросить. Имеется логгер github.com/sirupsen/logrus. Имеется gin.Recovery(). В режиме logrus.WarnLevel, логгер корректно пишет всю инфу об ошибке, но с пометкой паники как: level=warning. В режиме logrus.PanicLevel логгер перехватывает любую панику в фреймворке, вываливает только инфу о том, что была panic и я прекратил работу программы. Логи самого фреймворка при этом теряются. Может кто-нибудь с этим логгером работал и знает, как обрубить ему возможность вызова паники, чтобы он только логи писал и не выёбывался?
Аноним 15/05/23 Пнд 03:11:22 #505 №2698878 
>>2698585
> Версии какие-то, ну нахуй это надо, почему нельзя просто брать последнюю версию из мастер бранча?
Представь, как тысячи проектов одновременно перестали собираться из-за того, что в последней версии популярной либы сломали обратную совместимость.
Аноним 15/05/23 Пнд 16:49:56 #506 №2699511 
>>2698585
Да меня тоже все это бесит, но без этого никак. Git нужно изучать в обязательном порядке, без него уже хелло вёрлд наверное ни на одном языке не написать, кроме QBasic.
Все это сделано максимально неудобно, но если разобраться, то понимаешь, почему без этого какая-то серьезная разработка невозможна.
Зато вот разберешься с goreleaser и будет у тебя страница с релизами как у взрослых проектов :)
Аноним 15/05/23 Пнд 18:24:30 #507 №2699652 
image.png
image.png
>импортировал из пакета А в пакет Б
>теперь ты не можешь импортировать из пакета Б в пакет А

Как же меня заебали эти импортопроблемы. Они специально такую конченную систему выдумали?
Аноним 15/05/23 Пнд 18:34:39 #508 №2699668 
>>2699652
Я так понимаю, других языков ты не видел? Такое везде.
Аноним 15/05/23 Пнд 18:39:24 #509 №2699680 
>>2699511
> Все это сделано максимально неудобно
git commit команду наверное пиздец сложно выучить. Удобнее ничего нету, почему тебе неудобно - хуй знает. Оно сейчас идеально и максимально удобно, можешь хоть по-коммитно подгружать нужную версию и не ебать мозгу
Аноним 16/05/23 Втр 01:36:51 #510 №2700140 
Насколько сложно в вас вкатываться? За спиной только питон в адекватном объёме джун+/миддл- и соответствующие бековые приколы - БД, очереди, сисд, докер, кубер.
Аноним 16/05/23 Втр 02:46:06 #511 №2700148 
>>2700140
ну выучи основную хуйню - как гц/шедулер/интерфейсы/каналы/мапы/слайсы работают, потом на собес. всё.
Аноним 16/05/23 Втр 07:30:10 #512 №2700210 
>>2697432
>все крутые и серьезные программисты
Пишут код. Используя удобный для себя инструмент.
Аноним 16/05/23 Втр 23:05:01 #513 №2701365 
Вы че реально пишете на го? Я думал это тред троллинга ньюфагов
Аноним 16/05/23 Втр 23:36:00 #514 №2701396 
>>2701365
Тред ruby и rust в другом месте, вот на этом говне реально никто не пишет
Аноним 17/05/23 Срд 01:42:45 #515 №2701509 
>>2701396
Сыглы,раст залупа,не понимаю долбоебов которые в это говно играют
Аноним 18/05/23 Чтв 21:49:37 #516 №2703712 
>>2701509
Настоящие программисты пишут на паскале.
Аноним 18/05/23 Чтв 23:28:14 #517 №2703812 
>>2703712
Настоящие программисты пишут хуй на заборе
Аноним 20/05/23 Суб 20:36:52 #518 №2705938 
посоветуйте какиенибудь книжечки базовые чтоб можно было обмазаться на 1,5 к страниц и дрочить на Go как в джаве шилдт к примеру.
Аноним 21/05/23 Вск 07:33:25 #519 №2706194 
>>2705938
>книжечка
>программирование
А умом ты не блещешь, да?
Аноним 21/05/23 Вск 09:33:31 #520 №2706246 
>>2705938
Но это реально для полных даунов книга.

https://coderbooks.ru/books/go/head_first_izuchaem_go_2020_makgavren/
Аноним 21/05/23 Вск 11:48:50 #521 №2706323 
>>2706194
>А умом ты не блещешь, да?
я из джавы к вам пришел, там обмазываться книжечками это норма.
У вас че, не так что ли?

Я открыл эту ссылку на туториал, но мне кажется этого мало для понимания полноценного.

>>2706246
хеад ферст сразу нахуй, я их книги не рассматриваю в принципе ни в каком языке - технологии.

нашел какую-то
нашел какую-то Адам Фриман Профессиональный Go. Вроде объем неплохой, пока читаю но складывается впечатление что писал инфобизнесмен какой-то ебаный.
Аноним 21/05/23 Вск 11:51:44 #522 №2706325 
>>2706194
алсо, ну если знаешь какие-то годные видеокурсы то советуй.
Аноним 21/05/23 Вск 22:08:11 #523 №2707323 
>>2705938
Если у тебя норм опыт в джаве, то достаточно пробежать по материалам в шапке. Потом практика и гугли/читай доки по сложным для тебя моментам. Талмуты на 1000 страниц тут нахуй не нужны, гошечка мега простая, когда есть опыт.
Аноним 21/05/23 Вск 23:07:42 #524 №2707459 
>>2707323
производственного опыта нет, спринг потыкал, петпроектики немного, алгоритмы там и все такое. Ну естессно задрачивал талмуды про одно и тоже

пока смущают немного срезы. Нахуя навыдумывали какую-то хуйню с привязкой к массивам, ебота какая-то (я конешн понимаю что из под капота в джаве динамические коллекции тоже работают (некоторые, не все) с массивами, но это как-то перебор), а так же из коробки передача по значению абсолютно всего нахуй.

Пока-что по ощущению это анти-джава какая-то получается.
Аноним 22/05/23 Пнд 00:07:29 #525 №2707562 
Фух. Завершил свой первый бэк на гошке. Всё по высшему классу с тестами, логами, секурностью. Ощущения агонь в жопе. Такого количества шишек на петьке я не собирал никогда. Совершенно ебанутый синтаксис, рвотный верблюд принудительно, доки посредством экстрасенсорики, нажористые бойлерпринты и, вишенкой на кале, устаревание кучи васянских пакетов из-за сверхсветового темпа развития языка.
Аноним 22/05/23 Пнд 05:54:08 #526 №2707646 
>>2707562
А нельзя было не завязываться на левые пакеты?
Аноним 22/05/23 Пнд 05:57:04 #527 №2707648 
>>2707646
Ты что! Это же самому програмулькать надо!

>>2707562
Мочехлеб вернись на моческрипт
Аноним 22/05/23 Пнд 10:47:38 #528 №2707812 
>>2707459
Го сильно низкоуровневый по сравнению с джавой. Это скорее хипстерский Си, в котором улучшили качество жизни и отобрали возможность стрелять себе по ногам.
Все максимально топорно и просто, никакой магии. Cлайс - фактически тот же динамический массив из джава.

В джаве тоже абсолютно все передается по значению, как и в го. Вот только в некоторых случаях переменные под капотом содержат указатели на значения, а не сами значения.
В го со слайсами такая же история, слайс - это по сути указатель на массив и когда ты передаешь слайс в функцию, ты по сути передаешь указатель. Если же тебе в го надо передать структуру, которую ты хочешь там поменять, нужно явно указать, что ты передаешь именно указатель на структуру, а не копию
Аноним 22/05/23 Пнд 15:35:12 #529 №2708136 
>>2707562
Потому что ты скорее всего джавист, тут другая парадигма, синтаксис заебись, if err != nil тоже нормальный, что тебе не нравится? Удобные функции, интерфейсы и вообще подход. Заебись.

То, что заставляют на каждый пук писать доку это как плюс, так и минус, как смотреть. Но вроде бы это отключается

Язык охуенный, жаль, я не сениор и работу на нем не могу в польше найти. Если у вас есть вакансия на Go , готов работать вместо тебя, лишь бы не на жабе и прочем дерьмо ООП
Аноним 22/05/23 Пнд 18:17:49 #530 №2708384 
Читаю спеку Го, никак не могупонять этот абзац про массивы:
"An array type T may not have an element of type T, or of a type containing T as a component, directly or indirectly, if those containing types are only array or struct types."
// invalid array types
type (
T1 [10]T1 // element type of T1 is T1
T2 [10]struct{ f T2 } // T2 contains T2 as component of a struct
T3 [10]T4 // T3 contains T3 as component of a struct in T4
T4 struct{ f T3 } // T4 contains T4 as component of array T3 in a struct
)

// valid array types
type (
T5 [10]T5 // T5 contains T5 as component of a pointer
T6 [10]func() T6 // T6 contains T6 as component of a function type
T7 [10]struct{ f []T7 } // T7 contains T7 as component of a slice in a struct
)

Что здесь вообще подразумевается?
>An array type T may not have an element of type T
Или как в реальном коде можно записать такой тип T5 [10]
T5?
Аноним 23/05/23 Втр 08:08:06 #531 №2708859 
Как найти работу вкатуну на го? Вакансий на джуна 0, пиздос
Аноним 23/05/23 Втр 08:59:14 #532 №2708885 
>>2708859
Сейчас с джунами в целом неоче. Если у тебя нет опыта в айтишечке, я бы на твоем месте поискал вакансию линейного сотрудника в крупную средне-контору в эксплуатацию или админить тестовые стенды например, либо автотестирование. Пару лет там, параллельно практикуя го и осваивая все сопутствующее беку. Потом в разы проще будет найти нормальную работу. Можно будет перекатиться или сразу в разработку или к девопсам на пару лет еще пойти и оттуда уже в разрабы-мидлы точно заскочишь.
Аноним 23/05/23 Втр 21:41:19 #533 №2709732 
>>2708384
>// invalid array types
рекурсивные типы. аналогично тому, как структ типа T не может иметь внутри член с типом T, только член-поинтер на T.
>T1 [10]T1 // element type of T1 is T1
нельзя сделать тип, который является массивом самого себя
>T2 [10]struct{ f T2 } // T2 contains T2 as component of a struct
нельзя сделать тип-массив, элемент которого содержит в себе сам этот тип-массив
>T3 [10]T4 // T3 contains T3 as component of a struct in T4
>T4 struct{ f T3 } // T4 contains T4 as component of array T3 in a struct
аналогично предыдущему, только Т4 теперь не литерал, а именнованный тип
Аноним 23/05/23 Втр 23:34:34 #534 №2709801 
>>2708136
>Потому что ты скорее всего джавист, тут другая парадигма, синтаксис заебись, if err != nil тоже нормальный, что тебе не нравится?
То что в 99% случаев err просто возвращается наверх. Но ты вынужден пердолиться с возвратом этого значения вручную. Например есть функция которая получает запрос, валидирует его, процессит и сохраняет в базу.

На Джава
Response process(Request r) {
validate(r);
var response = processR(r);
save(response);
return response;
}

На Го
func process(r Request) (Response, err) {
err := validate(r)
if err != nil {
return nil, err
}
response, err := processR(r)
if err != nil {
return nil, err
}
err = save(r)
if err != nil {
return nil, err
}
return response, nil
}

Я понимаю почему это сделали, если у тебя функции не раскрашены, то сделать так чтобы эксепшен не пропал, а был правильно обработан, становится очень нетривиальной задачей. Но это сильно засирает обычный код. А все горутины остаются в фреймворке. В результате ты пишешь без горотин, но с if err != nil {
Аноним 24/05/23 Срд 00:11:22 #535 №2709825 
>>2709801
>На Джава
по коду не понятно какие из функций проникнут эксепшном в жопу. весь код теперь в try catch оборачивать что ли?
Аноним 24/05/23 Срд 00:30:12 #536 №2709837 
>>2709825
>по коду не понятно какие из функций проникнут эксепшном в жопу. весь код теперь в try catch оборачивать что ли?
Технически у тебя любая функция может сломаться на null/nil и тысяче других вещей. Только в Java у тебя будет NPE который поймает фреймворк наверху, а в Go panic.
Аноним 24/05/23 Срд 03:33:34 #537 №2709867 
>>2709837
В го в таких случаях возвращает err, шизик
Аноним 24/05/23 Срд 06:52:52 #538 №2709891 
>>2665435 (OP)
>Читаем документацию прямо по порядку (пункт "Learning Go"): https://go.dev/doc/

Сейчас там не такого пункта, подразумевается "Using and understanding Go"?
Аноним 24/05/23 Срд 15:32:08 #539 №2710277 
>>2709867
Это троллинг тупостью, да?
Первый пост как раз и и был про If err != nil
Плюс, чтобы вернуть err в случае nil ссылки надо не забыть её проверить на nil, без этого будет паника.
Аноним 24/05/23 Срд 20:38:18 #540 №2710767 
>>2710426 →
>Выгоняют из дома, есть 10 недель найти работу в айти.
>
>Дайте совет/план. Джаву и ДЖСкрипт могу начать учить сейчас же?
бамп


5 недель язык
5 недель - 5 пет продежков
Нет?


42 урока
по 1 в день че, нельзя? лол, да по 3-5 в день
https://www.practical-go-lessons.com/

Вот тут гайды подробнее
https://go.dev/learn/
м
Аноним 24/05/23 Срд 20:46:35 #541 №2710773 
>>2710767
Пиздуй курой в самокат, у тебя 0 шансов, если нет айти вышки и предыдущего опыта. Если есть, то целый 1%, если ты умный дохуя, в чем я сильно сомневаюсь. Рынок сейчас перенасыщен пидорнутыми джунами с уже существующим коммерческим опытом, а в голанге джуны не нужны в природе.
Аноним 24/05/23 Срд 21:11:56 #542 №2710791 
>>2710773
я в Европе буду искать работу. Или Китае. Или Индии. Рынок в 1.5 млрд + 1.5 млрд, щас бы в РФ тухнуть за 2000 баксов
Аноним 24/05/23 Срд 21:17:03 #543 №2710795 
>>2710791
>>2708136
Вот тебе пример из Европы. Не надейся, тебе только в самокат.
Аноним 24/05/23 Срд 21:44:05 #544 №2710826 
>>2710795
чел, не дизмораль
Аноним 25/05/23 Чтв 04:13:39 #545 №2710961 
>>2710277
> Плюс, чтобы вернуть err в случае nil ссылки надо не забыть её проверить на nil, без этого будет паника.
Ты троллишь тупостью или как? Функция, которая возвращает саму эту ссылку тебе вернет еще и еррор, если у нее где то там внутри случился проеб, это не тебе надо проверять указатель на существование
Аноним 25/05/23 Чтв 11:18:27 #546 №2711162 
>>2710767
Современная разработка это не про то, что ты знаешь как писать if-else-for и даже отличаешь класс от метода. Тебе нужно знать еще десяток-другой обязательных сопутствующих технологий и инструментов (гит, линупс, хттп, жесон, ямл, шифрование, бд, тестирование и еще куча всякой мелочи) и быть готовым разобраться с еще десятком специфичных для компании. Добавь сверху еще хотя бы поверхностное знание технологии разработки, гитфлоу, аджаил вот это вот все + знание типовых паттернов разработки и архитектуры, чистый код и прочую хуйню. Это для джуна. Для мидла надо уметь всем этим пользоваться хотя бы на уровне погуглил и за 5-10 минут сам понял как правильно и хорошо сделать.
Язык за пять недель - это ок, но все это говно вокруг языка вытянуть самому за месяц-два очень маловероятно. Как выше писали, надрочить линукс и поискать работу рядовым дежурным сисадмином - шансов на несколько порядков больше.
Аноним 25/05/23 Чтв 16:29:06 #547 №2711586 
>>2710961
>Функция, которая возвращает саму эту ссылку тебе вернет еще и еррор, если у нее где то там внутри случился проеб, это не тебе надо проверять указатель на существование
Сам придумал какую-то хрень, сам на неё ответил. Речь шла о том что в функцию попадает nil значение которое раньше всегда было not nil. Вот тут и может быть паника.
Аноним 26/05/23 Птн 01:50:39 #548 №2712127 
>>2711586
Каким хуем туда попадёт нил значение? Если ты ошибки игнорить будешь, то так то да, но иначе я представить не могу как можно передать блять нил, что у тебя должно быть в голове? Сделать &var и получить нил ну уж точно не выйдет
Аноним 26/05/23 Птн 04:43:43 #549 №2712142 
>>2711162
Не перегибай, для джуниора как раз достаточно знать язык, включаю стандартную библиотеку, уметь мерджить ветки в гите и писать запросики к бд + хоть какой-нибудь кругозор. Все остальное специфично для конкретного проекта. Насчет общих знаний по паттернам и архитектуре - для этого есть мидлы и сеньоры. Другой вопрос, что компаний готовых растить нулевых джунов не так много, поэтому спрос на мидлов естественно больше. Челику можнт быть имеет смысл вкатываться на оплачиваемые стажировки в крупные компании, если не тупой, то предложат джуном поработать.
Аноним 26/05/23 Птн 08:09:35 #550 №2712166 
>>2712142
> Другой вопрос, что компаний готовых растить нулевых джунов не так много
Согласился бы с тобой года два назад. Но за последний год каждая компания, которую я знаю разумеется включая мою посокращала кучу людей и разумеется это были в первую очередь джуны. Если я буду рассматривать себе в команду пополнение, в первую очередь я возьму джуна с уже существующим коммерческим опытом, а не вчерашнего студента (ну разве что он будет готов работать за дошираки). Благо сейчас есть из чего выбирать. Программы стажировок - отличная тема, сам так вкатывался, но опять же это было бля давно, задолго до СВО.
Аноним 27/05/23 Суб 16:46:47 #551 №2713640 
Почему го так соснул?
https://www.reddit.com/r/programming/comments/13o4nr5/how_much_memory_do_you_need_to_run_1_million/
Аноним 27/05/23 Суб 21:41:25 #552 №2713793 
>>2713640
Первый же коммент
>Every goroutine starts with 2KiB of pre-allocated stack, so one million goroutines consume around 2GB (2,048 * 1,000,000 bytes).
Аноним 28/05/23 Вск 02:38:27 #553 №2713918 
>>2713793
соснули даже у жабы
Аноним 28/05/23 Вск 08:54:00 #554 №2713957 
>>2713918
Там и у питона соснули, чо уж
Аноним 28/05/23 Вск 11:03:30 #555 №2714020 
>>2713793
ваще пох, виртуальная память и оверкоммит
Аноним 29/05/23 Пнд 00:35:28 #556 №2714601 
Можете пояснить смысл тезиса - объявлять интерфейсы там, где собираешься их использовать?
Если я разрабатываю некоторый модуль и выставляю его api через интерфейсы, а реализацию скрываю в кишочках модуля, его могут использовать клиенты? Как в этом случае они будут получать конкретную реализацию?
Аноним 29/05/23 Пнд 02:44:13 #557 №2714644 
>>2714601
Имеется ввиду в одном пекейдже, что бы неймспейсы были одинаковые
Аноним 29/05/23 Пнд 07:41:12 #558 №2714677 
>>2714644
Спасибо, еще вопрос появился - насколько низкоуровневая разработка на гошке? В том смысле, что насколько много приходится изобретать велосипедов и писать инфраструктурный функционал под свои задачи (начиная от пресловутых реализаций структур даных, заканчивая клиентами для месседж брокеров и пулом коннектов к БД)
Какие нужные знания в целом по cs, чтобы жопа не горела?
мими-крудошлеп
Аноним 29/05/23 Пнд 09:47:03 #559 №2714748 
>>2714601
>объявлять интерфейсы там, где собираешься их использовать
А потом наеьнуттся об циклические зависимости.
Аноним 29/05/23 Пнд 11:33:31 #560 №2714874 
Прошел го-тур, после того, как прочию книжку по гошке из оп-поста, то можно вкатываться на мидла при условии наличии бекграунда в 3 года в вебне и интерпрайзе?
Аноним 29/05/23 Пнд 14:58:14 #561 №2715165 
>>2714874
Разрешаю. Надрочи руку на каком-нибудь пете да сходи на собес, хуле как маленький.
Аноним 29/05/23 Пнд 19:28:32 #562 №2715694 
>>2715165
Первый мой свич языка, трясуся
Аноним 31/05/23 Срд 11:34:35 #563 №2717234 
Кто-нибудь может пояснить почему, если функция возвращает значение как указатель на структуру, то можно не присваивая результат переменной обратиться к полям структуры, а если возвращает саму стркутуру, то это ошибка. В спеке эти моменты подсвечиваются в контексте адресуемости значений, но не понятно, почему с указателями это работает.
Аноним 31/05/23 Срд 14:34:17 #564 №2717456 
31wednesday143157.jpg
>>2717234
Что-то не понял. Вроде бы и так и так все ок.
https://go.dev/play/p/mHiR80nhAz2
Аноним 31/05/23 Срд 17:46:33 #565 №2717728 
>>2717234
мб ты про методы с поинтер ресиверами? чтобы их вызвать нужно адресуемое значение (ну так как нельзя получить поинтер на неадресуемое значение)))
Аноним 31/05/23 Срд 23:18:39 #566 №2718078 
image.png
image.png
>>2717456
https://go.dev/play/p/45b_ZMmVBMP
Если результат функции никуда не передавать, то не работает.
Не совсем понятно, почему вернувшийся указатель из one() у компилятора подозрений не вызывает, хотя по сути значение тоже теряется и не используется. В общем адресуемость - мутное определение для меня
>>2717728
https://go.dev/play/p/oJPDl4OTwMs
Не, смотри выше. Поинтресивером может быть переменная-значение, если она адресуемая. (компилятор сам возьмет адрес). Как понимаю, только если методы интерфейса имплементить для поинтер ресивера, то компилятор ругнется, при попытке положить в переменную-интерфейс само значение, а не указатель.
Аноним 01/06/23 Чтв 14:29:02 #567 №2718489 
>>2718078
Потому что результат функции не addredsable. Почему в каких-нибудь плюсах это работает, а в го нет - потому что плюсы это сложный и замороченный язык, а го - простой и понятный.
Что не ясно?
Аноним 01/06/23 Чтв 14:31:56 #568 №2718491 
>>2718489
addressable. Нечто, у чего можно взять адрес. В сях, впрочем, помнится, тоже нельзя было возвращать указатель на локальную переменную
Здесь можно, но его следует приземлить перед использованием.
Аноним 01/06/23 Чтв 16:20:52 #569 №2718609 
>>2718491
В общем, дети, сол и фасол пишутся с мягким знаком, а вилька т тарелка - без
Это понять нельзя, это надо запомнить.
Аноним 01/06/23 Чтв 16:42:31 #570 №2718657 
image.png
>>2718078
есть еще проще пример https://go.dev/play/p/UAizdcpgBWf
Аноним 01/06/23 Чтв 20:23:35 #571 №2718875 
>>2718489
т.е. притвориться, что еслти возвращается указатель, то это указатель на результат функции (указатель сам по себе addresable)
Аноним 01/06/23 Чтв 20:28:01 #572 №2718879 
>>2718491
>нельзя было возвращать указатель на локальную переменную
>Здесь можно.
Становится понятно, что утверждение "Го учится за пару вечеров" не более чем рофл.
Хз как можно догадаться про утерждение выше, хоть и прочитал спеку и effective go
Аноним 02/06/23 Птн 08:49:30 #573 №2719195 
02friday084405.jpg
>>2718078
Потому что результат выполнения функции - это rvalue. То есть подразумевается, что это временный объект который неизвестно где размещен, может быть в регистрах, может быть в стеке или в куче. С указателем прокатывает, потому что это уже и есть адрес по которому можно сходить.
Вот хороший видос по теме. Там хоть и плюсы, но эти концепции универсальные для всех языков. https://www.youtube.com/watch?v=XS2JddPq7GQ
Аноним 02/06/23 Птн 17:43:50 #574 №2719750 
>>2719195
Дело как раз в том, что с увкащатеоем НЕ прокатывает. Пока ты его не засунешь во внешнюю переменную.
Аноним 02/06/23 Птн 18:20:47 #575 №2719800 
>>2718879
>нельзя было возвращать указатель на локальную переменную
>Здесь можно.
> Становится понятно, что утверждение "Го учится за пару вечеров" не более чем рофл.
всмысле? тут просто убран кейс, на котором валятся новички в сишке. ну люди без знания сишечки о нём даже знать не будут.
Аноним 02/06/23 Птн 18:24:19 #576 №2719808 
image.png
>>2719750
Ну вот же ты сам делал пример.
one - указатель на структуру - компилятору норм, rvalue - это адрес по которому есть это поле, ошибки нет.
two - структура - компилятор негодует, неадресуемое rvalue, которое хуй знает где, проверить есть ли у него поле он не может, потому что нет адреса где живет эта ебола
Аноним 02/06/23 Птн 21:50:15 #577 №2720022 
>>2719808
А для rwo() при этом эфемерная копия значения, тут же исчезающая, имеет адрес и а нее можно положить значение.
В общем, классическая сол и фасол.
Аноним 02/06/23 Птн 21:56:19 #578 №2720024 
>>2720022
>имеет адрес
Не имеет адрес, а это и есть адрес.
Аноним 03/06/23 Суб 19:26:42 #579 №2720771 
>>2719808
Это защита от вкатунов-долбаебов, указатель еще логично менять, но нахуя менять тебя копию - уже интересный вопрос
Аноним 04/06/23 Вск 16:59:41 #580 №2721308 
Как часто приходится заниматься подобной еблей с указателями?
Или это прямо терминальный корнер кейс, который на практике не встречается
Аноним 04/06/23 Вск 19:49:34 #581 №2721460 
Чё, ребят, сложный язык? Вката нет?
Аноним 04/06/23 Вск 23:27:58 #582 №2721621 
>>2721460
перед тем как вкатываться научись программировать епта. у нас тут на сеньоров приходят собеситься всякие контекст заюзать не могут
Аноним 05/06/23 Пнд 00:48:08 #583 №2721656 
>>2721308
редко. в редких случаях, когда ты встречаешься с тем, что у тебя что-то не аддрессабл, то в первую очередь загорается жопа LSP, потом тебе IDE красно красным светит на весь дом, что так делать нельзя и ты пишешь еще строчку, чтобы сохранить залупу в переменную. тут буквально одна редкая проблема с одним самым простым решением.

а вот nil разыменовать получается намного чаще. обычно выливается в то страдание, что тебя на PR просят добавить проверку на nil. ну или прод начинает пятисотить, но это реже.
Аноним 06/06/23 Втр 12:14:16 #584 №2723057 
>>2665435 (OP)
Кто-нибудь пишет опенсорс проект? Или может стартап? Готов бесплатно или почти бесплатно(если вы все же зарабатываете деньги с проекта), писать код на Go,
опыт коммерческой разработки - 3 года, писал всякое разное на питухоне, начиная от крудов на джанге, заканчивая простыми ML моделями для бизнеса(деревья решений, классификация), потом упоролся в низкий уровень, компуктер сайнс. Поскольку работу найти де факто невозможно, если не из РФ(т.е озон, вб, сбер отпадают), нужно поддерживать скилл.

Пишите
[email protected]
Аноним 06/06/23 Втр 17:15:27 #585 №2723531 
>>2723057
Может телегу сразу дашь? Есть один пет проект, опишу, интересно тебе будет или нет
Аноним 06/06/23 Втр 18:22:54 #586 №2723675 
>>2723057
есть один проект, зарплата до 30к в день. ссылка в телеграме
Аноним 06/06/23 Втр 18:57:46 #587 №2723737 
>>2723675
> 30к в день
Зимбабвийских долларов?
Аноним 06/06/23 Втр 22:59:24 #588 №2723942 
Еле как написал первый минорный сервис в прод на гохе и понял, что нихуя не понимаю в гошном стиле и бест практисах после другого языка с сахарком и гибкостью.
Что делают вместо дефолтных аргументов и опциональных значений (и как отличать опциональные значения от отсутствующего если делать через неприсвоенную переменную), как справиться с вездесущим if err != nil и т.д.
В общем, где можно посмотреть идеальный код со множеством кейсов где все разложено по полочкам с объяснениями, может даже книжка/статья найдется.
Аноним 07/06/23 Срд 08:21:17 #589 №2724103 
>>2723942
>дефолтных аргументов и опциональных значений
https://go.dev/play/p/ua84ZSOSL70, но это как-то уродски

>if err != nil
в effective go есть пример https://go.dev/doc/effective_go#recover, где можно обыграть внутри своего пакета отлов ошибок на верхнем уровне. Если ошибка кастомная, то обрабатываем, если нет, то паникуем.
Аноним 07/06/23 Срд 09:58:17 #590 №2724139 
>>2723675
Юзернейм, вы когда нибудь слышали о ПИ ТУ ПИ торговле?))0


>>2723531
https://t.me/ errconnnill
Аноним 07/06/23 Срд 16:38:16 #591 №2724695 
Не могу придумать идею для пет проекта, в голову лезут велосипеды и банальщина. Подкиньте идей, плес. Желательно, чтобы применить канкаренси и очереди.
Аноним 07/06/23 Срд 16:40:53 #592 №2724699 
Не могу придумать идею для пет проекта, в голову лезут велосипеды и банальщина. Подкиньте идей, плес. Желательно, чтобы применить канкаренси и очереди.
Аноним 08/06/23 Чтв 12:38:23 #593 №2725651 
В пистоне есть удобные средства для контроля горутин и отслеживания их состояния типа gather, wait_for, Task, as_completed и т.д.
В ГО есть что-то подобное или нужно только вокрун каналов, вейт груп и селектов плясать?
Аноним 08/06/23 Чтв 13:04:38 #594 №2725705 
>>2725651
А чем тебя не устроили чаннелы, вг и селекты? Они буквально для этого и создавались, шиз
Аноним 08/06/23 Чтв 13:21:12 #595 №2725727 
>>2725705
Я привык обмазываться сахаром
Аноним 08/06/23 Чтв 14:35:00 #596 №2725893 
>>2725727
Ну тогда обмажься враппером вокруг них, лол
Аноним 08/06/23 Чтв 23:35:06 #597 №2726557 
image.png
Что я делаю не так? Почему так мног err != nil, как от их избавиться?
Аноним 09/06/23 Птн 09:11:16 #598 №2726739 
>>2726557
Зачем от них избавляться? Если функция может вернуть ошибку, то естественно что ее нужно обработать. Если тебе похуй то можно использовать _ и не проверять ничего.

Алсо, очень удобно оборачивать ошибки на каждом уровне через fmt.Errorf("хуе-мое не могу отправить: %w", err) и передавать на самый верх в main. Так если ошибка возникнет, получишь полный и удобный стектрейс по которому найдешь проблему за несколько секунд.
Аноним 09/06/23 Птн 20:54:56 #599 №2727695 
>>2726557
>как от их избавиться?
lo.Must()
Но это не Ъ-путь, Ъ-гоферы руками делают работу языка.
Аноним 09/06/23 Птн 21:24:36 #600 №2727736 
>>2727695
А ещё у тебя сгорит жопа от того, что 3 это не 2+1.
Аноним 10/06/23 Суб 04:40:56 #601 №2728025 
>>2726557
это особенность языка. через какое-то время начинают появляться подозрения, что функциии, не возвращающие ошибки и не принимающие контекст на вход могут делать сетевые вызовы ниже по стеку даже если это не так.
Аноним 10/06/23 Суб 04:53:19 #602 №2728026 
>>2726557
алсо
>зачем-то копируется поинтер на дефолтный хттп клиент, который юзается 1 (один) раз
>конструктор реквеста без параметров может зафейлиться
>err = errors.New(fmt.Sprintf())
>анмаршал и рид жсона в два шага вместо json.NewDecoder().Decode() без каких-либо действий, которые бы оправдывали это
Аноним 10/06/23 Суб 09:43:19 #603 №2728065 
>>2728026
годно, спасибо
>конструктор реквеста без параметров может зафейлиться
Имеется в виду makeAuthRequest? Реквест по сути статичный, параметры подставляются из env
Аноним 12/06/23 Пнд 23:46:28 #604 №2730853 
Сколько нужно гоферов, что бы перекатить тред?
Аноним 13/06/23 Втр 16:54:24 #605 №2731576 
>>2730853
Они слишком заняты проверкой на nil
Аноним 13/06/23 Втр 18:54:17 #606 №2731771 
>>2731576
ну так новый тред nil, время паниковать
Аноним 13/06/23 Втр 23:43:15 #607 №2732168 
>>2731771
Какая паника? В го так не приятно, мы обычно правильно хендлим ошибку, а не просто выключаем комп от сети
Аноним 14/06/23 Срд 00:18:26 #608 №2732215 
>>2732168
>правильно хендлим ошибку
То есть аккуратно, руками, чтобы ничего не напутать, передаём nil наверх.
Аноним 14/06/23 Срд 11:46:56 #609 №2732495 
Аноны поясните за горутины
Не как они работают, а области их применения?
Можно ли, допустим ,получив структуру Some у которой есть n вложенностей, которые необходимо заполнить, заполнить вызвав n горутин, каждая их которых изменит изначальную структуру Struct?
Аноним 14/06/23 Срд 12:10:23 #610 №2732538 
>>2732495
Многопоточность - это про ввод/вывод во всех языках программирования. Её не надо применять, работая в оперативной памяти.
Аноним 14/06/23 Срд 15:49:45 #611 №2732778 
image.png
>>2732495
>Можно ли, допустим, получив структуру Some у которой есть n вложенностей
Можно, только в твоем конкретном примере частный случай, параллельность.
https://go.dev/play/p/KTM1booW8Y9
Анон выше правильно заметил, что многопоточность скорее про асинхронность
>>2732538
Смотря какая задача стоит, если каждая операция съедает много процессорного времени, а отклик нужен быстрый, т оимеет смысл распараллелить вычисления. Но тут еще сложности вылезают с подсчетом оптимального числа горутин и как их шедулер раскидать между ядрами вообще не ебу пока что.
Аноним 14/06/23 Срд 16:06:30 #612 №2732791 
>>2732778
Go самостоятельно раскидывает по ядрам процессора тяжелые матаны и самостоятельно дробит байты в раме под эти расчёты. Если ты хочешь поиграть в русскую рулетку со своим коленом, то есть инструменты ручного управления этими вещами.
Аноним 16/06/23 Птн 01:35:36 #613 №2734650 
>>2732495
ну вполне обычный паттерн. есть какая-нибудь структура, аггрегирующая разные сущности, в горутинах запускаются сетевые походы в сервисы, которые отдают эти сущности, их ответы складываются в одну структуру (ну чаще там еще какие-нибудь действия над ответами идут и структура формируется уже после обработки) и т.п.
Аноним 18/06/23 Вск 22:10:16 #614 №2737715 
Я недавно написал программу на го и мне норм.
Go тред №24 go Аноним 21/06/23 Срд 18:52:26 #615 №2740791 
golang.png
st,small,507x507-pad,600x600,f8f8f8.jpg
memehu32ae5b6d8c28dbcbf56896d360aa1ea760333660x0resizeq75box.jpg
Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, имеет богатую и универсальную стандартную библиотеку и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де-факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

С чего начать:
- В обязательном порядке проходим Go Tour: https://go.dev/tour/welcome/1
- Читаем документацию (рекомендуется начать со спеки и Effective Go): https://go.dev/doc/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)

Литература:
- Донован, Керниган "Язык программирования Go"
- Также хорошие книги для начала: https://www.golang-book.com/ и https://www.practical-go-lessons.com/ (веб-версия - бесплатная и хорошо подходит для новичков в программировании)
- Книги из списка https://github.com/dariubs/GoBooks

Полезные ресурсы:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/
- Смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw
- Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшая конфа треда: https://t.me/golang2ch более чем живая!

Предыдущий тред тонет здесь: >>2665435 (OP)
Аноним 21/06/23 Срд 18:53:59 #616 №2740793 
>>2740791
Перекатите, по-братски, руки из жопы
Аноним 21/06/23 Срд 21:08:21 #617 №2740950 
>>2740793
Не проверил на nil, признайся честно?
Аноним 30/06/23 Птн 12:31:33 #618 №2748919 
Есть ли перекат?
Аноним 30/06/23 Птн 18:22:57 #619 №2749405 
>>2748919
https://2ch.hk/pr/res/2740805.html
comments powered by Disqus

Отзывы и предложения