Этого треда уже нет.
Это копия, сохраненная 1 июля 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Go тред №23 /go/ # OP 2665435 В конец треда | Веб
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)
2 2665440
>>665435 (OP)
Ты создал ещё один тред, но R всё ещё лучше чем Go.
3 2665472
А где третий тред? Чёт не могу найти, только эти два.
4 2665493
>>665472
По тегу 3 треда, дебил
5 2665495
>>665493
Так свежЫх только 2! Один тухлый! Лера, ТУХЛЫЙ!!!
6 2665509
>>665493
Дебил, ты не понял нихуя. По тегу два 23-х треда, а надо три.
7 2665512
>>665509
Какой же ты тупой. По тегу два 22-х.
8 2665529
>>665512
Ну ты и даун.
9 2665535
Так чем го лучше шарпа?
10 2665550
>>665535
Использует UTF-8 и расходует в 2 раза меньше памяти на строки
11 2665568
>>665555 (Del)
Не мог сказать, чтобы на русский сразу переводил?
12 2665581
>>665555 (Del)
Доставьте ролик с /dev/null is web scale
13 2665610
>>665595 (Del)
Всё перечисленное есть в /dev/null. А ещё он web scale, как ихвестно.
14 2665662
>>665595 (Del)

>маленький размер двоичных файлов Go


Че блять?
15 2665674
>>665673 (Del)
Бинарники гошки весят как ебучие слоны
16 2665787
>>665535
Полная обратная совместимость. Можно поставить последний компилятор голанга и запускать старые программы. А в дотнете каждый год надо переписывать программы на новый дотнет или маяться с подключением старых дотнетов, которые как правило удаляют из репозиториев и фиг снова установишь.
17 2665791
>>665675 (Del)
Эталонное тольковыигрываете и правота в главном.
18 2665793
>>665791
А ты размер .NET SDK видел?
19 2666195
>>665793
Сейчас бы на втором году СВО думать о размере sdk
20 2666251
>>665793
Он не стендалон а искаробочная шинда, это не считается.
21 2666326
>>666251

>искаробочная шинда


это сколько в гигобитах?
22 2666921
>>665535
Го поддерживает восьмеричные литералы
23 2667002
Ну и кто долбоёб? Если заменить на testfield, то всё отлично работает.
25 2667154
>>667002
Очевидно ты, потому что в репорте написан какой-то нечитаемый бред уровня "я ебаль ийо рука", ну и конечно классика индусоговна "NOT PROPERLY WORKING". Олд тебя бы еще назвал говноедом и обоссал, но очевидно мейнтейнеру КоК этого не позволяет, так что он послал очередного долбоеба нахуй максимально вежливо.
26 2667158
>>667154
Так это не моя ишью, она же вообще от 18го года. Просто я сейчас столкнулся с этой проблемой, нагуглил только это.
27 2667180
>>667158
Тогда /s/ты/индус-репортер.

Зарепорти нормально. В тестах у них по крайней мере я конкретно этого кейса не нашел, так что. Конфёрмить лень, сорян
image.png90 Кб, 290x221
28 2667200
29 2667427
В чём отличие объявлений следующих функций:
func FuncName(arg []any)
func FuncName[T comparable](arg []T)

Чатгопота мне затирает, что во втором случае якобы нельзя принять слайс с различными типами, а он прекрасно обрабатывается в обоих случаях. Так в чём же отличие?
30 2667437
>>667427
Точно обрабатываются? Строки, целые и флоаты в одном слайсе?
31 2667460
>>667437
Да. Сейчас обнаружил различие. Первый случай обрабатывает только интерфейсный слайс. Сколько же пиздабольства я сейчас выслушал от чатгпт. Абсолютно противоположное утверждала.
image.png22 Кб, 232x217
32 2667477

>Действительно, при передаче []string{"hello", "world"} в первую функцию func_name(arg []any) не возникнет ошибки


>Так она возникает


>Ой, извините


>Действительно, при передаче []string{"hello", "world"} в первую функцию func_name(arg []any) не возникнет ошибки



Программист уровня /b/. Гопоте еще даже вкатуном не быть.
33 2667545
>>667427
В том, что в одном случае у тебя тип any, а во втором - comparable. ты аутист?
34 2667583
>>667427

>Чатгопота мне затирает, что во втором случае якобы нельзя принять слайс с различными типами


ну это верно. в []any у тебя в каждом элементе могут быть совершенно разные типы.
а в []T у элементов будет один тип, который соответствует констрейнту. т.е. нельзя float32 и int например смешать.
35 2667590
>>667002
вроде работает??
https://go.dev/play/p/5-wVk8CEd6h
36 2667603
>>667545
До этого момента не понимал, что any - это такой же тип, как и int, string, etc.

>>667583
Ботяра затирал, что во втором случае []any{"hello", 123, true, 3.14} вызовет ошибку, хотя это не так.
37 2667650
>>667590
Лол, действительно. Попробовал твой код на локалхосте запустить, тоже всё работает. Мистика какая-то. Спасибо!
38 2667828
А правда, что в голанге тоже надо ставить какие-то левые программы на комп и генерировать в них миграции?
39 2667860
>>665550

>Использует UTF-8 и расходует в 2 раза меньше памяти на строки


Ебать перемога.
40 2667983
>>667603
не такой же
41 2668063
>>667828
Что ты имеешь ввиду под миграциями? Если про создание таблиц в бд, то у тебя есть CREATE TABLE IF NOT EXISTS, буквально ее любая тулза для миграции и заводит лол
42 2668067
В голанге вообще нельзя получить доступ к значению ключа через поинтер? Нижеуказанное не работает со второй строки.
mymap := map[string]int{"a": 1}
point := &mymap["a"]
*point = 2
43 2668075
>>668067
map[string]*int, мапы это не обычная переменная, тебе возвращает копию, а не сам элемент, что вполне ожидаемо
44 2668078
>>668075

>map[string]int



Это надо тогда кучу переменных пихать. Типа:
var1 = 1
mymap := map[string]
int{"a": &var1 }
Без такого оверхеда вариантов нет?
45 2668079
>>668078
Блядский двощ сожрал астерикса.
46 2668084
>>668078
Так ты в любом случае так или иначе будешь из переменной какой то его пиздить, а не добавлять вручную, и про какой ты оверхед я что то не поняла, уж выделить 4 байта на указатель процессору будет явно не тяжело, поверь
47 2668088
>>668084
Понято, принято. Благодарю. Сиськи с супом где?
48 2668105
>>668084
Дополню

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

func newPtr[T any](val T) *T {
return &val
}
49 2668136
>>668063
Я не знаю, что такое миграции, потому что нигде толком про это не пишут. Слышал, что надо скачивать программы с гитхаба от левых чуваков и они генерируют эти миграции. Зачем? Не знаю.
50 2668155
>>668136
Тогда нахуя ты пишешь про них?
51 2668171
>>668155
Вдруг меня на собесе спросят про миграции
52 2668197
>>667828
1. Это вообще не связано с языком. Ты можешь тот же ликвибейз взять и использовать.
2. Если нормальная прод система, то да надо использовать и миграция это отдельный шаг выката на прод.
53 2668202
>>668197
Нужно ли вкатуну их учить?
54 2668211
>>668202
Я бы сказал - нет, достаточно знать что они есть и представлять как в целом они работают. Но сколько компаний столько и мнений, меня пару раз в тестовых просили создавать базу с помощью системы миграций.
я правда не вкатун
55 2668336
Как правильнее объявить пустой слайс? Нахуя нужны два оставшихся, когда ты назовёшь наиболее кошерный?
a := []int{}
b := *new([]int)
c := make([]int, 0)
56 2668387
>>668067
Иди читай учебник "алгоритмы и структуры данных", 1 курс любого технического вуза. Чтобы более не задавать подобных вопросов.
57 2668389
>>668336

>Нахуя нужны два оставшихся


Это же ГОВНОЛАНГ, простой язык! Поэтому мы добавили десять синтаксисов для каждой фичи, а также завезли неоднозначность грамматики, ну чтоб было веселее. Простота!

>a := []int{}


this
58 2668404
>>668387

>Алгоритмы


Рано ещё, но обязательно буду.

>Структуры данных


А вот здесь охуел, копнув лишь немного. Оказывается все языки программирования их повторяют один в один. Спасибо, читаю.
59 2668432
А есть какая-нибудь книга по gin?
60 2668437
>>668404
не все
не один в один
61 2668670
>>668336
=a := (&((&((&((&(*(&[]int{})))))))))
image.png13 Кб, 598x141
62 2668671
>>668670
ну кроме ебаной макаки я думаю все поняли что я имел в виду
63 2668700
>>668067
Я понял, что ты хочешь сделать. Так делать не надо. Даже если бы было возможно - не надо. Не делай так. Поверь дяде, кака это плохо, брось каку.
64 2668719
>>665435 (OP)
гайсы, а есть у кого программа/скрипт, чтобы копировать все медиа с треда?
Готов купить тг @dima_ermolaev1999
65 2668749
>>668700
То есть не очевидные шаманства с массивами и срезами через поинтер это не кака, а тоже самое с мапой уже кака?
66 2668766
>>668336

>c := make([]int, 0)


this
67 2668806
>>668749
Мапа в го периодически двигается в памяти с места на места. Надо тебе ебатория о том почему у тебя вдруг указатель указывает на нихуя и ты внезапно ловишь сегфолт? Надо бля?
68 2668811
>>668749

> неочевидные шаманства через поинтер


Это кака. Бобо. Фу. Запомни это.

PS Капча говно
69 2669227
Объясните эти 2 момента плиз

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

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

пик 2. Пустой слайс поначалу. Добавили 0, длина - 1 и объем - 1.
Потом добавили 1. Длина - 2 и объем - 2.
Потом сразу 3 цифры добавили. Длина стала 5. Но почему объем стал 6?
70 2669241
>>669227
Ну значит щенок слушай

>1. Почему capacity слайса уменьшается только в этом моменте


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

>Тут мы выкинули первые две цифры из слайса ~snip~


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

>~latest snip~


А все просто, собсна капасити увеличивается не так, как увеличивается длина, капасити у нас длина помноженная на два, и собсна увеличивается, если при добавлении у тебя len > cap становится, после тысячи там уже по 10% только добавляется
71 2669247
>>669241
Если тебе нужно прям конкретно почитать как работает конкретно сейчас - https://github.com/golang/go/blob/master/src/runtime/slice.go#L157

Надеюсь я помогла тебе понять что это такое
72 2669267
>>669241
>>669247
Спасибо
73 2669406
>>668719
Dollchan
74 2669565
Короче, я готов признать, что я макака, который не знает как работает этот ёбанный multipart/form-data
Проблема некст: нужно получать мультипарт частями и отправлять полученную часть на другой сервер (minio), не записывая весь файл в память, так вот возник вопрос, есть ли возможность это реализовать или это ебанина такая же как и мой говнокод, который я настругал, пытаясь решить эту задачу?
75 2669628
>>669565
Отправлять тоже частями, а как ты собираешься иначе сделать, не держа в памяти?
76 2669632
>>669565
Учись у лучших умов - создателей 1С битрикса. Хуяришь гигабайтный файл в base64 и все
77 2669633
>>669227

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


>s = s[:4]


>объем слайса не уменьшается?


Ну допустим твой слайс [0:5] это длина от Москвы до Нижнего Новгорода и он уже аллоцирован. Если ты обрезаешь его [2:5], то это расстояние от Петушков до Нижнего Новгорода. Аллоцировано при этом всё расстояние от Москвы, но ехать тебе только от Петушков до НиНо и не дальше. А если обрезать [:4], то это расстояние до Дзержинска от Москвы, но при этому у тебя есть уже аллоцированный запас до НиНо.
78 2669635
А если серьезно то режь файл https://developer.mozilla.org/en-US/docs/Web/API/Blob/slice на куски и складывай их на диске обратно в файл.
perenos.jpg63 Кб, 874x405
79 2669820
Вопрос про оформление кода.
Как правильно переносить длинные строки кода? К примеру, есть длинная строка с сигнатурой метода, то как её перенести на новую строку, чтобы было красиво, читабельно и идеоматично?
Если просто какой-то параметр функции перенести, то он выравнивается по первому табу и сливается с кодом ниже. В итоге получается не читабельно, но именно так выравнивает линтер. Может надо делать как-то по другому?
80 2669976
>>669820
Как делает go fmt так и писать
81 2670025
>>669820

>Как правильно переносить длинные строки кода?


Не писать их. А если тебе приходится, то у тебя как раз проблемы
82 2670070
>>669820

>reflect


>interface{}


>panic


Ебать у тебя там целый обитель говнокода, тебя в школе обижали, да?
adamfreeman.jpg5 Кб, 196x257
83 2670171
>>670070
Хочу, чтобы было всё как в дотнете
84 2670195
>>669406
спасибо тебе добрый человек
85 2670234
>>670171
Не выйдет. Если хочешь писать на дотнете, надо писать на дотнете.
86 2670277
>>670234
Дак никто не скидывает книгу, где пишут реальное веб-приложение не как в дотнете. Единственный, кто показывает как можно написать реальное веб-приложение, пишет всё как в дотнете. Приходится разбираться в этой дотнет параше с рефлексией и тонной абстракций на абстракциях.
87 2670296
>>670277
А нахуя тебе для этого целая книга, шизоид
88 2670341
>>670296
Книга даёт гарантии, что информация достоверна, не оборвется на полуслове, можно планировать своё обучение.
Видосики не нравятся, в них много мусора и темп редко совпадает с моим. Автор либо тараторит, либо засыпает. Ещё раздражает, когда полчаса разглагольствует, а потом за 5 минут торопится выдать всю инфу. Встречались даже курсы, где препод не успевал дописать программу за пару, в итоге у тебя оставался незаконченный пример. С книгой такого нет.
89 2670347
>>670341

>что информация достоверна


Кто-то расскажите ему что за люди пишут эти книги))))
91 2670362
>>670347
Дак что ты предлагаешь? Как научиться писать реальные веб-приложения профессионального уровня?
92 2670401
>>670356
Так, блеать. Я тоже где-то читал, что len и cap зашиты в коллекции. Насколько тяжки для приложения частые вызовы len() и cap()?червяк
93 2670433
>>670401
len() и cap() это метаданные переменной твоего слайса
https://github.com/golang/go/blob/master/src/runtime/slice.go#L15

Вызывать их тоже самое, что и спиздить поле из структуры, можно зааппендить в какой то слайс новые значения (главное что бы капастили не привысилось), тогда ты увидишь фокус, что сама длина массива как бы уже выше, но len твоей переменной все равно остался прошлым
94 2670444
>>670433
Какая ещё опасность кроется в превышении capacity? Поинтеры сразу слетают при перераспределении?
95 2670445
>>670444
Это просто для примера, что у тебя метаданные капасити и длины остались теми же, но при этом фактическая длина выше прошлой
96 2670446
>>670356
Из не инициализированной map можно читать она ведет себя как пустая, а вот при попытки записи будет паника. Решение крайне хуевое, потому что нужно знать про эту "фичу" когда дебажишь сообщения с паникой.
image.png23 Кб, 741x340
97 2670457
>>669820
ну я стараюсь этих двух вариантов придерживаться, aka единственные два варианта, где перед телом нет отступа и тело визуально не смешивается с сигнатурой. gofumpt помогает.

гугл конечно советует переносами не упарываться https://google.github.io/styleguide/go/guide#line-length
98 2670459
Чё то тяжело ваш го идёт после тайпскрипта.
99 2670466
>>670446
>>670457
В чем проблема сделать структуру, если у тебя настолько много параметров? Если больше 3, значит однозначно нужно делать
100 2670468
>>670444
Мда, поинтер остаётся на старом адресе и можно соснуть крепко.
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)
101 2670473
\ тест \*
102 2670476
>>670468
А как ты собираешься это хотя бы теоретически реализовать, у тебя физического места нету, а значит нужно делать новые указатели, переносить куда то их, ничего странного в этом поведении нету, это вполне ожидаемо, такое везде
103 2670488
>>670476
Ожидаемо для тех, кто давно рулит памятью. Питонистам и прочим скриптомакакам не очень ожидаемо.
104 2670490
>>670488

>Ожидаемо для тех, у кого больше полторы извилины


не благодари
105 2670501
>>670459
Если надо, могу помочь с чем то в телеге, но скорее буду отвечать на вопрос/ответ как что работает или как что сделать, менторить прям полноценно не смогу, только вопрос-ответ
106 2670506
>>670501
А потом тред в /b/ с диваноном и травлей вкатуна. Уже было.
107 2670510
>>670506
Синдром бога, ты?
@mentallyunstabledev
108 2670515
>>670510
Не я. А там омежку какого-то по приколу обвинили в програмирывании краж денег с карт. Майоры с двача вызывали мамку вкатуна на допрос.
109 2670534
>>670501
Спасибо. Но думаю зря потрачу только твое время. Я вкатываться во фронт буду. Бэк слабо знаю. И ещё не определился на чем изучать его. Параллельно ковыряю пхп, сишарп и го. Но все же склоняюсь к пхп. Уж слишком мало у меня говакансий
110 2670540
>>670466

>Если больше 3, значит однозначно нужно делать


а я так не считаю
111 2670544
>>670540
Тогда не жалуйся, что у тебя миллион аргументов везде выходит лол
112 2670559
>>670544
таки я не жалуюсь
113 2670652
>>669565
А в чем конкретно проблема? Перекидываешь из одного сокета в другой через фиксированный буфер в памяти. Что именно у тебя не работает в таком подходе (самому интересно)?
114 2670655
>>669820

>красиво, читабельно


>голанг тред


))
115 2670693
>>670466

>В чем проблема сделать структуру, если у тебя настолько много параметров? Если больше 3, значит однозначно нужно делать


Это не имеет отношения к тому, что я писал.
116 2670702
>>670693
У пастерка задели его эго :XXXXXD
image.png1 Мб, 630x1280
117 2670705
Сап, двач. Мимо пхп-макака. Работаю в финтехе, не веб-мастер не подумайте.

Есть ли вкат, и нужен ли?
118 2670826
>>670705
Вкат есть, но голанг не выучить, потому что никто не пишет как писать реальные приложения на нём.
119 2671114
>>670826

Шо за локальные мемы?
120 2671137
>>671114
Это нытик вкатун, забей
121 2671143
>>671114
Это не мемы, а ограничение инфы по голангу
122 2671258
>>671114
Это местный шизоид, которому требуется книга по любой хуйне, можешь забить, там уровень айсикью не превышает полсотни
123 2671314
кого из интересных людей можно посмотреть?
Вот у жсеров есть очень толковый Илья Климов, стримы которого всегда интересно смотреть, есть ли кто-то подобный у гошников?
124 2671362
>>671314
Как можно смотреть лекции по программированию? Как вы это делаете, зумеры? Говорящая голова гнусаво полчаса проговаривает то, что можно прочесть за пять минут, а по диагонали - 9а полторы
image.png26 Кб, 310x602
125 2671424
Объясните, пожалуйста, в чём сакральная прелесть помещения методов в интерфейсы? На пике для достижения результата 1 и 2 надо дополнительный код писать, а можно просто вызвать напрямую в примере 3 и 4. Так зачем в документации рекомендуют делать сложнее? В чём профит?
126 2671429
>>671258
Можно подумать, что кто-то что-то не из книг смог предложить. Я привёл пример книги Адама Фримана, где разрабатывается полноценное приложение, а в ответ только насмешки. У вас нет альтернативы или просто не хотите делится из-за жадности. А жадность и глупость всегда идут рядом и явно не признак высокого айсикью.
127 2671450
>>670652
Попробовал много всякой хуйни, по итогу сошлись на мнении, что мультипарт нормально не парсится на части в потоке, а прокидывать полностью не получается, потому что мимы файла теряются при такой передаче(хотя сам файл в потоке сохраняется и оперативу не жрёт, только после выгрузки, ты нихуя с ним уже не сделаешь, потому что из архива получилась тыква). Сначала нужно на принимающем серве закинуть мимы, потом файл. Если есть предложения, как это правильно прокидывать, то было бы неплохо описать процесс, потому что все примеры из этого вашего интернета говна кусок, которые сначала прогружают весь файл с мимами в оперативу, потом льют на другой серв/сохраняют у себя на постоянке
128 2671473
>>671424
ну на практике в 99% случаев чтобы замокать зависимости и написать юнит тесты, покрыв хуево тестируемые кейсы (сетевые походы или неожиданные ошибки от БД например).
в 1% случаев чтобы иметь код, который может работать с разными имплементациями одного интерфейса, потому что бизнес-логика так легче реализуется. (да-да, в сишке как-то без этого костылилось, но все-таки)
129 2671476
>>671424
Конкретно на данном примере это передать сложно. Но представь себе ситуацию, когда у нас ручка идет в базу и еще в несколько мест. Ты как хороший программист будешь писать тесты для этой ручки, соответственно в твоем тесте при этом раскладе тебе придется идти в базу, что не очень хорошо. Куда лучше будет, если твой handler/router не будет зависит от конкретной реализации репозитория а будет просто ссылаться на интерфейс, который должен реализовывать какие-то там методы. В данном случае репозиторий можно очень просто мокнуть и протестировать ручку. Кроме всего прочего когда твоему хендлеру просто нужна хуевина которая условно умеет только Get/Set. То ей по факту вообще похуй на реализацию, это может быть что угодно. База, диск, облако, сесть.
Screenshot2023-04-1319-43-47.png6 Кб, 593x384
130 2671483
Сап. Праздный вопрос. Пишу простенький пет проект, проблема следующая: сил нет очень хочется сделать вот такую абстракцию над мютексами в виде функции, которая принимала бы сам мютекс и какой-то generic-callback, в котором доступы к общей памяти переданный мютекс бы защищал. Моя голова родила что-то вроде пикрелейтед, но оно не очень хочет компилироваться.

Хочу услышать совет, можно ли подобный механизм реализовать вообще и если да, то как это можно эстетичнее сделать.
131 2671486
>>671483
ну ты же в качестве колбека передаешь функцию с другой сигнатурой. ...any это не TestRequest.

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

func safe(lock *sync.Mutex, f func())
132 2671489
>>671473
>>671476
Такое мне ещё не понятно. Это инфа с планеты сеньоров-помидоров. Ладно, разгуглю, как бы это упростить для усвоения.
image.png106 Кб, 806x521
133 2671498
134 2671503
>>671498
Спасибо, отличный перевод. Сразу стало понятно.
135 2671530
>>671486

>f func()


Это такой any для функций? Прикольно.
136 2671533
>>671486
Плагин для VS Code дико тупит на всех этих передачах функций.
Screenshot2023-04-1320-53-51.png6 Кб, 690x300
137 2671544
>>671486
А, значит я не совсем уловил семантику работы сигнатур вместе с any. Просто суть в том, что я хотел бы пробрасывать функции вообще с любой сигнатурой в Locker. Как если бы мой общий тип при каждой конкретной подстановке редуцировался до конкретного типа принимаемой функции. Почитал про дженерики немного и смог родить вот это

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

Но теперь проблема в фиксированной арности моего коллбека, ровно один аргумент принять и ровно одно значение отдать. f func() так же выдаёт ошибку типов. Просто хотелось бы сделать что-то вроде как пикрилейтед в плюсах: есть общая сигнатура функции с переменными типов, при подстановке конкретной функции конкретный типы соответственно выводятся. Но судя по всему так сделать не получится, либо выйдет уродство совсем.
138 2671552
>>671544

> семантику работы сигнатур вместе с any


В го нет ко- и контрвариантности. Это простой язые. Поэтому []byte и any[] - это разные вещи, func() byte и func() any - тоже разные вещи. Иногда их можно скастовать руками.
139 2671556
Киньтесь в меня хорошей ссылкой про юнит-тесты, желательно в применении к го.
140 2671559
>>671556
Юнит-тесты - антипаттерн.
141 2671560
>>671559
Дада, безусловно, и тем не менее.
142 2671568
>>671544
В общем решил всё таки просто func() T передавать, замыкать на аргументах и каждый раз явно возвращаемый тип указывать, вышло что-то вроде такого:

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

Вроде даже выглядит не очень плохо, благодарю всех за пояснения.
143 2671614
Оказывается параметр типа можно превратить в any, а затем натравить на него тайп свитч. Ебануться.
144 2671615
>>671614
Все это уже мало актуально. Дядя Пайк дал вам дженерики.
145 2671617
>>671615
Ну вперёд, сделай жир ьещ any. Это простой язык, и any в нём будет ак туален всегда!

// капча вражда
146 2671621
>>671617
Нехороший ты человек конечно. Из-за таких как ты потом нихуя не очевидно с чем функция работает. Сложно тебе по жизни будет
147 2671647
>>671621
Функция работает с чем надо. Просто нельзя напрямую сделать тайп свитч от T. А от any можно. Простой же язык. Просто сделай переменную, которая тете будет нужна только для проверки типа, сделай из нее any - и проверяй на здоровье!
А ещё мне очень понравились теги структур. Такие себе атрибуты в простом языке, для простых. Работать с которыми можно только в рантайме, а создать только при компиляции. Шикарный дизайн.
148 2671687
>>671568
А зачем тебе собственно возвращать какие то там аргументы, почему так сложно сделать функцию которая не имеет в себе аргументов и ничего не возвращает? Это будет удобнее и понятнее лол
149 2671691
>>671687

> А зачем тебе собственно возвращать какие то там аргументы


Потому что я хочу сделать обёртку над уже имеющимися функциями, которые возвращают определённые значения. Более конкретно, я для себя пишу бек сервера, которые жсонки принимает и возвращает. Вот у меня есть такая функция для обработки конкретного запроса:

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

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

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

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

> удобнее и понятнее


имхо.
543DB929-7DB9-4D29-B3A0-9F40422254FD.png16 Кб, 270x120
150 2671692
>>671691
Мутишь какую то ненужную дичь, которая только добавит лишних строк и лишний уровень абстракции
151 2671693
>>671692
Ну лично мне полезно было, пока пытался это запилить лучше прояснил для себя систему типов местную. Про ненужные абстракции согласен, но это игрушечный проект, а значит полная свобода для экспериментов.
152 2671694
>>671691
Так а зачем тебе этот весь оверхед в итоге то?
153 2671696
>>671694
Эстетично выглядит.
154 2671698
>>671696
Ни капли, классический mutex.lock() с анлоком выглядит куда чище лишних абстракций и усложнений кода, как и будет отсутствовать оверхед, но лучше всего использовать атомики и синк.мапы, если у тебя дело с переменными и их не слишком много
155 2671806
Go by example в миллион раз лучше Го тура. Ебал в рот этот тур.
156 2671833
>>671424
А в чем смысл создания переменной с интерфейсом и присвоения ей объекта Nums?
мимо неофит
157 2671839
>>671806
Только ни тот, ни другой не рассказывают как писать реальные веб-приложения.
158 2671847
>>671839
Похуй, я же не макака как ты чтобы не разобраться
159 2671852
>>671839
Попробуй сначала на ноде писать, на express. На ютубе миллион видосов обучающих как вебдрисню писать. Потом на голенге возьми ozzo-routing (очень похоже на express) и перепиши с ноды на гошку.
160 2671965
>>671691

>Не очень понимаю, как здесь без возвращаемого значения. На ум приходит только так же переменную завести и потом на неё замыкать, а после выхода возвращать, но это получается не


это классический паттерн. Once.Do тебе не возвращает ничего, errgroup.Go возвращает только ошибку, которая используется в самой логике errgroup и так далее. уже вангую варианты "для удобства" с двумя значениями, а еще значением и ошибкой
161 2672080
>>671314
Если хочешь интересных людей, то смотри в сторону хаскелля, кложи, эрланга, ну раста на худой конец. Там сильные комьюнити.
162 2672086
>>671530
Нет.
163 2672138
>>672086
,Жаль.
164 2672207
Нужно ли знать РНР, чтобы устроится голанг-программистом?
165 2672209
>>672207
От вакансии зависит. Но обычно если и требуется то попадает под раздел "желательно"
166 2672235
>>672209
Дак желательно голанг, а РНР обязательно
167 2672265
>>672235
Чаще всего да, но обратное тоже попадаетя
168 2672386
Ну и говённая документация у голанга. На официальном уровне пишут, что за подробностями пиздовать в васянские блоги 10-х годов выпуска.
169 2672390
>>672386
А про написание реальных веб-приложений вообще ничего не найдёшь
170 2672392
>>672386
Какой язык - такая и документация.
171 2672447
>>672386
Это где такое?
172 2672457
>>672447
https://go.dev/blog/all мб this. кстат кульная фича и не духота.
173 2672459
>>672457
Какая фича-то? Blog index?
174 2672460
Зашёл в документацию gin, а там вместо документации какие-то рофельные странички из разряда: смотрите, наш фреймворк используют солидные челики. А где описание вашего фреймворка? Туторы?
175 2672467
>>672460
Gin это вообще рофель. "Посоны, смарите Hello World! Поняна? Ну дальше сами разберётесь. Вот сорцы".
176 2672470
>>672467

>"Посоны, смарите Hello World! Поняна? Ну дальше сами разберётесь. Вот сорцы".


Ты только что гугель вей.
177 2672471
>>672459
там лобают всякие секретные приколдесы на гошечке без нудных рассуждений
178 2672472
>>672471
Типа?
179 2672473
Заебали ныть. Хочется документацию как в жабе или шарпе - пишите на жабе или шарпе.
180 2672474
Чет рил многовато нытиков стало. Какого хуя вкатунье и low level говно с других языков прется сюда? GO для сильных спецов на нем нет вкатунства. Пиздуйте в пхп и не возвращайтесь оттуда
181 2672477
>>672474
В мвп-треде сказали, что в го самый высокий рейтинг вката
182 2672478
>>672472
ну тип всякие неочевидные трики вообще со всем. читай там кульней любых доков
image.png21 Кб, 270x120
183 2672481
>>672477
напиздели

дай деняк
184 2672487
>>672477
Сук, тебя затралили челик. Неиронично тебе советую, иди в пхп тред и если балду не будешь гонять, года через 3 возвращайся
185 2672505
>>672487
А можно в сишарп-тред?
186 2672513
>>672505
У тебя талант выбирать неудачные решения. С сисярпом туговато в Рашке будет после ухода микрософта. Может и не будет но есть риск обосраться по итогу пытаясь вкатиться туда
187 2672517
>>672505
Первым языком лучше питон или пыху или жаву брать. Байтоёбство в го/с/крестах/шарпах без дроча матанов в вузе == лютое падение мотивации от постоянных проблем с пониманием.
188 2672518
>>672513
А как в Рашке будет с Go после ухода гугла, м?
189 2672541
>>672513

> после ухода микрософта


А какое отноешние мелкософт в России имеет к рынку шарпа?
190 2672542
>>672518
Go простой инструмент и не так зависим от экосистемы как огромный неповортливый сисярп энтерпрайз
191 2672543
>>672541
тебя это ебать не должно
192 2672544
>>672542
>>672543
Убедили, буду вкатываться в шарп. Спс.
193 2672548
>>672478
Сходил прочитал про дженерики. Ничего нового или хотя бы интересного - здесь можно, а здесь нельзя потому что убогий недоязычок не разрешает вам делать это
194 2672567
>>672544
Только не ной потом что никуда не берут
195 2672663
>>672567
На шарпе крайне много вакансий в рф, на гошке считай их вообще нету, сравнивая с шарпом.
Но на шарп если джуном идти, то там фуллстек в основном
196 2672696
>>672663

>На шарпе крайне много вакансий в рф


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

>на гошке считай их вообще нету


Так гоха и не для тупых вкатунов, сто раз уже поясняли.
197 2672711
>>672696
Заебал пиздеж про шарпы на дваче, особенно от вчерашних пхпшников
Вот вакансии на шарп веб в москве с фильтром по названию:
461 вакансия «(C# or net) NOT unity NOT desktop NOT QA NOT xamarin NOT gamedev NOT wpf NOT winforms»
Покажи сколько на го? Там половина выдачи будет яндекс.го и танцовщицы
198 2672722
>>672711
Ты еблан тупорылый, даже чатгпт и то лучше контекст понимает чем ты. Мы не в вакууме сравниваем шарп и го а конкретно для дауна вкатуси выше. И в контексте этого что шарп что го неудачные выборы.
image.png104 Кб, 949x285
199 2672907
>>672541

>А какое отноешние мелкософт в России имеет к рынку шарпа?


Для шарпа есть две IDE и обе компании ушли. inb4: VS Code не IDE, там нехватает всяких ассистентов для ентерпрайз фигни
200 2672919
>>672907
Пользуюсь Иде от второй компании, не знаю, куда и откуда они ушли, меня это не касается. ЧЯДНТ? А кабанчик могут и прдскочить с Корп. лицензиями.
201 2672921
>>672907
Кстати, чем vs камунити принципиально хуже проф?
202 2672932
>>672919

>ЧЯДНТ?


Пиратишь.

>Кстати, чем vs камунити принципиально хуже проф?


ASP.NET и прочий энтерпрайз не поддерживается.
203 2672981
>>672932

>Пиратишь


Да похуй. Я использую - возможность использования есть, и похуй кто там ушел кто нет. Может ещё и Винду не использовать? Я с виндо был когла мелкософта здесь ещё не было, я с ней и сейчас, когда мелкософта уже нет. И половина страны таких, ну кроме червей-зумеррв, конечно.
204 2673062
Товарищи, совершенно ослеп от мастурбации. Ткните меня носом, где в документации описаны правила написания этой самой документации к коду?
205 2673075
Мне кажется вы меня обманываете, что в голанг не берут вкатунов, а сами хотите занять моё место.
206 2673082
>>673075
Чел, учи любой язык, хоть голанг. Перекатиться на другой потом будет очень легко. Работы для вкатунов действительно нет, ибо требуют хотя бы 2-3 года опыта в разработке на любом направлении.
207 2673102
>>673082
Я собираюсь устраиваться уже этой осенью, а ни когда-то потом. Вообще, хотел уже в мае, но понимаю, что уже не успею.
208 2673117
>>673075
Вкатуны нужны, только чтобы заплатить шекели барыгам со всяких манякурсов по пограмированию, больше они нахуй никому ненужны (тут гуглометы сокращают синьоров тысячами, а эти в го в рф без опыта собрались вкатываться, лол)

учите лучше станки чпу, скоро будет спрос
209 2673122
>>673102
Тогда ищи по знакомствам. Вкатунов надо менторить жестко. Это на пыхе тебе добрый дяденька мидол будет полгода сопельки подтирать, а в гошке кровавый тырпрайс, там не до разжёвывания очевидных вещей.
210 2673220
>>673075
А ты думаешь почему во всех рейтингах зарплат голанг в топе? Как раз из-за малого количества джунов с низкими зп.

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

>>673122
Еще варик хорошего ментора за деньги найти. Некоторые даже реальные задания дадут со своей работы. Но сомневаюсь что у тутошных нищих вкатусь есть деньги
211 2673254
>>673117

> станки чпу


Вот их как раз нейросети будут программировть.

апломб
212 2673505
>>672696

>Так гоха и не для тупых вкатунов, сто раз уже поясняли.


Вообще-то для тупых, го создавался для дещевых индусов лол, которые способны чуть ли не копипастом ебашить микросевисы, над ними стоит погонщик поумнее, который будет их бить палкой по рукам, если что не так.
213 2673577
>>673505
Задачи которые решаются на го не для новичков. Только дауны судят сложность работы по инструменту лол. Я за последний год кодил на расте, го и ноде. И задачи на ноде той же бывали сложнее чем на расте. А когда на с++ том же работал то кучу тупых вкатунов набирали несмотря на сложность самой сишки
214 2673582
>>673577
Да да, сложнейшие задачи по типовым паттернам для микросервисов.
Ухх блять, сложнааа
215 2673585
>>673582

> Тупой вкатун занимается самоутешением

216 2673586
>>673585
Причина тряски? Я на твое место говнаря не претендую, успокойся.
По факту тебе сказать нехуй.
217 2673587
>>673586
Да да, чем меньше тупых вкатунов тем лучше. И слава богу что гоха на уровне вакансий уже их отсеивает. Так что вкатывайтесь, не стесняйтесь. Крылышки все равно обломают лол
218 2673598
>>672981

>Да похуй.


Антону с двачей может и похуй, а для крупной компании такое не катит.
219 2673617
>>673598
А эти самые крупные компании.. Они сейчас с нами? В этом треде?
image.png248 Кб, 610x385
220 2673705
221 2673723
>>673617
Хантеры из крупных компаний сидят в мвп-треде
222 2673982
Двач, а как работает репликейшон в Го?
https://setapp.com/how-to/use-go-with-mysql

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

sql.Open("mysql", "root:<yourMySQLdatabasepassword>@tcp(127.0.0.1:3306)/test")
223 2673994
>>673723
Там только эйчарки, которым похуй на домашнее пиратство. На него всем похуй, всё равно почти весь доход с продажи лицензий идёт от организаций.
224 2673995
>>673982
upd: я правильно понимаю что нужно сделать connect к слейвам вручную, а потом при операции "чтение" выдавать рандомный из коллекции конекшонов?
225 2673998
>>673994
Я так и не смог ломануть голэнд
226 2674258
>>673995

>upd: я правильно понимаю что нужно сделать connect к слейвам вручную, а потом при операции "чтение" выдавать рандомный из коллекции конекшонов?


В целом - да. Два пула, один RW, второй RO. Вопрос как внутри балансировать, как простейший вариант round-robin сойдёт.
227 2674798
Подкиньте идей для пет-проекта
чтобы было не уровня хеллоу ворлд но и не уровня написать постгресс с нуля
чтобы обязательно внутри были алгосики
228 2674826
>>674798

> чтобы обязательно внутри были алгосики


Клон литкода.
229 2674855
>>674798
Я планировал написать бэк-сервис и фронт на шаблонизаторах, они общаются между собой через REST API и gRPC. Но потом мне сказали, что в голанг вкатунов не берут и я расстроился. Теперь думаю куда идти: в РНР или сишарп. Оба языка мне не нравятся. Первый переделали под джаву с корявыми инструментами. Второй загажен синтаксическим сахаром.
230 2674866
>>674826
круто но боюсь что будет много фронтенда
а мне с ним совсем не хочется ебаться
231 2674884
>>674855
На шарпе тоже не особо в цене вкатуны. Но в целом так про все можно сказать. Так что единственный реальный вариант пхп и есть. Ну и 1с еще
232 2674887
>>674884
В РНР треде тоже сказали, что не нужны
233 2674890
>>674887
PHP это последний рубеж. Если и на нем не нужны то остается только... 1с.
234 2674904
>>674890
А после 1С возьмут на голанг?
235 2674908
>>674904
Нет. 1С - это дорога в один конец.
236 2674918
>>674904
Если и возьмут то на общих основаниях. То есть никакого преиущества перед остальными вкатунами не будет. С пхп еще можно что-то как-то конвертировать.
237 2674976
>>674904
Та сам не сможешь. 1С отформатирует твои мозги раз и навседа. На низком уровне.
238 2674984
>>674866

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

А задачи храни в виде наборов интутов и аутпутов
239 2675040
>>674866
да там три <input> на страничке - два текста и кнопка. ну и один текст нужно будет научиться заполнять ответом от сервера. вот реально задача для стажера, чтобы он познакомился с фронтом минимально.
240 2675055
>>674866
Мало что можно написать онли бекенд, можешь написать низкоуровневую хуйню, что бы просвапать регистры и заводить указатели на C функцию прямо из гошки (сейчас оно требует мост пастить, что дико неудобно)
241 2675319
Голангуны, в тысячный про вкат спрошу. С техническим бэкграундом в виде ковыряния железок на C, написания сетевых приложух на C++/Qt, создания небольших API-шек с БД (без всяких брокеров, редисов) на Python таки смешно вкатываться в Go и попустят, или опыт немного релевантен?
242 2675342
>>675319
Опыт релевантен только коммерческий и только в компании, все остальное - никому не нужный мусор, тебя просто будет отсекать еще хрюши, а не техи
image.png22 Кб, 412x480
243 2675787
Что произойдет при вызове y := append(x, 3)? Почему получается в результате [0, 1, 2, 4]?
244 2675847
>>675787
он добавит 3, но после второго апенда
Копировать элементы слайса в другой слайс в Go просто, но это нужно делать с помощью встроенного copyили же appendфункции. Если вы просто присвоите существующий срез новой переменной, срез не будет дублироваться.

Обе переменные будут ссылаться на один и тот же слайс, поэтому любые изменения значения слайса будут отражены во всех его ссылках. Это также верно при передаче слайса в функцию, поскольку в Go слайсы передаются по ссылке.
https://()freshman.tech/snippets/go/copy-slices/
245 2675848
>>675787
он добавит 3, но после второго апенда
Копировать элементы слайса в другой слайс в Go просто, но это нужно делать с помощью встроенного copyили же appendфункции. Если вы просто присвоите существующий срез новой переменной, срез не будет дублироваться.

Обе переменные будут ссылаться на один и тот же слайс, поэтому любые изменения значения слайса будут отражены во всех его ссылках. Это также верно при передаче слайса в функцию, поскольку в Go слайсы передаются по ссылке.
https://()freshman.tech/snippets/go/copy-slices/
246 2675854
>>675847

>он добавит 3


Куда? Ниже вывод этого кода. [0, 1, 2, 4]
247 2675863
>>675854
fmt.print подними выше второго апенда
image.png61 Кб, 664x811
248 2676148
249 2676160
>>676148
Аппенд идет у тебя на len()+1, а длина твоего Х = 0, додумаешь дальше сам? Аппенд не изменяет метаданные массива, но возвращает их
250 2676213
>>676160
да это не вопрос был. я конечно пример не рассосал
251 2676463
Братишки, как устанавливать пакеты в голанге, чтобы они были доступны для импорта хоть у чёрта на рогах? Например, я могу слелать import "fmt" в любом .go файле, а import "github.com/atotto/clipboard" уже требует какого-то нездорового пердольства go.mod. Как уравнять васянские пакеты с системными?
252 2676473
>>676463
Ты ведь понимаешь, что это сделано специально?
253 2676475
>>676473
Это не понимаю. Я понимаю, что пакет нужен в куче файлов, а мне не охота делать "проекты"тм на скрипты уровня хелло ворлд.
254 2676506
бля пхп макак на связи, решил пополнить стек еще и Go, сам бывший вкатун, уже месяцев 7 опыта.
Скчал значит курс по GO, в ожидании что меня научат как можно интегрирывать Go с пыхой как json чики получать и отправлять и тд.
по началу все было легко синтаксис и тп и тут началась лютая дрочь с математикой. Определите периметр/площадь/ решите ебаное уровнение, определить кол-во корней и тп.
Неужели в GO нельзя быть крудошлепом и просто в распаралеливать запросики в БД.

Кстати когда начал вкатываться, мне посоветовали начать с питона. Начал тогда смотреть курс по питону на ютубе и когда началась подобная хуйня с математикой я дропнул т.к. не понял нахуя все это вообще нужно и занялся версткой.
255 2676509
>>676503 (Del)
Его и использую, но есть узкие пёзды места с лютым матаном, где голанг в разы быстрее гоняет байты.
256 2676521
>>676506
Go - это типа C. Прежде чем крудошлёпить, придётся фреймворк переизобрести.
257 2676527
>>676521
Да я к этому готов, сейчас посмотрел вообще че за курс скачал, он вообще для студентов каких то.
Чел рассказывает про условные конструкции, типы данных а задачки задает связанные с матаном.
Я такое не вывезу. Буду искать что то чисто с web разаботкой на GO связанное.
258 2676535
>>676506
Можно, конечно, просто ты взял какой-то курс от шизов, которые дрочат на базу и классический подход к обучению. Это почти то же, что в вузиках, когда не можешь сдать лабу по программированию, потому что не осилил какую-то залупу из математической физики, хотя само программирование знаешь лучше препода.
259 2676542
>>676535
спасибо анончик, я думал меня тут попустят если честно.
Теперь я точно уверен что просто не туда полез, жаль что 2 дня потерял на это.
260 2676557
>>676542
Это давняя проблема со многими курсами, тянется ещё из 80-х, когда это ещё имело смысл. Сейчас можно смело скипать подобное. Тысячи новичков вообще забросили программирование, потому что вместо самого программирования их пичкают ёбнутыми математическими задачками.
261 2676694
>>676463
Используй IDE, Люк.
262 2676744
>>676463

>а import "github.com/atotto/clipboard" уже требует какого-то нездорового пердольства go.mod


т.е. тупо сделать go mod tidy?
263 2678363
Какой же простой язык, яебу. Из функции можно вернуть два значения. И можно их передать в функцию с двумя значениями. А в функцию с тремя - нельзя!
image.png710 Кб, 682x996
264 2678381
Возглавляется неким "Робом Пайком", который не знает:
о существовании модели акторов с разделяемой памятью
о динамической линковке
об обобщенном программироние и о о функциях map, filter, reduce
и вообще судю по убожеству первого пейпера (и это-то после 30 лет опыта в белл лабс!) выдал какой-то полуси с корутинами и в дизайне яп не особо рубит
если бы не Дмитрий Вьюков, поднявший в свое время ГЦ голанга из той параши, где он находился, язык так и остался бы никому не нужным
Хуеватая система импорта, зашивающая в имя пакета путь в рептозитории, а если надо обратиться к защищенной репе, то скреды прописать ЯВНО В СТРОКЕ ИМПОРТА
ВНЕЗАПНО nil, переданный как значение в тип unterface{} перестает равнятся своему же значения
Язык объективно хуевый, чего стоит одна система типов, требующая постоянных подсказок в виде явного объявления типа над функцией. Вывод типов? Ленивые вычисления? Автор так и остался в Bell Labs середины 70-х.
Нет постоянного стандарта на язык, а только какие-то "отчеты".
И многое другое!
265 2678382
>>678381

> Аряяя тут нет ненужной хуйня которая никому не всралась значит хуйня


Макака с эффектом даннинга Крюгера не палится
266 2678386
>>678363
А что ты ожидал? Что у тебя в функции внезапно 3й аргумент родится магией?
267 2678408
>>678386
Я ожидал, что два это два, и я могу просто добавить третий.
268 2678416
>>678408
Алсо нашел совершенно шикарную дискуссию на гитхабе. Типа, а давайте так сделаем? А ему в ответ - ничего мы делать не будем, потому что или нахуй. Как всё-таки ЭТО могло стать популярным?
269 2678448
>>678416

>А ему в ответ - ничего мы делать не будем, потому что или нахуй


база
image.png69 Кб, 732x264
270 2678694
>>678416

>Типа, а давайте так сделаем? А ему в ответ - ничего мы делать не будем, потому что или нахуй.


Все правильно сказал. Это совершенно минорная фича чтобы тратить на нее время.
капча тоже намекает что тебе стоит пойти нахуй
271 2678805
>>678694
Да в этом языке любой QoL - минорная фича
272 2678881
>>678805
Таков путь.
273 2680270
Сап голангач. Имеется директория с файлами main.go (пик 1) и suite.go (пик 2). ChatGPT с VSCodом утверждают, что всё заебись, будет работать. При запуске выдаёт ошибки, представленные на пик 3. Что сделано не правильно? Как вынести определения функций за пределы main.go, оставив только вызовы?
274 2680285
>>680270
go mod init pack_name
go run pack_name
бля...
275 2680487
>>665535
Мягкие викинули линупс с maui, где он изначально и был, замарин.формс.
Это очень похоже на:
https://ru.wikipedia.org/wiki/Embrace,_Extend,_and_Extinguish

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

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

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

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

Но у го ппц какой кривой дизайн языка, я бы лучше раста накатил.
276 2680525
>>680270
go run main.go suite.go
или более классически go run .
277 2680818
>>680487
Семёрку далеихпом не поддерживает. И вообще проблемы бы не было, не будь детсятка говном, а 11 - отборным говном.
show.png10 Кб, 270x120
278 2681078
>>680818

>далеихпом


Что это?
279 2681344
>>681078
Даже хром.
280 2681464
>>681344
Ппц тебя скрючело.
Так то срать какой продукт что не поддерживает, хром монополист, может говнить себе в штаны, но вот эта тенденция языков, такого раньше (лет 10-15 назад) не было, чтоб в момент сразу все к херам бросать. Забавно что го все еще поддерживает 7.
281 2681511
Пацаны, я тут смотрел 10-летней давности проект на пыхе и меня вдруг осенило.
https://github.com/ornicar/lichess-old
Обратите внимание на файлы deps и deps.lock.
Очевидно, что это разрабатывалось до появления композера.
Ничего не напоминает?
А что, если гошке не хватае НОРМАЛЬНОГО менеджера пакетов/зависимостей? Или текущее состояние вещей вам норм?
282 2681559
>>681511

>что, если гошке не хватае НОРМАЛЬНОГО менеджера пакетов/зависимосте


Ну напиши, ёпт
283 2681561
>>681464
Шарп - это не только язык, но и платформа, виртуальная машина. Вот есть моноч к примеру - он идёт на семёрке?
image.png6 Кб, 270x120
284 2681566
>>681559
Так я почву и пробиваю, стоит ли этим заниматься или и так всё нормально.
285 2681567
>>681566
Ну вот тебе самому как?
286 2681619
>>681511
Чем тебя go.mod не устроил?
287 2682688
Подскажите, как правильно установить пакет github.com/google/gopacket
go get и go install в данном случае не работают.
288 2682789
Кто нибудь в Go перекатывал с php? Че-то у меня не получается, очень редко на собесы зовут. Имею только 2 года опыта в резюме.
Мб пририсовать еще годик полтора?
289 2683031
>>682789
А ты уверен, что у тебя проблема в годах опыта, а не в том, как этот опыт описан? Если что «пук срень пыха ну так пук лара пастил» не подходит, тебе нужно во всех интимных деталях объяснять чем ты занимался, какие паттерны использовал, технологии (даже самые смешные и простые)
290 2683055
>>682688
а зачем тебе устанавливать его?

если там бинарник, то делаешь go install github.com/google/gopacket@latest
если не бинарник, то тупо добавляешь его импортом в код и делаешь go mod tidy, он автоматом скачивается в кеш покетов
291 2683386
>>683031

>чем ты занимался, какие паттерны использовал, технологии (даже самые смешные и простые)


Пиздец ты жалкий кретин. Такую хуйню обычно говно из гнойный аутсорс-бодишопов пишет в своих сраных резюме
292 2683515
Всем привет. Есть несколько сервисов, штук 10. Все они ходят друг в друга. Как можно их красиво инициализировать? Например сервис A ходит в сервис B, а сервис B ходит в сервис A. Код писал не я, но мне к сожалению нужно его фиксить. Как можно это реализовать кроме как через публичные поля структуры?
293 2683586
>>683515
инициализировать что? это сервисный слой в коде? ну самое простое это вместо походов друг в друга сделать чтобы они ходили в общую зависимость
294 2683752
Сап голангач. Есть два стула.
Первый: забилдить фронтенд, бэк без апи, скомпилировать фронт + бэк в один бинарь.
Второй: забилдить фронтенд, скомпилировать бэк с апи, фронт с бэком общаются через апи.
На какой стул сейчас принято садиться в промышленной разработке?
295 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
как же блядь это странно и не интуитивно понятно.
296 2683894
>>683752
На второй стул. Бэк ничего не знает о фронте, фронт деплоится отдельно на какой-нибудь Nginx.
297 2683903
>>683894
Т.е. оба крутятся на локалхосте, но бэк там и остаётся, а к фронту можно стучаться из интернетов через реверс проксю? Первый стул считается эталонным говнокодом или допустим в отдельных случаях?
298 2683912
>>683903
Хост не обязательно один и тот же, это смотря как построить инфраструктуру. Бэк в любом случае будет доступен из интернета в обход фронта, какими проксями ни обмазывайся, фронт же должен их как-то дёргать с машины пользователя.
Первый стул сам по себе не говнокод, просто инфраструктура будет менее гибкой, но это не всегда критично.
299 2683913
>>683903

>Первый стул считается эталонным говнокодом или допустим в отдельных случаях?


конечно же допустим. тот же pprof сервит страничку со ссылками https://cs.opensource.google/go/go/+/refs/tags/go1.20.3:src/net/http/pprof/pprof.go;l=412
>>683752

>бэк без апи


может я чего-то не понимаю но как ты с ним общаться будешь??
300 2683914
>>683913

> может я чего-то не понимаю но как ты с ним общаться будешь??


Будет как в пхп вместо жсонов отдавать срендеренные на сервере хтмлы.
301 2683917
>>683914
ну в SSR ничего плохого самого по себе нет, но помимо этого там же все равно же апишка будет для всяких кнопок формочек тили-вили
302 2683920
>>683913
>>683914
Нет. Готовый в прод фронтенд реакта запихивается в бинарь, а request-response в контекст запросов, минуя жсоны.
303 2683930
>>683920
То есть вместо жсонов будет x-www-url-form-encoded? Это тоже API, хоть и ограниченное примитивными key-value парами.
304 2683940
>>683930
>>683917
Спасибо за ответы. Сам на второй сяду, заказчика на колени посажу. Первый для петов оставлю. Больно уж его просто деплоить на своём сервере.
305 2684063
>>683801

> как же блядь это странно и не интуитивно понятно.


Что в этом непонятно? Разве так сложно понять, что интерфейс в твоем случае означает просто условие, что передаваемый тип должен иметь эти функции, ВСЕ
Дай угадаю, питон-макака? Только там настолько тупые могут быть
306 2684064
>>683386
Ну кто то жалкий, а кто то просто ищет работу. Как бы тебе не нравилось, но это суровая реальность, к которой тебе придется привыкать и изучать, ибо на собесах как раз и спрашивают про них
307 2684072
>>665435 (OP)

> от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других



Их предки написали Библию.
image.png18 Кб, 800x170
308 2684214
Столкнулся с ложным сообщением об ошибках импорта в VSCode. У меня есть общая директория, которая содержит вложенные директории с проектами. Когда открываю отдельно какую-то вложенную, то всё в порядке. Когда открываю общую директорию, то в каждом из проектов возникает пикрил сообщение, при этом код работает исправно. Как можно это пофиксить? Иногда цепляю шаблоны из других проектов, а эта ошибка мешает.
309 2684233

>2


Они правда гордятся наличием try/catch?
310 2684243
>>684214
Добавил "go.gopath": "C:\\Users\\Dvach\\go\\pkg\\mod". Нахуя это гошное расширение впихивает src в путь? Модули же лежат в C:\Users\Dvach\go\pkg\mod
311 2684304
>>684214

>. У меня есть общая директория, которая содержит вложенные директории с проектами


гоплс издавна не мог работать с проектами где несколько go.mod в разных папках. для этого https://go.dev/doc/tutorial/workspaces добавляли
312 2684324
>>684304
Благодарю, работает. А нельзя как-то изменить $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.
*/
313 2684347
>>665435 (OP)
Платиновый вопрос - с нуля стоит вкатываться в голанг разработку? Хочу грузить жсоны. Вышки нет, так что вариант со стажировками в МЯСКОТЕ не подходит
314 2684363
>>684347

>с нуля стоит вкатываться в голанг


>Вышки нет, так что вариант со стажировками в МЯСКОТЕ не подходит

315 2684374
>>684363
Я молодой, шутливый, мне все легко
316 2684496
>>684233
Отсутствием. Да, правда. Они гордятся всем, его у них нет. Вот дженерики теперь есть, и казалось бы, зрада зрадой, но есть повод для перемоги - нельзя вырабить обобщённый метод, неользя тип с констрейнтом мспольовать иначе, как в заголовке.
317 2684605
>>665440
Хм R разве не аналог Python?
anon.jpg359 Кб, 1341x1341
318 2684617
>>665675 (Del)
>>665674

>большие бинарники


в go штоле нет динамически линкуемых либ (dll / so)?
319 2684629
>>684617

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

В го их не любят, чекни
320 2684706
>>684617
Го - простой язык без излишеств, что неясно?
321 2684707
Джва вопроса
Почему в языке, который расчитан на быстроту выполнения нет различных флагов оптимизации в ущерб скорости компиляции, как в других ЯПах?
Почему нет настроек гц уровня жабы и создатели сами решают это заместо тебя?
Понятно, что язык создавался что бы быть простым как палка, но погромисты не дауны же.
322 2684737
>>684707
минимализм
323 2684786
>>684707
Язык идеален. ЕМу не требуются флаги в нём ннайден оптимальный баланс по скорости компиляции, размеру бинарника и скорости работы кода.
324 2684893
>>684707
Потому что еще одна цель языка - унификация. Это видно даже по тому, как он инфорсит стиль написания кода. В идеале одну и ту же задачу на Go можно решить одним способом и код при этом будет получаться максимально похожим, начиная с форматирования и заканчивая логикой. Всякие флаги добавляют непредсказуемости и возможностей накосячить.
Ты правильно заметил, что существуют другие языки, где эти возможности реализованы.
325 2684904
>>684707

>Почему в языке, который расчитан на быстроту выполнения нет различных флагов оптимизации в ущерб скорости компиляции, как в других ЯПах?



Есть флаги отменяющие оптимизацию и инлайнинг, но по дефолту то что билдится оптимизированно
326 2685047
>>683055
Я ж написал, что go get и go install не работают с этим пакетом.

>делаешь go mod tidy



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

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



А почему гошный сборщик в кэш не смотрит при последующих сборках? В чем смысл этого кэша, если сборщик не может найти уже "закэшированный" gopacket? Зачем на каждую однофайловую прогу вводить go mod tidy, пересоздавая кэш? Даже в устаревшем Си сделано более человечно, когда "кэш" автоматом ищется в стандартных директориях.
327 2685074
Есть один сторонний пакет, импортировал его по URL (github.com/...) и в процессе выяснил, что некоторые функции там не реализованы, не долго думая я начал просто локально править исходники. Все работает, но как правильно теперь завендорить данную библиотеку или как это назвать, короче чтобы был пакет с моими правками и плюс вопрос, если сделать например go get -u all или еще какую-нибудь подобную команду, мои изменения пропадут и пакет опять подтянется с гитхаба?
Если честно, впервые в такой ситуации.
328 2685094
>>685074
Сделай форк и тяни от себя. Или сделай пул реквест, чтобы твои правки приняли в апстрим.
329 2685104
Как часто используется defer? Не могли бы вы привести парочку примеров из реальной практики? Вкатываюсь с другого языка и пока не могу понять прикола
330 2685115
>>684347
Бамп вопросу. Почитал чатики гоферов в телеге и выглядит так, что все пришли в го после работы на других языках
331 2685137
>>685047
Для этого IDE придумали, свыня вимовская, там буквально все это за тебя делается
332 2685139
>>685104
Буквально всегда, например при открытии файла, что бы можно было везде ретурнов совать и не бояться, что где то можешь забыть хендл прикрыть, применений уйма
333 2685148
>>685094
Почему для разработки на этом ЯП нужна анальная фиксация на стороннем сервисе, которым владеет компания МАЙКРОСОФТ?
334 2685153
>>669241
Че бля,оффсет,нахуя мне кафка партиция в виде структуры данных? Гошники вы ебанутые? Оправдывайтесь
335 2685159
Решил по накурке почекать гошечку вашу. Смешной язык, синтаксис вообще улет, несколько возвращаемых значений это сильно. Ну че рассказывайте как вам на нем работается?

мимо джава
336 2685162
>>684893
Нахуярим сверху абстракций над самыми популярными кейсами и че,получим кастрированную джаву
337 2685182
>>685153
А нахуя тебе копировать весь массив, у тебя память бесконечная что ли?
338 2685189
>>685148
Тебя часто били в детстве об угол головой?
339 2685195
>>685159

>несколько возвращаемых значений это сильно


Сильнее чем ты думаешь. Их не несколько, а одно множественное. Это такой неявный кортеж. В случаях, когда длина кортежа равна количеству пара Петров функции, можно этот кортеж передать в функцию. Или присвоить списку переменных, опять же, только такой длины.
340 2685196
>>685148
Ну тогда качай со своих серверов, ебанат линуксопомешанный
341 2685206
>>685196
А ты качай с серверов дядюшки Билли, который может тебе доступ обрубить, если ты ему не понравишься, кек.
342 2685257
>>685206
Ну так обрубит, я буду качать через зеркала, которые сразу же изобретут, в чем проблема? Либо свой сервер опять же
343 2685355
Хули го такой нечитаемый кал?
344 2685405
>>685355
Наоборот же. Неописуемый.
345 2685564
>>665435 (OP)
Аноны, а какие проблемы закрывают облака? У меня есть монолит на Го, покрыт тестами и в целом все вынесено по слоям, деплоюсь на вдске в докере, сам монолит + инфра, рпс маленький, это скорее сервис для небольшого количества людей, а написан на го, потому что приятно писать.

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


У вас там когда планируют внедрить нормальную обработку исключений?
347 2685575
>>685571
Нормальную это как в расте или антипаттерн убожество из джавы?
348 2685576
Может кто подскажет как у fiber тестировать Params? Как мне сформировать контекст в роутер, с нужным мне параметром params?
349 2685634
>>685571
Он минималитичный в смысле простой как камень, а не в смысле все можно в ванлайнер завернуть как в котлиине
350 2685637
>>685575
У тебя и дженерики антипатерн лол
351 2685641
>>685564
Serverless, деплой кучи микросервисов, только хуй знает почему это спрашивают у тебя, если ты я так понимаю не на девопса пошел, но тут думаю из за размеров команды им нужен человек-мультитул
Снимок экрана 2023-05-01 в 12.16.03.png45 Кб, 580x316
352 2685653
>>685641
Возможно ты прав, но это единственный собес за месяц, с работкой грустно, поэтому каждый провал довольно значителен в общем, было б это собес 1 раз в неделю то пох
353 2685685
>>685571

>У вас там когда планируют внедрить нормальную обработку исключений?


А log.Println() тебе норм?
354 2685688
>>685571
Лучше того говна что в джаве, уже хорошо
355 2685690
>>685688
А че там у хохлов?
356 2685691
>>685564
1. Маштабируемость: если у твоего приложения будет резкий рост нагрузки, можно достаточно легко иногда даже автоматически увеличить количество нод, дать больше памяти/процессора, БД, очередей.
2. Все необходимое есть из коробки: базы, очереди, кеши, мониторинг, логи, фаерволы, защита от DDoS, хранение секретов. И все это хорошо интегрировано, если следовать рекомендуемому пути все будет работать отлично.

Взамен ты получаешь конские цены, когда у приложения нагрузка вырастает до больших значений. И очень часто - вендор лок.
357 2685768
>>685148
У меня свой git сервер я просто клоню нужные мне либы и всё работает.
358 2685772
>>685206
Анончик у нас на работе artifactory кэширует все внешние зависимости и если Билли отрубит у нас ничего не наебнется
359 2685777
>>685206
И кстати юзать module_name@latest не комильфо, тк никто не застрахован от кейса с node-ipc
360 2686070
>>685148
он же с гитлабом и всякой хуйней тоже работает. остается вопрос у кого анальная фиксация
361 2686089
я правильно понял, что closures в go это аналог stl::bind?
362 2686103
>>686089
Это же насколько нужно быть тупым, что бы не понять этого? Твой стд бинд просто возвращает враппер, где строго говоря какие то аргументы уже забинжены и тебе не нужно их юзать, closures в go, как ты их называешь, это просто вызов функции, которая возвращает тебе функцию, внутри которой есть переменные из первого вызова
363 2686108
>>686103
Понятно функция и переменные из скоупа внешней функции. А где такое может быть полезно на практике?
364 2686109
>>686108
Ну йобанный в рот, да где угодно, почему тебе обязательно быть таким душнилой
365 2686146
>>686108
А что, плюсы так до сих пор не умеют?!
366 2686178
>>686108
там же, где [&](){}
367 2686208
>>686070
Телеметрию в гугл отправить не забыл?
368 2686266
>>686208
вроде же решили добавить опциональную телеметрию или я чего-то не понял https://research.swtch.com/telemetry-opt-in
369 2686287
>>686266
Которая включена по умолчанию и о которой тебе компилятор вежливо не скажет.
370 2686490
>>686208
Шизик, ты чего или кого боишься?
Не удивлюсь, если ты пользуешься какой нибудь федорой или арчем, где бесконечное количество телеметрии лол
371 2686517
>>686208
От кого шифруешься, мань
372 2686888
Как думаете стоит перекатиться джуном на го с джавы? На просадку в зп в первый год пох. Миддл-крудошлеп
373 2686907
>>686888
Язык не более чем инструмент. Если тебе предлагают Уже работу и тебе нравится язык, то почему нет?
374 2686935
>>686888
А смысл? Разве гоыеры получают x2 от джавистов?
image.png501 Кб, 1275x965
375 2686942
376 2686949
>>686907
Работу никто не предлагает, сижу в гэпе пока. Просто весь опыт джавы это круды на спринге + кубер. Про инструмент - золотые слова, но вот хотелось бы подтянуть фундаменталс с чистого листа на новом стеке.
>>686935
Кажется джава очень громоздка в плане инфраструктуры, хочется просто кодить и решать кодерские задачки, а не пердолиться с зависимостями, фреймворками, сборщиками и т.д. Ну и 90% задач - круды шаблонные.
377 2687041
>>686490
>>686517
Про приватность слышали?
Алсо, нет, у меня не systemd дистр и естественно без всякой параши типа снэпов/флэтпаков.
image.png37 Кб, 672x414
378 2687847
спрошу тебя на собесе че напечатает
379 2687863
>>687847
Рубрика «задачки для стажера»?
1 1
380 2688019
>>687847
Отвечу, что если у вас принят такой кодстайл, мы не сработаемся
381 2688607
>>687847
это типо темка а-ля акме?
382 2688740
>>688607
это https://go.dev/play/ с шрифтом go mono
learninggo.mp45,5 Мб, mp4,
1280x720, 2:15
383 2688809
png-clipart-yellow-emoji-face-with-tears-of-joy-emoji-discord-emoticon-sticker-emoji-discord-smiley-anger.png63 Кб, 900x543
384 2688820
385 2689004
err == nil, or err != nil, that is the question
386 2689116
>>689004
Как правило err != nil, потому что за этим обычно следует вывод ошибки в лог и ретурн/передача управления в другую функцию. В противном случае будут появляться else, вложенные ифы или просто вся логика будет внутри большого ифа. это если вопрос был серьезный, а не насмешка над типичным гошным бойлерплейтом
IMG0861.png4 Кб, 270x120
387 2689213
>>688809
Имагинирую, как будут отменять коммит в бд используя try catch
388 2689250
>>688809
можно как нибудь так

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)
}
}
389 2689252
>>689250
а хотя нет
390 2689314
Просто скопировал свою же прогу с одного компа на другой и при go get all получаю кучу таких сообщений

>go: all: malformed module path "sync/atomic": missing dot in first path element


(для всех зависимостей)

Вообще чет сильно испоганили работу с зависимостями, в 2017 такого не было, можно было просто кодить, сейчас какой-то пиздец. Естественно в go.mod я добавил путь с гитхабом.
391 2689520
>>689314
go mod download или go mod tidy

Хуй пойми откуда и зачем ты взял get all
392 2689524
>>689213
Мне вообще люто доставляет подход к ошибкам в гошечке, после питухона, когда любая внешняя хуйня может выкинуть исключение и ты узнаешь что она выкидывает исключения только когда это случится или проштудировав код/документацию. Охуенная идея насильно заставить обрабатывать все ошибки и похуй на пару дополнительных строчек кода.
393 2689946
>>686888
Гошка простая, нет никакого смысла идти в джуны, если есть опыт программирования уже.
С джавы однозначно да. Сама по себе жаба неплохой язык, но те подходы и инструменты, которые популярны в ее сообществе - делают разработку на жабе полнейшим говном. Причем нелепым и кринжовым прям, если у тебя есть опыт в других экосистемах. Да и сами адепты джавы, зачастую, довольно туповатые и ограниченные, особенно спринганы.
Мимо 12 лет в ИТ, рулил проектами на nodejs, go, java/spring, python
394 2690223
>>689946

>Гошка простая


Эти мантры. назови мне сложный язык, который появился после 2000го
395 2690228
396 2690352
>>690223
Какие мантры? Гошка очень топорная и простетская, это и была одна из целей создания.
Scala, Idris, Rust, F# да дохера их.
И C# ровно в 2000-м.
397 2690545
>>689524
Так панику в го у тебя никто не отменял, плюс этих "дополнительных строчек" настолько много, что ты далеко не всегда можешь сказать какие ошибки вернёт твоя функция.
398 2690583
>>690545
Шиз, ее никто не использует, разве что редкие перекатуны из джавы или шарпов, это ебейший пиздец такое использовать
399 2690586
>>690583
Там она может сама случиться, хочешь ли этого ты или автор внешней либы, банальный доступ по несуществующему индексу.

>когда любая внешняя хуйня может выкинуть исключение и ты узнаешь что она выкидывает исключения только когда это случится или проштудировав код/документацию


По этому кейсу, ты все равно должен штудировать сорцы/документацию, что бы знать какой из сотни видов ошибок у тебя прокинется выше и навесить на его обработку какую-то логику.
400 2690592
>>690586

> что бы знать какой из сотни видов ошибок у тебя прокинется выше и навесить на его обработку какую-то логику.


Ты же понимаешь что в 98% случаев тебе не нужно по особенному обрабатывать каждую ошибку? Максимум - выкинуть 500 статус код и в боди саму ошибку
401 2690594
>>690592
А в остальных 2% ты уже наверняка знаешь какую конкре но ошибку тебе нужно обрабатывать отдельно

> банальный доступ по несуществующему индексу.


Если у тебя есть такая проблема, то тебе ни один язык не поможет, ты везде будешь тупым
402 2690598
>>690592

>Максимум - выкинуть 500 статус код и в боди саму ошибку


Если у тебя такая обработка ошибок, то в случае с try catch никакой проблемы тоже нет, оборачиваешь реквест в него, пользователю 500, в логи стектрейс.

>Если у тебя есть такая проблема, то тебе ни один язык не поможет, ты везде будешь тупым


А ты уже проштудировал сорцы внешних либ и убедился, что такого точно не будет блябуду?
403 2690600
>>690598
Мистер блябуду, ты же знаешь, что в го не используют миллиард библиотек и всякие спринги?
404 2690608
>>690598
В го для джавистов специально есть аналог твоего try/catch, recovery() зовется, но это ебейший антипаттерн
405 2690609
>>690600
Достаточно одной, которую написал не ты и не знаешь что там под капотом

>>690608

>но это ебейший антипаттерн


И какой правильный способ перехватить панику? Просто писать код без ошибок?
406 2690610
>>690609

>И какой правильный способ перехватить панику?


Не выкидывать панику, шиз
407 2690611
>>690610
Паника это любая необрабатываемая ошибка, которая может случиться во время выполнения программы, что бы ее получить не обязательно, что бы ее кто-то явно кидал.
IMG0884.png5 Кб, 270x120
408 2690612
>>690611
Ну да, каждый день же делишь на 0 и индексируешь элемент больше капасити у слайсов, голову лечи
409 2690616
>>690609
почему данная проблема присутствует у всех, но не у разработчиков на го?

другой анон
410 2690626
>>690616
Потому что те кто делают дейтвительно большие приложения не кричат, что recover это антипаттерн
https://github.com/gin-gonic/gin/blob/master/recovery.go#L58
411 2690632
>>690626

>те кто делают дейтвительно большие приложения


И давно на гошке стали монолиты писать?
412 2690635
>>690632
Тут дело в значимости, авторы gin понимают, что паника может случиться где угодно и спокойно юзают recover, а неофиты начали вторить евангелистам и объявили весьма полезную функциональность антипаттерном
413 2690774
>>690352
Попробуй отведать ради интереса систему типов из f#, а лучше из ocaml с его алгебраическими типами, Polymorphic variants и.т.д. Потом больше ничего не захочешь.
414 2690778
>>690608

>Есть аналог твоего try/catch, recovery() зовется, но это ебейший антипаттерн


А нахуй тогда это есть в языке, если это такой пиздецкий антипатерн? Он же вроде простой и в нём нет ничего лишнего.
415 2690811
>>690778
Та не... гошка довольно касая, топорная, а местами откровенно всратая. Просто менйстрим и промышленное разработка, скажем так, это про выбор меньшего из зол и уворачивания от костылей, который летят тебе в лоб, от создателей различных инструментов.
Просто исторически сложилось, что простой, производительный зяык, с грин-тредами и CSP - это го, лучше пока ничего нет.

на самом деле crystal (https://crystal-lang.org/) куда лучше и органичнее, как язык. но оно нихуя не популярно и имеет беды с кросс-копиляцией
416 2691277
>>690778
Что бы джависты и дальше могли делить на нуль и индексировать несуществующую память
417 2691425
>>690626
Ты что, gin это же почти спринг, а на го только велосипедостроение, только хардкор!
418 2691429
>>691277
Ты что-то перепутал. Это гоферы никак, то есть вообще никак, не могут защититься от разыменования нила.
419 2691518
>>689524
В Go есть panic. Просто преобладает подход с возвратом (недо-)тьюплов и язык старается уйти от исключений.
>>690583
Паника - это вполне нормальное поведение в определенных ситуациях, когда ошибка настолько серьезная, что выполнение продолжать не нужно или просто невозможно.
420 2691582
хз ру на запрос "golang" выдает тысячу ваканский. На запрос "go" 6к вакансий. При том что по запросу Java выходит всего 3к. Так 1к или 6к более правдиво?
.png59 Кб, 533x649
421 2691585
>>691582
Поставь эту галку и узнаешь.
422 2691622
>>691582
Представляю как тянучка ищет вакансию го-го танцовщицы, а хх ей засирает результаты поиска говолангами....
423 2691720
Допустим есть две структуры A и B, (определенные во внешней библиотеке), обе имеют одно и то же экспортируемое поле Foo string и при этом не находятся в отношении наследования.
Как (и можно ли вообще) на го написать функцию, которая будет принимать в качестве параметра переменную типа A или B и выполнять операции над значением поля Foo независимо от типа структуры и чтобы написать метод один раз, а не для каждого типа отдельно?
424 2691749
>>691582
Чтобы получить выдачу без мусора поиск настрой по названию вакансии
Go or golang
Но и там попадается мусор типа Яндекс.Go и Go-go танцовщицы
426 2691780
>>691775
Можно еще так, но это совсем уродство

https://go.dev/play/p/krGaER7W5mQ
427 2692710
>>691780
То что в других языках норма, в гошечке уродство... Но да, с дженериками он проклянёт все на свете.
428 2692711
>>691518
Только вот почти всегда ветка err!=nil заканчивается return. Это ли не признак того, что

>продолжать не нужно или просто невозможно


?
429 2693009
>>692711
А если нужно отменить коммит? Но одна из ошибок произошла еще до создания коммита
430 2693158
>>692711
Это он скорее всего про всю программу в целом, а не про отдельную функцию
431 2693411
>>693009
Щто? К4кой нахуй коммит?
432 2693478
>>693411
Он коммитом назвал транзакцию.
433 2694024
>>693009
И что? Ты к тому, что роллбек надо делать сейчас, а не выше? Ну сделай, и выбрось с чистой совестью панику, здесь делать больше нечего, и в пределах 3х уровней выше тоже скорее всего нечего.
434 2694373
Гошники вы там совсем ебанулись? Только сейчас фикс завезли

https://github.com/golang/go/issues/60078
435 2694516
>>665435 (OP)
Аноны, а зочем Роб Пайк и Кен Томпсон добавили возможность с декларировать на любом языке?? Чтобы студентам из России было проще??
436 2694669
>>694516
Чтобы 1с-никам было проще перекатываться.
437 2694864
>>694516
Так на любом языке можно писать на любом языке, не?
16807205826000.mp4382 Кб, mp4,
480x360, 0:13
438 2695150
Кто шарит за планировщик в последних версиях go?
На сколько я знаю с 1.18(вроде) гарантируется, что ни одна горутина не будет занимать системный поток бесконечно.
В случае, когда есть свободные потоки, я понимаю как они могут прервать выполнение другой горутины. Но если все потоки будут заняты и не будут совершать действий вызывающие планировщик, что происходит в этом случае?
439 2695166
>>694864
в сьях нельзя вроде декларировать переменные на не ascii
440 2695260
Документация во всём стеке голанга это пиздец конечно. Фактически отсутствует, что приводит к необходимости лазить по сорцам и вдуплять смысл каждой фичи. Если бы не перекатывался с жабы, имея за плечами солидный опыт работы с гнилой легасью, уже забил бы на изучение.
441 2695292
>>695260

>документации во всем стеке


Это какой? Который буквально пару роутеров имеющие в себе полторы функции и грпц в котором тоже пару функций, и те генерируются сами?
image.png7 Кб, 368x175
442 2695294
443 2695333
>>695150
Наверное новый поток создадут, но это лишь предположение.
444 2695337
>>695333
так вот а ктож его создаёт если все потоки заняты?
image.png7 Кб, 270x120
445 2695391
Импортопроблем тред. Файл с package main и файл с package hui ни при каких условиях не могут находится в одной директории?
446 2695498
>>695391
не могут. один каталог - один пакет. Можно делать подкаталоги с другими пакетами.
447 2695529
>>694516
Чтобы Deutsche Pidoraßen могли писать на родном языке.
448 2695531
>>694516
Пиздец, я только по ответам анонов понял, о каких языках вопрос.
449 2695591
>>694516
Спасибо, Анон. Наверное очевидно, но я не рефлексировал, пока ChatGpt не сгенерировал такой код и возможно детская травма от чтения книжек по borland c
450 2696177
>>695150

>В случае, когда есть свободные потоки, я понимаю как они могут прервать выполнение другой горутины. Но если все потоки будут заняты и не будут совершать действий вызывающие планировщик, что происходит в этом случае?


отправкой сигнала занимается sysmon тред, а не треды, которые твои горутины с твоим кодом крутят
451 2696451
>>696177
спасибо брат.
Я так понимаю этот поток никак с шедулингом не связан?
И можно как-то через dlv на рантайм смотреть?
452 2696453
>>695498
Допустимо-ли клепать приложения без применения подкаталогов с другими пакетами? Т.е. раскидать код на несколько файлов в одном каталоге, относящихся к package main. Вижу некоторую трудность в выяснении источника функции, т.к. в едином пакете нет вызова типа: hui.Droch(), а сразу Droch() непонятно откуда. Насколько это будет/не будет считаться говнокодом? Мне не нравится куча подкаталогов, которые надо раскрывать.
453 2696570
>>696453
Да, конечно, многие крупные и уважаемые проекты так и склепаны. Sarama, например.
В любом случае код на го не может быть нормально организован из-за предельно всратой системы модулей и управления зависмостями.
Поэтому просто пиши как тебе меньше страдается.
454 2696607
>>696453

>Вижу некоторую трудность в выяснении источника функции, т.к. в едином пакете нет вызова типа: hui.Droch(), а сразу Droch() непонятно откуда


из того же пакета main, понятно же

>Допустимо-ли клепать приложения без применения подкаталогов с другими пакетами


ну допустимо. но это зависит от объема и обычно так не принято. на практике ты можешь притвориться сишником и писать префиксы без точки у каждой функции/типа, но тебя захуесосят. мне как стажеру в первый день говорили вот если хочеш напиши сначала в одном пакете, потом разобьеш)))))))))))))
image.png5 Кб, 270x120
455 2696657
>>696570
Система модулей абсолютно всрата, хоть на 1.15 возвращайся.

>>696607

>понятно же


C IDE оно конечно понятно через ctrl, а в иных ситуациях придётся кучу файлов пакета в поисках дрочи перерыть.
456 2696665
>>696657

>C IDE оно конечно понятно через ctrl, а в иных ситуациях придётся кучу файлов пакета в поисках дрочи перерыть.


да ладно тебе слыш, у тебя один пакет, в котором может может быть одна функция с таким названием, оверлодинга же нет
457 2696923
>>696657
А какой смысл кодить не с иде?
458 2696937
>>696923

В go очень хорошая поддержка vim-а, если умеешь пользоваться - вообще сыто живешь
459 2697073
>>696937

>vim


Позер спок
460 2697208
>>697073

VS Code говно, IDE денег стоит и в рашке не продаются. Остается ток вим
461 2697272
>>697208
Ничего против вима не имею, но что именно он умеет, чего не умеет вскод а то может стоит изучить.
По факту 99% того, что мне требуется - это ctrl+click и переименование символов по f2, но то я. Интересно, какие еще есть реально полезные фишки.
462 2697356
>>697208

> IDE денег стоит и в рашке не продаются.


Ну, давай разберём по пунктам тобою написанное.
1. "Денег стоит". То есть ты, высококвалифицированный айти-специалист, не можешь заработать себе на инструмент?
2. "Не продаётся в РФ". Читать как "я, высококвалифицированный айти-специалист, настолько туп, что не могу осилить обход формальных ограничений".
IMG0956.png4 Кб, 270x120
463 2697367
>>697208

> IDE денег стоит


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

даже капча считает тебя псевдопрограммистом
464 2697375
>>697272
Стоит как минимум попробовать vim-mode, вроде как для вскода он был. Основная фишка как бы в этом. Как редактор вим изкоробки не умеет ничего. Есть есть желание подучить lua, и пару тройку вечеров чтобы сделать себе конфиг то вперед. Однако поебавшись и настроив все мы получаем редактор уровня vscode с консольным ui. В конечно счете за несколько лет использования ты настолько сильно врастаешь в этот вим, что его хочется буквально везде, и любое редактирование текста ты себе иначе уже не видишь. Что касательно пользы то как бы удивительно это не звучало то это экономия время не редактирование текста. Да, ты тратишь время на конфиг, но компенсируешь его когда освоишь редактор хотя бы через месяц-два использования. Кроме того вим не вешает 32гб машину с запущенными фоном 8-ю gopls, докерами и прочей хуетой.
465 2697377
>>697208
>>697367
Использование IDE для го в принципе никак не обоснованно. Кроме, разве что, фантазий про серьезных программистов купивших себе goland. Скажу больше, если забрать у тебя все эти удобные кнопки которые тебе дает IDE, и без которых ты ничего не можешь, то грош тебе цена как программисту. Не можешь сам автоматизировать и настроить свое рабочее окружение - идешь нахуй, ты не программист.
466 2697395
>>697377

> Использование IDE для го в принципе никак не обоснованно.


> все эти удобные кнопки которые тебе дает IDE


)))))))))))

> и настроить свое рабочее окружение


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

Найди работу, долбаеб
467 2697403
>>697377

>ничем не обосновано


>РРРЯЯЯЯЯ НИНУЖНА


А твой вим изкаропки такое имеет без пердолинга? И это только одна миллионая всех возможностей

https://imgur.com/a/oeDsuUi
468 2697409
>>697395
Это некоем образом не причина использовать IDE, это может быть поводом но никак не причиной. Тем более говорить что только тру программисты выбирают IDE. Иш какой сурьезный, сидит там в IDE. У тебя риторика уровня, не хочу ебаться с настройкой потому что я дохуя занятой. При этом проебывая время в треде и споря с каком-то рандомным челом. Настроить можно все что угодно и как угодно. И код ты можешь писать где хочешь. Ничто из этого не делает тебя программистом лучше или хуже. Поэтому заканчивай свою хуйню с вешанием ярлыков. Есть у меня работа, и вим мне в ней очень помогает.
469 2697411
>>697409
Сразу отвечу, что и в моем понимании человек использующий vim никоем образом программистом лучше вас сидящих в IDE не является. Я говорил только о знаниях и возможностях, и наверное даже скорее понимании того как настроить своей рабочее окружение. Если ты не можешь сделать этого сам, то ты не понимаешь как это работает. А значит что ты макака которую можно легко заменить такой же макакой которая будет нажимать удобные кнопки в IDE и рассказывать про трушность и серьезность программистов.
goland64Z0s8df61gb.gif220 Кб, 454x385
470 2697412
>>697403
Дополню еще одной бесполезной фичей, авто-импортом
471 2697417
>>697411

>sudo apt install vim


>ДА НИ МАКАКА Я НИ МАКАКА ЭТО ВЫ МАКАКИ ЗАПУСТИЛИ СВОИ ВСЯКИЕ .EXE .DMG



>конфигурация посредством редактирования .yaml / .lua / whatever else


> VS конфигурация нормальным UI и плагинами в одну кнопку с маркетплайся


>РЯЯЯЯЯ МАКАКИ КНОПКОДАВЫ НИЧЕГО НЕ СТОИТЕ РЯЯЯЯЯ ВИМ СЛОЖНАААА

472 2697418
>>697411

>Если ты не можешь сделать этого сам, то ты не понимаешь как это работает


Может еще свой менеджер тредов, процессов и памяти написать? А то хули, как ты им пользуешься сам не реализовывал.
473 2697419
>>697418
Ты бросаешься из крайностей в крайности. Если тебе нужно понимать как работают эти вещи в твоей рабочей повседневной деятельности, то да, это хороший способ понять что это такое. Квинтэссенция программирование про автоматизацию процесса, в данном случае разработки.
474 2697422
>>697367
Для школоты-студентоты жидбрейнс бесплатный, кстати.
475 2697424
>>697419

>Квинтэссенция программирование про автоматизацию процесса, в данном случае разработки


Программирование это про перевод бизнес-требований или личных хотелок в код, а не твоя шиза про настоящих программистов.
476 2697425
>>697419

> Ты бросаешься из крайностей в крайности.


Так а нахуя мне тогда понимать как работает ебанная IDE? И самое главное не нахуя, а ЧТО ПОНИМАТЬ, что ты в ней собрался понимать? Вот скажи блять, ЧТО В НЕЙ ПОНИМАТЬ

Я понимаю как работает язык и нужные мне библиотеки. НО ЧТО Я БЛЯТЬ ДОЛЖЕН ПОНИМАТЬ В ЕБАННОМ РЕДАКТОРЕ, ЧТО БУКОВКИ ВСТАВЛЯЮТСЯ ПРИ НАЖАТИИ?
477 2697427
>>697403
Ебать ты МЫШЕВОЗ, поди ещё и на винде сидишь или каком-нибудь богомерзком DE без тайлинга.
478 2697430
>>697427

> поди ещё и на винде сидишь


Предпочитаю пользоваться удобной системой без проблем, а что? В разработке она не нужна, голенг умеет в кроссплатформу

ожидаю выпуки про драйвер постгре
image.png5 Кб, 286x197
479 2697431
>>697430
На случай высера про --race отвечу сразу пикрилом, докер.
480 2697432
>>697424
Это и есть автоматизация. Берешь идею - автоматизируешь процесс.
>>697425
Ты несколько уводишь наш разговор от темы. Я говорил не об этом и имел ввиду совсем не это. Ты, или это был не ты, неважно. Тот анон что выше, его основная логика, что все крутые и серьезные программисты используют IDE. Моя же логика не в том, что все программисты использующие vim по настоящему крутые и куда лучше вас бездарей из IDE. Моя логика что если ты вешаешь ярлыки по тому что использует человек, при этом сам не вдаешься в технические вопросы того что ты повседневно делаешь, то ты просто долбаеб, вот и все.
481 2697434
>>697432

>Это и есть автоматизация. Берешь идею - автоматизируешь процесс.


Если это лично тебе нравится или это требования работадателя, то да. Если нет, то это не стоит твоего времени.
482 2697435
>>697432

> того что ты повседневно делаешь


Я пишу бизнес-логику, а не IDE, помешанный вимошвайнокарась

> если ты вешаешь ярлыки по тому что использует человек


Увы, но так показывает практика, 99% вимошизиков - пишут на уровне хелло ворлдов
483 2697437
>>697435
Не смеши. Ты еще скажи, что ты можешь по коду определить был ли он написан в профессиональной IDE, или в плебейском виме.
484 2697439
>>697437

> ты можешь по коду определить


В теории можно, IDE обычно сама сортирует импорты и заводит go fmt, но это так, косвенные
485 2697440
>>697439
Ну это уже шутки какие-то несерьезные пошли. Даже неуважение какое-то, ей богу. Ты судя по всему дальше :q в вим не заходил.
vim.gif1,7 Мб, 2121x1170
486 2698178
>>697403
>>697412
Блядь, просто киллер-фичи. Срочно перекатываюсь в говленд
487 2698188
>>698178
Дебаггер тебе я так понял нинужын.
Смысл в идее и ее потомках - то что там нормально сделан дебаг для любого официально поддерживаемого языка.
488 2698194
>>698188
Внезапно и дебаггер тоже есть.
489 2698340
>>698194
Видели мы ваши дебаггеры и функционал, спасибо ненадо, лучше уж совсем без него, чем с ЭТИМ
490 2698368
>>698178
Ты сутки искал плагины? Красава, а теперь найди работу. В голенде такое изкаропки
491 2698374
>>698340

>ваши дебаггеры не дебаггеры


Тащемта гойленд под капотом использует тот же Delve.
492 2698375
>>698368
Когда начал учить го, потратил минут 30 чтобы установить vim-go. Было безумно сложно дописать в конфиг пару строк, но я каким-то чудом справился.
493 2698585
Почему так сложно форкнуть библиотеку и использовать ее?
Камитишь блять пушишь и все равно, твои изменения не видны, несмотря на то что ты импортируешь библиотеку уже из своего репозитория. Версии какие-то, ну нахуй это надо, почему нельзя просто брать последнюю версию из мастер бранча?
494 2698612
Прошел го тур, думаю порешать задачки с литкода на го и написать простенький проект. Какую ide можете посоветуете? vim только начал осваивать, сам привык к intelli j, но платной подписки нет.
495 2698827
>>698612
Если торопишься - vscode или его открытый форк. Не ебись с вимом, учи язык. Потом когда будешь синьером-помидором хуи пинать, можно и вим позадрачивать.

Если по фану - то конечно neovim, сначала будет непривычно, потом сложно, но в какой-то момент ты поймешь, что получил охуенный инструмент, которым будешь пользоваться всю жизнь.
496 2698830
>>698827

>получил охуенный инструмент, которым будешь пользоваться всю жизнь пока не перейдешь на emacs с evil-mode


Пофиксил
497 2698842
Попробую спросить. Имеется логгер github.com/sirupsen/logrus. Имеется gin.Recovery(). В режиме logrus.WarnLevel, логгер корректно пишет всю инфу об ошибке, но с пометкой паники как: level=warning. В режиме logrus.PanicLevel логгер перехватывает любую панику в фреймворке, вываливает только инфу о том, что была panic и я прекратил работу программы. Логи самого фреймворка при этом теряются. Может кто-нибудь с этим логгером работал и знает, как обрубить ему возможность вызова паники, чтобы он только логи писал и не выёбывался?
498 2698878
>>698585

> Версии какие-то, ну нахуй это надо, почему нельзя просто брать последнюю версию из мастер бранча?


Представь, как тысячи проектов одновременно перестали собираться из-за того, что в последней версии популярной либы сломали обратную совместимость.
499 2699511
>>698585
Да меня тоже все это бесит, но без этого никак. Git нужно изучать в обязательном порядке, без него уже хелло вёрлд наверное ни на одном языке не написать, кроме QBasic.
Все это сделано максимально неудобно, но если разобраться, то понимаешь, почему без этого какая-то серьезная разработка невозможна.
Зато вот разберешься с goreleaser и будет у тебя страница с релизами как у взрослых проектов :)
500 2699652

>импортировал из пакета А в пакет Б


>теперь ты не можешь импортировать из пакета Б в пакет А



Как же меня заебали эти импортопроблемы. Они специально такую конченную систему выдумали?
501 2699668
>>699652
Я так понимаю, других языков ты не видел? Такое везде.
502 2699680
>>699511

> Все это сделано максимально неудобно


git commit команду наверное пиздец сложно выучить. Удобнее ничего нету, почему тебе неудобно - хуй знает. Оно сейчас идеально и максимально удобно, можешь хоть по-коммитно подгружать нужную версию и не ебать мозгу
503 2700140
Насколько сложно в вас вкатываться? За спиной только питон в адекватном объёме джун+/миддл- и соответствующие бековые приколы - БД, очереди, сисд, докер, кубер.
504 2700148
>>700140
ну выучи основную хуйню - как гц/шедулер/интерфейсы/каналы/мапы/слайсы работают, потом на собес. всё.
505 2700210
>>697432

>все крутые и серьезные программисты


Пишут код. Используя удобный для себя инструмент.
506 2701365
Вы че реально пишете на го? Я думал это тред троллинга ньюфагов
507 2701396
>>701365
Тред ruby и rust в другом месте, вот на этом говне реально никто не пишет
508 2701509
>>701396
Сыглы,раст залупа,не понимаю долбоебов которые в это говно играют
509 2703712
>>701509
Настоящие программисты пишут на паскале.
510 2703812
>>703712
Настоящие программисты пишут хуй на заборе
511 2705938
посоветуйте какиенибудь книжечки базовые чтоб можно было обмазаться на 1,5 к страниц и дрочить на Go как в джаве шилдт к примеру.
512 2706194
>>705938

>книжечка


>программирование


А умом ты не блещешь, да?
513 2706246
>>705938
Но это реально для полных даунов книга.

https://coderbooks.ru/books/go/head_first_izuchaem_go_2020_makgavren/
514 2706323
>>706194

>А умом ты не блещешь, да?


я из джавы к вам пришел, там обмазываться книжечками это норма.
У вас че, не так что ли?

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

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

нашел какую-то
нашел какую-то Адам Фриман Профессиональный Go. Вроде объем неплохой, пока читаю но складывается впечатление что писал инфобизнесмен какой-то ебаный.
515 2706325
>>706194
алсо, ну если знаешь какие-то годные видеокурсы то советуй.
516 2707323
>>705938
Если у тебя норм опыт в джаве, то достаточно пробежать по материалам в шапке. Потом практика и гугли/читай доки по сложным для тебя моментам. Талмуты на 1000 страниц тут нахуй не нужны, гошечка мега простая, когда есть опыт.
517 2707459
>>707323
производственного опыта нет, спринг потыкал, петпроектики немного, алгоритмы там и все такое. Ну естессно задрачивал талмуды про одно и тоже

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

Пока-что по ощущению это анти-джава какая-то получается.
518 2707562
Фух. Завершил свой первый бэк на гошке. Всё по высшему классу с тестами, логами, секурностью. Ощущения агонь в жопе. Такого количества шишек на петьке я не собирал никогда. Совершенно ебанутый синтаксис, рвотный верблюд принудительно, доки посредством экстрасенсорики, нажористые бойлерпринты и, вишенкой на кале, устаревание кучи васянских пакетов из-за сверхсветового темпа развития языка.
519 2707646
>>707562
А нельзя было не завязываться на левые пакеты?
520 2707648
>>707646
Ты что! Это же самому програмулькать надо!

>>707562
Мочехлеб вернись на моческрипт
521 2707812
>>707459
Го сильно низкоуровневый по сравнению с джавой. Это скорее хипстерский Си, в котором улучшили качество жизни и отобрали возможность стрелять себе по ногам.
Все максимально топорно и просто, никакой магии. Cлайс - фактически тот же динамический массив из джава.

В джаве тоже абсолютно все передается по значению, как и в го. Вот только в некоторых случаях переменные под капотом содержат указатели на значения, а не сами значения.
В го со слайсами такая же история, слайс - это по сути указатель на массив и когда ты передаешь слайс в функцию, ты по сути передаешь указатель. Если же тебе в го надо передать структуру, которую ты хочешь там поменять, нужно явно указать, что ты передаешь именно указатель на структуру, а не копию
522 2708136
>>707562
Потому что ты скорее всего джавист, тут другая парадигма, синтаксис заебись, if err != nil тоже нормальный, что тебе не нравится? Удобные функции, интерфейсы и вообще подход. Заебись.

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

Язык охуенный, жаль, я не сениор и работу на нем не могу в польше найти. Если у вас есть вакансия на Go , готов работать вместо тебя, лишь бы не на жабе и прочем дерьмо ООП
523 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?
524 2708859
Как найти работу вкатуну на го? Вакансий на джуна 0, пиздос
525 2708885
>>708859
Сейчас с джунами в целом неоче. Если у тебя нет опыта в айтишечке, я бы на твоем месте поискал вакансию линейного сотрудника в крупную средне-контору в эксплуатацию или админить тестовые стенды например, либо автотестирование. Пару лет там, параллельно практикуя го и осваивая все сопутствующее беку. Потом в разы проще будет найти нормальную работу. Можно будет перекатиться или сразу в разработку или к девопсам на пару лет еще пойти и оттуда уже в разрабы-мидлы точно заскочишь.
526 2709732
>>708384

>// 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 теперь не литерал, а именнованный тип
527 2709801
>>708136

>Потому что ты скорее всего джавист, тут другая парадигма, синтаксис заебись, 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 {
527 2709801
>>708136

>Потому что ты скорее всего джавист, тут другая парадигма, синтаксис заебись, 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 {
528 2709825
>>709801

>На Джава


по коду не понятно какие из функций проникнут эксепшном в жопу. весь код теперь в try catch оборачивать что ли?
529 2709837
>>709825

>по коду не понятно какие из функций проникнут эксепшном в жопу. весь код теперь в try catch оборачивать что ли?


Технически у тебя любая функция может сломаться на null/nil и тысяче других вещей. Только в Java у тебя будет NPE который поймает фреймворк наверху, а в Go panic.
530 2709867
>>709837
В го в таких случаях возвращает err, шизик
531 2709891
>>665435 (OP)

>Читаем документацию прямо по порядку (пункт "Learning Go"): https://go.dev/doc/



Сейчас там не такого пункта, подразумевается "Using and understanding Go"?
532 2710277
>>709867
Это троллинг тупостью, да?
Первый пост как раз и и был про If err != nil
Плюс, чтобы вернуть err в случае nil ссылки надо не забыть её проверить на nil, без этого будет паника.
533 2710767
>>2710426 →

>Выгоняют из дома, есть 10 недель найти работу в айти.


>


>Дайте совет/план. Джаву и ДЖСкрипт могу начать учить сейчас же?


бамп

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

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

Вот тут гайды подробнее
https://go.dev/learn/
м
534 2710773
>>710767
Пиздуй курой в самокат, у тебя 0 шансов, если нет айти вышки и предыдущего опыта. Если есть, то целый 1%, если ты умный дохуя, в чем я сильно сомневаюсь. Рынок сейчас перенасыщен пидорнутыми джунами с уже существующим коммерческим опытом, а в голанге джуны не нужны в природе.
535 2710791
>>710773
я в Европе буду искать работу. Или Китае. Или Индии. Рынок в 1.5 млрд + 1.5 млрд, щас бы в РФ тухнуть за 2000 баксов
536 2710795
>>710791
>>708136
Вот тебе пример из Европы. Не надейся, тебе только в самокат.
537 2710826
>>710795
чел, не дизмораль
538 2710961
>>710277

> Плюс, чтобы вернуть err в случае nil ссылки надо не забыть её проверить на nil, без этого будет паника.


Ты троллишь тупостью или как? Функция, которая возвращает саму эту ссылку тебе вернет еще и еррор, если у нее где то там внутри случился проеб, это не тебе надо проверять указатель на существование
539 2711162
>>710767
Современная разработка это не про то, что ты знаешь как писать if-else-for и даже отличаешь класс от метода. Тебе нужно знать еще десяток-другой обязательных сопутствующих технологий и инструментов (гит, линупс, хттп, жесон, ямл, шифрование, бд, тестирование и еще куча всякой мелочи) и быть готовым разобраться с еще десятком специфичных для компании. Добавь сверху еще хотя бы поверхностное знание технологии разработки, гитфлоу, аджаил вот это вот все + знание типовых паттернов разработки и архитектуры, чистый код и прочую хуйню. Это для джуна. Для мидла надо уметь всем этим пользоваться хотя бы на уровне погуглил и за 5-10 минут сам понял как правильно и хорошо сделать.
Язык за пять недель - это ок, но все это говно вокруг языка вытянуть самому за месяц-два очень маловероятно. Как выше писали, надрочить линукс и поискать работу рядовым дежурным сисадмином - шансов на несколько порядков больше.
540 2711586
>>710961

>Функция, которая возвращает саму эту ссылку тебе вернет еще и еррор, если у нее где то там внутри случился проеб, это не тебе надо проверять указатель на существование


Сам придумал какую-то хрень, сам на неё ответил. Речь шла о том что в функцию попадает nil значение которое раньше всегда было not nil. Вот тут и может быть паника.
541 2712127
>>711586
Каким хуем туда попадёт нил значение? Если ты ошибки игнорить будешь, то так то да, но иначе я представить не могу как можно передать блять нил, что у тебя должно быть в голове? Сделать &var и получить нил ну уж точно не выйдет
542 2712142
>>711162
Не перегибай, для джуниора как раз достаточно знать язык, включаю стандартную библиотеку, уметь мерджить ветки в гите и писать запросики к бд + хоть какой-нибудь кругозор. Все остальное специфично для конкретного проекта. Насчет общих знаний по паттернам и архитектуре - для этого есть мидлы и сеньоры. Другой вопрос, что компаний готовых растить нулевых джунов не так много, поэтому спрос на мидлов естественно больше. Челику можнт быть имеет смысл вкатываться на оплачиваемые стажировки в крупные компании, если не тупой, то предложат джуном поработать.
543 2712166
>>712142

> Другой вопрос, что компаний готовых растить нулевых джунов не так много


Согласился бы с тобой года два назад. Но за последний год каждая компания, которую я знаю разумеется включая мою посокращала кучу людей и разумеется это были в первую очередь джуны. Если я буду рассматривать себе в команду пополнение, в первую очередь я возьму джуна с уже существующим коммерческим опытом, а не вчерашнего студента (ну разве что он будет готов работать за дошираки). Благо сейчас есть из чего выбирать. Программы стажировок - отличная тема, сам так вкатывался, но опять же это было бля давно, задолго до СВО.
545 2713793
>>713640
Первый же коммент

>Every goroutine starts with 2KiB of pre-allocated stack, so one million goroutines consume around 2GB (2,048 * 1,000,000 bytes).

546 2713918
>>713793
соснули даже у жабы
547 2713957
>>713918
Там и у питона соснули, чо уж
548 2714020
>>713793
ваще пох, виртуальная память и оверкоммит
549 2714601
Можете пояснить смысл тезиса - объявлять интерфейсы там, где собираешься их использовать?
Если я разрабатываю некоторый модуль и выставляю его api через интерфейсы, а реализацию скрываю в кишочках модуля, его могут использовать клиенты? Как в этом случае они будут получать конкретную реализацию?
550 2714644
>>714601
Имеется ввиду в одном пекейдже, что бы неймспейсы были одинаковые
551 2714677
>>714644
Спасибо, еще вопрос появился - насколько низкоуровневая разработка на гошке? В том смысле, что насколько много приходится изобретать велосипедов и писать инфраструктурный функционал под свои задачи (начиная от пресловутых реализаций структур даных, заканчивая клиентами для месседж брокеров и пулом коннектов к БД)
Какие нужные знания в целом по cs, чтобы жопа не горела?
мими-крудошлеп
552 2714748
>>714601

>объявлять интерфейсы там, где собираешься их использовать


А потом наеьнуттся об циклические зависимости.
553 2714874
Прошел го-тур, после того, как прочию книжку по гошке из оп-поста, то можно вкатываться на мидла при условии наличии бекграунда в 3 года в вебне и интерпрайзе?
554 2715165
>>714874
Разрешаю. Надрочи руку на каком-нибудь пете да сходи на собес, хуле как маленький.
555 2715694
>>715165
Первый мой свич языка, трясуся
556 2717234
Кто-нибудь может пояснить почему, если функция возвращает значение как указатель на структуру, то можно не присваивая результат переменной обратиться к полям структуры, а если возвращает саму стркутуру, то это ошибка. В спеке эти моменты подсвечиваются в контексте адресуемости значений, но не понятно, почему с указателями это работает.
31wednesday143157.jpg33 Кб, 624x795
557 2717456
>>717234
Что-то не понял. Вроде бы и так и так все ок.
https://go.dev/play/p/mHiR80nhAz2
558 2717728
>>717234
мб ты про методы с поинтер ресиверами? чтобы их вызвать нужно адресуемое значение (ну так как нельзя получить поинтер на неадресуемое значение)))
559 2718078
>>717456
https://go.dev/play/p/45b_ZMmVBMP
Если результат функции никуда не передавать, то не работает.
Не совсем понятно, почему вернувшийся указатель из one() у компилятора подозрений не вызывает, хотя по сути значение тоже теряется и не используется. В общем адресуемость - мутное определение для меня
>>717728
https://go.dev/play/p/oJPDl4OTwMs
Не, смотри выше. Поинтресивером может быть переменная-значение, если она адресуемая. (компилятор сам возьмет адрес). Как понимаю, только если методы интерфейса имплементить для поинтер ресивера, то компилятор ругнется, при попытке положить в переменную-интерфейс само значение, а не указатель.
560 2718489
>>718078
Потому что результат функции не addredsable. Почему в каких-нибудь плюсах это работает, а в го нет - потому что плюсы это сложный и замороченный язык, а го - простой и понятный.
Что не ясно?
561 2718491
>>718489
addressable. Нечто, у чего можно взять адрес. В сях, впрочем, помнится, тоже нельзя было возвращать указатель на локальную переменную
Здесь можно, но его следует приземлить перед использованием.
562 2718609
>>718491
В общем, дети, сол и фасол пишутся с мягким знаком, а вилька т тарелка - без
Это понять нельзя, это надо запомнить.
image.png17 Кб, 574x155
563 2718657
>>718078
есть еще проще пример https://go.dev/play/p/UAizdcpgBWf
564 2718875
>>718489
т.е. притвориться, что еслти возвращается указатель, то это указатель на результат функции (указатель сам по себе addresable)
565 2718879
>>718491

>нельзя было возвращать указатель на локальную переменную


>Здесь можно.


Становится понятно, что утверждение "Го учится за пару вечеров" не более чем рофл.
Хз как можно догадаться про утерждение выше, хоть и прочитал спеку и effective go
02friday084405.jpg39 Кб, 705x531
566 2719195
>>718078
Потому что результат выполнения функции - это rvalue. То есть подразумевается, что это временный объект который неизвестно где размещен, может быть в регистрах, может быть в стеке или в куче. С указателем прокатывает, потому что это уже и есть адрес по которому можно сходить.
Вот хороший видос по теме. Там хоть и плюсы, но эти концепции универсальные для всех языков. https://www.youtube.com/watch?v=XS2JddPq7GQ
567 2719750
>>719195
Дело как раз в том, что с увкащатеоем НЕ прокатывает. Пока ты его не засунешь во внешнюю переменную.
568 2719800
>>718879

>нельзя было возвращать указатель на локальную переменную


>Здесь можно.


> Становится понятно, что утверждение "Го учится за пару вечеров" не более чем рофл.


всмысле? тут просто убран кейс, на котором валятся новички в сишке. ну люди без знания сишечки о нём даже знать не будут.
image.png29 Кб, 527x727
569 2719808
>>719750
Ну вот же ты сам делал пример.
one - указатель на структуру - компилятору норм, rvalue - это адрес по которому есть это поле, ошибки нет.
two - структура - компилятор негодует, неадресуемое rvalue, которое хуй знает где, проверить есть ли у него поле он не может, потому что нет адреса где живет эта ебола
570 2720022
>>719808
А для rwo() при этом эфемерная копия значения, тут же исчезающая, имеет адрес и а нее можно положить значение.
В общем, классическая сол и фасол.
571 2720024
>>720022

>имеет адрес


Не имеет адрес, а это и есть адрес.
572 2720771
>>719808
Это защита от вкатунов-долбаебов, указатель еще логично менять, но нахуя менять тебя копию - уже интересный вопрос
573 2721308
Как часто приходится заниматься подобной еблей с указателями?
Или это прямо терминальный корнер кейс, который на практике не встречается
574 2721460
Чё, ребят, сложный язык? Вката нет?
575 2721621
>>721460
перед тем как вкатываться научись программировать епта. у нас тут на сеньоров приходят собеситься всякие контекст заюзать не могут
576 2721656
>>721308
редко. в редких случаях, когда ты встречаешься с тем, что у тебя что-то не аддрессабл, то в первую очередь загорается жопа LSP, потом тебе IDE красно красным светит на весь дом, что так делать нельзя и ты пишешь еще строчку, чтобы сохранить залупу в переменную. тут буквально одна редкая проблема с одним самым простым решением.

а вот nil разыменовать получается намного чаще. обычно выливается в то страдание, что тебя на PR просят добавить проверку на nil. ну или прод начинает пятисотить, но это реже.
577 2723057
>>665435 (OP)
Кто-нибудь пишет опенсорс проект? Или может стартап? Готов бесплатно или почти бесплатно(если вы все же зарабатываете деньги с проекта), писать код на Go,
опыт коммерческой разработки - 3 года, писал всякое разное на питухоне, начиная от крудов на джанге, заканчивая простыми ML моделями для бизнеса(деревья решений, классификация), потом упоролся в низкий уровень, компуктер сайнс. Поскольку работу найти де факто невозможно, если не из РФ(т.е озон, вб, сбер отпадают), нужно поддерживать скилл.

Пишите
p.k22~wlks123ANUSgmaCP6ilPUNCTUMc^vhom
578 2723531
>>723057
Может телегу сразу дашь? Есть один пет проект, опишу, интересно тебе будет или нет
579 2723675
>>723057
есть один проект, зарплата до 30к в день. ссылка в телеграме
580 2723737
>>723675

> 30к в день


Зимбабвийских долларов?
581 2723942
Еле как написал первый минорный сервис в прод на гохе и понял, что нихуя не понимаю в гошном стиле и бест практисах после другого языка с сахарком и гибкостью.
Что делают вместо дефолтных аргументов и опциональных значений (и как отличать опциональные значения от отсутствующего если делать через неприсвоенную переменную), как справиться с вездесущим if err != nil и т.д.
В общем, где можно посмотреть идеальный код со множеством кейсов где все разложено по полочкам с объяснениями, может даже книжка/статья найдется.
582 2724103
>>723942

>дефолтных аргументов и опциональных значений


https://go.dev/play/p/ua84ZSOSL70, но это как-то уродски

>if err != nil


в effective go есть пример https://go.dev/doc/effective_go#recover, где можно обыграть внутри своего пакета отлов ошибок на верхнем уровне. Если ошибка кастомная, то обрабатываем, если нет, то паникуем.
583 2724139
>>723675
Юзернейм, вы когда нибудь слышали о ПИ ТУ ПИ торговле?))0

>>723531
https://t.me/ errconnnill
584 2724695
Не могу придумать идею для пет проекта, в голову лезут велосипеды и банальщина. Подкиньте идей, плес. Желательно, чтобы применить канкаренси и очереди.
585 2724699
Не могу придумать идею для пет проекта, в голову лезут велосипеды и банальщина. Подкиньте идей, плес. Желательно, чтобы применить канкаренси и очереди.
586 2725651
В пистоне есть удобные средства для контроля горутин и отслеживания их состояния типа gather, wait_for, Task, as_completed и т.д.
В ГО есть что-то подобное или нужно только вокрун каналов, вейт груп и селектов плясать?
587 2725705
>>725651
А чем тебя не устроили чаннелы, вг и селекты? Они буквально для этого и создавались, шиз
588 2725727
>>725705
Я привык обмазываться сахаром
589 2725893
>>725727
Ну тогда обмажься враппером вокруг них, лол
image.png35 Кб, 696x512
590 2726557
Что я делаю не так? Почему так мног err != nil, как от их избавиться?
591 2726739
>>726557
Зачем от них избавляться? Если функция может вернуть ошибку, то естественно что ее нужно обработать. Если тебе похуй то можно использовать _ и не проверять ничего.

Алсо, очень удобно оборачивать ошибки на каждом уровне через fmt.Errorf("хуе-мое не могу отправить: %w", err) и передавать на самый верх в main. Так если ошибка возникнет, получишь полный и удобный стектрейс по которому найдешь проблему за несколько секунд.
592 2727695
>>726557

>как от их избавиться?


lo.Must()
Но это не Ъ-путь, Ъ-гоферы руками делают работу языка.
593 2727736
>>727695
А ещё у тебя сгорит жопа от того, что 3 это не 2+1.
594 2728025
>>726557
это особенность языка. через какое-то время начинают появляться подозрения, что функциии, не возвращающие ошибки и не принимающие контекст на вход могут делать сетевые вызовы ниже по стеку даже если это не так.
595 2728026
>>726557
алсо

>зачем-то копируется поинтер на дефолтный хттп клиент, который юзается 1 (один) раз


>конструктор реквеста без параметров может зафейлиться


>err = errors.New(fmt.Sprintf())


>анмаршал и рид жсона в два шага вместо json.NewDecoder().Decode() без каких-либо действий, которые бы оправдывали это

596 2728065
>>728026
годно, спасибо

>конструктор реквеста без параметров может зафейлиться


Имеется в виду makeAuthRequest? Реквест по сути статичный, параметры подставляются из env
597 2730853
Сколько нужно гоферов, что бы перекатить тред?
598 2731576
>>730853
Они слишком заняты проверкой на nil
599 2731771
>>731576
ну так новый тред nil, время паниковать
600 2732168
>>731771
Какая паника? В го так не приятно, мы обычно правильно хендлим ошибку, а не просто выключаем комп от сети
601 2732215
>>732168

>правильно хендлим ошибку


То есть аккуратно, руками, чтобы ничего не напутать, передаём nil наверх.
602 2732495
Аноны поясните за горутины
Не как они работают, а области их применения?
Можно ли, допустим ,получив структуру Some у которой есть n вложенностей, которые необходимо заполнить, заполнить вызвав n горутин, каждая их которых изменит изначальную структуру Struct?
603 2732538
>>732495
Многопоточность - это про ввод/вывод во всех языках программирования. Её не надо применять, работая в оперативной памяти.
image.png37 Кб, 376x1168
604 2732778
>>732495

>Можно ли, допустим, получив структуру Some у которой есть n вложенностей


Можно, только в твоем конкретном примере частный случай, параллельность.
https://go.dev/play/p/KTM1booW8Y9
Анон выше правильно заметил, что многопоточность скорее про асинхронность
>>732538
Смотря какая задача стоит, если каждая операция съедает много процессорного времени, а отклик нужен быстрый, т оимеет смысл распараллелить вычисления. Но тут еще сложности вылезают с подсчетом оптимального числа горутин и как их шедулер раскидать между ядрами вообще не ебу пока что.
605 2732791
>>732778
Go самостоятельно раскидывает по ядрам процессора тяжелые матаны и самостоятельно дробит байты в раме под эти расчёты. Если ты хочешь поиграть в русскую рулетку со своим коленом, то есть инструменты ручного управления этими вещами.
606 2734650
>>732495
ну вполне обычный паттерн. есть какая-нибудь структура, аггрегирующая разные сущности, в горутинах запускаются сетевые походы в сервисы, которые отдают эти сущности, их ответы складываются в одну структуру (ну чаще там еще какие-нибудь действия над ответами идут и структура формируется уже после обработки) и т.п.
607 2737715
Я недавно написал программу на го и мне норм.
Go тред №24 go 608 2740791
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 более чем живая!

Предыдущий тред тонет здесь: >>665435 (OP)
609 2740793
>>740791
Перекатите, по-братски, руки из жопы
610 2740950
>>740793
Не проверил на nil, признайся честно?
611 2748919
Есть ли перекат?
Тред утонул или удален.
Это копия, сохраненная 1 июля 2023 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски