Этого треда уже нет.
Это копия, сохраненная 10 ноября в 18:23.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
1000021723.png24 Кб, 1024x385
Go тред №31 /go/ 3262042 В конец треда | Веб
Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, имеет богатую и универсальную стандартную библиотеку и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де-факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

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

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

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

Прошлый тред:
>>3195987 (OP)
2 3262333
>>262042 (OP)

> и других.


Что других?
3 3262439
джуны, вы НИКОГДА не найдете работу на Go. Просто no chance. Но можете, конечно, выдрачивать год-полтора (проебёте время впустую), это язык для ОГРОМНЫХ сервисов, вы там нахуй не нужны, язык для миддлов+, сеньёров. Тратьте время дальше. Не верите - чек вакансии, мы не в пендосии.
4 3262474
>>262439
Ето в пендосии вы никогда не найдете работу на го. А в РФ го теперь такой же мейнстрим, как пхп или питон. Кмк го вообще только в России и Китае взлетел, а на западе его используют только фаанги и бывшие джавашопы с кучей денег.
5 3262487
>>262439
Думаешь твои потуги в гейткипинг хоть на йоту повлияют на рыночек?
6 3262566
>>262474
>>262487
Упрощаю: покажите мне хотя бы ОДНУ джуновскую вакансию на Go в РФ. Одну!
А остальным скажу - бегите! - в Go, если вы уже с хорошим опытом в backend, в QA/JavaScript, если вы новичок.
8 3262634
>>262625
не, ну годная вакансия, но это Ростов-на-Дону и таких вакансий ОЧЕНЬ мало в этом и весь поинт. Да, с одной я погорячился, но шансы найти работу это не увеличивает. Вы просто посмотрите на другие стэки. Ну и главный да, ещё совет джунам не прыгать по языкам, выбирайте - учите BACKEND - если он вам так интересен, перескочить всегда сможете. Но выбирать Go первым - очень-очень сомнительно, это далеко не мейнстрим, мейнстрим это нода с пхп.
9 3262663
>>262634
Гейткипер извивается как уж на сковороде: сначала нет вакансий, потом есть но мало и вообще это Росов-на-Дону и вообще идите в ноду или пхп вкатывайтесь, нечего тут это самое. Насколько нужно быть неуверенным в себе как в специалисте, чтобы бояться конкуренции от вкатунцов...
10 3262835
>>262439

>это язык для ОГРОМНЫХ сервисов


Представляю объем бойлерплейта в этих огромных сервисах на Go.

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

Мне кажется Go возможно скоро умирать начнет. Вижу популярные либы на гитхабе для Го с кучей звезд - очень часто встречаюсь на заброшенные проекты. Где последний коммит был года 3 назад. Или 5 лет назад. Там какие-то issue копятся, но поддержки как таковой уже нет.

А в js и питухоне все наоборот, куча популярного тулинга пилится огромными сообществами и не забрасывается.
11 3262841
>>262439
браток подскажи чё учить то
пхп или го?
сейчас профильную вышку получаю
12 3262848
>>262835
Блять, кто нахуй на этот буллшит поведется, видимо тот, кто ни разу серверную лапшу на пистоне не видел, ну не мудрено, видевшие вырвали себе глаза и не видят уже ничего.
13 3262853
>>262848
Асинхронный питон это лютое говнище. Вот это реально невозможно читать. Если вас приглашают на проект с асинхронным питоном в бекенде, то не идите туда.

Но обычный синхронный питон вполне неплох. Если есть цель быстро наговнякать, то самое то.
14 3262907
>>262625

>Знание реактивного программирования;


Я что-то не отдупляю, нахера это говно в Го?
15 3262925
>>262907

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

16 3262927
>>262853
Бредятина. Вкусовщина. Ничем не отличается. Питон как питон. По структуре кода питонопроекты ничем от го не отличаются. Если сделать на го монолит такая же лапша будет.
17 3263141
Перекатываю вопрос:

Сап, как в go обстоят дела с gui? Необходимо сделать простой секундомер с возможностью вывода графика результатов.
Что есть на рынке легкого, чтобы не тянуло за собой ничего, работало просто как компоненты и было кроссплатформенным? Пока из такого выцепил fyne, но мб еще что есть

Потрогал немного файн этот, нихуя не понятно, но достаточно интересно. Вопрос открытый. Есть ли какой-то стандарт для GUI на go?
18 3263210
>>263141

>Сап, как в go обстоят дела с gui


Все очень плохо.

>>263141

>Необходимо сделать простой секундомер с возможностью вывода графика результатов


Python + PyQt. Остальное нахуй не нужно.
19 3263213
>>263141
google -> awesome go -> gui (сам попробую на wails пописать микропоеботу для себя, но пока не нашел, как у него обстоят дела с глобал хоткеями)
20 3263230
>>263141
В тысячи раз легче на js/ts сделать.
21 3263341
>>263210

> Остальное нахуй не нужно


Тут скорее смысл покопаться в своем родном ГОвне

>>263213
Интересное решение, посмотрю в его сторону.

> обстоят дела с глобал хоткеями


Что ты имеешь ввиду под глобал хоткеями?

>>263230
Имеешь ввиду с помощью электрона?
22 3263343
>>263341

>электрона


> PyQt



вы ебанулись заставлять юзеров грузит себе целую среду интерпретатора питона вместе с вашим кодом или вообще целый ёбаный хромо-браузер (!!!) (електрон)

Что мешает вызвать системный рисовальщик окон из go? или даже залупу-в-себе вроде QT кросплатформенную подключить
23 3263351
>>263343
Вот как раз возник вопрос по теме. Как я понял для GUI есть два подхода: либо на основе web (использовать html/css/js и типо рендерить браузер для них), либо использовать нативные??? вещи типо qt или gtk
Правильно понимаю, что второй вариант оптимальней\производительней\легче? Еcть какой-то хороший материал на эту тему, а то я ничего толкового не смог нагуглить, а разобраться хочется?

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


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

Если ты что-то полезное гуешное на го напишешь, а не пустые окошки на винапи,то дистрибутив твоей программы тоже будет весить огого.
25 3263387
>>262841
php laravel + JavaScript vue
26 3263412
>>263387
2016 3rd-world aah stack 💀
27 3263437
>>263412
окей, сиди без работы дальше
28 3263455
>>262663
так и в чем я не прав в итоге? не, ну если готовы на стажировке год за дошик сидеть - дерзайте, может, и выйдет у вас что. На стажировку нормальную попасть тоже челлендж. А можно не страдать хуйнёй, например
29 3263465
>>263341

> Что ты имеешь ввиду под глобал хоткеями?


Мне нужно, чтобы приложение отрабатывало комбинацию клавиш, даже когда оно неактивно.
В некоторых фреймворках такого нет, есть только локальные хоткеи, которые работают при активном окне приложения
30 3263688
>>263351

>Не подскажешь что это, пожалуйста?


Тебе эта хуйня не нужна, сейчас так никто не делает.
https://learn.microsoft.com/en-us/windows/win32/directshow/step-4--draw-the-bitmap-on-the-client-area
31 3263745
>>263465
Вот такое и мне нужно на самом деле. Я нагуглил их пример хоткеев, но не понятно глобальные они или нет, и это в альфе третей версии.

А всякие библиотек для хокеев это не то?
32 3263786
>>263745

> А всякие библиотек для хокеев это не то?


Действительно, как то я и забыл про это. Первая же ссылка в гугле дает пакет с "Global hotkey registration without focus on a window".

Завтра попробую wails поковырять
33 3263809
>>263341

>Имеешь ввиду с помощью электрона?


Да, но ещё можно как вариант взять другие решение, которые не такие популярные, но лучше по перформансу, например tauri или neutralino.

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

https://github.com/Elanis/web-to-desktop-framework-comparison
gaylib.png97 Кб, 1192x598
34 3263957
Анонче, у вас на голанге биндинги сломаны для raylib?
А то я тут текст "Hello world" в 0,0 рисую, а оно мне сдвигает его хер пойми куда.
35 3264244
>>263384
Какой же ты ебанат. Рака яиц тебе и твоим юзерам
36 3266601
>>263384
Такой bread только у тебя в голове, я как раз более расположен к маленьким портабл программкам, которые можно и в старые флешки засунуть.
image.png145 Кб, 720x360
37 3266603
Я как-то, в каком-то докладе слышал, что на го вебассембле не очень удачное вышло. Это было очередное предвзятое мнение или реально есть какие-то проблемы или неудобство?
38 3266605
>>266601
Ты тут причём? Ты же анальник. Мы про нормальных людей
39 3266616
>>266605
В 2024 если ты что-то тянешь с торрентов ты уже архаичный продвинутый пользователь. Не неси чушь услышанную на ютубе.
40 3266689
>>266605
В этом треде все анальники по определению.
41 3266715
>>263213
Тоже решил потрогать wails
Мне интересно, какого хрена он дефектный проект на svelte компилит 40 секунд на M2?
42 3266796
>>266715
А второй раз у тебя тоже долго билдтися?

Я поставил wails, первый раз проект билдился долго (юзал ванилу js), но последующие разы все происходило быстро.

С растовским таури тоже первоначальный билд много времени занимал.
43 3266848
>>266796
Ха, во второй раз за 3 секунды сбилдилось
44 3266932
А что, правду говорят, что сейчас все с Джавы мигрируют на Го? Или это маняфантазии и единичные случаи?

Как вообще оцениваете такую перспективу?

Только не надо объяснять о тоннах перфокарт с кобол кодом, который управляет 99% финансовыми транзакциями. Речь о новых проектах, никто же не хочет поддерживать легаси говно.
45 3267159
>>266932
Хайп дривен девелопмент существует, но в больших компаниях он случается только если приходит новый CTO с соответствующим бекграундом.

Во фразе переписать все с X на Y, ключевое это переписать а не с X на Y.
46 3267266
Сап, откуда начался срач с Javистами и как вы к нему относитесь?
47 3267361
>>267266
Срачи между языками начинают неполноценные люди, компенсирующие свои проблемы за счет выбора той или иной догмы. Поэтому зачастую если видишь хейтера - то он как специалист весьма неполноценный.

Единственным исключением является, когда используют агрессивный маркетинг и тебе навязывают кривую неудобную херню вместо нормального любимого инструмента. Так например сейчас растом, который пытаются пропихнут везде и так было с го, когда его питонистам натягивали, отсюда остаточный негатив на го.
48 3267484
>>266932
В Тиньке гошное направление сейчас загибается. Начали очень бодро, но отсутствие созревшего фреймворка привело к адовому хаосу в проекте. Сейчас жаркие дискуссии идут об отправке большей части кода нахуй. Планируют оставить только микросервис связанный с брокерами сообщений. Походу спринг выйдет победителем, ибо опять начали жавистов искать.
image.png640 Кб, 710x474
49 3267487
>>267484

>гошное направление сейчас загибается


>опять начали жавистов искать

50 3267489
>>267487
Колесо сансары совершило очередной оборот. Лет через 5 забудут еблю, попытаются ещё раз переписать.
51 3267535
>>267484
Тинек это где выкинули основной фреймворк для джавы (spring) и написали свой велосипед kora? Думаю пример тинька не стоит приводить, там и на scala до сих пор пытаются писать.
52 3267579
>>267484

Откуда дровишки?
53 3267807
>>267266

>откуда начался срач с Javистами


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

>>267266

>как вы к нему относитесь


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

Сейчас я вкатился в айти на помойное python легаси и мне уже просто хочется побыстрее с питона срыгнуть в голанк.
54 3267812
>>266932
Переписывать древние копролиты с джавы на го дело не совсем тривиальное, в том смысле что доставать проект из копролита нужно еще уметь, иначе получится хуета полная.
Проще забить хуй и дождаться пока новый СТО не придет и не найдет бюджет на то, чтобы нанять компететнтых людей, которые смогут по нормальному вынуть проект из копролита.

Новые проекты сейчас наверное все же больше на гоуленге начинаются.
55 3267950
Пацаны, дайте мотивации изучать Go.
Вырос из сисадмина в девопсы, но пишу только на баше по факту. Хочу изучить Go. Что такого охуенного можно написать на нем, в чем сильные стороны языка? Дайте мотивации
Операторы для кубера писать не предлагать
56 3267963
Вопросы для практикующих:
- я правильно понимаю, что итоговый скомпилированный файл из go может работать как на linux, так и на windows, если там внутри нет никакой платформо зависимой херни?
- вызов баш команд будет считаться зависимостью от винды, или оно как-то хитро оборачивает?
57 3267976
>>267963

>я правильно понимаю, что итоговый скомпилированный файл из go может работать как на linux, так и на windows, если там внутри нет никакой платформо зависимой херни



Если через go build собрать? Не должен. Как минимум формат исполняемых файлов в линухе и винде разный.
58 3267990
>>267484

>но отсутствие созревшего фреймворка привело к адовому хаосу в проекте


Fiber религия им не позволяет использовать?
59 3268016
>>267990

>Fiber


Много на нём писал? Я 1,5 года с ним работал на прошлой галере и это натуральный шлак с кучей малосовместимого говна. При этом коды испралений в они принимают очень неохотно. Пользовали свой форк фреймворка с микрофиксами и 7 правленых либ контриба, которые уже никто не поддерживал. Тащемто в спринге такой хуйни нет.
60 3268018
>>267484
Не слушайте этого хейтера. Сейчас все банки выкидывают на мороз джаваскуфиду и переписывают копролиты со спрэнг фримверка и хубирнейта на гоулэнг
61 3268023
>>267950

Не будет тебе никакой мотивации. Тебе либо что-то надо/интересно и ты сам пишешь, либо это тебе не нужно и хуй ты себя заставишь.
62 3268028
>>268018
Не слушай этого пориджа. Там все с жабы на го переписывают уже хуеву тучу раз, но каждый раз почему-то не дописывают
63 3268029
>>267950
Новый асасин на го напиши. Это будет ахуенно
64 3268030
>>267484

Вот что бывает, когда набираешь олимпиадников.
65 3268038
>>268030
Олимпиадники на ГОвне не пишут, в основном перекатившееся php-отребье с понятным итогом
66 3268040
>>268038

Пхп-отребье собес в тинек не пройдет. А вот олимпиадники пройдут без проблем. Правда непонятно, у кого код, в результате, будет хуже.
67 3268043
>>268040
Вот ты и спалился, пхп-дебил, в тиньке изики и самые простые медиум МАКСИМУМ
68 3268046
>>268043

Я на пхп никогда не писал даже лол.
69 3268047
>>268040

>Пхп-отребье собес в тинек не пройдет


Ну я пхп-отребье, и в тинек проходил собес, оффер был. Что с ебалом?
70 3268104
>>268043

>в тиньке изики и самые простые медиум МАКСИМУМ


В тиньке полная копия процесса найма, которую взяли у яшки. Там точно такая же ебка литкодом на 3-4 секциях, секция на сисдиз и финалочка с менеджером где тебе популярно объяснят, почему 200к это норм зэпка для сеньора. Собесить тебя будут яйцеголовые порриджи из МФТИ, если что
71 3268157
>>268104

>200к это норм зэпка для сеньора


Сколько норм зп для сеньора?
мимо не шарю
72 3268171
>>268157
Написано же - 200к
73 3268179
>>268171
а если хорошо подумать?
74 3268257
>>268157
350-400
75 3268293
>>268179
Если хорошо, то можно и 600к в Москве.
Если просто подумать, то >>268257
76 3268302
>>268016
Какие альтернативы fiber? В го вообще актуально такое? Gin, echo, chi, что-то ещё?
77 3268304
>>268293
600к в Москве у сеньора? В каких компаниях? Такая зарплата даже у тимлидов редкость. У меня есть знакомые с такой зарплатой, но это всё валютные удалёнщики.
78 3268373
>>268304

>600к в Москве у сеньора? В каких компаниях?


Ни в каких. 600к с улицы ты можешь получить, если устроишься лидом или руклем отдела по знакомству. 600к сеньке будут платить, если тот отмахал 10 лет в конторе и тянет проект с самого старта. С другой стороны 600к это 6к бакинских - зарплата стажера в какой-нибудь зарубежной конторе
79 3268417
>>268373
Вот именно, что ни в каких. Так что не совсем ясно зачем >>268293-анон пиздит.
80 3268712
>>268302
Так в том и проблема, что никто до сих пор не написал нормального фреймворка. Файбер, джин, эхо это всё сахарок вокруг хттп роутера от одного гигапрогера. Они под копирку делают контриб репу, куда накидивают васянских адаптеров, мидлвари, плагинов разной степени паршивости. Часть из них теряет сопровождающих и загнивает до полной несовместимости с главной репой "фреймворка" (прости Господи). В итоге имеем "а вот на джине написали 10 авенсом сайтиков", галеры с зепкой до 80к от говнарей воннаби кабанов, бигтех, который пилит свой Т-велосипед.
81 3268767
>>268712
И в итоге как пишут в серьезных качественных компаниях? Просто на стандартной библиотеке?
82 3268812
>>268767

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



на GRPC, а так скорее всего свои обертки есть или чета такое
83 3269456
>>268767
В гугле все сервисы общаются по gRPC, а наружу смотрят фронтенд сервисы написанеые на С++.
84 3269475
>>269456
Хочу быть С++ фронтендером...
85 3269615
>>268767
По моему опыту из одной галеры и двух шараг с собственным продуктом, все ляпают как попало, а потом берут что-то из проверенного временем. Гошку оставляют только на узких местах. Хэтапе ручки удобнее и безопаснее дёргать полноценными фреймворками. Ссаный круд со всеми обвесами дюже сложно сколотить на голанге, вот и остаётся он уделом маргиналов. Однако, байтойобствовать в вебе, при острой нужде в параллельщине, на го одно удовольствие (сравниваю с крестами), но тёплое местечко искать было сложно.
86 3269688
>>268029
В голос
87 3271140
Чем большой sql запрос динамически формируете?
Конечно я могу щас нахуярить его сам, но вряд ли от иньекций супер провалидирую все
88 3271402
>>271140
Динамический sql надо собирать внутри хранимки, а не в коде.
89 3272859
Что выбрать между rust и go?
Условия:
-вакансии не важны.

-использование 90% в вебе и мелкая автоматизация (язык общего назначения).

-нужно максимальное экономия по железке - cpu и памяти, то есть максимум выжать RPS на бюджетных vps.

-все еще важна скорость разработки, насколько велика разница между го и раст (как между го и с++??).

-наличие готовых стабильных библиотек.
sage 90 3272871
>>272859

>Что выбрать между rust и go?


rust
91 3272909
>>272859
Rust, C++
92 3272941
>>272859
Rust

Лучше ты в растротреде будешь ебать мозги, чем тут.
93 3273377
>>272859
В go есть сборщик мусора, это значит памяти больше будет кушоть.
94 3273478
>>272859

> использование 90% в вебе и мелкая автоматизация (язык общего назначения).



100% Go

> нужно максимальное экономия по железке - cpu и памяти, то есть максимум выжать RPS на бюджетных vps.



Скорее всего тебе это не нужно. Разница в потреблении памяти у Rust и Ruby всего лишь в пару раз, а задрачивать перформанс в своём вебе на 1rps тебе нахуй не нужно и никогда не окупится

Поэтому Go

> все еще важна скорость разработки, насколько велика разница между го и раст (как между го и с++??).



Точно Go

> наличие готовых стабильных библиотек.



Тут похуй
95 3273517
Какие не-Go-шные знания нужны Go-разработчику?

SQL, Docker, Linux, еще что?
96 3273519
>>273517
Кэфка, кликхаус, эластиксерч и прочий обвес
sage 97 3273568
>>273517

>Какие не-Go-шные знания нужны Go-разработчику?


Блять, нет такого понятия как КАКИЕ НУЖНЫ ЗНАНИЯ. Все фирмы разные. Все проекты разные. Одним нужно одно, другим нужно другое. Спроси МТС, web3-стартап, госкомпанию и ещё 10 компанию и ты получишь 10 разных ответов. Тебе МТС скажет, нам нужен Go, gRPC, Kafka, PostgreSQL, Redis. А web3 стартап стажет, нам нужно знание polkadot, блокчейна и всё такое.

Это надо смотреть ИН-ДИ-ВИ-ДУ-АЛЬ-НО!!
Нет никаких "универсальных знаний"
Нет никакой "базы golang"
Есть конкретный проект и конкретные знания
98 3274026
Го кроме как в вебе еще где-то прижился?
99 3274648
>>274026
Как по мне - Го это лучший Питон
100 3274763
>>274026
Кубер, Докер и ещё много чего
101 3274773
>>274026
не, да он и в вебе не особо прижился
102 3274774
>>274026
Он и вебе прижился только в России, на западе хуй найдёшь работу на го
103 3274812
>>274026

Го -- это для простых и очень эффективных сервисов, которые делают что-то одно и простое. Прямо как Юникс. Если пытаться только на нем построить какую-то большую развесистую систему, то насосешься хуев, потому что нет ни инструментов для этого, ни бест практик.

Вроде Си, когда на нем пытаются писать что-то большое, для чего он не предназначен, типа Gtk -- приходится все изобретать с нуля, криво и неудобно. А вот для маленьких простых утилит пушка-гонка.
104 3274844
>>274812

>Вроде Си, когда на нем пытаются писать что-то большое, для чего он не предназначен, типа Gtk -


Xorg на СИ сделан. Doom на СИ сделан. Всё можно написать на чистом С.
Просто в С нет поддержки ООП. А ООП это ведь модно стильно удобно молодежно. Можно все писать "по человечески" не прибегая к структурам указателей на функции. Так что все и выбирают С++, чтобы не пердолится лишний раз. А так можно и на Го сделать нормальный проект.
А gtk просто гои делали, вот у них ничего хорошего и не получилось. С ведь не гибкий, в этом основном минус, что если настроил этих нелепых конструкций - то чтобы что-то прикрутить, придётся добрую часть переписывать. А ООП, оно типо гибкое, предполагается что в любой момент можно изменить любой класс, и суть программы от этого не поменяется.
105 3274858

>RuntimeError is a no-op function but serves to distinguish types that are run time errors from ordinary errors: a type is a run time error if it has a RuntimeError


Как перестать орать с этого унтершпрахе?
106 3274984
На больших проектах го так же быстро компилится или сказка заканчивается?
107 3274997
>>274984
1,3кк строк компилит около 25 минут
108 3275109
>>274997
>>274997

Ну что-то хуйня какая-то. В Линупсе больше 30кк loc и пишут, что компилится 20-30 минут.
109 3275276
>>275109
От флагов, компрессии и сишных либ зависит. У нас максимально говённо, но поставлено на поток. Пока компилишь одну фичу, пилишь другую и наоборот.
110 3275312
>>274997
Тоже не вериться, собирал гигатреш на с++ на древнем железе было столько же. Есть адекваты? Сколько ваши проекты собираются?
111 3275427
>>274984

>На больших проектах го так же быстро компилится или сказка заканчивается?


Большие микросервисы назваются монолит, и это в джава/шарп тред.
112 3275561
>>275312
>>275109
Чего не верится? CGO отключите и хелло ворлд начнёт 30 секунд компилить.
113 3275572
>>275427
А то! Когда в твоем коде становится больше 1к строк, надо разделить код пополам, каждую часть вынести на отдельный сервер и дергать функции через tcp стек. Это модно, стильно, как в авито.
114 3275591
>>275572
Если у тебя 100500 одинаковых крудов, то разбивать на микросервисы можно для горизонтального масштабирования и управляего распределения нагрузки на части. Но обычно все сводится к правильной работе с СУБД, если работа крудов состоит, чтобы ожидать ответ от СУБД и формировать жсон для фронтенда. Но вот у тебя появляются очереди и воркеры. Не так все однозначно становится. Например доске объявлений в сервисе с большим количеством пользователей потребуется очереди обрабатывающие загружаемые пользовательские изображения. Ты выносишь их на "отдельные сервера" чтобы более филигранно распределить нагрузки. Хттп ручки становятся наиболее простой частью приложения. Усложнение состоит не в количестве строк кода, а в том что становится удобнее изначально все проектировать через обработку событий, а хттп ручки оставить в тонком шлюзе.

С немного другой стороны. Ты делаешь доску объявлений несколько лет. Потом ты делаешь CRM. Какой смысл делать CRM на той же самой кодовой базе, которая к тому же устарела и требует рефакторинга для устранения технического долга? Чтобы потом рефакторить еще большее количество кода? Бизнес не может ждать. Ему нужны новые фичи уже здесь и сейчас. Более того, коммерческая разработка состоит большей частью из склеивания готовых решений от других бизнесов. В том числе селфхостед решений. Например зачем тебе писать свой SSO если ты можешь keycloack использовать в виде отдельно сервиса.

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

Если что я к авито никакого отношения не имею..
115 3275755
>>275572

>Когда в твоем коде становится больше 1к строк, надо разделить код пополам, каждую часть вынести на отдельный сервер и дергать функции через tcp стек.


Потому что миллион строк кода, становится трудно поддерживаемым. А выносить можно и просто в библиотеку.

Ибифо: ко-ко-ко, а вот линупс ко-ко-ко

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

А в среднестатистической галере гребцы меняются раз в 1,5 года и попробуй скажи ПМ, что фичу надо пилить не неделю, а 2 месяца т.к. надо ещё зарефакторить кучу кода, чтобы всё было по уму. Поэтому миллион строк кода в одном сервисе, это практически неподдерживаемое говно.
116 3276547
>>271402
Эх баля!
117 3276551
Вы на маке или ленове сидите?
Screenshot 2024-09-19 at 13.32.16.png328 Кб, 784x1250
118 3276584
119 3276586
>>276584

Хуже петуха с устаревшим нищемаком просто никого нет.
120 3276675
>>276551
Мощный десктоп пека на Windows 11.
121 3276679
>>276586

Ок-ок, я был не прав. Этот >>276675 хуже.
122 3276683
>>276679
Пояснить можешь чего плохого в десктопном пека и винде?
123 3276816
>>276679

Пердолик,ты?
image.png186 Кб, 792x631
124 3277428
https://youtu.be/h6-Jiohy1Ak?t=708

Здесь чел делает примитивный и осознанно неправильный мьютекс

в пикрил методе же будет бесконечный цикл из которого нет выхода, потому что ни одна горутина не доберется до unlock. Если так, то почему прога у него работает и что то выводит?
125 3277685
>>277428
Обычный спинлок. Кто-то первый проскочит цикл, остальные будут крутиться в цикле и ждать, пока первый не сделает m.state = false. Это неэффективно и без атомиков будут проблемы, но как демонстрация работает.
Снимок экрана 2024-09-20 в 22.15.27.png433 Кб, 1452x998
126 3277750
127 3277803
>>276584
>>277750

И нет желания стать пердоликом на линуксе?
Тоже на маке сижу, но похоже отдам его бабе и заберу ленову у нее
128 3278490
есть ли смысл пробовать темпорал в монолите?
129 3278515
Голангеры, как делаете запросы в бд? Raw sql, или чаще orm какой-то?
130 3278612
>>278515
Сырой с резолвом параметров, обычно что-то вокруг pgx.
Еще есть кверя билдеры типа squirrel, но даже их довольно редко юзают.
131 3278613
>>278490
Если нужен функционал темпорала - почему нет.
132 3278740
>>262042 (OP)

>- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)


Почитал, нашёл это:
Web Frameworks + Routers
Beego
Chi
Echo
Fiber
Gin
Revel

Что из этого по-настоящему актуально? Какие фреймворки/роутеры обязательно нужно изучить? Хочу перекатиться в го из другого бекенд стека
133 3278741
>>278740
Последний коммит 3 года назад, кстати, поэтому и вопрос.
134 3278868
>>278740
net/http
135 3278869
>>278740

>Beego


>Echo


>Fiber


>Gin


>Revel



сразу нахуй
136 3278870
>>278869

>Beego


>Revel



ларавело подобная срань - го для такого не годится

>Gin


>Fiber



профита от них мало
джин это тупо роутер над дефолтным хттп сервером
а фибер построен на fasthttp, который для лютого хайлоада
там ебалово с тем что буфера переиспользуются и тд
и если какой-то database/sql подрубить то профит от быстроты фаста аннулируется потому что оно будет узким местом
137 3278873
>>278870
я в конторе где работаю (fortune 100) использовал фаст для случаев когда надо что-то быстро от клиента получить - отправить на обработку и отправить назад небольшой ответ типа 200 ОК
обработка в моем случае - отправка в буфер для сохранения в кликхаус
138 3278882
>>278740
короче гайд для твоих говноприложух
- пишешь openapi 3 спеку для апишки
- берешь https://github.com/ogen-go/ogen и генеришь роутер с дефинишенами структур и функций
если оффнуть strict server то получишь доступ к http.ResponseWriter, http.Request, если включить то будут удобные хендлеры без ручной (де)сериализации джейсонов
139 3278885
>>278882
NB: являюсь кунтрибутором в эту парашу
140 3278896
>>278882
Это хорошо чтобы делать огромные коммиты, при мелких правках апи, для изображения бурной деятельности?
141 3278897
>>278896
da там дохуя кодогена
142 3278957
>>278869
То есть chi норм?

>>278870
А что насчёт chi, echo и net/http?
143 3278961
>>278957
роутер chi идеал для net/http
echo это как джн
net/http это самый стандарт
там еще и более функциональный роутер завезли в новых версиях
https://go.dev/blog/routing-enhancements
144 3278963
>>278873

>я в конторе где работаю (fortune 100)


Хуя ты слон, можно кулстори?
145 3278964
>>278961
ехо как джин то есть - малопрофитно
146 3278973
>>278963
та финансы ничего особенного
до 22 года даже в рф был офис
147 3278990
>>278973
Дойче банк?
148 3278993
149 3279836
>>262042 (OP)
Подскажите пожадуйста, как сделать так что бы при обращении например к http//example.com запрос попадал сначала на localhost:8000 и потом уже оттуда перенаправлялся на http//example.com. Именно так а не чтобы запрос шел на localhost:8000
150 3279857
>>279836
Что значит переправлялся? Хттп редирект? Или сервер должен другой сервер опросить?
Конкретно задачу опиши, а не то как ты ее решить хочешь.
151 3279861
>>279836

nginx reverse proxy
152 3279872
Го до сих пор это микродолбежка в круд? Или же язык повзрослел и юзается активно где-то еще? (гуи, геймдев, вебассембли, МЛ и еще что-то?)

Пытаюсь выбрать себе язык общего назначения, мечусь между шарпами и го, хочу понять что есть го на сегодня.
153 3279967
>>279872

>микродолбежка в круд


нет - это язык для инфраструктуры в первую очередь
круды сейчас на джаваскриптах пишутся

>вебассембли


про внутренности го (scheduler, etc) почитай для начала - это как jvm натянуть на вебассембли - такого нет и не будет

>МЛ


питон же

>Пытаюсь выбрать себе язык общего назначения



Rust or C++
154 3279969
>>279872
По твоему описанию тебе нужен шарп или джаваскрипт без иронии
155 3279982
>>279857
Надо сделать так, чтобы все запросы на сайт hugo перехватывались прокси сервером
156 3279994
>>278993
Ничего себе, Дойч стал го использовать? А что за проект?
157 3280016
>>279994
да микросервисы на джаве и го
конкретнее сказать не могу
158 3280088
А вы тут все миллиардеры?
159 3280122
>>280088
только я
160 3280139
>>279967

>про внутренности го (scheduler, etc) почитай для начала - это как jvm натянуть на вебассембли - такого нет и не будет


Некомпетентный

>Rust or C++


Говноед
161 3280144
>>280088
>>280122
Только он
162 3280164
>>279969
на джаваскрипте пишут уже игры?
163 3280181
>>280164
Нет, но он подходит для многого другого:
- фронтенд
- бекенд
- мобилки
- десктоп
- IoT
- web3
- ml
image.png3 Кб, 286x42
164 3280182
У меня ide не видит тип error встроенный, как это фиксить ваще
165 3280197
>>280139

>Некомпетентный



поясни за базар для начала
166 3280198
>>280181

>- десктоп


говно электрон

>- web3


скам для дебилов

>- ml


питон для обучения и тритон для прода

>- бекенд


круды да
167 3280204
>>279994

>Дойч стал го использовать?


Давно уже и не только он. Потихоньку выкидывают джаваговно и джаваскуфидонов спрингописателей
168 3280225
>>280197
Чушпанам не поясняют
169 3280236
>>280198

>говно электрон


Во-первых, сам электрон в последние годы не настолько плох, как про него говорят. Во-вторых, есть tauri, neutralino и другие инструменты.

>скам для дебилов


Нет, скорее ты дебил, который называет скамом те вещи, которые не понимает.

>питон для обучения и тритон для прода


Да, питон для ml однозначно лучший выбор.

>круды да


Нет, не только круды. В принципе можно сделать всё то же самое, что можно сделать на го, кроме CPU bound задач, хотя и их при желании можно, но их обычно оффлоадят в отдельный микросервис на низкоуровневом языке через кафку/реббит/натс/etc.
170 3280318
>>280204

>Потихоньку выкидывают джаваговно и джаваскуфидонов спрингописателей


Шизик выдохни. У ДБ ОДНА вакансия для Говноланг разработчика. Даже Кобол востребованей, там около десятка вакансий.
nova-filepond-EUwsXK.png345 Кб, 851x504
171 3280689
>>280164
Vampire Survivor
HeroWO.js
172 3280696
Подскажите, стоит ли выбирать го как первый язык программирования без какой либо базы?
173 3280704
>>280696
База чего блять? Го - это обычный язык общего назначения. Это не специализированный язык типа ampl для комбинаторики и оптимизации. Это не матлаб, это не симулинк и даже не systemc. На нём не проектируют электронику. Какую блять можно знать базу, если он универсальный язык по определению? Ты суперкомпьютеры чтоли собрался программировать или чё блять? Пиздец тупые вопросы.
174 3280706
>>280696
Я бы даже рекомендовал для новичков.
1) Он прост, после других языков не хватает множества синтаксического сахара, от чего неудобно, а тебе будет норм.
2) Нет ООП деградирования, ты пишешь как думаешь, не создавая слоенного ООП пирога, размазывая бизнес логику.
3) Легко читается и сопровождается, можешь легко чужие сорцы читать. Что порой нужнее чем писать код самому.
Я как-то два года спустя открыл свой котлин код и вообще нехера не понял эту магию.

В общем, бери не парся. В каком-нибудь шарпе ты полгода только базу учить будешь, а тут ты и либы подергаешь и напишешь что-то.
175 3280725
>>280696
Нет. На го вакансии в основном в бигтех, там ты с голым знанием го нахуй не усрался
Поэтому каждый гошник - перекатыш из пхп/джавы/питона/етс
176 3280919
>>280696
Просто изучить - лучший вариант. Гошка простая, легкая, без килотонн сахара.
Если вкат - то с натяжкой, ибо требуют опыт
177 3280936
>>280696
Бери шарпы, де-факто ООПшную тему знать и понимать надо
178 3281002
>>280696

Советую взять паскаль как первый
179 3281235
>>280704
я не могу ответить для чего база - так говорят различные блогеры и тд.. Один сослался на то, что обучение на Go всегда подразумивает то, что ты уже знаешь эту самую "базу" и основы для прохождения курсов, обучения и тд
>>280706
Большое спасибо за совет!
>>280919
Работаю рекрутером в it) Везде требуют опыт. Когда джунов ищу с опытом от года - больше половины с накруткой и сразу понятно что нигде не работали. Все понимают прекрасно всё, но если чел талковый, то проблем нет, как правило. У меня больше вопрос про сложность и возможность обучения Go с нулся
>>281002
)))
180 3281431
>>281235

>я не могу ответить для чего база - так говорят различные блогеры и тд.


Это из разряда "посоветуйте то, сам я не знаю что, чтобы я тоже знал".

>Один сослался на ...


Одна бабка сказала. В интернете столько людей, я охуею комментировать что каждый спизданул где-то в интернете. Давай так... тот кто сказал имеет какие-то регалии? Он важная шишка в гугле, майкрософте, амазоне? Он обладает глубокой экспертизой? Нет? Ну и всё, шли его нахуй. Любой школьник может зайти в интернет и спиздануть любую хуйню. Не значит что это хороший совет.
181 3281451
>>281235

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


Вообще, "основы" - это такая эфемерная хуйня, примерно как точка джи у бабы. Если ты спросишь 10 разных программистов, то получишь 10 разных, конфликтующих ответов. Она строится только на вкусовщине и ничем ином. Спросишь Петяна, он тебе с пеной у рта будет доказывать, что нужна математика в первую очередь, а спросишь Васяна, он тебе начнёт доказывать что нужно знать базы данных. Тут и так почти каждый день идёт срач какой фреймворк/библиотека лучше. Просто надо учить тему, а не ебать голову "основами", "базами" и так далее. Читаешь книги, желательно несколько штук, вот это и будет твоей базой.
182 3281460
>>281235

> но если чел талковый, то проблем нет, как правило


А в чем толковость проявляется? Просто понимает, о чем говорит? А то я уже месяца полтора откликаюсь и все мимо. Щас вообще без опыта в разы меньше стало вакансий. Прям руки чешутся годик накрутить, да вот хз что писать даже(
183 3281463
Можете пж подсказать какой-нибудь материал, где микросервисное приложение с нуля пишут. Можно даже не на гошке. Вообще ничего найти не могу, практического. Одна вода да теория
184 3281494
>>281463
на ютубе же полно ты просто не русскими буковами ищи
186 3281502
>>281494
на питухоне с кубером
https://www.youtube.com/watch?v=hmkF77F9TLw
187 3281674
Кто-нибудь пишет на го что-то кроме микросервисов?
image.png82 Кб, 407x400
188 3281793
>>281502

> на питухоне


> от индуса


Yes honey...
189 3281797
>>281498
А норм курс вообще? А то отус слышал не лучшими челами считаются. Да и фраза "демо-занятие" смущает. Но за наводку спасибо, потыкаю немного видосы
190 3282033
Как часто на рил работы нужен RPC? стандартной либой нет хттп достаточно ограничиться чтобы получать свою пайку джуном?
191 3282103
Как думаете, Го -- это тема надолго? Или поматросят и бросят как Руби?
192 3282120
Чет совсем поехавшие залетать начали
Курсы,рекрутеры
>>282103
Да, смысла учить го нет, учи джаву
193 3282164
>>282103
Надолго не надолго а доить надо пока у кабана божья роса с зёнок не стекла окончательно
13759446351850600308.png232 Кб, 559x604
194 3282185
>>282103
С учетом как массово бигтех на него перекатывается и санкции летят на тулинг и IDE, Го у нас теперь навсегда.
195 3282260
>>282120
+ заметил как инфоцыгане переключились на рекламу го. Реклама как с питоном, пиар под видом простого языка чтобы вкатун мог написать бота за три дня.
Ну вот теперь как в питухоне, 1200 стажеров толкаются локтями за недавнюю стажку в авито.
196 3282292
>>282260
На говнаря реал закатиться мнение из жопы если что если свитчиться миддлом, причём подрочив хорошенько многопоточку. Вкатышам соболезную
197 3282364
>>282120
то есть чел-рекрутер, который ищет разных разрабов и находится по сути в этом же ИТ - поехавший?)
чел со стройки норм, а чел, который намного ближе не устраивает?))
ты еблан, ой
198 3282376
>>282364

Не хочется верить что это сообщение реального человека, тем более рекрутера
199 3282388
>>281674
Да, пишем монолит на работе
200 3282636
>>282388
ну и как впечатление, сколько компилиться хотя я спрашивал про что-то еще кроме веба
201 3282761
Есть ряд асинхронных задач, что лучше подойдет го или раст?
202 3283008
>>282185

>санкции летят на тулинг и IDE


Пиздец ты дебил братишка.
203 3283009
>>282761
Раст лучше ты будешь там тупые вопросы задавать
204 3283400
Вот мне как PHPшнику (разбираюсь в ООП, ДДД, симфони ужаса не вызывает и тд), для чего GO?
Для каких кейсов? Чем он лучше обычного микросервиса на php, например сходить в бд, достать данные вернуть, или запустить через консольку ffmpeg, обработать что-то и тд.

Что на GO делают вообще?

И далее вопрос, что нужно знать в GO и как долго вкатываться?
205 3283408
>>283400
1. Написать скрипт и не ебаться с окружением для деплоя.
2. Ультра быстрый шлюз в кластере.
3. Байтоёбство с параллельным выполнением.
На большинстве проектов голенг вставляют только для разгибания узких мест. Писать на нём сложную бизнес логику можно только в случае, если ты готовишься съебаться к другому кабану.
206 3283448
>>283400

>Чем он лучше обычного микросервиса на php


Ты докером хоть раз в жизни пользовался? А кубернетисом? А прометеусом пользовался? Ты можешь нечто подобное написать на пхп? Чтобы был докер на пхп? Нет? Ну и всё нахуй, сиди и не пизди.
207 3283478
>>283408

>Писать на нём сложную бизнес логику можно только в случае, если ты готовишься съебаться к другому кабану.


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

В отличии от джавы, где вешаешь аннотацию - и у тебя магически начинает выполнятся куча стороннего кода.
208 3283491
>>283478

>В отличии от джавы, где вешаешь аннотацию - и у тебя магически начинает выполнятся куча стороннего кода.


Да на пхп давно уже такая же хуйня. Современный коммерческий пхп это недоспрингбут
209 3283506
>>283448
Школьник, съеби нахуй, заданы конкретные вопросы, а читать мне твои вскукареки мне неинтересно, мне нахуй не нужно писать кубернетис и докер, меня больше волнует мотоцикл и фургон для него
210 3283513
>>283506
Ты серьёзно даунские вопросы задаёшь - чем компилируемый язык лучше не-компилируемого? По-моему, всё очевидно. Чем машина лучше велосипеда? Ну наверно скоростью, не?
211 3283529
>>283513
Согласин
Пхп - минитрактор с максимальной скоростью 60 км/час
Голенг - трехколесный велосипед с реактивным двигателем
212 3283531
>>283506
Везде где надо скушать жсончик и недолго думая пукнуть в кафку можно воткнуть гошку
Везде где надо быстро обработать дохуя данных с не самой пизданутой наглухо бизнес-логикой (как в основном копролите), можно воткнуть гошку
213 3283535
>>283531
Так обычно тимлиды развлекаются, когда пыха сликом boring
214 3283536
>>283535
Благослови их Г-дь
215 3283588
>>283513
Школьник, ну-ка скрин где я это задаю, или твоя спидозная мама подохнет, если скрин не принсешь с:

> вопросы задаёшь - чем компилируемый язык лучше не-компилируемого?



Твой школьный мозг не способен даже текст прочитать, малолетнее животное
216 3283589
>>283588
"...для чего GO? Чем он лучше обычного микросервиса на php"

Golang какой язык? Компилируемый или нет? А php? Сам дальше сообразишь?
217 3283620
>>283589
Ииии? Если какая разница если время ответа 0.002 обычно? Школьник, я тебе уже писал чтобы ты съебал нахуй
218 3283668
>>283400
Простой синтакисис, разберешься даже в говнокоде. Скорость разработки. Хорошие тулзы из под каробки(тесты, бенчи, форматирование), много либ на любой вкус. Хорошая паралельность из пад коробки. Есть уже готовые мини http фреймы(аля роутеры). Компилируемый язык, не надо ничего лишнего поднимать(nginx, php-fpm). Мало ресурсов поедает относитльно пыхи, особенно заметно когда у тебя куча динамо стендов в кубе, под каждую фича ветку или баг фикса.
219 3283710
>>283668
Спс
220 3283907
>>283620

>время ответа 0.002 обычно


Ну ок. Запилишь тогда аналог твича? Чтобы видео перекодировалось и раздавалось 5000 зрителям одновременно? Сможешь? Я писал... Лул да кто ты такой, ты чорт епт.
221 3283930
>>283907

>видео перекодировалось


Один хуй это не на ГО делается даже с ГО
222 3283976
>>283930

>это не на go


Гений, набери "twitch source code" в гугле и увидишь на чем он написан.
223 3283989
>>283976
Я другой анон, но вангую вызовы си библиотек или даже cli команд сишных программ
image.png764 Кб, 1076x435
224 3283996
>>283907
Школьник, неси скриншот >>283588

>Запилишь тогда аналог твича? Чтобы видео перекодировалось и раздавалось 5000 зрителям одновременно?


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

>Я писал..


А кто тебя спрашивал что ты писал? Создай свой тред и рассказывай что ты писал. Нахуя ты мне это пишешь?

>Лул да кто ты такой, ты чорт епт.


Ждем скриншот от пидора, который не предоставит
225 3284005
>>262439
А я слышал наоборот: чем новей язык, тем меньше на него конкуренции вкатунов.
226 3284016
>>283529
Шо то хуйня, шо это хуйня. Для бекенда лучше будет typescript.
227 3284020
>>283976

А на чем? Вижу новости, что слили гигабайты, но так и не понял, на чем это говно написано.
228 3284022
>>284016

>Для бекенда лучше будет typescript.


Будет лучше пхп, ява, с#, а не этот костыль, если цель ООП и бизнес поддерживаемая бизнес логика
229 3284023
>>284016

От него уже отказываются.
230 3284029
>>283907

>Запилишь тогда аналог твича? Чтобы видео перекодировалось


Так в твитче это не на го делается, а на си (ffmpeg)
231 3284031
>>284023
Наоборот количество вакансий с бекендом на тайпскрипте больше с каждым годом, хоть и занимает небольшой процент от общей массы

>>284022

> ООП и бизнес поддерживаемая бизнес логика


Тайпскрипт прекрасно для этого подходит. Это язык с мощной системой типов от гениального автора сишарпа
image.png67 Кб, 1206x458
232 3284118
>>284031

>количество вакансий на %ЯЗЫКНЕЙМ% больше с каждым годом


Этот тейк в каждом первом треде встречается. Весь бигтех уже все переписал на Шарп, Го, Раст, Котлин, Эликсир, раз 20 наверное.
233 3284190
>>283976
Гений не слышавший про ffmpeg, нахуя ты в этом треде сидишь??
234 3284193
>>284031

>с мощной системой типов


Которые нахуй не нужны

даже го весь наполнен := вместо объявления типов
235 3284200
>>284118
Язык для бекенда не самый популярный, но это факт, что с каждым годом вакансий на том же NestJS больше процентов на 10-20, я регулярно мониторю рынок т.к. это мой основной стек. Бигтех не показатель, тем более там тоже иногда это используют.

>>284193
Динамикодриснявая мартышка, сдрисни пожалуйста из треда статически типизированного языка.
236 3284207
>>284200

Го называет динамикодрисней, а от тайпскрипта кайфует....
Так и запишем
С каждым годом он популярнее становится потому что удобно мартышку на жсе садить и фронт и бэк делать + желающих пруд пруди, которые демпенгуют зепки и готовы за еду работать
237 3284213
>>284207
Я не называл го динамикодриснёй, а наоборот назвал этот тред тредом статически типизированного языка, в котором нет места динамикодриснявым макакам, которые говорят, что типы не нужны.
238 3284375
>>262042 (OP)
Обьясните в чем преимущество делать map[string, *MyStruct] вместо map[string, MyStruct]. Пишут что разницы не сильно много, первый вариант чутка быстрее

> мимо вкатун

239 3284438
>>284375
В первом случае у тебя будет лежать указатель на MyStruct, во втором сама MyStruct. В случае указателя у тебя копируется туда-сюда 8 байт, в случае структуры - будет гоняться структура целиком.
240 3285012
Скажите бога ради, какой нынче стек?
241 3285016
>>284118

>Эликсир


Кто-то вообще помнит про эликсир?
243 3285038
>>285032
джавист, уходи
244 3285049
>>285016
вспоминаю каждый раз когда ищу себе нормальный язык, но не каждый день
245 3285057
>>284193
Ты немного не понимаешь для чего нужен ts
246 3285376
>>285057
Чтоб усложнить жизнь же, не?
247 3285449
>>285376
Наоборот. Это же не го или джава.
248 3285507
Как работать с моделями во всяких веб-крудах?
Часто возникает проблема, что появляется куча структур типа UserRequest, User, UserDB и так далее, которые описывают одну сущность, но имеют разный набор полей из-за специфики используемого слоя (условно в реквесте мало вероятно, что будет содержаться полная информация о юзере, поэтому есть UserRequest).
Как быть в таком случае? Создавать кучу вариаций или гонять везде одну структуру и извлекать только нужную инфу?
249 3285610
>>285449
Так на жс тс на бэке куда не перни нет нужной библиотеки и так же пили свой велосипед, плюс куча легендарных библиотек isNumber
Плюс одновременно чекай и жс код и тс
На го все из коробки

После тс с таким кайфом на шарп ушел, ты не представляешь
А потом с шарпа на го
250 3285623
>>285016

>Кто-то вообще помнит про эликсир?


Пока тред этих полезных, не утонул, они хвастались зепками и низкой конкуренцией.
251 3285633
>>262042 (OP)
Ну что GOвнари, гоу мерться пиписьками.
https://bege13mot.github.io/qa/go-questions/
252 3285675
>>285633

>Что такое lvalue и rvalue?


Они что с плюсов вопрос случайно скопипастили?
253 3285681
>>285675
Так в GO идут одни свичеры.
Чего бы и не спросить.
Я не думаю что есть люди которые начали путь программирования с go и так и остальись с единственным языком.
254 3285691
>>285507
Нет, должны быть разные структуры, в идеале кол-во слоев = кол-во структур
В моих крудовых поделках 3 слоя, слой сервера, слой сервиса и слой базы данных, соотвественно 3 структуры
255 3285694
>>285675

>Что такое lvalue и rvalue?


>>285623

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

С тем же успехом можно спрашивать определение манипулятора "типа мышь" и заворачивать людей и думать какой хрюша охуенный работник
256 3285723
>>285610
Уже много лет есть всё необходимое, не нужно никаких велосипедов пилить. Зачем чекать жс код, если исходники на тс?
257 3285867
>>285691
Т.е. мы постоянно должны перекладывать из одной структуры в другую при переходе на новый слой? А если они одинаковые по составу полей?
И что делать, если в разных сценариях требуются отличающиеся структуры? Условно для update-хендлера нужен только id, а для create - доп инфа. Опть плодить структуры?
258 3286053
>>285867
Что выбрать зависит от ситуации. Несколько разных объектов дают гибкость: можно менять внутреннее представление, базу и апи независимо друг от друга. Меньше шанс что данные случайно утекут клиенту, или наоборот как-то мусор протечёт в базу. С другой стороны нужно конвертировать туда-сюда.
Один объект на всё, хорошо подходит для простых случаев и позволяет писать меньше кода. Но скорее всего, по мере роста проекта придётся разделять сущности.
259 3286184
>>286053
Так сущность и так одна. Условно юзер с полями id, name, age. Также он и в базе лежит. Но например для удаления мне нужен только id. ВОт мне этот айди совать в структуру User с остальными нулевыми полями и работать только с id, или создавать UserDelete только с полем id?
260 3286204
Сап, двач.

Не совсем вопрос по голангу, но может найдется что подсказать.

В общем, у нас есть небольшая команда челиков, которые пишут всякие инструменты для инфраструктуры. Они сейчас пишут на питоне и у них нет особой дисциплины в плане типов данных, форматирования кода и т.п.

Можете поделиться своим опытом перехода с питона на го? Типа, что можно ожидать. Тут питон не особо объектно-ориентированный, паттернов и т.п. нет.

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

Инструменты планирую переводить как командной строки, так и веб апишки.

Заранее благодарю за ответы.
261 3286426
>>286184

>Так сущность и так одна. Условно юзер с полями id, name, age. Также он и в базе лежит.


Ещё раз: это вначале у тебя у сущности 3,5 поля, а потом, по мере роста проекта у тебя добавится список телефонов который хранится в отдельной таблице, список ролей и т.п. И тут уже надо разделить АПИ, внутренние представление и базу. Хочешь делай сразу, хочешь рефактори потом.

>Но например для удаления мне нужен только id. ВОт мне этот айди совать в структуру User с остальными нулевыми полями и работать только с id, или создавать UserDelete только с полем id?


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

Если первичный ключ составной или у тебя записи версионируются, создай объект PrimaryKey и юзай его и в сущностях и методе удаления.
262 3286605
>>285867
>>285691
Жесть, на этот спам ДТОшками и перекладыванием из пустого в порожнее еще в джаваспринге жаловались, и опять к нему пришли

>>286204
Смотря какой объем кода. Большой объем и нет жестких требований по перформансу - лучше оставить на питоне. Не всем нравится спамить if err != nil, тем более там, где в этом нет необходимости. Это типичная проблема переписывания проектов - каждый новый человек стремится переписать под то что ему нравится и при отсутствии больших ресурсов это зависает в полузавершенном состоянии. Взвесь сначала.
263 3287597
>>286204
Спорная затея. Голанг - это про веб микропенисы в очень узких местах. Твои очевидные проёбы. При переписывании будут баги. На питон кратно легче найти замену веслателя. Никаких профитов от статической типизации и производительности. Можно внедрить автоформат питоновских файлов при сохранении.
264 3287773
>>286605

>Жесть, на этот спам ДТОшками и перекладыванием из пустого в порожнее


ДТО на реквест, ДТО на респонс, фабрика для ДТО, маппер для ДТО... кто работал на проекте, где любят дто, тот в цирке не смеётся
265 3287808
Аноны, какие мысли по:
https://kata.academy/go/postpayment
Стоит оно того или забить?
266 3287835
>>287808
А ты договор читал? Накрутят опыта, устроят мидлом
Есть много фри курсов по го, на том же степике и трекерах + книги
267 3287889
>>287835
что за трекеры? Не слышал о них
268 3287908
>>287889
Рутрекер, нонамеклуб. Ну можешь еще на всяких сливофорумах покопаться.
269 3287928
>>286605
Можешь, пж, пояснить за ДТО? Это то что я описывал, что для каждого слоя своя структура? Как от такого избавляться, а то не в восторге сам от такого?
270 3288117
>>287835

>на том же степике


степик разве не конская залупа?
271 3288123
>>286605

>Жесть, на этот спам ДТОшками и перекладыванием из пустого в порожнее еще в джаваспринге жаловались, и опять к нему пришли



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

Кстати где то видел проект где навалили сотню структур и мапили их через одну единственную функцию через reflect (как по мне жутко нестабильная хуйня)
272 3288151
>>288117
Ну вот неплохой текстовый курс для вкатунов https://stepik.org/course/54403/info
Вот уже для более опытных https://stepik.org/course/187490/info
273 3288412
>>287928
Да, DTO - это термин из объектно-ориентированных языков, аналог структур.

>Как от такого избавляться


Не использовать там, где в этом нет смысла

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


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

Просто ДУМАЙТЕ сами, что решает тот или иной подход, а не просто делайте потому что кто-то что-то сказал
274 3288415
275 3288702
>>287835
Договор кабальный и кажется с подводными
Плюс этого курса в том что помогут устроится (в теории)
В общем думаю
276 3288794
>>287928
DTO - это data transfer object, обычная структура с полями без логики. Используется вместе с ORM, чтобы не писать руками user.Id = reader["UserId"].GetInt32() снова и снова. SQL запрос возвращает какой-то набор сырых данных, с сырыми данными работать неудобно, поэтому они мапятся на массив DTO структур и дальше ты работаешь со структурами.
277 3289095
>>287808
Эта контора полностью сломала рынок для джавистов-мидлов в свое время, они еще до хайпа стаи назарова существовали. Смысл в том что тебя надрачивают на прохождение собеседования (теории) и дают второго пилота для прохождения собесов. Работу тебе будут искать в Москве так как там самые высокие вилки. Отдать конторе нужно вроде 20% от месячной зп пару лет.
Не рекомендую, из-за таких пидорасов собеседования превратились в решения головоломок и допросы + неофициально устроиться на работу (если не хочешь платить алики) стало трудно так как теперь каждый второй с 3 годами опыта в вымышленной компании.
278 3289691
Го лучший язык для бэкенда любой сложности. От 0.001 рпс пета до 100000000 рпс монстра. Скорость разработки на го намного быстрее любого другого языка. Простота и отсутствие красивостей и свистоперделок позволяет понимать код тиммейтов с невероятной легкостью. На этом языке очень тяжело словить тильт. Стандартизированный тулинг позволяет новому гребцу вкатываться в процесс разработки в первую неделю работы.
Теперь про минусы: стандартная либа не на генериках - хочется брать корень от целочисленного типа, новые фичи в новых версиях добавляют ненужной сложности языку.
279 3289694
>>289691

>Скорость разработки на го намного быстрее любого другого языка.


Даже быстрее чем на руби рельсах с тотальным скафолдингом всего?
280 3289697
>>289694
Тот чел сумасшедший. На гоу сраный круд будешь 2 недели пилить. Там дохуя всего может конфиктовать и для этого приходится везде метрики прикручивать.
281 3289707
>>289697
Skill issue.
U5.jpg221 Кб, 1920x1080
282 3289766
Го оказался не особо быстрее ноды.
https://www.youtube.com/watch?v=h2pCxj_Fkdc
283 3289772
>>289691

>Скорость разработки на го намного быстрее любого другого языка


Ну зачем сразу так толсто? На пыхе быстрее, на жс/тс быстрее, на руби быстрее, на питоне быстрее.
284 3289817
>>289691
Ты пытаешься себя убедить или что?
Го это ходячий бойлерплейт, все что дальше микро-круда писать можно, но чрезвычайно уныло и муторно, а гребанное процедурное программирование возвращает нас во все те же проблемы 30-летней давности, которые были решены в промышленном ООП-программирование кровью и потом. У меня правда флешбэки от функций в 1000 строчек и 10 аргументами, с двухбуквенными переменными
285 3289819
>>289766
Там додик умудрялся сравнивать зиг в дебаг сборке и специальные сокетные http-огрызки от го с полноценными http-серверами.

Но забавно как го начинает отжирать память, как теже жабо-шарпы, которые обычно резервируют хип
286 3289935
>>289819

>Там додик умудрялся сравнивать зиг в дебаг сборке и специальные сокетные http-огрызки от го с полноценными http-серверами.


Он бы еще код на го сразу с машинным сравнивал.
287 3289951
>>262042 (OP)
суп двощ, есть ли способы спиратить IDE от JetBrains? СТудентскую лицензию давать перестали (хотя гитхаб дал, лол), а привыкнуть уже успел. Ну или где то купить слитую лицензию по дешёвке
288 3290029
>>289817

>двухбуквенными переменными



- Так называйте нормально
... - Кто, я?!
289 3290035
>>289817

А потом у тебя забирают вскод и жидбрейнс и оказывается что уже не ты программировал, а иде за тебя с жпт помощниками
290 3290040
>>290035

>иде за тебя с жпт помощниками


Кто-то неиронично это использует?
291 3290045
>>290029
я использую только трехбуквенные слова
292 3290050
>>290035
Когда начнут забирать опенсорс, mit и bsd, то заберут и твой го и гитхаб и все.
293 3290052
>>290035
Неожиданно го тоже без вскод - тыква, хотя вскод попенсорс.
294 3290078
>>290045
И все нецензурные?
13759446351850600308.png232 Кб, 559x604
295 3290099
296 3290126
>>290050

Ну как они го заберут, если он у меня уже скачан...
Только если компы взрываться начнут
297 3290132
>>290126

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


А израильские запчасти в них есть?
298 3290204
>>290132

бабаах
299 3290608
Помогите пж
Как мне отправить файл в ответ? Чтоб не просто набор байтов передался, а с названием файла по человечески
300 3290619
>>290608

А блять, просто serveFile обернуть для удобства
301 3290620
>>290608
Content-Disposition: attachment; filename="aaaaaaààaaaaaaaaaaaaaa"
302 3290776
>>290620

Мерси благодарю тебя
303 3290829
>>290035
ну да, тру только на бумажке программируют, а потом подмастерья пересказывают код машинисткам
304 3293389
сап, потихоньку вкатываюсь в го с других бэкенд языков (жаба, тс). Поясните пж за систему пакетов и модулей. Что нужно выделять в пакет? В модуль? Какие хорошие практики? Как делать надо, как не надо?
305 3293794
>>293389
Срешь все в одну или несколько папок, иначе где-нибудь на двадцатом импорте словишь циклический импорт.
306 3294075
Тоже хочу попробовать Го. До этого писал на Си в основном под МК. Хочу написать простой веб TODO. Бот мне выдал, что надо написать бэкенд на Го, потом фронтенд на Express. Много лет назад писал монолит на Flask и немного удивительно, что надо делить фронт и бэк.
В связи с этим вопрос: го-сеньоры, меня бот не обманывает?
307 3294167
>>294075
Какой бот? Тебе ничего не мешает отдавать хтмл с бэка и все. Тем более экспресс для фронта не используется, это бэк на ноде.
308 3294206
>>294075
не обманывает, гошка во фронт не очень.
Есть варик генерить всё на беке - htmx + templ.
Есть что0то типа веба в wasm - wail go-app
Можно упороться и сгенреть всё в wasm там внутри генерить html и прочее.
Но один фиг тебе придётся писать много обвязки для работы с беком.
ZcgKDggA1Uqdbq.jpg181 Кб, 1920x1080
309 3294265
Лиспы - семейство языков программирования. Характерные особенности лиспов: динамичность, гомоиконность код как данные, программируемость.{Основные диалекты}:: Common Lisp - разрабатывался как промышленный язык, пригодный для широкого спектра применения, из-за чего имеет достаточно объемную специфика
310 3294606
Лично мне не хватает в го возможности управлять памятью как в си. Например, нельзя создать динамический массив, не использую встроенные срезы.
Также не хватает выразительности новых конструкций. Это по прежнему отдельные функции и структуры как в си. Нельзя их интегрировать в синтаксис с помощью перегрузки операторов.
311 3294730
>>294606
Зато в обмен получаешь простой и читаемый код. Тиммейты на говнокодерах не смогут испортить настроение. Также производительность ниже всего лишь на процентов 5 по сравнению с оптимизированными плюсами. Говнокод и мозгоебля того стоит? Не стоит.
312 3294850
>>294730
Откуда инфа про 5 процентов?
vIM5kq.png3 Кб, 180x143
313 3294867
Сап, гоферы.
Хочу начать использовать пикрил библиотеку для своих петпроектов игровых.
Кто-нибудь пробовал?
На го только скрипты и маленькие микросервисы по работе и унику писал.
314 3294885
>>268767
Работал в двух крупных проектах ЕС/США, дела обстоят так: есть набор внутренних и около-обязательных тулзов-оберток поверх стандартной либы или популярных мейнстрим-либ, например хттп сервер, в который уже всунуты дефолтные для конторы метрики и логгирование, или либа для БД, брокера сообщений и т.п. Делается это для единого контроля за структурой проекта и версиями, а то где-то уже обновили или взяли условный логгер v3, а где-то еще v1. Часто еще есть шаблонный проект со скриптом, который по одной команде создает тебе сервис из шаблона с нужным тебе названием или даже либами.

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

А вот если всего этого нет, то каждый берет то, что считает нужным, и начинается ебучий ад, особенно когда какой-то особо одаренный всунет говно вроде go-micro.
315 3294923
>>294885

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


И всё это ради того, чтобы пилить очередной распределённый монолит?
5dbd5105-30b2-445e-9497-7bcc5aa2fe07.jpg62 Кб, 679x513
316 3295019
>>294730

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


Этот буллшит еще работал лет 7 назад, но сейчас то с какого места дует этот бред?

Схерали бойреплейт код стал легко читаем? Ты ассемблер легко читаешь? Максимально просто же. Развесистая портянка кода, этот го, что писать муторно, что читать.
317 3295020
>>294867
Без студии разработка игр, так же увлекательно как фронтент разработка без браузера. Лучше инвистируй время в годот/юнити расширение.
image.png522 Кб, 650x919
318 3295021
>>294885
В жабе сейчас зеленые потоки, в шарпах асинки. У обоих все из коробки, шарпы не скучные, котлин молодежный. Как вообще определяли выгоду, когда го выбирали? Я джаву считал топорной, а это вообще пцц?
319 3295027
>>294923

>распределённый монолит


Открою тебе страшную тайну: других архитектур не существует. Более того, опытные команды возвращаются обратно к монолитам с шардингом, когда окончательно заебываются изучать 100500 логов в секунду. Микропенисы красиво работают только в проплаченных статьях, на проде это сначала ад, потом пиздец.
320 3295032
>>295027
Service oriented architecture, или вообще modular monolith. Модульный монолит это лучшее, с чем мне доводилось работать. Даже жяваскриптеры уже давно к этому пришли, у них это в nest.js из коробки.
321 3295053
>>295032
Так это и есть классический монолит. Еще диды так писали. Охуительные истории про один гигафайл, в который собирается вся система - это выдумки маркетологов. В реальных системах каждая команда работает над своим модулем, модули могут лежать рядом в одной папке и ходить в одну бд, а могут быть на разных серверах, но это не точно.
Fire.png131 Кб, 544x416
322 3295213
ОСТОРОЖНО!
Сценка "Джава-господин и убоGOе ничтожество"
J — На вас очередной раз помочилась жабка, "пись-пись-пись"))
Помочился на лицо
— Будешь ещё свою хуйню писать GOвноед?!
G — Не-ет, не буду, клянусь. О, великий джавист, отпусти убогого.
J Начал снова мочиться на лицо
— Что-что?) Я тебя не слышу-у)
Закончил мочиться
— Уходи! И скажи своим, чтобы со своим говнолангом не смели даже подходить к Электронной вычислительной машине! Устройство, подвергшееся твоему убожеству будет уничтожено!
G — Дя-а, господин, я все передам
GOвноед удалился, а джавист остался властвовать на троне
323 3295219
>>295032
на го модульный монолит реализуем или снова идем нахуй?
324 3295228
>>295213
Заходит доктор (Д) с фамилией СэйШарф и говорит:
Д - Ну как наш больной поживает?
Сегодня будем хорошо себя вести? О, я думаю пора снять смирительную рубашку
J - ...вэФе ...мучану ...кэмэ
Д - Какие мы сегодня болтливые
медленно поворачивает за плече пациента
Д - Людмила, наш умелец снова начудил тут лужу, замените пожалуйста белье
доктор что-то записал в своем планшете и медленно вышел из палаты
325 3295235
>>295219
Ничего не мешает, кроме того что на сотом импорте можно словить циклический импорт и придется половину переписать. Или где-то кто-то обновит интерфейс и будет увлекательно искать неделю те структуры которые его реализуют. А функция которая вызывается 100К раз в 1000 разных мест, неожиданно запишет в лог что ей поплохело. Но ты никогда не узнаешь где именно это произошло, потому что стектрейс для грустных.
326 3295236
>>295228
— Майор Пайт(П), у нас серьезная задача, освободить господина J. Мне недавно поступила информация, что он находится в больнице некого "СейШарпа". Он сковывал его движения и читал.... Извините, мне тяжело об этом говорить. Он читал ему документацию голанга. Они сводят его с ума, Пайт!
П — Что.....
Пайт понимал, что господину J пришлось несладко, и щекочащий прямую кишку паяльник будет далеко не худшим исходом. Но проверить в такое было невероятно тяжело
— Он заплатит, он за все заплатит...
327 3295238
>>295235
А еще, кто-то обязательно под усталость забудет вызвать что-то типа rows.Err(), ну или просто забудет записать единственную возвращаемую ошибку. В общем, увлекательные приключения плавающих ошибок в веселом монолите от го.
328 3295242
>>295238
go кал получается и джава всех ебёт?
329 3295245
>>295236
...вэФе ...мучану ...кэмэ (с)
330 3295327
>>294923
Да, в том числе. Минусы будут?

>>295021
Какой профит от котлина на беке, когда у джавы каждые полгода-год новые релизы и половина фич котлина есть? Он разве успел набрать какую-то критическую массу вне мобайла?

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

>Как вообще определяли выгоду, когда го выбирали?


Легко вкатиться с любого ЯП.
Легко писать, читать и использовать все фичи языка -- всё максимально просто и понятно.
Работает быстро, собирается быстро, нет заумных систем сборки вроде градла.
Есть стандартная либа -- можно не зависеть от очередного RoR/Spring. Хотя в той же джаве спринг уже наверное де-факто часть stdlib.

Но вообще выгода при выборе ЯП для нового проекта определяется тем, на чем конкретно тебе быстрее стартануть (т.е. тем, какие инструменты и яп ты лично знаешь). В целом вон фейсбук частично на пхп работает, шопифай вроде на руби, и ничего, все живы.
331 3295331
>>295327
Собсна, в вакансиях часто пишут что-то вроде "Требуем опыта Х лет бекенд-разработки, знание Го желательно, но не обязательно". И ты реально наймешь чела с любым бекенд-бекграундом и он быстро вкатится. В условной джаве ты так не сделаешь.
332 3295393
>>295235

> можно словить циклический импорт


Это да, проектировали ебланы

> кто-то обновит интерфейс и будет увлекательно искать неделю те структуры которые его реализуют


Идешка покажет, кто реализует интерфейс

> функция которая вызывается 100К раз в 1000 разных мест, неожиданно запишет в лог что ей поплохело


Контект для этого и прокидывают, чтобы понимать, где, что, с какими параметрами сломалось
333 3295463
>>295331
Писать можно что угодно. По факту наймут чела с 2X лет опыта на гошке на зп меньше, чем указано в вакансии.
Гениально.webm144 Кб, webm,
640x360, 0:04
334 3295478
335 3295491
насколько сложнее php для вката
колеблюсь с выбором: php или go
336 3295525
>>295020

>годот


поддерживает код на го кстати
337 3295568
>>295491
Вката на го не существует, туда берут только перекатышей из других языков
338 3295604
>>295568
Стажер в моей команде стал джуном и все на го. Рассказывай сказки дальше.
339 3295636
>>295491
Для РНР надо фронт учить, какой-нибудь Vue.
340 3295645
>>295604
Как стать стажером в твоей команде?
341 3295660
>>295645
Еще одного долбоеба нам не надо Быть выпускником норм айти вуза а не ебланом с курсов.
342 3295678
>>295636
почему?
343 3295683
>>295660
Долбоеб не видит разницы между стажером из ВУЗа и вкатышем
344 3295689
>>295636
Нахуя?
7 лет на пыхе пишу, 0 раз прикасался к фронту
345 3295840
>>295393

>Идешка покажет, кто реализует интерфейс


То есть, го теперь тоже тыква без IDE как и жаба? Добро пожаловать в клуб.

>Это да, проектировали ебланы


Конечно, пока сам не словишь ц.импорт (и ловил же)

>Контект для этого и прокидывают


Говнофиксы с бойлерплейтом, которые в нормальном яп не нужны и усложняют б-логику
346 3295847
>>295327

>но вроде бы __слышал__


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

>Какой профит от котлина на беке


Та же джава, но меньше бойлерплейта.

>Легко писать


Лож, бойлерплейт не легко писать, крайне утомительно

>Легко писать


Лож, бойлерплейт трудно и пишется и трудно читать

>нет заумных систем сборки вроде градла.


Ну да, то то макфайлы это модно и молодежно, лол

>можно не зависеть от очередного


Еще один писатель софта из одной стандартной либы.

>Легко вкатиться с любого ЯП


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

Наслушаются инфоцыган и бегают то с питоном то с говном, мантра про то что на го легко развернуть проект, где каждый велосипедит свое, в то время как жабошарпы из коропки все давно сделано - просто смешно, то есть они самый главный недостаток переобули в фичу, лол
347 3295849
>>295525
Официально только скрипт, плюсы и шарпы, а го котлины, расты, жс и прочие поддерживается над расширением, что практически обычно звучит как тухляк полуживого попенсорса.
image.png151 Кб, 320x240
348 3295852
>>295645
Для этого надо занять очередь за розовым пони и единорогом.
349 3295867
>>295847

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


так это есть суть Го, все недостатки из других языков переобувать в гениальные фичи
350 3295881
>>295847

>Наслушаются инфоцыган и бегают то с питоном то с говном


Надо бы в шапку раздела добавить!
image.png803 Кб, 952x476
351 3295898
>>295867

>так это есть суть Го, все недостатки из других языков переобувать в гениальные фичи


Жирнота то какая сначала я думал ты троллишь, но оказалось ты просто малолетних дегрод
352 3295926
>>295660
Эх, сложно
353 3295943
Как вообще можно серьёзно использовать го, если у него бинарник хеллоуворлда 2 мегабайта весит! Для сравнения на си хеллоу ворлд весит 14 Кб.
354 3296035
>>295943
О да, это ведь ключевая характеристика каждого ЯП, 14 килобайтный хв это вообще киллер фича си, все разрабы в срочном порядке делают сепуку во славу Денниса Ритчи и Страуструпа
355 3296045
>>296035
Даже на дискету такая программа не влезет
356 3296132
>>295943
Нажирнил
357 3296196
>>296045
Можно разделить на несколько, я брал doom 2 у друга на 10 дискетах. Вот он обрадуется когда на двух дискетах принесу ему хеллоуворд.
358 3296203
>>295898
А помнишь как невыразительность из джейвы магическим образом превратилась в супер-крутую фичу в еще более невыразительном go? less is more, just write more code? легко учить, легко передавать?
Мэйкфайлы из ада C++ стали супер молодежными
Калечная область видимость переменных через ИМЯ а не модификаторы, как в каком-нибудь питоне или джс - уоу, как круто, как удобно!

Там же сплошной выигрыш на выигрыше
359 3296298
>>295847

>100 неочевидных ошибок, тому доказательство.


И линтер-ссука даже не скажет ничего если ты напишешь

switch(a) {
case 1:
case 2:
code()
}
360 3296303
>>295849

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



Как и весь Годот
361 3296328
>>296132
Ну если ты готов покупать террабайтные диски для программ, которые могут занимать в сотни раз меньше места, то покупай. Я за качественное ПО, которое компактное и быстро работает.
Я вообще считаю, что раздувание современных программ - это рак, который надо выкорчевывать, а не потокать ему.
362 3296339
>>296328
Имаджинировали ебало этого додика?
363 3296344
>>296328
Когда станешь кабаном, тогда и будешь сишников красноглазых нанимать, чтобы они в твоем пиздатом ПО каждый байт экономили
Правда, к моменту выпуска MVP тебя ждет несколько сюрпризов, но об этом потом узнешь
364 3296392
>>295943
Что-то подобное я слышал в растотреде. Там еще добавляют про фанбоев и маркетологов.
Опционально сравнивают с си и си за решеткой, принося говнокод из этих языков
365 3296400
>>296392
На расте хеллоуворлд тоже весит полмегабайта, получше го, но тоже слишком много по сравнение си.
366 3296410
>>295053
>>295032
Монолиты сложно часто релизить, если команда разработчиков большая и нет QA. Будете буквально каждую неделю блокироваться о то, что в соседнем отделе вмержили баг, он попал на тестинг, там его чудом заметили и теперь надо ждать пока этот баг поправят, после чего релиз начнут заново пересобирать и пытаться выкатить на тестинг, где будут ждать аппрувов от всех разрабов всех команд.

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

Самый топ - это микросервисы. Не потому что это модно, а потому что можно релизы хоть каждые 5 минут катать, если не ломаются контракты между сервисами. И это гораздо удобнее, чем ждать пока 60 человек скажут что они проверили свои задачи на тестинге.
367 3296411
>>296203

>Мэйкфайлы из ада C++ стали супер молодежными


в го нет мейкфайлов, литералли 0 пердолинга с зависимостями.
368 3296433
>>296400
Там еще можно std отключить и наколхозить с асемблерными вставками и будет как в си, но это чисто развлечения для специальной олимпиады. В продакшен ты один хуй потащишь библиотеки и этот мегабайт стнадартной библиотеки будет незаметным на фоне всего остального
369 3296442
>>295235

>Ничего не мешает, кроме того что на сотом импорте можно словить циклический импорт и придется половину переписать.


Это да, удивило очень сильно. Года два назад как-то пробовал в качестве эксперимента написать апи для крудошлепста БД где-то на 30 таблиц, как раз копия дева была локально. Нагенерировал структур из sql и разложил все по полочкам, модели, интерфейсы репозиториев, реализации репозиториев хуё-мое, уже не помню вроде декораторы репозиториев с инмори кешированием написал. Компилирую и получаю большой хуй из-за импортов, в итоге закончилось тем что я собрал все в одну большую папку и тогда заработало.
С тех пор у меня отбило все желание перекатится на го, хотя количетво вакансий выглядело перспективным.

>>295235

>Или где-то кто-то обновит интерфейс и будет увлекательно искать неделю те структуры которые его реализуют.


>>295393

>Идешка покажет, кто реализует интерфейс


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

Мимо
370 3296469
>>296442

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



Го компилируемый язык, поэтому при компиляции у тебя все структуры, для которых ты забыл заимплементить интерфейс, покажутся в выводе ошибки компилятора.
Линтеры или комментарии для такого не используют.
371 3296493
>>296469
То есть получается что в коде так или иначе ты передаешь структуру в метод где тип аргумента интерфейс и именно там оно и наебнется на этапе компиляции?
372 3296503
>>296410
Распределённый монолит это мемное название микросервисов
373 3296516
>>296493
Да, но может наебнуться и в рантайме, если у тебя в аргументах функций interface{} везде.
374 3296766
>>296411
Открыл вебинар от озона, первое с чем знакомят это мэйк файлы.
375 3296970
>>296469

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


Далеко не всегда, может и в рантайме запаниковать.
376 3296973
совету не учить язык golang, т.к. язык молодой, а также имеет слабое ООП, также кривую обработку ошибок(ты же не хочешь каждую строчку писать if err != nil, в шарпе или жаве намного удобнее :) ), НАХУЙ не нужные интерфейсы, а также очень мало вакансий для начинающих, потому что голенг разработчики НАХУЙ никому не нужны, т.к. все норм разрабы перешли в него с жавы или шарпа уже на позицию мидла. Работу ты НЕ НАЙДЕШЬ, у тебя НЕТ ШАНСОВ :( . Задумайся, а сейчас я бы посоветовал начать с изучения топового языка такого как python, у которого есть очень крутые фреймворки для того, чтобы начать работу уже ЧЕРЕЗ МЕСЯЦ обучения(я так и сделал :3 ). Также для начала программирования бекенд приложений тебе стоит изучить алгоритмы и стукрутры данных(я разбираюсь). Тебе нужно прорешать не менее 100 легких задач на литкоде, 50 средних и 25 сложных, иначе тебя НИКУДА не возьмут. Так что иди учи салага, ждем тебя в рядах наших Айтишников, чтобы ты мог чинить микроволоновки и писать приложухи :)
377 3296987
>>296973
начал хорошо, но пережирнил в итоге
378 3297248
>>296766
Там они даются не в контексте зависимостей
379 3297265
>>296973

> НАХУЙ не нужные интерфейсы


> голенг разработчики НАХУЙ никому не нужны


> Работу ты НЕ НАЙДЕШЬ, у тебя НЕТ ШАНСОВ


тыскозал?

> я бы посоветовал начать с python чтобы начать работу уже ЧЕРЕЗ МЕСЯЦ обучения


Ох уж эти экстраполяторы одной ситуации на весь рынок
380 3297285
>>296442
Поэтому в го принято объявлять интерфейс рядом с использованием.
381 3297336
>>296973
жирно
382 3297496
>>295847

>У тебя весь твой текст из шаблонных фраз с ютуба.


Да. Я же написал, что описываю стереотипное мнение, а сам деталей не ебу.

>Та же джава, но меньше бойлерплейта.


Куда ещё меньше? Что в котлине для бека есть такого, чего нет в последних джавах?

>Лож, бойлерплейт не легко писать, крайне утомительно


Спринг учить тоже нелегко и утомительно.

>Еще один писатель софта из одной стандартной либы.


Ещё один "а давайте импортнем VasyanLib.jar", похуй чо там потом будет.

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


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

>Ну да, то то макфайлы это модно и молодежно, лол


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

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


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

>>296328
Рыночек в очередной раз порешал, стоимость времени, которое смузихлеб потратит на оптимизацию RAM/Storage будет в разы дороже, чем покупка и установка этого самого железа. Зачем, если можно делать бизнес-таски по перегонке новых жсонов?

>>296766

>Открыл вебинар от озона, первое с чем знакомят это мэйк файлы.


Пришел в ПНД, первое, чем кормят -- говно двусмысленно вышло

>>296442
Циклические импорты иногда боль, да.
382 3297496
>>295847

>У тебя весь твой текст из шаблонных фраз с ютуба.


Да. Я же написал, что описываю стереотипное мнение, а сам деталей не ебу.

>Та же джава, но меньше бойлерплейта.


Куда ещё меньше? Что в котлине для бека есть такого, чего нет в последних джавах?

>Лож, бойлерплейт не легко писать, крайне утомительно


Спринг учить тоже нелегко и утомительно.

>Еще один писатель софта из одной стандартной либы.


Ещё один "а давайте импортнем VasyanLib.jar", похуй чо там потом будет.

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


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

>Ну да, то то макфайлы это модно и молодежно, лол


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

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


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

>>296328
Рыночек в очередной раз порешал, стоимость времени, которое смузихлеб потратит на оптимизацию RAM/Storage будет в разы дороже, чем покупка и установка этого самого железа. Зачем, если можно делать бизнес-таски по перегонке новых жсонов?

>>296766

>Открыл вебинар от озона, первое с чем знакомят это мэйк файлы.


Пришел в ПНД, первое, чем кормят -- говно двусмысленно вышло

>>296442
Циклические импорты иногда боль, да.
383 3297652
>>297496

>Спринг учить тоже нелегко и утомительно.


Ты либо недельку учишь спринг, либо год пишешь его сам. Все просто.
384 3297786
>>297652

>недельку учишь спринг


Потом ты вспоминаешь Евгения Борисов с его "потрошителями" и понимаешь, что даже на корку у тебя уйдет не один год, лол
385 3297803
>>297786

>Потом ты вспоминаешь Евгения Борисов с его "потрошителями" и понимаешь, что


за использование BeanPostProcessor и иже с ним, надо пиздить.
386 3297811
>>297803
Ты ничего сложнее крудов не писал на спринге. Бинпостпроцессор полезная фича для серьезных проектов
387 3297880
>>297811

>Ты ничего сложнее крудов не писал на спринге. Бинпостпроцессор полезная фича для серьезных проектов


Именно что писал и наелся этого говна выше крыши. Добавляешь новый бин, и у тебя отвалится вайринг в месте которое ты вообще не трогал. Спринг вместо простого и легковестного DI, которым он был изначально, стал современной WebSphere.

Я считаю что конфигурация спринга должна быть простой и понятной, а если тебе нужен BeanPostProcessor значит ты делаешь что-то не так.
388 3298081
>>297496

>Рыночек в очередной раз порешал, стоимость времени, которое смузихлеб потратит на оптимизацию RAM/Storage будет в разы дороже, чем покупка и установка этого самого железа. Зачем, если можно делать бизнес-таски по перегонке новых жсонов?


Двачую, в большинстве проектов похуй на перформанс языка, вообще можно спокойно делать бек на питоне/ноуджс/руби/пыхе, ресурсы железа нынче очень дёшево стоят.
389 3298120
>>297652

>Ты либо год учишь спринг, либо недельку пишешь его сам.


Пофиксил

>Все просто.


Тебе с дивана конечно же виднее
390 3298330
>>297496

>Рыночек в очередной раз порешал, стоимость времени, которое смузихлеб потратит на оптимизацию RAM/Storage будет в разы дороже, чем покупка и установка этого самого железа. Зачем, если можно делать бизнес-таски по перегонке новых жсонов?


Именно так мы и думали когда писали нашу систему, благо у нас есть инстансы с 600 Гб RAM/256 CPU. Но в какой-то момент перестало хватать и их. И тут внезапно выяснилось, что можно в 50 Гб RAM/16 CPU ужаться. Достаточно копеечный, советский... убрать лютый говнокод и дублирование данных
391 3298342
Так нахуй, я тупой и нихуя не понимаю.
Наткнулся на канаты в телеге с задачками.
В основном всё ясно и понятно, но есть несколько которые я нихуя не понимаю почему так.

1) https://go.dev/play/p/c20CL1FuMeD
Почему ./prog.go:10:9: 1 << unsafe.Sizeof(x) (8 bits) too small for shift of 8
Какого хуя там другой тип стал во второй функции?

2) https://go.dev/play/p/9Ag3TjdaY_f
Куда делся println? Почему он не выполняется?
392 3298344
>>298342

> Куда делся println? Почему он не выполняется?


Потому что горутина не успевает отработать и main завершается быстрее
393 3298350
>>298330
К слову о том что не достаточно взять "быстрый" язык. Писать оптимизированный код это отдельная инвестиция времени и, что важно, ума.
Бенчи techempower тому доказательство.
То есть, человек, который думает, что возьмет го/раст/zig/ассемблер и выиграет с этого, чаще этот человек некомпетентен в вопросе оптимизации и пишет обычный, неоптимизированный код.
394 3298351
>>298344
Я реально дебич, там же []int, а он Uncomparable.
Панику съедает Goexit.
395 3298354
>>298351
А, так вон оно что Goexit делает...
Интересно, а что нибудь из пакета runtime в проде вообще используется?
396 3298401
>>298081
Ок, а легче писать и поддерживать то что? Вряд ли тут руби и ноджс особо проигрывают в этом
397 3298461
>>298401
Всё, что не го. В руби рельсы, в пхп симфони и ларавель, в питоне джанго и фастапи, в джаве спринг, в ноде нест и фастифай, а в го голый роутер да и всё, лол, остаётся писать велосипеды, очень весело и продуктивно.
398 3298600
>>298461
как же гин?
399 3298621
>>298600
Гино это для тяночек..
400 3298643
>>298461

> В руби рельсы


Это увлекательный мир, ты очень быстро пишешь круды, генерируя из терминала, потом очень долго и больно решаешь всяки N+1 проблемы, а еще там много магии и писать можно всякую хуйню, которую хуй прочитаешь. На рельсах удобно пилить проекты которые отдал заказчику и забыл, но очень больно это говно поддерживать
401 3299311
>>298461

>остаётся писать велосипеды


Что мешает взять уже написанный?
402 3299524
>>298461
В бигтехах, где я работал, и Go использовался как основной язык, было одно общее условие - написана общая PaaS/фреймворк/библиотека на которых пишутся все сервисы в компании. Она была отлично задокументировна + были внутренние каналы на 5-10к инженеров где тебе за 15 минут помогут с каким-то вопросом по этой вундервафле.

Так что если это условие соблюдается - на Go писать продакшен отлично. Если никакой инфры для Go в компании нет - лезть туда не стоит, и проще писать сервисы на том же Node.js + Typescript + Fastify/Nest или спрингоговне, иначе ты заебешься настраивать проект, затаскивать гошные либы, линтеры, кодгены, мидлвари, и делать очередной extra-super-modern-toolkit-template для го разработки в компании. Можно конечно взять и написать свой PaaS для конторы только это пиздец как дорого, и тебя с вероятностью 99% пошлют нахуй, тк под это выделяется целый стрим и отдельные команды/бизнес юнит.

Так что если там где ты работаешь, под го нихуя нет то бизнес пиши на любом ЯП где все есть заранее а на гошке решай чисто инфровые/devsecops задачи.
403 3299756
Дали оффер в финбигтех на миддла/сеньора (хз, че там, сегодня оффер презентуют на +-350к) с перекатом из питхона в гошку. Там у них есть какое-то обучение, но хотел у бывалых спросить, есть ли что-то, что для такого переката было б классно почитать или изучить? Или можно просто доку прочитать и идти пилить микросервисы?
404 3299777
>>298330
Так и надо. Вы делали сначала чтоб приносило деньги и объемы, которые вам сделали большой инстанс, а потом оптимизировали все, чтобы инфра была недорого.

>>299524
Два чая.

>>299756

>Или можно просто доку прочитать и идти пилить микросервисы?


Go Tour. Остальное научат-покажут.
405 3299891
Вопросец, а пользуются вообще гнушным конпелятором go?
406 3300248
>>299891
Он ещё не доделан нормально, так что хз. Но там суть в том, что код на го компилится в объектник, который нормально линкуется с объектниками на С/С++, можно дёргать функции оттуда без CGo (и наоборот), и даже можно будет пользоваться указателями на аллоцированную в си память, а вот это пока не доделали.
Так что хз как сейчас, но вообще кто-то пользоваться точно будет.
407 3301851
Аноны, подскажите пж, насколько го шустрый?
Прост в вузе на алгосах мы писали на крестах и питоне, где вживую было видно что плюсы прям неебаца быстрее петухона, некоторые задачи на с++ проходили просто тупым брутфорсом, когда на питоне приходилось кочевряжится. Из за чего у меня появился шаблон что все что не плюсы медленное говно, но вот я уже почти как полгода стажируюсь на го и не понимаю, он медленный или быстрый, нет возможности запустить какой нить алгоритм и сравнить, мне просто дико влом решать алгозадачи, тем более на го
408 3301852
>>301851
Точнее я знаю что он быстрее большинства, но тип... насколько? На нем в случае чего можно не усираться в этот невидимый коэффициент перед O(n log n)?
В общем да, хотелось бы получить какой то общий ответ
409 3301862
>>301851

>Аноны, подскажите пж, насколько го шустрый?


Средне. Скажем так... он быстрее джавы раза в 1.5. Быстрее ноды раза в 2. Быстрее пхп раза в 2.5. Но! С дотнетом/сишарп не всё так однозначно. С/С++ проигрывает всухую. Rust'у просирает ну где-то процентов на 15-20. Короче быстрый, но не супер быстрый-быстрый.
410 3302019
>>262474

>го вообще только


вообще хрень никому не нужная. В нём нет abi ос- ориентированных вообще, только транспиляция в с-abi компиляторы.
На выкид в общем то, ещё одна ненужная хрень вермишельная.
411 3302023
>>302019
А нахуя оно в языке, ориентированном на веб сервисы? Вы блядь плюсовики свой язык перегрузили килотоннами говна так, что ни один человек на планете не знает С++. Пока познакомишься с вагоном хуерги из нового стандарта, забудешь старые. Не зря Торвальдс любителям добавить в языки новые возможности в лицо ссыт и к ядру не подпускает.
412 3302026
>>302023

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


Дааааа, ведь так весело писать аналог этих новых функций, но только не в одну строку, а во все 15. Поссал на ебало всем тебе подобным
413 3302049
>>301851
Там зеленные потоки с диспетчером и гц каждые 10мс в ущерб проца, он априори не может быть быстрым.

В реальных тестах (не искусственная хрень) и реальных приложениях он сосет даже у жабы, причем в асинхронных тестах где должен быть быстрее.
Так же можно увидеть что в топе techempower находится го, но все это сокетные огрызки от настоящего http протокола (чаще на базе fasthttp).
Реальный перформанс где-то на корутинах котлина. К сожалению зеленые потоки имеют недостаток в сравнение с донтвэй асинк/авэй

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

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

Но в итоге го достаточно производительный по меркам промышленного программирования. Да и какая тебе разница, ты что ли железо кабану покупаешь?
414 3302318
>>302049
Любой, кто хочет писать т.н. быстрый код, должен уметь делать профайлинг.
Если человека закидать всякой хуйней для профайлинга, у него наверное вся хотелка писать оптимизированный отсохнет. Делать оптимизации просто так признак дурачины.
415 3302329
>>302049
И да, гошка/шарпы на железке имели около 40-60к запросов, а потом подключил код работающий с базой, и все упало до 1-3к
То есть, хоть на питоне пиши, все равно в i/o упрешься.

Стоит отметить у жабы шустрый драйвер к базе, на этом все, срыг, тормозная херотен
416 3303560
А как вы обрабатываете ошибки? В такое количество явных ошибок с этим if-err-not-nil, что хочется правильно настроить разные типы ошибок.

Ну простой пример из моего проекта: есть роут с контроллером GET /data, есть функция которая что-то читает с БД, из файла, занимается marshalling/unmarshalling. И на половину из этих ошибок надо отправлять разные http статусы и сообщения клиенту.

Писать errors.New("db fail happend") не хочется, к тому же проверять в родителе это как? Посоветуйте куда копать.

В java, python и прочем ооп можно было в catch выбрать нужную ошибку и соответствующе отреагировать. Но в го такого механизма нет (либо он выглядит как-то иначе)
417 3303600
>>303560
Обычно принято заводить свои ошибки под определенные кейсы для каждого слоя приложения. Например, в твоем случае:
- в пакете storage(предположим, в нем у тебя слой работы с БД) ты создаешь файлик errors.go и объявляешь в нем релевантные для твоего кейса ошибки(ErrNoRows, ErrEntityDoesNotExists).
- в пакете, где работаешь с файлом, логика та же - заводишь кастомные ошибки(ErrInvalidFile, etc...)
- для валидации, маршаллинга/анмаршаллинга аналогично

В итоге в коде твоего хендлера используешь errors.Is() или errors.As(), например такой вызов:

resp, err := usecase.GetData(); err != nil {
switch {
case errors.Is(ErrNoRows):
response.SetCode(404)
response.SetData("отсутствуют данные")
return nil
case errors.Is(ErrInvalidFile):
response.SetCode(400)
response.SetData("невалидный файл")
return nil
default:
response.SetCode(500)
response.SetData("что-то пошло не так")
return nil
}
}


Схему максимально упростил, по хорошему можно еще обобщать ошибки на временные/постоянные и дополнительно изменить логику их обработки(так же через пакет errors).
418 3303604
>>303560

>либо он выглядит как-то иначе


this

Создаешь новый тип для ошибки и возвращаешь его. Наверху делаешь errors.Is/As() и отправляешь соответствующий HTTP код.

Или можно не создавать свой тип, а просто
fmt.Errorf("DB read failed: %w", err)
при условии, что условная база имеет свой тип для ошибки.
https://go.dev/play/p/c2UIni-E2ep

Но лучше все таки создать свой тип, так надежнее.
419 3304299
>>303600
>>303604
Надо было как в пидорасте делать Result<type>..., ах да, в говне же нету юнион енумов ахахаха.
420 3304889
>>304299
Как разница, что там оператор ветвление что тут?
Офигеть победа
match result {
Err(nil) => return nil;
Ok() => {
// еще один отступ для бога ветвления
}

Самая лучшая реализация ошибок в системном языке это в зиге
421 3304909
Устроился в ваш го на 300к с 1.5 годами опыта, вопросы изичайшие на собесах, за 2 недели оффер с 0 опыта на го, учился полтора месяца с утра до ночи
422 3304910
>>304889

>Как разница, что там оператор ветвление что тут?


У тебя в говне ошибка - это строка.

>Самая лучшая реализация ошибок в системном языке это в зиге


Пили пример.
423 3304921
>>304909
хлебушек, проснись, ты подливу пролил...
424 3304924
>>304921
Так по факту вопросы легкие, спрос на го разрабов ебанутый, я открыл резюме с накрученным опытом до 3+ года и мне хрки сразу срать начали в личку
425 3304940
>>304910

>У тебя в говне ошибка - это строка.


У тебя в голове говно. Буквально двумя постами выше написано про бест практисиз касательно ошибок.
426 3304991
>>304924
У меня почти 3 года опыта на го, общего опыта 5 лет. Из них 4 в бигтехе, и че то хрюши нихуя не пишут. Последнюю работу нашёл проспамив 100 вакансий. Чяднт?
427 3304994
>>304991
Скидывай резюме с замазанными личными данными.
428 3304995
>>303600

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


>- в пакете storage(предположим, в нем у тебя слой работы с БД) ты создаешь файлик errors.go и объявляешь в нем релевантные для твоего кейса ошибки(ErrNoRows, ErrEntityDoesNotExists).


>- в пакете, где работаешь с файлом, логика та же - заводишь кастомные ошибки(ErrInvalidFile, etc...)


>- для валидации, маршаллинга/анмаршаллинга аналогично


>


>В итоге в коде твоего хендлера используешь errors.Is() или errors.As(), например такой вызов



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

И по факту ведь кал получается, абсолютно нечитаемая write-once параша.
После питухона или жабы кажется что это какой-то совсем неправильный подход.
429 3305024
>>304995
Дело в том, что развитием го занимаются долбоебы. Они не следят за разработками в других языках, они придумали манямирок "мы из гугла мы крутые ебать" и живут в нем. На любую справедливую критику хуле все так через жопу ответ один - это говей, пиши err!=nil и не выебывайся. Похожая хуита происходит в яндексе, только там шизы пишут круды на плюсах и пилят свой никому нахуй не нужный userver.
430 3305034
>>304991
Рил странно, потому что меня тоже хрюши на куски рвали, когда я открыл резюме с 2,5 года опыта на го, 5 в сумме.
431 3305119
>>304909
А потом я проснулся.
Джуны на го нужно только на ютубе
432 3305124
>>304995
Лол, как только го попал в настоящую разработку, люди сразу начали придумывать эксепшены.
Спасибо дедушкам из гугла за обработку ошибок руками.
433 3305507
>>305024

>это говей, пиши err!=nil и не выебывайся


>>305124

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


>Спасибо дедушкам из гугла за обработку ошибок руками.


Эксепшены хорошо работают до тех пор пока у тебя линейный код в одном потоке. А как только у тебя появляется асинхронные функции/корутины/легковесные потоки всё резко усложняется и появляются все эти AggregateException, coroutineScope и прочие ExecutionException. Со всякими ахуительными шаблонами типа:
} catch (ExecutionException e) {
throw e.getCause();
}

https://www.codeguru.com/csharp/async-methods-exception-handling/
https://medium.com/mindful-engineering/exception-handling-in-kotlin-coroutines-fd08e622360e
https://www.reddit.com/r/java/comments/1co8gew/exception_handling_and_structured_concurrency/

И на фоне этого пиздеца, гошные ErrorGroup вполне себе нормально смотрятся.
434 3305539
>>301862

>Го быстрее джавы раза в 1.5. Быстрее ноды раза в 2. Быстрее пхп раза в 2.5.


Быстрее пхп в дохуища раз, быстрее ноды процентов на 30... Медленнее джавы в 1.5 раз
435 3305658
>>305539
Быстрее пхп 7 в дохуища раз,
но быстрее пхп 8 во столько же раз, как и у джавы
17278449724341.png52 Кб, 621x669
436 3305662
>>305034
Индекс вката потому что упал
1729597642986.jpg256 Кб, 1080x1635
437 3305664
>>305539
>>305658
Лол, забыл скриншот приложить
438 3305667
>>305664
У тебя фреймвёрки несопоставимы. Ларавель - это комбайн, который умеет всё на свете, а горилла-мукс - это обёртка над стандартным гошным хттп-сервером, там функционала минимум. В джаве надо Spring сравнивать.
439 3305675
Вот по расту есть куча md-книжек и прочих ресурсов https://rust-lang.ru свободных для чтения. А по го почему-то ничего подобного нет. Все книги платные. Почему так?
440 3305717
>>304991
Значит проблема в резюмбе.
Я открыл резюме мне в первые 2 дня 56 просмотров и 6 собесов назначили, я без откликов получил 2 офера 260+к
441 3305759
>>305507
В сишарпе такие конструкции скрыты внутри фреймворка, их никто не пишет. Вызываешь .Result и оно само пробрасывает эксепшены, если надо. В гошке ты как проклятый пишешь err!=nil снова и снова, весь код засран этим говном.
442 3305768
>>305759

>В гошке ты как проклятый пишешь err!=nil снова и снова, весь код засран этим говном.


Можно не писать на говне? Алсо, а макросы у вас есть? Для какой-нибудь подобной фигни, например, в си при пользовании либы курсес я тупо макросами оборачиваю как надо.
443 3305778
>>305759

>пишешь err!=nil снова и снова


Это специально придумано, чтобы каждый раз задумывался как правильно обработать ошибки, а не свалить всё на самотёк.
444 3305848
>>305675
Потому что пидораст маркетингом занят, а го серьёзные люди делают, им не до завлекушных соевых свистоперделок типа стопятисотого нескучного объяснения системы владения.
445 3305852
>>305507
В шарпах ничего не нужно, в твоей статье просто про кишки рассказывается.
446 3305856
>>305664
В го есть http огрызки на базе фаст-хттп. Там даже где-то на оффсайте это пишут, но зеленные продолжают таскать сокетные тесты с роутером, против реальных фреймворков.

На сайте
https://www.techempower.com/benchmarks/#hw=ph&test=plaintext&section=data-r22
дефолтный го в 10 раз медленней топовых решений на других языках, это его реально место, не быстро, но и не медленно.
447 3305858
>>305768

>Можно не писать на говне?


Да, тебе выше говорят бери шарп, если нужен хорошо задизайненный язык.
448 3305859
>>305778
Тебя обманули, авторы просто сэкономили и ни реализовали никой обработки вообще.
Вот так можно было сделать.
449 3305923
нигде не вижу годного туториала как делать загрузку картинок на бекенде
помогите плиз
понятно что хранить ее будем не в базе а в файловой системе
но как все сделать чики пуки не понятно
450 3305928
>>305856
Да никто эти фастхттп и файберы в проде не использует
451 3305985
>>305923

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


Почему не в базе? Современные субд уменют в партиционирование.
452 3306050
>>262042 (OP)
Подскажите, а как в Go относятся к тому чтобы в одном методе репозитория было несколько сырых SQL-запросов? Ну например когда объект с внешними ключами или есть ассоциативные таблицы, и чтобы его создать нужно внести записи в несколько таблиц. Какой в таких случаях хороший тон: все делать в одном методе или разбивать на несколько и вызывать все из сервиса? Меня смущает что методы выходят очень громоздкие
453 3306054
>>306050
Оно же у тебя завёрнуто в транзакцию? Одна транзакция − один метод. Если не завёрнуто, то стоит сперва озаботиться хорошим тоном в работа с бд.
Если совсем громоздко получается, то можно использовать DTO.
454 3306057
>>306050
Открой для себя хранимые процедуры.
455 3306060
>>306054
Да, собираюсь заворачивать, только я хотел завернуть в одном методе как ты предлагаешь, а коллега считает что нужно вызывать все четырьмя методами из сервиса, где каждый метод корреспондирует таблице в которую вносим записи
456 3306068
>>306060
И управление транзакцией всплывает на уровень сервиса? Звучит как делай по букве из солида ради буквы из солида, а на остальное похуй.
Если уж делить, то всё равно сделать один основной метод, который будет вызывать мелкие методы внутри.
457 3306080
Аноны, сейчас будет тупой вопрос от вкатуна.

Есть задача, в ней надо считать три цифры через пробел с клавиатуры. ЧатЖПТ предложил мне решение с пика 1. Но оно не работает. Интернет мне подкинул ответ в виде пика 2, но пробел же вроде входит в ASCII и с ним не должно быть проблем?
458 3306123
>>306080
Не работает − отдебажь. Напечатай сначала input после ввода, потом parts после деления. Поймёшь, в каком месте не работает.
Тебе же надо научиться понимать, в каком месте ошибка, а не зелёную галочку за решение задачки.
Алсо, второй пик не про это вообще, а про руны vs байты. С цифрами, латинскими буквами, пробелами и пунктуацией проблем нет, разница появится, когда кириллицу и другие алфавиты будешь использовать. И вообще у тебя в коде ничего этого нет.
459 3306278
>>302019
а, ну раз ты скозал, говно заумное, то так оно и есть
460 3306399
>>306050
Так же, как и везде -- вообще не очень, но it depends. Подход ничем абсолютно не отличается от других языков.
462 3306459
>>305858

>тебе выше говорят бери шарп


Нахуй ты мне это пишешь, говнарь.
463 3306511
>>305759
>>305852
Петушарперы поспешают на захист барена. При этом
как обычно читают жопой.

Речь шла о нескольких асинхронных тасках и там уже надо городить огород с Task.WhenAll(), а AggregateException нужно обрабатывать, чтобы получить все ошибки, а не только первую.
464 3306553
>>306511
А то в говне WaitGroup не используется.
465 3306581
Бездельники, давайте го в геймдев протаскивайте.
466 3306674
>>306050
import _ "embed"
467 3306721
>>306674
Какое же муторное говно (мимо проходил и сел это читать). Ради чего "старые из гугла" это придумали? Чем это отличается от того чтобы просто прочитать файл?
468 3306766
>>306581
нахуя?
469 3306856
>>306721
Там буквально в комментарии пакета расписано. Читал он бля
470 3306969
>>306856
Но сказать ты этого не смог, у тебя лимит на буковки?
image.png77 Кб, 1677x257
471 3306977
Мнение, коллеги?
472 3306994
>>306977
Пиздец конечно, крудошлёпу СЛОЖНА
473 3307006
>>306969
А нахуя мне жирного кормить?
Любой нормальный разработчик, может открыть доку где зелёным по черному расписана мотивация.
Идти на оранжевый за ответами - признак тролля/долбаеба. Ярлык сам себе повесь, какой больше нравится
474 3307014
>>306553
И опять:

>При этом как обычно читают жопой.



Я с самого начала про это писал.

>И на фоне этого пиздеца, гошные ErrorGroup вполне себе нормально смотрятся.


Разница в том, что в Го тебе сразу говорят, что ты будешь ручками обрабатывать ошибки, а в шарпе тебе обещают что эксепшены просто работают*.
475 3307040
>>307006

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


Это верно для нормального языка, но где об мотивации написано тут??
https://pkg.go.dev/embed

>Идти на оранжевый за ответами


Да я уже понял что ты сам не знаешь.
476 3307043
>>307014
Да, эксепшены в шарпе просто работают, сам к этому выводу пришел и не надо руками имитировать исключения на каждый пук - а просто берешь и пишешь в нормальном флоу.
477 3307103
>>307040

Package embed provides access to files embedded in the running Go program.

Go source files that import "embed" can use the //go:embed directive to initialize a variable of type string, []byte, or FS with the contents of files read from the package directory or subdirectories at compile time.

For example, here are three ways to embed a file named hello.txt and then print its contents at run time.

Embedding one file into a string:


Тебе в первом же абзаце написано, что пакет дает тебе возможность встроить файл в программу и сохранить значение в переменной. Не заниматься ебаниной, вроде чтения из файл самостоятельно т.к чревато разными ошибками побочными эффектами и т.д. Мотивация - дать тебе инструмент? Смекаешь?
У нас в го и GC есть, хотя вот живут же ЯП без коллектора и ничего. А диды так вообще на перфокартах хуярили, зачем надо было все эти асмбли, фортраны, лиспы и прочую залупу с абстракциями выдумывать
478 3307136
>>307103
Мы говорили о мотивации, ты высрал свою, а там о мотивации не было ни слова, значит ты звездобол получается? А криков то было.

Я читал и без тебя описание этой техи, и я спросил, нахрена деды ввели целую новую семантику в язык, ради сахара вида File.readAll()? Но при этом все до блюваты пишут err != nil ??
479 3307146
>>307136
Диды ввели сахар для безопасности и быстродействия

По поводу обработки, то я нигде не говорил, что кайфую с err != nil охуенным дизайнерским решением. Но трай/кэтчи мне нравятся ещё меньше. Потому что с заковыристой бизнес логикой гошные подход обработки ошибки дает большую информативность.
480 3307179
>>307146
Я к тому, что какую-то херонину добавили, которая нужна пару дедам в гулугулу, а главный геморрой языка не трогают, мотивируя что наш язык неизменяем и консервативен.

Вообще я мимо проходил, упаси на говне писать.
481 3307349
Где почитать как работать с транзакциями и postgres в го? Писать запросы в базу при помощи pgxpool я научился. Теперь хочу научиться писать такие случаи, когда в одном методе сервиса нужно открыть транзакцию в ней сделать несколько обращений в репозиторий. В каловом джава спринге все решалось аннотацией @Transactional, а сейчас я вообще не пойму где эти транзакции открывать, в репозитории, или в сервисе - а потом прокидывать в репозиторий?
482 3307396
>>307349
В идеале сервис не должен знать про транзакции, транзакции должны быть чисто на уровне абстракции репозитория, тк это часть работы с внешним плагином бд, а не чистой бизнес логики, которая относится к сервису.
Ну и транзакции желательно делать поменьше, бд как примитив синхронизации это не супер кул. Отсюда следует, что ты в среднем не хочешь делать транзакции длиною в жизнь (вне зависимости от яп).
Это все вообще к го не относится, просто общие архитектурные принципы, которые иногда при большом желании можно нарушать.
483 3307452
>>307396

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



Ну, про супер долгие транзакции речь не идет. Но вот на текущей работе у нас прям как обязательное правило принято, что сценарии бизнес-логики обязательно должны быть под serializable транзакциями, если хоть где-то в базу вставляем. И вообще правило такое, что если мы делаем select + update (пусть несколько раз из разных баз данных), то это всегда одна транзакция. Да, на базу данных у нас очень много чего завязано, мы очень строго следим за консистентностью данных.
484 3307497
>>307349
Открываешь в сервисе, прокидываешь в репозиторий.
Транзакциями надо управлять явно, так намного ниже вероятность поймать дедлок, idle in transaction и прочие N+1 приколы. Все функции, которые ходят в бд, должны принимать транзакцию одним из аргументов. В хайлоаде ты должен четко понимать, где начинается работа с бд и где заканчивается, петушиный unit of work пусть остается в легаси говне с абстрактными фабриками.
485 3307518
>>307349
Я пришел к подходу прокидывания транзакции через контекст. Типа такого https://github.com/avito-tech/go-transaction-manager

Но в гошке часто говорят, что использовать контекст для чего-либо помимо таймаутов, отмен и прочего -- моветон. И что никакую бизнес-логику туда нельзя пихать. А мне все-таки очень зашло использование контекста для транзакции. То есть методы репозитория умеют работать с контекстом и получается внутри одной транзакции можно довольно легко использовать разные методы репозитория. Просто в сервисе создаем контекст и передаем его в первый используемый метод репы, потом этот же контекст во второй и так далее, как угодно по логике. Уходит куча бойлерплейта с роллбэками и коммитами.
486 3307546
>>307518
Если ты для себя пишешь, то похуй в целом. Я тоже люблю божественный объект туда-сюда гонять.
487 3307626
>>307518
Так а почему все таки плохо использовать контекст для значений? Понятно что интерфейс контекста не очень подходит для этого. Но ведь и мы не ебланы. С хорошим враппером никаких проблем нет.
488 3307647
>>307626
Скрываются зависимости. Вот кто-то написал эту хуйню, а тебе надо в ней разобраться, что-то поменять, и ещё оттестировать. И сразу хочется автору кода ебучку вскрыть.
489 3308154
>>307518

>Типа такого https://github.com/avito-tech/go-transaction-manager


Гоферы изобрели срыг! Как перестать орать?
490 3308188
>>307647
+ про время жизни данных ещё говорили
491 3308189
Пацаны, поясните за обработку ошибок. Там выше кто-то уже спрашивал, но мне кажется тема ерроров осталась нераскрыта.

Допустим у меня http обработчик сидит в самом верху, дергает метод из пакета (будем считать для простоты, что у меня 1 application layer = 1 пакет) А, тот дергает метод из пакета В, тот дергает метод из пакета С. Каждый из пакетов имеет свою структуру для ошибок: ErrorA, ErrorB, ErrorC, которые я могу набивать всяким полезным контекстом, чтоб потом его высрать в тело респонса жсоном. Собственно два вопроса:

1. Как лучше сделать: чтобы пакет B при получении ErrorC оборачивал ее дополнительно своей ErrorB? Или ErrorB -- это чисто ошибки, относящиеся к самому пакету В? В первом случае вроде получается чето более-менее похожее на нормальный стектрейс, если у всех ошибок будет допустим какое-то поле Cause error, но тогда наверху у меня всегда будут только ошибки ErrorA, и если мне нужно разное поделать в зависимости от того, что же там за real cause была -- будет неудобно. Во втором случае стектрейса никакого нахуй нет, как такие ошибки например логгировать с пользой -- непонятно, но код проверки ошибок в обработчике становится хотя бы поприятнее.

2. В обоих этих случаях выходит так, что обработчик должен быть в курсе обо всех ошибках, которые могут произойти во всем ебаном приложении, то есть он должен знать и про ErrorA, и про ErrorB, и про ErrorC. Чето я слабо себе представляю, как такой подход будет скейлиться, если аппка становится хоть сколько-то большой (ну там на пару десятков эндпоинтов хотя бы). Какие есть альтернативные варианты? Я сам чето ничего не надумал более умного.
CodeU1lju6RMJ5.png4 Кб, 430x158
492 3308214
>>308189
Имхо оборачивать, но своим интерфейсом, чтобы всё было одинаково и можно было размотать без гигаобработчика.
Вот самый простой вариант, на каждом уровне прикрепляешь предыдущую ошибку и какие-нибудь энтри сразу в жсон формате, чтобы в логи срать удобно.
493 3308217
>>308189
Вложенные ошибки.
494 3308257
>>307518

>Я пришел к подходу прокидывания транзакции через контекст.


Гоферы изобретают ООП. Сам ООП объект это контекст для методов внутри, при том у вас есть такой функционал, нахрена вы устаревшие процедурные паттерны используете?

Мыши плакали, кололись, но продолжали грызть кактус
495 3308258
>>308189

>Пацаны, поясните за обработку ошибок.


Ее просто нет, страдай как хочешь.
Вместо семантики в языке и реализации чего-то в компиляторе - проще было выпустить статью, ошибки это значения и положить болт.
image.png987 Кб, 600x766
496 3308261
>>308214

>можно было размотать без гигаобработчика.


Человек-эксепшен
497 3308294
Ща, перекатимся.
498 3308498
Перекат: >>3308295 (OP)
499 3309945
>>307146
Когда я кодил на C# и JS я по-моему ни разу не использовал все эти уродские try/catch. А на подобные конструкции в коде я смотрел как на мусор) На пыхе с которой я начинал я вообще не знаю как обрабатываются исключения.

И только на Go я вполне уживаюсь с err != nil и даже допиливаю собственный няшный логгер
IMG2706.jpeg163 Кб, 778x1167
500 3311711
Это нормально по вашему?
501 3312390
>>311711
Смешно, во всяком случае.
image.png54 Кб, 505x964
502 3312574

>1. слайс "а" расширяется аппендом, и терь у слайса капасити умножается на два, и добавляется в строй цифра "5". // len(5), cap(8)


>2. слайс "а" передаётся функции "surprise", где происходит ещё один аппенд. // len(6), cap(8)


>3. цикл переписывает значения переданного массива на числа "5".


>4. выводит "[5 5 5 5 5 5]", и возвращается в функцию "main()"


>5. в самой "main()", ЭТОТ ЖЕ слайс "а" имеет, СУКА, ЗАМЕНЁННЫЕ ЧИСЛА НА 5, НО НЕ ИМЕЕТ АППЕНД ИЗ ФУНКЦИИ, ЧТО НА 15-Й СТРОЧКЕ!


ЧЯДНТ?!
503 3312582
>>312574
имею ввиду, почему в случае замены значений всё срабатывает, и слайс меняется по ссылке, но аппенд не аппендится по ссылке, хотя капасити хватает?
504 3313337
>>305662
можешь подсказать про "относительную сложность вката", почему цвет различается так сильно и от чего он зависит ?
505 3313466
>>313337
чем больше, тем сложнее вкат
506 3313487
>>313466
тогда вообще не понял, почему при 16к ячейка отмечена зеленым цветом, а при 11к красным ? Если при 16к сложнее ?
И получается с каждым годом все легче вкатиться в го ?
507 3313490
>>313487
месяцем хотел написать, но там даты странно стоят
508 3313514
>>304909
1.5 года опыта в каком стэке?
509 3313831
Что со вкатом, джуну как быть?

Почему у него такой уёбищный синтаксис у этого Го
510 3313859
>>313831
ты не успел, вкат закрыт
511 3315181
никак не могу вкурить что такое интерефейс
ментальная модель в мозгу - ну это типо сигнатуры методов которые ты можешь присобачить к любому типу
при этом interface{} это интерфейс без методов, а значит по умолчанию выполняется всеми типами (потому что у типов типо может и не быть методов)

короче полная хуйня никак не пойму
а ведь это ключевая вещь (судя по моим путешествиям по коду стандартной либы и других популярных библиотек)

Второй вопрос (косвенно связанный с первым) У меня есть структурка (которая на самом деле джсон) мы ее маршалим анмаршалим

>type BaseMessage struct {


Method string `json:"method"`
Params map[string]any `json:"params,omitempty"`
Protocol string `json:"jsonrpc,omitempty"`
Id int64 `json:"id,omitempty"`
}

у этой структуры есть поле парамс внутри которых тоже есть вложенные структуры (их я тоже описал) и теперь внимание допустим мне надо делать аутенфикацию я создаю функцию
AuthMessageSend() и бла бла, допустим мне надо изменить параметр и я снова пишу функцию RewriteParamMsgSend() вообщем повторяемость кода, как решить проблему? я бы просто создал функцию send(params &BaseMessage) но теперь я как бы перетащил сложность из функций в ее вызовы
512 3315717
анончики, начинаю этот нелёгкий тернистый путь по изучению голенга. надеюсь получится вкатиться!
513 3316029
>>315181

>никак не могу вкурить что такое интерефейс


duck typing курильщика. В обычной динамодристне - ты просто дергаешь методы Swim() и Fly() и все. В Го тебе надо объявить интрефейс Duck с этими методами и попытаться привести твой тип к типу Duck, если тип реализует все методы интерфейса - то приведение будет успешным.

>при этом interface{} это интерфейс без методов, а значит по умолчанию выполняется всеми типами (потому что у типов типо может и не быть методов)


Да, т.е. фактически это способ сказать - любой тип. Сейчас рекомендуется использовать any вместо него, то же самое, но более читабельно.

>у этой структуры есть поле парамс внутри которых тоже есть вложенные структуры (их я тоже описал) и теперь внимание допустим мне надо делать аутенфикацию я создаю функцию


>AuthMessageSend() и бла бла, допустим мне надо изменить параметр и я снова пишу функцию RewriteParamMsgSend() вообщем повторяемость кода, как решить проблему? я бы просто создал функцию send(params &BaseMessage) но теперь я как бы перетащил сложность из функций в ее вызовы


Используй дженерики https://pastebin.com/YFApzvVE
514 3316703
Правильно ли я понимаю, что начинать изучать и пытаться вкатиться в го абсолютно бессмыслено, если ты не хотя бы студент 3-4 курса?
Просто я слышал какие дифирамбы поют языку, он на хайпе и востребован, и видимо инфоцыгане подхватили это.

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

Ну и есть еще возможность попасть на курсы и стажировку от какого-нибудь бигтеха, но там опять же ищут студентоту и этот вариант доступен только для ДС2/ДС2/Казани
515 3318516
>>316703
В го не надо "вкатываться".
Т.е., если ты не умеешь программировать, то _не_ надо учиться этому на го.
Это сложный язык с кучей подводных камней.
Независимо от того, что говорят по этому поводу клоуны с ютуба и прочие инфоцыгане.
516 3318606
>>315181
интерфейс это контракт

нах он нужен?
1. интерфейс нужен для инверсии зависимостей (5п солид), это когда ты напиздячил много структур, под них вхуячил кучи методов. потом начал их вызывать друг в друге и чтоб не соснуть циклический импорт ты используешь контракты вместо самих типов

2. в случае когда ты хочешь дергать разные структуры за метод с одинаковой сигнатурой (написав 1 функцию вместо 2х для разных типов), ты можешь дергать интерфейс(если обе структуры соответствуют твоему контракту интерфейса)

3. псевдодинамическая типизация (переменная при инициализации выберет тип а не про обьявлении), например ты хочешь любую структурку десерелизовать пиздячишь тип any/interface{}, кайфуеш.
но потом соснешь когда будешь угадывать какая модель тебе придет
517 3318618
>>316703
есть стек бекенд,

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

вот сейчас уже ты прикинул что у тебя будет на пеке dbeaver, git, оболочка sh + unixBasedUtils + возможно питон/руби, docker, postmant, wireshark/charles, miro/draw.io.

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

какой ты язык выбрал это мало решает короч

но у го минус в микросервисной архитектуре, даже там где она не понадобится, изза этого гошники на порядок лучше жавистов/питонистов/пыхеров знают devops практики, архитектуру, сети. именно поэтому тут не место вкатунам с нуля, хотя гдето на пыхе полгода посидите потом приходите
518 3318955
>>318618
Все умные слова, перечислил, какие только знал, лол.
И язык ничего не решает, да.
Если пишешь систему учёта лайков.
Нарожали вас, эпигонов, на свою голову, лол.
519 3319183
>>318618
Вкатился в Го почти с 0, имея не коммерческий опыт разработки на питоне/котлине.

Не пугай людей.
Хотя истина в том, что для вкатунов реально работы 0 + по опыту скажу, что очень сильно решает чуть-чуть выше базового знание Kubernetes. Как минимум написать простой хельмчарт должен уметь и понимать, почему тут деплоймент, там стейтфул сет и зачем нужен хпа с ресурсами.
gokarma8.png72 Кб, 870x640
520 3319242
Нате, подрочите:
https://hh.ru/vacancy/108612479

Скриншот сделан только что.
Тред утонул или удален.
Это копия, сохраненная 10 ноября в 18:23.

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

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