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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 762 62 147
Go тред №24 1.22 edition /go/ Аноним 30/10/23 Пнд 16:57:22 2900329 1
IMG202212112325[...].jpg 23Кб, 1080x595
1080x595
maxresdefault.jpg 119Кб, 1280x720
1280x720
9a0213a0e23312ac.png 87Кб, 1200x600
1200x600
Screenshot from[...].png 32Кб, 927x168
927x168
Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, имеет богатую и универсальную стандартную библиотеку и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де-факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

С чего начать:

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

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

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

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

предыдущий утонул тут https://2ch.hk/pr/arch/2023-07-12/res/2665435.html
Аноним 30/10/23 Пнд 17:25:07 2900367 2
И зачем целый тред для этого говна?
Аноним 30/10/23 Пнд 18:02:46 2900423 3
Правда, что в 1.22 они запихнули умерший проект gorilla/mux?
Аноним 31/10/23 Втр 10:31:57 2901220 4
>>2900329 (OP)
> В обязательном порядке проходим Go Tour
А есть на русском?
Аноним 31/10/23 Втр 11:02:44 2901265 5
Бамп)
Аноним 31/10/23 Втр 11:03:09 2901266 6
Бамп)
Аноним 31/10/23 Втр 15:58:45 2901629 7
Почему они добавили тип комплексных чисел, но не добавили тип для хранения денег?
Аноним 31/10/23 Втр 16:20:52 2901647 8
Аноним 31/10/23 Втр 16:28:11 2901651 9
Как же у меня горит с этого говнолэнда от жидбрейнс! Закомментировал строчку кода и он мгновенно удалил импорт, а когда раскомментировал обратно, то он мне говорит: а я не знаю, что это за пакет. Скотина!
В вс коде же можно спокойно поставить временный комментарий и на импорт, всё работает по принципу максимального сохранения кода, который ввёл программист.
Аноним 31/10/23 Втр 16:57:54 2901687 10
>>2901629
Тебя чем комплексное число не устроило? Это буквально SSE, что мастхев в вычислениях
Аноним 01/11/23 Срд 01:16:12 2902180 11
Аноним 01/11/23 Срд 03:02:04 2902202 12
Почему они добавили тип комплексных чисел, но не добавили тип для хранения денег?
Аноним 01/11/23 Срд 10:29:08 2902328 13
>>2902202
Хватит за мной повторюшничать!
Аноним 01/11/23 Срд 11:19:17 2902365 14
Аноним 01/11/23 Срд 14:52:41 2902707 15
>>2901629
Скорее вопрос почему они не сделали перегрузку операторов чтобы я сам мог навасянить себе тип для денег
Аноним 01/11/23 Срд 15:21:28 2902767 16
>>2902202
GO - это не про деньги.
02/11/23 Чтв 04:41:29 2903394 17
Оп-хуй проебал нумерацию.
02/11/23 Чтв 04:45:26 2903395 18
>>2901651
Так это стандартный гоимпортс так работает, так шо претензии в первую очередь к ним. Да, говно.
Аноним 02/11/23 Чтв 14:31:10 2903786 19
Кек, как раз вкатываюсь в го. Читал, что это лучший бэкенд язык, типо сделали бест практис от других языков. Хотя странно что тредов по нему не было долгое время.
Аноним 02/11/23 Чтв 17:14:28 2904036 20
Сколько же всякой бесполезной хуйни они надобавляли! Хочу переключить на другой файл - хуй там! Выводится какая всплывающая залупа с именем функции. Нахуя? Хочу просто перейти на следующую строку, нажав Enter, - хуй! Вставляется какая-то залупа, которую иде посчитала нужно вставить. Какому придурку вообще пришла в голову поставить это действие на Enter!? В жидбрейнс видимо совсем отбитые работают или уже просто не знают какую хуйню ещё впихнуть в своё говно. Ещё блядь присваиваешь константе значение, но "умная" иде тут же тебе второй раз выводит это же самое блядь значение.
Сори за мат, но у меня жопа просто полыхает.
Аноним 02/11/23 Чтв 17:49:04 2904123 21
>>2904036
вскод. врядли надо больше
Аноним 02/11/23 Чтв 18:39:14 2904206 22
Аноним 03/11/23 Птн 08:32:28 2904656 23
>>2904123
>>2904206
Но ведь без голэнда не стать профессионалом
Аноним 04/11/23 Суб 08:10:44 2905855 24
Что думаете про книгу Адама Фримана Pro Go? С одной стороны он описывает с нуля до разработки реального веб-приложения, но с другой весь код не идиоматичный, а само веб-приложение больше напоминает ASP.NET.
Аноним 04/11/23 Суб 10:34:55 2905897 25
Если слайс - ссылочный тип, как пишут в умных книжках, то почему мы должны его возвращать из функции как структуру? Если же слайс - структура, то как она может быть равны nil?
Аноним 04/11/23 Суб 15:41:16 2906176 26
>>2905897
Ты че, самый умный что-ли? Пиши как все и не выебывайся
За мат извини
Аноним 04/11/23 Суб 17:45:33 2906336 27
Аноним 04/11/23 Суб 17:55:49 2906360 28
>>2905897
Указатель внутри структуры лежит, при копировании структуры он копируется, вот и всё.
Про сравнение с nil - судя по сорсам, работа со слайсами, как и работа с мапами, переписывается рантаймом на работу с ансейф поинтерами (или я даун, ресерчил 15 минут с телефона) .
https://go.dev/src/runtime/slice.go
Аноним 04/11/23 Суб 20:33:14 2906702 29
>>2901629
Потому что долбоёбы. Но вообще тип деньги как минимум требует валюту, чтобы 10 баксов не сложить с 10 песо, требует точность на основании валюты, ну и конечно конвертация. Понятно что такая масштабная библиотека выходит за пределы возможностей аутистов из Го-тем.
Аноним 05/11/23 Вск 12:11:31 2907309 30
>>2905897
ну представь, что слайс это структура которая может быть равна nil, потому что в компиляторе реализовали сравнение слайса с nil.
Аноним 06/11/23 Пнд 21:10:04 2909823 31
Блядь, какая же ебучая клоунада с этими корутинами, итераторами и for-over-func. 10 лет назад им обо всём этом говорили, но просто сделать сразу слишком просто, нужно сперва нахуевертить говна, а потом героически его преодолевать, попутно заставляя всех пользователей языка по десять раз переписывать библиотеки.

https://github.com/golang/go/discussions/54245#discussioncomment-3800568
Как читаю этот коммент каждый раз смеюсь и плачу
Аноним 08/11/23 Срд 12:23:54 2911951 32
>>2900329 (OP)
Здарова, погроммисты.
Как в го можно сделать следующую штуку?
Условно есть последовательность значений в файле, допустим
x = 1
y = 2
z = 3
...
И тд, они могут повторяться в рандомном порядке, нужно сложить все значения x, все значения y и тд.

Итак вопрос - как это обработать через каналы, чтобы без явного указания
if val == "a" {
chanA <- val
}
if val == "и" {
chanB <- val
}

и прочее
СПАСИБО!
Аноним 08/11/23 Срд 15:50:44 2912338 33
>>2911951
Нихуя не понял, что ты хочешь сделать.
Ну можешь завести массив из 26 (или какая у тебя там мощность множества) каналов и по val - 'a' искать индекс канала, в который пишешь.
Аноним 08/11/23 Срд 15:51:39 2912339 34
>>2911951
А еще заранее говорить спасибо очень невежливо.
Аноним 08/11/23 Срд 15:55:03 2912341 35
>>2912338
Но вообще я не понял, нахуй тебе там каналы, сложение элементов это явно не боттлнек программы ботлнек в сисколле, который ты не распараллелмшь, от конкарренси ты скорее лососнешь, чем выйграешь. Ебани просто мапу [byte]int, или рун-инт в особо запущенном случае, че как не родной.
Аноним 08/11/23 Срд 17:02:14 2912460 36
>>2911951
c awk это просто echo 'x = 1
y = 2
z = 3
x = 11
y = 22
z = 33' | awk 'BEGIN{FS="="}{a[$1]+=$2}END{for (k in a) print k "=" a[k]}'
Аноним 08/11/23 Срд 17:04:56 2912467 37
image.png 1064Кб, 1080x1350
1080x1350
>>2911951
> Итак вопрос - как это обработать через каналы, чтобы без явного указания
> if val == "a" {
> chanA <- val
> }
> if val == "и" {
> chanB <- val
> }
это очень широкоизвестная проблема в программировании, многие люди бьются над её решением
Аноним 08/11/23 Срд 17:10:03 2912478 38
Аноним 08/11/23 Срд 17:45:20 2912550 39
>>2912467
Коллега, удалось её решить за полином, или все еще np полная?
Аноним 08/11/23 Срд 18:13:55 2912577 40
>>2912478
Емнип у го отдельный P под чтение/запись, я с этой точки зрения срал.
Аноним 08/11/23 Срд 19:55:34 2912783 41
>>2912577
>Емнип у го отдельный P под чтение/запись
у го есть отдельный тред с нетполлером, но он только для неблокирующих сисколлов (ну и по сути в нём чтение/запись не происходят, он просто говорит, что файловый дескриптор готов и можно шедулить горутину, которая хочет читать/писать в этот фд).
обычные файлы не поллятся, поэтому сисколл будет сразу в треде, который крутил горутину. если чтение надолго блочится, то его P/очередь горутин отойдут другому треду, а он останется висеть пока сисколл не вернется и потом пойдет чиллить с тредиками в пул тредов.
Аноним 08/11/23 Срд 20:21:24 2912837 42
>>2912783
Развернуто, спасибо.
Аноним 10/11/23 Птн 22:34:01 2916598 43
image.png 120Кб, 736x736
736x736
> // Make sure that Foo implements Bar
> var _ Bar = &Foo{...}
Unterprogrammiersprache
Аноним 11/11/23 Суб 11:57:40 2917259 44
А что лучше: ждать пока убунту обновит пакет с голангом или самому с сайта скачивать?
Аноним 11/11/23 Суб 11:59:21 2917261 45
image.png 79Кб, 225x225
225x225
>>2916598
хватит смеяться..........
Аноним 11/11/23 Суб 12:06:21 2917269 46
Аноним 11/11/23 Суб 13:02:15 2917304 47
>>2917269
>васянского PPA
Придумали же менеджеры версий для этого, зачем систему засирать какими-то васянскими пакетами, чтобы они тебе потом кровь пили при обновлении?
Аноним 11/11/23 Суб 15:03:03 2917461 48
>>2917304
>менеджеры версий
зачем засирать систему менеджерами версий, если есть менеджер пакетов из коробки?
Аноним 11/11/23 Суб 16:29:14 2917652 49
>>2917461
Чтобы в системе не пересекались разные версии среды, когда у тебя много проектов - для каждого можно хранить свою версию языка и свой изолированный набор модулей, чтобы обновляться и откатываться одной кнопкой без васянских репозитариев, которые наставят непонятно что непонятно куда, и обнаружить в один прекрасный день что какая-то зависимость сломалась после очередного обновления системы и начинаются детективные истории и головняк, когда всего этого можно избежать одним простым инструментом в виде менеджера версий, который отделит мух от котлет (операционную систему от рабочего инструментария).
Аноним 11/11/23 Суб 17:12:29 2917725 50
>>2917652
в отношении гошки это литералли решение несуществующих проблем. мб иностранные специалисты из ноды/петона привыкли иметь тысячу окружений под каждый из проектов, в гошке в 99% (100%, если ты круды для бекенда пишешь) случаев достаточно иметь последнюю версию конпелятора.
да и конкретно гошка из ppa вряд ли сломается, она не линкуется динамически с какими-то либами, которые могут с системой обновиться и стать несовместимыми.
Аноним 11/11/23 Суб 17:18:14 2917744 51
>>2917652
ну и плюс менеджеры версий никак не защищают от того, что у тебя система обновится, а твой софт будет слинкован с неактуальной версией какой-то либы вроде glibc. просто у тебя все говно внутри юзерской папки будет храниться и не будет конфликтов с системными пакетами на уровне файлов
Аноним 12/11/23 Вск 18:30:14 2919173 52
Хули срез не хранит значения,а только ссылки. ДАЙТЕ МНЕ ЭРРЕЙЛИСТ РЯЯЯЯЯЯЯ ДАЙТЕ ДАЙТЕ ДАЙТЕ
Аноним 12/11/23 Вск 18:40:31 2919190 53
И лямбды добавьте
Аноним 12/11/23 Вск 18:46:33 2919196 54
И контроллеры такие же как в спринге тоже сделайте
Аноним 12/11/23 Вск 18:46:59 2919197 55
И эвенты такие же как в спринге тоже не забудьте
Аноним 13/11/23 Пнд 02:00:52 2919756 56
>>2919173
чево? слайс именно хранит значения своего типа. слайс интов хранит инты, слайс поинтеров хранит поинтеры, а слайс интерфейсов хранит интерфейсы
>>2919190
анонимные функции же уже есть
Аноним 14/11/23 Втр 11:45:10 2921127 57
>>2919756
Он косноязычный просто, хочет чтобы слайс был объектом, внутри которого лежит массив, а не просто указатель на массив.
Аноним 14/11/23 Втр 12:40:41 2921244 58
>>2909823
В чем проблема возвращать чаннел в роли иттератора? табу? Буквально ничем отличаться не может
Аноним 14/11/23 Втр 12:42:14 2921248 59
>>2921127
А в чём, простите, разница? Как ты собираешься выделять память в куче без указателя на неё?
Аноним 14/11/23 Втр 12:43:22 2921252 60
>>2921244
В статье кока про итераторы он про это пишет
Аноним 14/11/23 Втр 12:45:46 2921258 61
>>2911951
map[int8]chan, ну или строку вместо инта, если у тебя больше, чем одна буква, зачем мозг ебать себе...
Аноним 14/11/23 Втр 12:47:11 2921262 62
>>2921252
В какой статье, какого кока? Ты хотя бы ответ разворачивай что ты именно хочешь сказать, а не намеками
Аноним 14/11/23 Втр 20:21:24 2922095 63
>>2919196
Надеюсь аннотации никогда не добавят в го. Именно из-за них джава превратилась в какашку.
Аноним 14/11/23 Втр 21:01:02 2922115 64
>>2922095
Аннотация это просто интерфейс для запуска жирной цепочки действий,не понимаю батхерта
Аноним 15/11/23 Срд 09:21:17 2922491 65
>>2922115
Один ломбок чего стоит
Аноним 15/11/23 Срд 10:13:00 2922524 66
>>2922491
Ну ,что поделать,в джаве нет геттеров сеттеров по умолчанию,не считая рекордов. Мне кажется @Getter @Setter над классом это намного лучше чем в коде по два метода на каждое поле
Аноним 15/11/23 Срд 14:33:40 2922879 67
Screenshot2023-[...].jpg 325Кб, 1080x2400
1080x2400
Почему на свинячем есть а на ру нет?
Го делали хохлы русофобы?
Аноним 15/11/23 Срд 14:35:27 2922880 68
>>2922879
Чё за ру? Это просто диалект украинского.
Аноним 15/11/23 Срд 14:45:23 2922894 69
Аноним 15/11/23 Срд 15:14:07 2922949 70
>>2922524
В чём проблема сделать поля публичными? Сами же создали проблему и придумали кривой костыль для её решения.
Аноним 15/11/23 Срд 15:22:42 2922971 71
>>2922949
Нарушает инкапсуляцию. Нельзя встроить логику в получение и установку значения
Аноним 15/11/23 Срд 15:31:57 2922989 72
>>2922971
А ломбок у тебя дофига логики встраивает? Там тупая заглушка, как и в 99% случаев ручного написания. И ничего это не нарушает, просто все привыкли писать эти какашки, даже не задумываются зачем это нужно.
Аноним 15/11/23 Срд 15:35:15 2922992 73
>>2922989
Логику может встраивать не конкретно не лично пользователь,а например ioc контейнер,считай спринг. Поэтому для сериализации и десереализации ему нужны геттеры сеттеры
Аноним 15/11/23 Срд 15:42:09 2923000 74
>>2922992
Как же хорошо, что я ушёл с джавы
Аноним 15/11/23 Срд 15:43:40 2923003 75
>>2923000
Сколько лет до этого работал? Какие ощущения были от перехода на новый стек?
Аноним 15/11/23 Срд 17:35:33 2923257 76
>>2922879
вы каждый тред этот вопрос будете задавать долбоебы?
когда appspot задепрекейтил го 1.9, все туры на древней гошке начали пятисотить, включая русский. васян, который делал русский тур, забил на свою хуйню, так что её убрали
Аноним 15/11/23 Срд 17:46:18 2923280 77
Сишарп лучше, чем го
Аноним 15/11/23 Срд 23:01:45 2923603 78
image.png 29Кб, 734x151
734x151
>>2922095
>Надеюсь аннотации никогда не добавят в го.
Уже есть, пока ограничено, но это вопрос времени.
Аноним 15/11/23 Срд 23:23:15 2923618 79
Чому на го так тяжело писать?
Даже простейший круд на джаве можно написать в 2-3 раза быстрее, чем на го.
Если не брать какой-нибудь gin, а взять обычный роутер вроде chi, то даже примитивная задача вроде достать из урла "/<uid>/update", передать его в сервис, а оттуда сходить в базу, становится какой-то чрезчур сложной. Банально в if err != nil очень легко становится запутаться, если их становится очень много. И из-за этого контроллер, который должен был быть написан в 3-4 строчки, разбухает как скотина, потому что на любой пук приходится городить if err != nil. Даже если закрыть http.Body не щмогли или джейсон неправильный пришел к нам. В общем хуйня/10, если нужно много бизнес-логики накидывать.

Для инфра проектов, вроде кубернетиса или докера наверное хороший инструмент, но не для крудов ебучих.
Аноним 16/11/23 Чтв 10:46:11 2923813 80
>>2922971
Нарушает инкапсуляцию и всё законы вселенной встраивание логики в дата обджекты. Кстати, забавно, что главный архитектор джавы Brian Goetz прямо называет свидетелей секты геттеров-сеттеров дебилами и the "learn java in 21 days" crowd.

Тем временем шёл 2024 год...
Аноним 16/11/23 Чтв 10:48:11 2923818 81
>>2923603
Это кстати отличная иллюстрация подхода го: вместо простого, общепринятого, универсального решения (макросы/метаданные) сделать сложное, нетипичное и узкоспециализированное, а потом героически это преодолевать на протяжении следующих эн лет.
Аноним 16/11/23 Чтв 10:49:18 2923822 82
>>2923618
> Чому
Потому что это плохой язык.
Аноним 16/11/23 Чтв 12:59:18 2923932 83
>>2923822
И что ты предлагаешь учить? РНР что ли?
Аноним 16/11/23 Чтв 13:16:01 2923949 84
Аноним 16/11/23 Чтв 13:33:23 2923995 85
Привет. Стоит учить его первым языком или это так себе практика?
Аноним 16/11/23 Чтв 13:44:32 2924010 86
Аноним 16/11/23 Чтв 14:01:40 2924029 87
Аноним 16/11/23 Чтв 14:02:30 2924030 88
>>2923995
Вначале учи РНР, а только потом го
Аноним 16/11/23 Чтв 14:05:15 2924038 89
Аноним 16/11/23 Чтв 14:53:29 2924117 90
>>2924038
Го - это язык свичеров, а не вкатунов
Аноним 16/11/23 Чтв 15:29:47 2924164 91
>>2924117
Спасибо, хорошего дня!
Аноним 16/11/23 Чтв 15:33:04 2924168 92
>>2924117
Фух, значит выбор правильный
мимо свитчер из яндекс такси
Аноним 16/11/23 Чтв 16:16:46 2924233 93
>>2924168
Ну поработать в Яндексе престижно
Аноним 16/11/23 Чтв 19:46:48 2924545 94
>>2924168
У вас же там питухон и c++ со своим фреймворком.
Зачем тебе gouleng?
Аноним 16/11/23 Чтв 20:31:30 2924596 95
Кто-то осуществлял перекат из автотестов бека на гошку?
Аноним 16/11/23 Чтв 22:53:31 2924771 96
>>2923932
А ты с какой целью интересуешься?
Аноним 16/11/23 Чтв 23:12:29 2924786 97
image.png 149Кб, 399x281
399x281
>>2923818
>сделать сложное, нетипичное и узкоспециализированное, а потом героически это преодолевать на протяжении следующих эн лет
Аноним 17/11/23 Птн 08:16:49 2924958 98
>>2924771
С целью трудоустройства
Аноним 17/11/23 Птн 12:20:14 2925225 99
>>2922949
Основная и единственная проблема - уже есть куча хуйни которая ожидает через рефлексию найти геттер или сеттер, а не публичное поле.
Аноним 17/11/23 Птн 16:23:22 2925676 100
>>2925225
Так публичное поле это синтаксический сахар для геттера.
Аноним 17/11/23 Птн 16:52:38 2925723 101
Сишники есть в треде?

Не вкатун, работаю псевдодевопсом-сисадмином. Писал только на баше и на C давно. По работе программировать не нужно, и так все отлично. Но из каждого утюга верещат, что TRVE devops инженер должен знать go.

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

Вообще, поясните, зачем девопсу Go, на нем же даже скрипт не написать.
Аноним 17/11/23 Птн 17:20:45 2925749 102
>>2925723
Если ты в кубере метрическими контейнерами не жонглируешь, то нахуй не нужон.
Аноним 17/11/23 Птн 22:20:35 2926105 103
image.png 212Кб, 604x489
604x489
>>2905855
>Pro Go
Читаю сейчас её и это пикрил
Аноним 17/11/23 Птн 23:22:32 2926168 104
Аноним 18/11/23 Суб 00:00:44 2926231 105
image.png 522Кб, 600x550
600x550
Аноним 18/11/23 Суб 07:59:41 2926410 106
00.png 313Кб, 694x570
694x570
000.png 436Кб, 933x530
933x530
0000.png 138Кб, 356x273
356x273
>>2923818
Достаточно посмотреть на фото создателей языка, чтобы все стало ясно
Аноним 18/11/23 Суб 13:04:01 2926605 107
>>2926231
Ну серьезно, в чем причина такого подхода?
В крудах и калопроводах практически всегда, если возникла ошибка, то ее нужно просто протолкнуть до респонса, завернуть в джейсон и отдать пользователю.

При этом ты не можешь просто использовать net/http или chi какой-нибудь, потому что количество действий, которые приводят к ошибке в контроллере попросту велико и нужно городить дополнительные абстракции, чтобы это хоть как-то читалось.

Например взять тот же пример, когда в калопроводе нужно достать /<uid>/update, причем сам метод - POST

Итого:
1) readAll из request.Body -> requestJson
2) json -> requestStruct
3) requestStruct -> service
4) service -> responseStruct
5) responseStruct -> json
6) json -> httpWrite(response)

А, ну и еще когда uid достаешь, тоже может ошибка возникнуть.
Вопрос, как правильно в этом вашем гоуленге писать контроллеры? Так, чтобы не ебаться с фреймворками, а просто взять gin и эти самые ручки писать быстро, просто и не захламляя код тяжелыми проверками ошибок?
Аноним 18/11/23 Суб 15:58:13 2926852 108
>>2926605
в чем проблема взять и обработать ошибки?
Аноним 18/11/23 Суб 16:38:17 2926933 109
image.png 492Кб, 640x480
640x480
>>2923618
>Банально в if err != nil очень легко становится запутаться, если их становится очень много. И из-за этого контроллер, который должен был быть написан в 3-4 строчки, разбухает как скотина, потому что на любой пук приходится городить if err != nil. Даже если закрыть http.Body не щмогли или джейсон неправильный пришел к нам.
А ты делай как я:
if err !- nil { panic(err) }
а наверху
defer func() {
if r := recover(); r != nil {
return InternalServerError
}
}()
Аноним 18/11/23 Суб 16:58:52 2927004 110
>>2926605
>Ну серьезно, в чем причина такого подхода?
Говнорутины. Предполагается, что ты будешь запускать десятки горутин и пролучать ответ через каналы. И в таком сценарии эксепшены не работают.
Аноним 18/11/23 Суб 17:28:47 2927036 111
В го вкатиться можно без опыта разработки? Работаю qa автоматизатором.
Аноним 18/11/23 Суб 17:31:53 2927042 112
>>2926852
Ну ок, допустим мы из реквеста будем Body читать в массив байт.
Случилась ошибка. Мы ее хотим в джейсон положить и вернуть фронтам.
Когда возвращаем ошибку (то есть http.Write делали), то может возникнуть еще одна, новая ошибка. Что тогда?

Я просто не знаю какие ошибки как и в каком виде нужно обрабатывать.
Аноним 18/11/23 Суб 17:32:35 2927043 113
>>2926933
Код с паниками не пройдет код-ревью, тимлид попустит и пригрозит увольнением за такое.
Аноним 18/11/23 Суб 17:38:53 2927050 114
>>2927043
Вкатун спок! Тебе просто надо подсунуть эту идею тимлиду, так чтобы он думал что это его идея. И вы даже можете написать микрофреймворк - Autumn.
Аноним 19/11/23 Вск 11:20:26 2927738 115
>>2924958
С целью трудоустройства попробуй освоить востребованную профессию, а не программирование. И вообще съеби в прикреп.
Аноним 19/11/23 Вск 11:23:25 2927741 116
>>2926605
> /<uid>/update
А вы говорите 90-ые 00-ые закончились...
Аноним 19/11/23 Вск 11:38:38 2927758 117
Го уже можно пользоваться или стандартной либе до сих пор раз в неделю находят необработанные nil'ы?
Аноним 19/11/23 Вск 12:47:37 2927898 118
>>2927738
Я программист-любитель, а теперь хочу стать профессионалом
Аноним 20/11/23 Пнд 13:13:30 2929417 119
Отказывают ли в трудоустройстве тем, кто сидит на вс коде, а не на голанде?
Аноним 20/11/23 Пнд 13:17:57 2929427 120
>>2929417
Отказывают ли в трудоустройстве тем, кто задает тупые вопросы.
Аноним 21/11/23 Втр 20:03:42 2931518 121
>>2929417
Отказывают всем, кто сидит не в виме
Аноним 22/11/23 Срд 10:37:16 2932209 122
>>2929427
>>2931518
Лично я заметил, что все, кто работают, сидят в голэнде, а безработные как раз и сидят на всяких вскодах и вимах.
Аноним 22/11/23 Срд 20:29:46 2933030 123
Нахуя возвращать функцию из функции? Нахуя ее принимать в качестве параметра?
Аноним 22/11/23 Срд 20:39:29 2933038 124
>>2933030
Есть у тебя функция рекурсивного поиска определенных файлов по пути и надо что-то сделать для найденных файлов. Вот ты и передаешь функцию.
Понял, дурында?
Аноним 22/11/23 Срд 20:40:25 2933040 125
Аноним 22/11/23 Срд 20:42:30 2933043 126
Аноним 22/11/23 Срд 20:44:48 2933049 127
>>2933043
Хуй знает как в го,но файловый поток у меня в языке можно читать так:
while(bytes = stream.readBytes() != null{
Че то делаем
}

Нахуя городить рекурсию?
Аноним 22/11/23 Срд 20:46:43 2933050 128
>>2933049
Какой поток?
Ты обходишь дерево фс вглубь и для каждого совпадения надо применить какой-то код.
Аноним 22/11/23 Срд 20:53:08 2933056 129
File folder = new File("C/tmp")
Files[] list = folder.listOfFiles()
И дальше форичем по этому с вызовом FileUtils.readInTypeYourWant
Аноним 22/11/23 Срд 20:55:23 2933059 130
>>2933056
А там ещё вложенные диры и ты соснул.
Суть не в рекурсии, а что ты передаешь свою логику в универсальную функцию. Это и есть функции первого класса.
Учить и учить, кароч.
Аноним 22/11/23 Срд 21:12:00 2933073 131
>>2933059
И как тут поможет вложенная функция? Проверишь если тип это файл а не директория и применишь только к файлу?
Аноним 22/11/23 Срд 21:20:17 2933078 132
>>2933073
Это не связано, ебать тебя в сраку. Просто это типичная задача, понятная почти любому, а тебе нет, что симптоматично.
Ты можешь передать функцию чтобы принтить, можешь передать функцию чтобы удалять и т.д.
Аноним 22/11/23 Срд 21:44:08 2933102 133
>>2933078
Сука,если мне нужно принтитить или удалять я передам объект в функцию принт или делит. Нахуя нужен это фасад-метод,это же лютый говнокод,абстракция над поведением
Аноним 22/11/23 Срд 21:52:32 2933113 134
>>2933102
Ты передаешь функцию, что и требовалось!
Но если вместо просто функции тебе нужна логика сложнее, то ты передаешь своб функцию со своей сложной логикой.
Аноним 22/11/23 Срд 22:19:19 2933131 135
Аноним 22/11/23 Срд 23:32:19 2933241 136
>>2933030
>Нахуя ее принимать в качестве параметра?
Например, чтобы обработать некоторые данные которые связаны с какими-то другими данными которые ты не хочешь отдавать наружу.

Например https://go.dev/src/io/fs/walk.go тут прячется как именно идет обход директорий, просто вызывается твоя функция которая должна обработать данные. Другой пример из ФП это всякие map/reduce.

>Нахуя возвращать функцию из функции?
Это чаще всего применяется в интерфейсах типа:
>type Iterater interface {
>Iter() func() (any, bool)
>}
С помощью полученной функции можно итерироваться по любой коллекции или вообще чему угодно.
Аноним 22/11/23 Срд 23:44:51 2933255 137
>>2933131
Для адепта ООП выглядит как наркомания, но по факту здесь решается проблема параллельного выполнения кода и изоляции ресурсов, в распределенных системах нельзя просто взять и вызвать какой-то метод откуда захочется.
Аноним 23/11/23 Чтв 22:27:37 2934480 138
Гуланг господа, поначалу я уважал этот язык, но потом почитал про ошибки и их обработку, в связи с этим у меня возник вопрос: Вы что, ебанутые? Вам там нормально?
Аноним 23/11/23 Чтв 23:18:59 2934552 139
>>2934480
Ну вот у Котлина есть эксепшены, но обработка ошибок из корутин это еще больший пиздец чем в Го. https://www.linkedin.com/pulse/exception-handling-coroutine-amit-nadiger/ - 100500 разных неочевидных способов обрабатывать ошибки. Экспшены хороши если у тебя линейный код в одном потоке, а если потоков становится много и они запускаются паралельно, то простой советский код возврата - проще и понятнее.
Аноним 23/11/23 Чтв 23:24:05 2934559 140
>>2934552
Почему исключения не работают при многопотоке? Любое исключение,выброшенное из таски убивает таску вот и все, соответственно их просто нужно обработать
Аноним 23/11/23 Чтв 23:37:33 2934586 141
>>2934559
>Любое исключение,выброшенное из таски убивает таску вот и все, соответственно их просто нужно обработать
Об этом то и речь, что.у тебя десяток тасок работает и одна сфейлилась. И дальше начинается мотня, эти таски можно проигнорировать, эти ретрайнуть, эти фатальные - и надо кансельнуть все живые таски и выбросить эксепшн выше.

Просто напиши на котлине пример который запустит 3 задачи:
- ошибки первой - игнорировать
- вторую ретраить 3 раза
- третью - канселить все и бросать эксепшн выше
и увидишь как там все """легко и элегантно""" получается.
Аноним 23/11/23 Чтв 23:40:16 2934591 142
>>2934586
Не уверен,что можно их ретраить кстати. А обработка пишется внутри метода run или call в зависимости от типа. То есть у тебя не разбросана эта логика в классе экзекьюторе,все находится прям на месте
Аноним 23/11/23 Чтв 23:56:55 2934632 143
>>2934559
>Любое исключение,выброшенное из таски убивает таску вот и все, соответственно их просто нужно обработать
Убивает, а дальше то что? Вверх по стеку - а там ничего нет, для родительского процесса что там внутри таски происходит - тёмный ящик, то есть родительскому процессу надо какое-то сообщение слать, а как его послать? Обработать ошибку в таске и засунуть в return вторым аргументом, вот так вот, без всякой магии и сахара.
Аноним 24/11/23 Птн 01:25:31 2934682 144
>>2934552
Я увидел только 2 способа: блок try catch и хэндлер. Просто примеры на разных вариантах использования корутин.
Аноним 24/11/23 Птн 17:29:28 2935287 145
>>2934591
>Не уверен,что можно их ретраить кстати
А хули нельзя, то? Просто ещё раз запускаешь го/ко рутину и всё.

>А обработка пишется внутри метода run или call в зависимости от типа. То есть у тебя не разбросана эта логика в классе экзекьюторе,все находится прям на месте
У тебя есть метод прочитать настройки пользователя, он не может знать критично это вызывающе у или нет. Если функция показывает пользователю текущие настройки, то критично. А если там нужно прочитать предпочитаем часовой пояс чтобы отобразить дату, то не критично, можно пояс браузера использовать. Критичность определяет вызывающий, а не функция. Это как если бы функция чтения файла решала критична ошибка или можно проигнорировать.
Аноним 24/11/23 Птн 17:31:22 2935292 146
>>2935287
Такой кейс как ты описал не загоняется в экзекьютор
Аноним 24/11/23 Птн 22:36:53 2935801 147
Гошники,как вы разбиваете код? У вас пакет model где в одном файле лежит несколько структур или у вас директорияпакет в человеческих языках где на каждую структуру по пакету?
Аноним 24/11/23 Птн 22:39:14 2935802 148
>>2934632
Ты видимо не понял,таска умирает если из нее наружу выбрасывается исключение,само собой в этом случае класс где происходит запуск может это обработать. А если ты,например,получил исключение внутри таски и залогировал его не выбросив наружу то таска продолжит свое выполнение
Аноним 24/11/23 Птн 22:43:12 2935805 149
download.png 7Кб, 254x199
254x199
показываю базу
Аноним 25/11/23 Суб 08:44:37 2936098 150
>>2935805
Слоник насаживает суслика, а Дюк завидует?
Аноним 25/11/23 Суб 10:55:06 2936174 151
>>2936098
готовится к своей очереди
Аноним 25/11/23 Суб 20:12:03 2936935 152
>>2935801
общие модельки, которые в бизнес-логике широко используются (вроде Coords и более доменные штуки) в models.
модельки реквестов/респонсов к внешним сервисам - в пакетах с клиентами в clients/somemicroservice123.
если у метода с бизнес-логикой много аргументов и хочется их тупо запихнуть в структ, то структ можно рядом с функцией объявить. если это метод для интерфейса с несколькими реализациями и нужно чтобы на вход они принимали одну и ту же структуру, то в models.
Аноним 25/11/23 Суб 20:14:09 2936943 153
>>2936935
>если это метод для интерфейса с несколькими реализациями
и тут я имею в виду не реализация + мок, а несколько реальных реализаций
Аноним 25/11/23 Суб 20:15:00 2936951 154
image.png 83Кб, 269x187
269x187
Аноним 26/11/23 Вск 13:21:55 2937727 155
>>2935292
>Такой кейс как ты описал не загоняется в экзекьютор
Наркоман что ли? Мы ту про горитуны говорим, при чем тут твой экзекутор?
Аноним 26/11/23 Вск 13:23:17 2937728 156
>>2937727
Я не ебу что такое горутины,я влез в спор исключительно из-за ошибок и исключений
Аноним 26/11/23 Вск 13:43:03 2937770 157
>>2923818
А что тебе не понятно, маня?
Аноним 26/11/23 Вск 13:49:22 2937788 158
>>2937770
Да всё понятно, семантическая часть языка дизайнится на отъебись, без оглядки на прогресс в области, ощущения как будто на турбо паскаль возвращаешься.
Аноним 26/11/23 Вск 13:54:12 2937800 159
>>2937788
аннотации\макросы еще больший костыль чем теги гошки
Аноним 27/11/23 Пнд 14:28:40 2939263 160
>>2937800
Под макросами очевидно имеются в виду лисп-макросы (метафункции). Это the one true way.

Аннотации конечно костылёчек, но всё же более общее решение, чем кривотеги в го, которые вообще просто от баллы на отъебись сбоку прилеплены по принципу "и так сойдёт, потом разберёмся".
Аноним 27/11/23 Пнд 17:00:04 2939605 161
>>2937800
>аннотации\макросы еще больший костыль чем теги гошки
Сколько слышал наездов на аннотации, ни разу не видел внятной аргументации почему это плохо и как надо вместо этого делать.
Аноним 27/11/23 Пнд 23:06:37 2940241 162
image.png 88Кб, 102x400
102x400
>>2937728
>Я не ебу что такое горутины
Аноним 28/11/23 Втр 09:36:12 2940440 163
>>2939605
Аннотации прикольны, пока не начинаются проблемы из-за них, потому что решить их очень сложно. Фактически тебе придётся изучить все кишочки своего фреймворка и понять где возникает конфликт, а потом придумать костыль, который эту проблему решает.
Когда идёшь по го-вей, то просто пишешь свой бойлерплейт и не паришься. Любая проблема решается в твоём коде, а не где-то на стороне.
Аноним 28/11/23 Втр 15:20:13 2940890 164
>>2940440
>Аннотации прикольны, пока не начинаются проблемы из-за них, потому что решить их очень сложно. Фактически тебе придётся изучить все кишочки своего фреймворка и понять где возникает конфликт, а потом придумать костыль, который эту проблему решает.
Это всё общие слова которые ничего не стоят. Так можно про всё что угодно сказать, про фреймворки, про либу, даже про какие-то фичи языка.

>Когда идёшь по го-вей, то просто пишешь свой бойлерплейт и не паришься. Любая проблема решается в твоём коде, а не где-то на стороне.
Т.е. ты неилюзорно предлагаешь мне самому писать сериализацию в джсон? Потому что у тебя детская травма, в бытность джуном не смог разобраться с аннотациями и накричал тимлид?
Аноним 28/11/23 Втр 16:24:29 2941002 165
>>2940241
Давай еще о чем-нибудь посремся
Аноним 28/11/23 Втр 23:30:24 2941672 166
Начал я вкатываться в этот ваш Го и чувствую, что чот говна наворачиваю, говной пахнет. Столько разных неочевидных решений. Стоит продолжать или идти сразу в раст вкатываться?
Аноним 28/11/23 Втр 23:53:49 2941689 167
>>2941672
>Стоит продолжать или идти сразу в раст вкатываться?
Смотря для чего ты вкатываешься. Если для души катись к хуям в Раст. Если тебе работу работать - Го.
Аноним 28/11/23 Втр 23:55:29 2941691 168
>>2941689
Для души эликсир, раст для выебонов.
Аноним 29/11/23 Срд 00:14:16 2941703 169
>>2941691
Хачкель еще выучи, будешь перед тян выпендриваться.
Аноним 29/11/23 Срд 00:17:45 2941705 170
>>2940890
ну честности ради даже если ты не пишешь свой личный бойлерплейт на каждую хуйню вроде сериализации жсонов, то по крайней мере ты собираешь свой стек из кубиков и можешь перейти на другой кубик, а не порабощен анальным эндоскелетом фреймворка
Аноним 29/11/23 Срд 01:28:28 2941726 171
>>2941689
Да в принципе 50/50, только вот смотрю на го и вакансий не густо. И в целом душа больше лежит к вебчику, к бэку, а go для этого более подходит, нежели раст. Вообще, что больше с питоном в связке встречается, раст или го?
Аноним 29/11/23 Срд 08:32:22 2941795 172
>>2941672
Ты РНР уже выучил? Если нет, то учи РНР.
Аноним 29/11/23 Срд 11:52:08 2941973 173
>>2941705
Вместо того, чтобы нести порожняк предложи решение конкретной проблемы. Есть библиотека сериализации JSON. Как кастомизировать формат сериализации?
Аноним 29/11/23 Срд 12:02:25 2941990 174
>>2941726
>только вот смотрю на го и вакансий не густо
Ты ролфишь? На Го полно вакансий. Это на Расте из 3,5 штуки.
Аноним 29/11/23 Срд 13:17:45 2942129 175
>>2941990
Ты смотрел свежий индекс вката? Там падение на четверть.
Аноним 29/11/23 Срд 13:23:39 2942136 176
>>2941973
прочитать доку к либе
Аноним 29/11/23 Срд 14:36:57 2942226 177
>>2942129
>Ты смотрел свежий индекс вката? Там падение на четверть.
Нахуй мне всякое говно смотреть, я же не вкатун.
Аноним 29/11/23 Срд 15:26:33 2942344 178
>>2942136
>прочитать доку к либе
Где будет написано что:
1. Ты пиздабол.
2. Чтобы управлять сериализацией используйте аннотации.
Аноним 29/11/23 Срд 22:24:20 2943115 179
Когда я разыменовываю указатель и получаю доступ к полю из памяти достается вся структура или только значение поля?

*input.Field здесь сначала будет получена вся структура и потом у нее возьмётся значение поля или будет получено только значения поля?
Аноним 29/11/23 Срд 22:43:27 2943153 180
>>2943115
А как ты представляешь, как она "достаётся из памяти"? Она ведь не на диске лежит, а в RAM - Random Access Memory, то есть доступ к элементам в памяти осуществляется произвольно.
В указателе хранится адрес объекта. Когда ты его разыменовываешь ты обращаешься к участку памяти, на который указывает этот адрес. То есть даже в этом случае никаких затрат памяти не производится дополнительно. Когда ты обращаешься к полю этой структуры, адрес этого поля высчитывается неким образом и так ты можешь достать значение этого поля.
Для полной ясности я бы посоветовал ещё дизасемблированный код посмотреть.
Аноним 29/11/23 Срд 23:01:56 2943184 181
>>2943153
Ну меня больше интересует при коде:
input.Field
input.Field2
(Х повторений)
Будет каждый раз обращение к памяти или го умный и закеширует структуру чтобы потом к ней обращаться
Аноним 29/11/23 Срд 23:02:35 2943185 182
>>2943184
Перед инпутом звездочка*
Аноним 29/11/23 Срд 23:20:29 2943221 183
>>2943184
>Будет каждый раз обращение к памяти или го умный и закеширует структуру чтобы потом к ней обращаться
В общем случае будет 2 обращения к памяти, в лучшем случае компилятор оптимизирует. Детали как всегда зависят от конкретного кода.
Аноним 29/11/23 Срд 23:22:07 2943227 184
>>2943221
Короче если планируется обращаться к большому количеству полей по указателю лучше разыменованное значение сохранить в переменной и обращаться уже через нее
Аноним 29/11/23 Срд 23:42:08 2943257 185
>>2943227
>Короче если планируется обращаться к большому количеству полей по указателю лучше разыменованное значение сохранить в переменной и обращаться уже через нее
Нет.

Если есть проблема с перформансом - надо бенчмаркать, а потом уже на основе этого оптимизировать и снова бенчмаркать. А эту ебалу с оптимизацией на уровне интуиции оставить.
Аноним 29/11/23 Срд 23:52:17 2943276 186
>>2943257
А в чём этот анон не прав? Как минимум это хорошее начало - уже не будет тратиться ресурсов на разыменование
Аноним 30/11/23 Чтв 01:30:50 2943346 187
>>2943276
Преждевременная эякуляция оптимизация - корень многих зол. Кстати, кто это сказал?
Аноним 30/11/23 Чтв 01:39:38 2943347 188
Гойспода, сейчас я чисто для лулзов читнул свежеизданный Go Cookbook (см. scanlibs.com).

И с удивлением узнал, что в стандартной библиотеке нет способа сделать reverse sort для слайса чисел, например. И в книжке рекомендуется отсортировать прямо, а потом в цикле переставить в обратном порядке.
Но, а как же "... имеет богатую и универсальную стандартную библиотеку"? Это типа дохуя богато и универсально?

Вообще, при более-менее близком знакомстве c Go складывается впечатление, что Го-программисты люди не ленивые, и дублирование кода для них обычная практика, например. И сто километров для них вообще не крюк.
Аноним 30/11/23 Чтв 02:23:25 2943368 189
Аноним 30/11/23 Чтв 02:25:27 2943369 190
>>2924117
первым языком за который получал бабки был голанг, так что не согласен со всеми этими выражениями "на го не берут джунов" и всё в этом духе
в мск огромный набор постоянно в гиганты, типа вб, озон
Аноним 30/11/23 Чтв 08:25:07 2943417 191
>>2943369
Сколько лет назад это было? Сейчас рыночек поменялся и почти на всех языках берут от мидла и выше только.
Аноним 30/11/23 Чтв 10:17:09 2943467 192
>>2943346
Подобные вещи проверяются один раз и не меняются в зависимости от кода. На уровне бест практисов нужно это закреплять
Аноним 30/11/23 Чтв 10:26:29 2943480 193
>>2943417
Охуительные истории. А до мидла как? Или то что раньше называли джуном теперь считается мидлом?
Только не надо пздеть про перенасыщенность отрасли, вакансии есть, просто в отрасль проникли туророгие русские кабанчики, которые хотят 20 летнего сеньора с личным ютубом, твиттером гуглом и с опытом работы 25 лет.
Аноним 30/11/23 Чтв 10:32:04 2943487 194
>>2943480
Все рисуют фейковый опыт и рассказывают как они уже 2-3 года где-то поработали. Порожек входа в айти теперь выше.
Многие, кто давно вкатились, до сих пор этого не понимают и советуют молодым то, что уже не актуально. По их советам новичок будет получать отказы на уровне кадровой службы, даже до собеса не дойдёт. Причём для го эта ситуация наиболее острая. На других языках с этим полегче и порог входа не такой крутой.
Аноним 30/11/23 Чтв 11:44:12 2943535 195
>>2943369
Чет меня не взяли недавно в озон, авито и ещё один стриминговый сервис, коммерческого опыта на го нет, хотя базовый синтаксис изучил и курс на работе прошел. Коммерческий опыт: последние 4 года на пистоне (автоматизация всякой хуйни -> джанга -> фласк, грпц, фастапи), и до этого ещё 5 лет пердолился с бд. С ноября ищу новую работу и уже потихоньку начинаю обмякать, без коммерческого опыта на го никто не хочет брать.
Аноним 30/11/23 Чтв 12:23:02 2943577 196
>>2943347
Я много лет писал на джава и до твоего поста даже не задумывался про такое ограничение. У меня реально ни разу не возникала задача отсортировать числа по убыванию. В 99.999% приходится сортировать объекты, а там всегда есть компаратор.

>>2943347
>Вообще, при более-менее близком знакомстве c Go складывается впечатление, что Го-программисты люди не ленивые, и дублирование кода для них обычная практика, например. И сто километров для них вообще не крюк.
Это правда.
Аноним 30/11/23 Чтв 12:35:05 2943601 197
>>2943535
Смотрю этого дядечку последнее время. Он уже 2 года учит го и не может вкатиться. Сплошные отказы. Хотя опыта в других языках у него десятки лет.
https://www.youtube.com/watch?v=aPu46ozF-JQ

Так что я тоже не верю в эти сказки, что типа выучил го и тебя на работу взяли. Наверно сейчас реально вкатиться только если внутри фирмы переходите с питона или РНР на го.
Аноним 30/11/23 Чтв 12:55:15 2943647 198
>>2943467
>На уровне бест практисов нужно это закреплять
Ну да, ну да, удачи тебе поработать с кодом, где разраб до тебя накостылил своих бестолковых оптимизаций с указателями, а после обновления рантайма в системе плавают непонятные баги в многопотоке, которые возникают в зависимости от фазы луны и отладка больше напоминает гадание на кофейной гуще. Не просто так вся эта залупа абстрагируется от работы с памятью, не можешь удержаться от байтоёбства - пиши на сишке.
Аноним 30/11/23 Чтв 13:13:14 2943671 199
>>2943647
Речь не о каком-то метапрограммировании,поведение не изменится от того будешь ли ты делать разыменование на каждый гет переменной либо же сохранишь в переменную разыменованный объект. Здесь нет никаких сложных оптимизаций,байтовых сдвигов и тд и тп
Аноним 30/11/23 Чтв 13:21:43 2943684 200
>>2943671
Что там под капотом происходит одному богу известно, и представь себе гипотетическую ситуацию: чел прихоидт на собес, его спрашивают, какие оптимизации применял и как лечил ботлнеки, а он такой отвечает - ну я пердолился с указателями на структуры. Никто в здравом уме не возьмет на работу человека, у которого появляются мысли заниматься такой хуйней.
Аноним 30/11/23 Чтв 13:30:39 2943704 201
>>2943601
Ебать он жесткий,700 трансляций запилил
Аноним 30/11/23 Чтв 13:35:34 2943716 202
>>2943684
Нет братан,это обычный вопрос от человека который посмотрел пару лекций по го. На уровне чем линкед лист от эррей листа отличается. И эта информация известна не только богу. Вопрос элементарный для человека,работающего с го больше чем две лекции,так что если ты не в курсе такого то это исключительно твоя проблема. Я подожду ответа более опытных и компетентных анонов
Аноним 30/11/23 Чтв 13:55:42 2943751 203
>>2943577
>Это правда.
Я очень много лет пишу на джаве. И ещё много на чём.
И среди всего этого, Go кажется мне наименее выразительным языком. Несколько раз пытался начать писать на нём что-то посложнее, чем просто учебный код, и каждый раз реально начинает тошнить.
Т.е., в нём практически отсутствуют эффективные средства выражения мыслей и построения абстракций. Интерфейсы - да, но, блядь, как же убого это сделано. Для большого проекта - это просто пиздец. И, параллельно, куча подводных камней просто на ровном месте. Здесь играем, здесь не играем, здесь опять играем, а здесь вообще рыбу заворачивали.
Именно поэтому дублирование кода повсеместное. Потому, что нету эффективных средств не дублировать.

Как сказал Дейкстра - инструменты, которыми мы пользуемся, оказывают глубокое и тонкое влияние на наше мышление, и на саму нашу способность мыслить. И в этом плане Go на меня оказывает примерно то же действие, что и встроенный язык 1С.
Аноним 30/11/23 Чтв 14:12:42 2943775 204
>>2943716
Здесь нужно понять, тратится ли при этом больше памяти.
Далее - по результатам - понять, что тебе важнее - память или производительность (и там и там разница будет копеечная).

Ещё лучше - сделай бенчмарк производительности (как советовали выше). Цикл на миллион повторений и сравни время. Всё полезнее, чем хуиту на дваче писать, лол.
Аноним 30/11/23 Чтв 14:29:39 2943789 205
>>2943276
>Как минимум это хорошее начало - уже не будет тратиться ресурсов на разыменование
При написании кода думать про производительность нужно, спору нет. Но тут речь идёт о том, что нужно думать про глобальные вещи: как сократить число чтений из базы, как уменьшить число вызовов сторонних сервисов, не повторять одну и ту же операцию дважды и т.п. А микрооптимизации на уровне доступа по указателю это херня которую не заметишь на уровне лишнего чтения из базы.

Конечно если у тебя какой то инфраструктурный проект типа базы данных или кэша тут такие оптимизации будут уместны. Но тогда тоже следует начинать с профилирования, бенчмарков и анализа сгенерированого кода.
Аноним 30/11/23 Чтв 14:39:27 2943795 206
>>2943751
Тут полностью согласен. Но зато код очень прямолинейный и простой для понимания. Тут нет такого как в Спринге: повесил аннотацию и класс начал валидировать реквесты и по стектрейсу вообще не видно твоего кода. Единственная головная боль, это то что интерфейс не реализуется явно и найти имплементации не работает. Разбираться в существующем коде долго из-за того что его много, но очень просто.
Аноним 30/11/23 Чтв 15:17:16 2943827 207
>>2943795
>код очень прямолинейный и простой для понимания
Да, всё так. И это хорошо.
Плюс - охуенная concurrency из коробки и много чего ещё интересного.
Поэтому я и продолжаю пытаться постичь этот дзен. В смысле - наработать интуицию, принять такие подходы.
Иначе давно бы нахуй бросил.
Аноним 30/11/23 Чтв 15:17:25 2943829 208
Почему в говяхе нет опциональных/дефолтных параметров?
Даже попытка взять энвы превращается с функцию с лукапами, который разработчик каждый копирует из проекта в проект.
Аноним 30/11/23 Чтв 15:26:55 2943842 209
>>2943829
Сделай сам.
Какие-нибудь функции типа GetOrDefault(environment, paramName, defaultValue)

Думаю, дело в том, что довольно многие Го-девелоперы просто не очень умеют в настоящее программирование. Поэтому, дублируют код даже там, где можно не дублировать.
Аноним 30/11/23 Чтв 16:56:55 2943971 210
>>2943842
Печально что при изучении новой и современной технологии для решения конкретных проблем приходится сталкиваться с такими детскими болезнями, вроде 2к24 на носу, искусственный интеллект уже код пишет, а тут приходится откровенно ерундой бестолковой заниматься, это как надевать портянки с лаптями вместо нормальной обуви.
Аноним 30/11/23 Чтв 17:12:47 2944002 211
>>2943601
У нас есть сервисы на питоне и го.
Чсх, сервисы на питоне быстрее.
Аноним 30/11/23 Чтв 17:15:36 2944008 212
>>2944002
РНР сейчас тоже с каждой версией всё быстрее и многопоточку сам оптимизирует. Так что может го и не нужен будет в будущем.
Аноним 30/11/23 Чтв 17:49:50 2944094 213
>>2943601
Go - очень сложный язык.
Синтаксис простой, да. Вот только язык - это не синтаксис.
Да и простота бывает такая, которая хуже воровства. Вот как в Go.

Так что максима "Го не для вкатунов, а для свитчеров" - вполне себе справедлива. В смысле, что человек, не умеющий программировать, ничего путного на Го не сделает, если это его первый язык. Разве что под постоянным руководством ментора.
Аноним 30/11/23 Чтв 17:53:26 2944102 214
>>2943535
Не совсем понятно, зачем тебе Го после Питона.
Но, если таки нужен - не лезь в крупные компании, и не ищи сразу много денег.
Аноним 30/11/23 Чтв 19:15:16 2944351 215
>>2943347
>что в стандартной библиотеке нет способа сделать reverse sort для слайса чисел, например. И в книжке рекомендуется отсортировать прямо, а потом в цикле переставить в обратном порядке.
>Но, а как же "... имеет богатую и универсальную стандартную библиотеку"? Это типа дохуя богато и универсально?
ну проблема тут в том что автор не знает про slices.SortFunc и sort.Slice
Аноним 30/11/23 Чтв 21:14:09 2944489 216
>>2944351
И правда не знает, лол.

Автор - рубист в прошлом. Хули с него взять.
При этом резюме у него внушающее.
Он сингапурец, работает в госконторе, что-то типа наших Госуслуг, и занимается там вот этим вот самым. В послужном списке - 3 изданных книги по Руби, и эта, четвёртая, по Го (сент. 2023).

Sau Sheong has been in the software development industry for more than 28 years and has been involved in building software products in many industries and using various technologies. He is an active member of various software development com‐ munities, previously Java and Ruby, but now focuses mostly on the Go community. He runs meetups and gives talks at conferences all around the world on Go and also on topics related to his work, especially on sustainability, smart cities, government, and AI. He also runs GopherCon Singapore, one of the largest community-led devel‐ oper conferences in Southeast Asia, and has been doing so since 2017. Sau Sheong has written four programming books, three in Ruby and the last one in Go.
Аноним 30/11/23 Чтв 22:24:50 2944569 217
>>2943601

У меня кореш джуном заскочил по счастливой случайности, даже собеседования не было. В резюме напиздел про опыт, на собеседовании тимлид дохуя занят был, поэтому поздоровался, бросил пару коротких фраз и сразу нанял. Хотя кореш не то что особо умный и к тому моменту он только синтаксис знал, программистом не работал никогда. Я, посмотрев на него, тоже пытаюсь повторить, но пока ем говно. Я еще и человек склонный сдаваться, на нервяке постоянном, типа без работы сижу, а лет уже дохуя. Но всегда хотел в погромисты, понимаю, что если не сейчас, то никогда в жизни, поэтому всякую хуйню учу и стараюсь не охуеть от количества информации, которой не знаю.
Аноним 30/11/23 Чтв 23:13:05 2944601 218
>>2944569
>и стараюсь не охуеть от количества информации, которой не знаю.

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

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

Мне до сих пор бывает немножко стыдно, когда я вспоминаю, сколько я напиздел о своих навыках в резюме, когда устраивался на первую работу в IT много-много лет назад. Это была просто чудовищная хуцпа. И это сработало.
Тут правда, есть один нюанс - я был хорошо мотивирован, был готов отвечать за базар и впахивал как конь. И реально охуевал от количества информации, которую приходилось учить. Только это была реально нужная информация, а не мои домыслы и предположения о том, что нужно.
Аноним 30/11/23 Чтв 23:15:09 2944603 219
>>2944601

Спасибо за мотивацию, анон.
Аноним 01/12/23 Птн 00:17:49 2944652 220
>>2944601
И преждевременная эякуляция
Аноним 01/12/23 Птн 07:47:10 2944737 221
Как избавится от папки .idea? Она лезет прямо в гит-репозиторий, а ей там явно не место. Добавить в .gitignore? Но тогда она и там будет отсвечивать, указывая что автор использует какую-то конкретную иде. Смотрел на гитхабе, что почти все репозитории чистые, без гитигнора и лишних папок. Как им удаётся такое делать? Пишут все поголовно в вс коде или виме?
Аноним 01/12/23 Птн 08:19:10 2944743 222
Аноним 01/12/23 Птн 08:28:24 2944746 223
>>2944743
в гитигноре пропиши гитигнор
Аноним 01/12/23 Птн 10:41:25 2944834 224
Я постоянно вижу заголовок повсюду, в котором спрашивается, какую среду или библиотеку использовать для серверной разработки. Учебники YouTube начинаются с произнесения чего-то похожего, а затем, через 5 минут, они импортируют модуль из GitHub. Практически все перечисленные там проекты используют внешнюю библиотеку для маршрутизации или что-то подобное.
Существует ли на самом деле проект, который использует только стандартную библиотеку и драйвер базы данных?
Если нет, возможно, сусликам следует перестать говорить, что стандартной библиотеки достаточно, или хотя бы перефразировать ее.
Аноним 01/12/23 Птн 11:51:58 2944909 225
>>2944834
Все до единой библиотеки маршрутизации для го это обертки для дефолтного http разной степени говености, так что тейк не засчитан
Аноним 01/12/23 Птн 12:09:54 2944935 226
>>2944909
Какая обертка наименее говённа?
Аноним 01/12/23 Птн 12:28:19 2944942 227
>>2944737
В идее есть же плагин для .gitignore
И там есть даже пресеты для типичных задач, и можно одной кнопкой настроить игнор всей этих идеевских штук, это не только папка .idea, там ещё много чего.
Аноним 01/12/23 Птн 12:33:05 2944946 228
>>2944834
Ты немножко неправильно понимаешь, что такое "стандартная библиотека". Высокоуровневые веб-серверные штуки и не должны там быть.
Аноним 01/12/23 Птн 13:15:40 2944991 229
image.png 66Кб, 225x225
225x225
>>2944946
>не должны там быть
QoL штуки тоже
Аноним 01/12/23 Птн 13:47:42 2945017 230
>>2944737
>без гитигнора
Они игнорят гитигнор же.
Есть разные мнения о том, стоит ли это делать.
Можешь просветиться в интернетах.
А вообще - это на твоё усмотрение, особенно, если речь идёт об учебных проектах. А в не-учебных тебе скажут, как надо.
Аноним 01/12/23 Птн 14:19:55 2945043 231
Что за дроч на стандартные либы? Типа вам норм каждый раз копировать код из проекта в проект или ваша репа с шаблонным кодом не считается за либу?
Аноним 01/12/23 Птн 14:27:07 2945065 232
>>2945043
Стандартная либа - это чтобы _не_ копировать. И не изобретать велосипед.
Аноним 01/12/23 Птн 16:22:02 2945239 233
Как ориентироваться в этом зоопарке библиотек и фреймворков? Планирую начать писать пет-проект, но совершенно не понимаю что для него использовать. Стандартная библиотека потребует написания огромного количества "велосипедов", а какой фреймворк выбрать - не знаю. К тому же вдруг я выберу совсем не то и меня не возьмут на работу из-за этого? Скажут - гляди, такой тупень выбрал фреймворк N, а мы используем M и ни за что не возьмём его с N.
Аноним 01/12/23 Птн 16:33:30 2945263 234
Сейчас на ютубе посмотрел для сравнения РНР собесы и го собесы. На РНР спрашивают: расскажите что такое трейт? Замечательно, вы приняты! На го-собесах: сейчас будем 2 часа решать алгоритмические задачи на горутинах и перформансом. О, вы не написали свой компилятор го в процессе обучения? Для нас это красный флажок. Скорей всего вы нам не подходите.
Аноним 01/12/23 Птн 16:43:39 2945293 235
>>2945263
Потому что тащить говяху туда, где не нужен мнопоточный перфоманс будет только ебанутый
Аноним 01/12/23 Птн 17:26:18 2945400 236
>>2945263
Такое ощущение что ты вбираешь между пыхом и голенгом, только вот выбор этот такой же бредовый, как выбор между трамваем и карьерным самосвалом, главный вопрос в том, какие технические проблемы ты собрался решать?
Аноним 01/12/23 Птн 17:32:26 2945409 237
>>2945263

У меня на го спросили мапу, слайсы, стринги и стрингбилдер, ебучий sync пакет и тд.

В то же время на пыхе спрашивали в основном про постргрю и прочую ебку базы
Аноним 01/12/23 Птн 17:53:51 2945432 238
>>2945400
Мне надо устроится на работу, чтобы жить на что-то, а водить трамвай или самослав - второстепенный вопрос.
Аноним 01/12/23 Птн 18:01:39 2945443 239
Аноним 01/12/23 Птн 18:31:08 2945485 240
>>2945065
Т.е. надо каждый раз писать свой fasthttp?
Аноним 01/12/23 Птн 21:03:47 2945852 241
>>2945485
Не понял, это что, троллинг тупостью?
Стандартная библиотека - это то, что входит в дистрибутив языка.
Все эти пакеты, типа fmt или sync.
Аноним 01/12/23 Птн 21:06:43 2945860 242
>>2945432
Тогда учи PHP, тут даже думать нечего.
Го вообще не очень годится на роль первого языка, и, тем более, первой работы. А пыха - вполне себе да.
Аноним 01/12/23 Птн 21:26:37 2945897 243
>>2945485
Я, кажется, понял, что ты имел в виду.
Если ты хотел сказать, что неправы те, кто дрочит на то, что надо использовать только стандартную библиотеку, а остальное хуярить самому, то я полностью согласен, это идиотизм.

Просто я тут выше писал про бедность стандартной библиотеки Го, и продолжил на той же волне, лол.
Аноним 01/12/23 Птн 23:22:06 2946086 244
Вам никогда не хотелось "посахарить" язык? И ведь это даже не дожно скзаться на перфомансе, так как потом все равно раскручивается до простых изначальных конструкций
Аноним 02/12/23 Суб 00:01:14 2946150 245
>>2946086
Можешь привести конкретный пример того, что тебе хотелось бы посахарить?
Аноним 02/12/23 Суб 00:17:32 2946170 246
>>2946086
Нет, голаг изначально должен быть необоснованно неудобным и сложным, в этом суть языка. Главное занять программиста чем нибудь, чтоб разработка была маскимально долгой, заставлять его писать одни и те же паттерны снова и снова, повторять одни и те же конструкции.
Тогда кодревьюеру будет приятней читать код, а qa делать тесты. Голанг это не язык для программистов, а язык для менеджеров этого самого программиста, чтоб всесторонне контроллировать его и сделать мозг максимально шаблонным.
Аноним 02/12/23 Суб 00:29:10 2946190 247
А че вы стонете от бойлерплейта во времена копайлота? Оно же само пишется.
Аноним 02/12/23 Суб 01:20:42 2946225 248
>>2946190
>Оно же само пишется
Да.
Но, к сожалению, оно само не читается.
А на чтение кода программист тратит в несколько раз больше времени, чем на написание.
Аноним 02/12/23 Суб 04:19:29 2946268 249
>>2946225
Зато авторевьюится. Это важно. Важнее читаемости. Ведь го это язык для менеджеров.
Аноним 02/12/23 Суб 09:11:32 2946291 250
>>2945239
бля анон, суть в том, что в Go тебя не спрашивают про знание фреймворков. точнее спрашивают, но на уровне "что-то видел, с чем-то работал". они от стандартной либы далеко не ушли - ну там будут какие-то QoL вещи ну и хуй с ними. я лучше на собесе посмотрю как челик вейтгруппами/мютексами умеет пользоватся и поспрашиваю про глубины шедулера/гц. но мы всякими файберами/фастхттп не пользуемся, у нас свои велосипеды. ну и если ты юзаешь исключительно горм и не можешь sql запрос написать, то вероятно пройдешь нахуй.

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

>>2944834
ну для простых сервисов её достаточно. роутер не поддерживает параметры в путях, но для внутренних сервисов можно тупо post для всего использовать и передавать значения в теле. рестуху для внешних апих конечно хуево делать на стандартной либе, пока там параметры не поддержали, но ищью у них на гитхабе такая открыта.
Аноним 02/12/23 Суб 09:13:39 2946292 251
>>2944834
ну и бля там в стандартной либе нет драйверов, только интерфейс для драйвера и либа чтобы его использовать более-менее удобно. так что хуй знает как ты хочешь с нереализованным интерфейсом БД пользоваться. sqlx если што от sql не особо далеко ушел и переписать на ручной сканнинг Rows тривиально
Аноним 02/12/23 Суб 09:30:02 2946294 252
>>2946291
Ты рисовал фейковый опыт в резюме, чтобы приглашали на собесы?
Аноним 02/12/23 Суб 09:50:00 2946299 253
>>2946294
нет, я на хх нашел стажерскую вакуху без опыта/откликнулся/прошел, потом рекрутеры сами писали
Аноним 02/12/23 Суб 15:27:33 2946603 254
>>2946291
Опять "только стандартные либы"...
Вы олимпиаду делаете или рабочие сервисы? Либо ты пздишь, либо тебе очень сильно насрали в голову на работе.
Аноним 02/12/23 Суб 15:52:15 2946645 255
>>2946603
хз о чем ты говоришь. я нигде не сказал, что мы используем только стандартные либы. я сказал, что нормальным конторам знание ваших фреймворков нахуй не нужны. нужно знание языка.
и да даже если бы мне насрали в голову на работе, то в чем проблема, когда мне платят, а тебе нет? )))
Аноним 02/12/23 Суб 16:10:48 2946696 256
>>2939263
Что то не пойму какие ты задачи макросами решаешь и метафункциями(даже лень читать что такое, по названию понятно что говно)_
Это все похоже на один большой костыль на уровне архитектуры, т.е. теги гошки это самое безобидное что есть.
Аноним 02/12/23 Суб 16:39:18 2946773 257
>>2946645
Хуями тебе платят. Лучше никак, чем так.
Аноним 02/12/23 Суб 17:15:28 2946845 258
>>2946773
ну вообще лучше хуями, чем никак
Аноним 02/12/23 Суб 17:15:36 2946846 259
Бляяяяя,какие же у вас уебищные интерфейс? Просто вот нахуя? Что за душевнобольной придумал такую всратую поеботу?
Аноним 03/12/23 Вск 00:44:00 2947566 260
>>2946846
ООП дауна видно издалека
Аноним 03/12/23 Вск 02:14:13 2947630 261
>>2946773
>Лучше никак, чем так.

Мне кажется, ты не понимаешь сути Го.
Копирование кода, велосипеды, ехал-цикл-через-цикл и т.п. - это _официальные_ бест практисиз в Го. Если ты такое не любишь - тебе надо что-то другое.
Аноним 03/12/23 Вск 02:16:33 2947633 262
>>2946846
Ты джавист? Я - да.
Это не те интерфейсы, не надо вестись на "знакомые слова".
Го - это совсем другой язык, и пишут на нём по-другому.
Аноним 03/12/23 Вск 02:33:15 2947648 263
>>2947630
А зачем го такое? Почему синтаксис сделали таким? То что оно там внутри быстрее это ок, но почему сам язык сделан так, это как-то помогает разработке?
Аноним 03/12/23 Вск 02:41:56 2947654 264
>>2925723
Физически плохо - это нормально, это мозг потрескивает просто. Можно и поехать, да, если слабый духом, бьёт по самооценке. Но если мотивирован, то обычный проходной этап.
Сам также вкатывался в течение нескольких лет: берешься за что-то, и бьешься головой о стену, очень плохо, не выдерживаешь, бросаешь, восстанавливаешь психику и силы, через какое-то время повторный цикл, но уже продвигаешься чуть дальше, и так раз за разом постепенно выходишь на плато, где тебе в целом комфортно, а новые испытания уже не так больно даются, и пусть не просты, но вполне решаемы.
Просто вся эта хуйня контринтуитивна, в природе ее нет, в нас это не заложено природой, поэтому сначала нужно сломать мозг, а это больно и неприятно, выдерживают единицы, самые стойкие и мотивированные, остальные на каком-то из промежуточных этапов бросают, не выдерживают, прям как в меме про js и проститутку.
Аноним 03/12/23 Вск 02:55:25 2947657 265
>>2932209
Потому что хороший инструмент стоит денег, и отбивает их с лихвой
Житбрейнсы не зря хлеб жуют, их анализатор синтаксического дерева с индексацией, инспекциями, рефакторингами и исправлениями - это реально полезная хрень, которой больше нигде нет
Да, оно жрет много ресурсов. Но оно того стоит, когда распробуешь. А ресурсы сейчас - вопрос небольших денег, даже днищепрогер с одной ЗП себе позволит nvme + 64gb ddr5 + 7950x, и будет в хуй не дуть, кайфуя в умной ide. На современном железе оно работает так же быстро и легко, как любой блокнот.
А сейчас к ide они еще и прикрутили ии-сопрограммиста, который всю рутину берет на себя, и с которым можно обсудить наилучшее решение, в котором он тебе подскажет наиболее подходящий функции, о которых ты даже не слышал, забыл, или не подозревал/не думал что их можно использовать в таком контексте
В общем после их ide уйти на что-то более тупое уже нереально, к хорошему быстро привыкаешь
Аноним 03/12/23 Вск 02:58:30 2947658 266
>>2947633
А зачем вообще нужны интерфейсы? Какую пользу они приносят? И в джавовском и в го понимании
Аноним 03/12/23 Вск 04:34:41 2947674 267
>>2947648
Сложно объяснить.
Это другой язык, другой подход к разработке. Более низкоуровневый. Проще в одном, сложнее в другом.
Ты пытаешься понять это, не выходя из (например) джавы.
А надо выйти.
Вообще, если на низкоуровневых языках не писал никогда ничего, и нет никакого представления о том, как оно вообще всё внутри работает, то это будет сложно.

Другой вопрос - зачем?
Чтобы понять - попробуй читни какую-нибудь годную книжку по Го - Cloud Native Go, например.
Аноним 03/12/23 Вск 04:41:31 2947675 268
>>2947658
Охуенный вопрос.
Интерфейсы нужны чтобы абстрагироваться от реализации.

Ты говоришь: Мне нужна хуйня, которая делает Икс, и мне вообще похуй, как она это делает. Например, в джаве один и тот же код может читать данные из файла, из порта, из строки и т.п., в зависимости от того, какая реализация интерфейса Reader в него была передана. В го - примерно так же, только сделано по-другому.
Аноним 03/12/23 Вск 05:08:41 2947679 269
>>2947674
>Cloud Native Go
Уточню - имеется в виду книжка "Cloud Native Go: Building Reliable Services in Unreliable Environments" O'Reilly, 2021 год, см. scanlibs.com.
Есть ещё другая, с таким же названием (но, с другим подзаголовком), более старая и немножко не о том.
Аноним 03/12/23 Вск 06:07:15 2947685 270
>>2947674
Я работал раньше с контроллерами сименса для нефтегазовых шкафов управления. Мне байты и вот это всё как вода для рыбы. Сейчас же работаю на питоне.

Меня больше смущает излишний синтаксис и в целом неудобство самого языка.
К примеру, чтоб на питоне запустить две асинхронные таски, достаточно сделать
await asyncio.gather(task1(), task2())
или другими способами. Можно их создать через циклы и передать какую-нибудь очередь для воркеров к примеру, которая заполняется в другом месте
q = asyncio.Queue()
workers = [worker(q, i) for i in range(10)]
await asyncio.gather(*workers)
То же самое на го делается более громоздко.
Аноним 03/12/23 Вск 06:15:32 2947686 271
>>2947685
когда илон маск изобретал го он хотел сделать так чтобы в языке было минимум синтаксиса чтобы все было просто для того чтобы в код было просто читать
Аноним 03/12/23 Вск 07:28:09 2947699 272
>>2947685
Какой-то очень неудачный пример "неудобства" Го.
Как раз именно асинхронщина и конкурентность там сделано просто охуенно.
В отличие от питона, в котором ещё и настоящей многопоточности нет, одна видимость.

И ты загляни в исходники этого asyncio. Посмотри, что там.
Это вообще довольно высокоуровневая вещь, с event loop etc.
А в Го - немножечно другое, более низкоуровневое. Есть какие-то либы с event loop, но, я не разбирался.

Но, Го - язык действительно неудобный. Корявый просто пиздец.
Такое ощущение, что специально делали максимально непохоже на Си и си-образные языки. Чтобы на каждом шагу программист спотыкался, и вспоминал, что это не Си, не Джава, а Го, ебать его в сраку.
Алсо, тут стоило бы ещё вспомнить о том, что всё, что делает Гугол, является совершенно неюзабельным говном, лол.
Аноним 03/12/23 Вск 09:16:37 2947730 273
>>2947699
>Это вообще довольно высокоуровневая вещь, с event loop etc.
Почему в го не сделали удобные интерфейсы для работы со всем этим? У меня основной бугурт от этого в говяхе. Ты сначала изобретаешь их заново, а потом только пользуешься, хотя реализация, в целом достаточно общая и могла быть сделана заранее уже в языке.
мимо
Аноним 03/12/23 Вск 12:44:25 2947890 274
>>2947730
>Почему в го не сделали удобные
Потому, что как в том армейском анекдоте:
- Солдаты, мне не надо "быстрее и удобнее", мне надо, чтобы вы заебались.

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

Читать исходники стандартной библиотеки - просто невозможно. В пакете 30 файлов, с хуй пойми какими названиями, и все друг на друга _неявно_ ссылаются. Т.е. в этом файле используется функция MakeZalupa, угадай, в каком из оставшихся 29 файлов она определена? Как эту срань можно использовать для промышленного программирования - для меня загадка.

И это, блядь, новый язык, _специально_ разработанный для того, чтобы код, блядь, в исходниках, было _просто_ читать, понимаете, да?

Воистину, го-девелоперы люди не ленивые, и грузить го-вно в самосвал чайными ложками им совершенно не трудно.
Аноним 03/12/23 Вск 12:46:00 2947893 275
>>2947675
>В го - примерно так же, только сделано
через жопу.
Аноним 03/12/23 Вск 12:51:12 2947897 276
>>2947890
>Кроме одного - глядя в исходник невозможно понять, из какого именно файла того или иного пакета взят тот или иной символ.
нахуя тебе файл знать? на ревью либо файл будет в диффе, либо его не будет в диффе и тебе все равно придется его открывать в редакторе. в 2к23 все редакторы умеют к имплементации переходить.
Аноним 03/12/23 Вск 12:57:21 2947910 277
>>2947897
Ты уверен, что понимаешь, что такое "программирование"?
Аноним 03/12/23 Вск 13:16:09 2947942 278
>>2947910
так ты объяснить можешь зачем тебе файл видеть, когда в пакете не может быть дублирующихся идентификаторов?
Аноним 03/12/23 Вск 13:47:33 2947960 279
>>2947699
То что там костыльная асинхронность это и так известно, главное что она работает и работает как надо.
Я чисто про сам синтакс, как вот это вот всё писать.Я работаю с кодом, с буковками скобочками и вот этим всем, а что внутри мне не интересно, хоть сингулярность.
Аноним 03/12/23 Вск 14:00:10 2947981 280
>>2947960
Это разные вещи, понимаешь?
Система на базе event loop (т.е. постоянно выполняющаяся в отдельном потоке программа) и просто языковые примитивы для конкурентности.
Аноним 03/12/23 Вск 14:10:17 2948002 281
>>2947981
Я знаю как она работает. Про многопоточность тоже знаю, про многопроцессорность. Чем отличаются. Я асинхронность использую чаще, тк только в основном запросы делаю.
Аноним 03/12/23 Вск 14:19:16 2948015 282
>>2948002
Твой вопрос скорее про то, почему какую-то штуку типа питоновского asyncio не сделали частью стандартной библиотеки.

Ну, так в джаве тоже нет такого. И в перле нет. И вообще нигде, я думаю. Потому, что это не уровень стандартной библиотеки. А вот в питоне есть.
Ну так питону уже очень много лет. И всё это там успело, так сказать, кристаллизоваться. И это был довольно непростой процесс. И только потом это стало частью языка.
Аноним 03/12/23 Вск 14:29:32 2948029 283
>>2948002
Кстати, не секрет, для какого рода задач ты это используешь? Какие запросы?
Аноним 03/12/23 Вск 16:21:55 2948176 284
>>2948029
Обычная сортированная mq с тасками по 2-10 запросов. Очереди появляются динамически, кажду должен обслуживать только один воркер.
Сделана кастомно через редис zset, т.к раббиты и прочие не устраивают по скорости, настройкам и излишним фичам. Заранее не известно сколько таких очередей может быть и как они называются, кроме префикса.
Аноним 03/12/23 Вск 16:23:32 2948180 285
>>2948176
Если кратко - обычные чаты со сторонними апи, с дополнительными запросами кроме самих сообщений.
Аноним 03/12/23 Вск 16:33:32 2948191 286
>>2948176
А какая предметная область?
Коммерция, финтех, что-то ещё?

Кафку не пробовали? Мощная вещь.
Аноним 03/12/23 Вск 21:13:02 2948652 287
>>2948191
Кафку хз. Я с тех пор вообще критично отношусь к сторонним сервисам, да и зачем, если 100 строк кода делают то же самое, только без дополнительных штук. Редис у меня и так есть, а разворачивать ещё один сервис немного сомнительно.
Необходимости в кафке пока нету. Я пробовал яндекс очереди использовать, там задержки пздц, у меня же мессенджер, а не запланированные задачи. Очередь нужна только чтоб сортировать список по времени и не отправлять все сообщения разом.
Она занимается тем что перессылает сообщения из одних мест в другие. Самого чата как такогового нету.
Аноним 03/12/23 Вск 21:13:38 2948653 288
>>2948652
Вообще коммерция да, crm-ки
Аноним 03/12/23 Вск 22:07:02 2948799 289
>>2947890
Для того чтобы узнать в каком именно файле лежит условная MakeZalupa(кому вообще не похуй в каком) тебе нужно зажимая ctrl кликнуть по MakeZalupa. Плюс мне очень интересно что же это за другие яп которые тебя в этом плане устраивают
Аноним 03/12/23 Вск 23:07:09 2948979 290
>>2948799
Сегодня читал исходники net/http на pkg.go.dev
Зажимал ctrl, как ты советуешь - никакого результата.

>что же это за другие яп которые тебя в этом плане устраивают
Python, Perl, Java.

Не, я понимаю, что в IDE оно удобнее.
На джаве я только в IDE и пишу, разумеется.
Но, речь была не об этом, а о дизайне языка.
В котором как-то дохуя implicit вещей, с учётом того, что он задуман как читаемый, понятный и т.п. А по факту - корявая хуита (просто визуально тяжело воспринимается) и концов хуй найдёшь (см., например, неявную имплементацию интерфейсов там, где она должна быть явной).
Аноним 04/12/23 Пнд 00:10:29 2949081 291
Аноним 04/12/23 Пнд 01:03:02 2949187 292
>>2949081
В вскод же есть го ту дефинишон. Не работает? Когда последний раз на го писал вроде работало.
В питоне с метапрограммирование это пздц как бесит, до какого-то времени вообще непонятно было как и где инициализируется это говно, особенно motor, ладно сейчас показывает норм с новым pylance
Аноним 04/12/23 Пнд 02:04:26 2949236 293
>>2948979
Так если тебе, дружок, не нравится неявная имплементация интерфейсов (утиная), ты об этом и пиши, а не вкидывай невнятную хуйню о том как тебе дико мешает что при читании сорцов в браузере видите ли не показывают файл где лежит искомое
Аноним 04/12/23 Пнд 03:42:42 2949253 294
>>2949236
>утиная
Хуиная.
Как правило, в большинстве случаев имплементация явная.
И надо было просто добавить соответствующий синтаксис.
А там где утиная - тоже добавить, только другой.
Потому, что explicit is better than implicit.
И всегда приятно, когда концы сходятся с концами.
Это снижает cognitive load.
Код на нормальном языке читается на уровне подсознания.

То же и про файлы.
Почему, блядь, в JS/TS/Java всегда понятно, откуда что берётся, а в Го - нет? Просто похуй? Кому надо - тот найдёт? Понимаю.
Говно и палки, как и было сказано.

Про более тонкие вещи даже говорить не хочу.
Аноним 04/12/23 Пнд 12:15:21 2949504 295
>>2949253
С другой стороны, у такой реализации интерфейсов есть один большой плюс.
Можно делать интерфейсы пост-фактум, для уже написанного кода, чужого или своего. А потом добавлять новый код, использующий и реализующий их.
Аноним 04/12/23 Пнд 13:00:59 2949556 296
image.png 32Кб, 711x460
711x460
>>2949504
https://youtu.be/PF8d1r-jTN8

Будет смешно если в уже написанном коде метод иначе называется. Мне кажется проще явный клссс адаптор шмякнуть как в Java8
Аноним 04/12/23 Пнд 14:16:21 2949670 297
Существует ли дата саенс на Го?
Аноним 04/12/23 Пнд 16:07:18 2949750 298
>>2949504
>Можно делать интерфейсы пост-фактум, для уже написанного кода, чужого или своего.
В нормальных языках: создают интерфейс, описывают контракт функций.
В говно языке: пишут код, а потом под него подгоняют интерфейс.
Аноним 04/12/23 Пнд 16:19:44 2949771 299
Пытаюсь научиться всяким штукам в го через adventofcode, там во второй задаче есть инпут типа
Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green
Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue
Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red
Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red
Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green

В какую сторону вообще копать, чтобы забить данные из подобного текста по шаблону в виде каких-то переменных?
Аноним 04/12/23 Пнд 20:31:36 2950175 300
image.png 136Кб, 440x440
440x440
>>2949750
> В говно языке: пишут код
Аноним 04/12/23 Пнд 22:10:15 2950314 301
>>2949750
>пишут код, а потом под него подгоняют интерфейс.
Это называется "итеративная разработка".
Аноним 04/12/23 Пнд 22:14:25 2950319 302
Я покакал жидко,оцените перфоманс,посрал если что указателем на говно
Аноним 04/12/23 Пнд 22:22:15 2950326 303
Аноним 04/12/23 Пнд 22:29:39 2950337 304
>>2950319
Т.е. у тебя запор, говно осталось в жопе, а в унитаз ты передал указатель на него? Хитро.
Аноним 04/12/23 Пнд 22:30:43 2950340 305
>>2950337
Нет,говно я складировал в монго дб тк там высокая скорость доступа
Аноним 04/12/23 Пнд 23:57:05 2950446 306
>>2950326
Я хуею, разрабам языка что, букв жалко на нормальные названия? фмт, сс скан ф, и еще такой же метод, только с одной с, как будто кто-то в пьяном угаре копировал из сишки самые ебанутые названия и смешивал их между собой.
Аноним 05/12/23 Втр 00:06:55 2950464 307
image.png 3585Кб, 4858x3335
4858x3335
Аноним 05/12/23 Втр 00:11:56 2950472 308
>>2950314
>Это называется "итеративная разработка".
Это называется неспособность к системному мышлению. Этим страдает не только Го, но и значительная часть динамодристни. ИЧСХ в Го линковка типа и интерфейса осуществляется в рантайме при первом использовании, прамо как вся это утиная типизация из динамодристни.
Аноним 05/12/23 Втр 00:14:20 2950475 309
>>2950446
> копировал из сишки
Ну, в данном случае таки именно копировал, и именно оттуда.
Чтобы люди с опытом видели знакомые буквы. А ньюфаги - привыкнут.

Ну, и говей тоже, как заметили выше.
Аноним 05/12/23 Втр 00:26:50 2950490 310
>>2949253
> То же и про файлы.
> Почему, блядь, в JS/TS/Java всегда понятно, откуда что берётся, а в Го - нет? Просто похуй? Кому надо - тот найдёт? Понимаю.
Ну зачем блять, зачем ты продолжаешь это приводить в пример и жидко серить под себя, бестолочь
Аноним 05/12/23 Втр 00:37:58 2950497 311
>>2950472
>осуществляется в рантайме при первом использовании

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

Так реализованы интерфейсы в Го.
Это не бесплотные абстракции или контракты, как в Java или Typescript. Это _значения_ (пара указателей). Эти значения надо инициализировать. И это, естественно, делается в рантайме.
Аноним 05/12/23 Втр 00:39:52 2950500 312
>>2950490
Потому, что считаю это досадной недоработкой.
Впрочем, спишем это на приверженность создателей языка к минимализму. Недостатки как продолжение достоинств.
Аноним 05/12/23 Втр 01:18:21 2950521 313
>>2950497
>Ты явно чего-то недопонял, если считаешь это каким-то (пусть даже теоретическим) недостатком.
>Например, то, что переменным значения присваиваются в рантайме тебя не беспокоит? Это не как в "динамикодристне"?
Совсем того? Присваивание переменной значения это именно то, для чего программа и нужна. А система типов, в статически типизированном языке подразумевает, что типизация будет делаться статически, а не крякать в рантайме.
А в го этого не сделали потому, что интерфейсы так через жопу реализованы, что порождают слишком много возможных комбинаций. И приходится переносить это в рантайм, чтобы создавались только те пары которые реально используются.
Аноним 05/12/23 Втр 02:06:30 2950553 314
>>2950521
Чувак, интерфейсы в Го - это не про статическую типизацию (в привычном понимании). И в этом весь секс.
Именно интерфейсы - это самая замечательная часть Го, а не конкурентность (которая тоже охуенна).

Тебе надо расширять сознание, я думаю.
Аноним 05/12/23 Втр 02:15:06 2950556 315
>>2950553
Так может объяснишь в чем пиздатость интерфейсов? В JS и питоне вот нет никаких интерфейсов и нормально вроде живут.
Аноним 05/12/23 Втр 02:17:49 2950557 316
>>2950556
В пихоне есть абстрактные квассы и протоколы для этого, правда в большинстве случаёв они нахуй не нужоны.
Аноним 05/12/23 Втр 02:18:05 2950558 317
>>2950521
Так и в джаве статическая типизация нихуя не работает во время рантайма. Сейчас я беру класс, реализую интерфейс. Потом в рантайме обновляю джарник с интерфейсом, джарник с использованием этого интерфейса, а джарник с классом оставляю старым. И дальше у тебя работает не типизация, а правила бинарной совместимости, изучай - https://docs.oracle.com/javase/specs/jls/se21/html/jls-13.html#jls-13.5.4

Если тебе прям надо, в го проверка сводимости типа к интерфейсу во время компиляции делается одной строчкой в любом месте (обычно рядом с описанием структуры):
`var _ Iface = (*IfaceImpl)(nil)`
Вот такой тебе implements, если надо. А если не надо, то и не пиши его.
Такие интерфейсы тебе приносят нишевые варианты использования, как например комбинирование интерфейсов, или имплементация интерфейсов для любого локального типа, хоть функции - https://cs.opensource.google/go/go/+/refs/tags/go1.21.4:src/net/http/server.go;l=2132

PS. Cамые охуенные системы типов работают максимально прозрачно и максимально близко к динамикодрисне - ты трейтами описываешь что тебе нужно от типа принимаемого объекта, а дальше компилятор сам всё проверяет. Хуле ты к го доебался, да еще с джавой, которую без ломбоковой кодогенерации и DI уже никто и не использует, лол.
Аноним 05/12/23 Втр 05:23:09 2950577 318
Аноним 05/12/23 Втр 05:25:41 2950578 319
>>2943601
>Он уже 2 года учит го и не может вкатиться. Сплошные отказы. Хотя опыта в других языках у него десятки лет.
Ну, как-бы это показатель. Если у него опыта десятки лет, то ему где-то под полтинник. Кому нужен кодер-скуфидон, который вот-вот выйдет на пенсию?
Аноним 05/12/23 Втр 08:02:27 2950592 320
не смотрите вид[...].webm 1308Кб, 540x960, 00:00:15
540x960
>>2950446
Тебя заставляют что ли писать на го?
Аноним 05/12/23 Втр 08:04:38 2950593 321
>>2950578
Он тут на днях признался, что устроился на РНР. Будет пилить какую-то CMS на Ларе. Вот и думайте!
Аноним 05/12/23 Втр 11:06:34 2950726 322
Аноним 05/12/23 Втр 11:15:37 2950733 323
>>2950578
>под полтинник
>вот-вот выйдет на пенсию
Юноша, вы вообще в курсе про пенсионный возраст?
А потом, если сейчас детей рожают в 35+, то "полтинник" это типа сильно дохуя?
Это называется "в самом расцвете сил", лол.

Алсо, это чисто россиянская тема, что программист должен быть в памперсах и сисю сосать. А на западе хуева туча кодеров 60+, и всё прекрасно.
Аноним 05/12/23 Втр 11:41:35 2950760 324
>>2950556
>в чем пиздатость интерфейсов?
Вообще или в Го?
Если вообще - то долго. Если в Го - то тоже долго.
Есть очень много вещей, которые нельзя понять, просто прочитав чьё-то объяснение. Для понимания необходимо пройти путь. Это занимает время и требует сил.
Если спросишь более конкретный вопрос - попробую ответить.
Аноним 05/12/23 Втр 12:18:37 2950796 325
>>2950733
Тут дело не только в программистах. В россии принято в 20 лет уже иметь тугосерю, тян, квартиру и ипотеку, а в 30 можно и на упокой. В западных странах многие люди в 30 только вышку получать начинают, да и то особо не делают акцент на нём.
Аноним 05/12/23 Втр 12:21:22 2950801 326
>>2950446
Это чтоб кодер запаривался, уставал, было чем заняться и чтоб у него в принципе не было возможности проявить самодеятельность.
Я ж говорю, го для менеджеров, а не программистов.
Аноним 05/12/23 Втр 13:12:53 2950873 327
>>2950558
>Так и в джаве статическая типизация нихуя не работает во время рантайма.
Сейчас я беру GraalVM, сертифицированную JVM на минутгчку, компилирую всё в нативный образ и шлю тебя нахуй с левыми примерами.

>делается одной строчкой
Спасибо за очередной элегантный костыль.

>>2950558
>Cамые охуенные системы типов работают максимально прозрачно
Ты только что поделил на ноль твой любимый говноланг. В этом говне как раз максимально непонятно нахуй strings Builder.WriteString() возвращает nil error.


>Хуле ты к го доебался, да еще с джавой, которую без ломбоковой кодогенерации и DI уже никто и не использует, лол.
Я джаву не упоминал вообще, это твои личные заскоки что она тебе везде мерещится. Таблетки прими.
Аноним 05/12/23 Втр 13:42:17 2950914 328
>>2950796
Не совсем правда про западные страны. В целом от 25 летнего человека уже много чего ожидается.
Аноним 05/12/23 Втр 13:52:04 2950943 329
>>2950796
>В россии принято
Кем принято? Шизам, которые покупают курсы от инфоцыган? Знакомые, которые не в ойти только еботеки начинают брать к 28-30 годам, и то, с помощью родителей
Аноним 05/12/23 Втр 13:56:20 2950958 330
>>2950446
Посмотри лучше на функции в своём РНР. Там ни стиль наименования, ни позиции параметров не выдержаны. Каждая функция действительно уникальна и будешь всю жизнь их учить и никогда не запомнишь.
Аноним 05/12/23 Втр 13:58:36 2950967 331
>>2950914
Что ожидается? Что он в 25 девопсом должен быть? А в 40 че, в могилку?
Куда вы жить торопитесь, я не понимаю
Аноним 05/12/23 Втр 14:32:37 2951026 332
>>2950958
Так и здесь та же самая ерунда, только пыху уже 30 лет, когда его рожали еще на коболе писали, а Голенг позиционируется как свеже-модно-молодёжная технология от продвинутой конторы гугол, и это при том что уже существуют языки с прекрасным дизайном, казалось бы, даже рисёрч не нужен, бери и копируй 1 в 1, но нет, возьмем самые убогие практики из самых устаревших решений, пенсионеры оценят, а на остальных похуй.
Аноним 05/12/23 Втр 15:35:35 2951089 333
>>2950873
>Я джаву не упоминал вообще
Так ты шарпоблядок, что ли? Что жы ты раньше не сказал?
Хотя, можно было бы и догадаться, по характеру аргументации.
Аноним 05/12/23 Втр 15:41:34 2951094 334
Дак реально устроится без опыта работы или даже нет смысла пытаться?
Аноним 05/12/23 Втр 15:52:11 2951108 335
Аноним 05/12/23 Втр 15:53:20 2951110 336
>>2951094
Зависит от твоих ожиданий
Аноним 05/12/23 Втр 16:07:32 2951122 337
>>2951108
А что нужно уметь? Пока голангу учу, немного SQL знаю.

>>2951110
Удалёнка, но готов работать за еду
Аноним 05/12/23 Втр 17:10:14 2951196 338
>>2951122
>А что нужно уметь?
Ты хочешь работать по найму. Решать чьи-то проблемы и брать за это деньги.
Естественный вопрос - какие проблемы ты можешь решать?
Это необязательно должны быть какие-то сложные вещи, могут быть и совсем простые. Но, это должно быть именно умение решать проблемы.
В идеале - проанализировать ситуацию, увидеть проблему, предложить решение и/или решить.

Если у тебя есть английский на уровне, позволяющем тебе как-то читать книги - это большое дело.
Берёшь книжку по Го, читаешь, делаешь примеры, умнеешь etc.
Что-нибудь типа "Hands-On RESTful Web Services with Go (Second Edition)" или "Powerful Command-Line Applications in Go" или что-то подобное. Где рассматриваются конкретные проблемы и их решения.
Аноним 05/12/23 Втр 22:45:11 2951667 339
как джавовских чушпанов из нашего треда прогнать?
Аноним 05/12/23 Втр 23:39:21 2951729 340
>>2951089
>Так ты шарпоблядок, что ли? Что жы ты раньше не сказал?
Пиздец ты дегенерат, я на говноланге пишу, потому и бомбит.
Чем хуйней страдать, лучше бы по сути ответил, а еще лучше просто заткнулся.
Аноним 05/12/23 Втр 23:40:39 2951731 341
>>2951667
Таблетки прими и попустит.
Аноним 06/12/23 Срд 00:34:55 2951761 342
>>2951122
Удаленки есть, мелкие конторы, ищи на хх, всё время ищи, месяц, два. Будет с десяток отказов, но найдёшь. Заодно на тестовых поделаешь, посмотришь кто чем занимается.
Никто натаскивать тебя не будет нигде и никогда, ни сейчас, ни во время работы, ни через десять лет.
Аноним 06/12/23 Срд 00:41:24 2951766 343
>>2951196
Бл, что такого в этом ресте? Чё все носятся с этим рест апи, лучше б полезным вещам учили, например, архитектура проекта, да даже банальное расположение исходников в папке и то полезней будет. Это гораздо важнее и сильно поможет сделать код поддерживаемым.
Этот рест апи уже кринж какой-то честно говоря.
Аноним 06/12/23 Срд 01:58:25 2951804 344
>>2951766
>исходников в папке
Это всё в гайдлайнах прописано - стайл и бест практис, потом надо начинать что-то писать, рест-сервис это простое и в то же время самое базированное из всего, так как встречается в вебе повсеместно, набив руку на простых рест-крудах можно уже переходить к архитектуре, и нормальных книг по архитектуре на самом деле почти нет, есть паттерны проектирования, из которых строится программа, но это всё довольно абстрактно и в отрыве от практики не очевидно где какие инструменты применяются, так что этот этап требует создания большого количества кода и может затянуться на годы.
Аноним 06/12/23 Срд 02:06:23 2951810 345
>>2951804
По архитектуре вообще ничего нет. Каждый делает как хочет. После сотни рефакторингов и тысяч коммитов я так и не пришёл к чему-то одному чтоб было заебись. Но по крайней мере уже начал приходить к чему-то правильному.
Расположение исходников в папке на самом деле тоже часть архитектуры, позже это поможет разбивать проекты на микросервисы.
Аноним 06/12/23 Срд 02:47:02 2951820 346
>>2951766
Изучай Clean Architecture и DDD. Там вся база написана, единственно годная на текущий момент
Аноним 06/12/23 Срд 03:46:06 2951828 347
>>2951820
Про ddd пишут что это очень нужно, очень важно, полезно и дохуя круто, как какой-то философский камень. Просто мешанина из умных слов: единый язык - что за язык, причём тут это? Это и так очевидно что надо сделать какой-то стандарт. Какие-то суперабстрактные слова, даже не сущности, слабо отссылающиеся на реальный проект.

На примерах же видно что это блин то же самое что мы и делаем всегда. Модели данных, валидация, разделение классов, работа. Приходит запрос, происходит валидация на какую-то модель, передача другой системе из матрёшки других моделей по такой же схеме, прямо здесь или на другом сервисе и даётся ответ. Это подаётся так будто это технологическая сингулярность.
Не знаю, может я что-то не понимаю.
Аноним 06/12/23 Срд 06:39:16 2951853 348
>>2951828
>На примерах же видно что это блин то же самое что мы и делаем всегда. Модели данных, валидация, разделение классов, работа. Приходит запрос, происходит валидация на какую-то модель, передача другой системе из матрёшки других моделей по такой же схеме, прямо здесь или на другом сервисе и даётся ответ.
Ты только что описал типичную анемичную модель данных где у тебя контроллеры, которые мапят дэтэохи в твою модель, которая мапится на таблицы в базе данных, которые ты потом передаешь в сервисы, где насрано бизнес логикой.
Это типичная архитектура долбаебов, которые могут несколько месяцев катить примитивную фитчу и в конце обосраться не только со сроками но еще и высрать тонну багов, которые будут фиксить на протяжении нескольких лет, т.к. писать тесты на подобный понос просто невозможно, т.к. тесты будут хрупкими и по-сути повторять логику твоего сервисного слоя
Аноним 06/12/23 Срд 11:00:49 2952016 349
>>2951810
>позже это поможет разбивать проекты на микросервисы
Ты так говоришь, как будто микросервисы это что-то хорошее, и, более того, обязательное к использованию. А это немножечко не так.
Это серьёзный оверхед, и нужны серьёзные причины, чтобы он стал приемлемым.
Аноним 06/12/23 Срд 11:11:15 2952030 350
>>2951828
>единый язык - что за язык, причём тут это?
Не "единый", а "ubiquitous".
Не надо читать русские говнопереводы.

Все участники проекта (включая экспертов в предметной области) должны говорить на одном языке. Если ты не понимаешь этого, значит просто не участвовал в больших сложных проектах, или участвовал, но, на низовых ролях.
Язык (человеческий) - это вообще важнейшая вещь в программировании. Так работает мозг. Ты не можешь писать программу, если не вполне понимаешь проблему. Именно поэтому вокруг столько плохих программ.
Тот же Дейкстра говорил, что исключительно хорошее владение _родным_ языком является важнейшим качеством для программиста. Очень рекомендую читнуть вот это (на русском):
https://informatika-21.ru/pdf/dijkstra.pdf
См. стр. 38, например.
Аноним 06/12/23 Срд 11:13:10 2952034 351
Аноним 06/12/23 Срд 11:20:40 2952049 352
>>2952016
По необходимости. Чтоб это было легко сделать, плюс это сбособствует разделению независимых участков кода.
Разбивать когда это не надо конечно не нужно, это идиотизм.
Аноним 06/12/23 Срд 11:25:01 2952058 353
>>2952034
Да это байтоеб, ему пох
Аноним 06/12/23 Срд 11:35:48 2952074 354
>>2952049
Нет, я не про разбиение вообще (сервисы, функциональные модули etc), а именно про микросервисы.
Это просто дичайший оверхед, и то, что сейчас это считается чуть ли не обязательным паттерном - это просто ужасно. Вообще, вся эта облачная хуйня - это реальная деградация. Возврат в каменный век, буквально.
Аноним 06/12/23 Срд 11:40:01 2952085 355
>>2952074
Он хорош в том плане что передача данных между сервисами идёт через grpc, это быстрее и удобней в плане разработки. Микро это или нет уже другой вопрос.
Аноним 06/12/23 Срд 12:03:10 2952130 356
>>2952085
Вот, это тот самый случай, когда отсутствует ubiquitous language.
Я тебе про Фому, а ты мне - про Ерёму.

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

Когда я сказал, что облака - это деградация, я имел в виду, что куча отработанных паттернов сливается в унитаз, и всё начинается с нуля, на днищевом уровне. Про БД и транзакции я уже сказал. Другой пример - пользовательский интерфейс. Интерфейс в браузере - это днище. Но, сейчас уже выросло целое поколение, которое этого не понимает, и нормальных бизнес-UI не видело никогда. И т.д.
Аноним 06/12/23 Срд 12:05:16 2952135 357
>>2952074
>Вообще, вся эта облачная хуйня - это реальная деградация. Возврат в каменный век, буквально.
Это не хуйня, когда тебе действительно нужны облака
Аноним 06/12/23 Срд 12:07:28 2952139 358
>>2952130
>Интерфейс в браузере - это днище
Потому что либы для нативных интерфейсов говно ебаное
Аноним 06/12/23 Срд 16:42:28 2952639 359
>>2952130
А как лучше, железный сервер у себя в подвале держать?
Аноним 06/12/23 Срд 16:56:22 2952683 360
Сегодня опять сорвался и полдня учил РНР. Сейчас сижу и корю себя за срыв.
Аноним 06/12/23 Срд 16:57:37 2952687 361
>>2952683
Ничего страшного,гоферу необходимо время от времени писать на нормальном языке чтобы не заработать птср
Аноним 06/12/23 Срд 17:02:44 2952698 362
>>2952639
Любая программа проходит через этап "сервер в подвале", так как это тупо дешевле и проще, 99 из 100 на этом этапе остановится, из них одна выстреливает - переезжает в цод, прменяется простое масштабирование по количеству инстансов и cdn, и только потом, когда программа уже приносит хорошую прибыль и продолжает расти - нанимают опытных разрабов, максимально формализуют все требования на бумаге, проводят рефакторинг и монолит распиливают на микросервисы. Пилить программу сразу в микросервисной архитектуре - это бред, постоянное изменение требований и подгон под реалии просто задушат разраба, так как микросервисы - это очень сложная и мудовая в работе штука, а когда внятных требований нет - нет возможности продумать изоляцию данных и логики, релиз затянется до второго пришествия.
Аноним 06/12/23 Срд 17:06:55 2952703 363
>>2952683

Сам работаю на PHP, есть пара проектов на Go. Пытаюсь перекатиться в Go но блять сотыги сложно найти РАБоту куда меня возьмут без просадки по ЗП, учитывая годы опыта ковыряния PHP и гомофреймворков под него
Аноним 06/12/23 Срд 17:08:11 2952705 364
>>2952698
>Любая программа проходит через этап "сервер в подвале"

Из какого года капчуешь? Щас этот этап заменен на облако. Облако для прототипов куда лучше сервера в подвале
Аноним 06/12/23 Срд 17:10:07 2952709 365
>>2952703
У тебя хотя бы работа есть, а мне грозит голод и накопление долгов
Аноним 06/12/23 Срд 17:14:51 2952714 366
>>2952705
Да, да, главное кредитку привяжи пожирнее, чтобы счета выставлять, когда забагованный код случайно утилизирует месячную квоту за пару часов.
Аноним 06/12/23 Срд 17:24:58 2952730 367
>>2952714
Аренда своих датацентров это уже следующий уровень, когда проект приносит профит, нагрузка предсказуемая без резких скачков и есть время на оптимизировацию затрат.

>когда забагованный код случайно утилизирует месячную квоту за пару часов
Выставляешь алерты/делаешь квоту и говняка не будет
Аноним 06/12/23 Срд 18:00:19 2952799 368
>>2952714
Код на проде в принципе не может месячную квоту утилизировать. Если у тебя есть способность кидать на прод забагованную сборку, то земля бетоном, что уж сказать.
Аноним 06/12/23 Срд 18:29:03 2952885 369
>>2952714
>Да, да, главное кредитку привяжи пожирнее, чтобы счета выставлять, когда забагованный код случайно утилизирует месячную квоту за пару часов.

Возьми тогда vps-ку где по месяцу. Если у тебя нормальная посещалка то того интернет соединения что ты покупаешь себе в хату тебе будет мало. А хороший тариф дают только юрлицам.
Аноним 06/12/23 Срд 18:46:27 2952932 370
>>2952799
менеджер в треде, давайте посмеемся
Аноним 06/12/23 Срд 19:41:13 2953058 371
>>2952639
Лучше виртуальный сервер на железяке, которая стоит в серверной комнате.
А серверная комната в нашем случае - таки в подвале, лол.

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

Вообще, "монолит vs микросервисы" - это классическая ложная дихотомия.
Это просто разные вещи, под разные случаи использования, со своими плюсами и минусами.
Аноним 06/12/23 Срд 19:51:55 2953083 372
>>2952683
Если у тебя нет опыта, но тебе нужна работа, чтобы было на что жить - то PHP - это один из лучших вариантов.
А Го никуда не денется. Будешь не вкатуном, а свитчером, лол.

Это не говоря о том, что приличный девелопер должен более-менее свободно знать несколько языков. Причём, один из основных - английский.
Аноним 06/12/23 Срд 22:27:39 2953233 373
>>2953058
>виртуальный сервер на железяке, которая стоит в серверной комнате.
>А серверная комната в нашем случае - таки в подвале, лол.
Чего стыдиться, нормальный вариант абсолютно - когда эти чипы китайские продают на развес, собрал стойку, накидал этого барахла на полтерабайта оперативы, пачку процессоров, даже на галимый китай хуйнанжи встаёт xen-виртаулизация, ssd, а там уже крутится всё что нужно, мощности там лошадиные абсолютно, и стоит буквально хуйню.
Аноним 06/12/23 Срд 22:42:34 2953250 374
а они добавили в тулчейн телеметрию? или их захуесосили и на этом нахрюк закончился?
Аноним 07/12/23 Чтв 08:23:24 2953425 375
Есть тут те, кто трудоустроился в 2023 году?

Сколько готовились?
Аноним 07/12/23 Чтв 15:24:58 2953932 376
Тыкал в тайпскрипт с ряктом, а тут на стажировку устроился, мне на собесе предложили этот ваш го учить.
Так вот, а что можно интересного и небольшого с этим го сделать то? Просто с жсом я могу нахуярить по-быстрому spa, которое что-то будет делать и выглядеть заебись, а тут только в консоли ковыряться, если в сложные вещи не лезть, я даже как-то хз.
Аноним 07/12/23 Чтв 16:20:40 2954062 377
>>2953932
Да много чего. Какие-нибудь сервисы по перевариванию одного говна в другое. Короткие ссылки или ещё какую залупу
Аноним 07/12/23 Чтв 16:25:03 2954073 378
>>2953932
>стажировку устроился
Удалёнка или в офисе?
Аноним 07/12/23 Чтв 16:27:22 2954081 379
>>2954073
Удаленка (но я не в рф если что)
Аноним 07/12/23 Чтв 17:15:21 2954198 380
>>2953932
>что можно интересного и небольшого с этим го сделать то?
В Го - встроенная поддержка JSON.
Простейший REST API сервис для твоей SPA делается в несколько строк кода, буквально. Без базы данных, аутентификации и т.п. естественно.
Аноним 07/12/23 Чтв 17:24:47 2954219 381
Методы vs Функции

Го - не обычный ОО язык. Если в обычном методы рулят вообще всем, то в тут - не так.
Насколько я сейчас понимаю, методы нужны только в 2-х случаях:
1. Имплементация интерфейсов, это очевидно.
2. Инкапсуляция полей - только геттер, только сеттер, сложная логика вычисления значения поля и т.п.
Во втором случае поле является не-экспортируемым, и для него определяются сеттер и/или геттер. В этом случае можно использовать и функцию, но, с методом лучше. И можно и интерфейс прикрутить - сразу или позже.
Аноним 07/12/23 Чтв 18:18:14 2954319 382
>>2954219
Методы нужны для работы с конкретным объектом. Функции общие.

Всё.
Аноним 07/12/23 Чтв 18:40:34 2954359 383
>>2954219
че спросить то хотел
Аноним 07/12/23 Чтв 18:55:25 2954384 384
>>2953932
Напиши свой докер или оператор для кубов какой-нибудь
Аноним 07/12/23 Чтв 19:43:16 2954438 385
>>2954319
>Всё.
Не понял, а чо ты такой дерзкий, сынок?
И типа функции не подходят для работы с конкретным объектом, или что?

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

Это вопрос к тем, у кого есть реальный опыт работы
Аноним 07/12/23 Чтв 20:37:16 2954478 386
>>2954438
Вопрос про методы, процедуры и функции это вопрос чисто теоретического характера из учебника по общей информатике, им валят ленивых студентов первокурсников на зачетах, практического смысла не имеет.
Аноним 07/12/23 Чтв 21:08:35 2954503 387
>>2954478
Какой ещё блядь "общей информатики"?
Что за хуйню ты несёшь?
И, главное - зачем?
Аноним 07/12/23 Чтв 21:22:51 2954523 388
>>2954503
Той самой, первый семестр первого курса, лабораторная работа №4, такие недоступные, такие непонятные, будоражащие умы методы, процедуры и функции.
Аноним 07/12/23 Чтв 21:44:08 2954542 389
изображение.png 439Кб, 1049x629
1049x629
>>2954523
>лабораторная работа №4
Вот эта, что ли?
Аноним 07/12/23 Чтв 21:48:55 2954546 390
>>2954523
Мальчик, будь так добр, сделай дедушке одолжение - залезь обратно в ту дыру, из которой ты вылез.
Аноним 07/12/23 Чтв 22:17:28 2954597 391
>Лучше виртуальный сервер на железяке, которая стоит в серверной комнате.
>А серверная комната в нашем случае - таки в подвале, лол.
>Чего стыдиться, нормальный вариант абсолютно
Пиздец днище. Почему в шаро/джава/питоно-треде нет таких днище идей? Почему такие обсоски только тут?
Аноним 07/12/23 Чтв 22:36:29 2954627 392
Если функция обрабатывает только один конкретный объект, то его надо сделать методом. Всё просто как дважды два. Зачем вести душные дискуссии на тему, я не понимаю.
Аноним 07/12/23 Чтв 22:37:12 2954628 393
>>2954597
А в чём, собственно, днище?
В идее о том, что свои данные надо хранить у себя, а не у дяди?
Скока тебе годиков, сыночка?
Аноним 07/12/23 Чтв 22:38:18 2954630 394
>>2954627
Ты снова написал какую-то дичь.
Кем ты работаешь, если не секрет?
И сколько тебе платят за вот такую вот экспертизу?
Аноним 07/12/23 Чтв 22:54:43 2954654 395
>>2954628
>А в чём, собственно, днище?
>В идее о том, что свои данные надо хранить у себя, а не у дяди?
Никакому хостеру не уперлись данные твоих "Рога и Копыта". Кого стоит боятьcя, так это ментов, вот эти придут технику опечатают и заберут и сиди и без техники и данных.
Это еще не поднимая вопрос, как обеспечить бесперебойную работу хотя бы на уровне 99.9%.
Аноним 07/12/23 Чтв 23:32:21 2954703 396
>>2953250
под кроватью глянь телеметрию
Аноним 08/12/23 Птн 00:01:17 2954715 397
>>2954654
Да.
И камеру заклеивать на ноуте тоже не надо.
Бизнес-ноутбуки, правда, делают со шторками на камерах, но, это просто так, чисто для лулзов.
Аноним 08/12/23 Птн 00:13:08 2954721 398
>>2954627
Почему такие хуепуталы занимают нормальные позиции, а я новую работу на го не могу найти?
мимо синька на петухоне
Аноним 08/12/23 Птн 00:21:41 2954723 399
>>2954597
Потому что го рекламируется как очень быстрый и производительный язык. Идеальное сборище для байтоебов и вечных вкатунов, которые считают микросекунды для своего невелосипеда.
Вместо того чтоб наконец закончить проект, они думают что лучше использовать - методы или функции.
Аноним 08/12/23 Птн 00:28:36 2954727 400
>>2954721
Если "хуепуталы" занимают нормальные позиции, а ты нет, может ты хуепутало, не?
Аноним 08/12/23 Птн 00:37:28 2954734 401
Куда вкатываться - Go, Python, Node.js?
Аноним 08/12/23 Птн 01:21:15 2954761 402
>>2954727
Ну так он на то и хуепутало, что успел за счёт языка (не программирования) вовремя пролезть, а остальных теперь ебут по алгосикам и архитектуре, чтоб на место рядом с ним претендовать.
Аноним 08/12/23 Птн 02:58:57 2954779 403
>>2954723
>они думают что лучше использовать - методы или функции
А вот ты думаешь всегда об одном и том же - где бы покушать писюнов.
И снова и снова голод приводит тебя сюда, ты привычно пишешь то, о чём тебя не спрашивали, и получаешь очередную порцию.
Аноним 08/12/23 Птн 04:27:31 2954798 404
>>2954779
>И снова и снова голод приводит тебя сюда
Жалко, что не кадровый.

мимо
Аноним 08/12/23 Птн 13:02:42 2955150 405
>>2954761
ну кстати сейчас хожу по собесам на мидла (3 года опыта) и алгосов почти нигде нет. Ну я бы их в любом случае не нарешал, так что кайф
Аноним 08/12/23 Птн 13:37:44 2955196 406
>>2955150
Алгосов нет, ок.
А что есть?
И на какую зп ты претендуешь, имея 3 года опыта?
Алсо, на скольких собесах уже был? Ты в ДС?
Аноним 08/12/23 Птн 14:43:09 2955294 407
>>2954715
>Бизнес-ноутбуки, правда, делают со шторками на камерах, но, это просто так, чисто для лулзов.
В голос с этого скуфидона параноика. Иди галоперидолу наверни. А как пропустит пойди посмотри актуальные бизнес модели HP, Dell, Lenovo, Apple и найди там шторку.
Аноним 08/12/23 Птн 15:09:36 2955343 408
>>2955294
>скуфидона параноика
Может быть просто человек, увлеченный информационной безопасностью? Я вот после знакомства с метасплоитом все камеры на девайсах заклеил.
Аноним 08/12/23 Птн 15:13:55 2955355 409
>>2955294
Назвал оппонента "скуфидоном", и аж потеплело, правда?
Аноним 08/12/23 Птн 15:58:17 2955412 410
>>2955343
В наше время хочешь-не хочешь, а увлечёшься, лол.

Вообще, речь шла про серверы для внутри-корпоративных решений - виртуальный сервер on-premises vs виртуальный же сервер в облаке. Я сказал, что собственный - лучше, чем у дяди (>>2953058). Если можешь себе позволить.
Почему? Потому, что дядя проебёт твои данные, и ему вообще ничего за это не будет. Потому, что это прописано мелким шрифтом в пользовательском соглашении. Это во первых.
Во вторых - если облако за границей, то в наше время это немножечко неудобно. Если в РФ - то, твои данные не только проебут (вероятность x10), но и продадут или просто предоставят по запросу из органов. И ты узнаешь об этом позже всех.
Насчёт того, что в облаке надёжней (если не проебут, конечно) - это не всегда так. В моём случае - точно не так. Я умею делать такие штуки, о которых в средне-васянской конторе даже и не мечтают. И аптайм у нас лучше, чем в облаке, или, как минимум, не хуже.
Аноним 08/12/23 Птн 18:39:34 2955722 411
Чем сабж сложен для вкатыша и почему на нем сложно писать программы? Какие подводные, если я хочу перейти на него с си, например?
Аноним 08/12/23 Птн 18:47:47 2955725 412
>>2955722 >>2955712 →
Если бы ты хотел перейти с си - просто перешел бы, и всё.

Ну вот тебе пример - у тебя есть интерфейс Doer.
И есть структура его реализующая - SomeDoer.
Есть 2 функции: одна принимает переменную - doer Doer, другая - слайс - doers []Doer.
И у тебя есть 2 переменные типа SomeDoer - someDoer (один объект) и someDoers (слайс).
Можешь ты передать их в соотв. функции? Да-нет-почему?
(квадратные скобочки пропадут, скорее всего, но и так понятно)
Аноним 08/12/23 Птн 19:12:03 2955740 413
>>2955294
Ты блядь свой телефон посмотри и открой разрешения российских приложений. Охуеешь сколько их там, геолокация, блютуз, вайфай когда она вообще не работает с ними напрямую.
Аноним 08/12/23 Птн 21:54:02 2956071 414
1027993376.jpg 128Кб, 852x1200
852x1200
i654816.jpg 347Кб, 828x1200
828x1200
Перед изучением Go будет полезно почитать про C/C++, чтобы усвоить какие-то концепции? Например, стоит ли почитать книжку Кернигана про C и его же "Практику программирования", написанную в соавторстве с Пайком?

Вообще какие материалы НЕ про Go посмотреть, чтобы потом было понятнее, почему этот язык устроен именно так, и пользоваться им более грамотно.
Аноним 08/12/23 Птн 21:59:31 2956083 415
6155nkJPEbL.SL1[...].jpg 77Кб, 1000x1233
1000x1233
Аноним 08/12/23 Птн 22:23:20 2956113 416
>>2956071
>>2956083
Это лишнее, мне кажется. И концепции там другие.
В Си будет куча низкоуровневого говна, которое тебе не нужно в принципе, и которое будет только мешать пониманию сути.
Хотя, конечно, минимальное знание Си - вообще полезная для программиста вещь.

По сетям - есть книги для Го. По системному программированию - тоже. Зайди на scanlibs.com и сделай поиск типа go network programming, go system programming.

https://scanlibs.com/network-programming-go-language-2nd/
https://scanlibs.com/network-programming-go-secure-reliable/
https://scanlibs.com/hands-systems-programming-go/
Аноним 08/12/23 Птн 23:09:25 2956167 417
>>2956071
По языку советую читать документацию. Про компьютеры в целом это другая литература совсем. Книжки по конкретным языкам на 90% состоят из воды, лучше не забивать ими голову.
Аноним 09/12/23 Суб 00:29:05 2956243 418
>>2955343
>Может быть просто человек, увлеченный информационной безопасностью?
Увлечени инфобезом надо начинать с анализа угроз, а не пустопрожней болтовни про выдуманные шторки. AWS нет резона красть данные мелких говноконтор, профит минимален, а репутационные риски велики. А защищать данные AWS умеет лучше всяких энтузиастов увлеченных информационной безопасностью.

>>2955355
Скуфидон первый начал про возраст
>Скока тебе годиков, сыночка?

>>2955740
Ты вначале список ноутов дай, потом про разрешения приложений поговорим.
Аноним 09/12/23 Суб 00:35:15 2956246 419
>>2955412
>Потому, что дядя проебёт твои данные, и ему вообще ничего за это не будет.
Да ты сам проебешь в 100 раз быстрее дяди. У тебя никогда в жизни не будет столько денег, чтобы обсепечить отказоустойчивость на уровне облачных провайдеров.

>И аптайм у нас лучше, чем в облаке, или, как минимум, не хуже.
Ну давай расскажи: какой у вас в рогах и копытал SLA на реакцию в случае атеджа? А сколько магистральных линий интернета идут в ваш подвал? А каков запас топлива для дизельгенератора?
Аноним 09/12/23 Суб 01:02:20 2956264 420
>>2956167 >>2956243 >>2956246
Зачем ты тут умничаешь и флудишь здесь?
Иди в /b - там все твои друзья.
Аноним 09/12/23 Суб 09:53:18 2956386 421
>>2956167
Почему тогда в школе русский язык изучают не по энциклопедиям, а по учебникам? Может эта вода как раз позволяет усвоить материал лучше?
Аноним 09/12/23 Суб 10:25:53 2956414 422
>>2956071
>чтобы потом было понятнее, почему этот язык устроен именно так
Я как-то перечитывал книгу Кернигана про Си, и там прямо видно где авторам Го было больно настолько, что они начали делать новый язык точнее, им было больно от плюсов, и они хотели нормальный си для прикладных задач.
Но я не уверен, что это прямо очень полезно для профессионального роста.
Лучше почитать "100 ошибок Go" для углубления в язык, книгу с кометой про операционные системы (как раз недавно перевели на русский), и книгу с кабанчиком, чтобы понять, что в клиент-серверных приложениях ничего никогда не было просто и никогда не будет.
Аноним 09/12/23 Суб 10:51:25 2956430 423
>>2956414
Авторам Го было больно? С трудом верится что авторам этого чуда вообще знакомо чувство боли связанное с языками, иначе они действительно сделали бы нормально, а не так, как этот язык по факту устроен и выглядит.
Аноним 09/12/23 Суб 12:19:36 2956481 424
>>2956430
Ты говоришь так, как будто го делали какие-то хипстеры для хипстеров.
Го делали гигачады, которые придумывали ютф-8 и писали за один день программы для древних пекарен с нестандартной архитектурой.
Им не нравились сишные строки, массивы, адресная арифметика, управление зависимостями, они их переписали и добавили асинхронность прямо в синтаксис языка и им норм, у них теперь какой-то кусочек гуглового бэкенда быстро компилируется.
А страдают те, кто вкатился в го, потому что думал, что это модно молодежно и много денег плотят.
Аноним 09/12/23 Суб 13:24:08 2956510 425
>>2956430
кому война, а кому мать родна. создатели го не хотят повторения с++, которое такие как вы делаете с каждым языком
Аноним 09/12/23 Суб 14:47:22 2956670 426
К сожалению API уже не перепишешь, обратная совместимость не позволит этого сделать, так что Гошечка - уродец навсегда, таким родился, 70-летние деды не могут зачать здорового потомства, да и не видят они проблем, зрение уже не то, профдеформация байтоёбов это не шутки. Сейчас технология на хайпе как это бывает со многими новыми вещами, но деды уже пенсионеры, а пенсионеры уходят на почётный отдых, и останется Гошечка работать где-то на задворках гугла, в узких местах и параллельных задачах, а еще через 10 лет никто и не вспомнит что такое вообще было.
Аноним 09/12/23 Суб 15:13:14 2956723 427
>>2956386
Б-же, да делай что хочешь
Аноним 09/12/23 Суб 18:06:46 2956971 428
>>2956670
Ты ведь трогал себя в разных местах, пока это писал?
Не стесняйся, здесь все свои.
Аноним 09/12/23 Суб 23:36:44 2957334 429
>>2956670
спасибо за мнение. тебя гошники обидели или что
Аноним 10/12/23 Вск 13:50:52 2957673 430
Вкатунам же прямо говорят, Го - это не язык общего назначения, но что это значит? Это значит что у инструмента есть своя ниша, достаточно узкоспециализированная, под которую он создавался, то есть язык не эффективен ни для чего кроме параллелизма и изоляции в "микро"-программы, изначально не был заточен ни под что другое. То есть сравнивать такие вещи как Джава\ПХП против Го - изначально ошибочное суждение, Го это не замена ничему, это расширение горизонта. Го это просто напильник, которые стачивает острые углы других технологий, отсюда такая специфика найма, почему не берут на работу без опыта - кому нужен работник, у которого в ящике инструментов один лишь напильник?
Аноним 10/12/23 Вск 14:23:12 2957741 431
>>2957673
На двачах вкатунам говорят не вкатываться. Чтоб конкуренцию не создавать
Аноним 10/12/23 Вск 16:41:48 2957988 432
Вот постоянно слышу, что на го пишут высоконагруженные приложения. А можно где-то посмотреть примеры этих высоконагруженных приложений?
Аноним 10/12/23 Вск 16:55:19 2958025 433
Аноним 10/12/23 Вск 16:57:00 2958029 434
>>2958025
У них открытый исходный код сайта?
Аноним 10/12/23 Вск 16:58:55 2958035 435
>>2958029
Нет, если ты хочешь найти высоконагруженный опенсорс, то у тебя не получится. В опенсорсе в целом только инструменты для создания продуктов.
Аноним 10/12/23 Вск 16:59:41 2958038 436
>>2958035
Как тогда научиться писать высоконагруженные приложения, если их никто не показывает?
Аноним 10/12/23 Вск 17:01:38 2958042 437
>>2958038
Через работку, очевидно же. Ну и в целом, хуйлоад это в первую очередь про архитектуру и сустем дезигн.
Аноним 10/12/23 Вск 17:06:42 2958051 438
>>2958042
Но ведь на работу не берут, если не умеешь писать высоконагруженные приложения
Аноним 10/12/23 Вск 17:29:54 2958071 439
>>2957988
>на го пишут высоконагруженные приложения
Я вообще никогда не слышал за рубежом фразу "высоконагруженный". Это устаревшее понятие. Никто так не говорит, это чисто внутрироссийская тема. Примерно как "импортозамещение". Я и гуглил "high load websites", и книги смотрел, и статьи. Нихуя нет нигде. Скажи любому американцу "I make highload websites", он ахуеет и переспросит: в смысле высоконагруженные? Что ты имеешь ввиду?

Тема на самом деле высосана из пальца. Смысл короче в том, что люди просто пытаются выжать максимум ресурсов из нихуя. За рубежом это не актуально, так как там работают другие принципы. Там говорят "облачные технологии". То есть, я предоставляю код, а облака обслуживают всю аппаратную часть. И если завтра на сайт прибежит миллион хомяков, меня не ебёт как именно облака всю эту ораву обслужат. Я плачу только за количество вызовов. Оно десять миллионов раз по 1 секунде отработало, я оплатил эти 10 миллионов. А насколько оно нагружено, чего и как меня не касается.
Аноним 10/12/23 Вск 17:30:31 2958072 440
>>2958051
Ну вот и не работай. От работы кони дохнут.
Аноним 10/12/23 Вск 17:39:54 2958077 441
>>2958071
>Там говорят "облачные технологии".
Там уже маятник качнулся и упоминается новая методология "on-premise hosting". Скоро начнут писать сайты на перле.
Аноним 10/12/23 Вск 17:49:03 2958084 442
>>2958077
"On-premise" - это как раз то, что любят в России. У нас свой путь. Мы не ищем простых решений, лучше закупим сервера, наймём сисадминов, построим дата центр и будем всем этим самостоятельно рулить. Зачем нам готовые решения? Понятное дело, что "высоконагруженность" это компенсация. Люди экономят за счёт того что язык go компилируемый, он работает раз в 10-20 быстрее интерпретируемых языков. Соответственно, кабану легче купить условно говоря 5 серверов вместо 20 серверов.
Аноним 10/12/23 Вск 17:57:38 2958092 443
image.png 17Кб, 663x81
663x81
Орнул чутка. Нужно ли будет отправлять диаметр ануса в гугл, чтоб угодить всем?
Аноним 10/12/23 Вск 17:58:29 2958093 444
>>2958084
Найс готовое решение, которое отказывает тебе в сервисе потому что паспорт не тот и страна не та, ясное дело никто не хочет ничего приземлять, ебаться с железом, потому что это гемор, но жизнь повернулась так что всё приходится резервировать локально.
Аноним 10/12/23 Вск 18:01:32 2958096 445
>>2958071
Ахах
Многие пользуются хостингом, где надо платить за ядра, память, диски и тд. Вот там и нужен хайлоад.
А облака, где платят только за количество запросов редко кто пользуется
Аноним 10/12/23 Вск 18:53:16 2958159 446
>>2958093
>отказывает тебе в сервисе
Что ты мне говоришь, кто мне чо отказывает? Я до сих пользуюсь и амазоном и gcp. К тому же яндекс облако никто не отменял.

>>2958096
Это обычная экономия. Не обязательно для этого выдумывать новые слова. Есть прекрасные другие слова - resilience (устойчивость), scalability (масштабируемость), performance (быстродействие). Обычно говорят просто - решение масштабируемое или нет. Имеется ввиду способность выдерживать растущий поток трафика. А дальше уже разделяют вертикальное масштабирование или горизонтальное. Здесь хотя бы понятно о чём идёт речь. А "высоконагруженное" ни говорит ни о чём.
Аноним 10/12/23 Вск 19:03:56 2958172 447
>>2958159
>Что ты мне говоришь, кто мне чо отказывает? Я до сих пользуюсь и амазоном и gcp. К тому же яндекс облако никто не отменял.
Интересно как ты их оплачиваешь и как всё это вообще через бухгалтерию проходит, а так же как относишься к тому, что РКН банит пачками подсети облачных провайдеров, я вот лично так недавно с cloudflare впёрся.
Аноним 10/12/23 Вск 20:34:52 2958265 448
>>2958071
Два чая этому просветлённому.
Здесь мерилом работы считают усталость

На родине программирования это называется high performance.
Причины, скорее всего, примерно те же, по которым "screwdriver" по-русски называется "отвёртка". А не "завёртка" например.
Аноним 10/12/23 Вск 20:38:23 2958275 449
>>2957673
>Го - это не язык общего назначения
Это кто такое говорит? Твой дядя?
Те, кого я слышал, говорят, что Го - это Си 21-го века.
Аноним 10/12/23 Вск 20:50:05 2958300 450
>>2958077
>Скоро начнут писать сайты на перле.
Перл - охуенный язык. Но, сайты на нём писать сейчас не надо, конечно.
Я пару лет назад на нём написал интересную систему, которая в числе прочего, занимается многопоточной обработкой сообщений, приходящих по сети (через AnyEvent).

Система такого рода, что просто просится, чтобы её переписали на Го. Но, делать этого я не буду, т.к. производительность там не важна вообще (хотя Перл очень быстрый для скриптового языка, быстрее Питона). И используется сторонняя перловая либа, которую тоже тогда надо переписывать, а лень.
Аноним 10/12/23 Вск 22:58:38 2958479 451
>>2956264
Я поясняю дебилам, что они дебилы. Не нравиться natribu.org к твоим услугам.
Аноним 10/12/23 Вск 23:02:49 2958482 452
>>2958092
Это из-за шаблона:
fmt.Errorf("zalupa vo vremya drochka happens: %v", err)
т.е. у тебя один err оборачивается в другой, ну и тут как бы заглавные не уместны.

Можешь всплакнуть о стектрейсах Java/C#/Python/C++
Аноним 11/12/23 Пнд 00:17:56 2958543 453
>>2958482
Ну, ты же понимаешь, какой ценой даются те стек-трейсы, правда?
Аноним 11/12/23 Пнд 01:30:42 2958591 454
>>2958092
Ахуеть открытие, ЛИНТЕР к чему-то анально принуждает, а мы и не думали
Аноним 11/12/23 Пнд 01:52:34 2958596 455
>>2958543
Ценой более удобной отладки и поддерживаемости проекта?