Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 1371 128 361
Go тред №19 /go/ Аноним 04/02/22 Птн 15:59:07 2286748 1
image.png 140Кб, 1061x455
1061x455
image.png 415Кб, 679x513
679x513
image.png 211Кб, 640x397
640x397
image.png 105Кб, 512x512
512x512
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №19 /go/

ВЕЛИЧЕСТВЕННОЕ БЕЗХОМЯЧЬЕ ЛОГО ЭДИШН

Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, богатую и универсальную стандартную библиотеку функций и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

Обсуждаем язык, смеемся с залетных крестоносцев, обсуждаем почему нам не нужны дженерики, наследование и эксепшены, по каждому багу находим трехстраничный пост в официальном блоге Go, объясняющий почему это на самом деле фича, ждем, когда нам завезут дженерики, наследование и эксепшены.

Растобляди завидуют, сектантская запарта не переваривает.

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

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

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

Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Небольшой канал треда: t.me/golang2ch и даже живой

Предыдущий тред умирает здесь: >>2165418 (OP)
Аноним 04/02/22 Птн 16:03:57 2286762 2
Шарп лучше чем Go.
Аноним 04/02/22 Птн 16:48:55 2286819 3
Аноним 04/02/22 Птн 16:51:34 2286824 4
>>2286819
Шарп лучше эликсира.
Аноним 04/02/22 Птн 19:56:52 2287054 5
>>2286819
>Elixir
Полурак-полухуй полуруби-полуэрланг, всратый пиздец
Аноним 04/02/22 Птн 21:26:52 2287159 6
>>2286748 (OP)
>Cамого МУЖЕСТВЕННОГО в мире языка
А при чем тут Си?
Аноним 04/02/22 Птн 22:35:18 2287211 7
>>2285821 →
>Что для вас хуже, или от чего больше воняет: копипаста в соурс коде, или ебанутое нагромождение абстракций?
они идут рука в руку, когда люди делают абстракцию и копипастят 15 "независимых" пакетов для своей абсракции, меняя там по одной константе, но в одном пакете неиронично добавляют две новые строчки. в то же время как это всё говно можно было сделать. просто. менее. абстрактным.
но, откровенно говоря, напрашивается вывод, что это не дихотомия, а ортогональные проблемы.
Аноним 04/02/22 Птн 23:58:09 2287247 8
Чем вы парсите аргументы командной строки? Стандартный flag урезанная хуета, с тем же успехом можно через os.Args парсить. Нашел вот такой пакет, выглядит пока неплохо.
https://pkg.go.dev/github.com/alexflint/go-arg
Аноним 05/02/22 Суб 03:14:19 2287315 9
Аноним 05/02/22 Суб 08:54:55 2287390 10
>>2287054
>полуруби-полуэрланг
Это же идеально.
Аноним 05/02/22 Суб 18:45:02 2287935 11
>>2286748 (OP)
Как заставить себя пилить пет-проект?
Аноним 05/02/22 Суб 18:49:42 2287945 12
>>2287935
Вместо го взять язык, который нравится.
Аноним 05/02/22 Суб 19:02:55 2287967 13
Аноним 05/02/22 Суб 19:58:25 2288021 14
>>2287945
А что делать, если мне никакой не нравится, потому что сорта говна?
Аноним 05/02/22 Суб 20:15:28 2288043 15
>>2287247
flag. мне много не надо. обилие флагов это хуевый дизайн.
Аноним 06/02/22 Вск 02:02:42 2288238 16
>>2287935
Никак, хороший пэт-проект можно запилить только на собственном интересе и энтузиазме. Найди интересную для себя тему и пили.
Аноним 06/02/22 Вск 02:11:10 2288242 17
>>2286748 (OP)
хочу вкатиться в go, как вообще идея, если нету коммерческого опыта в беке?
Аноним 06/02/22 Вск 02:13:57 2288244 18
>>2288242
> если нету коммерческого опыта в беке
Очень хуёвая идея.
Аноним 06/02/22 Вск 02:27:01 2288245 19
>>2288244
и что делать тогда?
как правильно вкатываться в го?
Аноним 06/02/22 Вск 02:31:52 2288246 20
>>2288245
Начать с какого-нибудь другого языка для бэка, дорасти там до миддла и перекатываться.
Аноним 06/02/22 Вск 02:54:24 2288252 21
>>2288242
на стажера опыта в беке вообще не надо. я вкатился, пробуй. один хуй у тебя всего штук 5 компаний куда надо пробовать - авито, озон и т.п. так что дохуя времени это не займет, плюс, если попросишь, то они тебе фидбек дадут. учить шарт/жаву должно быть твоим вторым вариантом, тебе на них все равно с таким же нулевым коммерческим опытом собеседоваться, разве что вакух в говноконторах больше.
Аноним 06/02/22 Вск 07:23:43 2288270 22
>>2288246
>>2288245
Ну можно учить параллельно го и CS, VCS, DB, но с этого, мне кажется, охуеешь, и смысла большого в выборе именно Го не будет.
Если есть прям чёткая цель, я бы нашёл толкового препода, который начинает с базы и Си/Паскаля, тогда бы быстрее пошло.
Аноним 06/02/22 Вск 07:44:01 2288274 23
>>2288252
Тогда уж для безопасности учить пхп цмс, а параллельно го как основной варик
Аноним 06/02/22 Вск 07:51:04 2288275 24
Ну и где блять дженерики? Где 1.18?
Аноним 06/02/22 Вск 10:23:35 2288301 25
image.png 383Кб, 624x450
624x450
>>2288274
> учить пхп цмс
А через 5 лет обнаружить себя ковыряющим магазины на битриксе. Отличный план.
Аноним 06/02/22 Вск 14:19:50 2288618 26
>>2288242
Вкатывайся, работу на самом деле всегда можно будет найти, а с опытом, уже сможешь во всякие озоны и вайлдберсы вкатится. Есть у меня знакомый, который действительно хотел работать и искал на протяжении месяца, ну его и взяли, стажером (trainee) на Rust в маленькую (< 20 сотрудников) контору.
Аноним 06/02/22 Вск 14:43:27 2288650 27
>>2288301
>А через 5 лет обнаружить себя ковыряющим магазины на битриксе. Отличный план.
Это значит 5 лет опыта программирования. Битриксом зарабатываешь, остальное для себя делаешь. Один из основных разработчиков Битрикса, Александр Сербул, пишет на Хаскеле и многих других языках, хорошо знает математику. Очень крутой инженер, умный человек. Не плюется и не кидается говном как вы школьники.

Тебе таким никогда не стать. Даже если ты не будешь использовать PHP и Битрикс. Проблема не в них, проблема в вас. Вы ни на что не годитесь. PHP можно использовать как ступень вверх. Вам же гордыня не позволяет. Для вас лучше быть нищим бездельником чем писать на PHP.
Аноним 06/02/22 Вск 18:32:39 2288901 28
Screenshot from[...].png 55Кб, 734x254
734x254
Screenshot from[...].png 78Кб, 727x328
727x328
>>2288242
а вот они не спрашивают, а идут к цели
Аноним 06/02/22 Вск 19:23:50 2288969 29
>>2288650
Пчел, я уже лет 10 на пхп....
Аноним 06/02/22 Вск 20:21:24 2289017 30
Аноним 06/02/22 Вск 20:32:31 2289027 31
> - Емкий пошаговый гайд с азов до джуна (go tour на максималках): https://www.practical-go-lessons.com/
зря убрали из шапки, тоже годнота
Аноним 06/02/22 Вск 22:27:13 2289162 32
>>2289027
Вернёшь, когда будешь перекатывать.
Аноним 06/02/22 Вск 23:14:53 2289201 33
Какие есть пакеты для создания кроссплатформенного гуи на го? ГТК\Кьюти\Вебуи идут нахуй, мне интересны альтернативы.
Аноним 06/02/22 Вск 23:16:04 2289202 34
>>2289201
> Вебуи идут нахуй
Ты выбрал не тот язык.
Аноним 06/02/22 Вск 23:36:29 2289212 35
Аноним 07/02/22 Пнд 12:01:57 2289520 36
>>2289201
На го нормальный гуи не напишешь.
Если нужен кроссплатформенный гуи, то бери электрон/js или qt/C++. Все остальное вымерло.
Аноним 07/02/22 Пнд 12:49:40 2289584 37
Аноним 07/02/22 Пнд 13:07:32 2289610 38
>>2289584
Гуй на жабе никогда не был популярен, а сейчас просто мёртв.
Аноним 07/02/22 Пнд 20:57:47 2290182 39
>>2288275
Уже 2 версии беты залили, релиз вроде в марте планируют
Аноним 07/02/22 Пнд 21:06:04 2290189 40
>>2289201
>>2289520

берите дарт и флаттер, то что нужно для гуя
остальное - говно
Аноним 07/02/22 Пнд 21:09:37 2290194 41
>>2290189
Они ж сдохли давно, не?
Аноним 07/02/22 Пнд 21:10:33 2290195 42
>>2290189
> имплаинг дарт не говно
Аноним 07/02/22 Пнд 21:12:14 2290197 43
Аноним 07/02/22 Пнд 21:14:39 2290201 44
>>2290194

топ язык для кроссплатформ (а другого не надл) гуя под любую платформу
Аноним 08/02/22 Втр 09:45:47 2290439 45
>>2290197
Как число STARS коррелирует с использованием технологии?
Я например ставлю звёздочку для добавления в закладки, чтобы потом посмотреть. Обычно на этом знакомство и заканчивается.
Аноним 08/02/22 Втр 09:47:06 2290440 46
>>2290439
И да, добавленные проекты публично видны у тебя в профиле ?tab=stars, значит всякие вкатотуси добавляют себе проекты, чтобы выглядеть шарящими.
Аноним 08/02/22 Втр 15:03:05 2290740 47
>>2290440
> значит всякие вкатотуси добавляют себе проекты, чтобы выглядеть шарящими
Так это же шиза уровня ревнующих тянок, которые следят кому их парни ставят лайки в инсте.
Я провел пол сотни собеседований ждунов, гитхаб публиковала половина, и самое интересное что там было это именно их код, а не то что они лайкали или форкали.
Аноним 08/02/22 Втр 21:23:35 2291150 48
Аноним 08/02/22 Втр 22:15:48 2291188 49
>>2286748 (OP)
syntax error: function type must have no type parameters
syntax error: function literal must have no type parameters
syntax error: method must have no type parameters

Ну и нахуй они тогда нужны, если ничего сложного с их помощью нельзя сделать?
Аноним 08/02/22 Втр 23:05:59 2291222 50
Аноним 08/02/22 Втр 23:40:11 2291244 51
>>2291188
Да в говне на всё Особое Видение, делают как угодно, лишь бы не как в других языках. Когда завезут эксепшены, тоже сделают какую-нибудь хуйню так, что никто не захочет пользоваться.
Аноним 09/02/22 Срд 07:28:41 2291335 52
>>2291244
Исключениями и так никто не хочет пользоваться.
Аноним 09/02/22 Срд 10:37:43 2291394 53
>>2286748 (OP)
Вот, подумываю зайти в каждый тред, кроме Си и Паскаля, и обосрать ваши языки. Насчёт С++ не уверен. Он был хорош, пока туда не начали тащить лямбду.

А, так за что я же не люблю golang? Ну синтаксис вроде ничо так, но размер исполняемых файлов это полный пиздец. Понимимаю зачем и почему, но принять это не могу.
Аноним 09/02/22 Срд 11:19:58 2291446 54
>>2291394
А какой в среднем размер бинарника у го приложения?

мимо
Аноним 09/02/22 Срд 14:11:34 2291610 55
>>2291394
>2022
>размер исполняемых файлов
Ты ебанутый?
Аноним 09/02/22 Срд 14:22:39 2291618 56
>>2291394
ПЕРЕПИСАЛ GNU COREUTILS НА GO
@
ТЕПЕРЬ КАЖДЫЙ ДОКЕР-ОБРАЗ ЗАНИМАЕТ 15 ГИГОВ
Аноним 09/02/22 Срд 14:29:32 2291622 57
>>2291446
А что такое "в среднем"?

В целом есть опции как везде, например, обрезать символы (которые тащатся по умолчанию с бинарником) и узерать размер бинаря в среднем на ~треть и иже с ним. Правда никто не юзает, ибо нахуя.
Аноним 09/02/22 Срд 14:43:21 2291639 58
>>2291610
Двачую, кого это вообще ебать должно, если ты не малварь для микрочипов пишешь. А если ты пишешь такое, то будешь писать на асме.
Аноним 09/02/22 Срд 15:03:19 2291661 59
>>2291622
Анон написал, что размер бинарника - пиздец. Мне стало интересно, насколько жирный бинарники у го
Аноним 09/02/22 Срд 16:16:09 2291753 60
image.png 44Кб, 640x640
640x640
>>2291610
Нет ты. Швейцарский нож для JSON, написанный на Си (jq называется) весит 300 КБ. А теперь посмотри на тупой нож для JSON, написанный на Го.
Аноним 09/02/22 Срд 16:19:40 2291757 61
>>2291610
>>2291753
Бляяя, я обосрался с примером. Это dynamically linked jq весит 300 КБ. Statically linked почти 4 МБ. Но ты всё равно не прав. Размер имеет значение.
Аноним 09/02/22 Срд 20:29:08 2291965 62
>>2291757
Имеет значение для чего? На го пишут энтерпрайза системы, где каждый микросервис - это обернутый в докер контейнер.
В среднем гошный сервис весит 10-50 мб.
Еще раз для чего и кого это имеет значение? Конкретный пример пожалуйста.
Аноним 09/02/22 Срд 21:04:38 2291983 63
16311997734440.png 651Кб, 700x655
700x655
>>2291965
>Имеет значение для чего?
Для индусского энтерпрайза крутящегося на raspberry pi, очевидно.

>>2291757
>1.5 мб это пиздец
>Statically linked почти 4 МБ
Это другое?
Аноним 09/02/22 Срд 23:42:08 2292127 64
>>2291394
>>2291661
У меня на проектах бинари по 60-120 мегабайт.
С одной стороны дохуя, с другой - контейнеры с системными зависимостями и без этих бинарей весят мегабайт по 200-300
>>2291610
Программисты-анальники же
Аноним 10/02/22 Чтв 00:14:24 2292156 65
>>2291965
> На го пишут энтерпрайза системы,
Это такая хуета, что просто нет слов.
Оно конечно работает, но в "энтерпрайза" накладные расходы заоблачные. Какой-нибудь ёбаный сервис для логов и мониторинга отжирает как половина решения.

>>2292127
>бинари по 60-120 мегабайт
Очевидно что это бинарный говнокод сгенерированный говнокомпилятором.

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

Аноним 10/02/22 Чтв 00:22:43 2292165 66
>>2292127
> 60-120 мегабайт
> для сервера
Лол. Я думал там за гиг-два оно вываливается, а тут всего лишь 100 метров

Аноним 10/02/22 Чтв 00:29:47 2292171 67
>>2292156
> Очевидно что это бинарный говнокод сгенерированный говнокомпилятором.
У нас много зависимостей и кодогенерации, так что не сказать что это прямо поток инструкций говна. Но да, го компилятор оптимизирован под другие вещи, размер бинаря оптимизируют по остаточному принципу.
>>2292165
Ты учти, что при исполнении весть бинарь вычитывается в память, т.е. я еще ничего не сделал полезного, а 100 метров памяти уже занял.
Аноним 10/02/22 Чтв 01:53:56 2292209 68
>>2292156
> Наверное нужен мировой кризис, охуеный такой с общемировой депрессией, банккротством и разрушением производств, чтобы всю шелупонь смыло.
Ыыы бля а лучшы ядирная вайна штоп была!
Школотрон, спок, мы тебе не запрещаем лабы на асме и сишке писать.
Аноним 10/02/22 Чтв 04:29:20 2292247 69
>>2292156
>Наверное нужен мировой кризис, охуеный такой с общемировой депрессией, банккротством и разрушением производств, чтобы всю шелупонь смыло.
Никто тебе не запрещает написать компилятор для Go с динамической линковкой.
Аноним 10/02/22 Чтв 04:58:30 2292248 70
Пробовал strip натравить?
Аноним 10/02/22 Чтв 09:47:53 2292312 71
>>2291753
ну можешь тот же швейцарский нож написать и он у тебя целых три-четыре МБ будет вместо 1.5. функционал с размером слабо коррелирует.
>>2292156
>Очевидно что это бинарный говнокод сгенерированный говнокомпилятором.
с такими размерами нихуя очевидного нет, они могут говна себе наэмбедить вроде свагера, у которого веб интерфейс 20 мб сразу отжирает. мне блядь вообще интересно сколько логики на 80 мб в сервис нужно засунуть
>>2292127
>С одной стороны дохуя, с другой - контейнеры с системными зависимостями и без этих бинарей весят мегабайт по 200-300
никогда не понимал люди от лени или от незнания скратчем/дистролес не пользуются и тупо шипят даже не альпайн а целую убунту со всем говном
>>2292171
>Ты учти, что при исполнении весть бинарь вычитывается в память, т.е. я еще ничего не сделал полезного, а 100 метров памяти уже занял.
а ты оправдывайся https://stackoverflow.com/questions/31722881/is-an-entire-static-program-loaded-into-memory-when-launched
Аноним 10/02/22 Чтв 12:02:33 2292422 72
>>2292312
>никогда не понимал люди от лени или от незнания скратчем/дистролес не пользуются и тупо шипят даже не альпайн а целую убунту со всем говном
зато можно потом потом на продакшне пошурудить как будто в обычном линуксе. И vim нормальный.
Аноним 10/02/22 Чтв 12:07:16 2292426 73
>>2292312
>истролес не пользуются и тупо шипят даже не альпайн а целую убунту со всем говном

И могут ли миллионы мух ошибаться?

$ curl -s https://hub.docker.com/v2/repositories/library/ubuntu/ | jq -r ".pull_count"
6507617222
$ curl -s https://hub.docker.com/v2/repositories/library/alpine/ | jq -r ".pull_count"
8695923962
$ curl -s https://hub.docker.com/v2/repositories/library/centos/ | jq -r ".pull_count"
1032061194
Аноним 10/02/22 Чтв 12:12:00 2292431 74
>>2292312
> никогда не понимал люди от лени или от незнания скратчем/дистролес не пользуются и тупо шипят даже не альпайн а целую убунту со всем говном
Где-то видел статью, что в случае джанго-приложения вообще не важно альпайн это или убунта, т.к. если установить все необходимые зависимости размер образа будет в обоих случаях больше 400 мегабайт
Аноним 10/02/22 Чтв 12:27:05 2292452 75
>>2291188
Потом всё это запилят. Скажи спасибо, что Пайк вообще снизошёл и стал пилить дженерики
Аноним 10/02/22 Чтв 12:32:43 2292461 76
200c779b5340e28[...].jpg 8Кб, 160x160
160x160
>>2292247
Чтобы те, кто будет администрировать это говно складывали все эти динамические либы в один контейнер с каждым сервисом и конечный результат был ещё больше.
Аноним 10/02/22 Чтв 12:39:13 2292470 77
16414546622790.jpg 10Кб, 512x382
512x382
Аноним 10/02/22 Чтв 12:44:27 2292484 78
>>2292312
Ох бля как вспомню статические бинари в яшке на 900метров...
Аноним 10/02/22 Чтв 14:25:46 2292626 79
>>2292422
>vim нормальный
Да, ради этого стоит тянуть 300 МБ говна.
Аноним 10/02/22 Чтв 15:38:24 2292707 80
>>2292209
>мы
Такой смешной. Потешеый прям. Отучайся говорить за всех. Отучил себя - отучи товарища.

Аноним 10/02/22 Чтв 17:21:57 2292841 81
>>2292156
Куда тянуть? Как это вообще влияет на что-то? У тебя адсл на проде или что? Бред какой-то

Аноним 10/02/22 Чтв 19:30:58 2293000 82
>>2287390

Идеально был бы просто компилируемый руби. Только многомерные массивы менее ебануто сделать и идеальный ЯП.
Аноним 10/02/22 Чтв 19:32:49 2293003 83
>>2285821 →

Просто вымораживает крестовое ООП ради ООП, поэтому копипаста лучше.
Аноним 10/02/22 Чтв 19:35:33 2293006 84
>>2289201

Кроссплатформенный гуй это только кутя, ну или электрон для говноедов.
Аноним 10/02/22 Чтв 22:02:28 2293184 85
Гоферы, а почему у вас в языке нет неизменямых переменных?
Аноним 10/02/22 Чтв 22:09:56 2293193 86
Аноним 10/02/22 Чтв 22:23:35 2293211 87
>>2293193
Это константы со значениями, определяемыми во время, компиляции. А мне хотелось бы объявить неизменяемым, допустим, значение, полученное из функции, чтобы случайно его потом не поменять
Аноним 10/02/22 Чтв 22:26:12 2293216 88
Аноним 10/02/22 Чтв 22:31:04 2293221 89
> .const initializer f() is not a constant
Просто пиздец.
Оправдывайтесь, говноеды.
Аноним 10/02/22 Чтв 22:44:33 2293237 90
>>2293211
Ну делать можно например структуру с приватными полями и паблик конструктором. Один раз засетил поля, дальше менять не можешь.
Аноним 10/02/22 Чтв 23:31:16 2293263 91
>>2292841
Я свой первый комп с кассеты магнитофонной загружал.
А первый IBM PC/XT компьютер, до которого мог дотянуться, был в студенческой лабе и это был Искра-1030 с 640 Кб ОЗУ и HDD на 10 Мб, на котором умещалась MS-DOS, Turbo-C, студенческие лабы и одна игрушка. Вроде Digger. И всё это было снабжено чёрно-белым CGA-монитором. И игрушки там были не всегда, зачастую студенческие лабы занимали слишком много места.

>адсл
MNP5 9600 baud
Аноним 10/02/22 Чтв 23:37:06 2293268 92
Какие пет проекты можно делать на го? Это должно быть что-то более низкоуровневое, чем какой-то блог? Или тоже без задней мысли грузить джейсоны?
Аноним 10/02/22 Чтв 23:47:27 2293279 93
>>2293216

Ебааааать, что я пропустил. Добра.
Аноним 11/02/22 Птн 00:10:14 2293294 94
>>2293268
Го это в первую очередь про еблю в джейсоны gRPC в гугле. Не хочешь такое пилить - попробуй поиграться в горутины и каналы, например в вебсокет-чате, веб-крулере или внезапно гуёвом приложении, например игре.
Аноним 11/02/22 Птн 00:42:08 2293334 95
>>2293268
сделай какой-нибудь простой интерфейс для terraform.

ах ты не знаешь что это? ну так тебя предупреждали
Аноним 11/02/22 Птн 00:47:37 2293345 96
>>2293334
>terraform
Ох и хуета ебучая. Нахуя вам кластеры разворачивать автоматически? Руками что, не судьба? Подъебать бы вас, подсунуть конфиг на пару тысяч мощных инстансов, что хостинг провайдер загнал вас в нищету и долги.
Аноним 11/02/22 Птн 00:50:15 2293350 97
маркс.jpg 177Кб, 634x800
634x800
>>2293345
Да нам то не надо, но проклятые капиталисты хотят отнять у нас средства производства и для этого требуют, чтобы он тоже был в виде кода!

К сожалению, быть луддитом я не могу. Очень кушать хочется.
Аноним 11/02/22 Птн 02:28:07 2293395 98
>>2293350
Ох лол, это мне напомнило как я взяв на проекте задачу по Цефу пошел в русскоязычное комьюнити с вопросом по нему, так меня там куча людей обложила хуями за то что я какой-то хуйней занимаюсь, которая им показалась бесполезной (я делал оператор по нему с определенной продуктовой логикой). После этого туда не заходил, стыдно
Аноним 11/02/22 Птн 02:38:27 2293398 99
>>2293395
Таково любое русскоязычное комьюнити.
Аноним 11/02/22 Птн 03:15:52 2293410 100
>>2293395
Ничего не понятно.
Понятно, только что твои рабочие таски незнакомые люди отказались помогать делать и обложили хуями.
Так по-моему любое коммунити делает. Просто не все выкупают тонкий стеб на английском
Аноним 11/02/22 Птн 04:37:09 2293423 101
>>2286748 (OP)
Незнаю по теме пришел или нет, подскажите анонасы, куда копать. Вообщем нужен бот на андроид, для автоматизации, грубо говоря создание кликера с интеллектом, куда идти, что изучать? Какой язык, какая ide нужна? Для игр на android планирую делать программы, которые будут выполнять рутинные действия.
Аноним 11/02/22 Птн 04:47:37 2293424 102
Что-то я эксепшенов у вас в языке не вижу.
Они у вас вообще есть?
Аноним 11/02/22 Птн 10:42:55 2293508 103
Аноним 11/02/22 Птн 10:43:42 2293509 104
>>2293423
Спросить в андроид треде не догадался?
Аноним 11/02/22 Птн 11:51:38 2293579 105
>>2293424
Есть, называются panic (try), recover (catch) и defer (finally), используй смело.
Аноним 11/02/22 Птн 17:54:47 2294060 106
Аноним 11/02/22 Птн 21:57:04 2294475 107
Какая разница между jaeger, opentelemetry, opencensus, zipkin, etc? И что все таки юзать?
Аноним 11/02/22 Птн 22:02:41 2294486 108
>>2294475
то, что у тебя в конпании юзают. от трейсинга смысла почти нихуя когда у вас 5 сервисов и три человека в команде.
Аноним 12/02/22 Суб 14:47:15 2294907 109
>>2293211
> случайно не поменять
Просто научись сосредотачиваться. Я серьёзно: у вас в языке даже нет макросов, которые могут что-то неочевидно менять.
Аноним 12/02/22 Суб 15:00:44 2294914 110
>>2286748 (OP)
>Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других.
Это ещё что за пиздёжь?
Аноним 12/02/22 Суб 15:07:29 2294926 111
>>2294914

Кен Томпсон стоял в истоках всего перечисленного. Пайк там тоже оядом был.
Bell Labs подарили миру дохера важных весчей.
Аноним 12/02/22 Суб 15:15:44 2294934 112
>>2294926
Даже Го? Я думал языку лет 5 отроду.
Аноним 12/02/22 Суб 15:18:35 2294938 113
>>2294934
Ты прикинь, создатели сишки и юникса создали сишку и юникс, 100500 лет ничего не делали и решили сделать Go.
Аноним 12/02/22 Суб 15:30:32 2294950 114
>>2294938
>создатели сишки и юникса создали сишку и юникс, 100500 лет ничего не делали и решили сделать Go.
Пиздец они потешные.
Аноним 12/02/22 Суб 19:48:03 2295247 115
Почему создали iota, как это вообще читается, а не type ... enum?
Аноним 12/02/22 Суб 20:21:20 2295298 116
>>2294914
Go - это слегка улучшенный Limbo, который в Bell Labs разрабатывался.

>>2294934
С момента первого релиза прошло больше 10 лет...
Аноним 12/02/22 Суб 20:54:06 2295350 117
>>2295298
>улучшенный Limbo

прикольно, такие же каналы, как в го

но зато в нем есть туплы, а в гошке нет =(
Аноним 13/02/22 Вск 01:05:22 2295566 118
у меня закончилась подписка на идею личном маке от предыдущего работодателя
текущий дает только на рабочем(
кто в чем кодит?

не знаю, хочется купить all-product-pack от jetbrains, но жаба душит
можно купить только goland или только idea
или лучше привыкать к vscode?
Аноним 13/02/22 Вск 01:21:23 2295577 119
Аноним 13/02/22 Вск 04:31:47 2295617 120
>>2295566
надо было просто юзать вскод с самого начала
t. не пользуюсь голандом хотя лид сказал лицуху выпросить
Аноним 13/02/22 Вск 11:05:52 2295693 121
>>2295577

не катит же
раньше же работали публичные license-сервера, вроде xidea.online
вбил - все работает
а сейчас джетбрейнсы гайки затянули
Аноним 13/02/22 Вск 13:29:59 2295815 122
>>2295566
#!/bin/bash
#https://github.com/PythonicNinja/jetbrains-reset-trial-mac-osx/blob/master/runme.sh

for product in IntelliJIdea WebStorm DataGrip PhpStorm CLion PyCharm GoLand RubyMine Rider; do
echo "Closing $product"
ps aux | grep -i MacOs/$product | cut -d " " -f 5 | xargs kill -9

echo "Resetting trial period for $product"

echo "removing evaluation key..."
rm -rf ~/Library/Preferences/$product/eval

# Above path not working on latest version. Fixed below
rm -rf ~/Library/Application\ Support/JetBrains/$product
/eval

echo "removing all evlsprt properties in options.xml..."
sed -i '' '/evlsprt/d' ~/Library/Preferences/$product/options/other.xml

# Above path not working on latest version. Fixed below
sed -i '' '/evlsprt/d' ~/Library/Application\ Support/JetBrains/$product
/options/other.xml

echo
done

echo "removing additional plist files..."
rm -f ~/Library/Preferences/com.apple.java.util.prefs.plist
rm -f ~/Library/Preferences/com.jetbrains..plist
rm -f ~/Library/Preferences/jetbrains.
.*.plist

echo "restarting cfprefsd"
killall cfprefsd

echo
echo "That's it, enjoy ;)"

Выполняешь после окончания триала, не благодари
Аноним 13/02/22 Вск 13:31:16 2295817 123
Снимок экрана 2[...].png 224Кб, 1350x984
1350x984
>>2295815
Звездочки сожрала пидорская макаба.
Поправь сам
Аноним 13/02/22 Вск 15:00:15 2295894 124
>>2295817
Шоб Кабаныч твой триал так сбрасывал, собака!
Аноним 13/02/22 Вск 15:27:46 2295923 125
Аноним 13/02/22 Вск 15:31:52 2295927 126
>>2295817

а оно точно так работает?
я недавно брал триалку, оно требовало, чтобы я залогинился в jetbrains аккаунт и оно хранит инфу о триалах там.
или это надо какую-то старую версию ставить?
Аноним 13/02/22 Вск 15:38:41 2295937 127
>>2295927
Хз, я идеевскими продуктами в основном не пользуюсь. История по коммитам у них очень приятно сделана, только ради этого стоит. Обновил до последней версии, запустил, да, учетку потребовало. Авторизовался, запустил сброс триалки - готово, предлагает триалку на месяц. Полагаю, они инфу о лицензии хранят, но не о триалке
Аноним 13/02/22 Вск 15:53:21 2295959 128
на этой вашей Го можно мобильной приложение/веб приложение написать?
Или только бэк?
Аноним 13/02/22 Вск 15:56:24 2295962 129
>>2295959

в теории можно
мобилка - fyne
веб - vugu

они выглядят более менее зрелыми и юзабельными
но опять же, нафига нормальному бэку скатываться до уровня клиенто-макак?
Аноним 13/02/22 Вск 15:56:35 2295963 130
>>2295959
Только бэк, да и то не всегда.
Аноним 13/02/22 Вск 16:03:35 2295967 131
>>2295937

не прокатило

>Error fetching licenses for GO / anton : Existing trial license for GoLand 2021.3 is expired
Аноним 13/02/22 Вск 16:08:19 2295970 132
>>2295967
Ну хз, трудно сказать. Я на пайчарме так уже месяца 4 сбрасываю лицензии. Попробуй удалить лицензию, потом накатить скрипт и попробовать триалку.
Аноним 13/02/22 Вск 16:08:25 2295971 133
>>2295963
Что значит не всегда?
Какие еще есть сферы для Го?
Нашел какой-то gobot, типо для роботов и дронов.
Аноним 13/02/22 Вск 16:10:28 2295978 134
>>2295971
Еба, челик, если ты работу ищешь - пиши бек, про остальное пока забудь. Если спрашиваешь про то, можно ли написать Х на нем? Можно. Даже перл можно засунуть куда угодно, надо ли только.
Аноним 13/02/22 Вск 17:04:25 2296042 135
>>2295978
>челик
Зарепортил малолетку
Борда 18+, уёбывай
Аноним 13/02/22 Вск 17:50:35 2296097 136
>>2296042
Хуя грузчик из ашана пригорел.
Аноним 13/02/22 Вск 17:53:53 2296102 137
>>2295693
Пидорасы они, со своей сраной авторизацией.
Аноним 13/02/22 Вск 18:00:50 2296114 138
>>2296102
пидорасами они стали еще лет десять назад стали, когда ввели подписочную модель
вот тогда они основательно в говно окунулись
но нет, выплыли как-то
Аноним 13/02/22 Вск 18:05:16 2296118 139
>>2296102
Деньги не хочешь платить ты, а пидорасы они.
Аноним 13/02/22 Вск 19:22:13 2296212 140
Шо за хуйня эти ваши микросервисы?
Аноним 13/02/22 Вск 19:29:52 2296217 141
>>2296212
Это когда ты сам создаешь себе проблемы и героически их решаешь. Например shared database vs per service database, eventual consistency
Аноним 13/02/22 Вск 19:33:02 2296219 142
>>2296217
>Это когда ты сам создаешь себе проблемы и героически их решаешь.
В этом же вся суть айти...
Аноним 13/02/22 Вск 19:38:30 2296225 143
>>2296219
Только тс-с-с-с! Тихо! Чтобы Кабаныч не услышал...
Аноним 13/02/22 Вск 21:28:52 2296341 144
Пишу свой первый яп, никогда таким не занимался. Но уже на этапе получения токенов из вещественных чисел чет проблемы. Полагаю их также надо, как и двузначные операторы числа парсить?
Аноним 13/02/22 Вск 22:04:18 2296368 145
Аноним 14/02/22 Пнд 07:25:51 2296568 146
>>2296118
Я не хочу нарушать свою приватность. Как будто им моих денег мало, предлагают ещё надеть ошейник в виде емейла, чтобы жрать их рекламу.
Аноним 14/02/22 Пнд 07:56:52 2296571 147
Есть варики устроиться стажером\джуном, если на го вкатиться? А то чет я очкую, кого не спроси - говорят забей, тут только перекатыши с опытом нужны, но я думаю они пиздаболы.
Аноним 14/02/22 Пнд 08:25:15 2296576 148
>>2296571
wildberries (может и ozon тоже) на hh набирает стажеров на go. Попробуй отправить резюме, лучше с каким-нибудь своим кодом. Вдруг фортанет.
А так да, в основном все ищут уже с опытом go или другого языка. Джунов по факту нигде не берут.
Аноним 14/02/22 Пнд 10:14:51 2296612 149
>>2296368
Иди гуляй, залетный.
Аноним 14/02/22 Пнд 10:16:10 2296614 150
>>2296612
Отвечай на вопрос, сука.
Аноним 14/02/22 Пнд 10:54:48 2296636 151
>>2296614
Ехай нахуй, ответил
Аноним 14/02/22 Пнд 11:14:45 2296647 152
Аноним 14/02/22 Пнд 11:24:24 2296652 153
>>2296571
варики еще два года назад были. я понимаю, что за два года всё может поменяться, но я недавно хх чекал и стажеров всё ещё набирали, не вижу причин почему это может поменяться. просто хх чекай епта. алсо в контору пидарасов (вб) не иди если другие варики есть.
Аноним 14/02/22 Пнд 11:34:18 2296654 154
>>2296647
Иди пиши круды, когда подрастешь, приходи и можешь тролить
Аноним 14/02/22 Пнд 12:00:46 2296679 155
>>2296652
С авитой что? Вроде там жёстко попускают на собесах, даже если ты на энтри-левел самый заявляешься.
Стоит туда пробиваться? Или искать нормального Джона Бора?
Аноним 14/02/22 Пнд 13:20:01 2296733 156
>>2296679
по экспириенсу в авите норм на собесах было и вполне интересно/познавательно. я бы сказал что стоит попробовать. они фидбек дают и даже книжки могут порекомендовать. если не дали, то попроси словами прост, херочка с человечками переговорит и с чем-то вернется. лично я практически обосрался на собесе с задачками легче, чем литкод лизи, но прошел на мидла, что и было моей целью. майлейдж мей вери оф корс. алсо старайся несколько оферов одновременно получить, это вообще изи 20-40% прибавка (хотя если бы я на стажера собесился ради опыта, то мне было бы на это похуй)
ждём на хайринг дей короч https://hiringday.avito.ru/go
Аноним 14/02/22 Пнд 13:31:07 2296741 157
>>2296733
Что за софтскилы? Я пчёл залетный и не понимаю что вы там проверяете, но вообще умею немного в риторику(черную, белую) это про это? Типа чтоб углы сглаживать в общении с коллегами?
Аноним 14/02/22 Пнд 13:46:55 2296755 158
>>2296733
Как это ты обосрался, но прошел в мидлы?
Аноним 14/02/22 Пнд 14:20:43 2296781 159
>>2296755
хз честно говоря. лично я себя бы откровенно не пробил, но видимо интервьюеры добрые попались. я чисто зафакапил из-за волнения (там штук 9 на прогаммировании было наблюдателей) на вопросах, которые я знаю, как решить. на фидбек части сказали, что большинство и двух задачек не решили и на самом деле еще хуже можно было обосраться. как я понимаю, у гохи не только нехваток вакух, но и нехваток кандидатов при этом.
>>2296741ё
ага, углы при общении сглаживать, но при этом высказываться, если тебя что-то беспокоит. "результат начинается с меня", "решай быстро и аргументированно" и всякое такое из ценностей. в финальном интервью была довольно долгая часть с двумя лидами, но ответы, которые они хотят, вполне очевидные на самом деле и просто не будь дохуя конфликтным и т.п.
Аноним 14/02/22 Пнд 14:41:03 2296807 160
>>2296781
>решай быстро и аргументированно
Всегда проигрывал с этого. Когда условия противоречащие, когда причина ошибки даже близко неизвестна, когда взаимодействие идет с третьей стороной, у которой нет версионности апи и оно меняется со как ебыри у шлюхи
Аноним 14/02/22 Пнд 14:57:56 2296820 161
>>2296741
>>2296781
>>2296807
"Софтскиллы" это такое оправдание, что у хэрочки красный день календаря а тимлида попустил кабаныч, так что ты им сразу по фотографии не нравишься и хочется доебаться - желательно без необходимости что-либо доказывать и пруфать.
Аноним 14/02/22 Пнд 16:05:13 2296899 162
>>2296341
Я думаю 99.9% обычных не борщехлебов как ты кодеров тебе не скажут ничего лучше "а ты посмотри как в компиляторах других языков устроено", но ты, наверное, и сам до этого дошел.
Аноним 14/02/22 Пнд 17:01:03 2296944 163
>>2296341
что такое ЯП? Язык программирования?
Аноним 14/02/22 Пнд 17:02:32 2296946 164
>>2296944
Нет блять, ЯПлакаль.
Аноним 14/02/22 Пнд 17:03:36 2296950 165
>>2296946
А при чем здесь GO тогда?
Ты на Go пишешь?
Аноним 14/02/22 Пнд 17:05:34 2296954 166
>>2296733
Я даже скрининг не прошёл туда, лол. Ну да, мотивирует хоть что-то начать делать. Я вот думаю, вкачать гитхаб и нетворкинг и пройти какие-то экзамены с сертификатами, чтоб вот этой хуйни с душными собесами вообще избежать.
Аноним 14/02/22 Пнд 17:07:09 2296957 167
>>2296781
Ну и сколько там платят-то мидлам в итоге, чтоб терпеть эту псевдофаанговскую хуету вместо собесов? Тыщ 200-то есть хоть?
Аноним 14/02/22 Пнд 17:16:07 2296972 168
Аноним 14/02/22 Пнд 18:00:36 2297016 169
>>2296733
ну и почему в вашем гадюшнике одновременно с этим цирком, сняли все вакансии на Go? Я даже оценить не могу стоит или не стоит мне участвовать.
Сколько раньше платили мидлам?
Аноним 14/02/22 Пнд 20:20:42 2297162 170
>>2296820

не прошел по софтскиллам - это когда полчаса на собесе не можешь держать себя в руках, не выдавая двачерскую натуру
и тимлид такой думает, что у него и так уже слишком много долбоебов в команде и нах нужен еще один такой
Аноним 14/02/22 Пнд 20:48:56 2297200 171
>>2296972
кинь пример синтаксиса
Аноним 14/02/22 Пнд 20:49:38 2297202 172
Го как первый язык норм?
Аноним 14/02/22 Пнд 21:13:03 2297230 173
>>2296571
>Есть варики устроиться стажером\джуном, если на го вкатиться?

Сбер начал понемного гошников набирать на джунские и стажерские позиции. Яндекс тоже.
Из традиционного - озон, авито, wildberries. Больше никто особо не берет.

Попробуй по быстрому пройти го тур, забацать пет проект и податься к ним на стажировки. Если не получится, то придется учить новый стек технологий или ждать следующего года, когда снова гошников начнут набирать.
Аноним 14/02/22 Пнд 21:15:43 2297236 174
>>2296341
>Полагаю их также надо, как и двузначные операторы числа парсить

Нет, это костыль.
К тому же это не простая задача. Парсинг вещественных чисел довольно заебистая задача, лучше открой талмуды по компиляторам и посмотри там
Аноним 14/02/22 Пнд 21:17:57 2297240 175
/-?\d+\.\d+/
Аноним 14/02/22 Пнд 21:19:20 2297244 176
>>2297202
Нет.
Как первый язык лучше брать питон или джаву/шарп. Питон просто чтобы научиться программировать. Джаву и шарп чтобы научиться ООП, чистому коду, чистой архитектуре, паттернам, техникам рефакторинга и прочим помойным легасным техникам, которые почему-то в Го очень не любят, но они все равно пригождаются постоянно.
Аноним 14/02/22 Пнд 21:23:12 2297250 177
>>2297244
А джаваскрипт?много смех
Аноним 14/02/22 Пнд 21:28:51 2297255 178
>>2297244
> Джаву и шарп чтобы научиться ООП, чистому коду, чистой архитектуре, паттернам, техникам рефакторинга и прочим помойным легасным техникам
Мог бы проще - абстрактные фабрики синглтонов

> которые почему-то в Го очень не любят
Зависит от места, где-то всем рулят деды, которые пишут как на сишечке, а где-то перекатившиеся из Джаббы пишут по своим канонам
Я как вкатыш из питона и жс даже не знаю что хуже
Аноним 14/02/22 Пнд 21:29:49 2297257 179
>>2297200
Обычный C-подобный синтаксис. Я хочу написать сам, понять как они делаются, а не создать прорывной и удобный язык.

var x = 1;
const y = 4;
fn plus(x, y) {
__return x + y;
};
var z = plus(x, y);
if (z == 5) {
__return true;
} else {
__return false;
}
Аноним 14/02/22 Пнд 21:39:18 2297277 180
>>2297240
Да вы, батенька, гений! Вот тупые макаки, сидят токены посимвольно читают, ебалу какую-то с определением следующего символа придумывают. Хуйнул регулярку - дело сделано.
Аноним 14/02/22 Пнд 22:05:04 2297316 181
>>2297255
> Я как вкатыш из питона и жс даже не знаю что хуже
Думаю, что всё-таки пистон
Аноним 15/02/22 Втр 00:54:49 2297490 182
>>2297316
Ну, разве что в плане производительности говнокожу, да. Но зато код более читаемый
Аноним 15/02/22 Втр 04:11:57 2297533 183
>>2297257
Почитай про грамматики, есть много разных генераторов кода токенизаторов текстов на основании описания правил грамматики.
Аноним 15/02/22 Втр 04:42:31 2297536 184
>>2296957
200-250 на руки вполне реально
Аноним 15/02/22 Втр 07:34:23 2297563 185
Аноним 15/02/22 Втр 08:02:30 2297569 186
>>2297277
Я, конечно, вайтишник, и много не понимаю, но какой смысл так экономить память? Хорошо, пусть у тебя в теории могут быть десятки мегабайт исходников и ты хочешь потоковую обработку, но посимвольно-то зачем её делать? Неужели у кого-то задница отвалиться, если ты килобайт текста прочитаешь и будешь с ним работать?
Аноним 15/02/22 Втр 08:32:42 2297572 187
>>2297569
Регулярные выражения очень часто избыточны, так же как и printf функции, потому что тянут за собой кучу проверок, преобразований, их стоит использовать, как временное решение. Не только ради экономии памяти, но так же экономии процессорного времени, что гораздо важнее.
Аноним 15/02/22 Втр 09:38:04 2297591 188
>>2297572
Вообще, регулярки сделанны именно так, чтобы было легко преобразовывать их в машины состояний. Если делать это на этапе компиляции, то оверхед от них не так велик. Но почему-то нормальных реализаций подобного нигде, кроме common lisp и, с недавних времён, С++ нет. Нужен язык с нормальным метапрограммированием или много кодогенерации.
Аноним 15/02/22 Втр 09:49:06 2297602 189
>>2294907
Состредотачиваться на протяжении многих часов сложно: обязательно что-нибудь да упустишь. Пусть уж лцчше компилятор по рукам бьёт, где можно. Кстати, const могли не добавить из-за возможных неудобностей с выражениями типа const chtoto, err := f()

А макросы не так неочевидны, так как в нормальных IDE можно посмотреть, во что они разворачиваются. А ещё иногда очень сокращают исходных код и избавляют от ненужного копипаста
Аноним 15/02/22 Втр 10:39:14 2297625 190
>>2297602
> Кстати, const могли не добавить из-за возможных неудобностей с выражениями типа const chtoto, err := f()
В го константы это не то же самое что константы в js
Аноним 15/02/22 Втр 10:46:52 2297630 191
>>2297625
Я заметил. И сразу же задался вопросом, почему такой полезной абстракции нет и в го
Аноним 15/02/22 Втр 11:40:44 2297680 192
>>2297630
Где го и где абстракции
Аноним 15/02/22 Втр 13:26:02 2297787 193
Аноним 15/02/22 Втр 13:41:12 2297812 194
>>2297787
го и где абстракции
Аноним 15/02/22 Втр 13:48:30 2297821 195
Аноним 15/02/22 Втр 14:52:10 2297940 196
>>2286748 (OP)
>Cамого МУЖЕСТВЕННОГО в мире языка Go
Мужики, у меня VS Code, и он почему-то на некоторых проектах начинает ругаться на импорты изнутри проекта, типа, "project/entity/server не найдено в GOPATH". Почему так, я не понял, package везде корректный стоит. Если в настройках переопределить GOPATH на папку с проектом, то ничего не меняется. Где я обкакался?
Аноним 15/02/22 Втр 14:57:48 2297947 197
Аноним 15/02/22 Втр 15:13:38 2297960 198
>>2297947
А чем там в 2022 году пользуются го-мункулы? goland? У меня денег на него нет
Аноним 15/02/22 Втр 15:16:02 2297965 199
>>2297960
На пиратство деньги не нужны.
Аноним 15/02/22 Втр 15:34:13 2297998 200
>>2297940
вот тут с ним воевал >>2283843 →
и не завоевал.
Просто перестал странные импорты использовать в go.mod.

Ты уверен что у тебя в go.mod все правильно?
Аноним 15/02/22 Втр 15:57:52 2298024 201
>>2297998
Да, вроде как и в других проектах. Импорты-то не странные, просто модули из себя подключаю
Аноним 15/02/22 Втр 20:46:14 2298372 202
photo2022-02-15[...].jpg 64Кб, 1280x750
1280x750
Я так понимаю теперь все кто дрочит на аллокации будет дженерики использовать вместо интерфейсов чтобы оно чуть-чуть быстрее работало за счет еще сильнее опухших бинарей, даже не смотря на то что разработчики языка везде пишут что не надо этого делать, это не правильно
Аноним 15/02/22 Втр 22:14:22 2298439 203
Почему Го такой популярный?
Аноним 15/02/22 Втр 22:21:19 2298451 204
>>2298439
Потому что его продвигает гугл.
По той же причине популярен петухон.
Аноним 15/02/22 Втр 22:23:56 2298454 205
>>2298439
1. Простой.
2. Понятный.
3. Горутины.

Хватит?
Аноним 16/02/22 Срд 00:07:08 2298549 206
>>2296733
>ждём на хайринг дей короч https://hiringday.avito.ru/go
Ох, ебал я такой хайринг дей.

Нельзя было тесты нормальные написать?

Задачка на sql - это просто издевательство.Один join, серьезно? Даже не левый ? Нормального ничего придумать нельзя было?

Верчение деревьев еще более-менее. Но проблема в тестах.
Я случайно понял, что полуготовый алгоритм проходит все тесты и отправил задание как сделанное. И так два раза.

И это уж не говоря о том, что деревья нормальный программист вертел только в школке, а обычно он вертит их на хую и копирует рандому либу с гитхаба.
Аноним 16/02/22 Срд 01:35:50 2298575 207
Не ироничный вопрос: для чего используется го, кроме написания микропенисов?
Аноним 16/02/22 Срд 04:27:34 2298588 208
>>2298549
Ты чоооо! У них же фааанг! Точнее МЯСКОТ! Ой, точнее... да хуй знает, сайт для барыг тарелками! Сижу также в авито-треде, что иронично
Аноним 16/02/22 Срд 10:25:06 2298652 209
>>2298575
Для написания соснольных утилит для кручения облаков и написания кубера@докера
Аноним 16/02/22 Срд 20:02:49 2299220 210
image.png 164Кб, 808x352
808x352
Как подготовиться анончики? Стажировка по го, разумеется.
Аноним 16/02/22 Срд 20:06:24 2299223 211
>>2299220
за 3 часа? ну можешь только видосы смотреть чтобы лексику освоить.
Аноним 16/02/22 Срд 20:08:10 2299225 212
>>2299223
Ну там типа с нуля обучение, поэтому я не знаю что вообще спрашивать будут.
Аноним 16/02/22 Срд 20:15:58 2299234 213
>>2299225
описывай на чем ты УЖЕ программировал.
расскажи побольше о проектах с конкурентностью, sql, докером, линуксом
Ты ведь ими уже занимался на другом языке? Занимался, да ?

Ну, на худой конец, деревья повертишь.
Аноним 16/02/22 Срд 20:25:16 2299249 214
>>2299234
Только с sql работал, линухс в гробу видел.
Я даже не планировал в го вкатываться, если честно.
Аноним 16/02/22 Срд 20:29:59 2299255 215
>>2299249
Блять, я как сишарпо-даун, рофлил над линуксами, а теперь прийдётся самому в него вкатываться. Какая ирония...
Аноним 16/02/22 Срд 20:33:33 2299257 216
>>2299255
так не вкатывайся.
почему придется? тебя там на перспективный блохчейн взяли?
Аноним 16/02/22 Срд 20:35:39 2299260 217
>>2299255
Человеком хоть станешь.
Аноним 16/02/22 Срд 20:36:35 2299262 218
>>2299257
Мне срочно бабки нужны и статус айти-гребца. Потратил дохуя денег у бати без его ведома и он поставил ультиматум.
Аноним 16/02/22 Срд 23:02:54 2299394 219
Я тут прочел что в ГО можно вкатиться быстрее чем в пайтон какой-нибудь.
Это правда?
Аноним 16/02/22 Срд 23:13:44 2299399 220
>>2299394
Ну вкатишься, и чо ты будешь делать с ним?
Это дополнительный язык для специфических задач.
Аноним 16/02/22 Срд 23:14:20 2299401 221
Аноним 17/02/22 Чтв 00:02:09 2299448 222
>>2299399
А другие языки не такие типо.
Фронт тупо не хочу.
И что остается? Джава/Котлин?
Аноним 17/02/22 Чтв 00:03:25 2299451 223
Аноним 17/02/22 Чтв 11:48:48 2299692 224
>>2288021
А нахуя тебе программирование тогда?
Ради бабла?
Я вот вкатился недавно. Думал, что со временем втянусь. Но чет нихуя интереса не ощущаю. И думаю куда дальше катиться.
Аноним 17/02/22 Чтв 11:59:32 2299709 225
Кто из какого языка перекатился?
Аноним 17/02/22 Чтв 12:00:50 2299710 226
>>2299709
Перекатился из Go в жабу.
Аноним 17/02/22 Чтв 12:08:23 2299715 227
>>2299692
Как раз нравится, поэтому пригорает от зоопарка языков, в каждом из которых чего-то не хватает или какая-то часть всрато реализована. что не мешает мне на них писать, впрочем
Protobuf Аноним 17/02/22 Чтв 12:53:09 2299761 228
Помогите пожалуйста, нет уже сил!!!
У prorobuf есть доп фитчи типа wrappers.proto или annotations.proto. Как я поняла, Они по дефолту спрятаны где-то не там где должны, в итоге импорт в прото-файл не происходит нормально. Я помню что я эту проблему уже решала руками копируя этот пакет в проект, но это, очевидно, не выход. Подскажите пожалуйста как вы это делаете, чтобы выглядело адекватно и красиво?
Огромное спасибо!
Аноним 17/02/22 Чтв 12:58:01 2299767 229
> поняла
> решала

сучка должна решать свои проблемы сама или признать превосходство перед мужиком.
Аноним 17/02/22 Чтв 12:59:46 2299770 230
Аноним 17/02/22 Чтв 13:02:01 2299779 231
image.png 33Кб, 287x176
287x176
Почему там, где любой другой язык подстилает соломки для рутинных действия - голэнг кладет залупу на воротник разработчику?

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

Аноним 17/02/22 Чтв 13:09:47 2299793 232
>>2299779
Какие ещё гибкость и экспрессивность? Язык специально проектировали максимально тупо, чтобы его могли осилить дебилы, которые будут писать максимально тупой код без удобств и синтаксических фишечек, чтобы любой другой дебил мог прочитать.
Аноним 17/02/22 Чтв 13:15:44 2299799 233
>>2299779
Масштаб. Нет масштаба.

Никто просто еще не написал нужное.
Аноним 17/02/22 Чтв 13:22:03 2299805 234
>>2299793
>>2299799

Я просто охуеваю уже от ебаного говна под названием голэнг вн ашем проекте.
Если всю мою попоболь попробовать выразить одной фразой, то я бы сказал так - в других экосистемах ты тратишь время на изучение, но потом появляется возможность избегать РУТИНЫ, в голэнг же пошли другим путем - нахуй изучать, рутина не так уж страшна.

Очко ебаное, говно.
Аноним 17/02/22 Чтв 15:04:05 2299931 235
image.png 32Кб, 1243x119
1243x119
image.png 13Кб, 1102x66
1102x66
image.png 10Кб, 1232x34
1232x34
>>2299220
Короче, анончики, я на изи прошёл рекрутёрское зно.
Дальше у меня собес с куратором через 3 дня скорее всего, а потом техническое собеседование.
Куратор будет проверять мои знания по
>пик1, пик2 и пик3
А сеньоры знание языка го.

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

Анончики, дорогие мои, подскажите пожалуйста, как мне за 3-4 дня повторить весь этот кал? Особенно касается алгоритмов и дискретной матеши. А также как мне за такое короткое время хоть как-то познакомиться с основами языка? В вакансии писалось, что знание самого го не обязательно в принципе, но блять, она мне на собесе сказала, чтоб с основами я сам ознакомился перед собесом. Лол. Я вообще даже вчера в первой половине дня не подозревал что мне прийдётся всю эту хуйню повторить/изучить, так что я без понятия откуда начать.
И кстати, с линуксом я тоже не работал, хотя ей напиздел, что ставил его на вм.

Чё делать бля??? Отсосу с пруфами тому кто подскажет.
Аноним 17/02/22 Чтв 15:04:42 2299932 236
>>2299931
>зно
собеседование, я сейчас на нервах, путаю слова.
фикс
Аноним 17/02/22 Чтв 16:21:19 2300018 237
>>2299932
Хули ты нервничаешь? Не прошел? Да и поебать, вас дохуя, я один.
Аноним 17/02/22 Чтв 16:33:32 2300034 238
>>2299931
>Отсосу с пруфами
А говорили, го для натуралов.
С отсосами можно и на нормальные языки идти.
Аноним 17/02/22 Чтв 17:18:59 2300075 239
>>2299931
>Математика
Учебники алгебры за 10-11 класс. Или найди свои старые конспекты
>Дискретная математика, базовые алгоритмы, структуры данных
http://neerc.ifmo.ru/wiki/
>Паттерны
Просто загугли. Или почитай книжку банды четырёх, если будет время
>Основы го
Язык за несколько часов учится: скачала читаешь это http://golang-book.ru/, потом пользуешься https://gobyexample.com/, если непонятно, как что-то делать. Ещё можешь почитать это для общего развития https://habr.com/ru/company/vk/blog/314804/ - может помочь, если по языку будут спрашивать.
>Linux
За пару дней не освоишь; про команды пока почитай https://github.com/sudheerj/Linux-cheat-sheet, потом по ходу дела разберёшься
Аноним 17/02/22 Чтв 18:20:30 2300151 240
>>2300075
Спасибо, добрый анон!
Аноним 17/02/22 Чтв 18:51:30 2300184 241
>>2299931
>пик 1
лол это че за хуйня, это какой-то финтех или они просто навернули слов из оглавления учебника. на 99% уверен что затронут максимум пару тем которые затащить можно если когда-то в жизни видел
Аноним 17/02/22 Чтв 18:59:18 2300193 242
image.png 76Кб, 703x776
703x776
Почему capacity внезапно 6, а не 5???
Аноним 17/02/22 Чтв 19:05:42 2300202 243
Аноним 17/02/22 Чтв 19:11:20 2300205 244
>>2300184
Меня тут математика смущает, она как будто только для работы с изображениями, аудио, видео подходит. Ну может еще часть от статистики.

Остальное в списке постоянно встречается. Нужно хотя бы помнить о том что такие вещи существуют, и их можно успешно применить для решения самых разнообразных проблем.
Аноним 17/02/22 Чтв 19:13:26 2300206 245
>>2300193
потому амортизация или подкидывают до четного. это детали реализации которые в спеке не описаны поэтому сразу шли нахуй если тебе говорят что будет 5 без указания версии
Аноним 17/02/22 Чтв 19:16:57 2300210 246
image2022-02-16[...].png 108Кб, 282x303
282x303
image.png 148Кб, 889x713
889x713
image.png 107Кб, 885x862
885x862
>>2300202
>>2300206

Go is free to provide you more capacity than you request. This improves performance by reducing the number of allocations (and possibly copying) that are required. Capacity is just the amount of space reserved before another allocation would be required.

Спасибо, аноны!
Аноним 17/02/22 Чтв 19:17:23 2300212 247
>>2300206
>потому амортизация или подкидывают до четного.
Ты лучше прочитай что >>2300202 написал. Это не "амортизация", и не "подкидывание". Связано с затратами на реаллокацию.
Аноним 17/02/22 Чтв 20:22:19 2300281 248
1635358142024.jpg 285Кб, 1584x2048
1584x2048
>>2300212
а я прочитал после того как пост написал. однохуйственно подкидывание только не до четного а по табличке
>Это не "амортизация", и не "подкидывание". Связано с затратами на реаллокацию.
такие противопоставления со "связано с" вместо приведения термина всегда интригуют. вообще в ссылке про алайн, а не реаллокацию говорится и мне кажется как с этим связан всем знакомый паддинг должно быть очевидно. но ты оставил меня в большом волнении почему амортизация апендов не может быть связана с затратами на реаллокацию
Аноним 18/02/22 Птн 10:07:14 2300555 249
>>2288242
а какой у тебя бэкграунд? (для себя интересно, тоже вкатываюсь) есть опыт не в бэке, а в чем-то другом?
Аноним 18/02/22 Птн 13:05:08 2300669 250
Что делать, если интеллисенс не показывает подсказки, когда пишу на го? Проблема не гуглится почему-то. Помогите тупню :(
Аноним 18/02/22 Птн 13:12:11 2300671 251
>>2300669
че за интелисенс
gopls ставь епта
Аноним 18/02/22 Птн 13:37:57 2300698 252
image.png 3Кб, 875x32
875x32
image.png 17Кб, 726x225
726x225
>>2300671
Он не ставится почему-то...
Вот, я с пик 2 нажимаю но нихуя не устанавливается. Чзх?
Аноним 18/02/22 Птн 13:40:20 2300699 253
image.png 9Кб, 839x99
839x99
>>2300698
я поставил всё но оно не работает всё равно. Що за нахуй???
Аноним 18/02/22 Птн 14:03:44 2300720 254
>>2300699
Лёша, хуй соси, программирование – для линуксоидов.
Аноним 18/02/22 Птн 14:11:04 2300729 255
Аноним 18/02/22 Птн 16:18:47 2300854 256
>>2300699
ну проверь што он в PATH/GOBIN у тебя есть
мб там в настройках тогл надо включить или окно релоднуть прост или ктрл щифт п го рестарт лэнгуедж сервер
Аноним 18/02/22 Птн 20:20:48 2301164 257
>>2300193
Это же база, блядь, знать надо
Аноним 19/02/22 Суб 20:20:02 2301762 258
f1.png 15Кб, 464x859
464x859
f2.png 16Кб, 499x866
499x866
Аноним 19/02/22 Суб 20:26:25 2301765 259
>>2301762
В первом случае как swap в c++ работает
Во втором ты присваиваешь num1 num2, а потом к num2 прибавляешь num1 в значении num2, тоесть работает как умножение на 2.

Вывод - ты дегенерат.
Аноним 19/02/22 Суб 20:48:47 2301773 260
Бля, походу аноны не врали, что го можно за пару дней освоить.
Аноним 19/02/22 Суб 20:52:04 2301775 261
f3.png 15Кб, 412x857
412x857
>>230176
ага, спс
Аноним 19/02/22 Суб 21:02:26 2301785 262
>>2301773
Ну да, Go - это такой компилируемый петухон, из которого кучу всего выкинули и добавили горутины и типизацию. Не плюсы и даже не шарп.
Аноним 19/02/22 Суб 21:49:42 2301812 263
Буквально на днях вентилировал этот же вопрос: что учить в 2022 году для разработки >бэкэнда<. Несколько дней гуглил, читал статьи и прочее. Краткие выводы к которым я пришёл для себя (на истину в последней инстанции не претендую):

1) Ванильная Java - уже фактически труп. Учить её сейчас с нуля нет смысла, новых проектов на ней никто уже не начинает. Большое кол-во вакансий и высокие ЗП в данный момент, обусловлены её славным прошлым, большому кол-ву кровавого энтерпрайза в финтехе, телекомах и тп который нужно поддерживать и дорабатывать, и тем, что молодые разрабы в большинстве своём проходят мимо неё в результате чего имеется серьезный дефицит разработчиков.

2) C# медленно, но верно загибается, МС судя по всему будет продолжать активно развивать его, в результате чего он имеет шансы обогнать Java со временем. Т.е. проще говоря он будет терять свою долю рынка медленнее чем Java. Тем не менее учить его с нуля в 2022 тоже нет смысла, главный аргумент тут: он не используется в core-сервисах крупнейших IT компаний мира (разумеется, сама МС не в счет). Пока гугл, амазон или мета не перепишет свою инфраструктуру на C#, смотреть в его сторону тоже не стоит.

3) Думаю, что следующая троица: node+ts, kotlin и golang в течение нескольких лет практически полностью вытеснят java и c# с бэкэнда везде, включая банки, телекомы и тп. В конечном счете всё будет переписано на данных языках. Старые технологии местами останутся, если серьезные доработки не требуются, но с нуля разрабатывать на них уже не будут.

Поскольку, последние 5 лет я пишу исключительно на node+ts (до этого, немного разрабатывал на c#), в этом году я решил изучить golang. Думаю, что спрос на golang разработчиков вырастет в разы в ближайшие годы.

Напоследок, хочу поделиться с вами прекрасным постом на реддит который я нашел пока вентилировал данную тему. Там не только про dotnet ui фреймворки, но и про политику МС к разработчикам в целом (в хроме можно использовать встроенный переводчик, смысл остается вполне понятен) https://www.reddit.com/r/csharp/comments/f9i9hc/comment/firr467/?utm_source=share&utm_medium=web2x&context=3
Аноним 20/02/22 Вск 02:50:03 2302003 264
>>2301812
>3) Думаю, что следующая троица: node+ts, kotlin и golang в течение нескольких лет практически полностью вытеснят java и c# с бэкэнда везде, включая банки, телекомы и тп. В конечном счете всё будет переписано на данных языках. Старые технологии местами останутся, если серьезные доработки не требуются, но с нуля разрабатывать на них уже не будут.

Так а что зумеры сейчас изучают? Я вот си шарп дрочил, но го объективно лучше. А другие зумеры какие языки для бека учат? Пхп или питон какой-нибудь?
Аноним 20/02/22 Вск 14:16:30 2302392 265
image.png 17Кб, 555x316
555x316
image.png 1Кб, 199x43
199x43
Аноны, что это за хуйня? Как поставить нормальный автокомпит?
Пик 2 - результат выбора ff на пик 1.
Аноним 20/02/22 Вск 14:17:27 2302394 266
>>2296733
>алсо старайся несколько офферов одновременно получить, это вообще изи 20-40% прибавка
Несколько оферов в твоем этом хайринг дее? Или от нескольких компаний? И как ты торгуешься? Мне чет обычно не предлагают поторговаться, когда я говорю что принял другой оффер, может потому что и так было около верхей границы вилок, хз хотя вроде один раз предлагали, в каспере

Аноним 20/02/22 Вск 14:26:21 2302403 267
по каким темам в основном гоняют на собесах, и что стоит подтянуть за ~1.5-2 месяца до собесов?
Аноним 20/02/22 Вск 15:51:10 2302472 268
>>2302394
У меня так бывало:
- Я еще в Х собеседуюсь, офер должны дать Д числа
- Ок, держи в курсе, скажи сколько дадут
- Я тут офер от Х получил, дали М
После этого они как минимум дают столько же. Можно пойти в первую компанию и назвать им контроффер, ведь ты им тоже сказал что начал собеситься в Y и они тоже попросили держать в курсе.
Аноним 20/02/22 Вск 16:08:50 2302499 269
>>2302403
Если чисто по гошке, то
Устройство слайса, как работает аппенд, отличие стрингов от слайсов байтов
Устройство мапы, как работает вставка/итерация
Устройство канала, как работает отправка
Устройство интерфейса, тайп асёршны, рефлексия
Как работают горутины, что происходит при блокирующих/неблокирующих сисколах, что в пакетах sync/atomic и когда использовать
Как работает шедулер, что за M:N, воровство жоб, когда шедулер может переключить исполнение горутины
Как работает гц, маркинг, фазы гц
Аноним 20/02/22 Вск 16:13:35 2302503 270
>>2302392
Это вскодовские сниппеты, а не автокомплит. У тебя лсп совсем не работает или ты на приоритет снипетов жалуешься?
Аноним 20/02/22 Вск 17:02:47 2302546 271
>>2302503
Да, language server не работает вообще. Только эти ебучие сниппеты. И проблема не гуглиться нихуя, везде пишут мол включи ls и всё, но там стоит эта ебучая галочка. gopls установлен.
Аноним 20/02/22 Вск 17:06:24 2302552 272
>>2302546
попробуй поставить тупо все утилиты которые вскод в менюшке показывает
Аноним 20/02/22 Вск 17:44:21 2302615 273
>>2299692
>И думаю куда дальше катиться.

Катись к хуям

:3
Аноним 20/02/22 Вск 19:30:46 2302818 274
Аноним 20/02/22 Вск 19:34:30 2302826 275
Аноним 20/02/22 Вск 19:39:15 2302828 276
Аноним 20/02/22 Вск 19:43:07 2302831 277
>>2302828
Джуны в Go - манямирок вкатуна-борщехлёба.
Аноним 20/02/22 Вск 19:43:45 2302833 278
>>2302818
не обязательно. на джуна простят, если ты не знаешь как в точности гц/шедулер/каналы работают. на стажера могут про слайсы спросить, но про мапу/каналы/гц/шедулер вряд ли.
однако тут вопросов буквально на одну-две лекции, это реально все знать могут и должны.
но это база, на мидла/сеньора в дополнение будут ебать по реальным задачам и архитектуре.
Аноним 20/02/22 Вск 20:36:36 2302874 279
Правда ли, что на разработку Go забили?
Пайк ушел, Томпсон ушел, никакого развития. Топ контрибьюторов - ноунеймы, трансухи и телки.
Популярность падает, новой крови нет, либы не пишутся, на го2 все забили, а любое нормальное нововведение просто невозможно из-за уебищного фундамента.
Аноним 20/02/22 Вск 21:14:52 2302909 280
Аноним 20/02/22 Вск 21:18:27 2302914 281
>>2302874
Скатертью дорожка.
Аноним 20/02/22 Вск 22:29:38 2302961 282
>>2299931
Харьковский? Видел недавно эту вакансию. Выучишь очень быстро го, если ещё не завалил собес то советую внутриности подробнее разобрать, как работают вещи по типу GC, планировщика, особенности работы с слайсами и мапами.
Аноним 20/02/22 Вск 22:30:11 2302963 283
>>2300184
Обычная школьная программа + первый курс универа.
Аноним 20/02/22 Вск 23:19:24 2303002 284
Можно хранить sqlite базу в бинарнике? Там будут конфиги юзера храниться и пара других конфигов, размером с гулькин хер. Не более 1 мб база будет
Аноним 20/02/22 Вск 23:50:02 2303023 285
>>2303002
Придётся распаковывать в папку temp при запуске, драйвер sqlite не умеет читать байтики из ресурсов, только файлы или :memory:
Аноним 21/02/22 Пнд 00:54:52 2303043 286
>>2303002
ты хочешь чтобы бинарник себя модифицировал при изменении конфига? мне кажется ты лезешь в залупу
Аноним 21/02/22 Пнд 01:15:26 2303050 287
>>2302961
Да, лол. Завтра собес с лидом, а потом ещё технический собес. Ну надеюсь время будет хотя-бы пару дней между ними, чтобы разобраться во всём.
Аноним 21/02/22 Пнд 03:35:13 2303075 288
Что такое проброс ошибок наверх, который приходится делать в го?
Это когда C вызывает B, которая вызывает A и если ошибка случилась в А, то я её отображаю как будто зафейлилось B? Зачем это?
Аноним 21/02/22 Пнд 05:38:01 2303087 289
>>2303075
я так и вижу делаешь такой опенфаел, опенфаел делает сискол, сискол фейлится, а опенфаел тебе такой "проброс ошибок наверх? зачем это?"
Аноним 21/02/22 Пнд 05:44:54 2303088 290
>>2303087
Получается всё так, как я описал?
Не понимаю почему нельзя вывести ошибку на уровне чтения файла (сискол же происходит не в моём коде, а в рантайме?)

То есть у нас допустим ошибка чтения из-за того что диск поцарапан или просто что-то не прокнуло, поэтому я вывожу на фронтенд не саму ошибку, а «что-то пошло не так, попробуйте снова»?
Аноним 21/02/22 Пнд 11:22:46 2303212 291
>>2303002
Тебе может пригодиться embed, если база ридонли. Но вангую тебе не нужна база для конфигов, тебе и дампа мапы в json может хватить
Аноним 21/02/22 Пнд 11:27:10 2303216 292
>>2303050
Ну отпиши тогда, чё как там, мб тоже завалюсь как диплом допилю.
Аноним 21/02/22 Пнд 11:40:55 2303226 293
>>2303088
Привет, а это ты аварийное завершение внутри пакетов вызываешь, при ошибке?
Аноним 21/02/22 Пнд 11:43:23 2303230 294
>>2303226
Привет! Я вкатуся и просто спрашиваю что имеется в виду под пробрасыванием ошибок наверх. Других языков не знаю и загуглить не получилось.
Я не пытаюсь спорить, просто хочу знать что это и как правильно это делать (на это отвечает вопрос «зачем»)
Аноним 21/02/22 Пнд 12:04:48 2303243 295
>>2303075
Ну допустим у тебя есть такая вложенность функций: f -> g -> h. Любая ошибка должна обрабатываться в f, ошибки которые будут возникать в g и h, должны быть просто возвращены, либо дополнены и уже потом возвращены.
Вот пример: https://go.dev/play/p/DMy24KHvoRk
Аноним 21/02/22 Пнд 12:34:19 2303258 296
Аноним 21/02/22 Пнд 13:10:54 2303292 297
>>2303230
читай отсюда:
>Язык_программирования_Go_2016Керниган.pdf
>5.4.1 Стратегии обработки ошибок
Аноним 21/02/22 Пнд 14:02:14 2303348 298
>>2299931
Аноны, я прошёл собес, лид сказал что будет меня рекомендовать.

Спасибо вам за советы, без них я бы не вывез.
Теперь у меня ещё один собес но уже чисто по го, так что тут будет легче подготовиться.
Аноним 21/02/22 Пнд 14:09:50 2303359 299
>>2303216
>>2300184
Ну, вообщем, в требованиях было написано реально по существу.

Мы обсуждали алгоритмы, паттерны, потом когда я высчитавал какой алгоритм быстрее мне предел функции пригодился, логарифмы. Затронули теорию графов, принцип работы структур данных.
Потом мужик спрашивал как бы я охарактеризовал качественный код, моё личное мнение. Спрашивал с чем я работал, есть ли у меня реальный опыт. Ещё он задавал много тонких вопросов, таких, что сразу видно разбирается чел или нет.
Аноним 22/02/22 Втр 08:34:54 2303994 300
>>2303348
поздравляю!
ты с нуля вкатился или есть какой-то бэкграунд, знание других языков?
прошлая работа в ит была? вышка есть?
Аноним 22/02/22 Втр 10:08:25 2304028 301
Какое же ебаное Govno. Почти все проекты либо от ноунейм контор, либо переписывание старого кода с пыхи или питона на го.
Уж лучше вкачуся в Kotlin/Java backend, там явно посолиднее компании и проекты.
Аноним 22/02/22 Втр 10:19:47 2304031 302
Аноним 22/02/22 Втр 10:27:34 2304033 303
>>2304031
Хуядно. Где работу искать на GO?
Аноним 22/02/22 Втр 10:28:17 2304034 304
>>2304033
>Уж лучше вкачуся в Kotlin/Java backend, там явно посолиднее компании и проекты.
Вкатывайся.
Аноним 22/02/22 Втр 11:35:21 2304097 305
>>2304033
Пиздуй на жаве своей писать.
Аноним 22/02/22 Втр 11:42:43 2304114 306
Аноним 22/02/22 Втр 15:24:25 2304309 307
>>2303348
Всё, прошёл ещё технический собес, где чел спрашивал буквально поверхностную инфу которую я в http://golang-book.ru/ узнал. Рекрутёрша сказала, что меня приняли, осталось только подписать документы и чё-то там обсудить ещё с кем-то.
>>2303994
Ну я знаю c# c++ js и всё впринципе. Надо было только написать красивое резюме и повторить темы, указанные требованиях. А вообще мне реально повезло с интернатурой, и не могу сказать что надо, чтобы с нуля вкатиться на го жуниора, например.
Аноним 22/02/22 Втр 15:25:28 2304310 308
>>2304309
Вышки нет, опыта работы тоже, но я сказал что делал писал код на заказ студентам, и они такие мол неплохо, неплохо.
Аноним 22/02/22 Втр 16:08:17 2304333 309
Аноним 22/02/22 Втр 16:41:09 2304357 310
>>2304333
Ну сказали типа во время обучения платить будут 600-800 даларов во время обучения 2-3 месяца чтобы было что пожрать и мы могли сфокусироваться на обучении, а потом средняя зп джуниора и собственно работа на проекте.
Я не знаю нормальная ли это практика, или просто мне повезло.
Аноним 22/02/22 Втр 16:46:07 2304363 311
>>2304357
Просто я контактировал со знакомыми, которые устраивались на похожее обучение с трудоустройством на пхп и яве, и обычно, просто набирают группу студентоты на бесплатное обучение, а в некоторых компаниях берут в натуральное рабство, где ты должен отдавать 30-40% от зп какое-то время после обучения.
Аноним 22/02/22 Втр 17:19:43 2304384 312
>>2304309
а где вакансию нашел (сайт, телега)?

в родном городе? релокацию рассматривал?
Аноним 22/02/22 Втр 17:23:08 2304385 313
>>2304309
Как написать красивое резюме?
Какие петпроекты написать, чтобы включить в резюме? Правда, что без петпроектов нахуй посылают сразу?
Аноним 22/02/22 Втр 18:18:21 2304417 314
>>2304385
HAC РЕKОМЕНДУЮТ ДРУЗЬЯM!!Добpый день!!!
Mы обеcпечиваем:быcтpoту и кaчecтво предocтавляемых услуг! Рaботу выполняют квалифицированные, чeстныe, вежливые рaбoтники. Гpaждaнe РФ и PБ! Cтоимоcть предocтaвлeния уcлуг догoвoрная oт 1300 p/cмeна. Как нaличный,тaк и безналичный раcчeт.
Прeдлaгaем качественные услуги за разумные деньги.В сфере строительства работаем более 15 лет!
У нас несколько проверенных временем бригад , которые выполняют качественную работу.
К выполнению работы подходим с душой и полной самоотдачей!!!Работа по всему Екатеринбургу и пригороде!!!

Как-то так.
Аноним 23/02/22 Срд 21:43:16 2305171 315
что не могу найти, зачем сейчас рекомендуется писать так
//go:build
//+tag

если раньше все отлично было и отлично работало и просто с
//+tag
Аноним 23/02/22 Срд 22:27:01 2305207 316
Планируется ли расширние стандартных коллекций?
Потому что даже без Set жить крайне сложно.
Аноним 23/02/22 Срд 23:44:35 2305255 317
>panic: runtime error: hash of unhashable type map[int]int

Почему так?
Аноним 24/02/22 Чтв 12:23:35 2305557 318
>>2305171
Там вопрос был в том, что синтаксис or или and для тегов был очень неудобный + не очевидный. Можешь найти соответствующий issue на гитхабе, мне лень его искать.

>>2305207
С дженерикам ждем покращщень, на сейчас есть только https://pkg.go.dev/container и внешние пакеты, всё на интерфейсах.
> Потому что даже без Set жить крайне сложно.
попробуй map[T]struct{}

>>2305255
Покажи код, я такое не встречал раньше
Аноним 24/02/22 Чтв 18:47:50 2305765 319
>>2305255

Потому что в качестве ключа можно использовать только сравнимые типы, и нельзя использовать слайсы, мапы, функции
Аноним 26/02/22 Суб 08:09:27 2306685 320
конец февраля уже а 1.18 еще не релизнули...
Аноним 26/02/22 Суб 09:24:00 2306696 321
Аноны, есть смысл пытаться вкатиться в Го без опыта разработки? Ну как без опыта, я на ларавеле несколько сайтов запилил, сейчас думаю начать работать в программировании. Читал сравнение зарплат, в Го они одни из самых высоких. Джуны без опыта работы нужны где-нибудь или не самый лучший язык для вката?
Аноним 26/02/22 Суб 09:39:54 2306701 322
Аноним 26/02/22 Суб 10:48:47 2306712 323
>>2306701
В тиньке нужно уметь решать олимпиадные задачи по программированию.
Не просто литкод и кодварс, а именно околоолимпиадные, на динамическое программирование.
Подавал 5 раз в тинек и каждый раз получал отказ. При этом сколько задач решено - никто не говорит. Просто говорят, что не прошел и все. И так каждый год.

>>2306696
Была стажировка в wildberries и туда было не так сложно попасть. Сейчас не знаю. Яндекс, авито, озон, VK - будь готов к дрочеву на собесах, и скорее всего тебя не возьмут. Больше джунов и стажеров никто не нанимает, насколько мне известно.
Аноним 26/02/22 Суб 12:25:17 2306747 324
>>2306712
> околоолимпиадные
> на динамическое программирование.

что может быть проще динамического программирования? это уровень литкода.
Аноним 26/02/22 Суб 12:59:46 2306764 325
>>2306747
Пчел, ну если для тебя харды на литкоде кажутся простыми, то молодец, иди в тинек.
У меня решать харды не получается, как и у многих других, поэтому я заранее предупреждаю анонов, чтобы сильно не рассчитывали туда попасть, если они не олимпуси
Аноним 26/02/22 Суб 14:44:39 2306849 326
>>2306712
>Не просто литкод и кодварс, а именно околоолимпиадные, на динамическое программирование.
Это называется литкод медиум+.

>>2306764
>У меня решать харды не получается
Ну ты попробуй не с хардов начинать, а с какой нибудь казуальной книжки в стиле "грокаем аглоритмы" и изи задач.
Аноним 26/02/22 Суб 15:06:42 2306875 327
image.png 187Кб, 744x878
744x878
image.png 119Кб, 743x675
743x675
image.png 165Кб, 753x829
753x829
>>2306849
Это подходит под уровень "литкод медиум"?
Я вот решал на литкоде медиумы на sliding window, деревья и списки, но имхо в тиньке задачи гораздо сложнее
Аноним 26/02/22 Суб 15:20:49 2306892 328
>>2306875
Нет, это уже хард ещё и с ограничениями.
Тащемта, ты написал про динамическое программирование как про что-то ебическое, я на это и стриггерился.
Аноним 26/02/22 Суб 19:42:09 2307107 329
>>2306892
Да понятно, что задачи уровня кузнечика решаются легко. Какая-нибудь двумерная динамика уровня хода коня тоже просто понимается.
Но этого не достаточно. Нужно уметь решать задачи уровня того, что я скинул. А это явно не 2-3 месяца и даже не полгода задроства на литкоде, а гораздо больше (для среднестатистического студента или вкатуна)
Аноним 26/02/22 Суб 20:08:14 2307116 330
Как дела в мобилках у go+fyne? Есть ли какие-нибудь живые проекты, чтобы посмотреть, что вообще на этом можно сделать и, как все это будет выглядить? Желательно ОС, чтобы на код еще посмотреть.
Аноним 26/02/22 Суб 20:21:07 2307129 331
>>2307116
Любые попытки убить нейтив обречены на провал.
Аноним 26/02/22 Суб 20:28:15 2307134 332
что лучше почитать или посмотреть чтобы понять что у го под капотом?
Аноним 26/02/22 Суб 20:36:42 2307141 333
Аноним 26/02/22 Суб 20:48:40 2307146 334
Блять, ебаный пыня, из-за него работать не могу.
Аноним 26/02/22 Суб 21:07:45 2307157 335
>>2307141
пиздато, пошел читать
Аноним 26/02/22 Суб 21:11:40 2307159 336
>>2307107
Интересный конечно порог входа, а что по вилкам там, хрюша светила?
Если готов к таким заёбам — можно и в гугол устроится, как-то же они набирают при этом штат.
Аноним 26/02/22 Суб 21:16:05 2307161 337
>>2307116
>Как дела в мобилках у go+fyne?
В мобилках — мёртворождённая хуйня без задач, там сплошной натив. Кроссплатформа — хорошо если 1 из 7 приложений по крайней мере на iOS, на ведре всем более похуй и её больше.

Тащемта, хочешь кроссплатформенные мобилки — велком ту флаттер. До первой задачи с камерой/датчиками/бохатыми пушами/итд — пойдёшь лобзать натив на обоих.
Аноним 26/02/22 Суб 21:16:48 2307162 338
>>2307161
>В мобилках — мёртворождённая хуйня без задач
На декстопе — в целом можно всякие утилитки хуярить.
Аноним 26/02/22 Суб 21:25:56 2307170 339
>>2307161
Мне не нужен кроссплатформенный код, я просто хочу вкатиться в мобильную разработку, только под андроид, без жабы, котлина, дарта (не нравятся эти языки просто).

Какой вообще долбоеб придумал сделать джаву нативной?
Аноним 26/02/22 Суб 21:43:03 2307179 340
>>2307159
Это задачи на стажера. То есть где-то 60-70к за 40 часовую неделю. Во всяком случае до войны так было. Как сейчас и потом - уже неизвестно.
В штат в тинькофф идут люди с олимпиадным бекграундом - студенты физтеха и ВШЭ, которые по каким-то причинам не попали на стажировки в FAANG или в яндекс.

К слову, на мидла и сеньку вроде тоже просят решать довольно тяжелые алго задачи, но уже полегче))
Аноним 26/02/22 Суб 21:48:31 2307181 341
>>2307170
>хочу вкатиться в мобильную разработку, только под андроид, без жабы, котлина, дарта

Придется учить котлин либо дарт. Чем они тебе не нравятся?

>Какой вообще долбоеб придумал сделать джаву нативной?
Нативная она в том плане, что была основным ЯП для разработки вплоть до 2018 года. Так-то там все на особой виртуальной машине работает.
Почему так сделали - в нулевые языков особо-то и не было, жаба была одним из самых популярных и очевидных вариантов.
Аноним 26/02/22 Суб 22:05:03 2307188 342
>>2307181
>Чем они тебе не нравятся?
1) Структуры проекта, которые генерируют иде.
2) Иде, которые генерируют эти проекты.

Если бы была возможность использовать в вскоде котлин (с нормальной подсветкой синтаксиса), то возможно бы и стал его использовать.

Да, шиз.
Аноним 26/02/22 Суб 22:13:18 2307191 343
>>2307179
>В штат в тинькофф идут люди с олимпиадным бекграундом
Тащемта, тогда понятно.

>К слову, на мидла и сеньку вроде тоже просят решать довольно тяжелые алго задачи, но уже полегче))
Я ахуел наверно от того и опешил. Вообще не представляю как на такое завести синек — там же воронка будет в стиле 1 из 1000.
Аноним 27/02/22 Вск 00:45:37 2307216 344
>>2307191

а зачем нормальной компании нужны тупые программисты?
таким место у параш... на битриксе лендинги клепать
Аноним 27/02/22 Вск 01:35:15 2307232 345
>>2307216
Люди не делятся на олимпиадников и тупых.
Аноним 27/02/22 Вск 13:30:32 2307430 346
>>2307232
Внезапно делятся. Человек, который в 11 классе взял всеросс по проге будет в разы более обучаемым, чем обычное хуйло из СОШ и говновуза)
Аноним 27/02/22 Вск 13:39:06 2307442 347
Аноним 02/03/22 Срд 20:23:11 2309665 348
>>2307442

так утешают себя тупые, но не переживайте, вы тоже нужны и даже с определенным опытом на большие деньги. Но не во всех компаниях/проектах.
Аноним 04/03/22 Птн 17:02:13 2310751 349
Если микрософт заблокирует гитхаб, программирование на Go в РФ прекратится? Ведь сейчас почти все его зависимости на гитхаб завязаны.
Аноним 04/03/22 Птн 17:51:02 2310787 350
>>2310751
Если его заблокируют, то будет проблема для программирования в РФ в целом, а не только с Go, но размещать пакеты можно не только на нем или их можно загружать через VPN.

Мне больше интересно, будет ли Go востребованным, если закроют поставки компонентов, а аренду серверов за границей сделают невозможной, опять же из-за тех же санкций.
Такую информацию я не слышал, но все равно было бы интересно узнать.
Аноним 04/03/22 Птн 18:42:41 2310835 351
>>2310787
>их можно загружать через VPN

Можно, но начинающие программисты на go вряд ли будут с этим заморачиваться.
Аноним 04/03/22 Птн 18:50:56 2310841 352
>>2310835
Кстати, вся документация по языку на гугловских сайтах будет тоже заблокирована.
Аноним 04/03/22 Птн 19:28:08 2310856 353
>>2310787
Там оракл с джавой ушел из России, получается го единственный востребованный язык будет (кроме него то только скриптопараша)
Аноним 04/03/22 Птн 19:45:39 2310868 354
>>2310856
>Там оракл с джавой ушел из России
Радикальное избавление от легаси?
Аноним 04/03/22 Птн 21:57:31 2310958 355
>>2310787
> будет ли Go востребованным, если закроют поставки компонентов, а аренду серверов за границей сделают невозможной, опять же из-за тех же санкций.
Думаю да, надо будет более экономно использовать ресурсы уже имеющихся серверов, то есть переписывать 95% массового пхп-говна на го. Битрикс просто удалять сразу.
Аноним 04/03/22 Птн 22:14:06 2310971 356
>>2310751
1. есть официальный кеш пакетов, так что если только гитхуб сдался, то должно еще скачиваться
2. у больших компаний наверняка свой кеш есть, у нас недавно отключение от гитхаба уже тестили
3. кто-нибудь накачает пакетов через впн и поднимет свой
4. в крайнем случае будем жить на то что мы навендорили
меня вообще уже года 4 удивляет, что в рашке какой-нибудь яндекс еще не поднял свой аналог гитхуба
Аноним 05/03/22 Суб 08:46:32 2311145 357
>>2310971
> меня вообще уже года 4 удивляет, что в рашке какой-нибудь яндекс еще не поднял свой аналог гитхуба
Щас поднимут, точнее распилят на этом денег, а по факту какой-нибудь гитлаб развернут, кек.
Аноним 05/03/22 Суб 09:23:15 2311150 358
>>2311145
>Щас поднимут
Зачем? Гитхаб не приносит деньги, а яндексу нужны только деньги, выделять для этой задачи сервера в момент дефицита компонентов и санкций, они скорее всего не будут.
Аноним 05/03/22 Суб 09:34:49 2311154 359
>>2311150
Приносит. Ты видел ценники на корпоративные лицензии? А битбакет с плагинами видел?
Аноним 05/03/22 Суб 10:42:57 2311178 360
>>2311154
Какая аудитория будет у этого "Я.Хаба", Россия, Беларусь и кто-то еще? Откуда в этих компаниях будут деньги, чтобы поддерживать подписку? Такое может быть, только если государство решит проспонсировать, но решит ли оно? Для кого вообще, российские компании будут писать код, чтобы им платили деньги?
Аноним 05/03/22 Суб 11:03:26 2311182 361
Аноним 05/03/22 Суб 11:08:40 2311186 362
Аноним 05/03/22 Суб 11:10:36 2311187 363
Аноним 05/03/22 Суб 11:26:36 2311193 364
>>2311178
> Какая аудитория будет у этого "Я.Хаба", Россия, Беларусь и кто-то еще?
Да, рашка и Беларусь. А что? Сам поисковик тоже только у нас юзают. Да и хостинги многие выбирают рашкинские. Всё полностью частное, без гос.спонсирования.
> Откуда в этих компаниях будут деньги, чтобы поддерживать подписку?
А откуда у них деньги на битбакет?
> Для кого вообще, российские компании будут писать код, чтобы им платили деньги?
То есть ты думаешь, что рроссийске айти - это исключительно аутсорс?
Аноним 05/03/22 Суб 13:24:28 2311260 365
Скоро вместо интернета будет локалочка с нерабочими vpn https://theins.ru/politika/248511

Собственно вопрос, есть ли список пакетов отсортированных по популярности, чтоб заранее всё выкачать? У Rust есть
Аноним 05/03/22 Суб 13:33:08 2311265 366
>>2311260
>Собственно вопрос, есть ли список пакетов отсортированных по популярности, чтоб заранее всё выкачать
Кто их поддерживать будет и зачем тебе пакеты, которыми ты не факт, что воспользуешься?

>>2286748 (OP)
>Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Насколько знаю в Go такого нет.
Аноним 05/03/22 Суб 15:41:52 2311323 367
>>2311260
>theins.ru

Иди нахуй с высерами иностранного агента.
Аноним 05/03/22 Суб 16:25:28 2311343 368
>>2310958
Если уж говорить про экономию ресурсов, то надо переписывать на Си. Он и к микрософту/гуглу не прибит гвоздями.
Аноним 05/03/22 Суб 17:39:37 2311413 369
>>2311343
>Если уж говорить про экономию ресурсов, то надо переписывать на Си
Нулевая скорость разработки и работы.
Аноним 05/03/22 Суб 17:39:38 2311414 370
Дженерики в бете уже завезли. Чего ещё вам не хватает в Go?
Аноним 05/03/22 Суб 17:44:35 2311416 371
>>2311413
Как ты это замерял?
К тому же на сишке куча готовых и стабильных библиотек, аналоги которых на go ещё нужно написать.
Аноним 05/03/22 Суб 17:49:40 2311418 372
Аноним 05/03/22 Суб 18:07:56 2311427 373
>>2311416
>Как ты это замерял?
Это ясно, код на Си, если в нем используется взаимодействие с системой, перестает быть переносимым. Си не знает, что такое асинхронщина, не знает, как работать с сетью, не знает протоколы, он ничего не умеет, кроме работы с памятью и выводом данных. В отличии от го.

>К тому же на сишке куча готовых и стабильных библиотек, аналоги которых на go ещё нужно написать.
Для чего эти библиотеки, нужны ли они на беке серверов, иначе зачем они в го?
Аноним 05/03/22 Суб 18:09:40 2311428 374
>>2311414
snake_case в именах переменных и именах функций.
Аноним 05/03/22 Суб 18:11:37 2311429 375
Аноним 05/03/22 Суб 18:23:40 2311444 376
>>2311429
Религия не позволяет писать в отличном от большинства код стайле.
Аноним 05/03/22 Суб 18:25:10 2311447 377
>>2311444
Да_пиши_как_хочешь.
Аноним 05/03/22 Суб 18:27:00 2311452 378
>>2311447
У меня появляется отвращение, если проект не в едином стиле, даже импортированные пакеты с неподходящим под него стилем, вызывают такое чувство и желание писать код пропадает.
Аноним 05/03/22 Суб 20:21:00 2311510 379
>>2286748 (OP)
Какой проект сделать вкатышу в go чтобы в резюме написать "базовое знание"?
Мимопхп додик
Аноним 05/03/22 Суб 20:27:03 2311516 380
>>2311510
Напиши какой-нибудь микросервис, который принимает жсоны, обрабатывает их, сохраняет данные в БД и возвращает ответы.
Аноним 05/03/22 Суб 20:38:22 2311522 381
>>2311516
>Напиши какой-нибудь микросервис, который принимает жсоны, обрабатывает их, сохраняет данные в БД и возвращает ответы.
Описал всю работу горазработчика.
Аноним 05/03/22 Суб 22:13:20 2311573 382
>>2310868
Походу нет))
Оракл сейчас это в первую очередь их база данных и облака. Джаву пилят в openjdk люди из оракла и еще кучи других контор.
Думаю, если у вас нет анальной привязки к Oracle Java или их базе данных, то ничего не изменится
Аноним 05/03/22 Суб 23:05:18 2311597 383
>>2310787
>будет ли Go востребованным, если закроют поставки компонентов, а аренду серверов за границей сделают невозможной, опять же из-за тех же санкций

Ну, в РФ сейчас выиграли те, у кого были свои сервера. Го брали обычно чтобы крутить на амазоновских серверах свои микросервисы.
Аноним 06/03/22 Вск 08:25:59 2311700 384
>>2311510
для базового знания ну мб физбаз
Аноним 07/03/22 Пнд 16:35:16 2312453 385
А откуда можно почитать с начала?
Т.е. не сам синтаксис, а вся эта ебала с gopath, goroot что там еще юзается, импользования go mod для разработки своего модуля/для обычного импорта готовых в свой сайтик и т.д.?
Алсо, на русском теперь тур недоступен?
Аноним 07/03/22 Пнд 16:40:57 2312455 386
>>2312453
Ну и по желанию если есть, как конкретно реализованы каналы, как реализован хеш мап в го, в целом, начинку
Аноним 07/03/22 Пнд 16:51:29 2312460 387
Аноним 07/03/22 Пнд 16:53:01 2312461 388
>>2312460
Нихуя ты умный. Вот же ж гениально.
А вот еще, если вдруг по твоей ссылке на найдено будет
https://google.com/
Аноним 07/03/22 Пнд 16:54:57 2312463 389
>>2312453
>А откуда можно почитать с начала? Т.е. не сам синтаксис, а вся эта ебала с gopath, goroot что там еще юзается, импользования go mod для разработки своего модуля/для обычного импорта готовых в свой сайтик и т.д.?

>>2312461
>Нихуя ты умный. Вот же ж гениально.

В документации все ответы на твои вопросы, что тебе еще надо?
Аноним 07/03/22 Пнд 16:56:18 2312465 390
>>2312463
Ну так подскажи точну ссылку, в которой описывается как реализованы каналы? Ну вот глупый, не нашел
Аноним 07/03/22 Пнд 17:03:41 2312469 391
>>2312465
>реализованы каналы
Зачем тебе знать реализацию каналов, когда язык "из коробки" кросс-компилируемый и их реализация плавает в зависимости от платформы?

Про то, как они работают написано тут
https://go.dev/doc/effective_go
Аноним 07/03/22 Пнд 18:03:43 2312511 392
вопрос к знатокам: если я отвечу на вопрос "В чем различие стрингов и []byte?" в духе "Стринг иммутабельный тип, т.е. я не могу изменить какой либо символ в строке, если же по каким-то причинам мне нужно изменить его, необходимо использовать []byte, скастовав string" --- интервьюеру понравится? или я лох
Аноним 07/03/22 Пнд 18:15:49 2312517 393
>>2312511
Если ты будешь использовать массив байт для изменения символа, то ты изменишь только 1 байт, иначе тебе придется писать относительно огромную логику изменения символов из байт, а в го уже есть руны.
Аноним 07/03/22 Пнд 18:27:14 2312525 394
>>2286748 (OP)
Как выучить Го? Я прошел весь оффициальный туториал.. А че дальше?!

хочу стать сеньором 10к баксов/месяц в ДС за 1.5 года!!! целую обнимаю!!!
Аноним 07/03/22 Пнд 18:33:21 2312529 395
>>2312525
Как выучить Го? Я прошел весь оффициальный туториал.. А че дальше?!

хочу стать сеньором 10к баксов/месяц в ДС за 1.5 года!!! целую обнимаю!!!
Аноним 07/03/22 Пнд 21:51:46 2312666 396
>>2312517
тогда какой правильный ответ?
Аноним 08/03/22 Втр 05:10:57 2312793 397
>>2286748 (OP)
gomobile рассчитан только на треугольники в опенжле? Как выделять текст? Как его вообще рендерить? Где формочки? Хуета без задач, а хайпа-то было уууу
Аноним 08/03/22 Втр 07:11:18 2312803 398
теперь у нас нельзя вообще никак вкатится в го?
что вообще с айти будет после последних новостей?
вот даже на стажера игнорят. или я настолько плох..
Аноним 08/03/22 Втр 07:44:36 2312810 399
>>2312793
>Хуета без задач
Да.
Аноним 08/03/22 Втр 12:43:01 2312864 400
>>2312803
Озон, авита, вб.
Как были так и остались. Ну, пока что не закрылись, кто знает что в будущем будет?
А так го у нас не взлетел особо, увы.
Аноним 08/03/22 Втр 21:32:09 2313129 401
Есть какой курс с заданиями чтоб в го вкатиться? Смотрел на степике, но там какая-та ссанина от школьников, их там в каждом модуле в коментах поправляют. Говно и моча.
Аноним 08/03/22 Втр 21:38:39 2313135 402
>>2313129
Нах тебе задания? Сам себе не можешь выдумать? Для совсем элементарных уровня черепахи - codewars, посложнее на алгоритмы - leetcode, но практические знания тебе дадут только реальные проекты. Ну напиши мультиплеерную игру с чатом, например.
Аноним 08/03/22 Втр 22:13:35 2313161 403
>>2313135
Да чтоб ты спросил блять, тебя ебет вообще? Отвечай на поставленный вопрос либо иди нахуй, сразу видно, что ты поридж до ненужных вещей дело есть.

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

Аноним 08/03/22 Втр 22:19:11 2313162 404
>>2313161
Сходи на codeforces, манечка, там очень классные задачи
Аноним 08/03/22 Втр 22:32:42 2313167 405
>>2313162
Долбоеб пориджный, там задачи для отработки алгосов, а не по фичам языка. Ты вообще не понимаешь реквеста, увидел задачи и начал гнать очевидную хуйню про литкоды и прочее говно. Дебил.
Аноним 08/03/22 Втр 23:40:53 2313222 406
>>2313129
Зайди в стд либу, посмотри как парсятся пнг и гиф. Напиши для нескольких других типов файлов и сходи нахуй, токсик
Аноним 09/03/22 Срд 04:47:08 2313313 407
>>2312511
понравится, но если ты про изменение символа хочешь рассказать, то слайс рун упоминай. также про различия в итерации по строке/слайсу байт хорошо бы упомянуть
Аноним 09/03/22 Срд 06:45:29 2313323 408
>>2313161
> Но ты вообще залетный, раз такие
советы даешь
С хуя ли? Я дал практический совет, в данный момент сам это делаю для изучения языка и всей его обвязки. Хули ты тут слюной брызгаешь? И зачем го учишь? По твоему поведению понятно, что РАБотать тебя никуда не возьмут, причём именно по софт-скиллам, кек. А больше половины нужных знаний в реальной жизни - это не сам язык, а обвязка вокруг него. Логирование, профилирование, инфраструктура, докеры-хуёкеры.
Аноним 09/03/22 Срд 10:51:51 2313362 409
>>2313167
Ну мань
Какие блять фичи ты отрабатывать собрался, язык за 2 часа учится
Аноним 09/03/22 Срд 12:25:57 2313397 410
Аноним 09/03/22 Срд 12:37:54 2313406 411
А гошка у буржуев вообще как? Рабочий инструмент али диковинка, нахуй не нужная? Коллега съебался пару лет назад в Лондон, потом в Дубаи. Все на гошечке, но тем не менее, вакансий как там вообще?
Аноним 09/03/22 Срд 17:04:18 2313567 412
Аноним 09/03/22 Срд 17:40:29 2313596 413
>>2313567
Курсобляди, зачем вам курсы?
Аноним 09/03/22 Срд 17:50:27 2313608 414
>>2313596
Структурированная информация с разобранными проектами в портфолио, которые можно показать на собеседовании.

Тому, кто по дружбе залетел на работу и его всему обучили, не понять таких проблем.
Аноним 09/03/22 Срд 19:25:18 2313673 415
>>2313135
>напиши мультиплеерную игру с чатом, например
Есть гайды как писать такое и продумывать архитектуру?
Хочу написать клон агарио, но не знаю с чего подступиться
Аноним 09/03/22 Срд 19:57:28 2313697 416
>>2313673
>Хочу написать клон агарио, но не знаю с чего подступиться
HTML+JS+API, более подробно google: "js как рисовать на странице", "js отправка запроса на сервер", "golang http сервер", "golang json", "js отследить событие нажатия клавиши", "js получить координаты курсора на странице" и т. д..
Научись пользоваться поисковиком.
Аноним 09/03/22 Срд 20:57:31 2313730 417
>>2313697
В итоге получается фронтенд дрочево и немножко логики на бекенде. Так ведь?
Вообще стало казаться, что бекенд сейчас не более чем прослойка между фронтом и БД. Вся движуха на фронте сейчас.
Аноним 09/03/22 Срд 21:08:47 2313736 418
Аноним 09/03/22 Срд 21:17:09 2313740 419
>>2313730
Еблан хочет написать игру где внезапно нужна фронтэнд часть. "Ряяя, бекэнд сосет."
Аноним 09/03/22 Срд 21:43:44 2313755 420
>>2313740
Как ты игру без фронтенда представляшь? Визуальную новеллу в консоли?
Чисто бекенд проект написать имхо невозможно, так или иначе придется на фронте очень много работы проводить, иначе твое говноподелие, отдающее кривые джейсоны, никому не будет интересно в принципе.
Аноним 09/03/22 Срд 23:42:55 2313818 421
>>2313673
Не пиши никаких игр, ни мультиплеерных, ни каких бы то ни было ещё. Там всегда будет много клиента и мало сервера, потому что сервер в таких проектах в основном для синхронизации, и в итоге появляется ложное ощущение того, что
> бекенд сейчас не более чем прослойка между фронтом и БД
Например, в энтерпрайзе так никогда не бывает, там всегда дохуя разнообразной логики на бэке, а фронт - это сплошные однотипные формочки для вызова этой логики. Только такое сложно представить в качестве учебного проекта, так что да, ищи курс с заданиями, либо пиши какую-нибудь сетевую залупу типа P2P-мессенджера.
Аноним 10/03/22 Чтв 01:01:43 2313848 422
Шо там по 1.18? Из-за санкций отменили что-ли?
Аноним 10/03/22 Чтв 05:39:03 2313879 423
>>2313673
Так прикол именно в том, чтоб писать всё с нуля самому, без подсказок. Конечно, если ты будешь гуглить, ты может и готовые варианты найдёшь. А так набиваются шишки, опыт. Не, ну можешь писать физзбазы и притворяться настоящим программистом.
Аноним 10/03/22 Чтв 15:37:00 2314116 424
>>2313848
на сайте поменяли ожидаемый месяц релиза с февраля на март рофланЕбало
Аноним 10/03/22 Чтв 15:38:45 2314118 425
>>2313313
т.е. ты иммешь ввиду, что если loop'ом иду по строке, то получаю только индексы, а если по слайсу, то тупл (индекс, значение)?
Тогда я видимо не понимаю смысла подъеба в вопросе "Чем отличается стринга от слайса байтов"...
Аноним 10/03/22 Чтв 23:21:51 2314434 426
Пытаюсь задокерить простенький го сервер с одной страницей

Вот докерфайл

FROM golang:1.16-alpine
WORKDIR /go/delivery
RUN go mod init ex123
COPY go.mod go.mod
COPY main.go /go/delivery/
RUN go build
CMD [./ex123]
EXPOSE 8080


ошибка следующая
/bin/sh: [./ex123]: not found


Я уэе весь на говно изошел, понимаю что где то в пути проеб, меня на все возможные варианты. Что не так ?
Аноним 11/03/22 Птн 04:57:56 2314522 427
Попытался пощупать этот ваш го.
Вы че ебанутые? Что это за смесь паскаля си и еще какого-то говна? Вы че угараете каждый раз писать fmt.Println
почему нельзя просто Println

ебать ну и параша
Аноним 11/03/22 Птн 05:32:31 2314524 428
>>2314522
> смесь паскаля си и еще какого-то говна?
Ты угадал, вот тут про это рассказывают: https://youtu.be/0ReKdcpNyQg
Аноним 11/03/22 Птн 07:23:11 2314536 429
>>2314522
Имена в пакетах могут дублироваться, чтобы избежать коллизии существую пространства имен, если добавить возможность их отключений, как например, using в C++, то код станет говном, в котором будет не понятно, что и откуда.
Паскаль умер уже давно, но люди все еще его вспоминают.
Аноним 11/03/22 Птн 12:25:26 2314657 430
>>2314522
>смесь паскаля си и еще какого-то говна
Будто что-то плохое.
Аноним 11/03/22 Птн 12:26:22 2314659 431
>>2314522
>Вы че угараете каждый раз писать fmt.Println
почему нельзя просто Println
Поздравляем, вы доебались до столба!
Аноним 11/03/22 Птн 12:41:27 2314671 432
Аноним 11/03/22 Птн 13:34:31 2314717 433
>>2314522
Попытался пощупать этот ваш джаваскрипт.
Вы че ебанутые? Что это за смесь си джавы пхп и еще какого-то говна? Вы че угараете каждый раз писать console.log
почему нельзя просто log

ебать ну и параша
Аноним 11/03/22 Птн 13:37:28 2314718 434
Аноним 11/03/22 Птн 13:41:29 2314719 435
Аноним 11/03/22 Птн 19:40:43 2315101 436
>>2314118
луп по строке идет по рунам, по слайсу байтов по байтам.
Аноним 11/03/22 Птн 19:42:48 2315102 437
>>2314536
>если добавить возможность их отключений
она есть, через импорт с точкой
Аноним 12/03/22 Суб 00:43:26 2315271 438
>>2314434
Собираешь в одном докер стейдже, запускаешь в другом
Аноним 12/03/22 Суб 14:15:01 2315434 439
Как в вашем говне писать микросервисы?
Аноним 12/03/22 Суб 14:21:12 2315435 440
Аноним 12/03/22 Суб 14:30:31 2315441 441
>>2315435
Вот на джаве, в спринге, я пишу хуяк @RestController, хуяк @GetMapping и все работает. А в говне как?
Аноним 12/03/22 Суб 14:31:35 2315442 442
>>2315441
>Вот на джаве
Пиши на джаве тогда.
Аноним 12/03/22 Суб 14:52:20 2315454 443
>>2315442
джава умерла, нужно все на го переписать
Аноним 12/03/22 Суб 14:56:12 2315455 444
>>2315454
На 1С переписывать. Го, жс и шарп тоже умерли.
Аноним 12/03/22 Суб 16:21:23 2315479 445
>>2315442
Обиженка порвалась, на вопрос челу ответить
Аноним 12/03/22 Суб 16:35:35 2315482 446
>>2315479
Он писал микропенисы на жабе, но не может написать их на языке, который, кроме микропенисов, ничего не умеет.
Аноним 12/03/22 Суб 16:48:54 2315485 447
>>2315482
Справедливо, не сердись если че
Аноним 12/03/22 Суб 21:14:58 2315602 448
>>2315434
копируеш существующий, декларируеш хендлеры, делаеш кодген, пишеш сервисный код и работу с БД. всё.
Аноним 12/03/22 Суб 21:51:31 2315621 449
>>2315602
> копируеш существующий
Философский вопрос: как написали самый первый в мире микросервис на говне?
Аноним 12/03/22 Суб 21:57:38 2315622 450
>>2315621
>как написали самый первый в мире микросервис на говне?
Взяли и написали.
Аноним 13/03/22 Вск 00:17:21 2315660 451
>>2315621
Так же, как первые люди догадались, куда нужно совать хуй.
Аноним 13/03/22 Вск 05:33:12 2315697 452
>>2315660
Экспериментальным путём.
Аноним 16/03/22 Срд 00:44:45 2317487 453
Go 1.18 is released!
Аноним 16/03/22 Срд 00:54:46 2317489 454
Аноним 16/03/22 Срд 00:57:04 2317490 455
>>2317487
Какое же говно синтаксис у дженериков.
Аноним 16/03/22 Срд 10:07:12 2317577 456
Подскажите нюфагу как лучше сделоть.
Допустим в main инициализирую подключение к бд, надо как то получить доступ к этой переменной из другого пакета, чтобы каждый раз не передавать её аргументом, потому что это выглядит тупо.
Может есть какой то лаконичное решение?
Аноним 16/03/22 Срд 10:24:38 2317580 457
Шо там по фильтрации для rest api, когда надо параметры в SQL запрос передать? По-любому есть готовое что-то
Аноним 16/03/22 Срд 11:55:29 2317617 458
>>2317580
Есть. Но проблема в том, что неизвестно какое из 20 решений на гитхабе выбрать (
И так во всем.


вы мне лучше скажите что там с wildberries ? пока шизомод не пришел
Аноним 16/03/22 Срд 11:58:17 2317620 459
>>2317577
самое лаконичное - отсутствие передачи. То есть, глобальная переменная.
Боишься использовать глобальные переменные? Это у тебя после явы?
Аноним 16/03/22 Срд 13:36:57 2317672 460
>>2317617
>wildberries
а они набирают? а то что-то гугл 0 нормальных ссылок на их стажировки\джуновские позиции выдаёт
Аноним 16/03/22 Срд 13:59:54 2317693 461
>>2317620
В яве есть контекст DI, из которого можно взять коннекшен к базе, а в го вместо этого какие-то тупые костыли из девяностых.
Аноним 16/03/22 Срд 17:26:54 2317757 462
>>2317672
Он имеет в виду, что с самим сайтом. По слухам, их ломанули хохлятские диверсанты и зашифровали нахуй весь бэкенд с данными. Всё, нет больше вилдбирриса.
Аноним 16/03/22 Срд 17:33:04 2317761 463
>>2317672
>а они набирают
Раньше набирали.

>гугл 0 нормальных ссылок на их стажировки\джуновские позиции выдаёт
А они и не брали джунов почти. И стажеров тоже. Хотя в треде кто-то отписывался, что попал к ним на стажировку несколько лет назад, а потом его уволили оттуда.
Вообще практически никто сейчас не набирает джунов и стажеров, когда на рынок вывалилось очень много разрабов с опытом.

>>2317617
>wildberries
Жидко дали в рейтузы и ушли в мир иной.
Аноним 16/03/22 Срд 17:56:15 2317776 464
>>2317577
type Component struct {
db sql.DB
}

func NewComponent(db
sql.DB) *Component {
return &Component{db: db}
}

Не благодари.
Аноним 17/03/22 Чтв 00:10:47 2318013 465
>>2301775
> num1
> num2
> num3
> num4
Эх, как же хорошо что не однобуквенные переменные, а то иначе было бы непонятно нихуя
Аноним 17/03/22 Чтв 00:16:21 2318020 466
>>2317693
В го тоже есть сторонние DI пакеты, но по факту они все это просто неявная обертка над тем что >>2317776 написал.
Аноним 17/03/22 Чтв 01:13:47 2318038 467
Перекатываюсь с питона. Посмотрел на фреймворки и решил остановиться на файбере.
Так вот, сколько ему памяти надо? Он просто не запускается
Аноним 17/03/22 Чтв 01:23:42 2318044 468
>>2315621
Написал в тестовом, требование - обмен картинками по grpc, ну дальше гугол и вот так и сделал. Но не взяли, т.к тогда в вебе не работал никогда, но зато взяли на питон.
Так и не понял, по каким критериям надо делить проект на микросервисы.
Аноним 17/03/22 Чтв 08:00:48 2318077 469
>>2318044
> Так и не понял, по каким критериям надо делить проект на микросервисы.
Его не надо делить на микросевисы без весомых причин.
95% любителей микросервисов - каргокультисты, как, впрочем, и любители того же СКРАМА.
https://www.youtube.com/watch?v=gfh-VCTwMw8
Аноним 17/03/22 Чтв 08:00:53 2318078 470
>>2318044
>Так и не понял, по каким критериям надо делить проект на микросервисы.
Любую высоконагруженную логику выносишь в отдельный сервис.
Аноним 17/03/22 Чтв 11:24:46 2318129 471
знакомые съебали в Грузию и сказали, что могут пролоббировать меня джуном. Посоветовали Go учить. Ну я и начал. Тут эти непонятные дженерики выходят. На каком этапе их надо начать изучать? Вот я теперь эту книгу штудирую.
Адам Фриман Pro Go
Полное руководство по программированию
надежного и эффективного программного
обеспечения с использованием Golang. 2022г.
Как раз для меня всё разжёвано. Но там про дженерики ничего нет.
Спасибо
Аноним 17/03/22 Чтв 11:28:21 2318131 472
>>2318129
>Но там про дженерики ничего нет.
Дженерики вчера появились.

https://tip.golang.org/doc/go1.18
Потыкай по ссылкам, посмотри говносинтаксис, дальше должен понять.
Аноним 17/03/22 Чтв 11:38:03 2318134 473
Вышла новая версия go с дженериками https://go.dev/doc/go1.18
Из плохого:
1) углубили гуглозонд, который встраивает прямо в бинарник ещё больше инфы о вас.
2) исходники у зависимостей теперь не все скачиваются (будете тратить дополнительное время на поиск и скачивание исходников, когда микрософт внезапно заблокирует гитхаб).
Аноним 17/03/22 Чтв 11:45:18 2318137 474
>>2318134
3) из-за дженериков время компиляции серьёзно замедлилось.
4) поломали совместимость со старыми ядрами линукса, теперь версия должна быть не меньше 2.6.32.
5) go get теперь не работает (куча прежних книг и документации с инструкциями по установке у новичков вызовет проблемы).
Аноним 17/03/22 Чтв 11:53:31 2318140 475
>>2318137
>5)
go install
А вообще эта ебля с модулями от релиза к релизу вызывает СЕРЬЕЗНУЮ ОЗАБОЧЕННОСТЬ
Аноним 17/03/22 Чтв 12:16:30 2318150 476
>>2318134
>углубили гуглозонд, который встраивает прямо в бинарник ещё больше инфы о вас.
как откл-ить7
Аноним 17/03/22 Чтв 12:25:59 2318155 477
>>2318129
Я бы лучше начал писать текущий проект без дженериков, а потом бы добавил по мере надобности.
Аноним 17/03/22 Чтв 14:07:03 2318220 478
Аноним 17/03/22 Чтв 14:10:26 2318224 479
Аноним 17/03/22 Чтв 17:29:34 2318324 480
Так, наконец-то появились вменяемые функции для работы с коллекциями. Когда можно будет ожидать появления set, treemap, treeset в стандартной либе?
Может потом через лет 5 аналог stream api завезут вменяемый и на го наконец станет возможно писать без постоянных унижений
Аноним 17/03/22 Чтв 17:38:24 2318328 481
>>2318150
Проще написать альтернативный компилятор, чем каждый раз искать и выпиливать явные и скрытые гуглозонды.
А ещё лучше использовать тот язык программирования, который не прибит к корпорастам, имеет множество компиляторов.
Аноним 17/03/22 Чтв 17:53:45 2318343 482
image.png 23Кб, 671x289
671x289
Какая же всратая хуйня, этот ваш Говноленд...
Неужели нельзя было раздуплиться и за полгода (или сколько там уже дженерики в бете были) запилить их нормально?
Вот, жрите, пример из го тура подсвечивается красным.
Аноним 17/03/22 Чтв 18:00:32 2318355 483
>>2318343
>Какая же всратая хуйня, этот ваш Говноленд...
Да.
Аноним 17/03/22 Чтв 18:08:56 2318371 484
>>2318328
Это какой такой свободный язык? Плюсы с сишкой?
Аноним 17/03/22 Чтв 18:10:59 2318374 485
Аноним 17/03/22 Чтв 18:49:55 2318421 486
Господа, а что по собесу на позицию го миддла в озон? Что спрашивают? Какие задачки дают решать?
Аноним 17/03/22 Чтв 20:50:50 2318529 487
>>2318044
>Так и не понял, по каким критериям надо делить проект на микросервисы.
когда у тебя большая команда и нужен тайм ту маркет
Аноним 17/03/22 Чтв 21:24:19 2318557 488
774.PNG 3Кб, 909x21
909x21
Аноним 17/03/22 Чтв 21:44:00 2318572 489
>>2318557
Все ясно. Нихуя не ясно.
Аноним 17/03/22 Чтв 21:54:49 2318584 490
бляяя сука. не могу запустить эту хуйню. снёс старую версию и поставил новую. после source $HOME/.profile показывает версию, а после перезапуска терминала нет. опять надо $HOME/.profile. сука забыл как первый раз ставил.
Аноним 17/03/22 Чтв 21:58:56 2318585 491
>>2318584
Перезагрузи родителя, от которого твои терминалы рождаются, если не сработало, то перезагрузи родителя родителя или просто перезагрузи.
Аноним 17/03/22 Чтв 22:01:01 2318587 492
Аноним 18/03/22 Птн 16:54:31 2318947 493
Аноним 18/03/22 Птн 18:59:01 2319022 494
>>2295247
Иота.
Потому что enum — лишняя сущность.
Аноним 18/03/22 Птн 19:03:52 2319024 495
Аноним 18/03/22 Птн 19:21:59 2319032 496
Аноним 18/03/22 Птн 19:49:59 2319055 497
>>2319032
Это греческое слово.
Аноним 18/03/22 Птн 20:02:18 2319059 498
>>2319055
А, ну да, как же я сразу не догадался, что язык греческий, все же и так понятно, ну да, точно! ЗАЧЕМ ИСПОЛЬЗОВАТЬ ОТЛИЧНЫЕ ОТ АНГЛИЙСКОГО ЯЗЫКА НАЗВАНИЯ В КЛЮЧЕВЫХ СЛОВАХ ЯЗЫКА?
Аноним 18/03/22 Птн 23:32:57 2319181 499
>>2319059
Потому что это математический термин. Тебя же греческая лямбда не смущает? Так чего ты из-за иоты бугуртишь?
Аноним 18/03/22 Птн 23:40:28 2319185 500
>>2318129
Пока что забей. Советовал бы их учить в последнюю очередь. Они в конце концов только на днях появились
Аноним 18/03/22 Птн 23:47:26 2319188 501
Аноны, а кто-то может подсказать годную статью про устройство GC в го? Все статьи, которые я находил, были очень старые. И в комментариях там люди писали, что статья, конечно, хорошая, но многое уже устарело
Аноним 19/03/22 Суб 17:44:46 2319451 502
Неиронично хочу катануться с плюсов в го. Какие подводные?
Аноним 19/03/22 Суб 17:57:39 2319463 503
Аноним 19/03/22 Суб 17:59:45 2319467 504
>>2319451
> Какие подводные?
Go
Аноним 19/03/22 Суб 19:11:56 2319497 505
>>2319451
Производительность ниже (из-за GC), размеры бинарников больше. Несколько дубовый синтаксис, например отсутствие тернарника чувствуется. Непривычная объектная модель. Гораздо меньше готовых решений.

В остальном Go действительно более прогрессивен и прост (в хорошем смысле).
Аноним 20/03/22 Вск 08:50:56 2319698 506
Аноним 20/03/22 Вск 13:16:36 2319799 507
>>2319451
платят больше, вакух меньше, код коллег более понятный, делаеш веб-хуйню весь день
Аноним 20/03/22 Вск 14:13:08 2319849 508
>>2319497
>>2319799
Осуществить вкат реально? Или нужны 3-6 коммерческого опыта?
Аноним 20/03/22 Вск 16:46:18 2319956 509
>>2319849
До 24.02.2022 в целом можно было, если напрячь жопу и устроиться в какой-нибудь тинькофф или вайлбериз стажером.
Сейчас в тинькоффе гошную тему прикрыли, а валдбериз жидко пукнул и обмяк. Конторы поменьше просто закрылись или приостановили найм.
Поэтому лучше подожди пока военная спецоперация закончится, потом уже думай куда нужно вкатываться. Вполне вероятно, что придется вкатываться не в веб хуйню, а на завод.
Аноним 21/03/22 Пнд 08:03:48 2320387 510
Почему в условном цикле нельзя указывать условие с более чем двумя значениями if a == b == c ?
Аноним 21/03/22 Пнд 08:12:23 2320389 511
>>2320387
Потому что вычисление происходит не так, как в математике.

a == b == c
true == c // если c - boolean, ошибки и не заметишь
Аноним 21/03/22 Пнд 12:51:50 2320518 512
>>2319956
>Сейчас в тинькоффе гошную тему прикрыли, а валдбериз жидко пукнул и обмяк
А что с озоном и сбердевайсис? слышал, что вроде им тоже нужны разрабы
Аноним 21/03/22 Пнд 18:02:52 2320715 513
>>2320389
Почему в python так можно?
Аноним 21/03/22 Пнд 18:27:33 2320732 514
Аноним 21/03/22 Пнд 19:00:57 2320750 515
Я правильно понимаю, что go язык чисто для корпоративного дроча и ничего интересного для себя на нем не попишешь?
Аноним 21/03/22 Пнд 19:03:15 2320751 516
Аноним 21/03/22 Пнд 19:03:18 2320752 517
>>2320750
Думаешь, что в компиляторе такая проверка?
if (интересноеДляСебя) {
ошибкаКомпиляции()
}
Аноним 21/03/22 Пнд 19:04:15 2320755 518
>>2320715
Откуда нам знать, что там петухонщики курили.
Аноним 21/03/22 Пнд 22:43:24 2320915 519
>>2319956
>Сейчас в тинькоффе гошную тему прикрыли
чому? На Старт ГОшников набирают
Аноним 22/03/22 Втр 00:13:26 2320941 520
>>2319849
Реально. Перекатился на Го, имея 2 года сомнительного опыта плюсов.
Аноним 22/03/22 Втр 00:14:27 2320943 521
>>2319849
>>2319849
Или ты не тот, кто про перекат с плюсов спрашивал?
Аноним 22/03/22 Втр 00:59:39 2320960 522
>>2320518
Про сбер не в курсе. Сегодня слышал, что они вообще найм остановили на многих направлениях.

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

>>2320915
На старт набирают, но вот в финтех школе на полгода минимум приостановили гошные программы.
Да и то, ты знаешь сколько там на старт берут? Человек 15-20 от силы. А желающих около 5-10 тысяч. Раньше было проще выиграть грику и уехать чистить унитазы в штаты, один хуй получать будешь в десятки раз больше чем на стажировке в тиньке.
Аноним 22/03/22 Втр 12:14:05 2321118 523
>>2320752
Ну я имею ввиду, что на языке кроме всякой банковской параши ничего дельного не напишешь, как на джаве.
Аноним 22/03/22 Втр 12:16:06 2321120 524
Аноним 22/03/22 Втр 12:33:57 2321132 525
>>2321118
Идиот, ты бы хоть ознакомился с чем-то, прежде чем спрашивать.
Раз ты не умеешь искать и читать информацию в интернете, тебе и в программирование дорога закрыта.
Аноним 22/03/22 Втр 12:49:29 2321143 526
>>2321132
С чем ознакомиться?
Проекты, которые написаны на go: docker, kubernetes, yggdrasil. Всякие штуки написанные айтишниками для айтишников.
Аноним 22/03/22 Втр 12:52:50 2321146 527
>>2320960
>Сегодня слышал, что они вообще найм остановили на многих направлениях.
А откуда инфа? я че то не слышал...

>Озон вроде набирает стажеров
Видел у них вакансию и в ней описание, что они рассматривают людей с других стеков для перепрофилирования на го....
Аноним 22/03/22 Втр 13:24:51 2321168 528
>>2321143
Игр и геймдева на го дохера и более.
Аноним 22/03/22 Втр 13:36:00 2321174 529
>>2321168
>Игр и геймдева на го дохера и более.
Например.
Аноним 22/03/22 Втр 16:58:12 2321330 530
Как узнать, в какой части кода type error происходит?
Аноним 22/03/22 Втр 17:21:28 2321355 531
>>2321174
Я тебе ещё раз повторяю: ты не умеешь искать и читать информацию в интернете, тебе и в программирование дорога закрыта.
Мне вот делать нехер больше, чем за тебя гуглить, если ты тот же ебитень не нашёл до сих пор, то ты хохол.
Аноним 22/03/22 Втр 18:32:09 2321411 532
Аноним 22/03/22 Втр 19:07:11 2321436 533
>>2321411
Ладно, я смог. Но в предыдущих уроках не было информации о создании беззнакового массива.
Аноним 22/03/22 Втр 19:16:12 2321443 534
>>2321436
Я знаю, как решить без него.
Аноним 22/03/22 Втр 20:21:42 2321489 535
А можно как-то организовать артефактори для модулей? Чтоб не качать их напрямую с гитхаба? А то этот подсер js макаки совсем пошатнул доверия скачивать напрямую с гитхаба. И подтер же сука историю коммитов, чтоб не доебывались кто в танке был
Аноним 22/03/22 Втр 20:31:29 2321491 536
>>2321489
Ну блядь, не качай сомнительные либы с одним автором.
Хотя да, что-то типа packagist не помешало бы.
Аноним 22/03/22 Втр 20:35:25 2321494 537
>>2321491
А кто мешает 10 мейнтейнерам в сговор вступить и подосрать?
А каждую зависимость, у которой зависимость заебешься просматривать на предмет обновлений
Аноним 22/03/22 Втр 20:47:35 2321498 538
>>2321491
> сомнительные либы
Либа с 1300 звёздами никак не тянула на сомнительную.
> с одним автором
Процентов 90 либ.
Аноним 22/03/22 Втр 21:03:02 2321509 539
>>2321118
А что ты собрался для себя писать? На джаве так-то и игры можно писать, да и вообще почти все что угодно, десктоп утилиты, фронтенд и т. д., но другое дело, что для этого есть куда более удобные инструменты.
Кто тебе запрещает на го писать хуитки для себя?
Правда я не знаю, что ты собрался писать для себя. У меня как-то все идеи проектов были либо слишком масштабные (написать аналог викимапии/народных карт яндекса, распределенное хранилище с поддержкой SQL запросов и т. д.), где нужно въебать охуилиард времени и в итоге забить от бессилия, либо банальщина уровня телеграм ботов, который 3 раза в сутки парсит какое-нибудь авито и выдает результат парсинга пользователю, которая пишется на любом языке за пару часов.
Вообще не знаю, как люди находят идеи пет-проектов для себя. Может быть ковыряться в опенсорс либах и фиксить баги интересно + полезно. Писать что-то свое, нужно быть охуенным спецом с огромным багажом опыта.
Аноним 22/03/22 Втр 21:50:21 2321520 540
А можно сделать, чтоб при go get github.com/name1/name2
Можно было бы импортировать без префикса github.com?
Аноним 22/03/22 Втр 22:17:20 2321530 541
что могут спрашивать интерна\джуна на позицию Go бекендера?
насколько нужно быть НЕ тупым в Go чтобы пройти собес
Аноним 23/03/22 Срд 08:07:46 2321644 542
>>2321509
Зачем ты перед этим дураком распинаешься простынями? Ничего он не напишет, потому что не может даже нормально погуглить.
Аноним 23/03/22 Срд 12:47:02 2321719 543
У меня нубский вопрос, стоит ли для статики юзать nging?
Ну Т.е. насколько сам http модуль справляется? Речь не о хайлоаде, но на будущее. Все равно всё заканчивается на cdn, хоть с прокси хоть без
Аноним 23/03/22 Срд 16:39:48 2321839 544
>>2321355
>Я тебе ещё раз повторяю
Ты мне ничего не повторял.
>ты не умеешь искать и читать информацию в интернете, тебе и в программирование дорога закрыта.
Умею.
>Мне вот делать нехер больше, чем за тебя гуглить, если ты тот же ебитень не нашёл до сих пор, то ты хохол.
Вместо пруфов своих слов, ты высрал хуету.
Аноним 23/03/22 Срд 17:27:12 2321864 545
>>2321839
> Умею
Зачем тогда этот троллинг тупостью? Я же прямо в своём сообщении, которое ты цитируешь, назвал фреймворк для игр, на котором их уже запилили энное количество.
Аноним 23/03/22 Срд 17:32:18 2321866 546
>>2321864
Это же ты, местный ебанат, который в Си треде всех школьниками называл? Я тебя вспомнил, даже стиль текста такой же.

>которое ты цитируешь, назвал фреймворк для игр
Не назвал.
Аноним 23/03/22 Срд 20:09:25 2321949 547
>>2321866
На хуй иди, идиот со сломанным детектором.
Аноним 24/03/22 Чтв 09:46:30 2322157 548
Посоветуйте пакет для работы с MSSQL.
Аноним 24/03/22 Чтв 19:12:14 2322468 549
Аноним 24/03/22 Чтв 20:16:10 2322494 550
Почему бинарники так много весят?
Аноним 24/03/22 Чтв 20:19:25 2322497 551
>>2322494
Потому что в них пихаются все зависимости и весь рантайм. Много dll-ек в Go видел? Вот то-то и оно.
Аноним 24/03/22 Чтв 22:39:55 2322576 552
>>2322497
Бинарники скомпилированные под определенную систему можно запускать без дополнительных установок?
Аноним 24/03/22 Чтв 23:19:59 2322592 553
Аноним 24/03/22 Чтв 23:22:17 2322594 554
Снимок экрана 2[...].png 157Кб, 1116x1096
1116x1096
Снимок экрана 2[...].png 27Кб, 900x162
900x162
Состряпал такею хню. Почему не работает? Я хочу из любого места импортировать готовый конфиг

panic: runtime error: invalid memory address or nil pointer dereference
Аноним 25/03/22 Птн 01:23:01 2322625 555
>>2322594
Разобрался. Я, конечно, не сторонник глобальных переменных, но без них в го совсем трудно?
Аноним 25/03/22 Птн 07:22:51 2322665 556
>>2322625
Глобальные переменные лучше, чем бесконечные get/set в остальных языках.
Аноним 25/03/22 Птн 07:55:10 2322667 557
>>2322665
Как это связано? Никак.
Аноним 25/03/22 Птн 07:59:03 2322668 558
>>2322667
>Я, конечно, не сторонник глобальных переменных
>>2322665
>Глобальные переменные лучше, чем бесконечные get/set в остальных языках.
>>2322667
?
Аноним 25/03/22 Птн 10:57:06 2322741 559
>>2322594
А вообще как принято конфиги хранить в го?
В питоне, перле как правило обычный файл с расширением языка и там константами перечислено. Для куба, например, переобпределяется через yaml. А тут?
Аноним 25/03/22 Птн 10:59:40 2322743 560
Аноним 25/03/22 Птн 11:18:36 2322749 561
>>2322741
А тут ты должен каждый раз, когда понадобится одно поле из конфига, открывать файл, читать его целиком, закрывать, а прочитанные байтики парсить как json, из результата взять одно поле, остальное выкинуть. Иначе не Go Way.
Аноним 25/03/22 Птн 11:23:49 2322751 562
Аноним 25/03/22 Птн 19:10:13 2323140 563
Как сделать скрытый ввод в консоль как при sudo?
Аноним 25/03/22 Птн 19:12:49 2323141 564
>>2323140
Отключить отображение stdin в терминале.
Аноним 25/03/22 Птн 19:16:37 2323144 565
>>2323141
Так причем здесь терминал? Это же как-то через сам судо делается, остальные программы же ввод показывают.
Аноним 25/03/22 Птн 19:18:34 2323146 566
Аноним 30/03/22 Срд 13:41:11 2325699 567
ну что, как работа ищется?
Аноним 30/03/22 Срд 14:15:52 2325726 568
.jpg 35Кб, 513x432
513x432
Пытаюсь скомпилировать через openwrt. Сыпет ошибками:

1. Беру чистые исходники: https://github.com/Macronut/Pinocchio Ошибка:
main.go:19:2: local import "./dns" in non-local package
main.go:20:2: local import "./proxy" in non-local package
main.go:21:2: local import "./service" in non-local package


2. Поменял в main.go
"./dns"
"./proxy"
"./service"
На
"github.com/macronut/pinocchio/dns"
"github.com/macronut/pinocchio/proxy"
"github.com/macronut/pinocchio/service"
Ошибка:
main.go:19:2: no required module provides package github.com/macronut/pinocchio/dns; to add it:
go get github.com/macronut/pinocchio/dns
main.go:20:2: no required module provides package github.com/macronut/pinocchio/proxy; to add it:
go get github.com/macronut/pinocchio/proxy
main.go:21:2: no required module provides package github.com/macronut/pinocchio/service; to add it:
go get github.com/macronut/pinocchio/service


3. Закинул файл go.mod в корень исходников:
module github.com/macronut/pinocchio
go 1.18
require github.com/williamfhe/godivert v0.0.0-20181229124620-a48c5b872c73
Ошибка:
service/pinocchio.go:15:2: local import "../dns" in non-local package
proxy/mystify.go:17:2: local import "../net/ipv4" in non-local package
proxy/mystify6.go:13:2: local import "../net/ipv6" in non-local package
proxy/mystify.go:18:2: local import "../net/tcp" in non-local package
service/pinocchio.go:16:2: local import "../proxy" in non-local package


4. Меняю пути во всех файлах как во втором пункте. Ошибка:
proxy/proxy.go:52:2: array index 15 out of bounds [0:15]
proxy/ttl.go:20:6: TCPInfo redeclared in this block
/root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/proxy/mystify.go:21:6: previous declaration
proxy/ttl.go:26:6: htons redeclared in this block
/root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/proxy/mystify.go:29:22: previous declaration
note: module requires Go 1.18


5. Меняю go 1.18 на go 1.17 в файле go.mod. Ошибка:
proxy/proxy.go:52:2: array index 15 out of bounds [0:15]
proxy/ttl.go:20:6: TCPInfo redeclared in this block
/root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/proxy/mystify.go:21:6: previous declaration
proxy/ttl.go:26:6: htons redeclared in this block
/root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/proxy/mystify.go:29:22: previous declaration


Как чинить? На картинке файл proxy.go (ошибка proxy/proxy.go:52:2: array index 15 out of bounds [0:15])
Аноним 30/03/22 Срд 14:26:46 2325732 569
>>2325726
Проект говно, устанавливай зависимости руками через go get.
Аноним 30/03/22 Срд 14:29:40 2325734 570
>>2325726
>>2325732
git clone https://github.com/Macronut/Pinocchio
cd Pinocchio
go build
Пропробуй, возможно ты что-то сломал, возможно проект уже сломан, но если в нем не указан алгоритм сборки, то все должно так работать. Или проект говно.
Аноним 30/03/22 Срд 14:40:14 2325741 571
>>2325726
Создай симлинки на эти импорты в папке vendor
Аноним 30/03/22 Срд 15:04:28 2325749 572
>>2325732>>2325734>>2325741
Попробовал другие исходники, теперь выдает:
cp -fpR ./files/ /root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.pkgdir/Pinocchio/
cp: cannot stat './files/
': No such file or directory


Открывал смотрел все файлы в исходниках - нигде нет пути ./files/* - что это может быть?
Аноним 30/03/22 Срд 15:05:28 2325750 573
>>2325732>>2325734>>2325741
На новых исходниках успешно компилируется через эту команду:
GOOS=Linux GOARCH=mipsle go build -o pinocchio.mips32le

Но мне надо именно через openwrt, а там ошибка: >>2325749
Аноним 30/03/22 Срд 15:27:18 2325767 574
>>2325749
>Попробовал другие исходники
Какие?
>Открывал смотрел все файлы в исходниках - нигде нет пути ./files/* - что это может быть?
Очередное быдлокодерское решение.
Аноним 30/03/22 Срд 15:32:32 2325773 575
>>2325767
Мне анон скинул починенные исходники, сказал что оригинальные исходники кривые:
http://0x0.st/oq98.gz
>Очередное быдлокодерское решение.
Можно это починить редактированием исходников? Я понятия не имею где искать, т.к. я не линуксоид даже близко, мне просто надо прогу скомпилировать и поставить на роутер. И заодно спрошу. Почему у меня убунта так сильно лагает на виртуалке? Когда перетаскиваю окна все тормозит и лагает, есть большая задержка. На винде-виртуалке такого нет даже близко. После моих 144 hz глаза дико устают.
Аноним 30/03/22 Срд 15:40:59 2325780 576
>>2325773
>Можно это починить редактированием исходников?
Да.
>Я понятия не имею где искать, т.к. я не линуксоид даже близко, мне просто надо прогу скомпилировать и поставить на роутер.
Возможно проблема в используемом тулките для сборки, возможно проблема в том, как ты собираешь, возможно проблема в том, что проект написан индусом. Много причин.
>Почему у меня убунта так сильно лагает на виртуалке?
Убунта говно.
Аноним 30/03/22 Срд 15:46:44 2325789 577
Аноним 30/03/22 Срд 16:18:26 2325823 578
>>2325780
Я собираю через openwrt SDK. Как починить? Явно проблема в исходниках, потому что я уже успешно собрал это (тоже на GO):
https://github.com/BH4EHN/openwrt-cloudflared/blob/master/Makefile

Но тут уже готовый makefile был. Я создал по аналогии Makefile для Pinocchio
Аноним 30/03/22 Срд 18:05:43 2325912 579
>>2325823
>потому что я уже успешно собрал это (тоже на GO)
Я слепой или в репе 0 го-кода, а это просто пакет для какой-то системы?
>Я создал по аналогии Makefile для Pinocchio
...
>Как починить?
>>2325789
Возможно ты не так собираешь.

Разве "GOOS=linux GOARCH=mipsel go build" не может собрать для openwrt?
Аноним 30/03/22 Срд 18:14:05 2325922 580
Аноним 30/03/22 Срд 18:28:07 2325936 581
Аноним 30/03/22 Срд 18:28:35 2325937 582
Аноним 30/03/22 Срд 18:36:46 2325944 583
Аноним 30/03/22 Срд 18:48:07 2325951 584
>>2325944
Тогда удали нахуй строку $(CP) ./files/* $(1)/ из своего (созданного на другом) мейкфайла, чтобы убрать эту ошибку.

>cp -fpR ./files/ /root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.pkgdir/Pinocchio/
>cp: cannot stat './files/': No such file or directory
Аноним 30/03/22 Срд 19:07:10 2325959 585
>>2325951
Удалил, теперь ошибка:
Finding targets
go: warning: "github.com/macronut/Pinocchio/..." matched no packages

Building targets
no Go files in /root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.go_work/build


В ошибке речь про GO_PKG:=github.com/macronut/Pinocchio

Возможно я не то указал, потому что в cloudflared путь немного другой:
GO_PKG:=github.com/cloudflare/cloudflared/cmd/cloudflared

Но я не нашел ничего похожего в github.com/macronut/Pinocchio
Аноним 30/03/22 Срд 19:10:05 2325960 586
Аноним 30/03/22 Срд 19:13:16 2325962 587
>>2325959
Ты вроде исходники менял, с относительного-локального пути импортов до абсолютного-удаленного (то есть на гитхабе), верни, как было и попробуй еще раз.
Аноним 30/03/22 Срд 19:30:23 2325968 588
>>2325951
Удалил tar и запустил компиляцию, он по новой его скачал, теперь нет ошибок: (1, 2, 3, 4, 5) >>2325726
Видимо они были из-за строчки: $(CP) ./files/* $(1)/ которую я удалил
Но ошибка осталась та же:
Finding targets
go: warning: "github.com/macronut/Pinocchio/..." matched no packages

Building targets
no Go files in /root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.go_work/build

Аноним 30/03/22 Срд 19:32:00 2325972 589
>>2325968
>go: warning: "github.com/macronut/Pinocchio/..." matched no packages
go mod init в директории с проектом пропиши, может поможет.
Аноним 30/03/22 Срд 19:48:49 2325982 590
>>2325972
>в директории с проектом пропиши
Я не понимаю. В makefile? Компилирую через openwrt, не из директории проекта. Из папку openwrt. В ней папка package. В папке package папки программ с файлами, в том числе makefile на каждую. Компилирую командой:
make package/pinocchio/compile V=s
Аноним 30/03/22 Срд 20:10:23 2325999 591
>>2325982
>/root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.go_work/build
cd /root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.go_work/build && ls -l
И листинг сюда, хуй знает, что там у тебя происходит внутри.
Аноним 30/03/22 Срд 20:31:31 2326010 592
root@123:~/Desktop# cd /root/Desktop/openwrt6/build_dir/target-mipsel_24kc_musl/Pinocchio-0.1/.go_work/build && ls -l
total 8
drwxr-xr-x 2 root root 4096 Mar 31 00:21 bin
drwxr-xr-x 3 root root 4096 Mar 31 00:21 src
Аноним 30/03/22 Срд 20:35:51 2326011 593
>>2326010
GOROOT, GOPATH устанавливал в переменных окружения?
Аноним 30/03/22 Срд 20:42:48 2326015 594
>>2326011
Нет. Там в этот SDK все необходимые библиотики и утилиты ставятся в папку package. То есть язык GO ставится в папку package/lang/golang и тд
Аноним 30/03/22 Срд 20:43:44 2326016 595
>>2326015
Скинь ссылку на это все.
Аноним 30/03/22 Срд 20:46:28 2326018 596
>>2326016
Сам SDK: https://github.com/openwrt/openwrt (это вроде как полная версия, через которую можно собрать на любую архитектуру, выбирается через make menuconfig. Есть еще урезанная версия на конкретную архитектуру, я пользую урезанную)
Пакеты: https://github.com/openwrt/packages (там же пакет golang)
Аноним 30/03/22 Срд 21:54:49 2326045 597
>>2326018
Мне кажется проблема в том, что в проекте нет go.mod, попробуй форкнуть его и добавить его, а после измени мейкфайл, но уже под свой форк.
Аноним 30/03/22 Срд 22:05:38 2326048 598
>>2326045
>в проекте нет go.mod
Есть в исходниках, которые мне анон скинул: http://0x0.st/oq98.gz
С ними такая же ошибка. Содержимое go.mod:
module github.com/macronut/pinocchio
go 1.18
require github.com/williamfhe/godivert v0.0.0-20181229124620-a48c5b872c73
Аноним 30/03/22 Срд 23:07:04 2326068 599
Как в го формировать урл из параметра и обработать?
Т.е. в питоне во фласке что-то типа
@blueprint.route("/url/<name>")
@blueprint.route("/url/<path:varargs>/<name>")

И могу обращаться к /url/123 и к /url/qwe/2345

Т.е. что-то вроде подкаталогов, которые формируются из бд/файловой системы
Аноним 30/03/22 Срд 23:35:07 2326094 600
Аноним 31/03/22 Чтв 10:30:39 2326239 601
>>2295927
Да, это с версия после 2021.1 такое ввели.

>>2295817
Чё-то не работает нихуя на люниксе для 2021.1.
Даже полное удаление options/other.xml не помогло.
Файлов .plist у меян нет. Что ещё забыл?
Аноним 31/03/22 Чтв 10:32:20 2326240 602
>>2326239
~/.java/.userPrefs/jetbrains $ rm -r goland/*
Во, там prefs.xml, похоже это
Аноним 31/03/22 Чтв 10:48:47 2326255 603
>>2326239
Так это для макоси скрипт. там даже в ссылке на гитхаб написано это
Аноним 31/03/22 Чтв 12:42:39 2326366 604
Аноним 31/03/22 Чтв 14:57:30 2326464 605
.png 7Кб, 194x259
194x259
Аноним 31/03/22 Чтв 16:53:04 2326591 606
Аноним 31/03/22 Чтв 17:21:12 2326609 607
>>2326591
Вот ты ебешься с этой хуетой уже пару дней, а что эта программа вообще делает? Разве у нее нет нормальных альтернатив?
Аноним 31/03/22 Чтв 17:24:55 2326613 608
>>2326609
A local DNS server let TCP connection resolve hostnames through proxy by return fake IP addresses
Альтернатив на линукс не нашел. На винде такое делает Proxifier:
>it is impossible to get a real IP address through a proxy so Proxifier has to assign placeholder (fake) IP addresses like 127.8.. which are only valid within the local computer
Задача резолвить через родные DNS прокси. Proxifier это умеет. На линуксе все что находил это проги, которые тупо шлют DNS запросы на указанные DNS сервера, к примера гугла. Это вообще не то что нужно.
Аноним 31/03/22 Чтв 19:12:26 2326721 609
>>2326613
Ну так пиши автору, хули ты до нас-то доебался? Либо код изучай.
Аноним 31/03/22 Чтв 21:04:00 2326776 610
Аноним 31/03/22 Чтв 21:05:22 2326777 611
Аноним 31/03/22 Чтв 21:07:03 2326778 612
>>2326777
Другого на линукс нет, к сожалению. А отсылку я все равно не понял, т.к. я не знаю язык Go. Я вообще никакой код не знаю.
Аноним 31/03/22 Чтв 21:10:09 2326779 613
>>2326778
Можешь попробовать, поднять SOCKS прокси и через iptables контролировать конечные домены.

Будет такая схема:
"Машина во внутренней сети"->"Внутренний управляющий сервер с прокси"->"Файрволл на сервере, который запрещает пакеты на определенные адреса"
Аноним 31/03/22 Чтв 21:23:54 2326787 614
>>2326779
>поднять SOCKS прокси
На роутере?
>контролировать конечные домены.
Что это значит?
Аноним 31/03/22 Чтв 21:33:58 2326794 615
>>2326787
>На роутере?
Да.

>Что это значит?
Хуевые формулировки использовал, но кратко, то iptables позволяет указывать правила обработки пакетов, значит ты можешь с помощью него указать, чтобы пакеты отправляемые на example.org перенаправлялись на условный 192.168.0.255, но я не помню может ли он работать с доменными именами.
https://www.opennet.ru/man.shtml?topic=iptables

Поднимаешь SOCKS5 прокси на роутере, настраиваешь iptables на нем, на внутренних машинах указываешь соединение через SOCKS5 и адрес роутера. Должно работать.
Аноним 31/03/22 Чтв 21:38:25 2326797 616
.jpg 32Кб, 891x136
891x136
.jpg 108Кб, 974x462
974x462
>>2326794
Может я не так объяснил? Мне надо чтобы DNS шли от провайдера сокса, как на первой картинке. А у меня получается только как на второй. И при этом все нужно делать на роутере, без каких-либо манипуляций на компе.
Аноним 31/03/22 Чтв 21:39:35 2326798 617
>>2326787
>>2326794
Возможно достаточно будет просто iptables, не помню, как передаются данные через роутер в интернет, возможно он (iptables) их тоже может обрабатывать.
Аноним 31/03/22 Чтв 21:42:56 2326800 618
>>2326797
>Мне надо чтобы DNS шли от провайдера сокса
Вообще нихуя не понял.
Аноним 31/03/22 Чтв 21:53:18 2326803 619
>>2326798
У меня щас следующая схема на роутере.
1. На порте 1234 висит проксификатор, в конфиге проксификатора прописан сокс тайланда. TCP трафик отправляется на порт 1234.
2. На порте 5555 висит DNS сервер, в конфиге DNS сервера прописан DNS cloudflare, UDP трафик отправляется на порт 5555.

Что изменить в этой схеме, чтобы было как на первой картинке: >>2326797

>>2326800
Ты тупой? Ты когда подключаешсья к интернету, то тебе DCHP провайдера выдает свои местные провайдерские DNS сервера. В данном случае провайдер Contabo Asia Private Limited
Аноним 31/03/22 Чтв 22:13:48 2326820 620
>>2326803
>1. На порте 1234 висит проксификатор, в конфиге проксификатора прописан сокс тайланда. TCP трафик отправляется на порт 1234.
SOCKS5 прокси поддерживает UDP, почему бы тебе просто не перенаправлять все запросы на него?
>2. На порте 5555 висит DNS сервер, в конфиге DNS сервера прописан DNS cloudflare, UDP трафик отправляется на порт 5555.
UDP трафик это не DNS трафик, у тебя потенциальная утечка данных в сети получается.
>Что изменить в этой схеме, чтобы было как на первой картинке
Для меня это просто набор адресов.
>Ты тупой?
Нет.
>Ты когда подключаешсья к интернету, то тебе DCHP провайдера выдает свои местные провайдерские DNS сервера.
Если бы он мне их выдавал, я бы смог без настройки DNS сервера на машине использовать доменные имена, но я так не могу, а значит мне никто не выдавал DNS.
Аноним 31/03/22 Чтв 22:23:29 2326822 621
>>2326820
>мне никто не выдавал DNS.
Твой провайдер всем клиентам говорит прописать днс гугла в настройках адаптера?
>SOCKS5 прокси поддерживает UDP
Не поддерживает значит.
Аноним 31/03/22 Чтв 22:25:49 2326824 622
Аноним 31/03/22 Чтв 22:40:02 2326829 623
>>2326824
>Поддерживает.
Ты похоже реально тупой. Если бы он поддерживал, то я бы не пытался несколько дней скомпилировать pinocchio. Иди читай как работает DNS.
Аноним 31/03/22 Чтв 22:48:01 2326830 624
>>2326829
>Ты похоже реально тупой.
Скорее всего не я.
>Если бы он поддерживал, то я бы не пытался несколько дней скомпилировать pinocchio.
Ты выбрал хуевый проект, который был заброшен 3 года назад, не имеющим документации, с очень низким уровнем кода, засрал половину линукс-треда в /s, пытался написать Makefile на основе другого, но не решился почитать документацию по сборке Go программ для openwrt, вместо использования поисковика ты срешь на двачах.
>Иди читай как работает DNS.
Расскажи.

Вместо решения проблемы, ты обвиняешь других, какой же ты бездарный.
Аноним 31/03/22 Чтв 23:40:49 2326847 625
>>2326830
>ты обвиняешь других
Где? Я просто написал, что ты тупой. Теперь ты еще и балабол, потому что я никого не обвинял.
Аноним 01/04/22 Птн 06:25:43 2326872 626
Аноним 01/04/22 Птн 12:25:21 2326992 627
Аноним 01/04/22 Птн 22:17:12 2327332 628
Аноним 01/04/22 Птн 22:29:34 2327335 629
Аноним 02/04/22 Суб 12:30:30 2327538 630
>>2320941
>>2320943
Если не сложно, можешь свой путь расписать вкратце?
Аноним 02/04/22 Суб 19:58:20 2327788 631
Аноним 02/04/22 Суб 19:59:49 2327789 632
>>2327788
Пошел нахуй долбоеб, ты заебал, тебя в /s попустили, теперь потом тут попустили, нахуй ты вообще продолжаешь срать?
Аноним 02/04/22 Суб 20:01:18 2327791 633
>>2327789
Ты что-то путаешь, это тебя опустили и сделали обиженным.
Аноним 02/04/22 Суб 21:10:00 2327828 634
>>2327788
Помогу, давай почту/телегу/скайп. Не бесплатно офк. Предоплата 75%
Аноним 02/04/22 Суб 21:14:31 2327832 635
>>2327828
Скинь карту куда переводить деньги.
Аноним 02/04/22 Суб 21:16:48 2327835 636
Аноним 02/04/22 Суб 21:18:31 2327837 637
>>2327835
Пиши здесь, все свои.
Аноним 02/04/22 Суб 21:21:37 2327840 638
>>2327835
Тет-а-тет это в жопу или в рот? Согласен отыметь тебя в жопу за помощь.
Аноним 03/04/22 Вск 11:39:10 2328062 639
кто-нибудь джуном в авито (и не только) пробовал устраиваться сейчас? как успехи?
Аноним 03/04/22 Вск 14:17:28 2328117 640
>>2328062
>авито
а они набирают сейчас?
В озон уже месяц на позицию стажера динамят по 10 различным вакансиям :( просто не отвечают на посланное резюме
Аноним 03/04/22 Вск 14:29:31 2328123 641
Стикер 255Кб, 400x487
400x487
>>2286748 (OP)
Зачем нужен этот ваш Го?

Вакансий 2,5 штуки на всё СНГ.

Бизнесс задачи он какие решает?
Аноним 03/04/22 Вск 14:57:00 2328144 642
>>2328117
посмотри на их сайте прямо вакансии, там голанг вакансий много, без указания middle/senior в тайтле (такие отдельно тоже есть) и без требования коммерческого опыта
Аноним 03/04/22 Вск 14:58:04 2328145 643
>>2328117
может в резюме дело, попробуй изменить, почекать гайды на резюме от HR, buzzwords побольше накидать, ожидаемую зп убрать
Аноним 03/04/22 Вск 15:00:03 2328147 644
>>2328123
за бугром го ценится и очень развит, посчитай сколько репозиториев с голанг на гитхабе и звезд по сравнению с другими проектами, зп до 600к доходят
но в снг для ждунов все плохо, это правда, да сейчас у всех все плохо
Аноним 03/04/22 Вск 15:12:51 2328150 645
>>2328123
Вакансий миллиарды.
Аноним 03/04/22 Вск 15:50:53 2328167 646
>>2327538
Ну что, работал в провинциальном аутсорсе, занимался бэкенд-разработкой - C++ использовался в проектах чисто по идеологическим причинам. В команде ни у кого не было почти никакого опыта бэкенд-разработки, поэтому учиться было, в общем-то, не у кого. Чтобы не было стыдно перед забугорным менеджментом, начал читать всякие учебники и статьи про базы данных и распределенные системы. Потом случилось так, что решил искать новую работу. Написал резюме generic "бэкенд-разработчика", среди языков написал в том числе Го, который на работе использовался около двух месяцев - забугорный менеджмент захлестнула микросервисная лихорадка. На следующий день получил чуть меньше десятка предложений, выбрал самое интересное, скрыл резюме :-). Поболтали с рекрутершей, отсобеседовался пару раз и готово - теперь я Го-программист. На собеседованиях была только БАЗА - никаких вопросов по фреймворкам и бредятины в духе "готовы ли вы отдать жопу за дядю Боба 100% покрытие тестами и принципы SOLID".
На изучении и понимание C++ потратил довольно много времени - на работе никаких стайлгайдов не было, приходилось самому искать "стандартные" способы делать всё по-нормальному. Наверное, теперь я всё, что было специфично для плюсов, забуду, но это какая-то польза от этих поиском была, я думаю.
Аноним 03/04/22 Вск 16:14:17 2328180 647
>>2328167
Перечитал пост, подумал, могло создаться впечатление, что резюме было в духе "и швец, и жнец" с максимумом баззвордов, но нет - оно было вполне честное, про каждую "технологию" писал продолжительность и контекст использования, уровень владения - типа, вот в этом хорошо разбираюсь, а с этим только использовал готовый SDK, и т. п.
Про Го была пара строчек, и честно написано про 2 месяца.
Те, кто набирает Гошников, не ждут КОММЕРЧЕСКОГО опыта 3 года именно на Го. В этом он выгодно отличается от условной Джавы, где для переката обязательно нужно будет дрочить Спринг и т. п.
Аноним 03/04/22 Вск 21:49:42 2328434 648
>>2328145
>может в резюме дело
3 пет-проекта, шарю за Redis, Docker, GHA. Ожидаемой зарплаты вообще не стоит, хочется хоть за еду поработать чтобы опыт получить))
Аноним 04/04/22 Пнд 17:05:39 2328853 649
>>2286748 (OP)
Приветствую гоферов. Подскажите - есть ли команда, скачивающая сторонние покеты, определенные в импорте? Или для каждого пакета надо использовать go install packagename?
Аноним 04/04/22 Пнд 17:48:04 2328882 650
Подскажите, как подобный таск решить на Го?
Дан целочисленный массив nums, выведите на экран true, если хотя бы одно значение встречается в массиве как минимум дважды, и false, если каждый элемент различен.
Сижу уже сутки и перебираю разные варианты, свои додумки и адаптации из гугла, но что-то пока херня выходит. Отмечу, что тут даже не слайсы, а базовый массив только..
Аноним 04/04/22 Пнд 19:28:36 2328972 651
>>2328123
>Вакансий 2,5 штуки на всё СНГ.
меня на одной работе ебут нахуй тебе несколько
Аноним 04/04/22 Пнд 19:48:14 2328992 652
>>2328972
Как будто на любую вакансию могут взять любую макаку со 100%-ой вероятностью.
Аноним 04/04/22 Пнд 19:50:52 2328995 653
>>2328853
go mod vendor
go get ./...
go mod tidy
выбирай какой команда нравится
Аноним 04/04/22 Пнд 23:01:34 2329095 654
подскажите нормальную статью\лекцию на ютубе про GPM схему и нутрянку горутин. Как их шедулит планировщик на потоки?
Аноним 05/04/22 Втр 08:58:15 2329208 655
Аноним 05/04/22 Втр 13:08:04 2329385 656
>>2286748 (OP)
Какие ваши мнения по поводу go после февральских событий.
Касательно тех, кто не уезжает. Да никто не знает
Будешь ли ты считаться стажёром, если имел много опыта на других языках, а гошку только начинает изучать?
Аноним 05/04/22 Втр 13:19:08 2329395 657
>>2329385
> Да никто не знает
То есть ты знаешь ответ и всё равно спрашиваешь?
Аноним 05/04/22 Втр 13:27:59 2329406 658
>>2329395
Ну а как без надежды на лучшее?
Аноним 05/04/22 Втр 13:30:45 2329407 659
Буду вкатываться в ваш гоуленг. Мимо 5 года опыта на разных япах
Аноним 05/04/22 Втр 13:40:20 2329409 660
>>2329407
И правильно, джунов в пщ не берут.
Аноним 06/04/22 Срд 00:38:06 2329957 661
>>2328882
В чём конкретно проблема?
Аноним 06/04/22 Срд 00:42:50 2329963 662
блять какова хуя в го делают поинтеры пиздец
Аноним 06/04/22 Срд 04:07:12 2329983 663
Аноним 06/04/22 Срд 11:38:03 2330131 664
>>2329957
Не понимаю, как писать. Нужно сравнивать каждый элемент с предыдущим, но я почему-то вылетаю за индексы + нужно сделать ветвление и возврат значения в лоб при совпадении
Аноним 06/04/22 Срд 11:52:20 2330139 665
>>2330131
самое просто решение что приходит в голову -- сделать set и пихать в него инты. Если при очередном инте там число уже есть --- возвращаешь true
Аноним 06/04/22 Срд 18:01:16 2330420 666
>>2330139
Ну вот почему он берет индекс массива, а не значение этого индекса? Что я делаю не так?
Аноним 06/04/22 Срд 18:01:55 2330421 667
Screenshot4.png 37Кб, 496x590
496x590
>>2330139
Ну вот почему он берет индекс массива, а не значение этого индекса? Что я делаю не так?

фастфикс, забыл скрин
Аноним 06/04/22 Срд 20:12:06 2330523 668
Ну что вы гоферы, юзаете уже дженерики на пректах? Доложите, как оно.
Аноним 06/04/22 Срд 20:39:14 2330561 669
>>2330421
for _, result := range(arr) это из голанга же конструкция? Не помню. Просто воспользуйся ей, зачем писать циклы через for ;;;, а еще у тебя ошибка во втором цикле j должен быть равен i, а не 1. Ну и ходить "в холостую", когда тебе интересен только есть-нет результат, такое себе.
Аноним 06/04/22 Срд 20:40:34 2330563 670
Аноним 06/04/22 Срд 20:46:03 2330567 671
>>2330421
>Дан целочисленный массив nums, выведите на экран true, если хотя бы одно значение встречается в массиве как минимум дважды
И еще задание перечитай, ты не правильно его понял, [ 1, 2, 1 ] - true, не обязательно они должны идти рядом.
Аноним 06/04/22 Срд 21:12:06 2330577 672
>>2330421
чото ты нето понаписал тут. Судя по тому что я вижу --- твой алгоритм всегда будет говорить true, т.к. ты вторым лупом опять по всему nums'у (за исключением 0 элемента) проходишь
Аноним 06/04/22 Срд 23:43:54 2330656 673
image.png 51Кб, 242x145
242x145
>>2328882
наивное решение это идти по массиву в лупе, внутри каждой итерации опять проходить по массиву и сравнивать текущий элемент с остальными ("остальной" - это если индекс внутреннего лупа не совпадает с внешним).
более правильно пройти по массиву, собирая мапу элементов и их количества. если количество больше 1, то выйти с false.
чисто технически можно собрать пройтись по лупу и собрать фильтр блума, потом пройтись по лупу и на каждый элемент-кандидат, на который луп отвечает "ну мб", делать фулскан как в первом случае например.
Аноним 06/04/22 Срд 23:45:30 2330659 674
>>2330656
>потом пройтись по массиву и на каждый элемент-кандидат, на который фильтр отвечает
сорян слишком думал о залупе ничего не могу поделать
Аноним 08/04/22 Птн 11:08:30 2331682 675
>>2330523
>>более правильно пройти по массиву, собирая мапу элементов и их количества
Не всегда можно просто взять и [в худшем случае] умножить потребление памяти твоей программой на x > 2. Если массив большой, и его можно менять, то правильнее будет отсортировать, а дальше тривиально.
Аноним 09/04/22 Суб 13:02:27 2332410 676
Аноны подскажите пожалуйста стыдно немного такие вопросы задавать, но я вот 1С-ник работаю в OZON программирую себе получаю денежку 23 лвл. Хочу перекатиться в GO за несколько месяцев прошел Go Tour и пункты Go Lerning продолжаю изучение, но чувствую что нехватает свободного времени сказывается.
Думаю что чем раньше начну решать задачи от бизнеса тем быстрее руки выпрямиться и быстрее скилл прокачивать буду.
Но пока чувствую, что знаний мало и пытаться перейти в другое направление засмеют.
Так вот в какой момент мне будет не стыдно пытаться перейти в другую команду? Как мне понять, что уже можно хотя бы на стажера идти проситься?
У меня же все есть опыт программирования на 1С ну это же хоть как-то должно тоже учитываться, что я чуть лучше стажера.

В общем какой-то сумбурный нервный поток мыслей надеюсь вы меня поняли
Аноним 09/04/22 Суб 14:27:37 2332456 677
>>2332410
Везёт тебе. Попроси тимлида перекатить тебя и всё
Аноним 10/04/22 Вск 09:30:30 2332868 678
Сап, аноны, такой вопрос, самая высокая средняя зп у джунов именно в golang
https://habr.com/ru/company/habr_career/blog/659343/
Вопрос: такую зп джунам платят, даже тем кто с нуля вкатился, за счет высокой востребованности? или те кто вкатываются обычно имеют опыт в других языках и за счет доп скиллов получают такую зп
Аноним 10/04/22 Вск 11:01:46 2332901 679
>>2332410
сходи к своему hrbp, скажи, что хочешь ротацию в гошечку. сюда-то что пришел?
Аноним 10/04/22 Вск 11:18:38 2332914 680
>>2332868
>те кто вкатываются обычно имеют опыт в других языках

Аноним 10/04/22 Вск 11:21:53 2332918 681
>>2332868
в целом, джу-гошник может ожидать себе зарплату повыше, чем скажем джун-пыхер, но и перекаты накладывают сдвиг на статистику
Аноним 10/04/22 Вск 11:31:19 2332923 682
почему так много либ для роутинга реквестов? Есть ли какой-то сакральный смысл в том, чтобы юзать дефолтный net/http, или же на gin +- тот же по производительности в плане хайлоада?
Аноним 10/04/22 Вск 12:03:42 2332945 683
>>2332923
каждый пыхер должен написать свой шаблонизатор
каждый джсер должен написать свой мини-фреймворк
каждый гошник должен написать свой роутинг

юзай что угодно популярное, для чего есть готовые миддлвари, которые не придется писать самому
net/http, gin, fiber, echo, etc
Аноним 10/04/22 Вск 13:33:28 2332995 684
Как сделать выполнение какого-то количества строчек одновременно?
Аноним 10/04/22 Вск 13:34:58 2332996 685
Аноним 10/04/22 Вск 13:36:49 2332998 686
>>2332996
Да. Нужно небольшой скрипт написать, в котором пару действий не обязательно выполнять последовательно.
Аноним 10/04/22 Вск 13:43:25 2333001 687
>>2332918
Собираюсь вкатиться в IT, опыта нет кроме школьного бейсика, матан и диффуры знаю, но технического образования нет
Golang подойдет или лучше другой язык выбрать для начала? Интересен бэкенд и важна зп
Аноним 10/04/22 Вск 22:24:47 2333398 688
>>2318134
что за зонды, можно подробнее?
Аноним 11/04/22 Пнд 05:51:15 2333522 689
Ананасы, как перестать думать как ооп даун на гошечке или смириться с постоянной копипастой?
Аноним 11/04/22 Пнд 06:21:09 2333523 690
>>2318134
1. Да, доставь пожалуйста моар инфы про зонд, и как его выпилить на этапе компиляции? Может, есть какие-то флаги?
2. По поводу исходников у зависимостей тоже не понял, как не скачиваются, они же нужны при сборке твоей программы, нет?
Аноним 12/04/22 Втр 04:26:40 2334130 691
>>2332868
вкатился с нулевым опытом работы за 35к стажером. потом повысили до 65к. с 11 месяцами опыта перекатился на 100к в другую контору. потом повысили до 150к. с 23 месяцами опыта перекатился на 260к в другую контору.
Аноним 12/04/22 Втр 15:25:24 2334444 692
>>2334130
Ты откуда? Если из России то куда ты устроился? Тут компаний, которая джунов набирает можно пересчитать по пальцам одной руки
Аноним 12/04/22 Втр 15:27:25 2334445 693
>>2334444
Мало компаний, но много вакансий.
Аноним 12/04/22 Втр 15:29:35 2334446 694
Аноним 12/04/22 Втр 17:15:35 2334538 695
>>2334130
сколько изучал язык до вката стажером?
Аноним 12/04/22 Втр 23:19:57 2334770 696
>>2334538
Да его за 2-3 дня выучить можно. Еще месяц на самые распространенные либы. Месяц на несколько проектов и при условии, что ты пишешь на другом языке - ты примерный мидл
Аноним 13/04/22 Срд 11:46:35 2334943 697
>>2334770
>пишешь на другом языке
на любом языке? Даже если на php?
Аноним 13/04/22 Срд 13:02:52 2334984 698
>>2334943
Особенно, если на php.
Аноним 13/04/22 Срд 18:39:57 2335145 699
Напомни-ка, почему ошибки вида cannot use foo (variable of type Qux) as Qux - это норма?
Аноним 13/04/22 Срд 19:21:47 2335166 700
>>2335145
Потому что катись-ка в свой петухон обратно.
Аноним 13/04/22 Срд 19:32:28 2335175 701
Аноним 13/04/22 Срд 19:40:00 2335182 702
>>2335175
Конечно мимо. Ты случайно прошёл мимо своего петухон-треда и попал сюда.
Аноним 14/04/22 Чтв 02:27:55 2335378 703
>>2334444
из москвы, вкатывался через один из двух маркетплейсов этой страны, о которых все слышали.
>>2334538
го тур только прошел. пошел на собес чисто ради интереса, в вакухе было написано без опыта гошки, так что не старался изучить. я в целом мог себе какой-нибудь говноскрипт на петоне написать и простенький проект на сишке/плюсах поредактировать и чем where от having отличается знал, примерно так.
Аноним 15/04/22 Птн 20:32:17 2336703 704
Я правильно понял, что на go особо проприетарный код не попишешь, чтобы никто не раскрыл содержимое? Потому что рантайм довольно внятные ошибки выдает, если они есть.
Аноним 15/04/22 Птн 20:48:00 2336717 705
>>2336703
На Go вообще никакого кода, кроме серверного, не попишешь.
Если ты увидел, что Go компилируется в исполняемые файлы, и провёл для себя аналогию с C++, то эта аналогия ошибочна. И тем более ошибочен вывод, что Go можно юзать для тех же задач, что и C++.
Аноним 15/04/22 Птн 21:38:41 2336760 706
>>2336717
Мне надо написать небольшую программу, в которой надо выполнять пару десятков действий (функций) одновременно. Выбрал этот язык из-за горутин. Какой компилируемый язык посоветуешь, чтобы нельзя было посмотреть содержимое самой программы?
Аноним 15/04/22 Птн 22:34:16 2336800 707
Аноним 16/04/22 Суб 03:31:50 2336915 708
>>2336760
Слушай, ну твоя программа будет простая же, я её просто декомпильну и разберусь че там как. Что у тебя вообще за желание "нельзя заглянуть внутрь" было бы желание на самом деле. Вирусню и ту разбирают как нехуй спецы, а ты залетышь вообще, подумой. Без негатива если че
Аноним 16/04/22 Суб 06:45:38 2336944 709
>>2336800
В расте удобно реализована многопоточность?
Аноним 16/04/22 Суб 11:25:04 2337020 710
>>2336944
>В расте удобно реализована
Раст неудобно реализован.
Аноним 16/04/22 Суб 13:12:06 2337127 711
>>2336703
Я не в курсе точно, но думаю можно покопаться в кишках и отключить вывод ошибок
Аноним 16/04/22 Суб 13:14:00 2337132 712
>>2336760
А если по сабжу, эту проблему решает клиент-серверная архитектура. Не знаю применимо ли в твоем случае, но вариант возможный
Аноним 17/04/22 Вск 22:12:07 2338244 713
Пагни. Поясните плз, в го есть аналог ссылок или конст ссылок?
Прост не могу понят когда есть смысл передавать объект через указатель.
Аноним 18/04/22 Пнд 14:15:28 2338478 714
Аноним 18/04/22 Пнд 14:16:12 2338479 715
>>2338478
>ссылке
указателю, офк
Аноним 19/04/22 Втр 10:19:25 2338945 716
изображение.png 35Кб, 766x526
766x526
>>2286748 (OP)
>есть на Русском
Чет не вижу на русском
Аноним 19/04/22 Втр 10:21:23 2338948 717
Аноним 19/04/22 Втр 10:21:37 2338949 718
изображение.png 45Кб, 750x455
750x455
А вообще решил вкатиться в go для написания серверного приложения, так как на крестах всё это сложно и долго. Нашёл вот такой пример tcp клиента, но он крашится, если сервер недоступен. Как фиксить?
Аноним 19/04/22 Втр 14:04:39 2339128 719
>>2338949
Ладно, с крашем я разобрался. Но теперь другая проблема, после того как клиент отключается, сервер уходит в бесконечный цикл
Аноним 20/04/22 Срд 08:20:54 2339657 720
Дайте рецепт по деплою го приложух с базой в докере!
Аноним 20/04/22 Срд 10:13:37 2339690 721
Аноним 20/04/22 Срд 12:14:36 2339848 722
>>2339657
>Дайте рецепт
Хероку? Миллион гайдов на ютубчике
Аноним 22/04/22 Птн 14:49:06 2341631 723
>>2286748 (OP)
Как там ГО поживает? Ещё встаёт с кален после обосрамса с неотключаемым лагучим сбором мусора или даже не пытается?
Аноним 22/04/22 Птн 16:06:27 2341704 724
>>2286748 (OP)
сап, какой язык взять для изучения(сейчас работаю говнарем)? был минимальный опыт c и java. Смотрю в сторону раст, но его синтаксис))))
Аноним 23/04/22 Суб 21:56:19 2342827 725
>В обязательном порядке проходим Go Tour: https://tour.golang.org/welcome/1 (есть на Русском)

Где там на русском?
Аноним 24/04/22 Вск 06:54:23 2342932 726
>>2338949
>игнорируем ошибки
>подключаемся один раз перед циклом и из цикла никогда не выходим
мне кажется всё должно работать))
Аноним 24/04/22 Вск 09:52:58 2342965 727
>>2341704
Какой язык на рынке труда востребован, тот и изучай
Аноним 24/04/22 Вск 18:58:10 2343292 728
>>2332998
var wg sync.WaitGroup
for i := 0; i < 5 (например); i++ {
wg.Add(1)
go func(sync.WaitGroup){
yourScript()
wg.Done()
}(wg)
}
wg.Wait()
Аноним 24/04/22 Вск 18:59:24 2343295 729
>>2333522
В каких кейсах приходится копипастить? В принципе редко возникала такая необходимость. А сейчас еще и дженерики подвезли
Аноним 29/04/22 Птн 01:01:11 2346354 730
Почему нет автокаста или я еблан и не разобрался как его включить? Заебывает постоянно писать int64 перед каждым числом
Аноним 29/04/22 Птн 01:16:06 2346355 731
>>2346354
Это называется строгая типизация
inb4(1): нет, я не перепутал со статический
inb4(2) да, баззворд
Аноним 29/04/22 Птн 01:19:54 2346356 732
>>2346355
хуета
нормальные пацаны по кайфу кастуют че хотят и во что хотят
Аноним 29/04/22 Птн 10:20:46 2346474 733
>>2346356
>нормальные пацаны по кайфу кастуют че хотят и во что хотят
Тред волшебников на другой борде.
Аноним 01/05/22 Вск 01:04:51 2347771 734
А есть на го какие нибудь удобные ORM либы? Посмотрел видосы, все хуярят чистыми SQL. А как тогда всякие фильтры писать?
Аноним 01/05/22 Вск 01:29:39 2347785 735
>>2347771
> А как тогда всякие фильтры писать?
По твоему, на ORM можно сделать то, чего нельзя на чистом SQL?
Аноним 01/05/22 Вск 04:39:44 2347801 736
>>2347771
squirrel или другие билдеры запросов, если не хочеш руками.
Аноним 01/05/22 Вск 08:08:39 2347821 737
>>2347785
Он, видимо, ORM-фанатик, пришедший из какой-нибудь Джавы или Пыхи. На самом деле, положняк по орм такой:
ORM придумали программисты, которые не хотели "заморачиваться" с sql-запросами.
Подойдёт для "небольших" проектов (до нескольких тысяч пользователей.)
С ORM проще, пока запросы простые. Если нужна оптимизация и хайлоад, пишем запросы руками.
Вот и решайте.
Аноним 01/05/22 Вск 21:04:58 2348202 738
>>2347771
GORM?
Но ораторы выше правы - учи чистый SQL
Аноним 01/05/22 Вск 22:13:32 2348243 739
>>2348202
>>2347821
Вы о чем вообще? ORM невозможно пользоваться в принципе, если не знаешь, как примерно такие же запросы, которые делает ORM, писать на голом SQL. ORM-макака без знания SQL это что-то из разряда невероятного, я такое даже вообразить не могу.
Аноним 01/05/22 Вск 23:27:02 2348269 740
>>2348243
> Go невозможно пользоваться в принципе, если не знаешь, как примерно такие же команды, которые делает Go, писать на голом ассемблере. Go-макака без знания ассемблера это что-то из разряда невероятного, я такое даже вообразить не могу.
Аноним 02/05/22 Пнд 06:06:40 2348370 741
>>2348243
> ORM-макака без знания SQL
Так ОРМ-ки, написанные сильными программистами, и порождают орды макак без знания эскьюэл.

0. Тяжелые времена порождают сильных программистов.
1. Сильные программисты создают фреймворки.
2. Фреймворки порождают слабых программистов.
3. Слабые программисты порождают тяжелые времена.
Аноним 02/05/22 Пнд 20:36:13 2348843 742
>>2348243
>ORM-макака без знания SQL это что-то из разряда невероятного, я такое даже вообразить не могу.
хз, вполне себе представляю такого недо-прогера. Решил что "Ептыть, а нах мне этот ваш селект инсерт, ОРМ делает бррр бррр..." и всё
Аноним 02/05/22 Пнд 21:44:21 2348870 743
>>2348370
сейчас какие времена ?
Аноним 03/05/22 Втр 05:32:19 2348981 744
>>2347821
>>2348243
>>2348370
>>2348843
я конечно не настаиваю но во прос был по-моему в том, чтобы писать не тупа круд запросы, а фильтры, и в этом случае нужно как бы не внедрять инжекшоны и штобы это не плодило охуенно неподдерживаемый код
Аноним 03/05/22 Втр 05:51:36 2348985 745
>>2348981
Так фильтры — это часть круда, всегда так было же.
У тебя есть эндпоинт типа GetAllGovnoName и там нужна фильтрация, стандартная история. Есть куча способов запилить приличный API для фильтров без ОРМок (каким боком они вообще тут?). Естественно, и без всяких инъекций, если у тебя есть хоть одна извилина. На го это проще потому что строгая типизация.

>>2348870
Настают тяжёлые. Так что всем быстро учить сишку с асмом, я не шучу.
Аноним 03/05/22 Втр 12:17:55 2349196 746
>>2348981
>штобы это не плодило охуенно неподдерживаемый код
в чем SQL запросы "охуенно неподдерживаемый код"?
или я не понял о чем речь...
Аноним 03/05/22 Втр 15:33:22 2349368 747
>>2349196
ну в зависимости от бизнес-требований это не "sql запросы", а 700 строк на генерацию одного запроса и собирание аргументов к нему по маленьким кусочкам и в какой-то момент это начинает внезапно ебать базу
Аноним 03/05/22 Втр 18:38:31 2349483 748
>>2349368
>700
цифра из головы, или жизненные примеры есть?
Ни одного такого большого запроса не видел.
Да и элементарно, если бы ОРМки были быстрее и юзабельеней, то в вакансиях требовали бы их, а не знание SQL
Аноним 04/05/22 Срд 00:04:29 2349641 749
>>2349483
из головы. в сумме там больше, но там три запроса в одной ручке и в каждом условия билдятся руками со всем соответствующим уровня часть форматстрингов начинается пробелами, а другая часть заканчивается.
Аноним 04/05/22 Срд 11:09:31 2349802 750
Какой положняк по быстродействию последний версий go?
Java всё еще быстрее считает числа?
Аноним 04/05/22 Срд 21:28:48 2350261 751
Как в goland выключить удаление неиспользуемых переменных и импортируемых пакетов? А то пиздец, импортировал пакет, переключился на браузер, зашел обратно и вижу, что эта мразь удалила импорт!
Аноним 05/05/22 Чтв 10:11:56 2350477 752
image.png 8Кб, 600x113
600x113
Аноним 05/05/22 Чтв 12:11:22 2350549 753
>>2286748 (OP)
Аноны, а почему в Го какая-то не понятная ебка с импортами? Будем пилить монолит по тиху и соответственно делать микросервисы на го, но тут я удивился, что НЕЛЬЗЯ ПРОСТО БЛЯТЬ ВЗЯТЬ И СДЕЛАТЬ ИМПОРТ, это вообще как? Почему я должен ебаться с какой то инициализацией модулей, я ни понимаю, нормальных гайдов как вот образно делать импорты как в питончике ? У всех в импортах какие-то репозитории, пакеты, бля, я просто хочу для начала иметь мейн откуда буду управлять остальными файлами, хоть как-то бля, но я в тупую не понимаю, можно по простому, для тупых, как работают в го импорты ?
Аноним 05/05/22 Чтв 12:41:04 2350577 754
>>2350549
"Ебаться с модулями" - это создать файлик на 5 строчек и пару папок. Уверен, что не осилишь?
Относительных испортов нету, да.
Аноним 05/05/22 Чтв 13:06:50 2350588 755
>>2350549
>НЕЛЬЗЯ ПРОСТО БЛЯТЬ ВЗЯТЬ И СДЕЛАТЬ ИМПОРТ
Философия golang - Data-Oriented programming, тебе дают минимум возможностей для выполнения операций с данными, привычный импорт это высоко-абстрактная фишка
Аноним 05/05/22 Чтв 13:22:17 2350598 756
>>2350577
Не, стой, чтобы просто использовать код из файла N мне надо всю папку инициализировать как модуль ?

>>2350588
Ок, ладно,
Аноним 05/05/22 Чтв 16:50:11 2350738 757
>>2286748 (OP)
В каких языках есть подобные механизмы len, cap для слайсоподобных структур? Когда при добавлении элемента увеличивается cap в 2 раза
Аноним 05/05/22 Чтв 18:34:35 2350825 758
>>2350738
В любом массиве (контейнере) в любом языке программирования. Можешь написать свою реализацию и расширять на 1, 2, n элементов каждый раз при добавлении нового, оптимальность этого решения будет зависеть от конкретного случая
Аноним 06/05/22 Птн 11:35:24 2351151 759
>>2350738
>В каких языках есть подобные механизмы len, cap для слайсоподобных структур?
Плюсы мб? По сути слайс = динамический массив. Я не шарю за внутренность динамических массивов в плюсах, но думаю что идеология похожая.
Аноним 06/05/22 Птн 19:43:19 2351462 760
Аноним 06/05/22 Птн 23:04:52 2351628 761
Насколько сложно вкотиться со знанием C++ и JS?
Аноним 07/05/22 Суб 00:23:35 2351677 762
>>2351628
>со знанием C++

Если ты действительно знаешь С++, то легко
Аноним 07/05/22 Суб 11:25:34 2351783 763
Стоит ли ставить Линукс и привыкать к нему если я хочу вкатиться в GO?
Аноним 07/05/22 Суб 15:37:44 2351892 764
>>2351677
А что схожее с плюсами есть? В чём отличия? Насколько вообще база языка больше/меньше плюсовой? А самое главное надо ли мне это?
Аноним 07/05/22 Суб 20:15:16 2352041 765
изображение.png 13Кб, 495x276
495x276
Наконец то дженерики!
Аноним 07/05/22 Суб 20:20:24 2352051 766
>>2352041
Не очень понимаю надо ли в Unmarshal ставить & перед data
Обычно все ставят, но и без этого работает. Какие подводные камни тут?
Аноним 07/05/22 Суб 21:06:51 2352078 767
Работы на го для джуна что-то совсем нет.
Аноним 07/05/22 Суб 21:18:10 2352084 768
>>2352078
А я тебя предупреждал.
Аноним 07/05/22 Суб 21:41:18 2352097 769
>>2352051
если передавать T вместо *T, то создавать объект через new не обязательно и можно просто объявить поинтер и анмаршал сам аллоцирует, если жсон корректный.
https://go.dev/play/p/wvfj9O9TdfG
Аноним 07/05/22 Суб 21:41:56 2352098 770
>>2352097
>передавать T вместо
передавать ★★T вместо
Аноним 07/05/22 Суб 21:54:28 2352112 771
>>2351783
если не хочешь ебаться с докером под WSL на винде --- да
Аноним 07/05/22 Суб 21:56:45 2352116 772
>>2351783
ну линекс апреори нужно ставить
а так знание баша помогает спастись от ручного тестирования, когда ты можешь скриптом прогнать сотню разных запросов по двум версиям сервиса и сравнить их вывод.
плюс на собесах могут спросить по деталям, т.к. сервера всё-таки на линексах.
можно конечно на венде теорию дрочить но погружение все-равно лучше.
Аноним 07/05/22 Суб 22:17:43 2352129 773
>>2352097
Аа понял про поинтеры, спасибо
Аноним 08/05/22 Вск 07:24:45 2352222 774
>>2351677
>Если ты действительно знаешь С++
Ну и что сложного в мире GO, что нужно обязательно байты дрочить 10 лет? В Гошку с нуля легко вкатываться.

Указатели? Гошка сама преобразовывает значение в указатель незаметно для программиста. Работа с памятью? Гошка эффективно удаляет неиспользуемый стек из памяти. Типы? Насмешил, в гошке очень-очень простая система типизации, автокастинг это супер, ошибки выдаются понятно и просто.
Каналы? Ну каналы хз с чем сравнить. Горутины/каналы/многопоточность вот на что стоить уделить внимание, ящитаю

>>2351783
Английский язык и погружение в Linux это первое, что делает программист
Аноним 08/05/22 Вск 07:25:19 2352223 775
>>2352041
>any
Заебись, приплыли в мир JS
Аноним 08/05/22 Вск 07:26:15 2352224 776
>>2352078
Да и на мидла нет нихуяшеньки. в РФ остались востребованным только сеньоры. рынку пиздец сейчас почти по всем языкам
Аноним 08/05/22 Вск 08:29:14 2352237 777
Захотел тут вкатиться в Go и чуть со скуки не помер. Какой же это скучный язык! Рекомендую программировать на нём только перед сном.
Аноним 08/05/22 Вск 08:54:20 2352240 778
>>2352237
Всё так, я тоже не рекомендую, ни в коем случае.
Это же американский язык для Гугла, а у нас гугла нет. Так зачем он?
НИНУЖОН
Аноним 08/05/22 Вск 12:17:51 2352403 779
>>2352222
>сама преобразовывает значение в указатель незаметно для программиста
вообще пиздец, нахуй так делать, поначалу непонятно что происходит

Под "действительно знаешь С++" я подразумевал также знание алгоритмов и структур данных, которые были написаны челом на С++, ООП и работу с базовыми либами и памятью. Так что это просто хороший бекграунд для вката в го.
Аноним 08/05/22 Вск 13:48:03 2352471 780
>>2352403
В Go даже списков нет из коробки
Всего три структуры данны: array, slice, map
Ну охереть вообще
Аноним 08/05/22 Вск 14:30:25 2352512 781
>>2352471
А к чему это, я не понял просто?
В любом случае деревья, хэши и другие структуры данных нужно уметь писать под свои задачи
Аноним 08/05/22 Вск 16:07:06 2352609 782
>>2352471
>три структуры
всм, stack и heap'а же еще есть, но видимо мало кто об этом знает
Аноним 08/05/22 Вск 17:33:25 2352703 783
>>2352609
Это не те структуры, которые программист использует для решения задач
Аноним 09/05/22 Пнд 11:38:38 2353092 784
>>2352112
>>2352116
>>2352222
У меня просто ноут я уже наверное часов 20 убил на попытки поставить на него убунту но она просто намертво виснет не доходя до установки все советы перепробовал уже сил никаких нетю
Сильно много я потеряю если останусь на винде?
Аноним 09/05/22 Пнд 13:05:06 2353132 785
>>2353092
звучит как типичная проблема с флешкой
Аноним 09/05/22 Пнд 13:49:07 2353163 786
>>2353132
Кстати вполне возможно флешка то старенькая.
Спасибо анон сегодня схожу новую куплю надеюсь поможет.
И еще вопрос какой Линукс лучше ставить? Убунты мне с головой для начала наверное хватит, да?
Аноним 09/05/22 Пнд 14:50:29 2353196 787
Аноны, а как через tcp обозначит тип запроса? К примеру я хочу послать два числа и получить их сумму. Или произведение и тд.
Аноним 09/05/22 Пнд 15:55:23 2353225 788
>>2353196
Послать тип в самом запросе вместе с числами. Никаких "заголовков" нет.
Аноним 09/05/22 Пнд 15:58:54 2353226 789
>>2353225
Как-то сложно. Нужно будет потом еще строку разбирать получается. А можно для этого использовать например http, или что другие используют? Я просто совсем ньюфаг в go. Хочу например из qt передать на сервер строку, число и массив булевых, как такое реализуется?
Аноним 09/05/22 Пнд 20:38:16 2353476 790
Аноним 09/05/22 Пнд 21:35:30 2353488 791
Пишу свой первый пет-проектик и появился вопрос. Вижу что часто используют паттерн репозиторий. И вроде все становится хорошо, до тех пор, пока данные не начинают взаимодействовать друг с другом. Приведу искусственный пример: пусть программе нужно хранить что-то связанное со странами и с городами. Для них заведены отдельные репы.

Если я хочу добавить новый город, то мне нужно сначала сходить в репу со странами, удостовериться, что там есть нужная страна, а после в репу с городами добавить город+его страну. Но если у меня под капотом какой нибудь постргес, то я бы мог просто для таблицы с городами указать страну как foreign key одним запросом добавлять город, получилось бы более консистентно и скорее всего производительнее. Однако тогда, на мой взгляд, логика растекается и не получается изолировать одну сущность в одном классе.

Расскажите, как в таких ситуациях поступают умные дяди
Аноним 09/05/22 Пнд 23:32:06 2353573 792
>>2353488
не еби мозги и не разделяй репозитории по сущностям, разделяй по агрегатам.
я вообще не понимаю эту еботу с репозиториями на каждый чих. это какая-то ООП/клин код хуета. я обычно делаю одна БД = один репозиторий. вся более комплексная логика - обертка над ним. чтобы тестить зависимые пакеты вы можете интерфейсы и моки создать только с теми методами, что нужны. в чем я не прав?
Аноним 10/05/22 Втр 10:49:54 2353694 793
>>2353132
Спасибо анон убунта встала дело и правда было в флешке
Аноним 10/05/22 Втр 14:19:03 2353834 794
Какие есть тесты с задачками на кишочки языка? Не просто теория, а с конкретными сниппетами кода? Ну типа тех тестов что по ЖС на learn.javascript.ru. "Tour of Go" не предлагать - это введение и оно мной пройдено.
Аноним 10/05/22 Втр 14:33:02 2353845 795
>>2353834
Типо литкод порешать?
Аноним 10/05/22 Втр 14:46:28 2353851 796
>>2353845

Не. Не алгоритмические, а на тонкости языка. Типа хитро..банной лапши из промисов и setTimeout-ов на ЖС, на прототипы и т.д. То что спрашивают примерно на среднем голанг собесе. А литкод решается на любом языке.
Аноним 10/05/22 Втр 16:32:26 2353935 797
Аноним 11/05/22 Срд 08:47:11 2354357 798
>>2353476
Можно поподробнее?
Аноним 11/05/22 Срд 09:06:10 2354363 799
>>2354357
Отправляй JSON на сервер
Аноним 11/05/22 Срд 19:05:48 2354828 800
изображение.png 10Кб, 454x119
454x119
изображение.png 14Кб, 501x137
501x137
изображение.png 3Кб, 284x117
284x117
>>2354363
Что-то не работает. Посылаю на сервер такую строку
> "{\n \"CPU\": \"Intel\",\n \"Motherboard\": \"MSI\"\n}\n"
На пиках код на сервере. Выдает пустые кавычки. На 3 пике вывод, если записывать в буфер.
Аноним 11/05/22 Срд 19:08:10 2354829 801
>>2354828
Уже разобрался, почему то программе не нравилось, что имена переменных в структуре с маленьких букв.
Аноним 12/05/22 Чтв 00:20:42 2354987 802
Есть смысл писать отдельное серверное приложение для работы с БД, или можно обращаться к БД напрямую с клиента?
Аноним 12/05/22 Чтв 00:24:54 2354988 803
>>2354987
К БД напрямую с клиента обращались в нулевых, тогда и серверную бизнес-логику писали на хранимых процедурах. Сейчас считается плохим тоном, типа плохо масштабируется. Но смотря что тебе нужно.
Аноним 12/05/22 Чтв 07:52:17 2355049 804
>>2354988
Дак может ты напишешь как надо и не будешь пальцы гнуть, вась? Я написал что мне нужно, разуй зенки и ответь нормально.
Аноним 12/05/22 Чтв 07:59:03 2355051 805
>>2355049
>может ты напишешь как надо
Зачем?
>не будешь пальцы гнуть
Он их гнул?
>написал что мне нужно
Уверен?
>ответь нормально
Зачем?
Аноним 12/05/22 Чтв 08:16:57 2355058 806
>>2355049
Ты с какой колонии такой дерзкий? Сидел? Родину любишь?
Аноним 12/05/22 Чтв 20:36:57 2355398 807
Аноним 13/05/22 Птн 01:44:05 2355529 808
Думаю вкатиться в го, для начинающего норм вариант? В 24 года не поздно ещё? Линуксом интересуюсь, как-то давно проходил курс по питону со всякими базовыми алгоритмами, проблем не возникало, английский хорошо знаю, есть техническая вышка не айтишная. Привлекает тем что вроде бы вакансий немного, но и конкуренция меньше чем в том же фронте, более узкое направление. На крайняк рассматриваю QA.
Аноним 13/05/22 Птн 03:57:51 2355539 809
кстати, кто щупал gioui.org? удобная штука?
Аноним 13/05/22 Птн 04:05:27 2355542 810
>>2354987
по-хорошему между бд и юзером должна быть прослойка, чтобв не было робинов-брось-таблицу
также это позволит писать отдкльные методы для отдельных обращений, мутя всё что нажо под капотом, за красивым методом апи
Аноним 13/05/22 Птн 06:19:53 2355555 811
>>2355539
>gui на go
Забудь
>Думаю вкатиться в го, для начинающего норм вариант?
Нет, пиздуй на питоне года 3 работать.
На Го джунов в принципе не может быть.
Аноним 13/05/22 Птн 13:23:33 2355694 812
>>2355555
> забудь
почему? и на каких языках тогда писать гуй?
Аноним 13/05/22 Птн 14:09:59 2355715 813
Аноним 13/05/22 Птн 15:10:46 2355757 814
>>2355694
>и на каких языках тогда писать гуй?
На любых, которые имеют адекватные фреймворки для гуя, а не костыльные, как в го.
Аноним 13/05/22 Птн 15:21:34 2355762 815
35 лет.
12 лет пишу на пыхе и жс в одной конторе все это время.
Хочу вкатиться в го. Перепишу некоторые части с пыха на го. Таким образом получу опыт коммерческой разработки на го. Реально так дорасти до мидла и найти работу?
Аноним 13/05/22 Птн 15:39:55 2355776 816
>>2355757
отлично, а почему в го костыльные?
Аноним 13/05/22 Птн 15:46:24 2355781 817
>>2355776
Потому что появились недавно, не обкатаны в проде и сделаны для языка, принципиально не преднащначенного ни для чего, кроме микросервисов.
Аноним 13/05/22 Птн 17:04:21 2355858 818
>>2355776
Сравни "нативный" WPF/UWP и Гошные да подумай сам
Аноним 15/05/22 Вск 10:31:10 2356751 819
Что почитать на тему взаимодействия клиента и сервера? Как наладить их взаимодействие? Вот есть десктопное приложение, мне слать запросы по tcp или по http на сервер, написанный на го?
Аноним 15/05/22 Вск 10:49:39 2356762 820
>>2356751
>Что почитать на тему взаимодействия клиента и сервера?
Википедию.
>Как наладить их взаимодействие?
По протоколу.
>Вот есть десктопное приложение, мне слать запросы по tcp или по http на сервер, написанный на го?
См. 2.
Аноним 15/05/22 Вск 14:39:59 2356849 821
Аноним 15/05/22 Вск 15:47:50 2356878 822
Аноним 16/05/22 Пнд 13:03:33 2357348 823
image.png 12Кб, 562x85
562x85
>>2286748 (OP)
Боже блять... ну кто и нахуя придумал вот это? Сука, многое стерпеть в ГО могу, но это выше моих сил блять. Имел опыт с JS/TS, Питоном и Жавой - везде по-человечески отрабатывала обработка ошибок
Как вы это жрете нахуй?
Аноним 16/05/22 Пнд 13:14:02 2357352 824
>>2357348
>Как вы это жрете нахуй?
Есть идеи лучше?
Аноним 16/05/22 Пнд 13:30:52 2357358 825
>>2357348
Деды с процедурной парашей в 70-х тоже так делали.
Аноним 16/05/22 Пнд 21:52:49 2357575 826
>>2357348

исключения убоги, усложняют понимание кода и замедляют его

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

>>2357348
есть, но пропзал отвергли
strconv.Atoi(str)? - делает return c дефолтными значениями и ошибками
strconv.Atoi(str)! - паникует в случае ошибки
Аноним 16/05/22 Пнд 22:07:47 2357582 827
>>2357575
>strconv.Atoi(str)! - паникует в случае ошибки
Тогда лучше так, v, ! = strconv.Atoi(str)
Все равно говно.
Аноним 17/05/22 Втр 05:47:08 2357683 828
>>2357348
Просто запомни, что все ф-ции в гошке возвращают два параметра
Аноним 17/05/22 Втр 11:10:25 2357791 829
Утверждали что все функции в гохе принимают параметры по значению (при передаче в функцию происходит копирование), соответственно если ты хочешь чтоб они проходили по ссылке то передавай указатели.

Когда запускаем горутины через go - та же тема, но почему в случае каналов мы передаем сразу канал без всяких указателей, но работаем все равно с одним и тем же каналом, т.е. копирований не происходит?

https://ideone.com/Uc8M2U
Аноним 17/05/22 Втр 19:43:46 2358205 830
image.png 103Кб, 1515x675
1515x675
динамикодрисня как есть
Аноним 18/05/22 Срд 07:03:07 2358346 831
>>2358205
Вкатыш спок.
Из динамичного поведения там только автопередача указателя, но не наоборот
Аноним 18/05/22 Срд 12:20:15 2358418 832
ну то есть получается, go по сути как c++ только поумнее, удобнее и более зумерский? я просто щас учу его, хочу в бэк, но стажировки и работа на го это пиздец, надо знать нихуя себе сколько
Аноним 18/05/22 Срд 12:38:36 2358430 833
>>2358418
>go по сути как c++
Нет.
Аноним 18/05/22 Срд 12:54:08 2358444 834
Аноним 18/05/22 Срд 13:05:29 2358455 835
>>2358444
Далеко в плане он не так хорош?
Аноним 18/05/22 Срд 15:04:04 2358534 836
>>2358418
Лолшто
Go это реинкарнация старого C
Аноним 18/05/22 Срд 15:07:33 2358537 837
Go пытается на двух стульях усидеть.
И в байтах поковыряться и в вебе-хуебе джсоны маршировать в одну строчку
Аноним 18/05/22 Срд 15:08:29 2358539 838
>>2358537
И збс жеполучается
Аноним 18/05/22 Срд 15:10:43 2358540 839
>>2358539
Есть одна фундаментальная проблема.
Даже ДВЕ.

1) РЕДКИЕ, обновления
2) Язык всё никак не созреет. Дженерики за год добавили, заибися. А комьюнити много о чём просит, всё это игнорят.
Аноним 18/05/22 Срд 15:11:18 2358541 840
>>2358537
Нет, не пытался никогда, он всегда претендовал исключительно на веб-жсоны. То, что го компилится в экзешники, ещё ничего не значит.
Аноним 18/05/22 Срд 15:12:59 2358542 841
>>2358541
Ну а как-же все эти вскукареки про Http-Траффик, каналы и прочее? Оно ведь не нужно в вебе
Аноним 18/05/22 Срд 15:50:56 2358567 842
>>2358542
Нужно, если ебёшься с высоконагруженными микросервисами, ты в любом языке для бэка будешь аналогично ебаться. А можешь писать на го круды и не столкнуться с этим никогда.
Аноним 18/05/22 Срд 15:58:52 2358573 843
>>2358567
А теперь главный вопрос.
Насколько в гошке популярны круды и фреймворки для веба?
Чтобы раз-раз как в джанго\рельсах и готово?
Какой процент вакансий? А ОЗОН?
Аноним 18/05/22 Срд 16:31:31 2358606 844
>>2358573
Вот да! Выучить всегда можно язык, вопрос в востребованности, хз просто есть ли смысл учить и дальше
Аноним 18/05/22 Срд 16:37:56 2358608 845
>>2358606
Все в один голос пишут про "микросервисы" как подавляющее применение в РФ. Хз что там ОЗОН намешал.

Перекладывать жсон на JS куда приятнее и проще. И либ проше
Аноним 18/05/22 Срд 16:42:35 2358612 846
>>2358608
хз, особой разницы такой не заметила, хотя всего то на джанго и ноде писала
Просто разница возможно в скорости. Ну и еще за время изучения заметила, что от го так и веет мыслью мол "я дам тебе пизды, если будешь тратить память компа на не пойми что"
наверно все же стоит продолжить изучение, язык только-только обороты набирает
Аноним 18/05/22 Срд 16:44:10 2358614 847
>>2358612
>язык только-только обороты набирает
Не знаю, по статистике падаю вакансии с марта очень быстро.
В полтора раза уменьшилось за один только апрель.
Джуном вкатиться нереально, но я бекендер тоже на ноде
Аноним 18/05/22 Срд 16:47:11 2358618 848
https://ideone.com/09Jk5B
вот бичевский метод расширения динамического массива, норм? или его лучше по-другому имплементить? И как его через дженерики для произвольного типа написать? interface{} нахуй
Аноним 18/05/22 Срд 16:47:50 2358619 849
>>2358614
просто щас открыла ххру
на всю страну 37 вакансий на го без опыта
от 1 до 3 лет - 448
от 3 до 6 лет - 653
Джуны никому не нужны короче
Аноним 18/05/22 Срд 16:48:00 2358620 850
Аноним 18/05/22 Срд 16:51:44 2358623 851
>>2358618
Дженерики с типом constraint
Аноним 18/05/22 Срд 17:00:57 2358630 852
image.png 52Кб, 941x741
941x741
Слабо растёт
Delphi быстрее стреляет
Аноним 18/05/22 Срд 17:07:29 2358634 853
Аноним 18/05/22 Срд 17:17:23 2358646 854
>>2358634
Да это бред. Python по факту сейчас никому не нужен
Аноним 18/05/22 Срд 17:18:52 2358647 855
>>2358646
Тут есть рациональное зрено, но все не совсем так
Пистон нужен в машобчике и датасоенсе. Но в беке его позиции слабы сейчас. Та же гошка стремительнее развивается
Аноним 18/05/22 Срд 17:23:22 2358650 856
>>2358647
Вот, ты прямо телепат. Я именно со стороны "обычного" бекенда и пишу. В "обычном" бекенде без машоба\нейронки\дс там даже руби может потеснить
Аноним 18/05/22 Срд 17:29:09 2358651 857
>>2358650
Как давно в Питоне? Сколько зпка? Думаешь в гоху идти?
Аноним 18/05/22 Срд 17:37:25 2358653 858
>>2358651
Последний раз была 40к на питоне.
Потом свалил в ноде, сейчас 150к. На питоне сильнее ебали на собесах, вот и забросил.
Сейчас думаю вернуться в питон (заново учиться) или в гошку вкатываться
Аноним 18/05/22 Срд 17:38:18 2358654 859
>>2358653
Ты фуллстек? Где нашел работу в ноде? Там вакух еще меньше чем в питоне, в основном это фуллстеки.
Аноним 18/05/22 Срд 17:40:04 2358656 860
>>2358654
Я редкий зверь, чистый бекенд на ноде.
Ебать какое гавно я видел. После этого всё желание в JS/TS развиваться НЕТ. Не нравится, всё очень плохо. JS раковый и только для фронта сойдёт, на нём писать нельзя, даже TS не спасает. Это не тот инструмент для бекенда, я ошибся
Аноним 18/05/22 Срд 17:41:53 2358657 861
Вся работа JS backend это пердолинг с самим языком и костыление. Всё хорошо на "пет-проектах" и на простых приложениях (которых не существует в бизнесе). Мне уже go нравится больше, но вкатываться рано, даже error handling не пугает
Аноним 18/05/22 Срд 19:24:28 2358710 862
image.png 44Кб, 995x684
995x684
>open source go project
Аноним 18/05/22 Срд 20:03:00 2358735 863
>>2358656
а скок лет?
А то все уже в 22 по 5лярдов в наносекунду зарабатывают, боюсь проебать момент
Аноним 19/05/22 Чтв 05:46:05 2358933 864
>>2358735
Я уже всё потерял, 30 лет, зарплаты нормальной нет
Меня списывайте и хороните под плинтусом
Аноним 19/05/22 Чтв 10:08:37 2358998 865
>>2357791
Потому что всё что создаётся через make ведёт себя как ссылочные типы.
Аноним 19/05/22 Чтв 13:48:24 2359139 866
https://pastebin.com/Tgg7fpnt

В гохе написал свою реализацию вот этого: https://go.dev/tour/concurrency/8 тут нужно через горутины параллельно обойти 2 бинарных дерева и сказать, идентичны они или нет. Обход это обыкновенный поиск в глубину, тут все ясно. Проблема именно с синхронизаций каналов.

В горутине я сбрасываю данные в один основной канал, в конце горутины делаю defer который отправляет с qCh (quitChannel) данные, это как бы должно сигнализировать о завершении одной из горутин, но блять именно на этом моменте возникает дедлок! (fatal error: all goroutines are asleep - deadlock!) Какого хуя?
Аноним 19/05/22 Чтв 13:50:48 2359141 867
image.png 62Кб, 906x434
906x434
>>2359139
Вот эта хуйня с функцией sendToChannel нужна потому что для defer нужно указать именно вызов фуннкции
Аноним 19/05/22 Чтв 14:04:46 2359148 868
>>2359141
>нужно указать именно вызов фуннкции
лямду defer func(){ ch <- true}() туда вставь проста епта.
по вопросу хз без кода непонятно ты может из канала один раз читаешь, а шлеш туда два раза
Аноним 19/05/22 Чтв 14:09:25 2359150 869
>>2358619
давай с уникальностью по компаниям. не то чтобы сильно поменяется, но без опыта могут одну вакуху на несколько команд поставить, а с опытом в конкретные.
Аноним 19/05/22 Чтв 17:00:13 2359256 870
image.png 24Кб, 1190x272
1190x272
Что заставляет людей писать такое?
Аноним 19/05/22 Чтв 17:03:08 2359259 871
>>2359256
Расширение в будущем, потому что не все ошибки являются критическими, а значит некоторые можно без проблем обработать.
Аноним 19/05/22 Чтв 17:52:59 2359299 872
>>2359259
почему это не написать в будущем?
Аноним 19/05/22 Чтв 17:55:38 2359302 873
6842640848756151.png 241Кб, 1717x1674
1717x1674
Что гобляди должны наконец усвоить:

1. err != nil это кусок залупы. Обрабатывайте наконец эксепшны как все Белые Люди. (и да, defer был высран именно по причине отсутствия try-finally)
2. Почему бы не запилить наконец нормальную итерацию по строкам? Сука, в этом говноязыке даже по строке не можешь нормально проитерироваться, т.к. итерируемся мы по байтам. Без сторонних либ и рюмки водяры не разобраться.
3. interface{} это не "мощная фича" это ебаный костыль, которому не место в статически типизируемом языке.
4. null pointer exception это самая частая причина вылетов в рантайме, го не только ничего с этим не делает, но и всячески поощряет их, утверждая что достаточно "просто каждый раз проверяться на nil" (вспоминает пункт 1)
Аноним 19/05/22 Чтв 18:06:07 2359303 874
Аноним 19/05/22 Чтв 18:09:41 2359305 875
>>2359302
Да по факту разъебал
Что про RUST думаешь?
Аноним 19/05/22 Чтв 19:53:32 2359384 876
>>2359302
ну всё убедил я увольняюсь
Аноним 19/05/22 Чтв 22:28:53 2359489 877
image.png 37Кб, 728x907
728x907
>>2359302
>2. Почему бы не запилить наконец нормальную итерацию по строкам? Сука, в этом говноязыке даже по строке не можешь нормально проитерироваться, т.к. итерируемся мы по байтам. Без сторонних либ и рюмки водяры не разобраться.
pic
Или ты что-то другое имел в виду?
Аноним 19/05/22 Чтв 23:21:57 2359516 878
Аноны, как установить защищенное соединение между десктопным клиентом и сервером, не устанавливая сертификат?
Аноним 19/05/22 Чтв 23:38:25 2359523 879
>>2359516
Установить ключ, заранее известный клиенту и серверу, им всё шифровать.
Аноним 19/05/22 Чтв 23:38:27 2359524 880
>>2359516
t := &http.Transport{
TLSClientConfig: &tls.Config{
Certificates: []tls.Certificate{cert},
RootCAs: caCertPool,
},
}
?
Аноним 20/05/22 Птн 10:06:44 2359669 881
Привет, аноны, хочу вкатиться в голанг с нуля, но не шарю за то как бекенд устроен, посоветуйте ресурсы, на которых можно научиться вещам, необходимым помимо знания самого языка
Аноним 20/05/22 Птн 15:42:04 2359985 882
Avito, Leroy, Ozon, Wildberries, Сбермаркет, а в каких еще крупных компаниях используют go?
Аноним 20/05/22 Птн 16:05:05 2360009 883
>>2359669
>с нуля, но не шарю за то как бекенд устроен
Забудь
В голанг не берут вкатунов
Аноним 20/05/22 Птн 19:51:25 2360207 884
>>2360009
вроде есть вакансии и на джунов, и на стажировки
Аноним 20/05/22 Птн 20:11:17 2360221 885
>>2360207
За еду, на ближайшие 5 лет.
Аноним 20/05/22 Птн 21:15:33 2360266 886
>>2360221
сначала да, но через год работы за еду ты уже крепкий джун и можешь претендовать на зп 80+
Аноним 21/05/22 Суб 15:19:40 2360636 887
>>2359489
Когда итерируешься по строке, ты итерируешься по байтам а не по символам. Можно при помощи либы strings итерироваться по рунам (символам) но вот если 1 символ у тебя будет 4 байта скажем то ты опять обосрешься.
Что сложного сцуко было сделать по дефолту кодировку у всех строк utf8? Если нужны другие - преобразуешь при помощи той же либы encoding. От того они и строки блять. И завезти отдельный тип bytes (в общем почти как оно сейчас и есть, byte это шорткат для uint8), который интерпретировался бы как массив байтов. Вместо этого какое-то невнятное ковыряние байтов там, где оно нахуй не усралось.
Аноним 21/05/22 Суб 17:28:10 2360695 888
Аноним 21/05/22 Суб 18:06:04 2360719 889
>>2360636
Не думал бегать начать? Чтобы лишний вес сбросить.
Аноним 21/05/22 Суб 20:04:40 2360803 890
>>2360221
согласен и на такое. скиньте ссылку)
Аноним 21/05/22 Суб 20:58:22 2360839 891
>>2360803
>согласен и на такое. скиньте ссылку)
hh.ru/vacancy/55008683 не благодари
Аноним 21/05/22 Суб 21:03:01 2360844 892
>>2360839
круто кнш, но я в Москве не проживаю, а удаленки там нет(
спасибо в любом случае
Аноним 21/05/22 Суб 21:50:32 2360873 893
Как установить пакет gorilla/mux? Ввожу команду
> go get -u github.com/gorilla/mux
Ругается, что надо использовать только в папке с mod, предлагает команду install. Окей, использую её, в итоге в $GOPATH/pkg/mod/github.com/gorilla появляется папка mux@1.8.0 А что с ней делать? В goland пакет все равно не видно. Почему так сложно всё? Пакет mysql я просто кинул в папку Program Files/go/src и заебись, везде подхватывается.
Аноним 21/05/22 Суб 21:59:40 2360877 894
image.png 5Кб, 367x37
367x37
>>2360873
мб как-то так импортировать? я кнш новичек только, но похоже mysql пакет он ищет в пути goroot, а mux - в gopath (т.к. в goroot нет)
второй вариант поменять gopath, а вообще да, удобнее go.mod юзать
Аноним 21/05/22 Суб 23:59:34 2360924 895
>>2360873
>>2360877
>Ругается, что надо использовать только в папке с mod
в чем проблема сделать go mod init?
Аноним 22/05/22 Вск 12:36:07 2361073 896
>>2360873
сделай модуль в папке с проектом. У тебя Пщ не понимает куда ему модуль с мухом сувать
Аноним 22/05/22 Вск 12:36:37 2361074 897
>>2360873
>Пакет mysql я просто кинул в папку Program Files/go/src и заебись, везде подхватывается.
господи...
Аноним 22/05/22 Вск 13:23:43 2361101 898
чо, пацаны, переходим на goplus?
Аноним 22/05/22 Вск 13:36:35 2361109 899
Аноним 22/05/22 Вск 13:45:39 2361115 900
Аноним 22/05/22 Вск 14:00:58 2361122 901
Аноним 22/05/22 Вск 19:21:10 2361325 902
>>2361115
>Что не так?
если это какой-то изящный способ мазохизма -- то окей.
Все модули должны через go get ставиться, а не через такое мозгоебство
Аноним 23/05/22 Пнд 17:46:35 2361925 903
>>2361101
Спасибо, поблевал
Лучше обратно на питон перейду
Аноним 24/05/22 Втр 01:19:47 2362172 904
Хочу в го, но так привык к питону
Аноним 24/05/22 Втр 02:01:45 2362183 905
Аноним 24/05/22 Втр 17:21:15 2362441 906
Как с пыхи вкатиться в го? Джунов не берут? Есть гайд?
Аноним 24/05/22 Втр 17:26:40 2362446 907
Аноним 24/05/22 Втр 19:23:18 2362527 908
>>2362446
это обязательное условие?
Аноним 24/05/22 Втр 19:45:29 2362549 909
>>2362441
Обычно с него и вкатываться. Хз, видимо похожи
Аноним 24/05/22 Втр 22:12:18 2362652 910
Аноны, допустим на сервер поступает некий запрос, в качестве ответа мне надо переслать строки базы данных. Ладно если их пара штук, просто запихну в массив json и отошлю по http. А если их тысячи, десятки тысяч?
Аноним 24/05/22 Втр 22:42:22 2362672 911
Аноним 25/05/22 Срд 02:35:20 2362788 912
>>2362652
Двачую пагинацию. Но если ты ёбнутый, врубай chunked:
```
w.Header().Set("Transfer-Encoding", "chunked")
w.Header().Set("X-Content-Type-Options", "nosniff")
```
После этого после каждого row дёргай `(w.(http.Flusher)).Flush()`. Соотвественно у тебя в ответе будет не один json, а стрим json-ов.
К слову, на приёмнике, если он на go, не пересоздавай декодер, используй один для всего стрима - у него есть внутри буффер и ты будешь проёбывать данные иначе.
Аноним 25/05/22 Срд 04:16:19 2362797 913
>>2359139
1. Не оставляй за собой висячих на канале горутин. В false-варианте обе твои Walk-горутины утекают.
2. Пушь значения в канал правильном порядке. Прочитай доку и код Tree
3. У тебя закрытие канала уже является сигналом конца обработки. quitChannel не нужен.

Теперь про дедлок. Деферы выполняются в обратном порядке. У тебя получается что обе Walk-горутины обработали деревья и теперь ждут пока кто-то прочитает quitChannel. Но Same-горутина в этот момент залочена и ждёт нового x, которого уже не будет. Варианты локально разрешить примерно следующие:
1. Поменять порядок деферов в Walk
2. Сделать каналу quitChannel буфер хотя бы в одно сообщение, но лучше в 2 (`make(chan bool, 2)`)
3. Выпилить quitChannel.

Один из вариантов решения - https://go.dev/play/p/HfdSANOkRvF
Можно без stop-канала, если не нужна ленивость, тогда в if надо делать `res = res && false`

Теперь попробуй запилить то же самое для деревьев потенциально разных размеров.
Аноним 25/05/22 Срд 20:25:56 2363367 914
>>2362652
ну зависит от контрактов и требований. можешь залить в хранилище и отдать ссылку и пусть хранилище ебется с этим вопросом. можешь тупа всё отдать, ты как будто никогда файлы больше 100мб с интернета не скачивал. текстовое можешь гзипом сжать, он в стриме кодируется/декодируется. у нас в сервисах да обычно пагинация.
Аноним 26/05/22 Чтв 12:47:41 2363816 915
>>2362652
>А если их тысячи, десятки тысяч?
Паникуй и пиши в лог, проблема не в тебе, а в задаче.
Аноним 26/05/22 Чтв 13:47:51 2363871 916
image.png 67Кб, 796x750
796x750
>>2362797
Блин, внутри select и switch вообще говоря не нужен break, в отличие от множества других ЯПов, однако сцуко он там все же может быть и влияет на сам switch/select, поэтому когда запускаешь select через бесконечный цикл то break в нем не остановит цикл for, он подействует на select. Походу надо всегда из оборачивать в функции и выходить из нее через return
Аноним 26/05/22 Чтв 14:13:17 2363898 917
>>2362652
Альфач берет и отсылает целиком. У тебя комп уже давно тянет многие сотни Мб трафика. Не рефлексируй.
Аноним 26/05/22 Чтв 15:11:24 2363952 918
Как спать рандомное время? Вызов:
time.Sleep(time.Duration(rand.Intn(2)) * time.Second)
Отправит его поспать на либо 2, либо 1 либо 0 секунд. А как мне замутить равномерное распределение? Если внутрь time.Duration поместить вызов rand.Float64 то он автоматом округлит его до 0
Аноним 26/05/22 Чтв 15:19:50 2363959 919
>>2363952
Ну например time.Duration(rand.Intn(2000)) * time.Millisecond
Аноним 26/05/22 Чтв 15:35:06 2363981 920
изображение.png 31Кб, 552x450
552x450
>>2363871
В го есть метки безусловного перехода. Как раз для таких случаев.
Аноним 26/05/22 Чтв 23:06:36 2364282 921
>>2363981
ебать гнилым сиговном пахнуло. вот что бывает, когда допускаешь ссаных бумеров до руля. засерают всё своими протухшими концепциями
Аноним 27/05/22 Птн 00:36:49 2364335 922
image.png 16Кб, 387x521
387x521
>>2364282
Лул))0) А ты как собираешься делать break/continue из вложенного цикла? Булевские флаги заводить? Вот пример, имхо первый вариант-то получше будет. Тем более если вложенность 3+.
Любой нормальный язык имеет похожую конструкцию, даже зумерские котлин и свифт.
Аноним 27/05/22 Птн 12:31:53 2364556 923
>>2363959
А блять, в жс и пистоне привык что сразу передаю целиком float число и ниебет
(какого хера кстати надо оборачивать вызов rand.Intn в time.Duration? Эта пизда говорит что якобы "invalid operation: rand.Intn(3) * time.Second (mismatched types int and time.Duration)" - как только меняю rand на обычный int все компилится и запускается)
Аноним 27/05/22 Птн 12:33:39 2364557 924
image.png 15Кб, 597x151
597x151
image.png 66Кб, 1867x357
1867x357
>>2364556
1 - ОК
2 - почему-то не ОК
Аноним 27/05/22 Птн 12:37:04 2364561 925
>>2364556
Потому что литерал не int, его тип подбирается под место в котором литерал написан.

https://go.dev/ref/spec#Constants
An untyped constant has a default type which is the type to which the constant is implicitly converted in contexts where a typed value is required, for instance, in a short variable declaration such as i := 0 where there is no explicit type. The default type of an untyped constant is bool, rune, int, float64, complex128 or string respectively, depending on whether it is a boolean, rune, integer, floating-point, complex, or string constant.
Аноним 27/05/22 Птн 12:44:03 2364573 926
>>2364282
Метки в go не самостоятельны, они обязательно привязаны к какому-то выражению.
Но вообще go это не более чем сиговнецо с горутинами, каналами и сборкой мусора.
>>2363898
Компу-то похуй, а серверу в контейнере с ресурсами старого айфона не похуй.
Аноним 27/05/22 Птн 13:16:23 2364615 927
Приветствую смотрящих. У вкатунов, которые решили начать с goвна, нет ощущения, что вас кто-то жидко наебал? Потому что у меня есть, блять. Второй год хуярю проекты для портфолио, а на меня до сих пор никто даже не смотрит. Я просто в шоке, блять. На hh порядка сотни откликов, которые привели к двум собесам, на которых было "будешь работать 40 часов за 5к в месяц?" (рублей, не грина). Это ебучая дыра, нахуй я полез в этого синего хорька, бляяяяяяяяяяяяяяяяяяять. Мог бы, как нормальные челы, хуярить ручки на джанге или спринге и горя не знать, но нет же, блять МАНЯСЕРВИСЫ, ГРПЦ ЭХО СЕРВЕР НА ЧИСТОЙ АРХИТЕКРУРЕ, руками сру в голый tcp, чтобы чел на фронте мог написать ws.onmessage(). Хуета, блять
Аноним 27/05/22 Птн 13:20:36 2364618 928
>>2364615
Ну так в го редко берут вкатунов. Я хуй знает кто и зачем тебе его посоветовал. Из после 2 лет питона в го заходил вообще.
Аноним 27/05/22 Птн 14:40:44 2364685 929
Как считать mysql запрос в структуру, не перечисляя по отдельности всех её членов? Выходит слишком громоздко.
Аноним 27/05/22 Птн 14:52:13 2364696 930
>>2364685
Странно, что в языке предусмотрены теги для json, а для sql нет.
Аноним 27/05/22 Птн 14:53:55 2364698 931
А че, в гохе не принято в целом в разных горутинах работать с одним общим объектом (массивом, мапой или структурой)? Например бегаю я по матрице nxn в разных горутинах и если элемент равен определенному числу то записывают индекс ячейки в общий массив result

result := [][]int{}

Метод append же блять не мутирует а возвращает новый массив. Даже если указали ебнуть, все равно на выходе у меня получается пустой массив result. Походу в гохе на таких задачах только через каналы работают, да?
Аноним 27/05/22 Птн 14:57:01 2364702 932
>>2364698
Задача вообще даунская - дана матрица nхn:
matrix [n][n]string
Вывести все индексы в формате {строка, столбец} элементы которых равны заданному target

Можно пройти все через вложенные циклы for, но очевидно что в гохе такое лучше делает через горутины - ебануть n горутин которые бегают по разным строкам и получить конечный результат
Аноним 27/05/22 Птн 17:40:13 2364946 933
изображение.png 29Кб, 415x400
415x400
>>2364698
Принято, с этим проблем нет. Не понял, как именно ты пытаешься наполнять result. Скинь код что ли.
Если очень надо передать слайс в функцию и там в него что-то записать, то можно как на пике сделать, но вообще так не делают обычно.
Аноним 27/05/22 Птн 22:34:22 2365115 934
>>2364698
>Даже если указали ебнуть, все равно на выходе у меня получается пустой массив result
так ты не присваиваеш результат исходному слайсу, а наверняка новую переменную создаешь. у тебя на выходе должен быть слайс с неопределенным числом элементов, а не пустой. без канала тебе как вариант нужно сразу слайс с N=n_горутин элементов сделать и каждой горутине сообщить индекс в который она пишет.
Аноним 27/05/22 Птн 22:41:13 2365122 935
>>2364615
here, probably, on every post about the vkat, they write that the juns are not fucking needed.
you need to roll into the goshka like this:
- you learn pluses/peton/chart/javu
- looking for vakuhi in this language
- you notice a vacuum in the goshka
- you go to social services for goshka, specifying that you learned another language
я короче пост выделил и уменя гугл транслейт выскачил ну короче сорян
Аноним 27/05/22 Птн 22:44:00 2365124 936
>>2364685
sqlx/gorm/куча остального чем я не пользовался
Аноним 28/05/22 Суб 00:41:14 2365183 937
1.JPG 3Кб, 225x146
225x146
2.JPG 4Кб, 244x144
244x144
Аноним 28/05/22 Суб 19:01:28 2365768 938
>устроился на новую работу
>куча задач по "продукт должен Х", "если Y, заказ должен Х"
как вы с этим живете? я привык жсоны перекидывать между сервисами/бд, а не этой продуктовой хуйней заниматься, которая для ебанов с 1С/сишартом/жавой.
Аноним 28/05/22 Суб 23:43:48 2365946 939
>>2364615
ну хзхз, вот прямо ваннаби после курсов условные никого не интересуют особо.

а вот если производил деятельность разработочки по шаблонам проектирования на %framework_name%, имеешь в целом хорошие хардскиллы, возможно разрабатывал что-то гибридное Django x Golang - тогда вы действительно что-то представляющий из себя кадр, и будут готовы рассмотреть кандидата даже если про гошку увидел первый раз в вакансии, но в целом обучаем.

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



Аноним 29/05/22 Вск 13:00:20 2366268 940
>>2365768
Скастить бизнесовые требования в ТЗ - задача аналитиков и продакта. Провалидировать успешность такого каста - задача продакта, лида и тебя. Если скастилось хуёво, то рекомендую отнести задачу обратно лиду. Если тебя сагитируют побыть аналитиком, смело увеличивай сроки выполнения задачи в 1.5 раза.
Если задача связано с регуляторкой - в 2 раза минимум, также перед реализацией надо будет провалидировать самописное ТЗ об кого-нибудь, ибо времени переделывать такие задачи как правило нет.
Аноним 29/05/22 Вск 16:42:00 2366456 941
>>2359302
> Обрабатывайте наконец эксепшны как все Белые Люди
Белые люди давно перешли на Result и Optional.
Если надо защититься от долбоёбов - есть recover.
> defer был высран именно по причине отсутствия try-finally
defer - это минимальная реализация scope(exit). По смыслу он больше похож на cleanup-аттрибут в gcc.
> Почему бы не запилить наконец нормальную итерацию по строкам?
По строке можно итерироваться через индексы или через range. Через индексы ты итерируешься по байтам, через range - по символам.
> interface{} это не "мощная фича" это ебаный костыль, которому не место в статически типизируемом языке
Стирание типов вполне себе фича статически типизированных языков.
> npe это самая частая причина вылетов в рантайме
Львиная доля которых - пропуск проверки err. Как и в других компилируемых языках, не хочешь npe - не используй nullable-тип или пиши тесты/фазз-тесты.
Аноним 30/05/22 Пнд 13:36:32 2367046 942
Помогите с запросами к бд. Есть массив string, надо из таблицы получить строки, в которых колонка соответствует какому либо элементу из списка. это я сделал И при этом надо выдавать строки порционно. То есть например первые 5 строк, потом с 6 по 10 и тд. Пагинация короче говоря.
Можно конечно сначала получить все строки, и потом уже взять нужный диапазон, но это как-то неэффективно.
Аноним 30/05/22 Пнд 13:40:21 2367052 943
Аноним 30/05/22 Пнд 16:31:28 2367179 944
Аноним 30/05/22 Пнд 17:47:21 2367292 945
изображение.png 6Кб, 670x42
670x42
>>2367179
Это я знаю, но как это использовать вместе с WHERE x IN () ? Пикрил
Аноним 30/05/22 Пнд 17:54:02 2367298 946
>>2367292
Хотя разобрался. Ничто ведь не мешает добавить в args значения для Limit
Аноним 30/05/22 Пнд 19:19:36 2367362 947
Анончики, подскажите, можно ли у http.Server вносить изменения в роутер на горячую?
То есть после ListenAndServe() менять хэндлеры без остановки и перезапуска?
Если да, то как реализовать?
Аноним 30/05/22 Пнд 20:40:45 2367436 948
>>2367362
всё очень прозаично

s := http.Server{
Handler: http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
if time.Now().Unix()%2 == 0 {
mux1.ServeHTTP(rw, r)
} else {
mux2.ServeHTTP(rw, r)
}
}),
}
Аноним 30/05/22 Пнд 20:46:23 2367443 949
>>2367298
>Ничто ведь не мешает добавить в args значения для Limit
это какая бд разрешает лимит вместе с аргументами передавать?
Аноним 30/05/22 Пнд 20:47:39 2367446 950
Аноним 30/05/22 Пнд 23:29:02 2367596 951
>>2367436
блин, ну чет хз. Тут mux"ы предопределены. Мне же нужно при наступлении определенного события сформировать новый хендлер их контекста события и подменить им старый.
Аноним 30/05/22 Пнд 23:48:13 2367602 952
>>2367436
Может как-то так попробовать

h := someHandler
server{Handler : h}
go func() { server.ListenAndServe() }
h = anotherHandler

Попробую при случае, или хуйню написал?
Аноним 31/05/22 Втр 01:11:47 2367633 953
>>2367596
поинтер подменяй или в мапу засунь или слайс, есть же динамические структуры данных. то что я написал легко можно представить в виде

s := http.Server{Handler: http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
________realHandler := getHandler()
________realHandler(rw, w)
____})
}

>>2367602
когда ты записал h в хендлер её значение скопировалось в структ сервера и что ты там потом пишешь в h ему вообще похуй. во-вторых это датарейс.
Аноним 31/05/22 Втр 01:13:59 2367634 954
>>2367633
>h в сервер
я имею в виду
Аноним 31/05/22 Втр 01:14:35 2367635 955
>>2367633
>это датарейс
если писать в сервер
Аноним 31/05/22 Втр 08:52:31 2367727 956
image.png 102Кб, 1283x835
1283x835
image.png 98Кб, 1314x763
1314x763
image.png 147Кб, 1795x866
1795x866
Аноны объясните что я делаю не так
Пик 1 делаю POST запихиваю свой json получаю ответ.
Пик 2 мои туги сделать тоже самое на Go
Только от postman я получаю нормальный ответ 200
А в Go я иду нахуй
Аноним 31/05/22 Втр 14:47:46 2367965 957
>>2367727
хз выглядит норм. попробуй скопировать все хедеры которые постман ставит.
Аноним 31/05/22 Втр 15:05:00 2367970 958
>>2367633
Да, вот это нормальная тема. Спасибо!
Аноним 01/06/22 Срд 08:42:56 2368494 959
Как получить текущую дату в строковом формате? Чтобы была строка "2022-06-01"
Аноним 01/06/22 Срд 10:10:28 2368539 960
Аноним 01/06/22 Срд 15:41:15 2368818 961
Как по IP определить страну?
Аноним 01/06/22 Срд 15:48:57 2368820 962
>>2368818
а почему вы интересуетесь? вы украинец?
Аноним 01/06/22 Срд 15:50:10 2368824 963
Аноним 02/06/22 Чтв 07:59:57 2369323 964
>>2367965
Да спасибо помогло
Аноним 02/06/22 Чтв 08:06:40 2369325 965
Аноны нужен ещё совет нужна библиотека которая конвертит xml в docs и xml в pdf
Весь интернет перерыл везде только создание по шагам типо addTitle addString addPic, а такого чтоб xml с тегами втолкнул и заработало нигде не нашёл. Если просто текст затолкать он все теги как текст и вывидет, что и логично
Может я искать не умею или тупой и чего-то не понимаю. Помогите
Аноним 02/06/22 Чтв 08:07:13 2369326 966
Аноним 02/06/22 Чтв 09:10:44 2369347 967
>>2369325
Берешь спеки docx и pdf в руки и ебошишь
Аноним 02/06/22 Чтв 09:23:07 2369352 968
>>2369347
Интересно. Типо сам ручками? Окей попробую
Аноним 02/06/22 Чтв 12:09:18 2369495 969
В чем преимущество сервера на горутинах от сервера на простых тредах (как в пхп например)?
Аноним 02/06/22 Чтв 12:44:52 2369517 970
>>2369495
Горутины дешёвые, их можно создавать тысячами, а тредов не должно быть больше, чем ядер + нужно уметь распределять задачи по пулу тредов.
Аноним 02/06/22 Чтв 12:48:49 2369522 971
>>2369517
>а тредов не должно быть больше, чем ядер
Шо?)
Хочешь в Питоне создам 100 тредов вообще изи? Или в Пхп fpm заспавнит 100 тредов на 100 коннектов
Аноним 02/06/22 Чтв 12:56:33 2369529 972
>>2369522
Да хоть тысячу создавай, я же не говорю, что технология запрещает так делать. Но смысла нет.
Аноним 02/06/22 Чтв 15:08:54 2369661 973
image.png 38Кб, 651x367
651x367
Нормально добавлять в динамический массив данные вот так или везде нужно хуярить через append и переприсваивать напрямую этот массив, т.к. в гохе порешали что "мутации это плохо"?
Аноним 02/06/22 Чтв 19:06:03 2369878 974
>>2369495
>преимущество
рантайм Го сам их приостанавливает и запускает по необходимости. + удобная фича в виде каналов.
Почитай про шедулер Гошки, довольно интересно кмк.
Аноним 02/06/22 Чтв 19:41:05 2369934 975
>>2369661
Ничего го не перезаписывает. Если есть запас capacity у слайса, добавляет. Если нет, выделяет память и пишет новые значения туда. Можно сразу брать капасити с запасом
Аноним 02/06/22 Чтв 20:00:57 2369973 976
>>2369661
зачем и главное нахуя
>inb4 мне НУЖНО писать на языке Х как будто я пишу на языке Y
Аноним 02/06/22 Чтв 21:17:54 2370042 977
>>2369934
>Можно
я бы сказал НУЖНО, иначе много перевыделения памяти
Аноним 02/06/22 Чтв 22:39:36 2370100 978
image.png 26Кб, 288x814
288x814
image.png 3Кб, 241x113
241x113
Дорогие анончики помогите плиз, учу Гошку и передо мной встала такая задачка.

Есть json, мне нужно его распарсить чтобы получить два элемента. Как можно это грамотно реализовать?

Достаточно ли просто структуру с двумя элементами создать? Или нужно поебаться?
Аноним 02/06/22 Чтв 23:14:33 2370133 979
>>2370100
нужно поебаться и навести мышку на замечания линтера и прочитать что
а) в неэкспортируемые переменные ничего не заанмаршалится
б) теги для полей пишутся не так
Аноним 02/06/22 Чтв 23:29:24 2370144 980
image.png 3Кб, 277x114
277x114
image.png 19Кб, 459x436
459x436
>>2370133
Твое замечание подправил, но получаю следующую ошибку:

json: cannot unmarshal array into Go value of type controller.Hueta
Аноним 02/06/22 Чтв 23:33:39 2370150 981
>>2370144
json.NewDecoder(body).Decode(&data)
Аноним 02/06/22 Чтв 23:38:40 2370152 982
>>2367727
Как ты xml в док конвертишь? Это ж залупа какая-то, лол
Аноним 02/06/22 Чтв 23:40:06 2370154 983
>>2370152
А, увидел догонку ниже. Тоже на этой хуйне свалился
Аноним 02/06/22 Чтв 23:45:41 2370159 984
>>2370150
Та же самая ошибка(

Есть ещё идеи?
Аноним 02/06/22 Чтв 23:49:11 2370163 985
>>2370159
Ну чел, у тебя в json'е массив лежит, а ты хочешь вытащить какую-то пару значений. Тебе массив вытаскивать надо, примерно таким же образом делается, просто стракт еще один сделай, где поле типа []Hueta будет.
Аноним 02/06/22 Чтв 23:52:23 2370168 986
>>2370163
Спасибо тебе большое!
Получилось
Аноним 02/06/22 Чтв 23:54:04 2370169 987
>>2370163
Кста, не ебу, является ли твой массив в json'е является верхнеуровневым или болтается как поле в виде "hueta": [...], во втором случае надо будет делать var huetaSlice []Hueta и анмашларить в него
Аноним 02/06/22 Чтв 23:56:48 2370171 988
image.png 13Кб, 383x307
383x307
image.png 4Кб, 320x122
320x122
>>2370169
Короче вот что сделал
Аноним 03/06/22 Птн 12:54:45 2370523 989
image.png 72Кб, 1695x417
1695x417
А почему у нас дедлок когда мы отправляем в канал который никто не читает? Думал просто кинули данные в канал и пошли дальше не блокируясь, ведь по идее это должна быть не забота отправителя данных, а забота получателя
Аноним 03/06/22 Птн 13:02:09 2370532 990
>>2369973
>мне НУЖНО писать на языке Х как будто я пишу на языке Y
Ну да, а хули нет? Я не обязан подстраиваться как чмоня под любого хипстера, флюродросящего "новыми" концепциями, пусть под меня подстраиваются
Аноним 03/06/22 Птн 13:13:29 2370546 991
>>2370532
Нахуя тебе Goвно тогда?
Аноним 03/06/22 Птн 13:14:06 2370547 992
Аноним 03/06/22 Птн 13:54:04 2370604 993
>>2370547
Два чаю. Сейчас готовлюсь к собесу на сеньку, после успеха смогу каждую неделю ебать новую атласную шлюху и даже не задумываться о тратах
Аноним 03/06/22 Птн 18:43:02 2370914 994
>>2370523
Канал != очередь, у него другое назначение. Можно сделать его буферизированным и тогда сколько-то можно будет накидать не читая, но потом все равно залочится.
Аноним 03/06/22 Птн 23:27:51 2371101 995
>>2370532
ну тогда ответ: зависит от компании. если там все такие залетные с синдромом утенка из других языков или готовые жить с "Я не обязан подстраиваться как чмоня под любого хипстера, флюродросящего "новыми" концепциями, пусть под меня подстраиваются" , то норм. если нет, то на ревью киберунизят.
Аноним 03/06/22 Птн 23:30:16 2371104 996
>>2370523
для неблокирующей отправки без гарантии отправки есть синтаксис через select. если тебе бесконечный буфер нужен, то пиши свой канал, один хуй это обертка над массивом по сути.
Аноним 04/06/22 Суб 11:23:58 2371323 997
Я кайфанул от goland а траил уже закончил русскому подписку продавать отказываются если я в профеле поставлю Юкрейн смогу оплатить чперез пейпалл например?
Какие еще варианты?
Аноним 04/06/22 Суб 12:13:42 2371346 998
>>2371323
Как вариант пару задачек на Stepik по программированию решить. Раньше за это давали студ. лицензию на 3 месяца. Как сейчас не знаю.

BTW чем лучше того же VSCode? У го же охуенный тулинг и language server, что еще может быть нужно?
Аноним 04/06/22 Суб 12:17:18 2371348 999
>>2370532
Знавал я человека который на любом языке писал нечитаемую императивную дрисню. Чел был охуенно полезным, но его код без него заморозили и переписали с нуля.

Так вот, если твоя ценность только в том чтобы код писать, то гошка не для тебя. Она как и раст, пиздит гребца когда он пишет код не как принято, только пиздит в рантайме и от того больнее.
Аноним 04/06/22 Суб 12:28:22 2371360 1000
>>2371348
Ну не знаю, меня рантайм пиздит, только когда увлекся возвращением nil вместо ошибки (и забыл проверить на него) и при кривой конкурентности. Базово все работает предсказуемо, потому что язык примитивный по дизайну
Аноним 04/06/22 Суб 12:31:45 2371362 1001
>>2370523
Этот анон прав >>2370914
Каналы это как раз способ синхронизации между горутинами. Поэтому так себя ведут
Аноним 04/06/22 Суб 12:55:21 2371376 1002
>>2371346
VSCODE у меня в голове прочно связан с фронтендом и моими потугами в JS а меня от js блевать тянет и на изнанку выворачивает поэтому vs code мне опротивел
Аноним 04/06/22 Суб 13:42:11 2371399 1003
>>2371323
> Какие еще варианты?
Notepad++
Аноним 04/06/22 Суб 13:43:11 2371400 1004
VIM
Аноним 04/06/22 Суб 14:26:51 2371416 1005
Аноним 04/06/22 Суб 21:31:41 2371755 1006
Как из высокоуровнеего пайтона вкатиться в го?
Прочитал A Tour of Go и многое выклядит совсем нелогичным и даже сложным.
Реквестирую материалы для перекатывальщиков из питона, где объясняют что и зачем.
На питоне уже 4 года пишу, считаю свой уровень выше среднего. Кроме него только жаес знаю.
Аноним 04/06/22 Суб 21:34:21 2371758 1007
>>2371755
На степике курс текстовый по Го годный. А так просто динамикопараша в мозги насирает сильно конеч
Аноним 04/06/22 Суб 21:38:08 2371761 1008
Аноним 04/06/22 Суб 21:46:36 2371768 1009
>>2371755
Что именно кажется сложным и нелогичным?
Аноним 04/06/22 Суб 22:03:26 2371780 1010
>>2371768
Первое что бросается в глаза после питона:
всё строго типизированно
листы/слайсы перемудрённые
концепт поинтеров
классов нет, надо делать методы к объектам struct

Сорри, с нелогичным погорячился. Я понимаю что эти "сложности" связаны с тем что программе надо скомпилироваться и с памятью работать поумнее интерпритатора.
Просто мне пока сложно представить как, например, поинтеры использовать. А написание классов совсем кривым кажется по сравнению с питоном.
Аноним 05/06/22 Вск 12:34:58 2371959 1011
>>2371780
>всё строго типизированно
И это прекрасно. Явно приводишь к нужному типу, если это нужно. После Питона непривычно, но со временем понимаешь всю прелесть
>листы/слайсы перемудрённые
Про статические массивы можешь забыть. Практически не используются. К слайсам привыкаешь достаточно быстро, там все элементарно
>концепт поинтеров
Тут тоже все относительно просто. Нужно изменить конкретный объект - передаешь в функцию по ссылке (поинтер). Нужно просто передать значение - передаешь копию примитива (обычная переменная). Ну и слайсы с мапами передаются по ссылке by design.
>классов нет
А есть принципиальная разница? Какую суперфичу приобретает структура, если назвать ее классом? По факту отличается лишь специфическим наследованием через "встраивание".

степик это stepik
Аноним 05/06/22 Вск 12:53:50 2371980 1012
>>2371755
А смысл перекатываться, проблемы с работой тоже?

>>2371780
пайтон это пайтон.

Просто не сравнивай, это разные инструменты, разные парадигмы, свои особенности.
Это как изучать жс афтер пайтон, там event, dom, spaghetti и вообще подход отличается.
Аноним 05/06/22 Вск 16:20:08 2372136 1013
>>2371959
Спасибо что разъяснил, попробую пересилить себя.

>А есть принципиальная разница? Какую суперфичу приобретает структура, если назвать ее классом? По факту отличается лишь специфическим наследованием через "встраивание".
Наследование у классов очень удобное, а ещё питоновские классы можно учить превращаться в dict/list и прочие структуры с помощью дескрипторов.

>>2371980
>А смысл перекатываться, проблемы с работой тоже?
Я девопс, мне что-то кроме питона не сильно нужно. Хочу вкатиться для собственного развития, у меня тонна проектов написанных на питоне. Было бы очень круто их переписать на что нибудь компилируемое и быстрое. Да и девопсить надоесть может, перекачусь в девелопера.
Аноним 05/06/22 Вск 16:37:09 2372150 1014
>>2372136
>Наследование у классов
Хорошее наследование это когда его немного. Встраивания и интерфейсов вполне достаточно.
>превращаться в dict/list
ну в статической типизации как бы и не принято, что бы что-то неявно превращалось. Пиши метод, проблем нет.

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

Дебажить Питон это больно. На Го я частенько пишу код часа 2, затем запускаю его и все работает сходу
Аноним 05/06/22 Вск 16:54:54 2372175 1015
>>2372150
Для меня долго дебажатся логические ошибки, а не синтактические. Такое не отловишь на уровне компилятора, тут тестировать надо.
Думаю в го тоже самое будет. Хорошо что у меня куплен пак IDEх от жетбрейнсов, уже запилил себе goland.
Аноним 06/06/22 Пнд 01:43:51 2372522 1016
image.png 73Кб, 236x295
236x295
очередной спринт начинаеться...
Аноним 06/06/22 Пнд 09:11:32 2372586 1017
>>2372522
Лето же. Пора в отпуск петов делать
Аноним 06/06/22 Пнд 13:52:40 2372760 1018
>>2286748 (OP)
Недавно попустили на моем первом собесе на гоху. Задали вопрос:
- В чем преимущество сервера на горутинах перед сервером на обычных тредах? Например на php
Я ответил:
- Ну горутины более легковесные
- Это-то понятно. Но все же, в чем преимущество?

Блять, я даже и не знал что на такое ответить. Естественно правильный ответ они так и не назвали.
Аноним 06/06/22 Пнд 15:31:21 2372859 1019
Можно в гохе как-то создать горутину которая будет не daemon?
Аноним 06/06/22 Пнд 16:48:14 2372915 1020
>>2372760
ну рассказал бы в чем преимущество ты че. легковесность это такое себе, ты же их не мешками на себе таскаешь. От тебя наверняка ждали рассказать про сисколы, контекст свищинг, размер стака у ос тредов и такое
Аноним 06/06/22 Пнд 17:48:42 2372995 1021
>>2372915
Еще был такой вопрос: "мы запустили миллион горутин, в каждой из них мы слипаемся на 100 секунд, какие ресурсы и в каком объеме будут затрачены? усложнится ли сборка мусора? насколько?"
Аноним 06/06/22 Пнд 23:52:44 2373325 1022
>>2372995
>>2372760
А на какой грейд в данном случае такие вопросы задают?
И на какой должны, аноны?
Аноним 06/06/22 Пнд 23:59:12 2373328 1023
Аноним 07/06/22 Втр 11:55:47 2373574 1024
>>2373325
Мидл. У меня опыта полгода на Ноде и 2 года на Питоне. Но меня пиздец ебали сначала по кишочкам GC и мой ответ про "конкурентную сборку мусора и 3 цвета объектов" их не устроил, хотели глубже. Еще были всякие интересные вопросы про то что представляет собой структура горутины или подробное описание операции битового сдвига на АЛУ (!)
Кароч, меня 1.5 часа гоняли по внутренностям гохи, не получил ни одного вопроса по базам данных или вебу в целом.
Аноним 07/06/22 Втр 13:53:43 2373716 1025
Когда мы юзаем append то всегда создается новый слайс? append не мутирует а возвращает новый объект, значит ли это что несмотря на то что capacity слайса не превышено все равно будет создан новый слайс?
Аноним 07/06/22 Втр 15:19:06 2373823 1026
Аноним 07/06/22 Втр 16:12:55 2373891 1027
>>2373574
Это где, в авито или озоне?
Аноним 07/06/22 Втр 17:37:21 2373972 1028
https://pastebin.com/CSL77HME

Ищу пересечение двух массивов. Нормально ли делать как тут - в запущенной горутине мутировать мапу? Или это не по философии го?
Аноним 07/06/22 Втр 20:05:49 2374147 1029
image.png 120Кб, 1950x394
1950x394
Почему элементарные вещи типа парсинга джейсона делаются так сложно?
Аноним 07/06/22 Втр 20:54:17 2374201 1030
>>2374147
А тут есть что-то сложное? Или Питон настолько психику травмирует?
Ни для кого не секрет, что на Го чуть больше кода писать приходится. Но вместе с этим есть и куча преимуществ
Аноним 07/06/22 Втр 21:10:38 2374212 1031
>>2373972
В данном коде мапу никто не трогает извне, так что норм. Только смысла у анонимной функции возвращать мапу которую она заполняет нет.
Аноним 07/06/22 Втр 21:49:14 2374238 1032
>>2373972
это максимально классический паттерн с вейтгруппой.
Аноним 07/06/22 Втр 21:52:44 2374242 1033
>>2373891
Не буду пожалуй пока говорить, чтоб не деанониться на всякий.
Это одна из крупных рашн фирм, не ожидал что меня настолько попустям там, такое ощущение что они сеньку искали.
Аноним 07/06/22 Втр 21:53:47 2374243 1034
image.png 47Кб, 758x201
758x201
>>2374147
сэкономил тебе две строчки
Аноним 08/06/22 Срд 17:02:42 2374947 1035
>>2373574
Какая-то хуйня, я проходил собесы в кучу контор от Авито (6 ебучих собесов, рекорд!) и Яндекса до Тинькоффа и Гетта и нигде настолько глубоко не докапывались. Ну или ты привираешь.

Про сборку мусора не нужно знать про цвета объектов, надо знать в общих чертах как это работает, и как это отображается на коде, классический вопрос с runtime.Gosched и всё такое.


BTW посоны а где чего интересного можно почитать про types2 и прочие изменения внутри го из 1.18? Я что-то ленюсь прям по коду го разбираться, хочется почитать обзоры про мономорфизм и вот это всё. Generics the hard way я читал и изучения глубины вопроса не оценил.
Аноним 09/06/22 Чтв 00:57:14 2375387 1036
>>2373823
В смысле? Мы заюзали append и он возвращает новый объект. То есть старый остался, мы его скопировали и засунули туда еще одно значение. Если arr в них обоих указывают на один и тот же массив, то блэт исходный должен был измениться, но это нихуя не так.
Не понимаю бля, в чем смысл возни с capacity если мы в любом случае целиком копируем слайс в случае append/
Аноним 09/06/22 Чтв 02:24:10 2375418 1037
>>2375387
> Не понимаю бля, в чем смысл возни с capacity если мы в любом случае целиком копируем слайс в случае append/
Потому что он копируется не всегда, а только, если вместимость старого массива оказывается превышена.
1) У тебя был массив размером 4 и вместимостью 4: [a, b, c, d]
2) Ты добавил туда новый элемент "e"
3) Тебе под этот слайс был выделен новый массив с удвоенной вместимостью 8, а размер массива теперь 5: [a,b,c,d,e].

Это чтобы если ты скажем в цикле аппендишь массив, не перевыделять память каждый раз, она выделяется с запасом.
Аноним 09/06/22 Чтв 02:28:43 2375420 1038
>>2375418
Реальный юзкейз:
func IntsToStrings(arg []int) []string {
ss := make([]string, 0, len(arg)) // размер 0, вместимость равна вместимости arg, то есть мы однократно выделили память под массив строк без перевыделения промежуточных массивов
for _, x := range arg {
ss = append(ss, fmt.Sprintf("%d", x)) // и просто добавляем значения аппендом
}
return ss
}

https://goplay.space/#gUSZ5oAphPc
Аноним 09/06/22 Чтв 09:07:23 2375489 1039
>>2375387
>исходный должен был измениться, но это нихуя не так.
ты ожидаешь что у исходного длина поменяется? заресайзь его до капасити и увидишь, что если аппенд не привел к реаллокации, то после старой длины лежит новый элемент.

проверяется вообще максимально просто без еботы с капасити.
a := []int{1,2,3}
_ = append(a[:0], 4)
fmt.Println(a)
Аноним 09/06/22 Чтв 11:43:46 2375568 1040
>>2375489
А если передать просто a то ничего не смутируется
Аноним 09/06/22 Чтв 11:53:04 2375573 1041
image.png 136Кб, 658x511
658x511
>>2375568
a := make([]int, 0, 4)
a = append(a, 1, 2, 3)

_ = append(a, 4)
fmt.Println(a[:])
fmt.Println(a[:cap(a)])
Аноним 09/06/22 Чтв 13:46:57 2375673 1042
image.png 21Кб, 655x166
655x166
image.png 668Кб, 869x538
869x538
>>2375573
Так блять
Вот этого не понял (хули он не показывает последний элемент в первом случае? я ж блять заставляю его целиком слайс напечатать)
Аноним 09/06/22 Чтв 14:52:36 2375710 1043
image.png 48Кб, 660x354
660x354
image.png 52Кб, 1098x324
1098x324
Аноним 09/06/22 Чтв 15:45:13 2375757 1044
Я к вам с заебавшим вопросом по поводу джуна. Смотрю сейчас рынок и немного плачу и унываю, понимая что вакансий нет. Может кто объяснить что мне делать кроме как сосать хуй. У меня опыта в программировании лет 8, но я не разу не работал программистом, не спрашивайте как так получилось. Есть пара проектов на го на гитхабе. Имеет ли какой-то смысл ждать go джуна вакансию или вкатываться в питон/ноду? И что в данном случае будет востребованней питон или нода?
Аноним 09/06/22 Чтв 16:41:39 2375782 1045
>>2375757
> меня опыта в программировании лет 8, но я не разу не работал программистом
Напизди что работал
Че ты как маленький
Аноним 09/06/22 Чтв 16:53:55 2375791 1046
>>2375782
Ты мне скажи пож-ста. Можно ли приравнивать опыт работы скажем в год, к паре проектов на го, одним из которым мы с корешами пользуемся почти каждый день? Я могу примерно подтянуть себя по требованиям к мидлу. Есть еще леткод и кодварс, и вообще я задачки решать люблю. Но боюсь, что если напизжу то просто не потяну реальные задачи.
Аноним 09/06/22 Чтв 17:02:09 2375800 1047
>>2375791
Очевидно что пиздеть лучше правдоподобно, не стоит сообщать о якобы 8 годах опыта работы, если по факту нет нихуя, лучше сказать что 2 года прогал на питоне/пхп/жс на беке и последние полгода на ГО, чистых гошников практически нет
Аноним 09/06/22 Чтв 17:03:38 2375803 1048
>>2375800
Только в каждом выдуманном проекте ты должен заранее придумать чем лично ТЫ занимался и что это был за проект. Это всегда первые вопросы на собесе, если не можешь внятно описать что ты делал на прошлых местах,, это будет выглядеть очень подозрительно
Аноним 09/06/22 Чтв 17:07:04 2375804 1049
Аноним 09/06/22 Чтв 22:10:46 2375996 1050
image.png 35Кб, 980x252
980x252
Можно ли как то короче писать данную конструкцию?
В питоне я просто делал

api_username = os.getenv("API_USERNAME") or "username"
Аноним 09/06/22 Чтв 22:18:28 2376002 1051
image.png 52Кб, 1060x537
1060x537
>>2375996
не тот язык, мистер любитель сахарка
Аноним 09/06/22 Чтв 22:20:28 2376004 1052
>>2376002
Спасибо, я привык к сладкому, оно красивое.
Аноним 10/06/22 Птн 14:09:23 2376402 1053
Как принято работать с defer и recover?
В каждой высокоуровневой функции своего пакета ставить recover чтобы не ловить ошибок в рантайме и возвращать ошибку из функции напрямую это норм идея?
Аноним 10/06/22 Птн 17:05:06 2376533 1054
Тут слыхал что Редис по своей природе однопоточный и скажем 10к rps-а с Гохи он не выдержит. Как контрить?
Аноним 10/06/22 Птн 17:21:45 2376551 1055
Аноним 11/06/22 Суб 09:34:45 2377006 1056
image.png 41Кб, 1056x383
1056x383
image.png 35Кб, 441x432
441x432
image.png 21Кб, 792x90
792x90
Аноны, чзх, почему когда я паршу файлы с двача, он почти все картинки грузит нормально, а видео - какашно. Код на пик 1-2

Плюсом к этом периодически при загрузке картинки в хайрезе/видео он выдает в ioutil.ReadAll и подобных unexpected EOF, лог такой на пик 3
Аноним 11/06/22 Суб 09:51:22 2377012 1057
>>2377006
Прокинь j в горутину. А еще wg.Wait.
Аноним 11/06/22 Суб 09:54:32 2377016 1058
image.png 84Кб, 1145x724
1145x724
>>2377012
А куда wg wait поставить? У меня стоит в самом конце проги, чтобы дождаться всех файлов.
И что значит "прокинуть j в горутину"? Типа как аргумент передать анонимной функции?
Аноним 11/06/22 Суб 09:55:35 2377017 1059
>>2377006
А еще лови ошибку от ioutil.ReadAll. А еще Body.Close до чтения из ридера. А еще его в defer. А еще чекни статус у response на 200.
Аноним 11/06/22 Суб 10:03:37 2377021 1060
>>2377016
> А куда wg wait поставить? У меня стоит в самом конце проги, чтобы дождаться всех файлов.
Хорошо.
> И что значит "прокинуть j в горутину"? Типа как аргумент передать анонимной функции?
Да. У тебя же не блочится цикл. Цикл бежит быстрее, чем выполняется горутянка. j инкрементируется и используется в горутине не с тем значением, с которым ты ожидаешь (гонка же. В твоем коде возьмется последний индекс, наверное).

> htmlFile += ...
Посмотри на html/template
Аноним 11/06/22 Суб 10:05:34 2377023 1061
>>2377016
А еще ты скорее всего хотел continue вместо break
Аноним 11/06/22 Суб 10:10:51 2377029 1062
>>2377017
>А еще лови ошибку от ioutil.ReadAll
Ловлю (пик 1)

>А еще чекни статус у response на 200.
Она обрабатывается в другом месте

>>2377021
Это я понимаю, но не понимаю как реализовать, range же сам по себе инкрементируешь счетчик, а если я делаю цикл через j < len(Files), то он какого-то хуя больше чем нужно увеличивает счетчик и в итоге получается out of range.
Я пробовал через atomic.AddInt и sync.Mutex, всё равно, но мб я еблан и чето не то делал

>Посмотри на html/template
>А еще ты скорее всего хотел continue вместо break
Да, лол

Спасибо, анон
Аноним 11/06/22 Суб 10:31:08 2377035 1063
>>2377029
> >А еще лови ошибку от ioutil.ReadAll
> Ловлю (пик 1)
На пике 3 у тебя ошибка летит из http.Get.
В дальнейшем приучись ловить ошибки где только можно. Ненужные отбрасывай. Заиспользуй потом github.com/pkg/errors. Позволяет стектрейсы собирать.

> Это я понимаю, но не понимаю как реализовать, range же сам по себе инкрементируешь счетчик, а если я делаю цикл через j < len(Files), то он какого-то хуя больше чем нужно увеличивает счетчик и в итоге получается out of range.
У тебя мб files чистится до исполнения горутины. Передавай тогда в аргументы сразу строки, которые используешь.
> Я пробовал через atomic.AddInt и sync.Mutex, всё равно, но мб я еблан и чето не то делал
https://goplay.space/#qCG2BrQ0F0F
https://goplay.space/#ZMfaA0X-Erq
Аноним 11/06/22 Суб 10:36:10 2377038 1064
>>2377035
>У тебя мб files чистится до исполнения горутины.

Я об этом чето даже не думал, посмотрю, анон
Аноним 11/06/22 Суб 11:46:00 2377079 1065
>>2377021
>Да. У тебя же не блочится цикл. Цикл бежит быстрее, чем выполняется горутянка. j инкрементируется и используется в горутине не с тем значением, с которым ты ожидаешь (гонка же. В твоем коде возьмется последний индекс, наверное).
там j := j
Аноним 11/06/22 Суб 12:00:33 2377088 1066
>>2376402
дефер для отлова паник ставят редко, чтобы не загаживать код. все равно все хуй отловишь, поэтому обычно там в мейне и в какой-нибудь мидлваре хттп роутера. в других местах обычно добавляют после того как уже упали, а баг не нашли и вот решили закостылить.
Аноним 11/06/22 Суб 12:03:34 2377092 1067
Dirty-Tony-Ryan[...].jpg 184Кб, 1626x1080
1626x1080
>>2376004
Попка не слипнется?
Аноним 11/06/22 Суб 12:30:57 2377111 1068
>>2377079
Сейчас бы делать скрытую логику, основанную на области видимости блока.
Аноним 11/06/22 Суб 12:36:34 2377114 1069
>>2377111
это не скрытая логика, а распространенный паттерн в замену более вербозного создания горутины с аргументами. стейтмент находится в том же скопе, что горутина, а не хз где. я намного реже вижу горутины-лямды с аргументами и каждый раз обращаю внимание на них.
Аноним 11/06/22 Суб 17:19:02 2377271 1070
Немного не по теме go, но нормально ли, что загрузка 450 видео из вебм треда длится 5-10 минут при скорости загрузки 8-10 мб/с?
Аноним 11/06/22 Суб 18:34:04 2377318 1071
>>2377271
Да, не по теме
Тут вообще похуй какой ЯП, у тебя 99% времени займет сама загрузка
Аноним 11/06/22 Суб 19:34:25 2377362 1072
доброго времени суток. Хочу перейти на го из пхп. Какой небольшой проект можно написать на го для понимания?
Аноним 11/06/22 Суб 19:46:03 2377374 1073
>>2377362
Какой-нибудь тырнет-магазин
Аноним 11/06/22 Суб 23:13:04 2377486 1074
>>2377271
невозможно ответить не зная суммарный размер видосов. следующий вопрос.
Аноним 12/06/22 Вск 01:05:55 2377529 1075
>>2377486
Вспоминаем 5 класс.
5-10 минут - это 7.5 минут, т.е 450 секунд => 1 видео в секунду.
Скорость загрузки 8-10 мб/с - это 9 мб/с => 1 видео весит 9 мб.
Суммарный размер = 9 * 450 = 4050 мб
Аноним 12/06/22 Вск 01:07:11 2377530 1076
>>2377529
Идиот блять. С заказчиком, когда он тебе даст невнятное ТЗ тоже маняподсчеты вести будешь?
Аноним 12/06/22 Вск 01:10:05 2377532 1077
>>2377530
Там вся работа и проходил, сплошная угадайка. Заказчик пишет хуйню, ты ему в ответ манярасчёты, он тебе в ответ пишет, в чём ты не прав, и так до финального "согласовано, делайте".
Аноним 12/06/22 Вск 02:21:38 2377549 1078
>>2377529
>выводим причину из следствия
чел... тебя перепроверить попросили, а не вычислить то, что тривиально выводится из перечисленных данных. для проверки все равно нужно сравнить полученные тобой 4050МБ с исходным суммарным размером. это в каком-то классе учат или с образованием всё так плохо?
Аноним 12/06/22 Вск 03:12:35 2377558 1079
>>2377549
Каков вопрос - таков и ответ. Постановка задачи такова, что из следствия надо вывести только одну причину, и она будет единственной верной.
Аноним 15/06/22 Срд 02:20:08 2379988 1080
Есть ли смысл в []*BigStruct{}? Или лучше делать массив структур без указателя?
Аноним 15/06/22 Срд 05:59:43 2380004 1081
image.png 453Кб, 600x500
600x500
Аноним 15/06/22 Срд 08:56:11 2380067 1082
здарова гои, чё у вас по ооп?
Аноним 15/06/22 Срд 09:36:56 2380097 1083
>>2380067
Ничего, как и по ФП.
Некоторые шизы настаивают, что ООП есть, но на самом деле это всё равно что сишка со структурами и функциями.
Аноним 15/06/22 Срд 10:48:19 2380152 1084
Accept interface, return struct
Как это использовать в методах хендлера/юзкейса/репозитория? Создавать для каждой структуры геттеры полей? А если структура с дохуищей полей?
Аноним 15/06/22 Срд 10:56:52 2380164 1085
>>2380152
У тебя что, так много структур, где дохуища полей? Так генерируй.
Аноним 15/06/22 Срд 11:40:22 2380212 1086
>>2380097
понял понял, вычеркиваю
Аноним 15/06/22 Срд 11:40:53 2380213 1087
Горутина это аналог корутины? Аналог гринтлета? Или аналог треда? Нихера не понял
Аноним 15/06/22 Срд 12:39:24 2380262 1088
>>2286748 (OP)
Это правда что Жава пукает тредом на каждый новый реквест? А Гоха пукает горутиной? В чем плюс гохи тогда?
Аноним 15/06/22 Срд 12:43:33 2380264 1089
>>2380262
> Это правда что Жава пукает тредом на каждый новый реквест?
Нет, жаба берёт свободный тред из заранее созданного пула тредов, он и обрабатывает запрос. Если свободных тредов нет, ждёт, пока появится, но ждать надо мало.
> А Гоха пукает горутиной?
Да.
> В чем плюс гохи тогда?
Можно срать не снимая свитер.
Аноним 15/06/22 Срд 14:42:55 2380373 1090
>>2380264
>берёт свободный тред из заранее созданного пула тредов
Но нахера? Создание треда - довольно дешевая операция. Почему бы не создавать их динамически?
Аноним 15/06/22 Срд 14:50:10 2380378 1091
>>2380373
Нет, создавать нативные треды очень дорого, в отличие от горутин, к тому же нативные треды жрут много памяти.
Аноним 15/06/22 Срд 14:52:37 2380383 1092
>>2380378
32 Кб
В некоторых машинах 1 Мб

Много шо пиздец
Аноним 15/06/22 Срд 14:58:44 2380396 1093
>>2380383
"Некоторые машины" - это большинство, причём минимум 1МБ.
Ла, по сравнению с горутинами, которые можно спавнить тысячами, это охуеть как много.
Аноним 15/06/22 Срд 17:12:37 2380511 1094
>>2380212
Лучше бы пошел и сам изучил вопрос, чем слушать тут всяких.

>>2380097
Назови пожалуйста хоть один признак, по которому Го не ОО?
Аноним 15/06/22 Срд 18:54:50 2380587 1095
>>2380373
>Создание треда - довольно дешевая операция
для кабана?
Аноним 15/06/22 Срд 18:59:31 2380591 1096
>>2380152
ты там собрался все дто в интерфейсы запихнуть? интерфейсы про поведение, а не про данные, каковыми являются дто.
Аноним 15/06/22 Срд 19:19:28 2380610 1097
Здравствуйте господа Гоферы!

Пришел к вам за советом, вкратце опишу ситуацию.
Работаю уже как год и несколько месяцев на позиции инженером по нагрузочному тестированию, по многим причинам уже успел заебаться в следствии чего в начале апреля решил вкатиться в разработку выбрав язык go.

Прошу направить в нужную сторону и/или дать советов, насколько это реально, какие подводные есть. Правильно ли что делаю акцент на проектах в гитхабе или многим похую.

Сообщение может показаться сумбурным, но могу побольше рассказать о своем опыте и знаниях.
Аноним 15/06/22 Срд 19:34:13 2380621 1098
>>2380511
>по которому Го не ООП
Нет наследования (встраивание и композиция - не наследование)
Полноценно не соблюдается SOLID
Аноним 15/06/22 Срд 19:35:28 2380622 1099
>>2380610
Пробуй. Но не возникай потом, если тебя не будут даже на собесы звать т.к. "опыта мало". В го не вкатываются с нуля.
Аноним 15/06/22 Срд 19:40:35 2380625 1100
>>2380610
>по многим причинам уже успел заебаться
пили сториз
>Прошу направить в нужную сторону и/или дать советов, насколько это реально, какие подводные есть. Правильно ли что делаю акцент на проектах в гитхабе или многим похую.
хз. у тебя шансов больше чем у хуя который вкатывается с нуля. на гитхаб будет на 100% похуй, если ты будешь валиться на самом собесе. а для нормальной зепки скорее нужен опыт+удачный собес+предложение от соперника, а не гитхаб с нерабочими интернет-магазинами.
Аноним 15/06/22 Срд 19:57:36 2380633 1101
>>2380625
>пили сториз
Моя позиция особо востребована в банках из чего вытекает следующее
Самая большая проблема это крайне сильная бюрократия с цепями и миской риса. Вот пример, чтобы отладить скрипты мне приходиться подключаться к виртуальному пк через рдп а уже с него к другому пк. Обязанности распределены по ебанутому. Я как-то девопса просил скинуть конфиги постгреса и я ждал сука 3 ДНЯ БЛЯТЬ, хотя это делается в ОДНУ команду. Когда подключаешься через впн к внутренней сети банка тебе обрубают выход в интернет из-за чего приходиться писать бат костыли чтобы вернуть выход -_-
И конечно же перекидывание ответственности с одной команды на другую, я заебался за сегодня искать команду которая могла бы написать ебучие экспортеры на опеншифт и постгрес
Аноним 16/06/22 Чтв 09:19:42 2380835 1102
>>2380264
> Нет, жаба берёт свободный тред из заранее созданного пула тредов, он и обрабатывает запрос. Если свободных тредов нет, ждёт, пока появится, но ждать надо мало.
Так жаба говно получается? Значит её бессмысленно вертикально масштабировать. Надо горизонтально?
Аноним 16/06/22 Чтв 09:39:20 2380842 1103
>>2380835
Да. Только если стек не реактивный
Аноним 16/06/22 Чтв 11:52:43 2380935 1104
Можете подсказать, какие проекты можно сделать с параллельным программированием/жоскими алгоритмами, хочу солидный гитхаб.

Аноним 16/06/22 Чтв 11:54:45 2380936 1105
>>2380935
Ты же пацан еще, тебе рановато в го, Мужику не нужен "солидный" гитхаб, Мужик сам по себе имеет ценность
Аноним 16/06/22 Чтв 22:21:21 2381428 1106
>>2380621
ООП это не про наследование, совершенно необязательная его часть, которую нормальные люди как раз делают через композицию. Наследование это антипаттерн.

Солид это вообще маняфантазии из разряда "за все хорошее против всего плохого".
Аноним 16/06/22 Чтв 22:24:31 2381433 1107
>>2380621
Или ладно пох, в каком месте не соблюдается солид? Кем? А почему должен?
Аноним 16/06/22 Чтв 22:52:57 2381445 1108
>>2381428
> совершенно необязательная его часть
Для всё не обязательная часть, определим ООП как "возможность создавать структуры и передавать их в процедуры", и ООП будет хоть в ассемблере. Нет, нихуя так не работает, ООП либо есть, и оно как в крестах и жабах, либо его нет, и точка.
Аноним 16/06/22 Чтв 23:16:30 2381454 1109
>>2381445
ООП ради ООП? И именно такого как в Джаве/Плюсах? Или лучше все таки взять лучшие практики, а говно типа множественного наследования выкинуть нахер?

Если нужно как в Джаве - пиши на Джаве. Но это не значит, что раз не как в Джаве, то уже не ООП
Аноним 16/06/22 Чтв 23:24:13 2381458 1110
>>2381445
А если серьезно, база ООП - это полиморфизм. И его вполне достаточно для соблюдения твоего любимого СОЛИДа.
Инкапсуляция? Питон клал на инкапсуляцию и что теперь? Не ОО?

Какую уникальную возможность дает наследование так и не понятно. И чем хуже композиция? Вопрос не раскрыт
Аноним 16/06/22 Чтв 23:46:29 2381472 1111
>>2381454
>>2381458
Можно брать и лучшие практики, но не надо называть это ООП. Каким бы говном ООП ни было.
Аноним 16/06/22 Чтв 23:53:31 2381482 1112
>>2381472
Да почему не ООП то? Третий раз интересуюсь.
В чистой архитектуре нормально раскладывается, что является ядром ООП, а что второстепенно. Вполне конструктивно
Аноним 17/06/22 Птн 06:49:53 2381580 1113
вы далбаебы. если есть динамик диспач методов значит ооп. я сказал.
Аноним 17/06/22 Птн 11:24:25 2381718 1114
>>2380935
Напиши свой шедулер для кубера.
Аноним 17/06/22 Птн 12:07:42 2381738 1115
>>2381458
>база ООП - это полиморфизм
База ООП - это наличие объектов.
Аноним 17/06/22 Птн 13:55:51 2381826 1116
>>2381738
Базо объектов - это наличие классов.
Аноним 17/06/22 Птн 14:19:01 2381855 1117
>>2381826
Структура является объектом, но не является классом.
Аноним 17/06/22 Птн 14:22:56 2381859 1118
>>2381855
Некорректно объянил, но в общем понятие ООП не имеет значения, слишком абстрактное понятие, языки могут не являться ООП, но на них можно писать в ООП стиле. Хуету придумали, а долбоебы зафорсили.
Аноним 17/06/22 Птн 14:31:00 2381866 1119
>>2381859
> понятие ООП
Полиморфизм, инкапсуляция, наследование, классы, экземпляры классов, SOLID.
Аноним 17/06/22 Птн 14:33:18 2381868 1120
>>2381866
Это называется сахар, а не ОО.
Аноним 17/06/22 Птн 14:35:35 2381870 1121
>>2381868
В ОО важны как семантика, так и сахар.
Аноним 17/06/22 Птн 14:38:13 2381877 1122
Аноним 17/06/22 Птн 17:38:13 2382057 1123
привет, онаннисты.
Как думаете, Го хороший язык для вката?
Говорят, он довольно просто и что важно для меня - быстр (какие-то тесты показали что скорость уровня C++)
Но я понять не могу, что на нем можно сделать? Все-таки хотелось бы вкатываться с портфолио каким-нибудь
Аноним 17/06/22 Птн 17:50:37 2382068 1124
>>2382057
Хороший язык для вката это c#. Go узкоспециализированный, компактный, учится за неделю, но он для тех, кто знает, что ему нужно.
Аноним 17/06/22 Птн 17:56:29 2382079 1125
Аноним 17/06/22 Птн 18:00:58 2382086 1126
>>2382068
>учится за неделю
Я так уже "выучил" его за неделю, что был попущен на первом же собесе. Это несмотря на то что у меня опыта почти 3 года на беке
Аноним 17/06/22 Птн 18:17:48 2382095 1127
>>2382068
Ты траллируешь? Го сильно проще для вката
Аноним 17/06/22 Птн 18:28:11 2382100 1128
>>2382095
Сильно проще для изучения и сильно сложнее для вката.
Аноним 17/06/22 Птн 19:39:53 2382161 1129
>>2382057
>какие-то тесты показали что скорость уровня C++
Какие? Какие-то.
>что на нем можно сделать?
Микропенис, а потом еще один, а потом еще один, ..., а потом еще один, а потом тулзу для управления этими микропенисами.
Аноним 17/06/22 Птн 21:41:01 2382258 1130
>>2382161
Не С++, а С
Какие? Щас не могу найти ссылку на гит. Но там матем. вычисление лямбда-хуямбда что-то в этом роде.
Аноним 17/06/22 Птн 21:57:40 2382274 1131
>>2382100
Почему?
Ты просто не хочешь чтобы я зарабатывал 300к в наносекунду!
Аноним 17/06/22 Птн 23:08:10 2382326 1132
Мне тут в cpp треде кое кто рассказал, что в расте у вас охуенная система сборки, что все очень просто подключается, чуть ли не одной командой компилируется под все ОС. Это правда? Если да, то опишите кратко, пожалуйста, за счет чего это было достигнуто и почему в тех же плюсах этого нет
пока я твердо уверен, что у вас это не так работает, как мне описали
Аноним 17/06/22 Птн 23:16:26 2382332 1133
Аноним 18/06/22 Суб 05:05:56 2382447 1134
>>2382258
>матем. вычисление
Они задрочены уже настолько, что все компилируемые языки примерно на одном уровне.
Аноним 18/06/22 Суб 08:07:09 2382495 1135
Аноним 18/06/22 Суб 14:26:43 2382773 1136
Разве ГО не идеаленг для интернета вещей?
Для программирования дронов?
Аноним 18/06/22 Суб 14:55:23 2382820 1137
Аноним 18/06/22 Суб 21:26:57 2383139 1138
>>2382326
Ну если сравнивать с плюсами то да, система сборки это просто майндконтролл какой-то. Компилировать просто, зависимостями управлять просто, есть флаги компиляции под разные архитектуры. В плюсах этого нет, скорее всего потому что ему уже 40 лет, и деды-ебланы очень неохотно внедряют современные всеми привычные вещи в язык.
Аноним 18/06/22 Суб 23:03:35 2383174 1139
>>2382773
Для дронов вряд ли. Там все таки реалтайм нужен.
Для IoT - бля, мои мысли изложил. Только пидрилы из Tiny Go который год не могут запилить поддержку Wifi для ESP32. Если дождемся - заживем.
Аноним 18/06/22 Суб 23:39:17 2383192 1140
>>2382326
чтоб получить бинарь:
>go build

запускаешь

надо чтоб сорцы лежали в определенной иерархии, тогда все компилится, по началу непривычно может быть, но быстро втягиваешься
Аноним 18/06/22 Суб 23:40:54 2383194 1141
еще не припомню чтоб чтото компилилось больше 5 секунд, на крестах говорят можно пойти поспать во время компиляции
Аноним 18/06/22 Суб 23:44:02 2383197 1142
>>2383174
продолжение
И еще кстати не понимаю, почему МашОб"ом то так все плохо. Избавляемся от Питоновской лапши и скорости, сохраняя простату. Не ловим UB с плюсами. Не жизнь, а сказка.

Что имеем: кучу каких-то наколеночных решений для 1.5 задач и Горгонию для пацанов, закончивших MIT. Где мой Fit/Predict блять?

Вообще с библиотеками беда. 90% - 5-10К звезд, при этом разрабатывались три года назад какими-то ноунеймами.

Обидно, что такой замечательный язык так обделяют. Я бы вообще все на Го переписал.
Аноним 18/06/22 Суб 23:51:44 2383203 1143
>>2383197
>Избавляемся от Питоновской лапши
Орнул как представил, что заместо простого и понятного вызова вроде np.cross прогер хуярит простыню самописной хуеты
Аноним 18/06/22 Суб 23:56:36 2383205 1144
6a0105364a8fba9[...].jpg 207Кб, 500x654
500x654
>>2383197
>сохраняя простату
Аноним 19/06/22 Вск 00:01:15 2383206 1145
>>2383205
Ну вот примерно так себя чувствуешь, когда на каждый метод в Пандасе ищешь из 30 возможных аргументов нужный.

>>2383203
Как раз для этого и нужна хорошая библиотека, которую под Го пока не завезли
Аноним 19/06/22 Вск 00:04:40 2383207 1146
image.png 154Кб, 344x252
344x252
>>2383206
>пока
И не завезут. Потому что пикрил
Аноним 19/06/22 Вск 00:09:27 2383209 1147
>>2383207
Нет, ну сяду я, напишу хуету какую-то (не напишу, я не умею). И будет не 10 васянских мл библиотек, а 11. Тут нужен пуш фаанга
Аноним 20/06/22 Пнд 23:46:20 2384866 1148
заебали со своей чистой архитектурой пидоры. нахуй вы делаете 10 практически одинаковых объектов с дублирующимся кодом в десятке ебануто названных микропакетах, когда можно просто 10 методов у объекта сделать? пидарасы ебаные просто.
Аноним 21/06/22 Втр 11:23:39 2385092 1149
>>2384866
Вот станешь 300к нсек, будешь бухтеть и раздавать пиздюли. А пока надо грести и не задавать вопросов.
Аноним 21/06/22 Втр 16:24:49 2385393 1150
Аноним 21/06/22 Втр 16:38:50 2385407 1151
>>2385393
Забить хуй. И делать как считаешь целесообразным. Посмотри топовые проекты, там везде по разному.
То что какой-то хуй с горы написал что это golang standarts ничего не значи. А он реально хуй с горы, которому лишь бы директорий наплодить
Аноним 21/06/22 Втр 16:46:30 2385419 1152
>>2385393
Вот например, в корне три директории. build, scripts, tools - нахуя три директории, которые решают одну и ту же задачу. При этом Makefile у этого уникума лежит в корневом каталоге.
Директория vendor добро пожаловать в 2007.
web, website.
Аноним 21/06/22 Втр 17:06:28 2385451 1153
Я знаю, что всех тут уже заебал этот вопрос, но всё же: а в чем суть поинтера на интерфейс, и почему в функцию, принимающую поинтер нельзя пихнуть экземпляр стракта, который имплементит интерфейс?
Ну реально, если переменная типа интерфейс это пара из поинтера на данные и поинтера на первый элемент списка (или массива - я не ебу) методов, схуяли мы в рантайме не можем осознать, что это таки не сам интерфейс и перед проверкой типа сначала получить реальное значение?
Мб это как-то связано с оптимизацией пустого интерфейса?
Аноним 21/06/22 Втр 18:17:04 2385562 1154
>>2385407
>И делать как считаешь целесообразным
Опыт не позволяет понять целесообразность
Но окей, сделаю как получится, спасибо
Аноним 21/06/22 Втр 19:29:18 2385667 1155
>>2385451
а кто сказал что есть суть? кидай код. я вижу только возможность присвоить интерфейсу другое значение, полностью аналогичную интам и другой поинтер на хуйню хуйне. в живом коде от людей с экспириенсом не вижу подобной хуйни.
>>2385393
вообще похуй. у нас все мейны в cmd идут и я тоже так делал как вкатился. мейн в руте на второй работке видел, в принципе тоже норм. всякие тулзы там кроме главного бинарника в cmd кидал и вроде всем норм было.
а вот всё остальное что можно придумать я бы сказал не норм.
плюс ты ссылку ебаной кобры привел. это бля в принципе довольно специфичная хуйня для консольных утилит, которые построены именно на кобре. у сервисов в продакшене обычно нихуя "команд" нет и кобра нахуй не нужна. я бы даже сказал, что нормальным людям достаточно flag, потому что вы просто ебанутые если накидываете дохуя логики в флаги, заведите конфиг бля или сделайте по-нормальном.
Аноним 22/06/22 Срд 13:08:46 2386186 1156
>>2286748 (OP)
Обязательно ли ставить лок на мапу (или юзать sync.Map) если мы знаем что запись новых значений в нее будет идти лишь 1 раз по каждому ключу?
(спросили вчера на собесе, правильный ответ так и не сообщили)
Аноним 22/06/22 Срд 13:19:34 2386193 1157
>>2383197
Ты же понимаешь, что приличная доля питоновских машоб-вызовов требовательных к cpu это на самом деле cpp с питоновской обвязкой? или не понимаешь?
Аноним 22/06/22 Срд 17:40:51 2386456 1158
>>2386193
Понимаю, но тогда зачем очень часто продакшен модели переписывают под плюсы. Значит влияет
Аноним 22/06/22 Срд 17:43:37 2386457 1159
>>2386186
Хз, попробуй взять обычную и параллельно из нее почитать. Думаю что работать будет, но -race будет ругаться.
Ну и мантра про то, что надо думать на будущее и в последствии кто-то захочет писать в нее еще.
Вообще хз, может кто поопытней ответит.
Аноним 22/06/22 Срд 19:07:02 2386519 1160
>>2386457
Если race ругается, значит там есть проблема.
По поводу изначального вопроса, короткий ответ: нет, так как запись в мапу не атомарна и там под капотом может происходить много вещей от просто записи в бакет до перевыделения памяти под всю мапу.

>>2383197
Я неиронично думаю, что один из основных ништяков питона это его динамическая структура, это во-первых позволяет на лету эвалить какие-то участки кода, чуть ли не выделяя их мышкой, пробовать всякое не дожидаясь компиляции и так далее. Во вторых, питон динамический, что позволяет не думать о типах и писать говнокод, ту самую лапшу, которая конечно говно, но что ты ожидаешь от MLщиков? Они никогда не были про хороший код. Соответственно, чем меньше они думают о коде, тем лучше, говнокод писать быстрее и им не нужно ничего учить лишний раз.
Я бы уж тогда предложил им JS, который хоть и говно, так хотя бы быстрое, под капотом у V8 пиздец сколько оптимизаций.
Аноним 22/06/22 Срд 20:16:32 2386564 1161
>>2386519
Но при этом есть класс спецов, работа которых заключается в переписывании питоновской лапши под С++ с оптимизациями под ГПУ и процессор, получающих на уровне ДС"ов, а то и больше.

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

С другой стороны вроде как Горгония может в ONNX, так что ситуация становится проще, но тем не менее, так и остается маргинальщиной.

Хотя настоящая причина моего негодования в том, что я хочу поиграться в МЛ, но от Питона начинает тошнить
Аноним 22/06/22 Срд 20:22:06 2386567 1162
>>2386519
>на лету эвалить какие-то участки кода
Не думаю, что ДСы таким занимаются. По крайней мере ни разу не видел.
>позволяет не думать о типах
Опять же, разве в ДС нужно что-то кроме матриц флоатов и комплексных чисел?

То есть плюсы питона для ДС не очевидны
Аноним 22/06/22 Срд 20:23:25 2386569 1163
>>2386567
>на лету эвалить какие-то участки кода
Или ты имел ввиду Юпитер? Так он и под Го есть кек
Аноним 22/06/22 Срд 20:56:58 2386592 1164
Аноны, возникла такая задача. Функция может быть вызвана из множества горутин. При этом нужно, что бы выполнение началось только при первом вызове, а запросы пришедшие во время выполнения первого вызова игнорировались (или вызывающий был уведомлен о том, что функция уже выполняется).
Как это почище реализовать?
была мысль с RWMutex и булевым значением типа такого:

func (s struct) () {
s.mu.RLock()
isrunning = s.isRunning // bool
s.mu.RUnlock
if isrunning {
____return "already running"
}

s.mu.Lock()
s.isRunning = true
s.mu.Unlock()
выполняем нужные действия*

s.mu.Lock()
s.isRunning = false
s.mu.Unlock()

return "finished"
}

Но это прям каким-то говном кажестся. Прям реально извиняюсь, что вам пришлось это увидеть, но как сделать по-другому пока не представляю.
Аноним 22/06/22 Срд 20:57:26 2386593 1165
Аноны, возникла такая задача. Функция может быть вызвана из множества горутин. При этом нужно, что бы выполнение началось только при первом вызове, а запросы пришедшие во время выполнения первого вызова игнорировались (или вызывающий был уведомлен о том, что функция уже выполняется).
Как это почище реализовать?
была мысль с RWMutex и булевым значением типа такого:

func (s struct) () {
s.mu.RLock()
isrunning = s.isRunning // bool
s.mu.RUnlock
if isrunning {
____return "already running"
}

s.mu.Lock()
s.isRunning = true
s.mu.Unlock()
выполняем нужные действия*

s.mu.Lock()
s.isRunning = false
s.mu.Unlock()

return "finished"
}

Но это прям каким-то говном кажестся. Прям реально извиняюсь, что вам пришлось это увидеть, но как сделать по-другому пока не представляю.
Аноним 22/06/22 Срд 21:13:09 2386607 1166
Как в коде распологать структуры? Типа создавать отдельный файл types или structures и туда ебенить? Или просто в начале файла заебошить?
Аноним 22/06/22 Срд 21:18:44 2386617 1167
>>2386607
Ну если это основная структура пакета, что в начале. Вспомогательные в месте использования.
В отдельных файлах как-то не приходится. Если это не DTOшка какая-нибудь
Аноним 22/06/22 Срд 22:31:11 2386683 1168
>>2386607
ага. файлик structures.go
там рядом файлик interfaces.go
еще рядом functions.go
еще рядом methods.go
еще рядом constants.go
еще рядом variables.go
Аноним 22/06/22 Срд 22:37:20 2386687 1169
>>2386683
Ну и че ты выебуешься, я types видел в нескольких проектах. Щас заебашу клин кода, сделаю как у тебя и потом будешь так же писать
Аноним 23/06/22 Чтв 09:18:54 2386869 1170
>>2386687
>я types видел в нескольких проектах.
Зачем он там?
Аноним 23/06/22 Чтв 10:15:13 2386905 1171
>>2386869
Я откуда знаю? Возможно чтобы код не за засорять несколькими структурами для парсинга json
Аноним 23/06/22 Чтв 10:23:06 2386920 1172
>>2386905
>Я откуда знаю?
Зачем тогда приводить это в пример?
Аноним 23/06/22 Чтв 10:26:58 2386921 1173
>>2386920
Потому что возможно это знающие люди и так делать лучше...
Аноним 23/06/22 Чтв 10:30:38 2386926 1174
>>2386921
>возможно
>знающие
>люди
>так делать лучше
Толсто.
Аноним 23/06/22 Чтв 10:33:23 2386929 1175
>>2386926
А что не так? Нужно постоянно смотреть как делают другие и это анализировать, иначе развитие будет идти медленнее
Аноним 23/06/22 Чтв 10:41:14 2386934 1176
>>2386929
>А что не так?
Без понимания, ты можешь унаследовать чужие ошибки.
Аноним 23/06/22 Чтв 10:48:47 2386940 1177
>>2386934
Ну вот на авторитетном оранжевом форуме спросил, это добавило понимания, что не так?
Аноним 23/06/22 Чтв 13:22:20 2387026 1178
image.png 182Кб, 512x512
512x512
image.png 89Кб, 300x300
300x300
image.png 98Кб, 300x300
300x300
image.png 109Кб, 512x512
512x512
>>2301812
>Буквально на днях вентилировал этот же вопрос
Аноним 23/06/22 Чтв 13:45:15 2387053 1179
Аноним 23/06/22 Чтв 13:55:32 2387063 1180
>>2380262
>Жава пукает тредом на каждый новый реквест
Если брать обычный спринг с обычным Tomcat сервером, то в целом да, там был тредпул, и оттуда брался свободный тред.
Еще есть webflux на netty, там все асинхронное, никакого жесткого долблебния в тредпулы нет.

Сейчас осенью выйдет JDK19, где уже будет Loom. С осени на жабе можно будет пукать виртуальными потоками точно так же, как это сейчас в го делают.
Аноним 23/06/22 Чтв 13:57:03 2387064 1181
>>2375757
Есть же стажировки в яндексе, озоне и вайлдберисе. Наверное еще и в авито есть.
Озон и вб сейчас должны расширяться, так как параллельный импорт набирает обороты + ушли с рынка всякие торговцы шмотками и мебелью и еще кучи всякого другого
Аноним 23/06/22 Чтв 14:02:52 2387069 1182
>>2364615
В го вкатуны не нужны толком. Если не осилил войти в какой-нибудь помойный вайлдбериз стажером, то лучше забей и ищи работу где-нибудь в других стеках, в той же пыхе мб что-нибудь и найдешь (гошка плюсом будет возможно).
Вообще сейчас на гошу переходить особо никто не будет, так как это деньги и время, а сейчас времена очень жидкие и неспокойные. Вкладывать хуй пойми сколько миллионов в переписывание легаси параши с пхп на го желающих сильно поубавилось.
Аноним 24/06/22 Птн 12:02:25 2387736 1183
Аноны, можете посоветовать где улучшить навыки параллельного программирования? Есть какие-то упражнения или классное видео, которое классно объясняет как это все работает.
Аноним 24/06/22 Птн 12:23:19 2387750 1184
>>2387736
Попробуй для начала разом отсосать 4 члена, там понимание приходить и начнет
Аноним 24/06/22 Птн 12:31:25 2387757 1185
image.png 258Кб, 406x500
406x500
image.png 76Кб, 250x328
250x328
image.png 217Кб, 568x718
568x718
>>2387736
>улучшить навыки параллельного программирования
Классных видео или упражнений, чтобы легко, просто и без задней мысли прокачать concurrency попросту нет.

Смотри эти лекции

https://www.youtube.com/playlist?list=PL4_hYwCyhAva37lNnoMuBcKRELso5nvBm

https://www.youtube.com/playlist?list=PL4_hYwCyhAvYTxm55RBm_HA5Bq5W1Nv-R

Делай домашки отсюда
https://gitlab.com/Lipovsky/concurrency-course

Читай талмуды пикрил, а также всевозможные статьи по теме моделей памяти, атомиков + всякие прикольные штуки по типу Software transactional memory, structured concurrency, и т. д., для этого возможно придется погрузиться в разнообразные пропозалы или даже научные статьи на arxiv.org.

В общем, если все это осилишь, то наверное что-нибудь и поймешь в многопоточке и конкарренси, я тебе гарантирую.
Аноним 24/06/22 Птн 16:34:15 2387945 1186
>>2387750
Я в глухой деревне и не могу пока твоим советом воспользоваться, расскажешь каково это изучать параллельное программирование?))
Аноним 24/06/22 Птн 20:37:35 2388251 1187
>>2387053
То, что нужно, спасибо!

Насколько я понял, реализовать мой случай можно таким образом:
1) Добавляем в структуру поле *sync.Once
2) При вызове функции
----выполняем функцию через once.Do(Fn), параллельные вызовы блокируются
----В конце успешного вызова функции делаем once := new(sync.Once), чтобы по окончании можно было вызвать ее снова в будущем.
Аноним 24/06/22 Птн 22:25:31 2388342 1188
>>2388251
И ты таким образом переносишь гонку в `once := new(sync.Once)`. Мьютексы это норм решение и тебе нужно просто +- изящно структурировать код. Советую тебе сначала проверять isRunning атомиком, а потом просто открывать мьютекс и фигачить. Примерно так:
https://goplay.space/#txO7srv9M2F
Аноним 24/06/22 Птн 22:26:32 2388346 1189
Аноним 24/06/22 Птн 23:09:24 2388364 1190
>>2388251
>once := new(sync.Once)
ага, теперь незобудь once мутексом оградить.
если тебе нужно снова вызывать её после завершения, то ты по всей видимости mutex.TryLock из 1.18 хочешь. но если ты его хочешь, то ты что-то неправильно делаешь.
Аноним 24/06/22 Птн 23:14:40 2388367 1191
>>2388342
А зачем так сложно? Всю функцию можно упростить, используя только atomic.CompareAndSwapInt32
Аноним 25/06/22 Суб 00:36:22 2388402 1192
>>2388367
Потому что я на го программировать начал тогда, когда CompareAndSwapInt32 ещё не было, забыл про неё. По идее да, должно сработать.
Аноним 25/06/22 Суб 00:47:41 2388407 1193
>>2388342
>>2388346
Так Once обновляется в единично запущеной функции, так что гонки быть не должно. Разве нет?
Аноним 25/06/22 Суб 00:52:59 2388412 1194
>>2388346
Кстати интересный код, спасибо большое. Атомик как-то не трогал пока да и страшновато.
>>2388407
Но вот этот вопрос остается открыт. Т.е. new(once) происходит в функции запущенной под предыдущим once.Do(), соответственно вызывается один раз и гонку не создает
Аноним 25/06/22 Суб 01:14:27 2388436 1195
>>2388407
>>2388412
Теоретически должно сработать, но воспринимается если честно как хак, перевыделять память под once внутри его же коллбека, такое не очень принято и мб не очень оптимально, в отличие от просто атомика / мьютекса. Хотя конечно экономия на спичках в данном случае.
Аноним 25/06/22 Суб 09:52:10 2388511 1196
>>2388436
>>2388412
>>2388407
вы чего.
теперь скажите что тут нет рейса потому что v обновляется из единично запущенной функции.

v := 1
go func () { v = 2 }()
fmt.Println(v)
Аноним 25/06/22 Суб 12:22:36 2388559 1197
>>2388511
Кстати да, мы же в других горутинах обращаемся к once в этот момент. Не учел, спасибо! Видимо действительно придется вникать в atomic
Аноним 25/06/22 Суб 21:21:05 2388999 1198
Аноны, спасибо большое за советы, в итоге получилось так. Возможно накосячил в английском, но работает как надо

func (s *PServer) Update() error {
____if !atomic.CompareAndSwapUint32(&s.updatingNow, 0, 1) {
________// updatingNow != 0: Update() already called at the moment
________// so no need to call it again until the first call completes: this call will be ignored
________return nil
____}
____// Else: updatingNow == 0: There are no other goroutines that execute Update function now.

____// After Update function's end PServer.updatingNow is set 0 (false),
____// so the next Update() call will be executed
____defer atomic.StoreUint32(&s.updatingNow, 0)

...собственно выполнение самой функции...
____return nil
}
Аноним 26/06/22 Вск 18:17:48 2389734 1199
Через несколько дней собес по го, подскажите, что можно подготовить помимо вопрос из поисковика? Как у вас проходили собесы?
Аноним 26/06/22 Вск 19:11:03 2389778 1200
>>2389734
На хабре была годная статья по вопросам на Го собес. Поищи.
Ну и также на Хабре по устройству сборщика, горутин.
Аноним 26/06/22 Вск 20:21:40 2389855 1201
>>2389778
Как раз по ней готовился (если мы об одной) в двух частях. Спасибо
Аноним 27/06/22 Пнд 02:39:21 2390090 1202
>>2286762
Не забудь весь рантайм перекопать прежде чем нормальную программу напишешь.
Аноним 27/06/22 Пнд 02:45:49 2390092 1203
>>2390090
Зачем его перекапывать? Нормальные программы и без этого пишутся, чего нельзя сказать про Go.
Аноним 27/06/22 Пнд 04:06:46 2390098 1204
>>2390092
Нормальные это хелловорды на WPF с приминением паттернов, ведь сразу нормально сделать было нельзя, и вообще любим это легаси говно тащить за собой в .NET Core.

Кстати, что с неймингом?

Не забудь про ключевые слова readonly, fixed, ref и разные контексты их использования. С другой стороны LINQ.

Microsoft превратила свой язык в какие-то питоно-кресты: с одной стороны куча нюансов, ансейф код - с другой ванлайнеры с линком и его охуенной производительностью.
Аноним 27/06/22 Пнд 17:56:24 2390519 1205
image.png 10Кб, 841x133
841x133
Доброго времени суток аноны гоферы, пишу вам за советом.
Подскажите пожалуйста, вот я шлю запрос в БД и у меня в таблице есть столбец с NOT UNIQUE.
И когда я специально шлю запрос с дублирующим полем, программа выкидывает ошибку и и выход из выполнения.
Вот какой способ можете порекомендовать чтобы программа из выполнения не выходила, пробовал ошибку обработать но что-то не получается.
P.S. Да, я понимаю что вопрос может показаться пиздец таки тупым но хотел с пообщаться с опытными гоферами.
Аноним 28/06/22 Втр 11:46:27 2391084 1206
>>2390519

А что за ошибка то? Паника или ты сам принтишь ошибку, которую возвращает функция?

BTW
Если поле NOT UNIQUE - это значит, что повторяющиеся значения могут быть. Имелось ввиду просто UNIQUE?
Аноним 28/06/22 Втр 13:33:31 2391169 1207
>>2391084

>Если поле NOT UNIQUE - это значит, что повторяющиеся значения могут быть. Имелось ввиду просто UNIQUE?
Да, опечатался, имел ввиду что есть столбцы с UNIQUE ограничением.

>А что за ошибка то? Паника или ты сам принтишь ошибку, которую возвращает функция?
Для логирования использую библиотеку логрус
Вот ошибка с консоли:
{"level":"fatal","msg":"pq: duplicate key value violates unique constraint \"book_book_title_key\"","time":"2022-06-28T16:26:01+06:00"}

exit status 1


И я походу понял в чем проблема, короче решил я поменять логрус на стандартную библиотеку лог.
1. Шлю запрос с дублирующими данными
2. В консоли получаю ошибку и программа дальше выполняется
3. А логрус выкидывает exit status 1 и выходит из выполнения

Если я перепишу на стандартную библиотеку log, мне кажется что это будет считаться костылем и не решенной проблемой, как думаешь?



Аноним 28/06/22 Втр 13:40:24 2391177 1208
>>2391169
С логрусом не работал, но судя по всему, он считает такую ошибку критичной и крашит программу. Возможно, это поведение можно изменить в либе
Аноним 28/06/22 Втр 13:42:08 2391181 1209
>>2391177
Ну либо ты сам логируешь не через Принт (или его аналог в логрусе), а через Fatal
Аноним 28/06/22 Втр 13:43:57 2391185 1210
>>2391181
Вот только хотел отписаться, попробовал вместо logrus.Fatal logrus.Println и он с выполнения не выкидывает
Аноним 28/06/22 Втр 14:26:39 2391242 1211
image.png 11Кб, 666x155
666x155
Епты бля че для логирования использовать? Вот есть такая хуйня как на пике, но это же пиздос такое делать, потому что это каждый раз нужно файл открыть, записать лог и закрыть. Мб есть фреймворки годные?
Аноним 28/06/22 Втр 14:32:24 2391250 1212
Кстати, анончики, почему вы решили обозначить Го как самый мужественный язык?
Потому что стрейт форвард? Тупой и работает (в хорошем смысле)?

>>2391242
Так точно не нужно делать. Херачь все в стдоут, девопсы разберутся. Ну или ты сам путем $ ./programm > log.txt
Аноним 28/06/22 Втр 14:36:34 2391254 1213
>>2391242
Если очень хочется все таки в коде файл открывать, вызываешь log.SetOutput(w io.Writer), куда передаешь открытый файл и не трогаешь его пока программа не завершит работу.
Аноним 28/06/22 Втр 14:54:28 2391275 1214
>>2391242
>такая хуйня как на пике
Ты этот кусок /b-тредах нашел?
Аноним 28/06/22 Втр 15:01:54 2391286 1215
16436254893130.png 251Кб, 579x643
579x643
Аноним 28/06/22 Втр 21:52:26 2391688 1216
image.png 39Кб, 1172x619
1172x619
Аноны насколько хорошая идея создавать сеты для работы с повторяющимися файлами?
Например у меня есть 20 картинок, которые можно сравнивать по размеру и объему. Уникальная картинка добавляется в сет и дубликаты просто на неё ссылаются.
И есть ли в go кастомные сеты из структур, чтобы не писать одинаковые для каждой структуры?

Понятно, что можно их отсортировать по весу и потом сделать какой-то более быстрый поиск, это все опустим
Аноним 28/06/22 Втр 23:08:27 2391731 1217
Аноним 29/06/22 Срд 00:14:06 2391767 1218
Аноним 29/06/22 Срд 02:08:27 2391805 1219
>>2391169
1) Стандартный логгер это говнище, которое не умеет примерно нихуя и кстати это один из стандартных вопросов на собесах, недостатки стандартного логгера;
2) Вообще говоря, os.Exit вообще мерзкая функция, особенно если вызывать её не в main, поэтому вызов её в внутри внешней библиотеки это моветон;
3) Но тут авторы логрус не виноваты, потому что стандартный гошный логгер ведет себя так же, тоже сразу завершает всё при фатале. Смирись и просто запомни, что с легкой руки пидорасов, которые писали стандартный логгер (вот только хуже сделали, ей богу), в гошном мире теперь принято так;
4) Но при этом вообще говоря фатал никто не использует иначе, как выругаться об ошибке и сразу всё завершить, в продакшен коде ты скорее всего log.Fatal не увидишь;
5) Сам по себе os.exit кстати та ещё срань, потому что не вызывает уже зарегистрированные defer'ы.
Аноним 29/06/22 Срд 05:59:22 2391834 1220
>>2391805
Хм, понял тебя. Спасибо за такой развернутый ответ!
Аноним 29/06/22 Срд 14:05:13 2392113 1221
Посоветуйте хорошие проекты на Гитхабе, на которых можно поучиться best practice по:
1) Тестированию
2) Логированию
3) Взаимодействию с БД

Собственно в чем проблема. Большая часть популярных проектов - библиотеки либо тулинг, соответственно смотришь только на куцые юнит тесты функций. О логировании и БД речи вообще не идет. Либо какие-то project-example, где тривиальная логика, а взаимодействие с БД ограничевается CRUD методами на одну таблицу.

Есть что-нибудь с +- продвинутой бизнес логикой, работой с БД, и прочими ништяками, при этом сделанных по уму.

В книгах тоже, к сожалению, вижу только бесконечные примеры в package main, которые к реальному проекту имеют весьма посредственное отношение и показывают только то как дергать нужные функции, при этом не понятно, как встраивать это в архитектуру приложения.
Аноним 29/06/22 Срд 14:06:33 2392116 1222
>>2392113
Ну то есть что-то типа real-world application посложнее простого CRUD
Аноним 29/06/22 Срд 16:04:11 2392188 1223
>>2392113
К сожалению таких нет, тем более что многие гошники вообще про организацию когда никогда не слышали.

я всё хочу написать какой-нибудь пример сам, но руки не доходят. Рекомендую почитать про ddd, гексагональную и слоистую архитектуру, что-то для себя поймешь.

У меня структура обычно выглядит так
/cmd - тут консольные команды типа run, migrate и так далее
/internal/domain/entity - структуры сущностей и интерфейсы репозиториев
/internal/domain/service - сервисы из предметной области
/internal/app/scenario - сценарии ака юзкейзы ака операции, скажем "регистрация юзера"
/internal/app/service - специфичные сервисы именно для слоя приложения
/internal/infra/postgres - реализации репозиториев, в гексагональной архитектуре это секондари адаптеры
/internal/infra/grpc - реализации сервера, в гексагональной архитектуре это примари адаптеры


Получается так, что /cmd поднимает приложение, внутри него поднимается реализация сервера /internal/infra/grpc
Этот grpc сервер внутри себя при получении внешнего запроса вызывает конкретный сценарий из слоя сценариев приложения.
Сам сценарий внутри себя оперирует сущностями, интерфейсами репозиториев и сервисами из доменной области, которая domain.
Реализации репозиториев лежат к примеру в /internal/infra/postgres

В итоге получается такая цепочка
Клиент вызывает grpc register_user -> grpc register_user вызывает сценарий "регистрация юзера" -> сценарий берет репозиторий Users и вызывает метод Create -> ответ возвращается в обратной последовательности.

Но у меня серьезное приложение, большой домен, много адаптеров, grpc, http, кафка, несколько бд, кеши и так далее, так что мы серьезно вложились в структурирование кода.
Аноним 30/06/22 Чтв 01:47:07 2392602 1224
>>2392188
>/internal/domain/entity
>/internal/domain/service
>/internal/app/scenario
>/internal/app/service
"как сделать много папочек и не сказать путем ровно ничего для чайников"
Аноним 30/06/22 Чтв 01:50:05 2392605 1225
>>2392113
сорсы твича скачай если хочешь увидеть рил ворлд хуиту
Аноним 30/06/22 Чтв 12:06:59 2392770 1226
>>2392188
Спасибо за ответ. Достаточно полезно с точки зрения архитектуры приложения, хотя мне бы посмотреть уровнем ниже, как это все организуется в коде.
Как писать модульные/интеграционные тесты и тест-кейсы. Как именовать функции интерфейсов репозиториев и подобное.
Аноним 30/06/22 Чтв 21:47:46 2393160 1227
>>2392770
Я бы с радостью заопенсорсил свой код, но у меня крупная закрытая контора финтех и такого конечно никогда не будет.

Давай попробую просто поотвечать на твои вопросы, немного псевдокодом.

> Как писать модульные/интеграционные тесты и тест-кейсы

Самое главное, разбить код на сценарии, чтобы понимать, что ты тестируешь. Далее берешь testify, и заводишь по сьюиту на сценарий, примерно так выходит:

type SuiteRegisterUser struct {
users entity.Users
client http.Client
}

func (s
SuiteRegisterUser) BeforeTest(_, _ string) {
// делаешь инжекты в s, создаешь репозитории, поднимаешь сервер или мок-сервер если надо и всё такое
s.client = http.NewClient()
s.users = postgres.NewUsersRepo()
}

И соответственно начинаешь описывать различные кейсы конкретного сценария:

func (s SuiteRegisterUser) TestAlreadyExists() {
// подготовка данных, если необходимо
const email = "blabla@gmail.com"
ctx := context.Background()
s.Require.NoError(s.users.Create(ctx, &entity.User{Email: email}))

// производишь сценарий
_, err := s.client.Post("/register_user", map[string]interface{}{"email":emaiil})


// проверяешь результаты сценария, если вдруг нужно
s.Require().Error(err, "err_already_exists")
// в другом примере можно было бы найти юзера, чтобы убедиться, что он создался
}

Это пример полнофункционального юнит теста, при котором ожидается, что он поднимет сервер, законнектится к базе и проверит весь код в максимально боевых условиях. Конечно разные люди делают по разному, есть подходы, когда мокают базу, сервер и тд и тп.
Тут у тебя может возникнуть очевидный вопрос, как поднимать базу, если поднимать, я пробовал testcontainers и мне не понравилось, в итоге остановился на том, что в докере поднимаю прям постгрес (или локально или в пайплайне) и через переменные окружения прокидываю доступы в сам тест: TEST_DB_NAME=blabla go test ./...

> Как именовать функции интерфейсов репозиториев и подобное.

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

package entity

type User struct {
ID string
Email string
CreatedAt, UpdatedAt time.Time
}

var (
ErrAlreadyExists error
)

type Users interface {
Create(ctx context.Context, user
User) error // can return ErrAlreadyExists
Update(ctx context.Context, user User) error
FindByEmail(ctx context.Context, email string) (
User, error)
}

И уже внутри internal/infra/postgres реализация интерфейса:

package postgres

var _ entity.Users = (UsersRepo)(nil)

func NewUsersRepo( db
sql.DB) UsersRepo {
return &UsersRepo{
db: db,
}
}

type UsersRepo struct {
db
sql.DB
}

func (r UsersRepo) Create(ctx context.Context, user entity.User) error {
row, err := r.db.QueryRow("insert into users email) values ($1) returning id, email, created_at, updated_at", user.Email)
if err != nil {return err}

if err := row.Scan(&user.ID, &user.Email, &user.CreatedAt, &user.UpdatedAt); err != nil {return err}

return nil
}

Как-то так. Внутри репозитория можно хардкодить запросы, собирать их с помощью билдера и тд, разных подходов много, я тут написал самый тривиальный псевдокодный вариант. Весь прикол в том, чтобы отделить специфику реализации от самих операций над сущностью, с помощью интерфейса. Чтобы у тебе в бизнес-коде не появилось внезапно бд-специфичного кода.
Аноним 30/06/22 Чтв 22:09:45 2393173 1228
>>2393160
привет анон! подскажи пожалуйста, вопрос не по теме будет, а в чем разница между мидлтварями сервисами, репозиторий я понял, эта та сущность которя с бд работает, а в чем разница между ними то обеими, так то получается они логику сервиса обрабатывают не?
Аноним 01/07/22 Птн 02:39:12 2393317 1229
>>2393173
Не совсем понял вопрос, в чём разница между миддлварями и сервисами? Или между сервисами и репозиториями?

Первые два - это совсем разные вещи.
Middleware это просто прикладной паттерн, который говорит о том, что бывают "прослойки" с полезной нагрузкой для каких-нибудь вызовов. Получается что-то очень схожее с декораторами.
А сервисы это некие отдельные логические единицы, относящиеся к теме моделирования предметной области.

Так, нет, давай зайдём с другого конца. Когда ты пишешь какой-то серьезный софт, то ты действуешь в терминах предметной области, скажем, магазина. Это означает, что вообще в бизнесе существуют такие вещи как "заказ", "доставка", "покупатель" и тд и тп, это история даже не про код, это часть реального мира.
И ты для решения каких-то бизнес задач (скажем, интернет магазина), эту предметную область моделируешь. Если ты слышал когда-нибудь термин "модель", то скорее всего её кто-нибудь безграмотно употреблял в смысле "штука, которая хранится в базе" или "модель бд". А на самом деле весь твой интернет магазин - это некая модель бизнес процессов, как у физиков, когда они вулкан моделируют какой-нибудь к примеру.

Соответственно, у тебя есть какой-то юзкейз ака сценарий, скажем, "оплата заказа" и тебе нужно его выразить его средствами твоей модели.
Тут мы придём к анемичным или богатым моделям, про которые я советовал почитать выше.

Если модель богатая, тогда у тебя всё должно быть выражено напрямую через сущности. Что-то вроде такого:
function ScenarioInstantPurchase(user, product, payment) {
cart := user.GetCart()
cart.AddProduct(product)
order := cart.CreateOrder()
order.AddPayment(payment)
order.CalculateDelivery()
// ... и тд
}

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

function (s *Scenario) ScenarioInstantPurchase(user, product, payment) {
cart := s.cart.AddProduct(cart, product)
order := s.orders.CreateFromCart(cart)
s.payments.CreateForOrder(payment, order)
s.delivery.Calculate(order)
// ... и тд
}

и здесь уже репозитории и сервисы похожи, иногда до степени смешения, на код выше посмотришь и не поймешь, что такое cart - это сервис или репозиторий?

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

И из этих кубиков ты в слое приложения (app) собираешь сценарии ака юзкейзы. Которые потом будешь вызывать откуда тебе там надо, из сети, консоли, интерфейса, тд
Аноним 01/07/22 Птн 02:42:21 2393319 1230
>>2393317
> Советую смотреть на это так, что пакет domain это такой фреймворк для сборки бизнес процессов, в нём есть сущности (entity), хранилища для непосредственных операций над сущностями (разнообразные круды и селекты) - это репозитории и сервисы, хранящие в себе прям логику.
В смысле три разные вещи:
1) сущности - описывают объекты
2) репозитории - напрямую чёто делают с объектами
3) сервисы - какие-то логические штуки, вычисляторы, организаторы, тд
Аноним 01/07/22 Птн 09:16:49 2393357 1231
>>2393317
Спасибо тебе большое за такой развернутый ответ!

Такой ещё вопрос (был бы рад если и другие опытные гоферы подскажут) пишу свой CRUD сервис с 8-10 ендпоинтами, БД постгрес, авторизация и регистрация присутствует (JWT токен использую), все изменения в гитхаб пушу стабильно. Тянет ли это на сильного джуна? Сейчас работаю тестером нагрузочником бекенд сервисов в одном из банков в рф (зеленый если что), вот думаю перекатиться в разработку на гошке
Аноним 01/07/22 Птн 12:04:30 2393448 1232
>>2393357

Я не опытный гофер (и не этот анон>>2393317), просто вонаби гофер, даже не из ИТ. В общем погружаюсь уже около 2 лет, первый из которых страдал херней на питоне и Сях, а последний сижу за Го, к сожалению не занимаюсь каждый день, из за чего растянул процесс вката пиздец.

Так вот. Недавно услышал такой совет: "просто и без задней мысли начинаешь искать работу". И вообще забить на все, потому что учиться можно бесконечно. Исходя из того, что ты написал, я бы начинал искать работу прям сейчас. Еще и прошлый опыт +- пересекается.
Аноним 01/07/22 Птн 12:17:01 2393458 1233
>>2393448
пчел спасибо за поддержку, но ты наверное и сам знаешь как трудно найти работу на гофера, мой единственный выход это пилить пет проекты. Ты удивишься но мой опыт где я больше года занимаюсь НТ и успел ещё полгода АТ позаниматься, вообще ни в пизду ни в красную армию оказалось в контескте вакансии на гофера. Так что как-то так оказалось....
Аноним 01/07/22 Птн 12:23:23 2393464 1234
Аноним 01/07/22 Птн 12:45:55 2393484 1235
videoplayback.mp4 701Кб, 480x480, 00:00:09
480x480
>>2393464
волк слабее льва и тигра но на джаваскрипте не пишет бекенд
Аноним 01/07/22 Птн 13:06:49 2393513 1236
>>2393357

Почему бы и нет? Главное помнить, что пет проект - это всего лишь пет проект, это хорошо, но ещё не всё. Вывод, что ты "сильный джун" будет делать чел, который тебя собеседует. И да, разница между сильным джуном и миддлом довольно невелика и вероятно в основном в величине зп :D

С моей точки зрения грейды различаются так:
1 стажер вообще ничего не знает
2 джун что-то знает и что-то умеет, но как это применить - нет
3 миддл стабильно и правильно делает задачу по техническому описанию
4 сеньор и сам себе техническую задачу напишет, от бизнеса ему нужен только кивок в нужную сторону

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

Кстати вообще не факт, что тебе нужен jwt или что ты его правильно используешь. Просто к слову, если ты юзаешь что-то, будь готов ответить, почему ты это используешь и чем оно лучше другого.
Аноним 01/07/22 Птн 14:00:51 2393557 1237
Такой вопрос. Пишу обновляемый хендлер. В текущем виде с моими маня-тестами работает как надо. Возникает вопрос, при высоких RPS есть вероятность, что функция Update будет долго ждать, пока не прекратятся вызовы ServeHTTP?

Если да, то можно ли в таком случае запускать вложенный ServeHTTP в отдельной горутине (пометил жирным)? Сохранится ли "копия" хендлера для активных вызовов (пришедших до запроса на Update, но еще не отработавших) или ее изменение в структуре вызовет сатану?

type UpdHandler struct {
____mu sync.RWMutex
____h http.Handler
}

func (uh UpdHandler) Update(h http.Handler) {
____uh.mu.Lock()
____uh.h = h
____uh.mu.Unlock()
}

func (uh
UpdHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
____uh.mu.RLock()
____uh.ServeHTTP(w, r) // --> go uh.ServeHTTP(w,r)
____uh.mu.RUnlock()
}
Аноним 01/07/22 Птн 14:03:00 2393559 1238
>>2393557
Опечатался, внутри ServeHTTP естественно идет UpdHandler.h.ServeHTTP, рекурсии нет
Аноним 01/07/22 Птн 14:20:28 2393582 1239
>>2393513
в моем маня-представлении это будет учебный проект для маслят которые хотят вкатиться в нагрузочное тестирование. Так как начинающим НТшникам нечего тестировать. Если тем же условным мануал куа можно любой сайт открыть и протестить то с НТшниками посложнее, нагружаемый сервис может подумать что это дудос и забаних нахой айпишник маслёнка НТшника. А так как сервисы на архитектуре рест самые популярные в бекенде, то им достаточно будет развернуть мой проект на той же виртуалке и потестить написав скрипты на jmeter, loadrunner, k6 и т.д.

как тебе идея?
Аноним 01/07/22 Птн 18:46:00 2393793 1240
>>2393582
Хз, зачем кому-то так заморачиваться. Хочешь что-то нагрузочно протестить - делаешь `docker run -p 3000:80 ealen/echo-server` и вперед. Ну или nginx в докере поднять, со специфичными конфигами.

Так-то объект тестирования внутри вообще не должен быть ни гибким, ни как-то особо написанным. Просто какой-то тупой http сервер с каким-то профилем нагрузки.
Максимум

go run server.go

где server.go это

func main() {
http.HandleFunc("/hello", func (w http.ResponseWriter, req *http.Request) {
// ну тут можно ещё в базу стукнуться или семафор на 100 одновременных запросов поднять для тестов.
fmt.Fprintf(w, "hello\n")
})
http.ListenAndServe(":8080", nil)
}

В-общем, если ты делаешь пет проект как тестировщик, не программируй, а делай штуку для тестирования, максимум пользы, минимум излишеств. Не нужно тут ничего самому программировать, просто предоставить людям заглушку для тестов.
А если ты делаешь пет проект как программист, то тогда это не должно быть учебным пособием для тестировшиков, а должен быть некий близкий к реальности программный продукт, который покажет твои навыки писать, собственно, программные продукты. Сделай, не знаю, тот же интернет магазин к примеру, бложек, туду лист, куча вариантов. Я в качестве своего первого пет проекта лет уже почти 10 назад сделал копию музыки вконтакте, сервис, в который можно было заливать файлики с музыкой и потом слушать их онлайн ^_^


Аноним 01/07/22 Птн 18:56:55 2393806 1241
>>2393557
Из спеки rwmutex:

> If a goroutine holds a RWMutex for reading and another goroutine might call Lock, no goroutine should expect to be able to acquire a read lock until the initial read lock is released.

Всё ок будет.
Аноним 01/07/22 Птн 19:00:29 2393811 1242
>>2393793
бля оч круто звучит слушай. я тебя понял, просто моя основная идея была в том чтобы написать сервис который был бы близок к реальному продукту, чтобы как ты сказал прокачать навыки программирования а уже потом только пришла в голову предложить стажерам качать навыки НТ на нем. Но все же спасибо за такой развернутый ответ :)
Аноним 01/07/22 Птн 20:28:28 2393892 1243
>>2286748 (OP)
$ migrate create -ext sql -dir db/migrations -seq create_users_table

> error: unknown option `-x'


Аноны, с чем это может быть связанно ? Не могу сделать миграции, хотя делаю все согласно доке, какая то фигня с флагом. Подскажите, пожалуйста
Аноним 01/07/22 Птн 20:30:47 2393897 1244
>>2393557
тебе обновление хендлера нужно блочить во время выполнения?
просто делаешь
RLock
h := uh
rUnlock
h.ServeHTTP
а твоя штука с горутиной наверняка будет неожиданно работать, если где-то ожидается, что servehttp блочит на время выполнения.
Аноним 01/07/22 Птн 20:31:53 2393901 1245
>>2393897
>а твоя штука с горутиной наверняка будет неожиданно работать, если где-то ожидается, что servehttp блочит на время выполнения.
как пример мидлвары которые после servehttp что-то делают например длительность измеряют.
Аноним 01/07/22 Птн 23:49:45 2394030 1246
>>2393897
В идеале обновлять одновременно с выполнением. Что бы запросы направленные до запроса обновления корректно завершились.

>твой вариант
http.Handler это же интерфейс и мы просто скопируем ссылку на функцию. И после RUnlock ее свободно могут изменить -> в h.ServeHTTP будет гонка. Разве не так?
Аноним 02/07/22 Суб 00:16:41 2394041 1247
>>2393806
Вот как раз таки из-за этого и боюсь, что вызов Апдейта будет отложен на неопределенное время. Или Lock встает в своего рода очередь и последующие запросы на RLock будут выполнены после лока на запись?
Аноним 02/07/22 Суб 00:39:20 2394056 1248
>>2394041
> Или Lock встает в своего рода очередь и последующие запросы на RLock будут выполнены после лока на запись?
Да
Аноним 02/07/22 Суб 00:41:27 2394059 1249
>>2393892
А что такое migrate? Таких пакетов десятки.
Пока вслепую вангану, что должно быть `migrate -ext sql create -dir db/migrations -seq create_users_table` либо `--ext`. А вообще читай доку конкретного пакета и/или его гитхаб.
Аноним 02/07/22 Суб 00:53:22 2394064 1250
>>2394030
>http.Handler это же интерфейс и мы просто скопируем ссылку на функцию. И после RUnlock ее свободно могут изменить -> в h.ServeHTTP будет гонка. Разве не так?
поинтер могут изменить, но это не меняет значение на которое этот поинтер указывал. с интерфейсом должно всё быть аналогично.

var x any = 1
y := x
x = 3
fmt.Println(y)
Аноним 02/07/22 Суб 13:55:29 2394260 1251
>>2286748 (OP)
Привет, анончики.
Думаю над перекатом в Го.

Подскажите, какая область применения этого языка? Какую работёнку в среднем можно получить, чем придётся заниматься? Заранее благодарю.
Аноним 02/07/22 Суб 14:44:51 2394294 1252
>>2394260
жсономешалки.
всякие микро серверсы для бек енда, реже системные и плат форменные утилиты уровня NIH ансиблов, интеграции с девайсами уровня "есть драйвер для сканера/кассы, нужно предоставить к ним синхронную/асинхронную апишку" что по сути тот же бекенд
Аноним 02/07/22 Суб 16:38:15 2394383 1253
>>2394059
Эта штука делает миграции и накатывает их, я конечно не особо понимаю зачем, ведь sql я и так руками написал,
я чисто из документации копировал этот код и он сука не работает, у людей в ютубе даже работает.

Я вообще думаю отказаться от этих утилит, по сути, что она автоматизирует? Ничего, Только файлы создает
Аноним 02/07/22 Суб 17:09:33 2394414 1254
>>2394383
Значит, ты неправильно её используешь.

Давай начнём с того, что есть несколько паттернов работы с базой и для начала нужно определиться, какой у тебя и правильно подобрать под него тулчейн.
1) Код-first, он же orm'ный, когда ты сначала описываешь сущности в коде, а потом некий (возможно самописный, возможно либа типа gorm, не к ночи будь помянут) код маппит их в базу. Соответственно, этот же код может накатывать и/или создавать миграции. У того же gorm (только умоляю не начни его юзать, это порождение Сатаны, а не либа) есть метод AutoMigrate, который сам увидит новые поля у сущностей и сам их накатит. Более правильный вариант, это конечно прям генерировать миграции и накатывать их отдельно;
2) DB-first, когда ты руками пишешь миграции и вообще модифицируешь базу данных, а потом некий код маппит данные их базы в код. Например, как sqlboiler, который генерирует гошные структуры по схеме бд (этот пакет в целом годный, я юзал);
3) Смешанный, когда ты руками описываешь структуру бд, руками описываешь гошные сущности, а потом настраиваешь маппер между ними. Самый гибкий, но и самый требовательный к прямоте рук.

Но при всех этих 3 подходах, у тебя как правило есть задача "накатить миграции", то есть, посмотреть, что уже было накачено, накатить недостающее, если не получилось на катить - то откатиться назад к предыдущей точке. Какие-то миграции могут быть кодовые, какие-то чисто sql, какие-то должны выполняться внутри транзакции, а какие-то нет.
Ты мне до сих я же блять прямо спросил не сказал, что за пакет ты юзаешь, пока что я вангану что это https://github.com/golang-migrate/migrate и он делает именно это, хранит в базе таблицу с уже накатанными миграциями и умет апгрейдить/даунгрейдить состояние системы до нужной точки. Это можно написать самому, но внешний пакет здесь нормальная тема, потому что этот код в целом одинаковый во всех проектах.


tldr: создавать файлики это не главное, главная задача - это "накатки и откатки миграций", с разными опциями. Иногда её решают ормки, иначе, есть смысл использовать внешние тулзы для таких дел.

>>2394260
Несколько специфических областей:
1) Блокчейн и крипта.
2) Кубернетес и прочие девопс штуки;
3) Написание бекендов в компаниях среднего и большого размера, как правило "микросервисов", хотя я бы не обращал внимания на этот баззворд, в 99% случае люди не вполне понимают, что говорят. Кажется, что наибольшая доля го в финтехе, и традиционном и всяких модных необанках. Но при этом крупные конторы часто юзают, в РФ - те же Авито, Яндекс (яндекс.еда вроде), mail.ru, 2gis.
Единственное, надо понимать, что у пехапешников, js'ников и джавистов есть вариант устроится джуном в какую-нибудь мелкую контору, местячковый аутсорс за еду и там за год набраться какого-никакого опыта. С го такое скорее всего не проканает, аутсорса на го почти нет, вакансий больше в крупняке.
Аноним 02/07/22 Суб 19:15:13 2394562 1255
>>2394414
У меня третий подход, ОРМ мне противно использовать, да, его, и он именно не работает, хотя по пути нарастания сложности мне удалось добиться от него генерацию JS файлов, но это мб другой какой-то пакет? Посоветуй альтернативу этому пакету

Я ж именно пониманием этого всего дошел, а не от балды хыхыхы че зачем
Аноним 02/07/22 Суб 19:38:42 2394582 1256
>>2394414
Вообще, спасибо за такой развернутый ответ, видать этот пакет migrate походу фигово работает на макоси у меня, просто не заводится и все, может есть приемлемая альтернатива? Не хочу генерировать го, хватит sql , мигрирую постгресс базу,

Вообще, мне б для тупых объяснить вообще как эти миграции работают в плане отката-наката, ведь речь о обновлении базы, иногда нужно прописывать у поля что-то вроде default="1234", бо иначе не заведется, или возникнет конфликт какой, хз, думаю приколов там достаточно

Могу я вообще понимать миграции как что-то типа гита для баз данных?
Аноним 02/07/22 Суб 21:00:29 2394614 1257
>>2394582
Не понял про default и конфликты, у тебя там явно какая-то лажа происходит. И уж тем более не понял, причём тут JS.


Если не нравится migrate, ну используй goose, в целом, одна фигня.

Миграция - это грубо говоря операция изменения структуры бд. В серьезных проектах у тебя есть код, который зависит от структуры бд, поэтому тебе нужно при релизе кода, который скажем начинает работать с этой таблицей, эту таблицу создать. Отдаленное сходство с гитом наверное есть, не знаю, сложно сравнивать.
Ты же можешь посмотреть прям по коду, что этот тул делает.
Грубо говоря, ты создаешь файлики:
001_create_table_users.sql
002_add_admin_user.sql
003_add_users_email_fields.sql

И тогда у тебя база может быть в 4 состояниях, 000 - где ничего нет, 001 - где отработала только первая миграця и тп. И migrate просто по очереди накатывает недостающие миграции. Проверяет, что накатить, а что нет он просто - заводит ещё одну таблицу, в которой хранит инфу, что он уже накатил, а что нет. В goose эта таблица так и называется, goose_db_version, по-моему.
Аноним 02/07/22 Суб 21:20:12 2394624 1258
>>2394614
Спасибо, теперь намного яснее, такой кайф с питончика и опыта тестирования на джаве переходить на го
Аноним 02/07/22 Суб 22:08:38 2394659 1259
>>2393892
мне каежтся у тебя конфликт в патхе. ты вообще тот мигрейт вызываешь той версии которые ты думаешь?
Аноним 02/07/22 Суб 22:11:02 2394662 1260
>>2394659
Я кстати вообще не люблю использовать migrate отдельным тулзом, больше нравится в cmd отдельный эндпоинт для наката миграций юзать. Тот же goose можно и как либу использовать.
Аноним 02/07/22 Суб 22:18:16 2394665 1261
>>2394662
у нас всё это делается при раскатке автоматом. разработчики тупо файлики в папке создают, так что необходимость ручного вызова миграций кроме как для отладки от меня начала ускользать вообще. а для отладки я могу шаг тупо на базе прогнать.
Аноним 02/07/22 Суб 22:57:24 2394692 1262
>>2394665
Я про другое. Не нужно в систему ставить отдельный тул, у тебя есть общий бинарник, например `go build -o users`
И соответственно `users serve` поднимает сервер, а `users migrate` накатывает миграции. Как их накатывать, руками или нет - вопрос десятый я вот пре-хуком helm'а это делаю.
Вопрос в том, нужно ли отдельно на сервер ставить ну или в докере запускать, один хрен внешняя штука goose и делать goose migrate или нет. Мой ответ: не нужно.
Аноним 02/07/22 Суб 23:36:08 2394719 1263
>>2394692
по моему мнению, учить сервис накатывать миграции и захламлять код, и тем более иметь ручку для этого - не нужно. накат миграции можно реализовать на любом языке и просто переиспользовать во всех сервисах, не давая разработчику с чешущимися руками лишнего повода лезть в по сути бойлерплейтный код. у нас при деплое отдельный контейнер с накатчиком поднимается перед стартом сервиса или вроде того. бинарники у нас тоже не общие, апишка крутится в одном, всякие очереди расхлебываются другим. миграцию накатывал бы третий.
Аноним 03/07/22 Вск 14:23:51 2395045 1264
image.png 22Кб, 1174x80
1174x80
image.png 68Кб, 714x728
714x728
Так, короче я не очень понял по поводу логирования:
1. Идея использовать свою структуру и интерфейс, чтобы открывать файл, использовать log.SetOutput(file) ясна. Непонятно только, что в этом плохого?
2. Можно использовать различные фреймворки и там все круто сделано и т.д. и т.п., но чем это неудобно может быть в проектах? Типа зачем кастомный логгер приводить к стандартному логгеру?
3. Как передавать логгер как io.Writer, если тогда у него не будут работать методы, кроме Write(p []bytes)?
Аноним 03/07/22 Вск 14:38:15 2395048 1265
>>2395045
Автору нахуя-то нужно несколько логеров в проекте. Поэтому он решил сделать дженерик логгер (на самом деле просто открыватель файла) и передавать его другим логгерам.

>2. Можно использовать различные фреймворки и там все круто сделано и т.д. и т.п., но чем это неудобно может быть в проектах? Типа зачем кастомный логгер приводить к стандартному логгеру?
Привести к единому типу (открытому файлу лол). А логгер сам разбирается как и что писать в этот файл. В конечном счете взаимодействие идет через логгер библиотеку.
Передавая io.Writer ты просто сообщаешь логгеру, куда писать инфу.

Вопрос не в тему, ты под Виндой работаешь? Просто интересно)
Аноним 03/07/22 Вск 14:41:21 2395050 1266
>>2395048
>ты под Виндой работаешь?
Да, а к чему это, мне интересно
Аноним 03/07/22 Вск 14:42:29 2395051 1267
>>2395050
Какой-то не такой permition 0666?
Аноним 03/07/22 Вск 14:50:43 2395056 1268
>>2395050
>Какой-то не такой permition 0666?
Да вроде такой как нужно, только не понятно что это значит в контексте Windows.

>Да, а к чему это, мне интересно
Не знаю, интуицию тренирую. Просто насколько мне кажется, Windows затрудняет восприятие абстракций. Например, почему писать в стандартный поток вывода логи - ок.
Если ты опытный анон, который свитчится в го, извини. Но для новичка, думаю, разрабатывать на Го будет гораздо полезнее и понятнее под Unix, что бы сразу привыкать к продакшн-инфраструктуре.
Аноним 03/07/22 Вск 15:05:30 2395072 1269
image.png 28Кб, 506x367
506x367
>>2395056
Я пробовал линукс (Ubuntu) на виртуалке, ну его нахуй.
Чето снес - пиздец системе, VSC я ниосилил, а мне надо писать на C++ изредка (CLion говнище какое-то).

Перекат на линукс не то, чтобы проблема, просто на это опять уйдет время на настройку всякого вместо программирования. Легче это сделать когда я немного освою golang.

Ну то есть должно получиться что-то типа такого?
>Привести к единому типу (открытому файлу лол). А логгер сам разбирается как и что писать в этот файл. В конечном счете взаимодействие идет через логгер библиотеку.
Аноним 03/07/22 Вск 17:53:52 2395272 1270
>>2395072
Если тебе не нужно несколько логгеров в программе (99.999% кейсов), то просто открываешь файл куда хочешь писать и передаешь его либе для логгинга. И вызываешь методы либы. Если есть сомнения насчет либы - бери логрус и не парься

Хотя обычно принято писать в stdout. Более опытные аноны поправят, если не так
Аноним 03/07/22 Вск 17:57:20 2395275 1271
>>2395045
>type LoggerInterface interface
ты читаеш какую-то еботу.
1. поработаешь три месяца и определишься с тем логгером, который тебе нравится. тебе нахуй никогда не нужно будет внезапно переписывать своё логирование на зап вместо зеролога или использовать разные в разных частях программы.
2. в серьезной компании будет демократически выбранный корпоративный логгер которым все пользуются и тебе об этой еботе думать даже не придется
3. так делать не нужно. это логгер должен райтер принимать.

я так и представляю, затаскиваешь в проект либу, которая вместо обычного стд/логрусподобного интерфейса логгера принимает подобие райтера и хочет в него писать что-то в своём особенном формате, когда остальной проект пишет жсончики или наоборот.
>>2395072
>TxtWriter
есть же os.Stdout, который то же самое делает
Аноним 03/07/22 Вск 18:25:35 2395296 1272
>>2395275
>TxtWriter
>есть же os.Stdout, который то же самое делает

Я поэтому про Винду и написал, как правило люди именно на винде не вдупляют, как можно работать с файлами, что такое потоки ввода вывода и что можно с ними делать.
А если начинать с VisualBasic/C# то можно вообще научиться заводить пустые окна на выполнение любой операции. А юникс потом как рокет сайнс воспринимается, либо наступает просветление и человек больше виндоус не запускает.
Аноним 03/07/22 Вск 21:37:12 2395502 1273
image.png 40Кб, 1054x195
1054x195
https://itanddigital.ru/interviewgolang
Аноны гоферы подскажите, решил почитать статейки типа (вопросы по голанг на собеседовании). И наткнулся на эту статью, с таким вот ответом. Прошу подсказать, за такое по ебучке нужно давать?
Аноним 03/07/22 Вск 21:57:18 2395533 1274
>>2395502
хуйня какая-то, наверняка ебан с яндекс.толоки писал.

палю реальные примеры вопросов от одной из компаний https://pastebin.com/ida9Lezs
Аноним 03/07/22 Вск 22:06:53 2395547 1275
>>2395533
крайне признателен анончег!
Аноним 03/07/22 Вск 22:21:49 2395573 1276
image.png 97Кб, 960x228
960x228
Вопросик к знатокам, прочитал давеча про web scale и мне стало интересно, а вообще гофер в 2к22 даже если сеньор должен будет писать какую-то программу или систему, чтобы программа запускалась в датацентре на нескольких машинах в многопотоке или это уже утерянные технологии и таким только деды занимаются?
Аноним 03/07/22 Вск 22:23:53 2395574 1277
>>2395573
Ну и в общем и целом интересно, такое вообще часто в России применяется? Мне что-то сложно представить вебмакакена, который помимо CRUDа как-то там чето в многопотоке запускает удаленно
Аноним 03/07/22 Вск 22:25:09 2395577 1278
>>2395573
Да почему же. Только актуальней становится. Гугл колаб например, Web3 и вся хуйня.
>>2395574
Есть в нормальных компаниях. Вебмакакены по определению этим не занимаются
Аноним 04/07/22 Пнд 01:31:05 2395697 1279
>>2395573
максимум классика. в ВБ у нас два ДЦ было, в авито 3. плюс N реплик сервиса которые между ними раскидываются.
в редких случаях когда сервисы для ПК пишеш (например для окон ПВЗ например), то можно считать что ты центр мира с одной репликой.
Аноним 04/07/22 Пнд 12:12:27 2395885 1280
>>2395697
>ВБ, Авито
Как там работается? Про ВБ очень плохое слышал, пойдет туда джуном перекантоваться полгода-год?
Об Авито мое представление получше, не ошибаюсь?
Аноним 04/07/22 Пнд 18:20:48 2396149 1281
image.png 47Кб, 556x157
556x157
Аноним 04/07/22 Пнд 18:43:43 2396165 1282
>>2396149
>за лето
>алгосы, базу golang, gin + postgres + брокер сообщений
Очень оптимистично. Я бы убрал "за лето" из уравнения. Тогда вполне.
И почему именно в Озон, если там реджект или нет вакансий? Забить хуй?)
Аноним 04/07/22 Пнд 18:54:15 2396177 1283
>>2396165
Нет вакансий на стажера, есть на джуна тока
Ну хотя бы к зиме надо осилить, я второкурс пи, что-то мы проходили, если что
Аноним 04/07/22 Пнд 20:12:12 2396245 1284
>>2395885
вб - зависит от отдела
мимокрокодил
Аноним 04/07/22 Пнд 21:51:12 2396312 1285
>>2395885
по моему опыту в ВБ хуета была, но я тоже склоняюсь к тому, что это зависит от отдела. никаких дейликов, никаких код ревью, нихуя не было, тупо писали в телеге задачку и всё. это при том, что у меня нулевой опыт работы был. технологии там вполне индастри стандарт, так что поразбираться интересно было и съебать после годика с плюсом к ЗП было легко. в авито культура/процессы топ
Аноним 04/07/22 Пнд 22:12:06 2396332 1286
Как найти ждуну работу на гошечке находясь в жопе РФ?
Какие проекты надо в портфолио иметь?
Что можно запилить в соло чтобы прокачаться? (инб4 ничего волчистность)
Очень надо работу найти до конца года, в бекграунде круд на рельсах, тудушка на реакте, нравится гошечка, думаю о суициде.
Аноним 04/07/22 Пнд 22:19:05 2396339 1287
>>2396332
Джуну даже в ДС никак
Аноним 04/07/22 Пнд 22:22:30 2396340 1288
>>2396332
телеграм бота для продажи нелегального хардкор порно. работой начальник колонии обеспечит.
Аноним 04/07/22 Пнд 22:33:21 2396344 1289
>>2396340
Звучит настолько банально, что небось уже весь рынок захвачен и поделён.
Аноним 04/07/22 Пнд 22:39:54 2396347 1290
Нахуй так жить? Почему мне не повезло со спавном.
Аноним 04/07/22 Пнд 22:49:19 2396354 1291
Аноним 05/07/22 Втр 00:05:19 2396411 1292
image.png 302Кб, 774x551
774x551
Аноним 05/07/22 Втр 13:34:14 2396825 1293
так, уважаемые аноны гоферы, призываю вас на помощь.

я правильно понимаю что горутины легковесны из-за следующих факторов
1. context switch происходит не на уровне ОС а на уровне потока на котором крутятся горутины
2. за счет малого стека на 2 кб при запуске горутины

так? или я нифуя не понял?
Аноним 05/07/22 Втр 13:44:00 2396837 1294
>>2396825
>малого стека на 2 кб
Ну вообще от 2, а то и 4-ех вроде. ХЗ. А так по фактам
Аноним 05/07/22 Втр 13:53:44 2396846 1295
image.png 18Кб, 786x196
786x196
>>2396837
Для тебя выкопал анончег
Аноним 05/07/22 Втр 16:20:08 2397028 1296
>>2394614
>ты создаешь файлики
Гохеры, вы серьезно жрете это говно? Не ТЫ блять создаешь файлики, а фреймворк/либа это делает за тебя, и делает он это на основе схем моделей которые ты написал, и работаешь блять ты не с сырым sql и с моделями, и генерятся не просто sql-файлики а файлы миграции, в которых также по возможности имеется опция даунгрейда

Это делает любая нормальная система миграций в любом нормальном ЯПе, даже в Петухоне
Аноним 05/07/22 Втр 16:23:41 2397033 1297
>>2397028
Пиздец как толсто.
> любом нормальном ЯПе, даже в Петухоне
А не, всё встало на свои места.
Аноним 05/07/22 Втр 19:11:25 2397194 1298
image.png 183Кб, 380x380
380x380
>>2397028
>фреймворк это делает за тебя
Аноним 05/07/22 Втр 20:37:39 2397236 1299
>>2397028
Я блять кому буквально сообщением выше вот этим >>2394414 рассказывал, что есть разные флоу работы со схемой базы? Тот, о котором ты говоришь, это первый ака orm'ный и он не лучше и не хуже прочих, просто у каждого из них свои особенности.
Аноним 07/07/22 Чтв 09:32:49 2398405 1300
image.png 26Кб, 1034x312
1034x312
>>2286748 (OP)
>когда нам завезут дженерики
Я чего-то не понимаю? Или вам буквально недавно завезли их?
Аноним 07/07/22 Чтв 09:35:47 2398408 1301
>>2398405
Опхуй уже хуй знает сколько не обновляет шапку.
Аноним 07/07/22 Чтв 10:24:32 2398437 1302
>>2398405
Пусть завозят красивые.
Аноним 07/07/22 Чтв 13:16:41 2398592 1303
>>2398405
из-за голандопидоров их всё равно невозможно использовать
>ААААААААААА У МЕНЯ КРАСНЫЕ БУКОВКИ ИЗ-ЗА ЖЕНЕРИКОВ ААААААААААААААААААААА
Аноним 07/07/22 Чтв 14:53:16 2398710 1304
Аноним 08/07/22 Птн 11:42:21 2399379 1305
Анонсы, через 2-3 месяца начинаю искать первую работу программистом, на Го. Информации для изучения у новичков очень много, прошу помочь отделить зерна от плевел. Что важно для первого места, что лучше освоить в процессе.

Что имеем:
ИМХО неплохо знаю базу и стандартную библиотеку (http, os, flag, IO, sync и проч.), Gin базово совсем, но, думаю, подразобраться будет не проблема. Не гнушаюсь лезть в исходники и разбирать устройство либ.
По concurrency активно испльзую Mutex/RWmutex, WaitGroup, один раз пришлось использовать Atomic. С каналами работал значительно меньше, но понимаю.
Из General:
Git (базово): clone, pull, commit, push
Linux: активно использую, терминала не боюсь, но без Баш-скриптов и хитрых пайпов.
SQL (базово): фильтрация, агрегация, простые join’ы

Что планирую подтягивать:
1. SQL, Postgres, MongoDB, правильная архитектура данных и проч. Стоит ли вообще в NoSQL на начальном этапе лезть (выглядит конечно поудобнее, но всем нужен СКЛ)
2. Архитектура веб-приложений, Gin (или лучше что-то другое?), DDD
3. Алгоритмы, Problem Solving (сейчас быстро решаю задачки уровня Easy, иногда получается Medium). Знаю в крупняке, где юзают Го алгоритмы любят.
4. Docker
5. Правильная организация тестирования и логирования.
6. Git

В общем, буду благодарен, если поможете расставить приоритеты и необходимую глубину знаний по этим направлениям для начинающего. Возможно что-то важное забыл. Что можно оставить на потом/изучать уже по мере работы?

Знаю мнение здешнее, что на Го джуны не нужны, тем не менее вакансии периодически встречаю. Буду пробовать.
Аноним 08/07/22 Птн 12:45:40 2399447 1306
>>2399379
У меня тоже самое как у тебя анончег. Только на пару месяцев дольше изучаю. Могу посоветовать написать рест хуйню, прям конкретно прокачаешься во всем. Сам сделал чувствую себя ниибаца гейнием
Аноним 08/07/22 Птн 13:01:38 2399468 1307
>>2399447
Неплохой совет, надо бы, но писать очередной тудулист или "библиотеку" не интересно, да и не впечатлит никого особо. Вполне могут счесть за копипасту.
А достойный проект в голову не приходит. Либо что-то, где вообще не нужна БД, либо 1-2 хендлера.
Либо заумная херня, на которую желательно знать MQ, и как организовывать соответствующую архитектуру (еще один топик для изучения), писать 2-3 месяца и в итоге говно окажется, поскольку задачка не по скилу.
Аноним 08/07/22 Птн 13:14:20 2399484 1308
>>2399468
Да, рест хуйня будет промежуточным проектом сечешь? Я вот тоже думал что у меня будет максимум 3-4 чмоэндпоинтов но в итоге перевалило за 8, попробуй аля клин архитекчур реализовать, короче норм тема, за 1-2 недели норм тему сделаешь
Аноним 08/07/22 Птн 15:38:48 2399724 1309
>>2399379
>Gin
пока вы все гугляли с друзьями я учил хттп роутер
пока вы женились я учил хттп роутер
устроился @ на работе rpc
Аноним 08/07/22 Птн 15:48:35 2399730 1310
>>2395050
Если на собесе серьезно спизданешь что работаешь под виндой - тебя обольют смуззи и сразу переведут в чуханы
собрался быть бекендером - осваивай UNIX
Аноним 08/07/22 Птн 16:06:27 2399762 1311
image.png 292Кб, 1213x304
1213x304
image.png 247Кб, 1194x256
1194x256
Я нихуя не понял. Ну ладно закончились M зеленых потоков, дальше-то что? Что значит "планировщик управляет распределением горутины по всем возможным потокам"? (пик 1)

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

И что значит рантайм го приостанавливает горутины при блоке и возобнавляет при разблокировке? Блокировке чего? (пик 2)

Кстати, что можете посоветовать в общем и целом по многопотоку, (native threads, green threads), но чтобы не оч дохуя по объему
Аноним 08/07/22 Птн 16:32:58 2399801 1312
>>2399762
плюсую этого анониса, опытные пчелы призываю вас на помощь по этим вопросам
Аноним 08/07/22 Птн 18:11:02 2399929 1313
>>2399762
Так же в тему добавлю вопрос
Имеет ли смысл запускать в гоурутинах bash скрипты? То бишь что-то вроде
go func () {cmd.Exec(....)} или даж с контекстом

С одной стороны запускать их в отдельном треде будет не очень, так как скриптов может быть много.

Иными словами, делаем /get на какой-то /handler1 и надо еще на машине кое что запустить и желательно проконтроллировать, как это лучше реализовать?
Аноним 08/07/22 Птн 19:55:53 2400020 1314
>>2399762
>Ну ладно закончились M зеленых потоков, дальше-то что?
ну если программе больше нечего делать, то либо программа выходит, либо программа выходит с fatal error: no goroutines (main called runtime.Goexit) - deadlock!
>И что значит рантайм го приостанавливает горутины при блоке и возобнавляет при разблокировке? Блокировке чего? (пик 2)
ну допустим горутина делает блокирующий сискол. тут два варианта - если сискол на самом деле блокирующий, то у тебя блокируется весь тред с горутиной и рантайм создает новый.
если сискол не блокирующий, то сделавшая сискол горутина все равно перестает выполняться и тред подхватывает другую, пока нетполлеру не придет уведомление, что едро готово и горутину которая хотела сделать сискол нужно шедулить.
>>2399929
>go func () {cmd.Exec(....)}
смысла нет. есть cmd.Start специально для этого. и вообще на каждый скрипт все равно новый процесс создается, так что экономия тут такая себе.
Аноним 08/07/22 Птн 21:39:30 2400161 1315
>>2400020
ок, понял, но вот чего не понял.
https://pkg.go.dev/os/exec#Cmd.Start
Чем тогда он отличается от https://pkg.go.dev/os/exec#CommandContext ?

С Контекстом я всего лишь могу чуть более гибко решить свою задачу выходит, В случае cmd.Start получается я могу уйти в бесконечное ожидание? Но в случае контекста я явно задаю условие
Аноним 08/07/22 Птн 22:07:39 2400203 1316
>>2400161
это разные вещи. CommandContext инициализирует команду, Start её запускает, Wait ждет завершения.
если ты про Command, то да, без контекста с отменой/таймаутом можешь навечно заблочиться пока yes печатает свои строчки. но команда без контекста тебе может пригодиться, если ты сам хочешь обработать отмену контекста и отправить sigterm вместо sigkill. тут уже CommandContext(context.Background, ...) или Command(...) на твой выбор.
Аноним 09/07/22 Суб 12:28:17 2400430 1317
Аноны, как реализовать что-то типа DefaultContext. Например, для всех запросов определенного типа передавать контекст с таймаутом 5 секунд (нужный контекст передается в структуру). Наивно думал, что можно просто завести поле defaultContext и его передавать. Но, насколько я понимаю, контекст с таймаутом одноразовый, и отсчет начинается с времени создания.
Получается в структуре нужно заводить поле с конструктором контекста типа
type struct {
...
____DefaultCtx func()context.Context
}

или можно как-то более изящно?
Аноним 09/07/22 Суб 15:10:20 2400573 1318
>>2400430
Так и не понял, чего ты хочешь. Если нужен таймаут - ну бери его и указывай сразу где нужно. Если у тебя сервер, то можешь middleware с контекстом для нужных роутов прокинуть, теоретически.
Аноним 09/07/22 Суб 16:31:41 2400693 1319
Аноны как пет проект пойдёт репозиторий с разными алгоритмами и их реализацией (как пример сортировка обычная сортировка слиянием, однобуферная, многопоточная и итеративная и т.д.)?
Хочу вкатиться на стажера, это вообще мне будет как + на собесе или это никому нахуй не нужно и никто на это смотреть не будет?
Аноним 09/07/22 Суб 17:51:19 2400795 1320
Вкатываюсь в Go из джавы, очень нравится. Посоветуйте актуальную литературу для версии 1.18, пожалуйста. Желательно, чтобы было печатное издание на русском.
Книга из оп-поста "Язык программирования Go | Керниган Брайан У., Донован Алан А. А.", говорят, уже устарела.
Аноним 09/07/22 Суб 19:43:58 2400896 1321
>>2400795
>1.18
>на русском
>печатное
>для языка который от версии к версии практически не меняется, в который кроме контекста (за 5 минут можно разобраться), модулей (за 5 минут можно разобраться) и женериков (за 10 минут можно разобраться) ничего особо и не добавили
Аноним 09/07/22 Суб 21:38:47 2400977 1322
>>2400693
чет не звучит как пет проект, а как тупо репа чтобы гитхаб пустым не был уровня ответов к aoc/литкоду. если как либу оформишь с чем-то полезным вроде фильтра блума то мб.
Аноним 09/07/22 Суб 22:29:10 2401019 1323
>>2400977
Фильтр Блума, деревья, RMQ, LCA, алгоритмы поиска кратчайшего пути, ещё криптография скорее всего. Только если я нахуячу этого всегда там репозиторий оч большой будет, не заебно будет в теории даже для того, кто захочет этим воспользоваться?
Аноним 10/07/22 Вск 17:11:52 2401655 1324
как лучше удалять множество элементов из слайса(слайс будет содержать тип []BigFKstruct{})?
Аноним 10/07/22 Вск 19:27:23 2401883 1325
>>2401655
поменять с последними элементами и обрезать слайс
Аноним 12/07/22 Втр 08:56:10 2403154 1326
кто-то может пожалуйста объяснить, почему в треде так активно обсуждают джаву? го адекватный язык, от того что джава хуже\лучше го лучше не становится, или я чего-то не понял?
Аноним 12/07/22 Втр 09:00:05 2403155 1327
>>2403154
Поскреби гофера - найдёшь джависта.
Аноним 12/07/22 Втр 10:06:45 2403178 1328
>>2403154
>почему в тренде белого братства обсуждают чернокожих?
Аноним 12/07/22 Втр 14:42:11 2403427 1329
Анонче, ищу аналог https://pypi.org/project/python-crontab/2.6.0/ на гошку

Задача - динамически менять кронтаб от суперпользователя, но при этом мало добавить задачу, еще нужно удалить конкретную, поменять, что-то вроде круда только для кронтаба нужно сделать. Затык в том, что то, что должно выполняться доступно из под sudo crontab -e, от обычного пользователя не работает. Системный скрипт такой, так как еще интеграция с реальным миром, по вызову апишки го будет реагировать оборудование которое описано системными скриптами(этакая апишка, чтоб что-то сделать надо вызвать определенный скрипт или же подредактировать/добавить/удалить задачу в кронтаб через судошку)
Аноним 12/07/22 Втр 14:52:35 2403439 1330
image.png 149Кб, 1591x403
1591x403
Аноним 12/07/22 Втр 15:02:08 2403459 1331
>>2403427
Основной затык, что нужно делать все от супер пользователя, я хотел бы этот крон вообще в отдельный сервис вынести да и все, просто ничего не могу дельного найти относительно именно запуска с судошкой

>>2403439
С точки зрения памяти второй пизже, видел примерно подобные рассуждения в книге Таненбаума Операционные системы, где о параллелизме речь была, там петерсон еще то се

Я хз, я б так ответил, но моя компетентность слаба, просто пишу проект для кабанчика, разгербаю что там навалили до меня и привожу в порядок, такое
Аноним 12/07/22 Втр 16:35:20 2403577 1332
>>2403439
А зачем в общем и целом делать слип, если нужно что-то проверять, если есть sync.Cord? Слип локает горутину и мы не можем ничего делать n секунд. Есть инфа от знающих?
Аноним 12/07/22 Втр 16:47:56 2403588 1333
>>2403577
>Слип локает горутину
Горутина нужна только чтобы выполнить 1 единственное действие. Если она его не выполняет, то пусть спит
Аноним 12/07/22 Втр 17:56:32 2403678 1334
>>2403588
ну типа в ней данные могут какие-то быть (и скорее всего будут), к которым нужно обращаться будет, во время слипа хуй сосать можно тока и не обратиться к ним
Аноним 12/07/22 Втр 19:06:17 2403813 1335
>>2403459
пишешь консольную утилиту для редактирования
даешь юзеру который крутит апишку nopasswd на эту утилиту
Аноним 13/07/22 Срд 16:41:20 2404630 1336
Как поставить рантайм голанга в докеровский контейнер в целях разработ очки? Контейнер под вопросом требует ещё и питона в рантайме, а установка питона с пипом ручками - та ещё ёбля. Так что я за основу решил взять альпиновский питоновский образ и вставить в него голанг. Вроде как всё копируется и ставится вгетом и даже голанг лежит в /usr/local/go, но на первом go install падает с ошибкой "/bin/sh: go: not found". Мне именно рантайм нужен, а не бинарник собирать.
Аноним 13/07/22 Срд 16:52:15 2404654 1337
>>2397028
Нихуя жавадебила прорвало от сырых sql.
>и генерятся не просто sql-файлики а файлы миграции, в которых также по возможности имеется опция даунгрейда
Даунгрейд тебе говнолиба не сможет гарантировать, так как его возможность зависит от структуры отдельной миграции. Так что даже даунгрейд нужно ручками писать, хотя если ты из этих, то можешь интерполировать в строчный литерал, лишь бы сырой sql не трогать.
Аноним 13/07/22 Срд 16:59:55 2404666 1338
>>2404654
>даунгрейд нужно ручками писать
Более чем в половине случаев - нет. Но когда нужно, этим можно озаботиться.
и да, даунгрейд делается тоже не через сырые запросы а через ORM
Аноним 13/07/22 Срд 17:08:21 2404674 1339
>>2404630
компилятор? /use/local у тебя в патхе? либо пофиксь патх, либо вызывай абсолютным путем
Аноним 13/07/22 Срд 19:16:33 2404781 1340
>>2404666
>Более чем в половине случаев - нет.
То есть почти в половине случаев всё равно ручками нужно писать.
>и да, даунгрейд делается тоже не через сырые запросы а через ORM
ORM будет занята n + 1 запросами, там не до миграций.
>>2404674
Проблема в том, что питоновский образ тоже с патхом балуется:
https://github.com/docker-library/python/blob/b7c086e0d9ec53c7d7705f826efe2960d70b43e5/3.9/alpine3.16/Dockerfile#L10
https://github.com/docker-library/golang/blob/ad25ff18a6fcb732a2998c89424d00aa1acc2d31/1.18/alpine3.15/Dockerfile#L16
Я пробовал переобъявить патх как ENV PATH "/usr/local:usr/local/go/bin:$PATH", но не работает.
Аноним 13/07/22 Срд 22:39:08 2404884 1341
Какие у вас петы на голанге? Чем на работе занимаетесь? Только конкретнее плз
Аноним 13/07/22 Срд 23:34:56 2404895 1342
>>2404884
Ненавижу goвно, пишу на нём исключительно ради деняк. Соответственно, никаких петов на нём.
Аноним 14/07/22 Чтв 13:48:23 2405114 1343
Снимок экрана 2[...].png 48Кб, 866x657
866x657
Случайно обновил VsCode и появилась эта хуйня. Как они меня заебали своими погаными обновлениями, пользуюсь им так как не осилил nvim и в нем не работает нормально автокомплит.

Как убрать этот прямоугольник? Бо пиздец глаза режет, я даже тему менял, ничего не помогает, или как откатиться от обновления ?
Аноним 14/07/22 Чтв 13:53:57 2405117 1344
>>2405114
хз че за прямоугольник. удали кеш/перезапусти без экстенжнов. если ты после обновления не все окна закрыл, то перезапусти все окна.
Аноним 14/07/22 Чтв 14:50:06 2405162 1345
>>2404781
>ORM будет занята n + 1 запросами
Ебало гобляди, всерьез считающей что в ормках до сих пор ее не научились решать, представили?
Аноним 14/07/22 Чтв 15:28:31 2405236 1346
>>2405162
Волшебные ОРМки знают по доступу к полю объекта, что надо делать fetchOne()/fetchMany() или fetchAny(), ага. Типичный мирок с ООП головного мозга.
Аноним 14/07/22 Чтв 15:45:46 2405259 1347
Аноним 14/07/22 Чтв 16:01:15 2405289 1348
>>2405117
Это я все делал. Удалось пофиксить только откатом вс кода на более старую версию, джсончик с настройками удалял, явно дело не в них. Не обновляйтесь с 1.69 пацаны, не рекомендую

Я просто хз, есть ли универсальная IDE от жидбрайнсов? Мне надо на пистоне писать, открывать юпитер ноутбуки, го, js , java желательно еще плюсы

Спасибо
Аноним 15/07/22 Птн 13:22:22 2406070 1349
Аноним 15/07/22 Птн 13:27:49 2406077 1350
>>2406070
>пук... на винде не работает.... пынямаете??
Аноним 17/07/22 Вск 16:12:11 2407894 1351
Анонсы, а что вы в проектах для документации используете? Swagger(OpenAPI)?
Аноним 17/07/22 Вск 19:11:57 2408086 1352
Решил для подготовки порешать тестовые. Вот от Авито.
https://github.com/avito-tech/adv-backend-trainee-assignment
Собственно возникли следующие вопросы:
1) Стоит ли тут следовать DDD/Clean Arch. или проверяющие сочтут за карго-культиста, на такую задачу CA разводить и плодить директории?
2) Сортировка + Пагинация. Какие должны быть интерфейсы для получения данных из базы? Насколько целесообразно реализовывать на сыром SQL? Выглядет ебовато. Как реализовать без ORM?
Аноним 17/07/22 Вск 19:40:24 2408105 1353
>>2408086
Просто делай мвс круд. Sql можешь в хранимые процедуры вынести(выколивать их из кода)
Аноним 17/07/22 Вск 19:55:21 2408121 1354
>>2408105
>МВС круд
Понимания, что такое MVC на бэкенде, да еще и с JSON API еще меньше. Я пока вонаби. Надо бы погуглить.

Спасибо!
Аноним 17/07/22 Вск 20:00:18 2408131 1355
>>2408105
>выколивать их из кода
Вот пока не могу придумать, как назвать функции.
Пока на ум приходит что-то типа этого, но выглядит всрато.
GetOrderByDate(context, descending bool, limit int, offset int) []Entity
GetOrderByPrice(context, descending bool, limit int, offset int) []Entity

limit и offset для пагинации.
Аноним 17/07/22 Вск 20:13:55 2408150 1356
И еще один вопрос. Если я выбираю реляционную структуру, и мне надо хранить до 3 ссылок на фото товара, нормально ли делать такую схему?

CREATE TABLE IF NOT EXISTS advertisements(
id SERIAL PRIMARY KEY,
title VARCHAR(200),
price DECIMAL(15, 2),
description VARCHAR(1000),
photo_1 TEXT,
photo_2 TEXT,
photo_3 TEXT,

);
Аноним 17/07/22 Вск 20:32:03 2408169 1357
>>2408131
Нет, не нормально. Сделай доп таблицу (1 к m)
Аноним 17/07/22 Вск 20:36:26 2408172 1358
>>2408169
А если они упорядочены, добавить колонку с приоритетом?
Аноним 18/07/22 Пнд 00:44:32 2408442 1359
>>2408150
Нет конечно же, для этого отдельную таблицу выделяют с сылкой на ключ основной таблицы.
Аноним 18/07/22 Пнд 06:17:04 2408558 1360
>>2408150
мы бы возможно запихнули их в jsonb поле. в отдельную табличку должно быть тоже норм.
>>2408131
тут похоже что колонку сортировки нужно передавать параметром, там же только одно слово после order by меняется в запросе.
>>2408086
достаточно должно быть обычных репа+сервис+ручки+модельки без ДДД ебатории.
sql по классике у нас билдится руками в сервисе, часто даже без всяких squirrel. ормов тут ещё не видел.
Аноним 18/07/22 Пнд 17:20:45 2409035 1361
>>2399762

Вообще чтобы понять основную идею отображения горутин на потоки необходимо первым делом снизойти на уровень системных вызовов операционной системы.
Вызовы бывают синхронные по типу (здесь перечислены функции на языке Си по UNIX-стандарту, аналогичные есть на винде) read, write, create, dup, dup2 и так далее. Синхронные они в том смысле, что основной поток исполнения блокируется до тех пор, пока эти функции не вернут результат. Допустим, ты читаешь файл и read "усыпит" твою программу, до тех пор пока не прочитается нужное количество байт.
Более гибкая, но запутывающая альтернатива -- это асинхронные вызовы по типу aio_read, aio_write. Их основная суть в том, что ты прокручиваешь цикл для выяснения происходящих событий - запись завершена, чтение завершено и т.д. При этом твоя программа не блокируется. В основном цикле ты можешь работать с разными вызовами и событиями

Как итог: горутины размазываются по тредам.
Когда тред определяет, что в горутине происходит асинхронный вызов, то он отправляет его на асинхронное исполнение и цепляет другую свободную горутину. При этом отдельным потоком (если я не ошибаюсь) запускается net poller который узнает статусы исполнения горутин. Если асинхронное исполнение завершено, то он возвращает горутину на поток обратно. Тоже самое неверно для синхронных вызовов. Если горутина использует синхронный вызов, то она никуда не отправляется и по сути пожирает один тред
Аноним 18/07/22 Пнд 21:04:24 2409208 1362
Вы хули тред не перекатываете? Сидите как джависты в легаси
Аноним 18/07/22 Пнд 21:36:45 2409255 1363
Аноним 18/07/22 Пнд 21:37:36 2409256 1364
image.png 675Кб, 1280x960
1280x960
>>2409208
тред проще не перекатывать чем перекатывать
Аноним 18/07/22 Пнд 22:38:24 2409343 1365
>>2408558
>запихнули их в jsonb поле
Так реляционка же? Если да, то тут нарушение нормальной формы, не
>тут похоже что колонку сортировки нужно передавать параметром, там же только одно слово после order by меняется в запросе.
И правда, спасибо!
Аноним 19/07/22 Втр 12:22:09 2409678 1366
>>2286748 (OP)
>Сейчас вб при подаче к ним на стажку просит вертеть деревья и решать задачи уровня яндекса на собесах.

Это правда?
Аноним 19/07/22 Втр 12:26:35 2409684 1367
>>2408086
>Авито
Ебало представили?
Аноним 19/07/22 Втр 12:34:23 2409688 1368
>>2409678
Это везде так, даже на фронте от макак требуют верчения деревьев.
Аноним 19/07/22 Втр 14:03:20 2409761 1369
>>2409255
Все за вас нужно делать мимо rust бэк, предыдущий тоже я перекатывал
Аноним 19/07/22 Втр 14:04:03 2409762 1370
изображение.png 53Кб, 234x215
234x215
Аноним 19/07/22 Втр 14:07:43 2409769 1371
>>2409343
>Так реляционка же? Если да, то тут нарушение нормальной формы, не
в тестовом может это и интересно, что ты знаешь джойны и как нормализовать БД (в комменте вполне можно обосновать почему ты решил денормализовать), но ИРЛ никому нахуй не нужна нормальная форма, если она не дает никакой выгоды и из-за неё приходится усложнять запросы агрегатными функциями/джойнами/дополнительными запросами. если у картинок нихуя нет дополнительных свойств, у тебя появляется какая-то странная колонка для порядка картинок, которую хз как обновлять при добавлении/удалении картинки из середины, и тебе нахуй не никогда не нужно будет картинки выбирать отдельно от объявления, то мне кажется это валидный кейс для денормализации.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов