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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 554 38 184
Go тред №27 /go/ Аноним 17/02/24 Суб 20:10:54 3052664 1
17032004167570-[...].png 24Кб, 1024x385
1024x385
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

Прошлый тред:
>>2996967 (OP)
Аноним 17/02/24 Суб 20:33:35 3052721 2
Кто-нибудь пробовал связку templ + htmx, или хотя бы просто htmx? Как оно получается, проще чем например реакт + апи?
Аноним 17/02/24 Суб 20:41:52 3052735 3
>>3052721
>htmx
Зумеры придумали ajax.
Аноним 17/02/24 Суб 20:43:35 3052737 4
>>3052664 (OP)
>или хотя бы просто htmx?
Пробовал, короче для туду листа охуенная вещь, как только нужно как-то обрабатывать ответы, например те же ошибки более детально, то тут и начинается жопа. Для какой-нибудь внутренней админки подойдет, как раз там примитивная верстка и жиквери от которого можно отказаться. Но если для продакшна с пользователями, то проще на реакте накидать фронт и не ебаться с этим говном.
Аноним 17/02/24 Суб 20:44:56 3052743 5
>>3052735
Так и есть, только с разницей в том что нужно добавить всего пару атрибутов вместо лапши на js
Аноним 17/02/24 Суб 21:15:51 3052811 6
>>3052743
Зумеры открыли jquery
Аноним 18/02/24 Вск 02:42:52 3053317 7
>>3052811
Не совсем, но смысл тот же
next.js вообще php переизобретает
Аноним 18/02/24 Вск 22:29:04 3054011 8
>>3052664 (OP)
> Go поддерживает типобезопасность
4.2
Аноним 19/02/24 Пнд 15:03:21 3054557 9
image.png 1007Кб, 1200x1200
1200x1200
Аноним 19/02/24 Пнд 17:09:43 3054745 10
есть смысл вкатиться в Go после неудачного вката во front(react)? заебался искать работу на реакте - не получается никак. го вроде несложный и синтаксис приятный. я думаю мне не сложно будет освоить
Аноним 19/02/24 Пнд 17:39:24 3054796 11
>>3054745
если ты на жээсе работу не нашел братан...
Аноним 19/02/24 Пнд 17:43:07 3054804 12
>>3054796
я не смог не потому что лоускилл, а потому что вакансий нету и конкуренция ебанутая
Аноним 19/02/24 Пнд 17:56:47 3054820 13
>>3054804
На жс и во фронте вакансий примерно на порядок больше, чем на го
Аноним 19/02/24 Пнд 18:19:04 3054834 14
>>3054804
на гоу требуется больше скилла чем на жээсе, где в основном кнопочки накатывать с фигмы и обработчики вешать. Иди качайся и глупых вопросов не задавай. Вообще сам факт постановки такого вопроса как бы намекает что ты не тем занимаешься хуйнёй страдаешь
Аноним 19/02/24 Пнд 20:26:04 3055017 15
>>3054834
извини, возможно вопрос был несколько неопределенный. Меня интересует только будет ли вкат свободнее и проще в плане что не будет 900 откликов на вакансию. Возможно мне нужно отредактировать резюме. Только я не ебу как хакнуть эту систему, чтобы выбрали именно меня, а не рэндомного ванька. Знаю только что херки смотрят больше в топе,а чтобы в топ попасть нужно ставить опыт и чтобы ключевые навыки совпадали 100%. У меня год опыта стоит
Аноним 19/02/24 Пнд 20:30:50 3055022 16
>>3055017
Универ + стажировки от него помогают
Аноним 19/02/24 Пнд 20:58:22 3055061 17
>>3055017
Никак не хакнуть. Научись что-то представлять из себя. И откликайся. Чем больше откликов, чем больше знаний - тем выше шанс получить офер. Даже я синьор помидор десять лет стажа порой сильно лажаю на интервью, потому что это отдельный скилл, который надо качать. То есть чаще интервьюироваться.
Аноним 19/02/24 Пнд 23:29:43 3055290 18
q1tws5345ki71.w[...].png 208Кб, 1125x572
1125x572
Пытаюсь понять, что такое контекст, для чего он нужен и где создается.
Пока что не получается.
Складывается ощущение, что это просто кей-валью, который прокидывается откуда-то сверху, но это явно не так.
Аноним 20/02/24 Втр 04:59:12 3055476 19
>>3055290
Это буквально кей-вэлью коллекция. Используется для передачи глобальных переменных.
Если мы хотим покрыть код тестами, от глобальных переменных придется отказаться - их хуй замокаешь. Глобальные переменные можно передать двумя способами. Допустим, нам надо имя текущего пользователя. Можно передать через DI, как в сишарпе, мы просто добавляем какой-нибудь интерфейс IUserContext со свойством UserName, присваиваем значение на входе в наш контроллер и дальше инжектим этот интерфейс, где надо. Просто и элегантно, это не говей. Можно взять словарь, добавить юзернейм туда и тупо прокидывать этот словарь через все методы. Таков путь.
Аноним 21/02/24 Срд 03:32:31 3057098 20
>>3055476
>Используется для передачи глобальных переменных.
нихуя. скоуп глобальных переменных другой. переменные в контексте реквест-скоупед по задумке. могут быть глобальными для программы, если у тебя есть корневой контекст, но это намного реже используется.
>Если мы хотим покрыть код тестами, от глобальных переменных придется отказаться - их хуй замокаешь
глобальные переменные как раз можно использовать для моков - например, вместо time.Now() объявить глобальную переменную-функцию, которая в тестах будет вместо текущего времени возвращать фиксированное значение. или за счет того, что это локальная переменная, а не константа, переопределить в тестах какие-нибудь таймауты до приемлемого значения, чтобы ускорить прохождение.
то, что это замена передачи словаря - да.
Аноним 21/02/24 Срд 05:05:37 3057116 21
>>3055290
Это linkedlist из keyvalue, на который накрутили возможность трекать лайфтайм и отменять контекст. Сейчас контексты используются преимущественно для отмены вывполнения дринной операции, результат которой уже не нужен и контект которой отменили.
Аноним 21/02/24 Срд 22:11:06 3058488 22
>>3055476
>>3057116
Спасибо. Стало понятнее. Очередной инкремент на курсах таки сдал.
Надо будет попрактиковаться еще немного, потому что хоть и пробросил, но не понимаю, как это все-таки на практике работает.
Когда инициализирую БД, то тут понятно. Сам задал контекст, не успел по таймауту, вылетел.
Но вот есть хендлер, я из запроса беру контекст и кидаю по стеку вниз.
А откуда там этот контекст берется? Генерируется сервером?
Аноним 22/02/24 Чтв 01:39:11 3058713 23
>>3058488
> А откуда там этот контекст берется? Генерируется сервером?
да. ну как пример ты на сервере можешь настроить ReadTimeout/ReadHeaderTimeout, чтобы твой сервис не ддосили нищуки с медленным интернетом. таймаут кончается, и контекст отменяется.
аналогично клиенты могут тебе передать какой-нибудь x-deadline хедер, чтобы мидлвара поставила кастомный таймаут на запрос.
можно BaseContext при создании сервера указать, чтобы контексты в реквестах от него шли.
Аноним 22/02/24 Чтв 16:42:20 3059357 24
>>3054557
Чел... погугли как определять тип полученный из пустого интерфейса
Аноним 23/02/24 Птн 10:28:57 3060064 25
Здаров, скиньте если есть годный курс по алгосам и структурам данных для гуланга, который помог бы перестать сосать бибу на контестах.
Аноним 23/02/24 Птн 10:57:27 3060078 26
>>3060064
Курс Седжвика на курсере.
Аноним 24/02/24 Суб 20:59:38 3062272 27
>>3052664 (OP)
Нужна доза копиума, поделитесь успешными историями вашего вката в го. Только без пхп синьоров, а прям с нуля.
Аноним 24/02/24 Суб 22:20:52 3062417 28
>>3062272
Успешно задрочил вопросы собесов и накрутил 2 года опыта. Приняли на работу в хорошую компанию на 240к. Через 3 недели мне устроили экзамен по голангу и вебу, который я завалил будучи волчарой. Сейчас охочусь на следующего кабана.
Аноним 25/02/24 Вск 00:23:50 3062473 29
>>3062272
Начал изучать го, потом дропнул его, потому что уже в каждой перделке есть свой асинк/авейт и незачем писать в процедурном стиле 70х годов, теребя каждую ошибку.
Аноним 25/02/24 Вск 16:17:36 3063043 30
>>3055290
Не соглашусь, что контекст для прокидывания глобальных переменных. Это про прокидывание переменных, которые должны пропагироваться по всей цепочке взаимодействия.
Самый простой пример это реализация дистрибьютед трейсинга:
прилетает http-запрос с request-id, хендлер запроса идет во внешний сервис за обогащением и затем сохраняет что-то в БД.
Чтобы связать все эти запросы в логах/трейсах тебе нужно передавать далее по цепочке этот request-id, который уместно хранить в контексте - тут да, контекст можно рассматривать как key-value.
Второй кейс с контекстом - когда тебе нужно прервать цепочку вызовов. Это делается через отмену контекста - отменяешь родительский контекст и все остальные по цепоче тоже отменяются (при условии, что код пикладной код слушает отмену). Таким образом удается избегать ситуаций, когда клиент уже отвалился по таймауту, хендлер держит коннекты, ожидая ответа от другого сервиса/БД
Аноним 25/02/24 Вск 18:09:16 3063188 31
>>3063043
Как сделать контекст с отменой, который ещё и значения в себя принимать будет?
Аноним 25/02/24 Вск 19:02:56 3063269 32
Аноним 25/02/24 Вск 19:38:51 3063301 33
>>3062272
С нуля стажерами охотно берут во всякие мейл ру, яндекс и озон. Ну если ты студент конечно.

А так у меня история такова, что я пошел будучи нулевым на проект, где мне обещали микросервисы на котлине и гоуленге. В итоге это все наебаловом оказалось, проект - старая дрисня в виде копролита на питухоне 3.5, и только лишь один мертвый сервис на го, разработчик которого уволился в другое место, а сервис закопали, так как он недоделанный оказался.
Сейчас по вечерам пытаюсь учить го, где-то осенью буду пытаться сваливать с парашного проекта в другое место, где будут исключительно го и микросервисы, а не древние копролиты.
Аноним 25/02/24 Вск 23:00:52 3063617 34
>>3063301
>С нуля стажерами охотно берут во всякие мейл ру, яндекс и озон. Ну если ты студент конечно.
Там же конкуренция уровня 500 человек на место и берут только йоба-олимпиадников. Заебись ты копиума выдал...
Аноним 26/02/24 Пнд 01:06:36 3063750 35
изображение.png 70Кб, 832x833
832x833
изображение.png 26Кб, 841x365
841x365
изображение.png 111Кб, 640x813
640x813
>>3063617
У озона в специальной олимпиаде для мидлов в нынешнем потоке было зарегистрировано 512 человек. Для отсева там проводится контест за 5 часов нужно решить 9 задач, человек 80 выполнило все задания из них оставляют где-то не больше 30, остальным отправили письма счастья с пожеланием хорошего дня. В приоритете люди из городов в которых есть офисы озона и кто будет работать в стойле. Для джунов боюсь представить что там происходит.
Задачка про Ваню забавная
Аноним 26/02/24 Пнд 01:52:24 3063774 36
>>3063301
>древние копролиты
Почему-то на микропенисы дрочат ньюфаги, которые с ними никогда не работали. Маркетологи промыли пориджей, мое почтение. Ты еще будешь с тоской вспоминать монолит, который можно просто открыть на компе, просто расставить брекпоинты и посмотреть, как все работает.
Аноним 26/02/24 Пнд 02:58:58 3063814 37
>>3063774
>Маркетологи
Эти маркетологи с тобой в одной комнате?
Аноним 26/02/24 Пнд 03:16:47 3063825 38
>>3063774
> монолит, который можно просто открыть на компе, просто расставить брекпоинты и посмотреть, как все работает
это после скачивания 20ГБ кода и ебли с зависимостями? я 5 микросервисов подниму и расставлю брейкпоинты за время когда это всё качается
Аноним 26/02/24 Пнд 03:20:03 3063827 39
>>3063617
ну ты же понимаешь что 99% людей тупые с айкю как у хлебушка? из 500 человек там штук 5 которые могут лампочку вкрутить
Аноним 26/02/24 Пнд 03:31:35 3063834 40
>>3063827
Ты конечно же не из тех 99% да?
Аноним 26/02/24 Пнд 03:36:00 3063836 41
>>3063825
Да это похоже один шиз пишет, который в растотреде всех заебал, он похоже студент, нихуя не работавший и постоянно про каких-то маркетологов пиздел.
Аноним 26/02/24 Пнд 07:36:59 3063892 42
>>3063750
лолшто? мидлов теперь отбирают по принципу голодных игр?
Аноним 26/02/24 Пнд 09:27:02 3063934 43
IMG5664.HEIC.jpg 2511Кб, 4032x3024
4032x3024
>>3063617
Ну давай проверим.
Это за тест сойдет или тест не тест?
Аноним 26/02/24 Пнд 09:28:34 3063936 44
>>3063934
блядь, не тот тред. Ебать я снайпер.
Правильно ли я понимаю, что возможность удалять свои посты так и не завезли?
Аноним 26/02/24 Пнд 12:00:27 3064103 45
>>3063269
Хуясе чёрная магия. Благодарю.
Аноним 26/02/24 Пнд 12:12:13 3064123 46
>>3063936
>Правильно ли я понимаю, что возможность удалять свои посты так и не завезли?
После регистрации, можно удалять и редактировать. Регистрация доступна через госуслуги.
Аноним 26/02/24 Пнд 12:14:44 3064127 47
>>3055061
Я другой анон и вопрос немного оффтопный и вопрос не конкретно к тебе, но...

Как преподнести интервьюеру что сначала я 2-3 года нормально работал, а когда война началась я 2 года ебланил? В прошлый раз на собесе сказал правду и почувствовал какое-то напряжение из-за этого ответа, вроде бы.

Еще мне как-то один знакомый сказал, что в яндексе есть БД в которую складывают результаты собесов чуть ли не вместе со стенограммой и не с досье на человека. Звучит сомнительно, но с тех пор я еще сильнее боюсь собеседоваться. Какая-то параноидальная мысль стоит в голове, что все они как-то отслеживают нас. И что если ходить на все собесы на которые меня приглашают, то рано или поздно не останется работодателей, которые не знают, что я долбаеб. Рано или поздно работодатели кончатся! А вдруг крупные компании типа яндекса и, хз, VK, например, уже давно обмениваются инфой? Чтобы не тратить время на мусорные собесы? И Яндекс даже не прислал письмо мне с отказом именно по этой причине? Потому что когда-то я плохо проходил собес у VK? Знаю, что этот абзац, скорее, полностью бред, но иногда меня накрывает такая шиза, что хочется к какому-то специализированному на hr психологу сходить. Но потом отпускает и я не иду.
Аноним 26/02/24 Пнд 12:23:22 3064135 48
>>3063892
В сбере и для сенек голодные игры уже сделали. Человек 80 всегда участвуют. Только там отсев по трудовой, чтобы джентльмены удачи не доёбывали.
Аноним 26/02/24 Пнд 12:30:26 3064148 49
>>3063892
Это для перекатывающихся из других языков
Аноним 26/02/24 Пнд 12:39:06 3064159 50
>>3064123
Я просто к форчану привык
Аноним 26/02/24 Пнд 12:54:05 3064176 51
>>3063825
>это после скачивания 20ГБ кода и ебли с зависимостями? я 5 микросервисов подниму и расставлю брейкпоинты за время когда это всё качается
Зависимости надо скачать один раз, а ебаться с поиском проебанного реквеста каждый день. Или выяснять какого хуя простой запрос отрабатывать за 5 минут, какой из 20 микропенисов тормозит.
Аноним 26/02/24 Пнд 14:07:47 3064294 52
>>3064127
В раше скоро так и будет, по паспорту, трудовой и обязательной гос-сертификации.
Аноним 26/02/24 Пнд 14:10:42 3064302 53
>>3064176
>, какой из 20 микропенисов тормозит
Это уебанская архитектура, у тебя не микросервисы, а распределенный монолит. В большинстве случаев сервис должен жить сам по себе и нигде не запрашивать данные, а другим сервисам отправлять запросы в очередь. Ты еще скажи что у вас эти 20 сервисов по rest api общаются
Аноним 26/02/24 Пнд 14:34:06 3064344 54
>>3064302
>Это уебанская архитектура, у тебя не микросервисы, а распределенный монолит.
Сразу видно джуна. Сеньки то знают, что рано или поздно любая микросервисная система превращается в распределенный монолит.

>В большинстве случаев сервис должен жить сам по себе и нигде не запрашивать данные, а другим сервисам отправлять запросы в очередь.
Один совет ахуительнее другого. А клиент тоже должен очередь слушать, на предмет когда его запрос запроцессится?
Аноним 26/02/24 Пнд 15:24:46 3064387 55
>>3064127
я являюсь рекрутером в IT
Большинство компаний использую CRM, куда сохраняются твои резюме. То есть если я тебя нашел 2 года назад и сохрнил твой профиль, где у тебя одни компании, а сегодня нашел снова твой hh и снова добавил тебя в crm, а у тебя там совсем другие работодатели, нежели которые были 2 года назад, то она соединит твое резюме и я пойму что где то ты врешь)
Аноним 26/02/24 Пнд 15:46:29 3064408 56
>>3064387
в жопу ты пойдешь

я своё резюме раз 5 переписывал, потому что работодатели менял имена компаний, потому что добавлял или уточнял детали и сроки, удалял старый опыт когда у тебя больше 5 айтемов в резюме его никто не будет читать до конца
хуёвый ты эйчар, хуй будешь?
Аноним 26/02/24 Пнд 15:48:31 3064410 57
>>3064302
Какой забавный джуник.
>другим сервисам отправлять запросы в очередь
Классика. Ты даже не представляешь, как ты ОХУЕЕШЬ через пару лет отлаживать такую архитектуру.
Аноним 26/02/24 Пнд 16:04:20 3064426 58
>>3064344
> Сеньки то знают
А ты что знаешь?

>А клиент тоже должен очередь слушать, на предмет когда его запрос запроцессится?
Во первых не нужно разбивать совсем на микрописьки, а исходить как раз таки из бизнеслогики. Если клиенту нужно мгновенно получать какие-то данные, но их нет в этом сервисе, значит их нужно дублировать в этом сервисе в рамках разумного конечно же, при этом в случаи коллизий приоритетным должен быть тот сервис которому эти данные принадлежат. Все запросы на мутацию/добавление данных отправлять в очередь, а на клиент отправлять статус "делается".

Помню мы ебались с микрописечной архитектурой, в итоге объеденили 3 сервиса в один над которыми я работал один лол, они были очень сильно связаны между собой. Добавили 2 таблицы данные для которых брали из другого, а все телодвижения с другими сервисами убрали в очередь. Пришлось ПМке и дизайнеру объяснять что нужно добавить на фронт промежуточный статус для некоторых действий, плюс фронту немного помог с оптимизацией, он много лишних запросов делал. И о чудо вместо 10-15 секунд у меня все выплевывалось на фронт за милисекунды. В ТП вообще обрадовались, до этого постоянно заебывали что всё тормозит.
Сделали практически тоже что этот мужик рассказывал https://www.youtube.com/watch?v=FF-GZ7iipwc
Аноним 26/02/24 Пнд 16:23:38 3064450 59
>>3064426
Веселая у вас галера. Джун на фронте не понимает, как работает сеть, про апи гейтвей тоже ничего не слышал. Джун на бэке пытается изобрести ивент сорсинг, но делает это через жопу. Микросервисы пишутся одним человеком, каргокульт такой каргокульт.
Аноним 26/02/24 Пнд 16:31:54 3064459 60
>>3064450
Чего сказать-то хотел?
Аноним 26/02/24 Пнд 18:56:56 3064755 61
>>3064426
>Во первых не нужно разбивать совсем на микрописьки, а исходить как раз таки из бизнеслогики. Если клиенту нужно мгновенно получать какие-то данные, но их нет в этом сервисе, значит их нужно дублировать в этом сервисе в рамках разумного конечно же, при этом в случаи коллизий приоритетным должен быть тот сервис которому эти данные принадлежат.
И через пару итераций получим монолит, так стоило-ли сопротивляться?

>Все запросы на мутацию/добавление данных отправлять в очередь, а на клиент отправлять статус "делается".
Пользователь изменил настройки, нажал кнопку сохранить, а ты ему такой: "сохраняем, пожалуйста подождите". Ю - юзабилити!
Аноним 26/02/24 Пнд 19:14:55 3064796 62
>>3064755
Двачаю. Пихать всё в кролика это шиза ебаная. Есть функционал, где надо/можно дать ответ сразу, там RPC. Есть функционал, где невозможен/не нужен немедленный ответ, там брокеры.
Аноним 26/02/24 Пнд 19:24:01 3064823 63
>>3064408
Может быть огромное количество причин, почему ты не узнал, что это спалили, начиная от того, что просто ранее тебя это компания не видела и не добавляла в crm и заканчивая, что рекрутеру просто на это всё равно.
Но ты - обезьяна этого не понимаешь, тебе бы лишь бы хуйню написать. Лучше бы так собесы проходил, как на двачике пытался самоутвердиться. А то процентов 80% разрабов при первом общении отлетает по софтам:)
Аноним 26/02/24 Пнд 19:37:40 3064857 64
>>3064755
>И через пару итераций получим монолит, так стоило-ли сопротивляться?
Это из крайности в краность, любо микрописьки, либо монолит-сталагмит из говна на жабе. Надо искать золотую середину, самое главное сделать так чтобы было меньше связей между сервисами.

>Пользователь изменил настройки, нажал кнопку сохранить, а ты ему такой: "сохраняем, пожалуйста подождите". Ю - юзабилити!
Не совсем так, допустим одно из действий:
Надо было подключать услугу на устройствах, у меня в БД все что нужно было добавилось и дальше надо в сторонний сервис чтобы эта хуйня включалась на устройствах. Раньше приходилось ждать пока они все подключатся иногда падало по таймауту, пользователь сидел тупил и иногда у него не получалось, он шёл в ТП, ТП к ПМ, ПМ ко мне. Я хуй его знает чего делать у меня в логах по таймауту все упало, дальше по цепочке оно там все сделалось как надо, в ЛК у пользователя нет нихуя.
Короче сделали что все взаимодействие со сторонними сервисами было в очереди, а на фронте появлялось сообщение что ХХХ в процессе подключения, дизайнер еще проработала разные сценарии, там по красоте было понятно, плюс в основном этим сервисом пользовались инженеры. То есть пользователь нажал и увидел что что-то делается, а не ждет ошибку и в течении пару минут все подключается. Как только они там запердолились мне приходил ответ и я у себя в БД менял статус на "подключено", соответственно когда фронт делал потом запрос, было видно что все подключено. Юзабилити наоборот стало лучше, обращения по поводу этой хуйни в ТП закончились. И еще пару фич на такую логику перепилили.
Те же формирования отчетов для отдела продаж сделали также, они нажимают на кнопку, оно пишет что отчет делается, как сделается у них появлялась ссылка на скачивание эксельки, до этого постоянно ебались и по много раз тыкались.
Аноним 26/02/24 Пнд 19:42:41 3064867 65
>>3064796
>Двачаю. Пихать всё в кролика это шиза ебаная. Есть функционал, где надо/можно дать ответ сразу, там RPC. Есть функционал, где невозможен/не нужен немедленный ответ, там брокеры.
Так и сделано было, мы не прям всё убрали в кролика, кое что всё же оставили, но большинство взаимодействий таки убрали
Аноним 26/02/24 Пнд 19:45:07 3064871 66
>>3064867
Это я видос того умника посмотрел. Они вообще всё вокруг брокера строят.
Аноним 26/02/24 Пнд 19:48:49 3064880 67
>>3064871
Ну я как пример показать, когда смотрел видос я удивился что мы примерно к тому же пришли. У них там да, прямо все вокруг брокера и на событиях
Аноним 26/02/24 Пнд 20:39:57 3064968 68
>>3064294
>>3064387
Жесть. Нафига вы подливаете масло в огонь, пацаны? Я за пол года поиска работы пересилел себя только один рай пойти на собес. Теперь, наверное, вообще не пойду, пиздос.

А всем компаниям, которые хранят у себя мои персональные данные без моего разрешения, я желаю банкротсва и пойти нахуй! Хотя я, нав, уже галочку в hh где-то поставил, хз. Возможно, можно как-то галочку отозвать, бтв.
Аноним 26/02/24 Пнд 20:44:15 3064977 69
>>3064968
Да и по идее я только hh разрешал данные собирать, разве не?
Аноним 26/02/24 Пнд 20:47:34 3064982 70
>>3064387
Блядь, да даже досье на человека по его данным из соцсетей нельзя собирать! Хотя там челидодики сами все напоказ выставялют и даже разрешают поисковикав индексировать их странички
Аноним 26/02/24 Пнд 20:49:42 3064986 71
>>3059357
Чел, типобезопасность это Хинди-Мильнер, это ADT ,это exhausive паттерн-матчинг, а не эта погремушка, когда передаёшь всё что угодно в interface{} и компилятору вообще похуй чего ты там "определяешь" из него.
Аноним 26/02/24 Пнд 20:54:51 3065000 72
>>3064968
Чел, не парься. Компании уже давно всё о тебе знают. Буквально рейтинг тупизны. Если плохо отсобесился, то это нохаир везде и навсегда.
Аноним 26/02/24 Пнд 20:56:18 3065002 73
>>3065000
И длину члена мою тоже знают?
Аноним 26/02/24 Пнд 21:02:34 3065014 74
>>3064968
Пиздуй к нам в Озон Финтех пособеседоваться.
Сейчас много ставок открылось, активно нанимают. Попытка не пытка.
А местных больше слушай.
Аноним 26/02/24 Пнд 22:38:45 3065190 75
>>3064986
> типобезопасность это Хинди-Мильнер
4.2
Аноним 26/02/24 Пнд 22:43:25 3065202 76
>>3064127
Не забывай ещё про ЧЁРНЫЕ СПИСКИ у хрюшек.
Аноним 26/02/24 Пнд 23:29:14 3065266 77
>>3064857
То что ты описал это и есть монолит, когда связанные функции группируют в одно приложение. Совсем не обязательно, чтобы весь функционал был в одном единственном приложении, их может быть несколько. Основная идея это как раз слабая связанность между собой, если другие сервисы недоступны, то базовый функционал все равно будет работать.
Аноним 27/02/24 Втр 01:07:52 3065368 78
>>3064986
Ебнутый что-ли, ты не можешь никак провзаимодействовать с пустым интерфейсом (передача в другой метод или принт не считаются по очевидным причинам), тебе необходимо явно установить тип перед тем как взаимодействовать с тем что скрывается под пустым интерфейсом. Чем не type safety?
Аноним 27/02/24 Втр 07:47:11 3065474 79
>>3065014
>Озон Финтех
>ехал литкод через литкод
>поверни эту строку, поверни ее снова
>спроектируй мне фейсбук за 5 минут
>в итоге взяли дебила, который не знает про idle in transaction и роняет прод в аккурат перед праздниками
Аноним 27/02/24 Втр 12:09:06 3065642 80
>>3064968
Волков бояться - в лес не ходить)))кринж,но как есть
Для рекрутера и бизнеса главное закрыть потребность и найти крутого чувака) Хоть 10 лет опыта накрути, но если ты нормальный по софтам и горишь своей специализацией, то ты пройдешь в любом случае)
Аноним 27/02/24 Втр 12:19:06 3065652 81
>>3065474
Ну значит хуёво он спроектировал фейсбук. На мороз и вкатуна и собеседующего.
Аноним 27/02/24 Втр 18:54:01 3066162 82
>>3063617
>Заебись ты копиума выдал
Ну есть и другие компании, какая-нибудь лига цифровой экономики го джунов тоже набирала в свое время.
Я там работал джава разрабом полгода - коллектив все как один вкатуны по курсам гикбрейнс были, с вышкой только лид (он радиотехнику какую-то в нулевых окончил) и еще один парень, откуда-то из саранска что-ли. Остальные именно что заводчане и грузчики бывшие. И ничего, кое-как их набрали ведь.

>>3063617
>Там же конкуренция уровня 500 человек на место и берут только йоба-олимпиадников
Олимпиадником быть не нужно даже для яндекса. Литкод гораздо проще чем олимпиады. Конкуренция есть конечно, но если литкод затащишь, то в яндекс возьмут практически в любую команду, где не нужна математика или мл.

>>3063774
>Ты еще будешь с тоской вспоминать монолит, который можно просто открыть на компе, просто расставить брекпоинты и посмотреть, как все работает
У нашего копролита миллиард зависимостей от сторонних сервисов.
Ты его не сможешь запустить в дебаггере, расставив брейкпоинты. Только если тесты писать руками и поднимать тестовую базу в контейнере. И то, далеко не все случаи ты так сможешь раздебажить. Дебажить на поднятом тестинге у нас нельзя, к сожалению. Слышал про то, как иногда можно прям дебаггером подключиться к тестовому серверу и дебажить так, но у нас такое запрещено.

И поверь, дебажить мелкие говнохуитки на гоуленге в десятки раз проще, чем десятилетний код на питоне с адовыми слоями декораторов и метаклассов.
Аноним 27/02/24 Втр 18:55:56 3066166 83
>>3064127
>в яндексе есть БД в которую складывают результаты собесов чуть ли не вместе со стенограммой и не с досье на человека
В любой крупной конторе (да и в любой мелкой тоже) такое есть уже много лет.
В яндексе после каждого собеса о тебе интервьюер пишет свой отзыв, который навечно сохраняется в базе у них. Ну и если ты спустя 10 лет снова в яндекс вернешься, то какой-нибудь собеседующий или потенциальный лид может покекать с того, что о тебе писали десять лет назад.
Аноним 27/02/24 Втр 20:03:42 3066244 84
>>3065474
> и роняет прод в аккурат перед праздниками
Перед праздниками везде фриз выкаток кода, и уж тем более в e-commerce, не пизди.
Максимум - шаблоны разметки, и то под ок бизнеса.
Аноним 27/02/24 Втр 20:22:07 3066268 85
image.png 222Кб, 394x381
394x381
Как говноланг мог так взлететь? Я этого просто не пынямаю. Как язык, у которого нет эксепшенов и синтаксис выглядит как умственно отсталый брат си, сумел стать таким хайпанутым? В чем его секрет? Пиар гугла? То что быстрый? Этот вопрос сводит меня с ума уже месяц
Аноним 27/02/24 Втр 20:25:16 3066272 86
>>3066268
>Этот вопрос сводит меня с ума уже месяц
Не пизди, ты тут уже года три шитпостишь.
Аноним 27/02/24 Втр 20:31:10 3066297 87
>>3066272
Раньше я просто над этим долго размышлял, а сейчас уже шизею
Аноним 27/02/24 Втр 21:03:22 3066353 88
Аноним 27/02/24 Втр 22:26:12 3066464 89
>>3063836
Ты по всем тредам ходишь и ищешь какого-то растера в тредах, понимаешь, что шизом выглядишь сейчас тут ты. Да, люди сидят не в одном треде, нафиг ты это пишешь? Чудо.
Аноним 27/02/24 Втр 22:27:59 3066466 90
>>3064123
Не издевайся, достаточно регистрации почты на мэйл.ру.
Аноним 27/02/24 Втр 22:32:30 3066470 91
>>3066297
>>3066268
>Как говноланг мог так взлететь
Синтаксис у него может как у отсталого брата си, но при этом у него есть
1) GC
2) Горутины
3) Компилируемость в бинарь
4) Отличный тулинг
5) Простой синтаксис, который не позволяет писать хитровыебанный загадочный код

Вот и все. Ну и поддержка гугла, разумеется.
После джавы и питухона с их магией на рефлексии/метаклассах/декораторах говноланг это как глоток чистого воздуха.
Аноним 27/02/24 Втр 22:36:26 3066474 92
>>3066268
Как спец могу сказать
-Конкурентность, точнее зеленые функции.
-Один бинарь с рантаймом без VM, отсутствие траха с зависимостями
-Тогда еще могла удивить кросскомпиляция.


На этом все, язык не пригоден для промышленного кодинга, в крупных разработка уже нужны стектрейсы и норм логи, нужно IoC, становятся нужны даже геттеры и сеттеры и хоть какой-то сахар, так как бойлерплейтить больно (но можно, хомяки упертые).
Аноним 27/02/24 Втр 22:40:29 3066476 93
>>3066474
Ну, логи от языка не завсият. Хорошие логи должен сам разработчик уметь правильно писать.
IoC тоже не языко-специфичная тема.

Без стектрейсов может быть тяжеловато конечно, но мы просто ошибки наверх через fmt.Errorf("info: %+v", err) выбрасываем, таким образом добавляя нужную инфу к ошибке слой за слоем. Сорт оф стектрейс.
Аноним 27/02/24 Втр 23:41:01 3066517 94
>>3066470
>4) Отличный тулинг
отличный от нормальных языков.

>>3066476
>мы просто ошибки наверх через fmt.Errorf("info: %+v", err) выбрасываем, таким образом добавляя нужную инфу к ошибке слой за слоем. Сорт оф стектрейс.
Стектрейсы для бедных.
Ладно такая херня в Расте или Си еще понятна, у них цел нулевой оверхед, так что извольте поебстись. При том что стектрейсы то есть и их даже можно прицепить к ошибке, просто так не принято.
Аноним 28/02/24 Срд 00:13:46 3066530 95
>>3066517
>отличный от нормальных языков
Лучше чем в jvm тащем-то. Не говоря уже про всратый питон.
Чего только рейсдетектор стоит.

Стектрейсы в голанге так-то есть в голанге, да. Но зачем они нужны? Их всегда тяжело читать, а из полезной нагрузки всего лишь несколько строчек.
Аноним 28/02/24 Срд 00:16:06 3066531 96
>>3066476
>Ну, логи от языка не завсият.
Как пример жаба, где уровень логгов можешь настроить по пакетам. Где-то заглушить, где-то увеличить уровень. Хз написали ли на го нечто такое, но когда я с ним трахался ничего такого не было (было кругом сырое васянство).

>IoC тоже не языко-специфичная тема
Мне гоферы говорили ненужно, как и отладка, они на полном серьезе меня убеждали дебажить принтами.

>но мы просто ошибки наверх через fmt.Errorf("info: %+v", err) выбрасываем,
Человек-эксепшен.
В те года, я практически верил, что они сэкономили на компиляторе, чтобы оставить плацдарм для оптимизации. Но теперь я вижу, что они просто положили болт.
Аноним 28/02/24 Срд 00:21:58 3066532 97
>>3066530
>Их всегда тяжело читать, а из полезной нагрузки всего лишь несколько строчек.
Потому что ты ничего крупнее круда не нюхал. Когда функция foo крашится по четвергам, ты в логах видишь что упала foo, а то что она вызывается 1000 раз из 100 разных мест и по четвергам, говорит тебе о том, что ты будешь дебажить месяц.
это называется плавающая ошибка или heisenbug
Аноним 28/02/24 Срд 01:14:05 3066557 98
>>3066532
Ошибка из функции foo пройдет несколько этапов, в которых наслоятся друг на друга эррор месседжи, и ты будешь знать как минимум место где она вызвана, как максимум обстоятельства. Ну это в случае если все хорошо с кодстайлом на проекте, на моей первой го работе у челов на каждую эррору стоял лог в котором (к счастью автоматически) указывалась строка где лог был вызван, а там уже понятно куда копать. На бумаге хорошо, да вот только и так немалые методы вырастали на процентов 30 и переставали помещаться на один экран, и прочие проблемы с читабельностью
Аноним 28/02/24 Срд 01:58:35 3066576 99
>>3066557
Проброс ошибок, это другая проблема. В общем, опять вспоминая джаву, в ней есть checked исключения и время показало, что это не очень практично указывать исключения в сигнатуре метода, в котлине и шарпах от этого уже отказались.

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

Кстати, в расте я видел что обобщают ошибки до Box<dyn...>, а это, насколько я понимаю, аллокация памяти. Так что вот тебе и "зеро кост абстракшен".
Аноним 28/02/24 Срд 02:33:07 3066586 100
>>3066474
>язык не пригоден для промышленного кодинга
Какие подходют?
Аноним 28/02/24 Срд 08:17:08 3066641 101
>>3066532
Ну опять же - если паника необработанная, то будет тебе стектрейс.
Если обычная ошибка, обернутая сообщением, то тоже можно будет понять откуда она прилетела.

Возможно это не очень удобно, но жить с этим не так уж сложно.

>>3066531
>Мне гоферы говорили ненужно, как и отладка, они на полном серьезе меня убеждали дебажить принтами
DI в Го это именно что в main функции создавать все нужные зависимости в виде логгеров, пул подключений к БД, подгрузку конфига, его валидацию - и все это запихивать через сорт оф конструктор в какую-нибудь структуру Application, у которой будет метод Run, где будут создаваться и прокидываться друг в друга репозитории, сервисы, контроллеры. Прям как в спринге, только вместо собачек с Component и Autowired у тебя будет ручное создание объектов и ручное прокидывание их в функции-конструкторы.
Аноним 28/02/24 Срд 09:01:55 3066663 102
>>3066641
>ручное прокидывание их в функции-конструкторы
Охуеть, вернули мой 2007. В сишарпе DI фреймворки давно умеют сами резолвить зависимости через рефлексию. Ты просто пишешь в конструкторе у MyController аргумент ISomeInterface, дальше оно само все находит и подставляет.
Аноним 28/02/24 Срд 10:10:11 3066701 103
>>3066641
>Если обычная ошибка, обернутая сообщением, то тоже можно будет понять откуда она прилетела.
Каким местом? Читай внимательно, что написали выше.
Да и понятно, что для мелко-круда можно хоть на баше писать.
Аноним 28/02/24 Срд 10:41:35 3066724 104
Народ, я сейчас не стебаюсь, но дженерики добавили уже в го или нет. Я слышал что хотели.
Аноним 28/02/24 Срд 10:51:20 3066730 105
Аноним 28/02/24 Срд 11:32:35 3066767 106
>>3066724
Нет, пока что не добавили
Аноним 28/02/24 Срд 11:44:07 3066781 107
>>3066767
— Дженерики есть?
— Дженериков нет.
— Есть дженерики в планах?
— Дженерики не планируем.
— Дженерики можно посмотреть, какие есть?
— Нет, Дженериков в голанге нет.
— Я бы хотел написать дженерик, когда они вообще?
— Извините, у нас нет в планах дженериков.
— Удобные инструменты есть? Мне дженерики нужны.
— Мы их никогда не планировали и не планируем.
И ведь этот гугловец, зараза, знает меня идеально в лицо, знает, что я спрошу и знает, что он мне ответит. Но ещё ни разу ни один из нас ни жестом, ни словом не показал, что каждый из нас знает сценарий. Бывает, зараза курит у входа, когда я захожу в офис Гугла, тогда я подсматриваю за ним сквозь стеклянные двери, он равнодушно докуривает, выбрасывает бычок и возвращается за ресепшен:
— Что вы хотели?
— Мне нужны дженерики.
— У нас нет.
— Жаль.
Аноним 28/02/24 Срд 13:24:28 3066861 108
>>3066530
>Лучше чем в jvm тащем-то. Не говоря уже про всратый питон.
Не пизди, в JVM мире один из самых лучших тулингов. Тут тебе и все возможные билд системы, и центральный репозиторий зависимостей которую спиздили другие языки. И линтеры и коданалайщеры всех цветов и расцветок. Куча всяких прод метрики, логов, трейсеров.

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

>Стектрейсы в голанге так-то есть в голанге, да. Но зачем они нужны? Их всегда тяжело читать, а из полезной нагрузки всего лишь несколько строчек.
Внезапно! Ты и в говноланге делаешь стектрейс оборачивая ерр в новый ерр. Потому что колстэк важен почти всегда. Только в нормальном языке стектрейс стандартный и его можно легко парсисть: например Иде может перейти к коду. А в говноланге ты ручками ищешь по тексту сообщения об ошибке.

У тебя концепция кол стека есть не то что на уровне ОС, а даже на уровне процессора. Но нет, пришёл Роб Пайк и сказал что стектрейс не для гойев. себе, для panic, он стектрейс оставил
Аноним 28/02/24 Срд 13:39:48 3066870 109
>>3066861
> Не пизди, в JVM мире один из самых лучших тулингов
Лол

> Но нет, пришёл Роб Пайк и сказал что стектрейс не для гойев. себе, для panic, он стектрейс оставил
Ты можешь забрать стектрейс и паники и пробросить выше, но нахуя?
Аноним 28/02/24 Срд 13:45:20 3066874 110
>>3066663
Что находит и что подставляет? Все наелись этой хуйни и пилят теперь static di, потому что магия магией, а код вот он и по крайней мере не пиздит.
Аноним 28/02/24 Срд 14:23:28 3066908 111
>>3066870
>пук
Нормальных аргументов явно не стоило ждать.

>Ты можешь забрать стектрейс и паники и пробросить выше, но нахуя?
Во первых ты даже стдлиб не знаешь, стектрейс можно и без паники получить. Во вторых, чтобы не ебаться с
>мы просто ошибки наверх через fmt.Errorf("info: %+v", err) выбрасываем, таким образом добавляя нужную инфу к ошибке слой за слоем. Сорт оф стектрейс.
Хотя бы просто прокидывать наверх как есть.
Аноним 28/02/24 Срд 16:25:58 3067115 112
>>3066724
ПОясните, а нах они нужны, когда есть type any(interface{}) ими кто-то ерально пользуентся в проектах???
Аноним 28/02/24 Срд 22:04:18 3067483 113
495bf44c-fd7b-4[...].jpg 37Кб, 401x356
401x356
>>3066730
Ты сам поиск смотрел? Там одни статьи о том когда будут дженерики.
Хотел с умничать, но снова оказался гофером.
Аноним 28/02/24 Срд 22:15:11 3067493 114
>>3067115
Зачем нам ловить ошибки еще на этапе компиляции, когда можно приводить всё к обобщенному типу и делать вид что пишем на языке без типизации? Ну хз, по приколу, наверное.
Аноним 28/02/24 Срд 22:17:26 3067496 115
>>3066861
>JVM мире один из самых лучших тулингов
@
>для джавы в 2024 до сих пор нет lsp
Аноним 28/02/24 Срд 22:18:51 3067499 116
>>3066861
>Вначале не добавили в язык конкарент коллекции, потом закостылили рейсдетектором

Чел, спокуха. Рейсдетектор нужен не только при работе с коллекциями.
Алсо когда их там в джаву-то добавили, все эти concurrent hash map или skiplist?
Аноним 28/02/24 Срд 22:26:33 3067512 117
>>3067496
>lsp
Ты хотел сказать - медленный кусок кала?
Аноним 28/02/24 Срд 22:29:31 3067518 118
>>3067512
Ой извини, медленный кусок глючного кала, в котом нет и доли возможностей тулинга IDE джавы.
Аноним 28/02/24 Срд 22:38:25 3067530 119
>>3067512
>>3067518
Вообще gopls довольно шустрый, как понос.

А вот с lsp у джавы беда действительно. Они-то есть, но только лишь какие-то жутко всратые от эклипса и нетбинса.

>>3067518
>в котом нет и доли возможностей тулинга IDE джавы
LSP имеет спецификацию. Там все возможности описаны. И что такое IDE джавы? Jetbrains, чьи лицензии больше не купить в РФ? А если через 5 лет jetbrains потонет к хуям что в целом можно ожидать, в конторе далеко не лучшие времена сейчас судя по отзывам знакомых, то где коды писать будешь?
Аноним 28/02/24 Срд 22:46:16 3067537 120
>>3067530
> то где коды писать будешь
Поэтому давайте прям сейчас писать в блокноте с куском говна прикрученным сверху вместо нормальной ide.
Когда потонет, тогда появится потребность и нишу кто-то заполнит. Возможно через lsp надеюсь что нет.
Аноним 28/02/24 Срд 22:51:43 3067545 121
>>3067530
А если завтра упадет метеорит?
Тулинг уже есть, то есть написан, даже через 10 лет это будет хороший тулинг.

LSP как раз и ограничен общей для всех спецификацией, опять ситуация сводящая к одному общему для всех. Так что это хрень для всяких кривых блокнотов на электроне, в которых хер даже сорцы по клику прочитаешь.
Аноним 28/02/24 Срд 23:47:37 3067573 122
>>3067499
>Рейсдетектор нужен не только при работе с коллекциями.
Но чаще всего именно в колекциях он и происходит.

Да и в целом это не тула первой необходимости. А вот билд система, это мастхев каждый день. B Мавен с Гредлом на голову выше гобилда.

>Алсо когда их там в джаву-то добавили, все эти concurrent hash map или skiplist?
В 2004, за 5 лет до релиза го.
Аноним 28/02/24 Срд 23:50:31 3067576 123
image.png 189Кб, 2454x962
2454x962
>>3067496
>для джавы в 2024 до сих пор нет lsp
>Ни одного.
Аноним 29/02/24 Чтв 01:07:11 3067615 124
>>3067512
>медленный кусок кала
Всё медленно если тебе надо в бэкграунде рабочую jvm держать.
Аноним 29/02/24 Чтв 01:11:22 3067616 125
>>3067530
>в конторе далеко не лучшие времена
Поделись инсайдами. Сколько команды потеряли после релока? В чём проблемы если рост прибыли стабильный?
Аноним 29/02/24 Чтв 12:36:22 3067952 126
>>3067616
Да хуета это всё. Даже эмбаркадеро до сих пор живы. А тут контора которая делает практически безальтернативные IDE для джавы, го, питона, с++, пыха, руби и прочая экзотика. Контора у которой многие годы основной бизнес на западе. Должна загнуться потому что
>лицензии больше не купить в РФ

Да сейчас не самые жирные годы, все АйТи компании ужимаются.
Аноним 29/02/24 Чтв 21:07:27 3068621 127
Насколько сложные собесы в ozon и авито нынче?
Если у меня опыт предыдущий в основном в виде питухона и монолитов, то как сложно будет найти себе команду, если технические секции будут пройдены хорошо?
Там же у вас наверняка алгоритмы + го + многопоточка на секциях?
Аноним 29/02/24 Чтв 21:28:38 3068658 128
>>3066268
Лично мое мнение - канкаренси интуитивно понятнее прочих языков, изи ту лерн - хард ту мастер. Но писать что-то сложное на нем - больно, но можно
Аноним 29/02/24 Чтв 21:30:38 3068660 129
>>3066474
>стек трейсы
есть же
>ioc
ну как бы есть контейнеры готовые, свой написать за пару вечеров
Аноним 29/02/24 Чтв 21:33:57 3068664 130
>>3068621
изи-мид литкода
многопоточка уровня го тураладно, чуть сложнее,
Аноним 29/02/24 Чтв 21:54:21 3068698 131
Аноним 01/03/24 Птн 00:22:03 3068836 132
Аноним 01/03/24 Птн 01:07:35 3068882 133
>>3066586
Котлин/Джава, шарп.
Можно еще натянуть всякую динамикодресню типа жопоскрипта и петухона, если будешь типами покрывать (например jsdoc или тайпскрипт)
Аноним 01/03/24 Птн 01:09:36 3068883 134
>>3068836
Да я уже нашел, именно по первым статьями рассказывалось какие они будут, а есть или нет, не говорилось.
Можно было не петросянить и сразу сказать, ведь я упомянул что не стебаюсь. Какая-то травма у вас
Аноним 01/03/24 Птн 01:29:57 3068899 135
>>3068883
А я просто подумал что ты тупой, а ты просто с чувством юмора оказывается
Аноним 01/03/24 Птн 16:27:02 3069435 136
Вкатывался в Java Spring, но вчера вышло видео Shifu о том, что Java - прошлый век и что уже не вкатиться.
Это так?

Правда что изучение Golang перспективнее в разы?
Аноним 01/03/24 Птн 16:45:07 3069453 137
image.png 45Кб, 1223x767
1223x767
>>3069435
Походу инфоцыгание прощупали новую почву. Даешь 1000 соискателей на одном место как питоне.
Аноним 01/03/24 Птн 16:48:00 3069454 138
>>3069453
Ну так это правда?
Или и дальше Spring учить?
Аноним 01/03/24 Птн 17:02:19 3069467 139
>>3069454
Java - это 99% энтерпрайз, финтех +легаси какое-то
Проблем найти работу нет. Го - 99% это маркетплейсы, по крайней мере в российских реалиях. Проблем найти работу нет.
Аноним 01/03/24 Птн 17:07:24 3069470 140
>>3069467
А где джуну проще найти работу на удаленке?
Аноним 01/03/24 Птн 18:48:13 3069572 141
>>3069470
Учи голенг. Самый вкатунский язык. Вакансий для джунов и стажёров огромное количество.
Аноним 01/03/24 Птн 19:26:37 3069610 142
>>3069572
>Вакансий для джунов и стажёров огромное количество
Скок там, примерно 0?
Аноним 01/03/24 Птн 19:32:33 3069616 143
>>3069610
Ты настройки наверное неправильно выставил. Сейчас нулевых вкатунов на гошку хайрят и со старта 100к. А в треде всё врут про опыты и тд.
Аноним 01/03/24 Птн 20:31:14 3069688 144
Аноним 01/03/24 Птн 21:06:22 3069742 145
Аноним 01/03/24 Птн 21:15:14 3069751 146
Аноним 01/03/24 Птн 21:23:18 3069760 147
>>3069688
Никакой. На голенге пока не изобрели нормального фреймворка. В каждой компании свой велосипед.
Аноним 01/03/24 Птн 22:37:38 3069870 148
>>3069688
стандартную либу и sqlx
можешь gin глянуть
Аноним 01/03/24 Птн 23:01:46 3069898 149
>>3069435
Ты можешь просто посмотреть сколько вакансий на джаву и на го
Аноним 02/03/24 Суб 10:45:13 3070259 150
Наверное все-таки довкачусь в Java Spring.
Устал я прыгать с языка на язык.
Аноним 02/03/24 Суб 10:58:17 3070277 151
>>3070259
Чеееел. Давай в голанг. Ну он для вкатунов же.
Аноним 02/03/24 Суб 13:35:29 3070477 152
>>3070277
Ты шутишь - или на полном серьезе говоришь?
Аноним 02/03/24 Суб 15:22:38 3070526 153
Аноним 02/03/24 Суб 15:29:26 3070534 154
>>3070477
Конечно серьёзно. Вот например наша компания ищет стажёров нулевых, лишь бы пришли учиться. Образование, возраст, опыт вообще похуй. Спасибо что пришёл, вот твои гроши. Так все бьются лбом в джаву, питон, сишорп, когда вот рядом дверь в голанг открыта. Компанию не скажу, ибо деанон. Боюсь, что к нам не залетите, так как сотни других кабанов пылесосят всех, кто желает учить голанг. Хаир очень ласковый, берут любого с улицы. Нужно просто захотеть.
Аноним 02/03/24 Суб 15:31:12 3070536 155
>>3070534
Shifu, если это правда то я куплю твой курс.
НО ТОЛЬКО ЕСЛИ ЭТО ПРАВДА!
Аноним 02/03/24 Суб 15:33:36 3070538 156
>>3070536
Бля буду, всё правда. А джаву со спрингом забрасывай. Это легаси и там только с опытом берут.
Аноним 02/03/24 Суб 15:40:16 3070544 157
Имагине ебальники мудаков, которые потом будут участвовать в голодных играх за единственную вакуху гоуленк джуна.
Аноним 02/03/24 Суб 15:41:47 3070550 158
помогите с идеями для проектов в портфолио, чтоб и реализовать было не пиздецки сложно и чтоб выглядело интересно (необычно). хочу на стажёра податься, уточнил на тот случай, если вдруг ещё какие-то полезные советы будут, оное очень приветствуется.
Аноним 02/03/24 Суб 15:47:09 3070558 159
>>3070550
В условиях высокой конкуренции много резюме. Твои проекты не посмотрит никто. Чтобы выделиться, надо накрутить опыт. Лучше работай в этом направлении. Подделай резюме, ходи по собеседованиям, запоминай вопросы.
Аноним 02/03/24 Суб 15:52:47 3070567 160
>>3070558
интересно, конечно, но разве такой обман не обнаруживается после вопроса "а что вы делали на предыдущем месте работы?" + пары дополнительных уточнений. Да и для себя наверняка полезно проекты реализовывать
Аноним 02/03/24 Суб 15:55:54 3070573 161
>>3070567
Поэтому гуляешь по собеседованиям и учишься убедительно обманывать. Посмотри как описывают опыт другие кандидаты, заучи наизусть, как будто сам всё делал.
Аноним 02/03/24 Суб 17:26:51 3070697 162
>>3070558
>Твои проекты не посмотрит никто.
Я всегда смотрю проекты если они есть в резюме. Просто не надо показывать хело ворлд по мануалу, а если это что-то более сложное то это только плюс. Можно посмотреть как человек пишет код, пишет ли тесты, какие технологии использует.
Аноним 02/03/24 Суб 17:35:06 3070706 163
>>3070697
на что особенно внимательно смотришь в резюме? Я сам на стажировку планирую устроиться, посоветуй, пожалуйста, как позитивно выделиться на фоне других неопытных претендентов?
Аноним 03/03/24 Вск 12:27:21 3071498 164
>>3070706
Во первых надо сказать, что последний раз я отбирал резюме 4 года назад. Сейчас я в большой корпрорации и у нас процесс так устроен что разбором резюме занимаются херки. А я только собеседую буду собеседовать когда найм откроют и пишу фидбек.

А когда я сам смотрел резюме, я смотрел на опыт и на технологии, насколько это релевантно тому что мы используем. И в целом пытался понять уровень кандидата. На тот момент мы 90% кандидатов звали на первое интервью по телефону. 30 минут поговорить про опыт, пара технических вопросов и пара вопросов от кандидата. Дальше если человек понравился звали на очное, если были сомнения могли дать тестовое, или отказ. Но мы джунов без опыта почти не брали.
Аноним 04/03/24 Пнд 18:47:45 3073386 165
image.png 100Кб, 891x232
891x232
image.png 7Кб, 1160x32
1160x32
>>3055290
вот кстати вопрос, есть ли у контекста дроч на регистры поля структуры? чтоб они начинались не с маленькой а с заглавной буквы? а то пытался прописать прямо из модела поля структуры, в моделе пишет что они не юзаются когда как при выполнения запроса и вставки данных тот выдает ошибку что нихуя тебе не будет, хотя импорта и сами поля все в точь точь прописаны, обозначил поля заглавными все стал видеть
Аноним 05/03/24 Втр 00:07:54 3073636 166
>>3073386
>вот кстати вопрос, есть ли у контекста дроч на регистры поля структуры? чтоб они начинались не с маленькой а с заглавной буквы?
Ты бы доки по языку почитал бы. Идентификатор написанный с заглавной буквы виден за пределами пакета. Подчеркивания не используются, Идентификатор принято называть camel case.
Аноним 05/03/24 Втр 00:09:10 3073639 167
>>3073386
чувак ты серьезно, это в любом курсе по гошке есть, что есть поля с большой буквы, то они доступны для экспорта в другие пакеты, если нет, то нет
Аноним 05/03/24 Втр 00:37:56 3073655 168
>>3073636
После написании ответа прочитал на счет этого, и оказалось да, это общепринятая вещь которое есть не только в Go. Я Go в частности по структурам на gobyexample гобайпример учил https://gobyexample.com/structs
Аноним 06/03/24 Срд 15:35:40 3075370 169
>>3073386
Может ты хотя бы Go Tour прочитаешь? Да-да, тот самый на который ты подумал что он для дебилов, но ты же слишком крут для него и пропустил
Аноним 06/03/24 Срд 16:12:00 3075433 170
>>3075370
Как то глупо полагать что человек при изучении чего-либо пользуется только одним ресурсом, вроде бы я не просто так указал что конкретно при знакомстве со структурами в Go, я использовал определенный материал который до этого уже указывал, и в примерах которых поля пишутся не с заглавной буквы.
Аноним 07/03/24 Чтв 17:31:30 3076554 171
>>3075433
Go tour это базовая база, проходится за вечер под пару банок пива или за пару дней если с кодом из примеров играешься и ты бы уже не задавал подобных вопросов
Аноним 07/03/24 Чтв 18:09:43 3076589 172
>>3076554
По правде сказать, вопрос не был направлен на разрешения какой либо проблемы, просто хотелось узнать мнение людей, а так за рекомендацию спасибо.
Аноним 07/03/24 Чтв 18:33:56 3076612 173
>>3069453
да он там в конце загибается
Аноним 08/03/24 Птн 01:27:17 3076863 174
Аноним 08/03/24 Птн 01:53:29 3076873 175
>>3076863
Копиум жабадебила.
Это относительное количество, а не абсолютное.
Аноним 08/03/24 Птн 11:51:49 3077283 176
image.png 122Кб, 1247x601
1247x601
>>3076873
Как бы то не было, у джавы число вопросов уже на этапе заполненности и падает общее число у всех, а го за десят лет еще с оси х не вылез.

Если у жабы есть капитал кода и спрос, то го это язык микросервис, который заменяет за неделю, жопоскриптерами.
Аноним 08/03/24 Птн 12:55:00 3077404 177
>>3077283
Интересно зачем жабодебилы постоянно приходят позориться в готред? Тут одна половина это свичеры с джавы, а друга с пхп, тут люди прекрасно понимают как обстоят дела в индустрии
Аноним 08/03/24 Птн 13:07:14 3077423 178
Стикер 0Кб, 512x512
512x512
>>3077404
>Тут одна половина это свичеры с джавы, а друга с пхп, тут люди прекрасно понимают как обстоят дела в индустрии
>Поработал в 1,5 говноконторах
>@
>Стал экспертом по индустрии
Аноним 08/03/24 Птн 14:18:07 3077563 179
>>3077423

ну справедливости ради я так могу сказать +- про все финтех проекты где работал, в банках все оче друг на друга похоже
Аноним 08/03/24 Птн 17:33:49 3077782 180
IMG202403081427[...].jpg 181Кб, 1280x958
1280x958
>>3077563
Ну так весь финтех переманивает друг у друга сотрудников, потому что нам нужен сотрудник с опытом работы в финансовой сфере. Эти сотрудники приносят с собой подходы которые они выучили в другом финтехе. Вот и получается, что благодаря перекрестному опылению, схожие подходы воспроизводятся в разных компаниях.
Аноним 08/03/24 Птн 18:21:26 3077818 181
Почему у голанга такой уебанский синтаксис? Читать невозможно. Какой долбоеб пизданул, что это легкий язык, что аж другие подхватили и схавали?
Аноним 08/03/24 Птн 18:42:31 3077844 182
>>3077818
Это лёгкий для чтения язык. Никакой магии, никакой скрытой логики - всё на виду.
Аноним 08/03/24 Птн 18:52:16 3077850 183
Аноним 08/03/24 Птн 19:10:45 3077871 184
>>3077818
Потому что его надо называть голованг
Аноним 08/03/24 Птн 19:20:31 3077877 185
>>3077818
Например? Что именно не нравится
Аноним 08/03/24 Птн 19:36:33 3077886 186
>>3077877
Мне не нравится как надо добавлять что-то в список или в мапы. Выглядит жутко и неприятно.

Надо постоянно обрабатывать ошибки. Занимает, наверное, половину всего времени.

Ощущение, что нужно постоянно велосипедить.

В целом кажется, что это какой то недопитон, который создавали прокуренные шизы. Ну тут уже субъективщина. Вообще не пынямаю, за что его любят.
Аноним 08/03/24 Птн 20:41:28 3077912 187
>>3077886
> Мне не нравится как надо добавлять что-то в список или в мапы
Экхм, а тут-то что не нравится?
> Надо постоянно обрабатывать ошибки. Занимает, наверное, половину всего времени.
Это сишечка с горутинами. Не проверил errno - у тебя креш.
> что это какой то недопитон, который создавали прокуренные шизы
Даже близко нет.
> Вообще не пынямаю, за что его любят.
За простоту, быстрый вкат, относительно простую конкурентность и кроссплатформенность.
Аноним 08/03/24 Птн 23:28:04 3078118 188
>>3077818
Потому что его создавал чел из Белл лабз, это натурально заря эры ПК. При этом он мог себе позволить не оглядываться на комьюнити и гнуть свою линию спасибо деньгам гугла. Для человека который начинал кодить в машинных кодах, даже for range это неибаццо какой синтаксический сахар.
Аноним 09/03/24 Суб 01:14:35 3078179 189
5dbd5105-30b2-4[...].jpg 62Кб, 679x513
679x513
>>3077844
Ага, легкий для чтения.
Аноним 10/03/24 Вск 13:35:46 3079994 190
какой то тухлый тред
Аноним 10/03/24 Вск 15:07:38 3080171 191
>>3067496
Просто напомню, что "лсп" (а точнее на порядок его более мощная версия) появился в лиспах ещё в 80-ых годах. Ну так, к слову о тулингах.
Аноним 10/03/24 Вск 15:11:31 3080182 192
>>3077912
>За простоту
Но го - сложный язык с кучей корнеркейсов, с уже огромным слоем легаси, да даже парсер у него теперь уже неоднозначный, прям как у дидов в си.
Аноним 10/03/24 Вск 15:13:34 3080195 193
>>3077844
>Никакой магии, никакой скрытой логики
func init() {...}
Аноним 10/03/24 Вск 23:21:34 3080964 194
В общем. Пацаны.
Скачал я этот ваш го часа 3 назад, решил, что было бы неплохо освоить. Потому что пробовал раст и показался говниной какой-то
Ниче не читал, решил, что лучшим способом будет - сделать типа эхо-сервер.

В общем. Накидал https://pastebin.com/mfeq3y39

Собственно. У меня теперь вопросы.
1. Как тута код по разным файлам раскидать?
2. Как тута подождать завершения этих вот рутин? Создалось впечатление, будто это какое-то fire and forget, но это же не всегда ОК
3. Как классы делать? Я чет вообще не смог нагуглить классов. Ну, если классов нет, то можно ли как-то структуры расширять?
4. Какие тут есть аналоги блокирующих-конкурентных коллекций? Или надо мутексы и вот это вот все делать? Просто я хотел типа таблицу соединений намутить и не понял как это сделать при условии, что там же получается куча потоков и все такое? Или вся эта фигня с рутинами в одном потоке крутится?
5. Как DI организовать? Ну, типа, чтобы я сконфигурировал и нужному сервису нужные зависимости прокинулись.
6. Какие тута есть ОРМ?
7. Что есть для работы с json-файликами? Я просто хотел конфиг туда вынести, и чет тоже не нашел, а парсить руками было лень.
Аноним 11/03/24 Пнд 01:16:37 3081053 195
>>3080964
В таких простых задачах горутины вообще не нужны, достаточно одного потока. Будет работать быстрее. И процессы убиваются через стандартное Ctrl+C оно же SIGINT, не надо крутить цикл как у тебя в main.
Горутины используются, когда ты делаешь запрос на другой сервер с таймаутом и долго ждешь ответ. Можно нафоркать условные 1000 процессов, можно сделать через горутины, производительность будет одинаковая.
Аноним 11/03/24 Пнд 02:05:59 3081066 196
>>3069616
И где куча вкатунских вакансий?

Поискал в ДС, всё что нашёл

https://hh.ru/vacancy/88590475?query=golang+Junior&hhtmFrom=vacancy_search_list - нужен опыт работы 7 месяцев

https://hh.ru/vacancy/93069676?query=golang+Junior&hhtmFrom=vacancy_search_list - нужен опыт работы 2 года

https://hh.ru/vacancy/90024969?query=golang+Junior&hhtmFrom=vacancy_search_list - нужен опыт работы с СУБД

https://hh.ru/vacancy/92506075?query=golang+Junior&hhtmFrom=vacancy_search_list - нужен опыт работы с СУБД

https://hh.ru/vacancy/94218872?query=golang+Junior&hhtmFrom=vacancy_search_list - единственная вкатунская вакансия, где ищут раба забесплатно.
Аноним 11/03/24 Пнд 10:34:03 3081212 197
>>3077844
>Всё на виду
a1 := make([]int, 0)
a2 := []int{}
a3 := *new([]int)
Это три разных способа создать пустой слайс. Зачем?
Аноним 11/03/24 Пнд 13:18:44 3081413 198
>>3081066
найс последняя вакансия, 3 месяца рабства без выходных, без оплаты, еще и не факт, что в штат возьмут)
Аноним 11/03/24 Пнд 13:28:47 3081439 199
>>3081212
Первые два варианта есть в любом языке, аллокация заданного размера и аллокация с инициализацией.
Третье просто универсальный синтаксис создания любых типов. Удивительно, что он и для слайсов работает, да?
Аноним 11/03/24 Пнд 14:12:33 3081510 200
Аноним 11/03/24 Пнд 16:42:25 3081821 201
есть ребята, которые джуны+, готовящиеся к собесам? ищу таких, чтоб вместе готовиться, пишите тг
Аноним 12/03/24 Втр 13:08:40 3082821 202
Подскажите, а для чего нужен defer, если кусок кода, который он выполняет, можно тупо в конец функции кинуть?
Аноним 12/03/24 Втр 14:00:44 3082884 203
>>3082821
Чтобы не ставить в конец кода.
Улучшает читаемость. Проще переносить блоки кода туда-сюда.
Аноним 12/03/24 Втр 14:01:21 3082887 204
>>3082821
очевидно чтобы не забыть его туда кинуть
Аноним 12/03/24 Втр 14:34:31 3082961 205
>>3082821
У тебя может быть сильно больше одной точек выхода из функции if err != nil.
Панику можно обработать только в defer.
Аноним 12/03/24 Втр 20:38:21 3083660 206
>>3080964
>Как DI организовать
Создаешь структуру App, где будет храниться указатель на логер, на пул соединений с бд, конфиг итд. И уже в NewApp функции создаешь все свои сервисы, после чего прокидываешь в них все нужные зависимости.
Как на жабе в спринге у тебя все автоматом подтягивается из spring-context хранилища объектов, так тут ты все ручками распихиваешь куда нужно.

>>3080964
>Какие тута есть ОРМ
Есть Gorm. Но вообще орм не принято использовать. Да и в целом писать бизнес-логику с походами в базу на го это плохой выбор. Лучше котлин или жабу со спрингом для бизнес задач брать.

>>3080964
>Что есть для работы с json-файликами
json.Marshal/Unmarshal
Аноним 12/03/24 Втр 20:39:24 3083663 207
>>3079994
Да как-то хайп на гоуленг сошел я вижу.
Год-полтора назад нанимали на гошечку гораздо активнее.
Видимо наелись.
Аноним 12/03/24 Втр 21:24:09 3083756 208
>>3083663
Наигрались и хватит, пора на джаву возвращаться.
>>3083660
>Да и в целом писать бизнес-логику с походами в базу на го это плохой выбор. Лучше котлин или жабу со спрингом для бизнес задач брать.
Что это за язык такой, что самый частый пример приложений не подходит ему?
Аноним 12/03/24 Втр 21:33:40 3083779 209
>>3083756
Ну ты же на С или С++ не будешь писать энтерпрайзные круды, верно?

А вот какой-нибудь видеостриминг, файлопомойку, свою реализацию S3 сервера, кубернетис операторы да и даже движки субд неплохо на го пишутся.
Аноним 12/03/24 Втр 22:33:49 3083880 210
image.png 28Кб, 471x389
471x389
Почему авторы языка не запретили компиляцию во втором случае?
Понятно, что просто 0 возвращать было бы очень странно - хуй поймешь, сумели ли привести интерфейс к инту или нет, поэтому бросают панику. Но разве не проще ли было сделать, как в остальном языке, чтобы попытка приведения значения интерфейса к нужному типу обязательно возвращала value и err. Тогда бы второй вариант попросту бы не скопилировался и не было бы нужды бросать панику.

https://go.dev/play/p/FSD16nC8v1A
Аноним 12/03/24 Втр 22:56:15 3083909 211
>>3083660
>Да и в целом писать бизнес-логику с походами в базу на го это плохой выбор. Лучше котлин или жабу со спрингом для бизнес задач брать.
Святая толстота
Аноним 12/03/24 Втр 23:05:22 3083917 212
>>3083660
>Создаешь структуру App, где будет храниться указатель на логер, на пул соединений с бд, конфиг итд. И уже в NewApp функции создаешь все свои сервисы, после чего прокидываешь в них все нужные зависимости.
>Как на жабе в спринге у тебя все автоматом подтягивается из spring-context хранилища объектов, так тут ты все ручками распихиваешь куда нужно.
Надо еще как-то разресолвить граф зависимостей и порядок инициализации, а так говно вопрос конечно.
Аноним 12/03/24 Втр 23:11:15 3083929 213
>>3083880
Потому что не стали делать настолько глубокий анализ, сказано что interface{} значит что может быть что угодно.
Аноним 12/03/24 Втр 23:26:25 3083956 214
>>3083929
>сказано что interface{} значит что может быть что угодно
Это понятно. У меня вопрос, почему сама операция приведения интерфейса к типу не возвращает два значения всегда. Чтобы нельзя было написать i := x.(int). Чтобы можно было написать только i, err := x.(int). Ну или i, _ := x.(int). Так куда более логично с точки зрения консистентности самого языка.
Аноним 13/03/24 Срд 01:33:05 3084052 215
Аноним 13/03/24 Срд 03:52:15 3084086 216
>>3083880
а что если бы func x() (T, err) можно было вызывать как y := x() и при err != nil автоматом бросалась паника?
Аноним 13/03/24 Срд 06:33:33 3084138 217
>>3084086
Ты только что эксепшены. Это не говей. Говей - это придумать велосипед на квадратных колесах и всем рассказывать, что так даже лучше, когда ты едешь и сидушка постоянно бьет по заднице.
Аноним 13/03/24 Срд 11:32:36 3084379 218
>>3083956
>У меня вопрос, почему сама операция приведения интерфейса к типу не возвращает два значения всегда.
Это достаточно распространенный в го подход - один метод возвращает значение и err, второй метод обычно называют mustXxx()только значение и панику в случае ошибки. Это нужно чтобы упростить инициализацию переменных в случаях когда ты уверен, что должны быть правильные данные. Например ты хочешь создать тип Regexp, регулярка не меняется тебе не нужно каждый раз писать обработку ошибки, пусть паникует если регулярка с ошибкой.

>>3084086
>а что если бы func x() (T, err) можно было вызывать как y := x() и при err != nil автоматом бросалась паника?
Это провоцирует говнокод. Ошибки бывают разные, есть ошибки которые вызваны входными данными и там теоретически можно их избежать, а есть ошибки вызванные средой исполнения, например ошибки чтения по сети. И если разрешить их не обрабатывать то начнут писать говнокод который работает до первой сетевой или дисковой ошибки.
Аноним 13/03/24 Срд 15:17:41 3084627 219
Сап гоферач. Вопрос о двух стульях.
Первый:
Дёргаем в main функцию из соседнего пакета, которая возвращает указатель на бд/логгер/говно и передаём этот указатель по всему калопроводу через аргументы до самых отдалённых унитазов.
Второй:
Дёргаем в main функцию из соседнего пакета, которая ничего не возвращает, а записывает указатель в импортируемую переменную того пакета. Появляется возможность сделать db := baza.Bazyuha только в самом далёком толчке без протаскиваний по калопроводам.

Почему в большинстве гайдов используют первый стул?
Аноним 13/03/24 Срд 16:44:49 3084757 220
>>3084627
>Почему в большинстве гайдов используют первый стул?
Потому что так больше писать надо, а это говей.

Так ты явно указываешь откуда берётся переменная, проще для понимания. Нет никаких волшебных знаний, что надо дёрнуть функцию А, а потом прочитать переменную Б, что пиздец как не очевидно.
Аноним 13/03/24 Срд 17:20:35 3084789 221
>>3084627
SOLID, так тесты проще писать
Аноним 13/03/24 Срд 20:40:16 3085049 222
>>3084757
>>3084789
Понимаю. А как тогда в фреймворках сторонний логгер протянуть? Возьмём для примера Gin. В настройках можно задать, чтобы фреймворк плевал свои внутренние логи (типа инфо гет 200) в встраиваемый логгер. При этом сами обработчики находятся в другом пакете и вообще не знают "а чо там у х фреймворка с логами". Аргументы в них не пробрасываются ибо route.GET("/get", handlers.Pook)
Аноним 13/03/24 Срд 20:46:59 3085063 223
>>3085049
>как тогда в фреймворках сторонний логгер протянуть
Если интерфейса под это нет, то есть места куда можно просунуть логгер, то очевидно что никак.
Аноним 13/03/24 Срд 20:52:01 3085073 224
>>3085063
В этом случае допустимо сделать в самом начале каждого обработчика log := logger.Log и нарушить SOLID или за такое ебут?
Аноним 13/03/24 Срд 23:38:38 3085321 225
>>3085049
Если ты пишешь фреймворк и хочешь пользователям управлять логгированием, то я бы сделал так: создал интерфейс LogWriter, который бы умел писать конкретные сообщения:
> LogMessage(level Level, msg string, params ...any)
и метод SetLogWriter(). По дефолту инициализировал бы его системным LogWriter.

И методы
> myloger.Info(msg, ...params)
которые бы уже вызывали тот LogWriter который есть. Ну и всё это упаковать в отдельный от фреймворка пакет, с документацией.
15/03/24 Птн 08:21:58 3086705 226
>>3052664 (OP)
Хочу перекатиться в го из джавы есть в РФ работодатели которые берут опытных жавистов на проекты с го?

Язык +/- освоил, но нужна осмысленная практика с ревью, задачами и лучшими практиками которые нарабатываются только в работе.
Аноним 15/03/24 Птн 15:25:53 3087092 227
Аноним 16/03/24 Суб 01:49:14 3087761 228
>>3086705
Откисай, скуф.
Жабадебилы не нужны
Аноним 16/03/24 Суб 01:58:17 3087762 229
>>3087092
Я бы залетел, но не учил гуланг пока. Насколько реально залететь куда-нибудь с гулангом без глубокого знания фреймворков всяких, во что компилируется язык и т.д. ?
Аноним 16/03/24 Суб 04:05:35 3087782 230
>>3087761
Двачаю, сначала пусть отучатся писать в enterprise edition стиле и потом уже приходят
Аноним 16/03/24 Суб 04:30:30 3087786 231
>>3062272
Поясните про пхп в го. Постоянно как речь не заходит про го, то сразу всплывает пыха и наоборот в пыхо сообществах го разраб это как новый этап в развитии пхп погромиста.

Также листал вакансии на хх и постоянно встречаю требования го+пыха

В чем связь? Почему эти два языка идут рука об руку? Почему не го+питон или го+джава или ещё чтото
16/03/24 Суб 10:16:56 3087846 232
>>3087761
? За что тебя сегодня мама наругала?
Аноним 16/03/24 Суб 13:55:02 3088139 233
>>3086705
>опытных жавистов
А кому вы нужны? Тем более ты скуфидон. Сколько не работал на гоулэнг проектах, везде команда из упругих зумеров до 25-27 лет. У нас даже лид на текущем проекте 25-летний парень. Это бигтех, если что. Да и твой "опыт" здесь не нужен. Мы в прошлом году уволили целый отдел таких скуфидонов, которые писали на гоулэнге как на жабе, лол
Аноним 16/03/24 Суб 14:03:00 3088145 234
>>3084789
>SOLID, так тесты проще писать
Вообще нет, лол. Просто пишешь рест контроллер, из него дергаешь сервисный класс, затем из сервиса дергаешь репозиторий и все. Это нормально, когда сервисный класс имеет 15-20 зависимостей и ты туда дописываешь нужную логику и добавляешь фитчи
16/03/24 Суб 15:16:25 3088216 235
>>3088139
А как на го надо писать?
Аноним 16/03/24 Суб 15:57:41 3088236 236
>>3088216
Код на го пишут стоя, сынок
Аноним 16/03/24 Суб 16:49:10 3088278 237
Аноним 16/03/24 Суб 17:07:20 3088292 238
Аноним 16/03/24 Суб 18:09:52 3088345 239
>>3087786
Авито многие свои сервисы с php, питона и джавы переписала на го. Но изначально основная кодовая база у них была на пхп.
Они постоянно проводили конференции, где рассказывали как круто было отказаться от пхп в пользу гоуленга.
Видимо остальные пхп конторы тоже начали их опыт повторять.
Аноним 16/03/24 Суб 18:14:57 3088349 240
Аноним 16/03/24 Суб 22:02:35 3088807 241
>>3086705
А чего не так с Graal Native Image? Это же по сути и есть Go
Аноним 17/03/24 Вск 01:02:56 3088878 242
>>3088807
>А чего не так с Graal Native Image
В том, что его нигде не используют. Это мертвый проект, увы.
Причина - нет нормальной поддержки рефлексии.
А любая крупная либа в jvm мире это тонны рефлексии. Как там, spring native поживает? Go как раз умеет компилироваться в бинарь и при этом в нем есть поддержка рефлексии полноценная.
Аноним 17/03/24 Вск 03:01:34 3088923 243
>>3088145
Ты уверен что на тот пост ответил?
Аноним 17/03/24 Вск 11:51:53 3089079 244
>>3081212
Ты не понимаешь, это го-вей!
Аноним 18/03/24 Пнд 01:45:33 3090183 245
Скуфу сишнику-байтоёбу сложно перекатиться с C на Go?
Надоело сидеть за сотыгу в своём НИИ с дедами-пердунами.
Аноним 18/03/24 Пнд 14:49:06 3090780 246
>>3052664 (OP)
Коллеги посоветуйте для кафки норм либу
Аноним 18/03/24 Пнд 17:01:49 3091004 247
>>3090183
Технически в го ничего сложного нет, выучить не проблема. Разве что "сопутствующие" технологии - докер, кубер, рест, грпц и т.д. надо получить.

Тут скорее вопрос в том, сможешь ли ты себя продать. Убедить хрюшу позвать тебя на собеседование. Вот тут надо будет вылизать резюме и научиться красиво пиздеть про свой опыт. Сначала у тебя, почти наверняка, не получится, но со временем вполне реально.
Аноним 18/03/24 Пнд 23:24:03 3091590 248
>>3090780
segmentio/kafka-go юзаю сейчас на проекте, гораздо лучше sarama, прямо на порядок более человечески сделано
Аноним 19/03/24 Втр 01:06:26 3091662 249
Вечер в хату, вообщем такой вопрос, пишу мобилки на айос уже 10 лет, ситуация складывается так что скоро айос в рф нахуй никому не нужен будет, и еще заметил что ща вакансий на мобилки не так много вне рф, из этого вытекает вопрос, может вкатиться в го?
Меня не смущает то что я потеряю в зп первые пару лет, и придется нихуево попотеть, но на выходе если через пару лет стать мидлом то будут одни плюсы. Так как кнопки красить уже не могу, подташнивает.
Как вообще смотрят на таких вкатунов? Как на полный долбаебов? Я просто представляю если ко мне придет на собес бекендер с 10 лет опыта на позицию джуна. Мой первый вопрос будет ты че ебанутый?
Аноним 19/03/24 Втр 02:43:48 3091696 250
>>3091662
Челы с 10 летним опытом минимум на миддла+ должны идти в го, иначе они хуйней занимались все эти годы.
Аноним 19/03/24 Втр 05:15:04 3091710 251
>>3090183
Лучше пробовать, чем ничего не делать
Аноним 19/03/24 Втр 08:00:56 3091770 252
>>3086705
>Хочу перекатиться в го из джавы есть в РФ работодатели которые берут опытных жавистов на проекты с го?
Перекатился на го пока работал жаба-макакой в Сбере. Без потери в зп. Синтаксис и билд систему к тому моменту уже знал, но опыта работы с продакшн реди либами было мало.

Несколько нюансов, отличие от жабы:
Билд система непривычная, много нюансов особенно после грейдла/мавена, нужно изучить детально с самого нуля, причем это важнее даже чем знание самого языка.
Рантайм позволяет в быстрый TDD без пиздоебства: файл сохранил -> тесты пробежали за миллисекунды/секунды в худшем случае.
ГоЛанд объективно хуже идеи в поддержке языка, я пересел сначала на ВСКод, потом на вим (lunarvim + gopls).
Горутины ебейшая вешь, но очень легко выстрелить в ногу особенно в вебдеве.
Лично я дрочу на контейнеры FROM scratch. Получи контейнер с полностью функциональным рест апи размером в ~30мб.
Пока регулярно приходится изобретать велосипеды. В отличии от жабы, пока нет библиотек буквально на все случаи жизни.

P.s: Сейчас в Озоне, никто за джавизм не унижает и не ловит, ревью прохожу нормально. Большинство коллег перекатилось в Го.

>>3088139
Такой хуйни пока не встречал. Адекваты везде приветствуются. Мифический стиль написания на го вырабатывается за месяц, если кроме жабы умеешь в другие языки. Может за 2 от силы, если закостенелый даун.
Аноним 19/03/24 Втр 09:02:35 3091792 253
>>3090183
Только ты за эту сотыгу с дедами-пердунами, наверное, нихуя не делаешь толком, а тут за две уже ебать плотно будут во все щели.
Аноним 19/03/24 Втр 12:13:13 3091972 254
Здравствуй, двачик. Созрел вопрос интимного характера, на который не смогли ответить ни форумы, ни чатгпт. Тащемта, есть два стула два аккаунта с приватными репами. Один на гитлабе, другой на гитхабе. И жил не тужил, всё работало нормально, пока в один день не отъебнуло ключ. Точнее, ключи в порядке, потому что я могу пулить, пушить и всякое другое делать через командную строку с гитом, однако, при попытке юзать go get для импорта своих модулей в проект он высирает мне ошибку, мол, репы не существует или нет доступа. Я смотрю на это с ебалом лягушки, потому что, опять же, git pull/push/clone работают, значит ssh ключ в порядке. netrc файл тоже выглядит нормально, но ебучий go get не работает... Про GOPRIVATE находил, менял, но нихуя не помогало. Однако, если что-то знаешь, напиши и про него, может быть я там обосрался. Анон, выручай, уже сил моих нет, раз я прошу помощи здесь...
Аноним 19/03/24 Втр 15:12:02 3092232 255
>>3091972
продебаж go get с флагами -v или -x, хз какой из них.
а так в целом GONOPROXY, GONOSUMDB, GOPRIVATE, .netrc, .ssh/config это вроде все места где ты можешь проебаться
Аноним 19/03/24 Втр 15:13:24 3092236 256
>>3092232
а ну и через
GIT_SSH_COMMAND="ssh -vvv" go get ...
можешь посмотреть
Аноним 19/03/24 Втр 18:09:18 3092574 257
>>3091770
Перекатился с Явы на Go внутри Сбера, или в Сбере писал на Java, а в Озон пошёл собеседоваться на Go?
Аноним 19/03/24 Втр 19:23:47 3092778 258
>>3092574
Зачем идти в озон, если там жуткая потогонка за копейки? Сенька литерально получает 200к и там нет премий и бонусов как в сбере
Аноним 20/03/24 Срд 06:02:28 3093214 259
>>3092574
Перекатился с Явы на Go внутри Сбера, потом через ~6 мес прошел собес в озон.
>>3092778
>Сенька литерально получает 200к и там нет премий и бонусов
Я миддл, 340к на руки, удаленка.
Аноним 20/03/24 Срд 15:30:38 3093752 260
Гайз как это сделать, вообще не понимаю и в интернете нет нифига. Чето от List[T] в котором *List[T] вообще бошка взрывается
https://go.dev/tour/generics/2
Аноним 20/03/24 Срд 16:31:16 3093822 261
>>3093752
Гугли что такое связный список linked list
Аноним 20/03/24 Срд 16:49:33 3093833 262
Аноним 20/03/24 Срд 20:31:21 3094126 263
>>3092778
Нижняя граница мидла в озоне 230к насколько я слышал от Vlad K. Сам в озон хочу через полгодика попробовать вкотиться на две сотыжки...
Аноним 21/03/24 Чтв 05:30:16 3094475 264
Ну че, ради интереса не получился вкат в андроид поучу ваш гулэнг, т.к. на другие бэкенд языки вообще не тянет.
Вопросы:
1)Если гулэнг норм живет без виртуальной машины, то нахуя vm делали для джавы и шарпа? Кто из них долбоеб по итогу?
2)Горутины под капотом работают так же, как и kotlin корутины?
А то в kotlin я могу почитать его байткод на джаве, т.к. он типа сначала в жабу компилится.
Там suspend функции просто return-ом флаг кидают, чтоб функция не блочила выполнение, а на фоне уже операция работает, которая при получении результата возвращает результат в коллбэк, который в параметр функции передается, но кодер видит лишь suspend слово вместо колбэка.
Сама корутина с асинхронными операциями представляет из себя объект, у которого invoke вызывается время от времени, а внутри invoke стейт машина, которая в зависимости от состояния выполняет последовательно операции асинхронные, обять же не блокируя выполнение, т.к. return кидает флаг просто, а результаты если что в колбэк объект кидаются и вызывают invoke снова.
Я так понял слово go - это аналог suspend fun в котлине, но при этом не надо заранее красить асинхронные функции. Получается компилятор go тупа гигачад, который каким то хуем меняет поведение одной функции в разных местах, смотря на ключевое слово?
Аноним 21/03/24 Чтв 06:31:09 3094481 265
Забейте, я думал в гуланге можно не красить асинхронные функции, а вы оказывается просто channel передаете аргументом. В Kotlin колбэки прячутся под капотом с помощью слова suspend, тем самым позволяя писать асинхронный код в синхронном стиле, без явной передачи колбэков или всяких channel-ов.
Аноним 21/03/24 Чтв 06:39:03 3094483 266
>>3094481
Прост когда увидел go someFunc() без всяких suspend и колбэков, перевозбудился по ошибке
Аноним 21/03/24 Чтв 08:09:42 3094502 267
Сколько в вашу хуйню вкатываться если у меня год опыта с тайпскриптом? Вот прям до уровня возможности проходить собесы на мидла. Всю общую бэкэндовскую хуйню знаю офк, интересует чисто время, требуемое чтобы начать писать калопроводы на ГО, имея жсовский бэкграунд
Аноним 21/03/24 Чтв 08:10:25 3094503 268
И что у вас на собесах с алгосами? Часто спрашивают?
Аноним 21/03/24 Чтв 08:27:31 3094509 269
>>3094502
Зачем? Ты хочешь поменять удобный инструмент на творчество душевнобольных чтобы что? Вместо удобных асинков для людей будет ебаное месиво из горутин и каналов, в котором ты утонешь нахуй.
Аноним 21/03/24 Чтв 08:37:01 3094511 270
Аноним 21/03/24 Чтв 08:48:14 3094520 271
>>3094475
>Горутины под капотом работают так же, как и kotlin корутины
Предполагаю, что в целом нет. Корутины это стейт машина. Горутины это в первую очередь планировщик.

>>3094481
Асинхронных функций тут нет. По сути горутину лучше воспринимать как Thread из мира джавы. И go func() означает, что функция будет запущена в новом треде. И чтобы выполнять коммуникацию между тредами используют блокирующие очереди - каналы. Просто так получить значение из функции, которая запустилась в отдельном треде, разумеется невозможно, так как считай, что у ее горутины стек другой.

Можно не использовать их, а просто через sharing memory по старинке с мьютексами выполнять общение потоков, но это считается плохим подходом.
Аноним 21/03/24 Чтв 08:53:01 3094531 272
>>3094520
>функция будет запущена в новом треде
Не просто запущена, а поставлена в очередь и запущена потом когда-нибудь, когда освободится воркер. Твой же код продолжит выполнение со следующей строки, а не будет ждать как с async. Чтобы сделать как асинк, надо ебаться с каналами, это говей. Можно было скрыть каналы под капотом, как в других языках, но это не говей, ты должен заебаться.
Аноним 21/03/24 Чтв 08:55:18 3094533 273
>>3094509
>Зачем?
На ноде практически нет вакансий, а те которые есть - мидлы+/сеньоры с 3+ годами опыта и ебанутой конкуренцией на место. Ну либо ИП Кабан Кабаныч и крипто-блокчейн параша. На ГОшке же куча вакух с годом опыта, конкуренция меньше, ЗПха больше.
Аноним 21/03/24 Чтв 09:01:05 3094537 274
>>3094533
Что тебе мешает написать 3 года опыта? Что тебе мешает вкатиться в фулстек на ангуляре? Фулстек на удаленке - это вообще работа мечты, можно ненапряжно делать сайтики разным жлобам и жить на солнечном берегу в деревушке где-то в Болгарии, а не душится в офисе авито.
Аноним 21/03/24 Чтв 09:43:23 3094565 275
>>3094537
>Что тебе мешает написать 3 года опыта?
Лучше крутить опыт на ГО, чем на Ноде. Ибо на ГО всё равно вакансий в 7-8 раз больше и конкуренция меньше. Я же не один умный такой опыт крутить буду
>фулстек
Ебал я рот фронтеда, в жизни к этом калу не прикоснусь
Аноним 21/03/24 Чтв 10:06:41 3094589 276
Не планирую крутить опыт вообще. Сейчас есть 1.5 года стажа, еще полгода посижу на текущем месте (бекенд на питухе), потом буду резюме рассылать.
Аноним 21/03/24 Чтв 20:47:01 3095213 277
>>3094531
Так потребление из канала это и есть await по сути. Напрягает только то, что каналы перекидывать надо туда-сюда.
С одной стороны избавляемся от suspend слова, или от Task await как в шарпе, с другой стороны мы теперь должны каналы кидать везде параметрами. Шило на мыло короче, хз. Интересно можно было бы скрыть каналы по типу того, как suspend функции скрывают колбэк под капотом в Kotlin
Аноним 21/03/24 Чтв 22:24:07 3095332 278
>>3095213
> с другой стороны мы теперь должны каналы кидать везде параметрами
Не должны. Например аналог await Promise.all в го выглядит так:
https://go.dev/play/p/C_5UOmjcE_c
А каналы это больше для ивентов/потоковой обработки
Аноним 22/03/24 Птн 00:45:10 3095453 279
>>3095332
Для получения результата из функции каналы использую, как я понял, так что их надо передавать, если функция не анонимная, как у тебя в примере.
Аноним 22/03/24 Птн 05:57:53 3095510 280
>>3095332
У тебя WaitGroup неявно передается в твои лямбды. Если ты сделаешь их именованными функциями, WaitGroup надо будет передавать через параметры.
Аноним 22/03/24 Птн 06:04:48 3095512 281
>>3095213
>избавляемся от suspend слова, или от Task await как в шарпе
Плохо зделоли тупо. В сишарпе await сразу бросается в глаза, ты пробегаешь по коду и видишь точки ожидания. В голанге эти ебучие стрелочки воспринимаются, как визуальный шум и мусор. Говей такой говей.
Аноним 22/03/24 Птн 09:08:13 3095571 282
>>3095512
Шарпомуха, не бузи)
Аноним 22/03/24 Птн 13:35:24 3095831 283
Полный тред наркоманов. Гоферы которые не разбираются в каналах, шарпер который не понимает что такое async/await.
Куда я попал.
Аноним 22/03/24 Птн 18:01:30 3096166 284
>>3095831
Ну так поясни за свои каналы, умник епты. По поводу await-а хз что там не понимать, ты о чем вообще?
Аноним 22/03/24 Птн 18:25:05 3096194 285
>>3095831
Чел, каналы это полное говно. -30% производительности на ровном месте. С мьютексом такой хуйни нет.
Аноним 23/03/24 Суб 00:12:21 3096616 286
>>3096166
>>3096194
Ликбез для самы маленьких и тупеньких channel это тупо блокирующая очередь, аналог BlockingQueue в Java, BlockingCollection в C#, producer(ы) пишет в очередь, consumer читает(ют). Если размер очереди ограничен, то на записи возможна блокировка. Если данных в очереди нет, то на чтении возможна блокировка. В зависимости от API можно читать и писать не блокируясь.

sync/await это вообще нихуя не про блокировки и межтредовое взаимодействие. sync/await это точки где код отдает управление пранировщику шарпорутин. В этих точках пранировщик шарпорутин получает управление и решает, что делать дальше: продолжить выполнение, или продолжить выполнение другой шарпорутины.

По поводу каналов
>>3095425 →
>Что касается каналов, то в прикладном коде они появляются, когда ты решаешь что-то распаралелить на несколько горутин. Ну так у тебя и в котлине будет тоже самое даже есть каналы https://kotlinlang.org/docs/coroutines-and-channels.html#channels помимо каналов есть и другие способы, но сути это не меняет В Java у тебя будет Structured Concurrency или старые добрые очереди.
Не в курсе что там в C#, но sync/await это точно, не про распаралеливание задач.
Аноним 23/03/24 Суб 06:10:25 3096669 287
>>3096616
Поридж, ты тупой.
Как работают каналы? На стрелочке горутина делает return и рантайм ставит ее в очередь канала. Когда в канале появятся данные, рантайм возьмет горутину и переставит в общую очередь, дальше ее подхватит воркер и продолжит выполнение.
Как работают асинки? Та точно так же, блять. В точке await метод делает return, рантайм ставит метод в очередь, когда у таски появится флаг ок, рантайм продолжит выполнение метода.
Технически и горутины и методы сделаны как конечные автоматы. И в го, и в дотнете используются очереди с блокировками. Потому что, внезапно, это многопоточность, без блокировок никак.
Аноним 23/03/24 Суб 11:39:08 3096750 288
>>3096616
Я знаю как работают каналы в голенге. Не понимаю, почему они так просаживают производительность. Условно, мне нужно асинхронно записать 10к элеменов в массив. Беру 10 потоков и начинаю писать данные с блокировкой мьютексом. Получаю среднюю производительность n. Тоже самое, но с небуферизированным каналом: n - ≈ 30%
Аноним 23/03/24 Суб 13:18:02 3096805 289
>>3096750
доказательства будут?
Аноним 23/03/24 Суб 13:36:02 3096814 290
>>3096669
>Как работают каналы? На стрелочке горутина делает return и рантайм ставит ее в очередь канала. Когда в канале появятся данные, рантайм возьмет горутину и переставит в общую очередь, дальше ее подхватит воркер и продолжит выполнение.
>Как работают асинки? Та точно так же, блять. В точке await метод делает return, рантайм ставит метод в очередь, когда у таски появится флаг ок, рантайм продолжит выполнение метода.
>Технически и горутины и методы сделаны как конечные автоматы. И в го, и в дотнете используются очереди с блокировками. Потому что, внезапно, это многопоточность, без блокировок никак.
Мало того что тупой, так еще и гонору вагон.

Каналы в Го это просто очередь https://go.dev/src/runtime/chan.go максимум, что он может сделать это запарковать тред, и всё. Никаких конечных автоматов там нет и в помине. Треды в го снимаются и прикрепляются к тредам ОС планировщиком горутин, но само выполнение горутины это обычный код без всяких стейт машин. В этом то главная фишка го и состоит - он не красит методы, в отличии от C#.
Аноним 23/03/24 Суб 13:45:00 3096820 291
>>3096750
>Я знаю как работают каналы в голенге. Не понимаю, почему они так просаживают производительность. Условно, мне нужно асинхронно записать 10к элеменов в массив. Беру 10 потоков и начинаю писать данные с блокировкой мьютексом. Получаю среднюю производительность n. Тоже самое, но с небуферизированным каналом: n - ≈ 30%
30% это не такая уж и фатальная потеря производительности, канал более сложная структура чем мьютекс и потому работает медленнее. Он под капотом мьютекс и использует https://go.dev/src/runtime/chan.go с чего бы ему быть быстрее?
Аноним 23/03/24 Суб 13:56:18 3096831 292
>>3096814
Я думал, ты тролишь, а ты действительно тупой.
Аноним 23/03/24 Суб 15:28:52 3096917 293
>>3096831
>пук-серньк
По делу есть что сказать?
Аноним 23/03/24 Суб 16:45:21 3097022 294
>>3096820
В хайлоаде очень даже чувствительно. Зачем тогда вся эта пляска с каналами? В какой ситуации они являются киллерфичей по сравнению с мьютексом?
Аноним 23/03/24 Суб 18:57:38 3097228 295
>>3097022
1. В хайлоаде важнее всего масштабируемость, а не TPS/GHz.
2. Ты взял какой говнопример и пытаешься, на основе его что-то доказать. Для разнообразия можешь взять те же 10 горутин, но синхронизировать их не через мьютекс, а через атомик increment and get для получения индекса. А потом ещё добавить оптимизацию инкремент делать не на 1 а на N. И вуаля, мьютекс говно по перформансу.
Аноним 23/03/24 Суб 20:05:15 3097345 296
>>3097022
Теперь ты знаешь, что такое говей. На любую критику обязательно прибежит шиз и будет доказывать, что так даже лучше и только выиграли. Просто почитай этого ебанутого, он неиронично предлагает писать примитивы синхронизации и полгода выгребать баги на проде которые в нормальных языках идут из коробки.
Аноним 23/03/24 Суб 21:40:59 3097476 297
Пиздец блядь. Один додит использует FIFO очередь, в качестве мьютекса. Другому додику мерещаться предложения писать свои примитивы синхронизации. Третий шиз вообще про стейт машину в Го рассказывает.

Надо было в Раст вкатываться, там тоже шизы, но они хотя бы образованные.
Аноним 23/03/24 Суб 23:48:18 3097558 298
Попросил гопоту написать контроллер который по пост методу структуру принимает,выдала это:

package main

import (
"encoding/json"
"net/http"
"log"
)

type RequestBody struct {
Field1 string json:"field1"
Field2 int json:"field2"
}

func main() {
http.HandleFunc("/example", handleExample)
log.Fatal(http.ListenAndServe(":8080", nil))
}

func handleExample(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Only POST method is allowed", http.StatusMethodNotAllowed)
return
}

var reqBody RequestBody
err := json.NewDecoder(r.Body).Decode(&reqBody)
if err != nil {
http.Error(w, "Invalid request body", http.StatusBadRequest)
return
}

// Передача данных в сервисный слой
serviceResponse := someServiceFunction(reqBody)

// Отправка ответа клиенту
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(serviceResponse)
}

func someServiceFunction(reqBody RequestBody) interface{} {
// Здесь можно реализовать логику обработки данных из запроса
// и возвращения результата
return map[string]interface{}{
"message": "Data received successfully",
}
}

Настоящие контроллеры выглядят примерно так? Нельзя пост метод где-то прописать вместо того чтобы вручную проверять?
Аноним 24/03/24 Вск 00:18:49 3097570 299
>>3097558
Ахуел? Больше 10 строк кода, формат уровня b, бредни гопоты. Тебя сжечь надо, а не помощь оказывать.
Аноним 24/03/24 Вск 06:42:42 3097647 300
Аноним 24/03/24 Вск 12:43:26 3097775 301
>>3097647
Кто-то пользуется гином? Я думал у вас тут все на стандартной библиотеке делается
Аноним 24/03/24 Вск 14:10:20 3097810 302
>>3097775
Да, открой любой урок по созданию REST API, везде будет использоваться gin
Аноним 24/03/24 Вск 15:27:37 3097881 303
download.png 7Кб, 254x199
254x199
какие профиты у го перед жабой? Стоит ли ради них наступать на говно?
Аноним 24/03/24 Вск 15:36:06 3097904 304
Аноним 24/03/24 Вск 15:42:46 3097927 305
Аноним 24/03/24 Вск 16:17:09 3097978 306
>>3097927
На каждую таску будешь писать кучу велосипедов. Иногда фреймворков.

>>3097810
Gin исключительно в гайдах и используется. Говнокодил на галере в множестве кабаньих стартапов и ни в одном не был использован какой-либо фреймворк. Только самописное говно. Только хардкор.
Аноним 24/03/24 Вск 17:37:00 3098139 307
>>3097881
Не надо ставить джава-рантайм нужной версии.
Аноним 25/03/24 Пнд 07:41:19 3098847 308
>>3097881
Более быстрая разработка по сравнению с жабой. Иногда на порядки быстрее. Ну и конечные сервисы значительнее быстрей чем на жабе. Достаточно посмотреть на сервисы вроде яндекс.маркета или недвижимости, а потом открыть авито недвижимость или озон. В целом на проектах где пишут на гоу молодая и энергичная команда до 25-27 лет. На жабе обычно старичье 30+ что-то там пердит в попытках расставить нужные аннотации спрэнг фримверка. Пока одни за неделю выкатывают новую фитчу и лутают бабулес, вторые 2 месяца настраивают хубирнейт и спрэнг фримверк, а потом три месяца дебажат нюлы.
Про скорость уже писал. Сервис на гоу стартует за +- секунду-две, пока сервис на спринг буте поднимается несколько минут и раз за разом фейлится где-нибудь в конце т.к. ты снова поставил не ту аннотацию и у тебя наебнулся контекст т.к. рефлекшен кругом, лол
Аноним 25/03/24 Пнд 11:06:52 3098922 309
>>3098847
Средней толстоты пост,есть шанс собрать много ответов
Аноним 25/03/24 Пнд 11:41:05 3098950 310
>>3098922
Норм пост, достаточно тонкий. Особенно повеселило про яндекс маркет.
Аноним 25/03/24 Пнд 11:57:14 3098970 311
>>3098950
>Особенно повеселило про яндекс маркет
>джаваскуфидон не выкупил однослойную
Чел... Объясняю.... ямаркет и недвижимость написаны на жабе + спрэнг бут - это медленные сервисы и глючные. Авито и озон написаны на гоу - это круто и быстро. Возвращайся дебажить нюлы по полгода
Аноним 25/03/24 Пнд 12:13:45 3099006 312
Стикер 0Кб, 512x512
512x512
Аноним 25/03/24 Пнд 12:56:42 3099072 313
>>3098970
Шутишь? Авито это худший продукт эвер,хуже наверное только сбермаркет
Аноним 25/03/24 Пнд 13:28:03 3099100 314
>>3099072
а что тогда насчет озон??
Аноним 25/03/24 Пнд 13:29:26 3099103 315
>>3099100
Озон заебись,без нареканий
Аноним 25/03/24 Пнд 15:22:51 3099208 316
Салют друзья,в го есть возможность компилировать и запускать гошные файлы переданные в качестве строки. Аналог рефлекшена из джавы. Грубо говоря считать из файла строку,передать ее в какой-нибудь классец и на выходе получить го объект
Аноним 25/03/24 Пнд 16:47:30 3099259 317
Можно ли в гуланге написать функцию которая обрабатывает ошибку и вызывать ее при необходимости писать ерр нил? Не дадут ли за это по жопе синьоры? Принято ли ваще так?
Аноним 25/03/24 Пнд 16:50:44 3099264 318
>>3099208
Вместо точки вопросительный знак

слоуфикс
Аноним 25/03/24 Пнд 16:58:45 3099274 319
>>3099072
Авито это распреденный монолит, где всё раздробили на наносервисы, примерно по сервису на одного бекендера, а ещё там много Легаси на пыхе
Аноним 25/03/24 Пнд 17:06:58 3099286 320
>>3099208
Рефлексия джавы не позволяет компилировать код. Рефлексия позволяет создавать объекты, читать/писать значения полей, вызывать методы. Всё тоже самое может рефлексия в Го.
Аноним 25/03/24 Пнд 17:20:49 3099300 321
>>3099286
В моем случае я создаю джавовский Callable(поток возвращающий результат) передавая ему содержимое нужного класса как одну большую строку. Не подскажешь в какую сторону смотреть в рамках голанга?
Аноним 25/03/24 Пнд 17:45:11 3099325 322
>>3099300
>>3099259
Давай более высокоуровнево. Зачем это всё? Ты хочешь eval-ить любой производный код чтобы что?
Аноним 25/03/24 Пнд 18:32:46 3099406 323
>>3099325
У меня система обрабатывает бесконечные потоки данных по разным источникам(сетевые коммутаторы). Для каждой версии прошивки и для каждого поставщика в частности пишется парсер(на джаве),далее этот парсер создается и запускается с помощью рефлексии на другом микросервисе(тоже на джаве). То есть существует много потоков уже и также относительно часто добавляются новые,также есть потребность в изменении существующих парсеров в соответствии с требованиями бизнеса. Нынешняя система полностью удовлетворяет требованиям и переписываться на го не будет (хотя кто знает что будет через пару лет),спрашиваю в целях мысленного эксперимента. Как ты понимаешь редеплоить сервис при добавлении нового потока нельзя
Аноним 25/03/24 Пнд 19:04:12 3099448 324
Аноним 25/03/24 Пнд 19:23:21 3099480 325
Аноним 25/03/24 Пнд 20:29:27 3099538 326
>>3099448
И как бы ты реализовал изменение и добавление новых обработчиков без редеплоя?
Аноним 25/03/24 Пнд 20:57:34 3099563 327
>>3099538
>И как бы ты реализовал изменение и добавление новых обработчиков без редеплоя?
https://en.wikipedia.org/wiki/Over-the-air_update
Обновление поступает в виде delta-файла, сравнивается старая прошивка и новая. Потом применяются изменения. Опционально можно отключать функционал на время обновления.
Аноним 25/03/24 Пнд 21:11:56 3099569 328
>>3099563
Сравнение прошивок не нужно,там нет обратной совместимости и в помине. Два потока одного поставщика, даже с разными версиями это два независимых потока. Тут видимо нужно прояснить пару моментов. С вышек приходят данные о событиях в сети(набор номера,сброс,перенаправление и тд)+метаинформация. Данные лежат в жатом пережатом+зашифрованном виде. Документация оборудования описывает как эти данные считать. Если важно,то события поступают в файлах с байтовым содержимым,либо с содержимом в формате asn1. На выходе данные можно представить в виде жсона,хмл или любого другого формата
Аноним 25/03/24 Пнд 23:14:36 3099642 329
>>3099538
> добавление новых обработчиков без редеплоя
Сама постановка вопроса неправильная. Рано или поздно нужно будет рестартарт сделать, не говоря уже о всяких авариях. Первое что мне пришло в голову это очередь, чтобы консьюмеры можно было создавать динамически и делать rollout restart, а так нужно больше подробностей
Аноним 26/03/24 Втр 00:42:26 3099682 330
>>3099538
>И как бы ты реализовал изменение и добавление новых обработчиков без редеплоя?
В гуланге так не делают.

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

А гуланг это статически компилируемый язык, никакой компиляции и линковки в рантайме нет. Максимум что тебе доступно это интерпретатор, сам понимаешь перформанс там далек от нативного кода.

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

и ьы не ответил >>3099480
Аноним 26/03/24 Втр 11:14:33 3099929 331
Аноним 26/03/24 Втр 11:33:46 3099957 332
>>3099642
> Сама постановка вопроса неправильная.
Постановка буквально требование бизнеса
> Рано или поздно нужно будет рестартарт сделать
С чего ты взял? У нас рестарты происходят раз в Х месяцев когда добавляются улучшения в сервис который парсеры запускает
> Не говоря уже о всяких авариях.
У нас авария,в существующей архитектуре,может быть только в рамках парсера который запускается внутри сервиса. Это не затрагивает не только сервис,который это запускает,но и другие потоки от этого тоже никак не страдают
> Первое что мне пришло в голову это очередь, чтобы консьюмеры можно было создавать динамически и делать rollout restart, а так нужно больше подробностей
Вопрос вообще не про потребителей. Если в крации:
1)Парсеры это классы(джава,го,не суть). Для простоты понимания можешь представить что на момент нашего общения существует 5 парсеров. Каждый выводит на консоль число. Первый парсер выводит 1,второй 2 и тд. Вывелось число—ты молодец и обработал одно событие.
2)Эти 5 парсеров работают и бесконечно срут в консоль своими числами.
3)К нам приходит потребитель данных и говорит что хочет чтобы по первому потоку хочет видеть в консоли число не 1 а 10.
4)Потом приходит новый заказчик и говорит что хочет чтобы мы обрабатывали новый поток(сделали парсер 6 который будет срать в консоль шестеркой)

Основные требования к системе вытекают из пунктов 3 и 4. Как ты понимаешь просто положить 5 классов-парсеров в коде нельзя тк добавление нового парсера или изменение старого потребуют остановки существующего сервиса и добавление/изменение парсера. Существующая же система принимает мету по потоку(откуда взять данные,куда положить и как обработать (класс-парсер)). И для нужного потока просто создает динамически класс из меты и все работает окай. Изменение старого тоже не проблема,стопнули поток,внесли изменения в мету и стартанули заново. Вуаля,новый класс обработчик,но сам сервис никак не изменился. Добавление нового еще проще, достаточно просто написать парсер и все. При каждый из этих движух остальные потоки не останавливаются,как работали так и работают
Аноним 26/03/24 Втр 11:36:56 3099961 333
>>3099682
> В целом, на гуланге надо реализовать отделение бизнес логики от логики парсеров. И сделать так, чтобы парсеры можно было легко и бесшовно редеплоить не задевая остальную часть.
Ну да,надо,просто анон вкинул типо он бы пересмотрел архитектуру,вот я и заинтересовался как бы он реализовал требования средствами го ибо текущая архитектура и требованиям по скорости удовлетворяет и для разработчиков очень удобна
Аноним 26/03/24 Втр 17:56:29 3100647 334
>>3096669
> без блокировок никак
Императивщики такие императивщики...
Аноним 26/03/24 Втр 22:40:26 3101113 335
>>3062417
собес и экзамен сильно отличались чтоли? и как вообще экзамен всплыл этот?
Аноним 26/03/24 Втр 23:04:58 3101158 336
ребзя, какие есть нормальные слитые курсы по гоу? хочу попроходить какой-нибудь параллельно читая донована

студент-вкатун
Аноним 28/03/24 Чтв 10:27:42 3103003 337
дженерики уже есть а когда уже добавят стектрейсы ? Еще через 10 лет?
Аноним 28/03/24 Чтв 11:13:32 3103106 338
>>3103003
Когда главный скажет, тогда и добавят. Ему из гугла лучше видно. Мы жуки-плавунцы, едим, что насыпали. Сейчас главное не бухтеть, а сплотиться и защищать гошечку от богомерзких джаверов и сишарперов.
Аноним 28/03/24 Чтв 13:16:47 3103391 339
Аноним 28/03/24 Чтв 13:17:30 3103395 340
Аноним 28/03/24 Чтв 14:32:50 3103548 341
>>3103391
>Стектрейсы есть

значит ли это, что не нужно изъебываться над каждой строчкой чтобы обработать ошибку?
Аноним 28/03/24 Чтв 14:50:14 3103561 342
>>3103548
Как это связано с наличием или отсутствием стактрейсов?
Аноним 28/03/24 Чтв 15:02:45 3103574 343
Аноним 28/03/24 Чтв 16:16:03 3103740 344
Аноним 28/03/24 Чтв 16:29:13 3103788 345
>>3052664 (OP)
Ребят, не подскажете, есть ли какой-то способ задать ограничение на количество считываемых с консоли символов?

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

Или, например, хочу записать два числа в int1 и int2 в формате "22 45", но если, например, ввожу "22 45 8", то тоже получаю ошибку. На данный момент 8 уйдет в следующий виток цикла, что мне не нужно
Аноним 28/03/24 Чтв 22:25:09 3104404 346
итак, главный вопрос треда - КАКУЮ ВЫБРАТЬ ТЕМУ ДЛЯ ДИПЛОМА НА ГОУ?
Аноним 28/03/24 Чтв 22:42:27 3104423 347
>>3103740
>а что такое? В компиляторе как в 70х бюджет 6 букв на имя функции?
Лимита нет, но авто предпочитает короткие имена. Потому что сам из 70х, и вообще привык в vim работать. А потом всякие додики спрашивают зачем вам IDE? Именно за этим, чтобы писать длинные и понятные имена функций.
Аноним 29/03/24 Птн 00:31:55 3104501 348
>>3104404
Для дипломной работы, быдло.
Аноним 29/03/24 Птн 12:09:43 3104896 349
>>3104501
Для выпускной квалификационной работы,деревенщина
Аноним 29/03/24 Птн 19:13:16 3105598 350
>>3103788
> Ребят, не подскажете, есть ли какой-то способ задать ограничение на количество считываемых с консоли символов?
io.LimitReader
>Например, я хочу записать в string три слова разделенных пробелами, но если записываю, например, четыре, то получаю ошибку
считываешь в буфер максимальным размером N, сплитишь и валидируешь
>Или, например, хочу записать два числа в int1 и int2 в формате "22 45", но если, например, ввожу "22 45 8", то тоже получаю ошибку. На данный момент 8 уйдет в следующий виток цикла, что мне не нужно
в чем проблема проверить, что ты на 3-й итерации лупа и вернуть ошибку? или вернуть ошибку после парсинга всего инпута?
Аноним 29/03/24 Птн 19:31:50 3105645 351
Сап
На днях закончил освоение теории ГО, встал вопрос пет-проектов, хочется уже что-то более осязаемое покрутить. Подскажите, пожалуйста, студентоте без опыта, что берется для пет-проектов и как\зачем\почему
29/03/24 Птн 19:53:24 3105693 352
>>3105645
>Подскажите, пожалуйста, студентоте без опыта, что берется для пет-проектов и как\зачем\почему
Не надо делать пет-проекты для других. Делай для себя. Иначе это будет имитация полезной деятельности. Это та же самая показуха, как и когда мэр города начинает красить траву во время приезда президента, срочно ремонтировать дорогу, сажать цветочки и т.д. Он тоже имитирует полезную деятельность. Смотрите какой я важный! Как я много работаю! Тоже самое, показуха в армии, показуха перед выборами и так далее. И в итоге мы имеем то что имеем.
Аноним 29/03/24 Птн 20:32:30 3105791 353
>>3105693
Проблема в том, что я не до конца понимаю что такое пет-проект. Точнее я понимаю, что это примерно, но я не понимаю как их придумывать. Я примерно понимаю, что калькулятор может быть пет-проектом, но как будто в рамках ГО делать калькулятор такое себе. Хочется чего-то прикладного что ли
29/03/24 Птн 20:59:51 3105857 354
>>3105791
Так возьми я не знаю, свяжись с каким-то благотворительным фондом. Спасение кошек/собак, лечение деток больных пиздецомой, какие-нибудь слепые. И предложи им свою помощь. Так хоть какая-то польза будет. Щас ты силы тратишь в пустоту. Или лучше вообще ничего не делай. Мир и твой будущий работодатель переживёт отсутствие ещё одного 16431-го калькулятора. Когда к тебе придёт крутая идея, вдохновение, такое что прям глаза загорятся, тогда и запилишь свой пет-проект. А если идей нет, не надо пытаться их искусственно создать. Не можешь срать - не мучай жопу.
Аноним 29/03/24 Птн 21:07:50 3105869 355
>>3105857
Так проблема в том что я не понимаю что можно сделать в принципе. Как можно ждать озарения, если непонятно что я жду. Нет же смысла условную нейронку бахать на ГО, надо что-то более из области го. Вот челик выше в треде писал эхо сервер.
Если говорить про работодателя, то ему понятно, что не нужен мой калькулятор будет.
Вопрос не в том чтобы сделать очень нужную полезную мне вещь, а попробовать покрутить все что я выучил на более менее практической задаче
Аноним 29/03/24 Птн 21:20:54 3105885 356
>>3105791
У нее проблемыНу как проблемы...физически отклонений нет, она полностью здоровый человек. Не найдено ни одной явной причины.
29/03/24 Птн 21:34:58 3105894 357
>>3105869
Ну охуеть теперь. А как же ты учишь то, сам не зная что? Этим надо было озаботиться до того, как приступать к обучению. Пиздец, это тяжелый случай конечно. Открой тогда гитхаб https://github.com/avelino/awesome-go изучай что другие люди создали до тебя. Не надо переизобретать никаких велосипедов, просто изучи существующие проекты и в следующий раз так не делай. Нахуя лезть в то, если ты сам не знаешь куда лезешь.
Аноним 31/03/24 Вск 12:35:45 3107602 358
Кто-нибудь может что такое микросервисы?
Это типо отдельное приложение/сервер которая как кубик лего вставляется в подходящий проект?
Можно ли на микросервисах зарабатывать? Например, написать что-нибудь и продавать его или в аренду сдавать (сервер поднять)?
Аноним 31/03/24 Вск 13:34:38 3107664 359
>>3107602
Микросервисы - это когда ты берешь монолит и превращаешь в распределенный монолит. Теперь тебе надо в 10 раз больше людей, чтобы поддерживать твою систему. По этой причине микросервисы обожают на галерах, заказчик больше платит.
Как ты хочешь, сделать нельзя. Микросервисы уникальные для каждого проекта.
Аноним 31/03/24 Вск 14:14:31 3107695 360
>>3107664
Ну так это проще поддерживать чем монолит по логике?
типо вот вася написал микросервис сам, знает все входы и выходы.
Аноним 31/03/24 Вск 14:30:15 3107706 361
>>3107695
Намного сложнее.
Монолит можно просто открыть на компе, расставить брейкпоинты и посмотреть, как все работает. В микросервисах у тебя один сервис вызывает другой, тот третий, пятый, десятый, все их на компе не развернешь. В итоге получается ситуация, когда каждый сервис вроде работает, а все вместе не очень.
В монолите транзакциями управляет одна бд. В микросервисах у каждого сервиса своя бд. Сделать атомарные транзакции в таких условиях - это боль и страдания. Особенно, если сервисы пишут джуники.
На ютубе есть выступления на конференции хайлоад от авито, как они делали микросервисы, посмотри.
Аноним 31/03/24 Вск 20:13:37 3107969 362
>>3107706
ну а чо их тогда используют?
Рыночек порешал?
Аноним 31/03/24 Вск 20:51:52 3108009 363
>>3107706
Расставить брейкпоинты и посмотреть что делается в монолите можно, только если у тебя монолит сам по себе самодостаточный и от других сервисов практически не зависит.

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

>>3107969
Проще раскидывать задачи на людей. Проще катать релизы. Если сервис, написанный славиком сычевым, внезапно падает в тестинге, то не нужно пересобирать весь релиз с нуля и катить - нужно просто дождаться, чтобы славик внес фикс и выкатил этот фикс в тестинг. Для каждого сервиса свой отдельный ci/cd должен быть. Вот в этом и преимущество. Если работал хоть раз с монолитами, то должен был сталкиваться с проблемой, что релизы становится сложно и долго катать. По сути это и решают микросервисы.
Аноним 31/03/24 Вск 21:18:02 3108053 364
>>3107969
Таки да, порешал. С одной стороны - амазон и микрософт с миллионными бюджетами на рекламу. Проплаченые блогеры рассказывают, как легко и просто и очень недорого поднять микросервисы на aws или azure, любая макака справится. С другой стороны сотни галер топят за микросервисы, ведь чем больше команда, тем больше заказчик платит за разработку. К хайпу подключаются пиздоболы с ютуба и рассказывают одну и ту же методичку про масштабируемость. Про еблю с транзакциями и цену кластера кафки не рассказывают, контент должен быть позитивным. Джуники читаю блогеров, смотрят пиздоболов и думают, что микросервисы - это топчик, а монолиты - кринж для дедов. Такие дела.
Аноним 31/03/24 Вск 21:22:31 3108063 365
Парни, есть тут кто от 400к лутает? Чем вы на работе занимаетесь? Интересно сравнить уровень задач.
Аноним 01/04/24 Пнд 00:32:00 3108202 366
>>3108063
А чем ты занимаешься на работе 399к??
Аноним 01/04/24 Пнд 01:07:01 3108208 367
сегодня траур

опять не добавили эксепшены...
Аноним 01/04/24 Пнд 02:32:29 3108228 368
>>3107602
>Кто-нибудь может что такое микросервисы?
Микросервисы решают задачу менеджмента. Если у тебя в компании работают 100 программистов, проект быстро разрастётся до миллионов строк кода. Его придётся целую вечность тестировать, целую вечность компилировать и целую вечность деплоить. Вместо этого ты даёт этим 5 программистам вот этот сервис, тем 5 программистам тот сервис... Они могут независимо друг от друга работать, им не нужно общее совещание устраивать. Они могут договорится а-ля "мой сервис отправляет такие-то события".

>Это типо отдельное приложение/сервер которая как кубик лего вставляется в подходящий проект?
Да! Типа как кубик лего.

>Можно ли на микросервисах зарабатывать?
Нууу теоретически можно. Люди продают же API. Грубо говоря, тот же tinypng продаёт же компрессию за десять баксов/10,000 сжатых картинок.

>>3107695
>Ну так это проще поддерживать чем монолит по логике?
Ага удачи тебе устроится в компанию где сотня программистов и 10 миллионов строк кода. Расскажешь как это проще поддерживать.
Аноним 01/04/24 Пнд 04:19:19 3108263 369
>>3108228
В исходниках той же винды миллионы строк. Тем не менее, им как-то удавалось все писать еще до начала шизы с микросервисами. Никто не выкатывал в прод по 10 раз в день. Потом все обезумели, начали раскладывать базу на 20 серверов и вызывать методы через tcp.
Аноним 01/04/24 Пнд 05:52:39 3108275 370
>>3108263
Виинда модульная.
Лучше с ядром Линукса сраввни.
Аноним 01/04/24 Пнд 15:28:49 3108710 371
>>3108009
>Расставить брейкпоинты и посмотреть что делается в монолите можно, только если у тебя монолит сам по себе самодостаточный и от других сервисов практически не зависит.
>
>У нас на проекте монолит, но у него с сотню зависимостей от других сервисов, которые поддерживаются другими командами. Поэтому просто запустить тесты и подебажить получается далеко не всегда. Ну или писать огромное количество моков, заглушек, что начинает быть похожим на Монолиты, где точно так же хуй поймешь, заработает оно все вместе на тестинге или на проде или нет и приходится полагаться исключительно на описанные контракты между монолитом и сторонними сервисами.
Во первых, тебе почти никогда не надо будет тестировать функционал который затрагивает все внешние зависимости. Наиболее типичный случай, это когда тебе нужны 2-3 внешних зависимости. Тут можно или на моки полагаться, если функционал внешней системы простой - например ты туда отправляешь данные и все. Или переключить на тестовое окружение, если там более сложное взаимодействие.

Во вторых, чтобы все нормально протестировать - надо иметь qual среду где, уже поднять все реальные сервисы без моков ну кроме внешних систем у которых нет тестовых сред. И там гонять функциональные тесты.
Аноним 01/04/24 Пнд 18:42:24 3108991 372
го тур.jpg 82Кб, 1057x670
1057x670
Нахуя они вот эту вот русофобию затевают?
Аноним 01/04/24 Пнд 19:41:54 3109100 373
Аноним 01/04/24 Пнд 20:32:11 3109139 374
>>3108991
Переведи и сделай ПР
Аноним 01/04/24 Пнд 22:01:54 3109213 375
Аноним 01/04/24 Пнд 22:28:32 3109229 376
Значица решил я поучить ГО, знаю что шустрый язык, можно сервисы наебашить для моего монолита.
Любая хуйня в моей 2летней практике фиксилась либо оптимизацией запроса в БД, либо увелечением оперативки на хосте.
И тут мне Яндекс Практикум в бесплатном своем курсе предлагает байтоебить. Задачу то я решил, но я не понимаю, типа вы все тут байтоебите или что? Или эта задачка была специально для челов, которые с низкоуровневых языков решили вкатиться, что бы видели как подобное байтоебство реализовано в Го`шечке?
Аноним 02/04/24 Втр 00:06:23 3109329 377
>>3109229
В яндексе все байтоебят, и себе растят таких же. Странно с двухлетнем опытом не быть в курсе о таких базовых вещах
Аноним 02/04/24 Втр 00:25:20 3109336 378
>>3109229
Скорее просто чтобы ты посмотрел в стандартную библиотеку и попользовался unsafe и профилировщиком.
Аноним 02/04/24 Втр 00:25:36 3109337 379
>>3109329
Ну судя по их слитому коду они не так жестко байтоебят.
Но вообще вопрос про другое был, вы парни, тоже байтоебите? или так же как и я - крудошлепите в основном?
Аноним 02/04/24 Втр 18:50:52 3110143 380
Аноним 03/04/24 Срд 20:37:54 3111031 381
>>3052664 (OP)
Объясните по хардкору, почему столько людей вкатываются в го? Все такие фанаты микросервисов? Что, блять, интересного, может быть в пилении микросервисов?
Аноним 03/04/24 Срд 20:41:59 3111037 382
>>3109337
Раньше крудошлепил, сейчас байтоеблю (Ява). Но очевидно всему надо меру знать и байтоебить только там где это оправдано.
Аноним 03/04/24 Срд 20:44:18 3111038 383
>>3111031
Это бывшие дотнетчики. Дотнет сильно обмяк за последние годы, а работа та же самая, даже с дебильными if err != nil.
Аноним 03/04/24 Срд 20:46:01 3111042 384
>>3109329
Не понимаю как можно байтоебить и двигать микросервисы, буквально одно другому противоречит. Выглядит будто ребята на всех стульях хайпа одновременно хотят усидеть.
Аноним 03/04/24 Срд 21:06:59 3111064 385
>>3111038
Мы с жабы тоже к вам вкатываемся, заебал этот bloat ооп помойки.
Аноним 03/04/24 Срд 21:27:12 3111092 386
>>3111064
Почему бы просто не писать на ООП? Вы серьезно просрете опыт и инфраструктуру ради очередного хайпа?
Аноним 03/04/24 Срд 23:31:14 3111174 387
>>3111064
Я наоборот пытаюсь в джаву перепрыгнуть
Аноним 04/04/24 Чтв 00:07:15 3111195 388
Аноним 04/04/24 Чтв 00:09:00 3111196 389
>>3111195
А ты не очень умный, да?
Аноним 04/04/24 Чтв 00:24:53 3111204 390
Аноним 04/04/24 Чтв 01:33:49 3111240 391
го сосет джаве? Или налборот?
Аноним 04/04/24 Чтв 02:25:45 3111269 392
>>3111092
Не знаю как в джаве, но в дотнете фактические микросервисы строятся вокруг кучи говна из жоп индусов под названием Entity Framework. Буквально в каждом проекте воняет этой смесью кари и дриста. Нельзя просто взять данные из бд и вернуть джейсончик, надо нахуячить слои абстракции ради абстракции с конфигами ради конфигов. Ну и в целом дотнет считается дешевой хуйней для бедных, где криворукие мартышки из мумбая что-то там педалят, криво косо.
Аноним 04/04/24 Чтв 02:51:58 3111286 393
Аноним 04/04/24 Чтв 02:57:47 3111290 394
>>3111269
Это аналог Hibernate, да в джаве такое есть. Я про то, что посади тех же индусов на го, и они напилят тебе AbstractFactoryProxyDecorator сколько угодно.
Говнокодить можно на любом языке, от этого сам язык плохим не становится и он от этого не спасёт.
Аноним 04/04/24 Чтв 07:14:33 3111328 395
>>3111269
Забавно, я вот часто слышал мнение, что EF единственная годная Орм среди всех языков.
Аноним 04/04/24 Чтв 07:50:59 3111332 396
>>3111328
Это говорит об уровне долбоебов, которые так и не осилили left join. Задача орм отмапить сырые данные из базы на поля твоих структур, а не делать вид, что бд у нас как бы лежит вот тут рядом в памяти и как-то магически работает.
Аноним 04/04/24 Чтв 08:44:46 3111341 397
>>3111269
>Entity Framework. Буквально в каждом проекте воняет этой смесью кари и дриста
>>3111290
>Это аналог Hibernate, да в джаве такое есть

ОРМ для каждого рантайма рожают и для го родят, не переживайте
Аноним 04/04/24 Чтв 08:48:40 3111344 398
Screenshot 2024[...].png 88Кб, 1530x558
1530x558
Как вы пишете юнит тесты для методов, которые обращаются к внешним ресурсам?

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

Всё правильно делаю? Есть методы получше?
Аноним 04/04/24 Чтв 08:56:30 3111347 399
>>3111344
делай мок, нахуя тебе полный тест сервер
Аноним 04/04/24 Чтв 09:13:04 3111352 400
>>3111341
Для го уже есть орм, только вот стандартом она почему-то не стала
Аноним 04/04/24 Чтв 09:14:43 3111355 401
>>3111344

Этот прав >>3111347 оберни методы сервера в интерфейс, и мокни
Аноним 04/04/24 Чтв 09:17:02 3111358 402
>>3111347
>>3111355
Но разве не для этого httptest.Server придумали? И если нет, то для чего тогда?
Аноним 04/04/24 Чтв 09:19:47 3111361 403
>>3111358
Сервер имеет смысл поднимать не для юнитов а для e2e тестов когда ты полностью верифицируешь работу функциональности от получения вызова до ответа.
Аноним 04/04/24 Чтв 09:32:08 3111375 404
Screenshot 2024[...].png 237Кб, 1390x1416
1390x1416
16493949610450.png 620Кб, 880x744
880x744
>>3111355
Чето я все равно не понимаю. Вот если у нас гига-стандартный геттер типа пикрил, что тут можно мокать? http.Client - это же стракт, а не интерфейс.
Аноним 04/04/24 Чтв 09:41:00 3111380 405
>>3111375
Ты текстиль метод Access так? Тебе нужно сделать новую структуру которая будет в себе содержать http.Server. Можешь поле оставить без названия, так будет даже удобнее. Для этой структуры ты пишешь интерфейс с методами копирующими оригинальные, потом ты пишешь в своей структуре реализацию этих копированных методов (просто прокидываешь данные дальше в реальный метод. Будет что-то типо func (s *MyServer) Do(req http.Request, ...) error { return s.Do(req...) }). И используешь в своих тестируемых методах только интерфейс, а реализацию подключаешь на этапе инициализации RemoteEndpoint. В нормальном коде ты подсовываешь нормальный сервер, а в тестах мок. Надеюсь доходчиво объяснил
Аноним 04/04/24 Чтв 10:12:08 3111400 406
Сап гофач. Как детектить тупики в коде? Например, проебал в какой-то асинхронной ветке wg.Done, а в логах куча другой инфы. Хочу как-то логать места, где код затупил на более чем 30 секунд.
Аноним 04/04/24 Чтв 10:31:36 3111412 407
>>3111380
О каком нормальном сервере идет речь, если речь идет о внешнем ресурсе? Нахуя обычному геттеру получать какой-то сервер?
Аноним 04/04/24 Чтв 10:42:05 3111428 408
>>3111400
Так у тебя же дедлок и паника будет при проебанном wg.Done, не?
Аноним 04/04/24 Чтв 11:20:14 3111475 409
>>3111412
Бля ну наебланил чутка, http.Client имелся ввиду, суть же понятна
Аноним 04/04/24 Чтв 12:22:19 3111570 410
Аноним 04/04/24 Чтв 14:18:08 3111682 411
>>3111570
Благодарю. Мне именно на отладке надо.
Аноним 05/04/24 Птн 09:00:06 3112466 412
Screenshot from[...].png 23Кб, 778x195
778x195
>>3052664 (OP)
Как это так. Переменная по умолчанию 0. Не приводит ли в дальнейшем к ошибкам, которые не заметили?
Аноним 05/04/24 Птн 09:25:21 3112488 413
>>3112466
??
А ты замечай, долбоебина
Аноним 05/04/24 Птн 11:08:04 3112567 414
>>3112466
Создай *int тогда у тебя будет по умолчанию nil
Аноним 06/04/24 Суб 02:30:20 3113405 415
>>3111400
так defer жи есть чтоб не проебывать
Аноним 06/04/24 Суб 02:30:57 3113406 416
>>3111400
так defer жи есть чтоб не проебывать
Аноним 06/04/24 Суб 03:37:13 3113410 417
>>3112466
ну получше наверное чем в каком-нибудь си где если объявил и не проинициализировал то там может быть вообще что угодно
Аноним 06/04/24 Суб 07:59:49 3113441 418
>>3113405
Чел, не одной вейтгруппой мир полон. Есть ещё хитровыебанные каналы, потенциально бесконечные залупы типа пока вар пук < вар срёньк, блокировки соединения и прочая хуета. В этом цирке с хуями нормальный стул порой по 3 дня ищешь.
Аноним 06/04/24 Суб 14:46:18 3113837 419
>>3113441
тут согласен. но я хз, правда, ты там свой nginx что ли решил написать, что так заморочился...
зачастую можно асинхронное говно сделать синхронным, и не сильно потерять при этом в скорости выполнения.
таймауты ещё хорошо помогают, если у тебя куча непонятного асинхронного говна
Аноним 06/04/24 Суб 16:03:16 3113947 420
>>3113837
Много запросов к разным БД, где нет зависимостей результатов друг от друга. Тут как бы синхронизация чувствительно бьёт по времени выполнения.
Аноним 06/04/24 Суб 18:11:52 3114084 421
image.png 13Кб, 325x199
325x199
image.png 14Кб, 465x93
465x93
image.png 12Кб, 296x132
296x132
image.png 90Кб, 496x562
496x562
Насколько популярен Го вне России?

Ищу работу в UK на линкедыне. Но вакансий как будто вообще нет от слова совсем. Бувально 50-70 штук на всю Англию + Шотланлию + Северную Ирландию.
Очевидно, что на Go пишет Гугл, но туда найма сейчас как будто нет совсем. Слышал про Go в Амазоне, но и там найма нет. Но при этом в Гугл и Амазон могут взять с любым бекграундом, если секции пройдешь.
Я скорее про обычные продуктовые конторки и галеры, где сидят педалят индусы и пакистанцы, а из местных только лишь менеджеры. Вот там как будто Go вообще нет нигде. Сплошная Java, Python и Js.

Верно ли, что в забугорных конторах Go плохо распространен?
Аноним 06/04/24 Суб 18:33:16 3114118 422
Надо по go искать, он в вакансиях редко называется golang. Но, конечно, будет ещё куча мусора из-за того, что язык назвали как существующее и часто используемое слово. Как будто в первый раз.
С C, C++ и C# похожая хуйня, поиск отрезает специальные символы и смешивает всё в кучу.
Аноним 06/04/24 Суб 18:47:07 3114149 423
image.png 73Кб, 496x562
496x562
>>3114118
Да как бы не сильно больше в итоге.

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

Тут либо самому пытаться устроиться куда-нибудь на Кипр, в ОАЭ в русскоязычную контору или стартап, если хочется эмигрировать.
Аноним 06/04/24 Суб 18:56:14 3114170 424
биг жаб.png 471Кб, 750x727
750x727
>>3114084

а ты чем смотрел когда вкатывался

или тоже купился на песни амбассадоров гугла
Аноним 06/04/24 Суб 19:12:18 3114198 425
>>3114170
Я на питухоне сейчас педалю легаси за лоупрайс. Ищу технологии или места/проекты куда можно свитчнуться.

Как популярная технология в РФ - это Go. Весь крупняк пишет на нем. Там, где раньше был пхп или жаба/питух, сейчас пытаются писать на Го. Но при этом на западе кроме гугла на Го почти никто не пишет, насколько я вижу. Но, справедливости ради, местный айти рынок в Европе это то еще унылое говно.
Аноним 06/04/24 Суб 19:27:59 3114230 426
>>3114198

> Как популярная технология в РФ - это Go

Лол кек чебурек. В то время, как на жападе поутих хайп вокруг goвна, в рф он находится еще на стадии ретроградного самоподдува. воистину отставание в 5 лет
Аноним 06/04/24 Суб 23:52:59 3114639 427
>>3114230
> Лол кек чебурек
Ценное мнение, может перестанешь в тред срать?
Аноним 06/04/24 Суб 23:56:27 3114646 428
>>3114639

Помимо разрывов, возражений нет, ясно.
Аноним 07/04/24 Вск 10:38:57 3115018 429
>>3114646
Срыгни обратно в /b/
Аноним 07/04/24 Вск 13:48:29 3115191 430
>>3115018

смари чо мне чвк гпт написала))0

Падение интереса к языку программирования Go на Западе может быть вызвано несколькими факторами:


1. Насыщение рынка: С развитием других языков программирования, таких как Python, JavaScript, Java и других, разработчики могут выбирать альтернативы в зависимости от конкретных задач и потребностей.


2. Тренды и моды: В мире программирования часто сменяются тренды, и то, что когда-то было популярно, может уступить место новым технологиям и языкам.


3. Недостаток новых функций и инноваций: Если язык программирования Go не предлагает инноваций или новых функций, его популярность может постепенно уменьшаться.


4. Конкуренция: Существует множество языков программирования, и конкуренция за разработчиков и проекты очень высока. Это может также повлиять на интерес к Go.


Несмотря на уменьшение хайпа в некоторых странах, Go остается все еще популярным языком программирования во многих областях, таких как облачные вычисления, микросервисная архитектура и распределенные системы.
Аноним 07/04/24 Вск 15:30:22 3115346 431
>>3115191
Я вообще не понимаю чем фишка Го.
Вот например джаву хаят за то что она невыразительная, но потом видишь что Го - это такая же Джава без ООП, но это уже "особый подход", когда вместо добавления фишек в язык ты просто пишешь больше кода и это круто и ново.
Называют новым Си, но почему-то со сборщиком мусора, так же как в джаве, но если в джаве это тормознуто, то в Го - это новый Си, круто, быстро, молодежно.
Что компилируется в бинарник - круто, так джава это тоже может делать, но если в джаве Грааль особо никому не нужен по заявлениям, то тут это прямо крутая ключевая фишка.
Как так?
Аноним 07/04/24 Вск 17:11:31 3115478 432
>>3115346
Даже с учетом GC, в Go сильно меньше оверхеда, чем в жабе.

Грааль в джаве никому не нужен потому что там нет нормальной поддержки рефлексии. В Го при этом рефлексия есть, как и полноценная компиляция в бинарь. Ну то есть компиляция в бинарник по-прежнему нужна, только в джаве ее полноценно не смогли осилить.
Аноним 07/04/24 Вск 18:28:11 3115568 433
>>3115478
>Даже с учетом GC, в Go сильно меньше оверхеда, чем в жабе.
Почему?

>Грааль в джаве никому не нужен потому что там нет нормальной поддержки рефлексии.
Большинство проектов так-то обходится без рефлексии. И часто вы используете рефлексию в ГО на проде? Это и есть причина все переписывать?
Аноним 07/04/24 Вск 18:35:27 3115580 434
>>3115568

Зачем все делать умно, быстро и чисто, когда можно все делать. тупо, быстро, грязно и через рефлексии?
Аноним 07/04/24 Вск 18:45:37 3115596 435
>>3115568
>Почему
Большой оверхед на хранение объектов в памяти. Условный List<Integer> весит в разы больше, чем обычный []int в Go с тем же количеством элементов. Так просто исторически сложилось в JVM. В Go оверхед конечно же тоже есть, но заметно меньше.

>>3115568
>Большинство проектов так-то обходится без рефлексии. И часто вы используете рефлексию в ГО на проде?
Руками рефлексию применяем редко. Но вот в библиотеках ее достаточно. У нас как минимум либа для валидации на рефлексии целиком работает.

В жабе при этом почти любая крупная либа работает на рефлексии в том или ином виде. Тот же спринг - это рефлексия во всех щелях. Они уже который год пытаются Spring Native выкатить в prod-ready состояние?

>>3115568
>Это и есть причина все переписывать
Там, где сейчас работаю, вся кодовая база уже на Go написана. В прошлом месте работы новые сервисы писали на Go, старье на джаве либо переписывали на Go, если там совсем уж кал мамонта был, либо делали свитч на Котлин в некоторых сервисах.
Аноним 07/04/24 Вск 18:57:24 3115606 436
>>3115596
>Условный List<Integer> весит в разы больше, чем обычный []int в Go
Там а почему ты сравниваешь List<Integer> с []int, а не int[] c []int?
Аноним 07/04/24 Вск 19:08:52 3115612 437
>>3115606
Потому что говорил именно про объекты, а не про примитивы.
Примитивы в JVM кажется практически нигде не используют.
Аноним 07/04/24 Вск 19:19:38 3115630 438
>>3115612
Но ведь логичнее сравнивать яблоки с яблоками? А не динамические вектора, которых по-моему в ГО вообще нет, с массивами.
Аноним 07/04/24 Вск 19:28:06 3115640 439
>>3115630

> динамические вектора, которых по-моему в ГО вообще нет

зато есть капабилити кек пук
Аноним 07/04/24 Вск 20:05:46 3115691 440
>>3115630
Динамические вектора это и есть слайсы в Go.

Но речь вообще шла об оверхеде на хранение один объект в JVM, вне зависимости, массив/слайс это или нет.
Аноним 07/04/24 Вск 23:18:34 3115894 441
>>3115191
> ))0
Дело не в том что мне по какой-то причине припекло (я джавист вообще), дело в манере письма уебищной, хотелось бы меньше видеть таких
Аноним 08/04/24 Пнд 08:44:09 3116078 442
>>3115894

> мне припекло

что делать знаеш

> Дело не в том

та мы поняли

> я джавист вообще

а нам зачем это знать

> хотелось бы меньше видеть таких

мало ли что тебе там хотелось сидя на аиб, ты бы еще в /d/ петицию создал
Аноним 08/04/24 Пнд 12:24:59 3116257 443
>>3115612
>Потому что говорил именно про объекты, а не про примитивы.
int[] это вполне себе объект.
Аноним 08/04/24 Пнд 21:13:21 3116580 444
>>3115691
>Динамические вектора это и есть слайсы в Go.
Собственно не в том же смысле что и в других языках. Насколько я понял это в том смысле что их длина неизвестна на компиляции. Но расти они не могут, нужно вручную аллоцировать больший массив и копировать туда старый через append.
То есть это аналог джавовского Arrays.copyOf(originalArray, newSize). То есть вот это удобно?

int[] arr = {1,2,3,4,5};
int[] arr2 = Arrays.copyOf(arr, 10);
arr2[9] = 10;


Мне кажется если бы джава так заставляла писать - визг бы стоял раз в 5 круче чем сейчас. А в Го это свежо, компактно и экономично?

>>3115478
>Грааль в джаве никому не нужен потому что там нет нормальной поддержки рефлексии.
https://www.graalvm.org/latest/reference-manual/native-image/dynamic-features/Reflection/
А что именно ненормальная поддержка?
>Native Image fully supports reflection in ahead-of-time compiled images.
Аноним 08/04/24 Пнд 22:24:26 3116664 445
>>3116580
>нужно вручную аллоцировать больший массив и копировать туда старый через append
Не нужно.
append сам аллоцирует память большего размера и сам копирует. В любом случае добавление нового элемента в конец у тебя будет выглядеть как arr = append(arr, element).
Аноним 08/04/24 Пнд 22:51:28 3116675 446
>>3116664
>Не нужно.
>append сам аллоцирует память большего размера и сам копирует. В любом случае добавление нового элемента в конец у тебя будет выглядеть как arr = append(arr, element).
Жопой читаешь? Он же именно про это и говорит:
>аналог джавовского Arrays.copyOf(originalArray, newSize)


В целом я с ним согласен. В нормальном языке у тебя достаточно средств, чтобы можно было реализовать коллекции на самом языке. Все коллекции в джаве, шарпе, С++ реализованы на самом язке, никакой магии рантайма. Зато пайтоны и жопаскрипты коллекции реализуют нативным кодом.
Аноним 09/04/24 Втр 00:36:21 3116718 447
>>3116675
Джавовский copyOf всегда копирует.
В то же время append в гохе умеет делать in-place добавление в конец массива, если есть свободное место. К тому же заметь, что copyOf в джаве именно копирует с расширением количества элементов, а не просто добавляет в конец массива элемент.

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

Ну, если принять тот факт, что сами массивы реализованы рантаймом той же JVM, то да, коллекции вроде ArrayList и LinkedList поверх них строить довольно просто в стандартной библиотеке.
Аноним 09/04/24 Втр 07:31:13 3116796 448
>>3116675
>Жопой читаешь? Он же именно про это и говорит:
в слайсах есть такое понятие как capacity, и если в твоем слайсе еще достаточно памяти для аппенда нового элемента, он не будет аллоцировать память. Вы бы хоть базу почитали прежде чем толкать свое мнение.
Аноним 09/04/24 Втр 07:38:59 3116799 449
>>3116796
Не поверишь, динамические массивы в любом языке ведут себя точно так же.
Аноним 09/04/24 Втр 09:07:17 3116875 450
>>3116799
Откатись в старт спора, суть в том что динамический массив в го имеет существенно меньше оверхеда чем в джаве
Аноним 09/04/24 Втр 10:04:46 3116988 451
>>3116799
Не везде, в ЖС динамические массивы это хэш-таблицы под капотом
Аноним 09/04/24 Втр 10:16:25 3117008 452
>>3116875
Нет, если имплементировать как в го - то и оверхед будет как в го. Просто это неудобно, поэтому так никто и не делает. То есть весь выигрыш в оверхэде не в языке, а в желании программиста писать более низкоуровневый код
Аноним 09/04/24 Втр 15:03:59 3117298 453
>>3116718
>Джавовский copyOf всегда копирует.
>В то же время append в гохе умеет делать in-place добавление в конец массива, если есть свободное место. К тому же заметь, что copyOf в джаве именно копирует с расширением количества элементов, а не просто добавляет в конец массива элемент.
Ну такое на джаве точно реализовать нельзя.

>>3116718
>Ну, если принять тот факт, что сами массивы реализованы рантаймом той же JVM, то да, коллекции вроде ArrayList и LinkedList поверх них строить довольно просто в стандартной библиотеке.
Массив и переменная это, два самых базовых примитива. Они в любом языке поддерживаются рантаймом/компилятором.
Аноним 09/04/24 Втр 15:07:45 3117301 454
>>3116796
>в слайсах есть такое понятие как capacity, и если в твоем слайсе еще достаточно памяти для аппенда нового элемента, он не будет аллоцировать память. Вы бы хоть базу почитали прежде чем толкать свое мнение.
Ох блядь, вот нерешаемая задача то! Создать класс в котором будет массив и текущая заполненность. Это прям уникальная особенность го, нигде такого больше нету.
Аноним 09/04/24 Втр 16:43:54 3117383 455
>>3116796
чувак загугли про ArrayList, ахуеешь, что не только в Го такое есть
ты бы хоть на ютубе что-нибудь про структуры данных посмотрел, прежде чем в тред высираться
Аноним 09/04/24 Втр 17:07:24 3117388 456
>>3117383
Ты первый начал высираться по поводу того, что слайсы это не аналог ArrayList из джавы, хотя на самом деле это так и есть.
Аноним 09/04/24 Втр 17:26:07 3117403 457
>>3116988
>в ЖС
Ну это даже по сути не язык
Аноним 09/04/24 Втр 22:21:57 3117627 458
>>3117388
Слайсы не аналог ArrayList в плане синтаксиса.

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

Слайс это примитив встроенный в язык, которые имеет специальные конструкции языка которые могут работать только с ним. И если повторить функционал слайса, еще можно, то вот синтаксис работы с ним повторить нельзя. И использовать свой продукт слайсосодержащий, вместо слайс натуральный без консервантов и синтаксического сахара - нельзя.
Аноним 09/04/24 Втр 22:30:08 3117629 459
>>3114084
>Верно ли, что в забугорных конторах Go плохо распространен?
Менее распространен чем Java, но в целом вакансии есть и даже побольше платят чем в среднем на Java. Но работу дольше искать и много криптостартапов.
Аноним 09/04/24 Втр 23:53:47 3117656 460
>>3117629

что плохого в криптостартапаххх
Аноним 10/04/24 Срд 12:14:25 3117900 461
Как писать десктопные приложения на го?
Аноним 10/04/24 Срд 12:20:07 3117903 462
>>3117656
Не всем нравится делать абстрактные фичи и постоянно держать пару мест куда можно свались когда стартап посыпется.
Аноним 10/04/24 Срд 12:29:18 3117910 463
>>3117656
То что они живут за счёт денег инвесторов, деньги кончатся все пойдут на мороз. Ну и частенько бонусы норовят токенами выплачивать.
Аноним 10/04/24 Срд 17:02:12 3118216 464
>>3117656
Потому что они живут год-полтора-два максимум.
Аноним 10/04/24 Срд 21:25:46 3118526 465
Парни, посоветуйте нормальные библиотеки для gui :)
Аноним 10/04/24 Срд 22:51:43 3118641 466
Аноним 10/04/24 Срд 22:53:05 3118645 467
>>3118526
На Go принято делать CLI вместо гуя.
Если нужен гуй, то лучше рассмотреть кресты+qt, либо js+electron.
Аноним 10/04/24 Срд 22:56:12 3118650 468
Аноним 10/04/24 Срд 23:11:50 3118668 469
image.png 103Кб, 661x543
661x543
>>3118650
Что самое интересное, сама библиотека уже несколько лет заброшена, как и все проекты в этом списке, за исключением одного.
Аноним 10/04/24 Срд 23:18:01 3118675 470
>>3118526
берешь джаву, пишешь как на го и юзаешь swing
Аноним 11/04/24 Чтв 00:55:08 3118731 471
1712786108087.jpg 16Кб, 203x249
203x249
>>3118675
И получается говно
Аноним 11/04/24 Чтв 06:04:38 3118821 472
Аноним 11/04/24 Чтв 10:00:30 3118914 473
>>3118731
Так ты же на нем и хотел писать
Аноним 11/04/24 Чтв 13:46:38 3119071 474
>>3118645
>кресты+qt
А если кто-то предпочитает Gnome, а не KDE?
Аноним 11/04/24 Чтв 13:51:07 3119075 475
>>3119071
Тогда джава + свинг
Аноним 11/04/24 Чтв 14:14:23 3119089 476
>>3119071
То это пидор, которого нужно унижать.
Аноним 11/04/24 Чтв 15:27:20 3119175 477
Частенько на ютубе попадаются видео, где какой-нибудь душнила перформит на го, рассказывает, что надо использовать всякие алгоритмы, экономить чуть ли каждый байтик. Но при этом почему-то забывает, что бинари на го весят по 10Мбайт. Даже банальный хеллоуворд получается около 3Мбайт. О каком перфомансе может идти речь вообще?
К примеру, на обычном Си хеллоуворлд без всяких ухищрений занимает 16Кбайт. Энтузиасты добивались и меньших размеров вплоть до сотни байт.
Аноним 11/04/24 Чтв 15:42:59 3119203 478
>>3119175
Тебя же уже обоссывали, или прямо в этом треде или в прошлом. Нахуй ты опять свое говно принёс
Аноним 11/04/24 Чтв 15:45:32 3119209 479
>>3119203
Я другой анон, только зашёл в тред
Аноним 11/04/24 Чтв 16:10:40 3119260 480
>>3119175
В реальных задачах 99% всех оптимизаций делаются через добавление нужного индекса в бд, а сам микросервис можно написать хоть на джаваскрипте.
Аноним 11/04/24 Чтв 17:07:36 3119327 481
>>3119175
>О каком перфомансе может идти речь вообще?
Об обычном, перформанс не зависит от размера бинарника
Аноним 11/04/24 Чтв 17:21:08 3119344 482
Стикер 0Кб, 512x512
512x512
>>3119175
>на обычном Си хеллоуворлд без всяких ухищрений занимает 16Кбайт
>без всяких ухищрений
Жырнота, то какая!
Аноним 11/04/24 Чтв 17:47:46 3119405 483
>>3119344
gcc -o helloworld helloworld.c
Где тут ухищрения?
Аноним 11/04/24 Чтв 17:55:02 3119415 484
>>3119405
>gcc -o helloworld helloworld.c

gcc -Os -o helloworld helloworld.c

strip helloworld

А щаз?
Аноним 11/04/24 Чтв 20:55:21 3119692 485
>>3119175
> бинари на го весят по 10Мбайт
И чё? В чем проблема то? Места на диске жалко? Не под микроконтроллеры пишем же.
Аноним 11/04/24 Чтв 22:40:55 3119782 486
hello.png 673Кб, 846x916
846x916
>>3119415
По сути вот содержимое стрипнутого сишного helloworld.
Говна масса, но при этом весит 17000 байт.
Часть говна можно безболезненно вырезать.
Полюбому это несравнимо с тем, что генерировал golang, когда последний раз его смотрел.
При этом гошный исполняемый файл был непереносим между разными дистрибутивами, как ожидалось.

Тогда зачем это всё?
Аноним 11/04/24 Чтв 22:46:21 3119786 487
>>3118668
https://github.com/rivo/tview
Вот более живое.

Это все шутка, я не предлагаю всерьез такое писать. Если конечно ты не пишешь системную утилиту которая должна через ssh работать.
Аноним 11/04/24 Чтв 22:51:19 3119787 488
>>3119782
Никто в своём уме не будет на c писать сервер для перекладывания протобуфов в json-ы. На го рантайм за тебя уже делает кучу всего, н за это ты платишь местом и накладными разходами на работу рантайма.
Аноним 11/04/24 Чтв 22:56:25 3119788 489
>>3119415
Для начала полинкуй с musl или убери glibc из линковки.
Если взялся размеры мерять, то добейся статических бинарей и там и там.
Аноним 12/04/24 Птн 00:31:38 3119822 490
go.PNG 78Кб, 881x894
881x894
Гоферы, почему вот этот код на джаве - это 20-летнее копролегаси, а на Го он же - глоток свежего воздуха, no-boilerplate, doesn't try to be smart, post-OOP и все такое? Нужно ли было изобретать новый язык и заново строить инфраструктуру вокруг него, и дробить комьюнити когда вы могли так писать 10+ лет назад, сохраняя все наработки джавы?
Просто хочу разобраться.
Аноним 12/04/24 Птн 01:29:08 3119843 491
>>3119822
Не переживай, дружок, твоя джава не легаси говно, дяди просто завидуют.
Аноним 12/04/24 Птн 01:30:41 3119844 492
>>3119788
>Для начала полинкуй с musl или убери glibc из линковки.
>Если взялся размеры мерять, то добейся статических бинарей и там и там.
Ради Hello world?
При необходимости я рантайм весь выкину, положу в регистры что надо и дёрну системный вызов ядра write на дескриптор 1 (который есть небуферизированный stdout). У будет hello world размером с меньше килобайта. Там даже линковать ни с чем не придётся.

Но при этом динамически слинкованный файл на сях запустится на большем числе разных линуксов, чем статически слинкованный исполняемый файл на Go.
Аноним 12/04/24 Птн 02:16:41 3119873 493
Аноним 12/04/24 Птн 07:11:45 3119913 494
>>3119822
Если бы Скрудж Макдак не судился со всеми за жаву, то может и была жава вместо голенга.
Аноним 12/04/24 Птн 08:32:55 3119932 495
>>3119844
>чем статически слинкованный исполняемый файл на Go.
хуйню написал, фантазер.
Аноним 12/04/24 Птн 08:38:18 3119933 496
>>3119822
>static class Struct
Бля просто в голос как это жалко выглядит... Особенно если знать об отсутствии value типов которые архитекторы джавы 10 лет пытаются стащить из сишарпа.

Просто не выходи за пределы java треда, пожалуйста. Ты не компетентен обсуждать современное программирование.
Аноним 12/04/24 Птн 08:44:41 3119936 497
>>3119932
Опыт - сын ошибок трудных.
Конкретный пример - моя софтина на плюсах. Исполняемый файл запускается на всех современных линуксах, до которых смог дотянуться. Весит около 200 кб, дёргает половину POSIX, в т.ч. pthread.

Собранная на Alt Linux программа на Go на Debian ругается на Kernel API (код ошибку сейчас не назову, но если доебёшь, то ночью выложу сюда).
Аноним 12/04/24 Птн 08:53:08 3119937 498
>>3119936
>Собранная на Alt Linux программа на Go на Debian ругается на Kernel API
Play stupid games, win stupid prizes. Разворачиваю все сервисы, написанные на го в scratch-контейнерах (вообще без userspace библиотек).
Так что проблема в тебе.
Аноним 12/04/24 Птн 10:09:00 3119972 499
>>3119692
Кто будет писать CLI-утилиты таких размеров? Когда можно написать в разы более компактные на С.
Аноним 12/04/24 Птн 10:24:28 3119978 500
>>3119972
почему тебя не похуй на размер бинарника?
Аноним 12/04/24 Птн 10:51:57 3120004 501
>>3119978
У меня старый ноут, где всё тормозит из-за того, что современные программисты забивают на оптимизиацию своих программ.
Аноним 12/04/24 Птн 11:13:33 3120039 502
>>3120004
Кому интересны твои детские проблемы?
Аноним 12/04/24 Птн 11:28:03 3120048 503
>>3119844
>При необходимости я рантайм весь выкину, положу в регистры что надо и дёрну системный вызов ядра write на дескриптор 1 (который есть небуферизированный stdout). У будет hello world размером с меньше килобайта. Там даже линковать ни с чем не придётся.
Так об этом и речь! Что сделать настоящий маленький бинарник можно, но точно не
>без всяких ухищрений занимает 16Кбайт

А с динамической линковкой можно потеряться с питоном, там вообще десяток байт будет. А то что там интерпретатор на мегабайты это другое.
Аноним 12/04/24 Птн 11:30:41 3120056 504
>>3120048
>потеряться
померяться
Аноним 12/04/24 Птн 11:40:09 3120071 505
>>3119822
Вот именно поэтому мы и уволили всех жава-скуфидонов из конторы, а их помойные говноприложения на спринг буте и хубирнейте просто выкинули и все написали с чистого листа на гоулэнге
Аноним 12/04/24 Птн 11:53:05 3120090 506
>>3119972
Я тебе ещё раз повторяю, кого ебут 100 лишних мегабайт занимаемых на диске утилитой?

>>3120004
Гошные проги даже тормозят? Сдаётся мне, что ты пиздишь. Тормозить могут как раз монстры на плюсах и джаве. А докер например везде летает. Я на ноуте с процом интел 5200у 2/4 и 16гб рамы даже работать могу. Диск, естественно, ссд. Может у тебя там хард до сих пор и поэтому все тормозит? б
Аноним 12/04/24 Птн 11:57:28 3120097 507
>>3120071
Именно почему? Код на скрине без бута и хибера
Аноним 12/04/24 Птн 12:08:27 3120113 508
>>3120097
Почему уволили? Ну они скуфидоны закостенелые. Им предложили свичнутся в гоулэнг, они попердели два месяца, но высирали максимально ублюдочный код и писали на гоулэнге как на жаве. Ни один пулл реквест мы не приняли и они все написал по собственному желанию. Да и что-то стоящее все равно не написать без спринга и хубирнейта. Правда нам не нужны такие сервисы, которые стартуют по минуте и потом в рантайме что-нибудь отстреливает. Поэтому скуфы пошли на мороз
Аноним 12/04/24 Птн 12:17:06 3120122 509
Пацаны, а на западе го кому-то, кроме гугла и криптопетухов нужен вообще? Или это чисто российский тренд переходить на голанг?
Аноним 12/04/24 Птн 12:21:50 3120130 510
>>3120122
Ну вот я в ЕС, вообще не вижу активности вокруг го, только из РФ идёт это
Аноним 12/04/24 Птн 12:25:10 3120133 511
>>3120113
>Да и что-то стоящее все равно не написать без спринга и хубирнейта.
Ну вот же, я привел пример что можно писать на джаве как на Го, и скорость старта будет сравнимая, потому что меньше кода грузить. И как ты и скзаал - ничего не мешает писать на Го как на джаве, т.е. язык тут не причем. Так чего просто не стали писать по-другому на джаве?
Аноним 12/04/24 Птн 12:26:00 3120134 512
>>3119913
так она опенсорсная, с кем кто судился?
Аноним 12/04/24 Птн 12:27:20 3120136 513
maxresdefault-2.jpg 53Кб, 1280x720
1280x720
>>3120113
Кул стори бро! Сам придумал или чат гпт попросил?
Аноним 12/04/24 Птн 12:30:52 3120141 514
>>3120090
>16гб рамы даже
>даже
Теперь понятно, почему все пофиг на жирные бинарники. Ведь люди даже на 16гб могут работать... Слов нет просто. А дальше что? 128 гб должно хватить, чтобы запустить консоль? А окошко отрисовать пару терабайт?
Аноним 12/04/24 Птн 12:37:40 3120148 515
>>3119913
Как раз джава это один из немногих примеров когда проприетарная технология, смогла стать открытой и driven by community. Для примера можешь загуглить какая сейчас самая популярная сборка JDK
Аноним 12/04/24 Птн 12:45:51 3120153 516
>>3120141
Странно, а еще говорили что Го экономичный по сравнению с явой
Аноним 12/04/24 Птн 12:54:36 3120172 517
>>3120133
>Ну вот же, я привел пример что можно писать на джаве как на Го
Нет, нельзя. Посмотри реальные проекты на жабе и гоулэнге. То, что ты написал - это говно, которое никто не будет поддерживать.
Аноним 12/04/24 Птн 13:02:46 3120181 518
>>3119822
Я так в универе писал на джаве и получал пятёрки. Тогда это был глоток свежего воздуха по сравнению с С++.
Аноним 12/04/24 Птн 13:27:34 3120200 519
>>3120172
>То, что ты написал - это говно, которое никто не будет поддерживать.
Так это буквально Го код. Кто-то же поддерживает проекты на Го?
Аноним 12/04/24 Птн 13:45:41 3120213 520
>>3120181
Забыл добавить, что тогда у меня всё работало на компе целерон 850МГц (пень 3 по сути) и 128Мбайт ОЗУ. Тогда даже джава не жрала память гигами, а функционал был тот же. Что изменилось за эти годы - не понятно. Почему ровно такие же программы стали жрать в десятки раз больше ОЗУ?
Аноним 12/04/24 Птн 14:00:02 3120243 521
>>3120004
Так тормозит или диск забит консольными утилитами (причем написанными на го), ты определись
Сейчас ты говорил про размеры бинарников.
Аноним 12/04/24 Птн 14:05:49 3120257 522
>>3120243
Бинарники загружается в ОЗУ и ещё сильнее разрастаются за счёт выделения памяти в ходе выполнения. А если ОЗУ не хватает, то начинается свопинг на жесткий диск, а это очень сильная просадка по производительности. Да и сами диски тоже не резиновые.
Аноним 12/04/24 Птн 14:17:05 3120276 523
>>3052664 (OP)
Есть какие-нибудь дешевые курсы, где на проекте обучат? То есть чтобы был готовый проект по прохождению курса?
Аноним 12/04/24 Птн 14:59:19 3120310 524
>>3120276
На дешевых курсах ничему не обучат, да и материал там дают шлаковый. Я меньше 100к курсы даже не рассматриваю.
Аноним 12/04/24 Птн 15:19:53 3120326 525
>>3120310
Аааа, ну понятно. А еще что делаешь?
Аноним 12/04/24 Птн 16:37:56 3120386 526
>>3119071
Ну а в чем разница, приложухи на Qt все равно будут запускаться.
Один хуй Qt - это стандарт в мире десктоп разработки, на gtk уже никто не пишет
Аноним 12/04/24 Птн 16:44:34 3120388 527
>>3120122
>>3120130
Гугл на Go пишет, что очевидно. Слышал истории из амазона, как их просят новые проекты стартовать на Go/Rust вместо java+spring.

А так, в евролегаси проектах Го вряд ли сильно кому-то нужен. Там джава, питухон, js обычно.
Аноним 12/04/24 Птн 17:22:10 3120412 528
>>3120388
Я вот не понимаю, что они там пишут на этом го? Консольные приложения получаются с жирными бинарями, выгодней на си написать, десктоп не пишут на го, проще С++ и Qt написать, веб проще на пхп писать, там и фреймворки есть под это, а на го ничего нет.
Аноним 12/04/24 Птн 17:25:16 3120416 529
>>3120134
>опенсорсная
Oracle судился c Google за то что повторили API жавы в далвике. С точки зрения оракла апи - интеллектуальная собственность, даром что исходники открыты.
Аноним 12/04/24 Птн 17:28:46 3120419 530
>>3120326
Дешёвые курсы частенько на складчине покупают. Можешь скачать оттуда парочку и посмотреть какую там парашу преподают.
Лучше уж взять кредит на крутой курс и пройти его. Тем более, что с зп программиста на го, ты его быстро погасишь. Так что это выгодная инвестиция.
Аноним 12/04/24 Птн 20:27:25 3120564 531
>>3120090
Бля.. какой же ты даун ебаный
Аноним 12/04/24 Птн 20:54:00 3120586 532
>>3120412
>выгодней на си написать
Без сборщика мусора? Ты уверен, что это будет выгодней?
Аноним 12/04/24 Птн 22:42:10 3120648 533
Коллеги, мой php-проект закрывается и меня скоро на мороз, видимо. Полгода ковыряю го, очень нравится, сделал пару микросервисов, больше особо опыта с ним нет. Насколько мне пиздец, если я попытаюсь вкатиться на вакансию миддла го вместо пыхи? И что ждать по зарплатам (я в дс2)?
Аноним 12/04/24 Птн 23:16:50 3120666 534
>>3120412
>Я вот не понимаю, что они там пишут на этом го?
Всякие вебсервисы. Гошечка достаточно неплохо масштабируется.
Аноним 12/04/24 Птн 23:50:38 3120684 535
>>3120586
Тогда выгодней на джаве написать, наработок у джавы куда больше и пул инженеров куда больше
Аноним 12/04/24 Птн 23:52:54 3120687 536
>>3120648
Никто кроме реального интервью тебе не скажет насколько тебе пиздец. Попробуй, походи по интервью, посмотри что спрашивают.
Но я бы сказал что полный пиздец, потому что хрюши отметают по опыту на конкретной технологии.
И как тебя выгоняют при закрытии проекта, а не компании?
Аноним 12/04/24 Птн 23:55:22 3120689 537
>>3120412
Как же ты заебал, поехавший
Аноним 12/04/24 Птн 23:59:49 3120692 538
>>3120666
Все языки неплохо масштабируются
Аноним 13/04/24 Суб 00:43:43 3120709 539
>>3120687
А сколько опыта надо вообще, чтобы претендовать хотя бы на 200к? Это и так серьёзная потеря, для понимания.

Да мне никто ничего не может сказать вменяемого по поводу смены проекта внутри. Поэтому рассчитывать надо, что выгодят на мороз. Не выгонят - и хорошо, но мало ли.
Аноним 13/04/24 Суб 01:03:53 3120712 540
>>3120684
Ух сейчас напишем cli тулу на джаве чтобы тащить с собой jre, ух ахуенно
>>3120004
Используй на своем старом ноуте старые программы и кайфуй от жизни, в чем проблема?
>>3120386
Немного жалко что гтк как технология говнище лютое на фоне кют, потому что амбассадор гтк гном лично для меня намного лучше всратых кед
>>3120692
Многопоточность отличная, легче и приятнее наверно в мейнстримовых языках нет
Аноним 13/04/24 Суб 01:26:29 3120714 541
>>3120709
>А сколько опыта надо вообще, чтобы претендовать хотя бы на 200к? Это и так серьёзная потеря, для понимания.
Ну стандартно от 3х лет наверное
Аноним 13/04/24 Суб 01:31:05 3120715 542
>>3120712
>Ух сейчас напишем cli тулу на джаве чтобы тащить с собой jre, ух ахуенно
Всмысле? Го просто упакует тот же рантайм в бинарник, это другое чтоли?
>>3120712
>Многопоточность отличная, легче и приятнее наверно в мейнстримовых языках нет
Грин треды в джаве есть и в Эрланге
Аноним 13/04/24 Суб 06:34:10 3120750 543
>>3120715
>Грин треды в джаве есть
Твои грин треды обосрались, когда начались утечки памяти и прочие приколы. Бесшовного перехода не вышло. Пройдет еще лет 10 пока их допилят до нормального состояния. Ну и API у них мерзотный и многословный
Аноним 13/04/24 Суб 10:53:08 3120847 544
>>3120388
>js
На бэке что ли? Реально активно используется?
Аноним 13/04/24 Суб 10:54:42 3120848 545
>>3120419
>Лучше уж взять кредит на крутой курс и пройти его. Тем более, что с зп программиста на го, ты его быстро погасишь. Так что это выгодная инвестиция.
И что же это за крутой курс по го? Скиллбокс?
Аноним 13/04/24 Суб 13:03:26 3120928 546
Снимок экрана 2[...].png 22Кб, 1029x244
1029x244
скачал новую версию го, взамен старой, и теперь выход это. хотя программа работает, но как я понял это все же проблема. помогите пожалуйста.
Аноним 13/04/24 Суб 13:40:11 3120939 547
коллеги, как учить алгоритмы если я тупой и 4 часа разворачивал список? Имею 3 года опыта, мидл, с задачами справляюсь нормально, но все что связано с алгосами вызывает жжение. Знаю только Го
Аноним 13/04/24 Суб 13:43:36 3120942 548
>>3120939
А какие именно алгоритмы ты хочешь учить?
Так-то я бы сказал просто придумывать задачи на эти алгоритмы и решать их
Аноним 13/04/24 Суб 13:55:21 3120949 549
>>3120942
те которые на собеседованиях спрашивают. Ну там задачки на очереди, на стек, на списки, динамическое программирование, деревья, графы. А придумывать их - ну это вообще шиза, у меня во-первых воображения 0, во-вторых чтобы что-то придумать нужно это понимать
Аноним 13/04/24 Суб 15:41:47 3121016 550
>>3120692
Вопрос в количестве усилий которые надо приложить. Так то и Си хорошо масштабируюется nginx пример. Но чтобы этого добиться, надо очень сильно постараться. А где-то всё работает из коробки.
Аноним 13/04/24 Суб 15:43:52 3121018 551
>>3120750
>Твои грин треды обосрались, когда начались утечки памяти и прочие приколы.
Сто раз говорили не юзайте тредлокалы, но проблема у гринтредов конечно.
Аноним 17/04/24 Срд 14:20:07 3126302 552
>>3120928
>помогите пожалуйста
ебало этого опущенного представили?
Аноним 23/04/24 Втр 16:20:41 3133020 553
>>3121018
>но проблема у гринтредов конечно.

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

Давно пора уже

Один хуй на современных джк большинство старого кода не запуститься из-за отсутствия --illegal-access=permit в современных версиях рантайма.
Аноним 23/04/24 Втр 16:21:35 3133025 554
>>3133020
>
>Давно пора уже
... было внести изменения в язык, ломающие обратную совместимость, как это в мажорных версиях других языков регулярно происходит.
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов