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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 662 40 159
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №22 /go/ Аноним 17/02/23 Птн 19:37:02 2614678 1
op.png 245Кб, 629x629
629x629
Go-LogoBlue.png 15Кб, 1061x938
1061x938
index.jpeg 10Кб, 300x168
300x168
Screenshot from[...].png 37Кб, 314x313
314x313
Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, богатую и универсальную стандартную библиотеку функций и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

Обсуждаем язык, смеемся с залетных крестоносцев, обсуждаем почему нам не нужны дженерики, наследование и эксепшены, по каждому багу находим трехстраничный пост в официальном блоге 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

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

Предыдущий тред умирает здесь: >>1986204
Аноним 17/02/23 Птн 19:43:23 2614687 2
Аноним 17/02/23 Птн 19:46:58 2614697 3
>>2614678 (OP)
Вкатываюсь в deprecated джаву для залета в МЯСКОТ и надеюсь свитчнуться на гошечку внутри компании. Сеймиславы ?
Аноним 18/02/23 Суб 01:17:41 2615001 4
Анончеки, подскажите, как мне решить дилему
>ID *int64
или
>ID int64
или
>ID int64, idSet bool (фу блять фу нахуй)
При создании экземляра ID не известен, и получается после добавления в базу. Соответственно, как чекать, ID действительно 0 или не установлен.

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

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

В общем, рассудите, как лучше сделать. Ситуация же дефолт.
Аноним 18/02/23 Суб 09:27:46 2615066 5
Прочитал сейчас про срезы и если в них добавить новый элемент, то в одном случае он затирает элемент исходного массива, а в другом создаёт новый. То, что у меня с этого выгорела жопа, ничего не сказать. В каком вообще состоянии разработчики придумали это!? Почему нельзя было сделать предсказуемое поведение, где явно происходит создание новой сущности!?
Аноним 18/02/23 Суб 12:08:09 2615192 6
>>2614687
Почему в старом треде нет ссылки на перекат?
Аноним 18/02/23 Суб 13:31:51 2615274 7
>>2615001
type ID struct {
id int64
isset bool
}

func Create() ID {
return ID{0, false}
}

func (i ID) Set(id int64) {
i.id = id
i.isset = true
}

func (i
ID) Get() (int64, error) {
if i.isset {
return i.id, nil
}
return 0, fmt.Errorf("id not set.")
}
Аноним 18/02/23 Суб 19:14:28 2615719 8
изображение.png 170Кб, 1801x777
1801x777
Какая-то пиздота на пикрелейтед прилетела в мой пет.
Че с этим принято делать?
Не могу разобраться с тем что написано в go.sum
там действительно упомянуты какие-то древние версии
например есть такая строчка:
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod

Я даже не импортирую этот пакет напрямую и не вполне понял какой именно пакет его заимпортил.
go get -u сделал - кажется не помогло.

Как тут принято обновлять?
Аноним 18/02/23 Суб 20:24:51 2615819 9
>>2615719
Я, в принципе, понял в чем прикол.
https://github.com/google/gopacket/blob/v1.1.19/go.mod
Эти ребята вряд ли будут поднимать у либы golang.org/x/net версию ради меня?
И релиза от них не дождешься.

И нормально будет поигнорить сие странное уведомление, поскольку я знаю, конкретная уязвимость мою программу не затрагивает ?
Аноним 18/02/23 Суб 21:16:08 2615921 10
>>2615066
потомушто для каждого аппенда реаллоцировать слайс неэффективно
Аноним 19/02/23 Вск 01:55:34 2616158 11
>>2614678 (OP)
Под винду опенсорсное IDE удубное какое?
Аноним 19/02/23 Вск 11:16:11 2616344 12
>>2616158
Visual code не завезли под винду?
Аноним 19/02/23 Вск 12:01:53 2616403 13
Одним словом GOвно.
Аноним 19/02/23 Вск 20:00:21 2617076 14
>>2615001
>автоинкремент
>не равнялся 0
господи, с какими дураками на одной борде сижу

>>2615274
этот ещё и говнокодом обосрался
Аноним 20/02/23 Пнд 00:03:06 2617323 15
Аноним 20/02/23 Пнд 08:51:49 2617427 16
Как написать фронт для своего пет-проекта? Достаточно ли будет html-шаблонов или надо полноценный фронт делать на ангуляре, реакте или вуе?
Аноним 20/02/23 Пнд 09:15:48 2617433 17
>>2617427
Ты что вообще прокачать то хочешь пет-проектом? Бэк на го? Тогда не трать время на фронт и обычный хтмл сделай.
Аноним 20/02/23 Пнд 17:08:08 2617836 18
>>2617427
Не трать время на парашный фронт. Максимум изучи ELM чтобы не содержать грязные .html .css .js файлы.

Пиши бек , даун.
Аноним 20/02/23 Пнд 18:52:32 2617995 19
>>2615066
Чем не предсказуемо то, что если у тебя capacity < length, то нужно заново аллоцировать, ибо банально некуда больше разместить???? Во всех языках так работают динамические массивы
Аноним 20/02/23 Пнд 19:03:33 2618015 20
>>2617995
Во всех языках - это отдельный контейнер, у которого свой АПИ с защитой от "дурака". А тут тебе вываливают все кишки и делай что хочешь. Очень легко ошибиться.
Аноним 20/02/23 Пнд 19:09:14 2618025 21
>>2618015
Кто тебе какие кишки вываливает умник, что ты вообще несёшь? Чем тут блять отличается от других языков то блять? Единственное отличие, что слайс не копия, а и есть сам по себе массив с нужными оффсетами, о чем написано даже в ебучем го туре и в каждом ебучем месте об этом написано, но ты же тупой, для тебя это «кишки» тупой сука питоноеб
Аноним 20/02/23 Пнд 19:29:08 2618050 22
>>2618015
>во всех языках
Уточни пожалуйста, в каких языках есть срезы? И про какие кишки ты говоришь?
Аноним 20/02/23 Пнд 19:50:00 2618070 23
>>2618050
К примеру, в джаве есть ArrayList, в котором массив лежит внутри. Сам объект управляет им, а мы просто пользуемся благами динамического массива. Доступа к внутреннему массиву у нас нет и соответственно ничего сломать мы не можем.
Аноним 20/02/23 Пнд 20:11:58 2618092 24
>>2617836
Пошел почитать про Elm и охуел. Кому это надо вообще? Ну нужен простой типовой фронт, идешь и делаешь его хоть на jquery, хоть на ванильном реакте.
Нахуя отдельный язык тащить в таком случае?
вообще было бы классно иметь какой-нибудь yaml-конфигурируемый интерфейс типа bootstrap, чисто чтобы его вообще без программирования натягивать на сваггер апи в таких неважных вещах
Аноним 20/02/23 Пнд 20:27:00 2618110 25
>>2617076
Сейчас, да, заметил, что по крайней мере в SQLite автоинкремент начинает с единицы. Но вообще то это нихуя не очевидно, я с базами работать только начинаю.

Это типо универсальное соглашение и в 99% случаев база присваивает id с единицы?

Тогда в принципе можно и на обычном int64 херачить.
Аноним 20/02/23 Пнд 21:54:24 2618164 26
>>2618070
Не поверишь, но тут точно так же
Аноним 20/02/23 Пнд 22:12:07 2618169 27
>>2614678 (OP)
Есть смысл перекатываться с питона на го для написания повседневных скриптиков? Или го СЛОЖНЕЕ?
Аноним 20/02/23 Пнд 22:14:00 2618170 28
>>2618169
Это будет заебистие и многословнее для скриптиков, а профитов никаких.
Аноним 20/02/23 Пнд 22:17:22 2618173 29
>>2618170
Так блядь и думал,
но почему то го представлялся как "лучший питон"
Аноним 20/02/23 Пнд 22:22:09 2618174 30
>>2617076
> господи, с какими дураками на одной борде сижу
Не перестаю охуевать с этого, кстати, я уже подозреваю, что тут кроме джунов и вечных джунов не сидит никто.
И тут непонятно, либо это такой срез индустрии и у нас действительно 99 кодеров из 100 долбоебы, или это специфика двача такая если последнее, то это что-то обо мне говорит

>>2615001
1) Можешь считать, что если id == 0, значит сохранения в базу не было.
2) Вообще такая логика как правило говорит о том, что ты что-то делаешь не так. По идее тебе в коде должно быть или не важно, с чем работать или ты уже точно знаешь, что сущность, с которой ты работаешь - уже зафиксирована в бд.
3) Если хочешь обмазаться типами, то можно разделить данные и сущность со служебными полями, вот так к примеру: https://go.dev/play/p/F6XWYXpIlXm
Аноним 20/02/23 Пнд 22:27:38 2618179 31
>>2618169
перекатываться с петона особо нет. будет меньше ебли с зависимостями, шарить скриптики проще, ну и легче параллелить хуйню. с другой стороны меньше пакетов и тупо import gosuslugi для скриптика не получится сделать за отсутствием либы. ну и базовая хуйня вроде пройтись по строчкам будет вербознее.
а с другой стороны если бы ты уже писал на го, то петон тебе нахуй не вдался бы, кроме случаев с либами
Аноним 20/02/23 Пнд 22:29:16 2618180 32
>>2618179
>кроме случаев с либами
А что есть другие варианты?
Практически всё что когда-либо надо было сделать - делалось через уже готовые либы
Аноним 20/02/23 Пнд 22:43:05 2618184 33
>>2618180
>А что есть другие варианты?
хз, от задачи зависит, повседневные скриптики разными же бывают и количество либ разное. я привел пример с апишкой госуслуг. ну или чисто для примера (сейчас в гошке вроде есть норм покеты) в петоне будут более удобные/зрелые пакеты штобы собрать бота для телеги. тупо потому что там юзеров больше было и они его успели развить и передизайнить несколько раз.
>Практически всё что когда-либо надо было сделать - делалось через уже готовые либы
ну для популярных задачь да
Аноним 20/02/23 Пнд 23:10:18 2618219 34
>>2618184
Про пакеты спорно, и там и там есть и говно и нормальные.

>>2618169
Короч, ключевая разница, это бекенды, апи и параллельная обработка данных.
Го из коробки очень быстрый и эффективный и при этом поддерживает нормальную многозадачность, что позволяет твоему апи отдавать ответы с очень маленькой задержкой и при этом программировать это все на более менее простом языке, которые не такой сложный как плюсы и не такой жирный, как джава.
Всякий финтех, а также яндекс (еда вроде бы) и прочие жирные стартапы поэтому активно пишут сервисы на го, а те, которые не на го (а на чем-то медленном, тот же php или питон) - на го переписывают, потому что во первых экономия ресурсов, го жрет сильно меньше, а во вторых производительность.
Ну и всякие сетевые утилиты а-ля кубернетес.

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

Поэтому для скриптиков менять стек я не вижу смысла, оставайся, где был.
Аноним 21/02/23 Втр 04:15:54 2618335 35
>>2618219
Погугли, что такое "слабая типизация".
Аноним 21/02/23 Втр 04:57:28 2618342 36
>>2618219
>Го из коробки очень быстрый и эффективный и при этом поддерживает нормальную многозадачность, что позволяет твоему апи отдавать ответы с очень маленькой задержкой и при этом программировать это все на более менее простом языке, которые не такой сложный как плюсы и не такой жирный, как джава.

IDE есть под него нормальное?
ООП там как?
Аноним 21/02/23 Втр 07:29:04 2618360 37
>>2618219
> Про cpython и прочую эзотерику вспоминать не будем

Фикс:
Cpython и есть самый дефолтный интерпретатор.

Скорее всего ты имел в виду Cython.

Мимопитономакака
Аноним 21/02/23 Втр 08:11:34 2618366 38
16497722528740.jpg 71Кб, 564x831
564x831
>>2618219
> Го из коробки очень быстрый и эффективный и при этом поддерживает нормальную многозадачность,
Как Си, дя?
Аноним 21/02/23 Втр 09:15:21 2618388 39
Как писать методы для структур: со звездочкой или без?
Аноним 21/02/23 Втр 10:07:29 2618414 40
Вот что меня напрягает в го, дак это ошибки, если что-то не используешь. Я может привык писать с расчётом на будущее, а компилятор мне бьёт по рукам.
Аноним 21/02/23 Втр 10:12:29 2618416 41
Аноним 21/02/23 Втр 10:22:08 2618420 42
Меня немного напрягает то, что внешние пакеты подсасываются с гитхаба. Где гарантия, что я не скачаю вирус и мне не заменят все файлы на сердечки, потому что я не из той страны?
Аноним 21/02/23 Втр 10:26:54 2618422 43
>>2618420
Ну будет говнопакеты.орг, и на нем такое сделают. В чем разница-то?
Аноним 21/02/23 Втр 11:14:02 2618443 44
Аноним 21/02/23 Втр 16:00:18 2618748 45
>>2618335
Ну да, имелось ввиду, что она динамическая неявная.

>>2618342
Бля ну погугли, нахуя ты задаешь очевидные вопросы про ооп спорно, но скорее есть, ide от jet brains есть

>>2618360
Я про эзотерику, которая пытается сделать из питона компилируемый язык.

>>2618366
Только го со сборщиком мусора и планировщиком, а в си тебе придется много чего делать руками. Ну и в целом го всё же сильно освременнее.

>>2618388
Смотря чего ты от этих методов хочешь

>>2618414
Сделай хелпер-функцию try или assert и не парься, только в продакшен её не кати. Или используй "_" вот так :
val, _ := funcWithError()

>>2618420
Это проблема не гитхаба, а опенсорса, никто не гарантирует, что ты не скачаешь хуйню через тот же npm к примеру.
При этом go.mod и go.sum во первых фиксируют версии, то есть, если ты поставил себе коммит X, то ты его и будешь использовать и если кто-то добавит хуйню в коммит X+1, то без осознанного go get -u ты на заминированный коммит не переедешь. А во вторых, go.sum хранит также чексуммы и даже если кто-то изменит код существующего коммита, то чексуммы не сойдутся и го это спалит и выругается.
Ну и никто не мешает тебе использовать зеркала, кэширующий goproxy или что угодно ещё, существует много инструментов.
Аноним 21/02/23 Втр 18:10:22 2618894 46
>>2618748
>го со сборщиком мусора
Он уже перестал статтерить весь сервер нахуй или его просо сделали отключаемый и на том забили хуй (после того как с го съебались крупные ребята)?
Аноним 21/02/23 Втр 21:40:04 2619111 47
>>2618894
Бля, это тебе не джава, вот уж где паузы прям заметны. Никто на го не забивал и там нормальный CMS сборщик.
Аноним 21/02/23 Втр 22:11:27 2619148 48
>>2619111
"Почему Discord переходит с Go на Rust" были новости не так давно,
и до этого помню точно такие же посты уже как с десяток лет лол
Аноним 22/02/23 Срд 14:25:58 2619595 49
>>2619148
Если бы ты внимательно читал эти "новости" трехлетней давности, или хотя бы пытался прочитать то, о чём я тебе писал вместо того, чтобы пытаться самым примитивным образом доебаться, то ты бы понял, что в дискорде (как и в дропбоксе до этого) они по сути делали огромный LRU кэш и в этом случае (огромная хреновина в памяти с (пере)записями по ключу) тебе в принципе языки с гц не нужны, гц будет тупо тратить кучу ресурсов на сканировании памяти, блокировки и так далее, когда у тебя профиль работы приложения вообще не подходит под такой флоу.
Вообще примерно любой язык с гц у них создавал бы проблемы из-за просадок во время работы гц: хоть го, хоть джава, хоть эрланг, хоть кто. Какие-то лучше, какие-то хуже.
И очевидно, что для того, чтобы тупо держать в памяти хэш таблицу и отдавать из неё значения, языки с прямым управлением памятью подходят намного лучше.

Возвращаясь к го, теоретически ты конечно можешь полностью отключить гц debug.SetGCPercent(-1) если не ошибаюсь и управлять памятью вручную, но тогда непонятно, зачем тебе го в данном конкретном случае. Так что чуваки из дискорда правильно поняли, что выбранный ими инструмент неоптимально решает их конкретную задачу и вместо того, чтобы делать си из го, они поменяли язык на более эффективный для их задачи. Здесь нет никакой проблемы ни в дискорде, ни в самом го, который по определению, как "язык с cms гц" обладает преимуществами (легче программировать) и недостатками (оверхед за счет гц).
Аноним 22/02/23 Срд 16:15:55 2619692 50
>>2619595
> го не подходит для высоких нагрузок

Ну так бы и говорили, вот только нахуй он тогда нужен на сервере?
Аноним 22/02/23 Срд 16:31:02 2619704 51
>>2619692
Я если честно уже заебался отвечать на тупые набросы, вы если уж хейтите, придумайте что-то поумнее.
Тебе прямым текстом сказано, что под профиль нагрузки "хэш таблица в памяти" языки с гц не очень хорошо подходят. Любые. В том числе го. Но на го, джаве или js знаешь ли никто ин-мемори бд и не пишет.
При этом есть куча других профилей - всякие лоу-лейтенси апи, байтомолотилки и тд, где такие языки работают хорошо.
Аноним 22/02/23 Срд 19:36:22 2620007 52
А правда, что на голанге теперь тоже надо учить кучу фреймворков? В чём тогда его преимущество?
Аноним 22/02/23 Срд 19:53:08 2620050 53
бля чет прикоснулся к го, и утонул в ошибках:
импортируемые модули отваливаются
для каждого нового проекта нужна новая папочка
для каждого модуля нужна папочка
модули отваливаются импорты срут ошибками
это че такое я не пойму
обновил эту поеботу с 1.16 и в маршрутке началось такоое..
Аноним 22/02/23 Срд 21:11:03 2620187 54
>>2620007
Неправда, никаких богоподобных фреймворков как в других языках в го нет. Точнее, встречается иногда говно на гитхабе, но я не знаю ни одно проекта, где такое бы реально использовалось.

>>2620050
Ты что-то где-то у себя поломал скорее всего. Не представляю что, я ставил го раз 10 на разные системы и проблем не было ни разу. Снеси просто всё, что есть и поставь заново. И приходи с конкретными ошибками уже.

> для каждого нового проекта нужна новая папочка
> для каждого модуля нужна папочка
Эм, так везде, на всех языках. Даже не представляю, как может быть по другому.
Аноним 22/02/23 Срд 22:04:41 2620235 55
>>2618169
Сильно зависит от контекста. В ряде случаев лучше писать даже не на питоне, а на баше. Из плюсов использования го, кроме конкурентности, о которой уже писали, переносимость и обратная совместимость:
скрипты на любом интерпретируемом языке требуют в системе установленный интерпретатор, при том версии не ниже чем та, в которой поддерживается самая новая из использованных фич. В случае питона сломана еще и обратная совместимость, когда скрипт для второй версии не запускается на третей. Т.е. написанный на питоне 10 лет назад код уже не работает.
В го такой проблемы нет, бинарь по дефолту зависит только от libc, но при желании даже этого можно избежать и сделать программу, которая будет работать даже в пустом контейнере.
Да и го код 10 летней давности всё еще компилируется.
Возникает, конечно, проблема с тем, что на системы с разными ос/процессорами нужны разные бинари, но это решаемо, в го кросс-компиляция очень простая.

>>2618748
> Или используй "_" вот так :
> val, _ := funcWithError()
Ни в коем случае не делайте так. В лучшем случае вы упадете на следующей строке, при некорректной работе с nil val.
В худшем вы продолжите исполнение с некорректными данными, если val это стринг или число. Так можно словить сложно отлаживаемое ебучее поведение, как в баше без set -e и set -o pipefail
Корректное использование игнорирования ошибок существует, но очень редкое.
А вот хелпер это да, хорошая идея. Я обычно такой использую https://go.dev/play/p/oJ65gdf6z3d
Аноним 22/02/23 Срд 23:03:59 2620257 56
>>2620235
Запрос был прямой
> , дак это ошибки, если что-то не используешь
ответ на это тоже прямой - хочешь пока накидываешь код что-то пока не использовать - юзаешь _.
В продакшен я и не советовал ему это пихать
Аноним 23/02/23 Чтв 01:32:46 2620319 57
>>2620235
>panic
На этой ноте ты идешь нахуй, пидорас
Аноним 23/02/23 Чтв 02:08:23 2620338 58
>>2620235
>panic
Рекавери-помешанный швайноджун, ты?
Аноним 23/02/23 Чтв 07:37:02 2620384 59
>>2620319
>>2620338
Посмотрите на этих клоунов, пишущих лапшу if err != nil. В его пример может и избыточно, но подрыв ваш не к месту.
мимокрокодил
Аноним 23/02/23 Чтв 07:55:45 2620391 60
>>2620384
А как ты иначе собираешься еще хендлить ошибки? Святым духом?
Аноним 23/02/23 Чтв 08:01:51 2620396 61
>>2620187
HTTP-серверы пишут каждый раз с нуля за счёт net/http?
Аноним 23/02/23 Чтв 08:06:00 2620398 62
>>2620396
А что там писать с нуля то? Роутер это буквально две минуты, дальше уже отвечаешь уровня w.Write и все
Аноним 23/02/23 Чтв 12:15:18 2620514 63
>>2620396
Обычно берут готовый роутер типа Echo, только это не фреймворк, а либа, то есть просто обертка вокруг net/http, которая добавляет более удобную работу с данными, миддлвари, опционально всякие распространенные хотелки по типу basic auth middleware и тп.

>>2620319
Его check() это безусловно хуйня для продакшен кода, но если нужно быстро написать скрипт или просто набросать макет кода, то это нормальная тема. А мы как раз про такой сценарий и говорили изначально.
Аноним 23/02/23 Чтв 14:38:28 2620618 64
>>2614678 (OP)
какая лучшая книга по ГО?

ток не 1200 страниц

хочу вкатиться за 5 недель(100ч обучения) и ЕБАШИТЬ 200.800к в месяц, в потом в ПМ/СЕО и ебашить миллионы в... день
Аноним 23/02/23 Чтв 15:05:11 2620635 65
как выйду на мил/день замучу тут конурс с фондом 100к
Аноним 23/02/23 Чтв 15:21:00 2620644 66
>>2620618
Никакая, бери https://go.dev/tour , потом читай https://go.dev/doc/effective_go , потом смотри https://github.com/golang-standards/project-layout и мб что-то вроде https://google.github.io/styleguide/go/best-practices.html

И да, не понимаю, кто сейчас учит языки по книгам, это прошлый век. Это паттерны и алгоритмы не устаревают и то всякие новые модификации случаются , а у языков раз в год мажорные апдейты выходят.
Я все свои языки учил так: просто садился и начинал программировать, как мог, параллельно читая статьи с хабра по языку. Полезно ещё на публичные проекты поглядывать, но в го я к сожалению не могу посоветовать действительно идиоматичные и качественные публичные репозитории.
Аноним 23/02/23 Чтв 17:19:08 2620741 67
>>2620618
>книга
>2023
>по программированию
>книга
Ебанутые люди, е б а н у т ы е
Аноним 23/02/23 Чтв 17:54:28 2620768 68
>>2620741
Бля, ну не все вниманиедефицитники, как большинство зумерков, представь себе.
Аноним 23/02/23 Чтв 18:11:57 2620774 69
>>2620768
Мне >30 и я не могу читать книги по программированию, по одной простой причине: одна половина там устарела, а вторая является водой, которую можно и нужно пропускать.
Намного проще сидеть и гуглить статьи, которые раскрывают конкретный вопрос.
Аноним 23/02/23 Чтв 18:22:48 2620785 70
>>2620774
Да, копаться в таких же устаревших и водянистых статьях, выискивая ололо-актуальное и информативное. Уже бы про документацию бухтел лучше, не так смищно бы смотрелось.
Аноним 23/02/23 Чтв 18:24:39 2620790 71
>>2620785
Документацию живых проектов хотя бы обновляют и она не может устареть. Да и воды там зачастую немного.
А насчет статей - ну так ты ищи нормальные и всё. По любому вопросу их десятки, ищешь и смотришь на даты.
Аноним 23/02/23 Чтв 18:26:56 2620793 72
>>2620790
Ну так и книги ищи нормальные.
Специально для таких шизиков хитрые издатели начинают уже в ноябре-декабре выпускать книги с следующим годом выпуска. Твои статьи могут в такое? А? А?
Аноним 23/02/23 Чтв 19:07:06 2620843 73
>>2620391
Нормальные люди делают это монадами, но у копипастоклоунов все как всегда.
Аноним 23/02/23 Чтв 20:48:30 2620909 74
>>2620793
Покажи нормальную книгу по 20ому плюсовому стандарту? Или хотя бы 17? Ну если не плюсы, то хотя бы го 1.16??
Аноним 23/02/23 Чтв 21:00:06 2620919 75
>>2620909
Не мешай ему жить в выдуманном мире, где серьезные (тм) люди пишут полноценные серьезные (тм) книги. А в релаьности та же моча и шанс найти хорошую статьюпо интересующей тебя теме намного выше, чем аж книгу.
Аноним 23/02/23 Чтв 21:05:10 2620925 76
>>2620774
Дед, какой гуглинг, сейчас уже надо уметь правильно формулировать запросы к ChatGPT.
Аноним 24/02/23 Птн 00:34:09 2621102 77
16014768782830.jpg 91Кб, 604x453
604x453
И снова здравствуйте.

Я могу в этой пиздоте уменьшить размер получающегося бинарника
cd fluent-bit-plugin-yandex/
export fluent_bit_version=1.8.6
export plugin_version=dev
CGO_ENABLED=1 go build -buildmode=c-shared \
-o ./yc-logging.so \
-ldflags "-X main.PluginVersion=${plugin_version}" \
-ldflags "-X main.FluentBitVersion=${fluent_bit_version}"


https://cloud.yandex.ru/docs/logging/tutorials/vm-fluent-bit-logging

Что они там на 50 мб запихали? Это же продукт типа EMBEDDED
Аноним 24/02/23 Птн 02:18:51 2621140 78
Аноним 24/02/23 Птн 02:27:53 2621144 79
>>2621140
Либо -ldflags="-s -w", убирает всю дебаг инфу из билда
Аноним 24/02/23 Птн 13:38:44 2621376 80
>>2621102
А, блять, это вопрос был. Ни одного вопросительного знака в посте, пиздец. Принципиально не буду отвечать.
Аноним 24/02/23 Птн 17:53:42 2621636 81
Аноним 24/02/23 Птн 20:32:27 2621786 82
>>2621376
Ну один там был, хз чем ты читал
Аноним 25/02/23 Суб 13:01:13 2622358 83
Почему в го решили писать типы шиворот на выворот? В Си всегда было удобно читать текст программы, что идёшь слева направо, сверху вниз. А тут на типах постоянно приходится перечитывать типа справа на лево. Очень не удобно.
Аноним 25/02/23 Суб 13:21:01 2622372 84
>>2622358
Го тур читни, там ссылка есть почему так а не эдак.
Вкратце - проще парсить и меньше двусмысленностей.
Аноним 26/02/23 Вск 11:53:13 2623209 85
Image.png 696Кб, 2800x4242
2800x4242
Image (1).png 805Кб, 2800x4866
2800x4866
Оцените роадмап
Аноним 26/02/23 Вск 11:57:03 2623217 86
>>2623209
Пока ты эту хуитку рисовал мог бы уже десятую часть пета написать...
Аноним 26/02/23 Вск 11:58:32 2623219 87
>>2623217
Какой "я"?
Это в интернете лежит
Аноним 26/02/23 Вск 12:35:46 2623245 88
>>2623209
Ну и пиздец, тут даже не возврастанию сложности, а чуть ли не наугад идет
Аноним 26/02/23 Вск 16:09:22 2623501 89
Аноним 26/02/23 Вск 17:32:30 2623656 90
>>2623501
В нём
Я думал даже зачекать (разумеется выпросив у работодателя компенсацию хотя бы части стоимости), но мой пыл резчайшим образом охладил факт того, что трек "продвинутый хуесос", хотя и включает в себя полностью трек "простой хуесос", о чём прямо и заявлено — при этом не позволяет докупить расширенную часть себя отдельно. Т.е. либо ты берёшь расширенного хуесоса, либо берёшь простого, а потом "НУКА ДАВАЙ ещё разочек фуллпрайс заплати сынок ёбаный!" и тратишь 76к + 160к, за то, чтоб повторить половину курса, которую ты уже прошёл. Либо изволь раскошелиться сразу на полторы сотыги.
В пизду, проще самому изучить чем в это говно антиконсьюмерское ввязываться.
Аноним 26/02/23 Вск 17:36:23 2623663 91
>>2623656
Ебать ты придумал канеш, да там даже если бы был тот формат, который ты хочешь - один хуй бы того не стоило.
Аноним 26/02/23 Вск 18:01:00 2623701 92
Напомните правильный способ получить ключ на goland
Аноним 26/02/23 Вск 18:08:15 2623711 93
>>2623656
Пиздец цены, вы долбоебы что ли столько платить? Да даже 10к это уже дохуя.
Это же не роадмап, это ёбаное ничего, вы берете го тур и доку, читаете их и получаете ровно то же самое, скорее всего ровно теми же словами.
Нахера вы это делаете и кормите всяких жирных тварей? Из надежды что-ли, что вас научат чему-то уникальному? Зря, всё это в интернете есть и публично доступно.
Аноним 26/02/23 Вск 19:14:30 2623818 94
>>2623711
Я рассматривал варианты, расслабься.
Причём я под это дело хотел чужие деньги юзать.
Аноним 26/02/23 Вск 19:51:29 2623900 95
>>2623818
Тогда нахуя за это другие людя платят. Понятно, конечно, что раз платят, то долбоебы, а долбоебы должны страдать - но всё равно, нахера =/
Любые курсы это говно, чел, любые. Программированию невозможно научить на курсах, ему можно только научиться самому, а для этого никакие курсы не нужны. В интернете тонны гайдов и мануалов для самых маленьких, а в телеге сотни каналов, где на нубские вопросы можно почти моментально получить ответ. Курсы это место, где ты платишь деньги за то, что тебе в лучшем случае ртом на видео прочитают мануал из интернета. В худшем, тебе скинут доступ к копипасту мануала (нескольких) из интернета.
Аноним 26/02/23 Вск 20:20:03 2623966 96
image.png 20Кб, 905x383
905x383
>>2623701
1. устроиться на работу
2. завести тикет
Аноним 26/02/23 Вск 21:40:27 2624079 97
>>2623900
Я умею программировать, но я всё ещё долбоёб (мидл), который умеет только хуярить по тз и когда надо запилить проект с нуля, особенно на незнакомом языке — у меня глаза разбегаются.
Но правда конечно в том, что если мне разжуют проект, то я останусь на том же уровне, очевидно. С другой стороны, если разжуют аккуратно, давая лишь примерное направление — может чего и выйдет путного.
>>2623966
>устроиться на работу
Ну это понятно, я хочу немного покодить прежде чем туда устраиваться.
В любом случае уже решил через EAP
https://www.jetbrains.com/go/nextversion/
Аноним 26/02/23 Вск 21:46:41 2624090 98
Screenshot20230[...].png 18Кб, 1223x444
1223x444
Screenshot20230[...].png 24Кб, 919x387
919x387
только начал изучать golang. написал как в видеоуроке, ожидая что вывод будет таким:
1
2
3
4
но выводит бесконечную последовательность...
Притом то такой такой цикл работает как надо:
n:=1
for n<5{
fmt.Println(n)
n++
}
Помогите пожалуйста
Аноним 26/02/23 Вск 21:52:51 2624096 99
>>2624094
Бляяяяя. Я сейчас от стыда в окно выйду. Жаль что на дваче нельзя удалять свои посты. Сори за щитпост
Аноним 26/02/23 Вск 21:55:24 2624100 100
>>2624079
> Я умею программировать, но я всё ещё долбоёб (мидл),
Тогда тебе тем более курсы не нужны. Сеньором тебя сделает опыт и архитектурные навыки, которые тоже опыт. Многой работай над сложными проектами, чтобы его получить.
Аноним 26/02/23 Вск 22:13:16 2624109 101
>>2624079
А как ты определил себя мидлом.. но если ты не работаешь? Это работает не так
Аноним 26/02/23 Вск 22:16:40 2624113 102
>>2624100
Успел поработать над одним, потом менеджмент сделал ход конём и запилил проектную команду, а я остался за бортом лениво подкостыливать легаси, уровень задач упал до плинтуса, по сути больше половины задач — стажёрские/джуновские, от чего хуёво и мне и бизнесу (мне — понятно почему, бизнесу — от того что стреляет дорогими бронебойными снарядами по небронированным целям)
Аноним 26/02/23 Вск 22:17:19 2624114 103
>>2624109
Где написано что я не работаю? Мой трудовой договор утверждает прямо противоположное.
Аноним 26/02/23 Вск 22:22:38 2624117 104
>>2624114
> я хочу немного покодить прежде чем туда устраиваться.
Аноним 26/02/23 Вск 22:24:22 2624120 105
>>2624113
Одного проекта мало, чтобы подняться как бы над проектом и смотреть на него уже с архитектурной точки хрения, нужна насмотренность. Когда сделаешь одно и то же 5-10 разными способами и в половине случаев обосрешься, то вот тогда уже сможешь сравнивать и делать выводы.
В-общем, путь уже от миддла до сеньора занимает года 4 фулл тайм работы над разными проектами, сложными и чтобы один отличался от другого, на мой взгляд. Чтобы в одном ты делаешь апи, в другом работаешь над стримингом, в третьем разрабатываешь конструктор и тд и тп.
Аноним 26/02/23 Вск 22:36:18 2624125 106
>>2624117
Немного покодить на го
>>2624120
Я и не говорил что это много или достаточно, я как раз и говорю что хочу ещё.
Аноним 26/02/23 Вск 22:42:55 2624128 107
>>2624079
почему просто не взять опенсорсный православный вскодиум/вим? единственный раз когда у меня появлялось мозжечковое желание попробовать голанд это когда в самописный голандовский плагин нашей компании добавили удобные фичи, заменяющие часть (5 минут) работы руками
Аноним 26/02/23 Вск 22:46:40 2624131 108
>>2624128
Потому что вим это не IDE, а просто редактор и даже если ты до жопы обмажешься плагинами, то не сможешь сделать из него IDE?
Не знаю насчет го, но с другими языками IDEA творит прям чудеса, встроенный рефакторнг, генерация, темплейты и так далее позволяют писать код практически без нажимания на кнопки, просто хоткеями. Вим в лучшем случае пародирует такую мощь.
Другой вопрос, что почти все разработчики используют возможности IDE процентов на 5, просто как редактор, а потом ещё и начинают что-то вякать про вим. Долбоебы, одним словом. Джетбрейновские IDE умеют делать прям пиздец сколько много всего полезного.
Аноним 26/02/23 Вск 22:59:26 2624147 109
>>2624131
хз, я конечно всех фичь не знаю, но штуки уровня вынести кусок кода в отдельный метод/переименовать метод во всем проекте/запустить генерацию или отдельный тест постепенно в редакторонезависимые лэнгуеч серверы мигрируют. а часть хуйни все равно из консольки приходится использовать
лично я с разной стпенью эпизодичности помимо го/sql там луа/петон/баш/петон использую и не иметь необходимости настраивать/привыкать к несколькиим редакторам удобно. хотя конечно кому-то норм, холиварный вопрос возможно в го треде это обсуждать не стоит
Аноним 27/02/23 Пнд 02:55:04 2624231 110
>>2622358
> Почему в го решили писать типы
Потому что не осилили нормальный вывод типов как в нормальных языках.

>>2622358
>А тут на типах постоянно приходится перечитывать типа справа на лево.
Ну с такой проблемой все-таки скорее к психиатру. А так - бывает неудобно переключаться, но вопрос привычки.
Аноним 27/02/23 Пнд 05:55:58 2624247 111
>>2623701
Ебашишь 5 задач на степике
Воуля у тебя есть ключ на 3 месяца
Повторяешь данный механизм через 3 месяца
Аноним 27/02/23 Пнд 08:30:03 2624275 112
>>2624090
У тебя манжара? Что за IDE?
Аноним 27/02/23 Пнд 08:34:24 2624277 113
>>2624247
Лучше пользоваться полностью бесплатным VS Code, потому что лицензия может закончится в самый неподходящий момент, а потом перейти на другую IDE будет сложно.
Кроме того VS Code ест мало памяти, а продукты от жидбрейнс со старта сжирают по 4 гига.
Аноним 27/02/23 Пнд 08:52:45 2624287 114
>>2624277
>а продукты от жидбрейнс со старта сжирают по 4 гига
Это само по себе не самое смешное.
Самое — это когда у тебя игры на разогнанной с поджатыми таймингами ОЗУ работают стабильно часами, а pyCharm вешает нахуй всю систему.
Аноним 27/02/23 Пнд 13:47:02 2624494 115
Аноним 27/02/23 Пнд 14:19:55 2624528 116
>>2624494
Это штеуд, шиз.
Сегодня не существует железа, которое бы не бустилось от разгона памяти, всё давно упёрлось именно в неё.
Аноним 27/02/23 Пнд 15:26:14 2624597 117
>>2624528
Шизоид, что ты там на интеле озу бустил, кому ты пиздишь, такой хуйней только на амд занимаются
Аноним 27/02/23 Пнд 16:05:18 2624620 118
Аноним 27/02/23 Пнд 17:01:09 2624731 119
Аноним 27/02/23 Пнд 18:02:15 2624809 120
Аноним 27/02/23 Пнд 18:37:55 2624846 121
>>2614678 (OP)
>обсуждаем почему нам не нужны дженерики
Потому что их реализовали максимально уебищно?
Аноним 27/02/23 Пнд 20:43:00 2624943 122
Аноним 27/02/23 Пнд 20:50:55 2624953 123
>>2624943
Сам возьми да проверь.
Аноним 27/02/23 Пнд 20:58:05 2624964 124
>>2624846
Особенно кекаю с того, что их все еще нельзя в методах типа использовать
Аноним 27/02/23 Пнд 20:58:38 2624966 125
Аноним 27/02/23 Пнд 21:12:41 2624983 126
Аноним 27/02/23 Пнд 21:24:24 2624994 127
>>2624983
меньше боейлерплейта, больше чистоты в мейн файлике.
Не знаю, в общем-то и хочу попробовать ради попробовать
Аноним 27/02/23 Пнд 21:32:51 2625003 128
>>2624983
Зависимости же в любом случае должны будут прокидываться через слои кода. Без контейнера количество передаваемых из фукции в функцию зависимостей растет как снежная лавина. Это общее для всех програм на всех языках.
Аноним 27/02/23 Пнд 21:38:44 2625006 129
>>2625003
Дело даже не в количестве, а в том что какая-то хрень по середине, которая к зависимости никакого отношения не имеет будет знать ее.
Аноним 27/02/23 Пнд 21:57:09 2625020 130
>>2624966
В структурно очень сложных проектах юзай fx. В простых и средних напрямую инжекти.
гугловый wire херня, а убер ужасно волшебный и неудобный
Аноним 28/02/23 Втр 02:42:08 2625254 131
Аноним 28/02/23 Втр 09:19:04 2625373 132
>>2625254
Если речь о монолите то не оверкил и не антипатерн. Какой нахуй антипатерн, это основа любого фреймворка IoC, composition root. Если в твоей гошке адепты простоты, которая как известно хуже воровства, развели детский сад то это не значит что весь остальной мир - анипатерн.
Аноним 28/02/23 Втр 16:23:39 2625873 133
>>2625373
Не корми залетного школьника, анон.
Аноним 28/02/23 Втр 17:19:44 2625942 134
image.png 2354Кб, 1080x1080
1080x1080
Аноним 28/02/23 Втр 23:02:21 2626329 135
>>2625373
Дали блять ждунам бесполезный мусор, говна наелись, а они только рады

мимо
Аноним 01/03/23 Срд 00:07:20 2626373 136
>>2626329
Один только ты в белом пальто и с револьвером....

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-7.0

https://docs.spring.io/spring-framework/docs/3.2.x/spring-framework-reference/html/beans.html

https://symfony.com/doc/current/components/dependency_injection.html

https://laravel.com/docs/10.x/container

https://angular.io/guide/creating-injectable-service

https://vuejs.org/api/composition-api-dependency-injection.html#inject
Аноним 01/03/23 Срд 00:09:20 2626375 137
>>2626373
Что сказать то хотел?
Аноним 01/03/23 Срд 00:12:10 2626377 138
>>2626375
Что ты нихуя не сказал дельного, а только в позу встал. Позёр!
Аноним 01/03/23 Срд 00:13:46 2626379 139
39F94483-05E1-4[...].png 721Кб, 640x640
640x640
>>2626377
>очередной джун начитавшийся хуйни
Классика
Аноним 01/03/23 Срд 00:20:51 2626385 140
>>2626379
А хоть джун или просто вообще мимо прогинга? Почему вам аргументы приводишь, может быть и ошибочные, а вы только квакаете НИНУЖНА! ХУЙНЯ!. Хули вам трудно по пунктам разобрать что не так, если вы такие профи? Как у Омара Хайма:
Мастер просто говорит о сложном,
А подмастерье — сложно о простом.
Аноним 01/03/23 Срд 01:41:14 2626411 141
>>2626385
Что не ясно во фразе "оверкилл", как и сказал тот анон выше? Это банально юзлесс мусор

Покормила
Аноним 01/03/23 Срд 01:51:13 2626415 142
>>2626411
Это все эвфемизмы для слова ХУЙНЯ, а не аргументы. Что непонятного в словах "для монолита"? Для микросервисов то ежу понятно, что некуда приткнуть этот DI.

Напоил
Аноним 01/03/23 Срд 01:57:12 2626416 143
Ору с вашей хуйни. Зафорсили эту парашу, что серьезные дяди пошли работать и решили немного навести порядок так сразу началось.

https://old.reddit.com/r/golang/comments/1198e5j/golang_isnt_java_and_type_embedding_isnt/
https://old.reddit.com/r/golang/comments/112vfr3/how_to_deal_with_java_developers_polluting_the_go/

Ряяя, так нельзя. Вы НЕПРАВИЛЬНО его используете. Детишки, щас вам немножко покажут кусочек взрослого мира, напишут аналог спринга, научат писать по паттернам. Ну а потом этот язык выкинут нахуй, ибо никому го не нужен и лучше все эти вещи делать на джаве, в которой есть абсолютно всё и не надо изобретать велосипед.
Аноним 01/03/23 Срд 02:15:10 2626417 144
>>2626416
Ты из тех, у кого один язык на всю жизнь? Или те, кто учат их >1 года?
Аноним 01/03/23 Срд 02:31:35 2626419 145
Аноним 01/03/23 Срд 02:46:04 2626424 146
>>2626385
>Мастер просто говорит о сложном: "НИНУЖНА! ХУЙНЯ!"
Аноним 01/03/23 Срд 13:26:11 2626618 147
>>2626416
Я бы лучше застрелился чем писал на джаве и спринге. В го такого фрейма никогда не будет
Аноним 01/03/23 Срд 15:25:09 2626701 148
>>2624966

Использовал fx, wire и самописный.

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


В кровавом интерпрайзе я обыно вижу что пилят что-то, заточенное под свою инфраструктуру, и там инициализацию большей части зависимостей вытаскивают в отдельный модуль.
Аноним 02/03/23 Чтв 09:15:59 2627358 149
Вот не пойму, почему для мапы можно использовать только встроенные типы? В чём была проблема определить парочку интерфейсов, чтобы пользователи могли определять функции типа Equals(), HashCode() и Compare() и таким образом мапы могли бы работать с любыми типами, реализующими эти интерфейсы?
Аноним 02/03/23 Чтв 10:04:59 2627395 150
Аноним 02/03/23 Чтв 11:29:02 2627469 151
>>2627358
А как ты собираешься это сделать? Тебе нужно будет тогда передавать указатель, а значит еще и следить за ним в маре каким то образом, ибо при передаче копии - тебе пришлось бы делать статическую структуру например, потом свои методы хеширования тоже ебала еще та, решение проблемы коллизий слыхал?
Аноним 02/03/23 Чтв 12:43:04 2627582 152
>>2627469
type myType {
valueInt int
valueStr string
}

func (t myType) Equals(otherObj myType) bool {
if t.valueInt == otherObj.valueInt && t.valueStr == otherObj.valueStr { return true
}
return false
}

func (t myType) HashCode() int {
return t.valueInt.HashCode() ^ t.valueStr.HashCode()
}
Аноним 02/03/23 Чтв 12:45:29 2627586 153
>>2627469

Да в принципе можно сделать. Я думаю даже пакеты есть уже (с дженериками). Надо бы поискать

> при передаче копии
Да, это проблема, но проблема не фатальная.

> потом свои методы хеширования
В стандартной библиотеке есть пакет maphash специально для кастомных реализаций хэшмап

> решение проблемы коллизий слыхал
Для решения проблемы колиззий есть сто-пятьсот методов, которые можно посмотреть как из существующих хэшмап того же го, питона или эрланга, так и из каких-нибудь статей по CS
Аноним 02/03/23 Чтв 12:47:43 2627590 154
>>2627586

Вообще запилить свою хэшмапу на дженериках для type HashKey[E] interface {
Hash(*maphash.Hasher)
Equal(E) bool
} - звучит как прикольная задача для выходных
Аноним 02/03/23 Чтв 13:12:18 2627615 155
>>2627590
Что тогда мешает просто использовать в тупую указатель? Так везде сделано
Аноним 02/03/23 Чтв 18:39:14 2627850 156
>>2627358
Потому что это го, тут все через жопу.
Аноним 02/03/23 Чтв 19:52:39 2627905 157
>>2627615
Причём тут указатель?

Речь о дженерик мапе
https://go.dev/play/p/sGylE0Q9mz3

Иплементируй equal и hash для нужного типа и используй хоть указатели, хоть прямые значения
Аноним 02/03/23 Чтв 22:31:54 2628036 158
>2023 год
>гоферы выясняют, возможно ли все-таки сделать обобщенную реализацию хэшмапы

Индустрия, которую мы заслужили...
Аноним 02/03/23 Чтв 22:38:39 2628042 159
>>2628036
Делай скидку на /pr, тут сидят в основном миддлоджуны. А судя по некоторым постам, так и просто сварщики с фрезеровщиками
Аноним 02/03/23 Чтв 23:41:39 2628092 160
>>2628042
>миддлоджуны
Чел, хэшмапы на первом-втором курсе проходят, але (алсо напоминаю, что джун - это разработчик с опытом 6-12 месяцев и 1-2 проектами (разработчик без прод опыта называется "стажер"))

Алсо, дело не в /зк, мой коммент относился именно к го и его команде разработки (в основном к самому пайку конечно, нынешние мейнтенеры превозмогают как могут; но в целом го-вей - это именно (нахерачить говна, а потом все переписывать^W^W^W^W^W^W) игнорировать давно исследованные и хорошо известные вещи)
Аноним 03/03/23 Птн 00:24:10 2628136 161
>>2628092
> но в целом го-вей - это именно (нахерачить говна, а потом все переписывать^W^W^W^W^W^W) игнорировать давно исследованные и хорошо известные вещи
Насколько бы я сам был не согласен с некоторыми вещами в го, в данном случае ты доебался к очень странному месту. В го есть нормальная хеш мапа, а именно обычный map, который работает для всех сравнимых типов. Желание в качестве ключей использовать всякие объекты в любом случае странное и вас действительно никто не заставляет использовать именно встроенный map, ограничения которого известны - вы вполне можете взять любой другой.
При этом: можно ли было сделать в стандартной мапе поддержку интерфейсов? Можно. Было бы лучше? Ну наверное было бы. Является ли это значимым косяком? В моём случае точно нет, за 5+ работы гошником я не упёрся в это ни разу.

Вот дженерики поздно зарелизили - это да. Зарелизили их неполноценными - это да. Не имплементировали их в стдлиб - это да. Нет нормальных енамов в языке - да. Всё на указателях, которые нихера не безопасные - да. Пол-кода делается на zero values вместо нормального нуллабилити - да. кстати почти всё это решено в rust :3
Вот такие предяъвы я бы почитал. Но почему-то никто их не пишет, вместо этого придираются ко всякой ерунде, то к большим и маленьким буквам (который public / private), то вот к мапам зачем-то.
Аноним 03/03/23 Птн 09:55:49 2628301 162
>>2628136
Скорее попытки использовать язык в нише, для которой он и не предусматривался.
для запиливания того же докера это было не нужно
Аноним 03/03/23 Птн 12:46:52 2628405 163
>>2628136
>Вот такие предяъвы я бы почитал. Но почему-то никто их не пишет
в каждом треде по несколько раз обсирают женерики и жалуются что никакврасте
Аноним 03/03/23 Птн 18:28:53 2628766 164
>>2628136
>вас действительно никто не заставляет использовать именно встроенный map, ограничения которого известны - вы вполне можете взять любой другой.
>>нахерачить говна, а потом все переписывать

>Вот такие предяъвы я бы почитал
Так моя предъява и была в том, что дебил в малиновом пинджаке ниасилил параметрический полиморфизм, встал в позу и начал всем доказывать, что НЕНУЖНО и ГОЙ-ВЕЙ, в итоге спустя 10 лет разумеется все равно пришлось все запиливать (кто бы мог подумать), только теперь помимо десяти синтаксисов для объявления переменной будет десять синтаксисов для мапы или чего угодно еще, ведь ГО ИЗ ЭБАУТ СИМПЛИСИТИ. Да, и удачи попользоваться сторонними имплементациями стдлиба в языке, который абсолютно не может в метапрограммирование и в котором даже сраные итераторы гвоздями прибиты к встроенным типам и нет интерфейса, который можно было бы реализовать. Ведь ГО ЭТО ПРОСТОТА, так что давайте будет десять разных синтаксисов для итерации по коллекции. А еще давайте запилим в стдлиб марсианский шаблонизатор, но вот мап и фильтер давай программирувай в каждый проект сам(про обработку ошибок я вообще молчу, ну го просто не является типизированным языком в полном смысле этого слова)

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

И да, паблик\прайват заглавными буквами - это просто комически плохое решение, лол, пожалуй худшая косметическая фича в истории дизайна япов
Аноним 03/03/23 Птн 18:31:26 2628769 165
а еще помните ШУЕ ППШ синтаксис кондишнл компиляции, лол, и как потом за этим хуесосом остальная команда его переделывала
го вей, хули, накласть говна и потом переделывать


>>2628136
>rust
И да, в том и бугурт, что раст - значительно более низкоуровневый язык, и он тупо хуево подходит для области применения ГОвна. ГОвно скорее сравнивать с окамлом, но сука, если сейчас про окамл начнем говорить я точно нажрусь нахуй
Аноним 03/03/23 Птн 23:00:36 2629008 166
а вот допустим у меня есть структ на 200-300 байт. вы хотите чтобы я его вернул как значение или поинтер?
я вот лично не хочу чтобы в местах вызова была мысль в задней части головной корочки что эта хуйня может оказаться nilом. ну и дергается эта логика ну раз 10-100 в день т.е. по сути на перф похуй. но бля меня мучает вопрос а на самом ли деле rule of thumb што на большие структы нужно возвращать поинтеры это не залупа собачья?

>inb4 духота про профайлинг
Аноним 04/03/23 Суб 00:12:43 2629072 167
>>2628766
> Так моя предъява и была в том, что дебил в малиновом пинджаке ниасилил параметрический полиморфизм, встал в позу и начал всем доказывать, что НЕНУЖНО и ГОЙ-ВЕЙ, в итоге спустя 10 лет разумеется все равно пришлось все запиливать (кто бы мог подумать
Я бы мог тебе рассказать, что го это ни разу не первый язык Робба Пайка и что до этого у него во всех языках были дженерики и поэтому они для него более чем осилябельны. Но зачем что-то доказывать фанатикам?
Аноним 04/03/23 Суб 00:15:49 2629074 168
>>2629008
На маленьких объемах тебе вообще похуй, всё что угодно будет работать быстро. А на больших объемах, если у тебя ещё и стек вызовов большой, то за такое большое количество копирований тебе никто спасибо не скажет.
Но вообще тут нужен баланс, слишком большое количество указателей это тоже неприятно и гц может начать захлёбываться.

Вообще обычно правила такие, что маленькие структуры можн опередавать и по значению, а большие всё же лучше через указатели.
Да, это небезопасно, но ты как бы на небезопасном языке пишешь, смирись или выбирай другой язык.
Аноним 04/03/23 Суб 00:51:39 2629091 169
>>2629074
слыш так бля епта. ты же повторил что я в посте упомянул про правило большого пальца но только обосрал язык за небезопасность
Аноним 04/03/23 Суб 01:34:19 2629096 170
>>2629091
Я тебе развернуто объяснил, что на маленьких объемах похуй, а на больших будет заметно.
Аноним 04/03/23 Суб 12:10:39 2629321 171
Мне почему-то Голанг напоминает больше язык Перл, чем какой-нибудь Си. Здесь практически тот же подход: простые вещи делаются просто, а сложные сделать возможно. Также, как и Перл, Голанг не стал "пахнуть" лучше со временем.
Аноним 04/03/23 Суб 14:16:31 2629433 172
>>2629008
Нужно изменять - возвращай указатель, ненужно изменять - возвращай копию.
Ну либо везде в проекте возвращай указатель (при условии что на производительность похуй (если не похуй то >духота про профайлинг)).
Аноним 04/03/23 Суб 14:25:25 2629441 173
>>2629072
>что до этого у него во всех языках были дженерики
В каких "всех", перечисли пожалуйста. Из полноценных я знаю только лимбо, в котором он был только лишь соавтором, и очевидно многими вещами занимался не он, а его коллеги.

>поэтому они для него более чем осилябельны
Еще раз, можно было с самого начала подумать, добавить параметрический полиморфизм (не "дженерики") и зафиксировать синтаксис с учетом возможности дальнейшего расширения. Вместо этого они: а) встали в позу с мантрами про го-вей и симплисити; б) спустя 10 лет сделали ровно то, о чем им говорили с самого начала (и то недоделали), но теперь с добавлением 9000 разных синтаксисов и необходимостью переписывать кучу либ (да-да, формально обратная совместимость не нарушена, возьмите конфетку блядь). К тому же они сами в своем блоге писали о том, что были не уверены, как реализовать дженерики в го, но видимо для тебя это мнение "фанатиков".
Алсо, если ты смотрел первые гугловские презентации пайка, то сам мог видеть, что он хуево ориентируется в плт и путается в простых вещах
Аноним 04/03/23 Суб 23:06:42 2630008 174
Если для реализации стандартной библиотеки, нужно привлекать магию компилятора - это хуевый дизайн языка.
Аноним 04/03/23 Суб 23:25:57 2630015 175
>>2628136
>В моём случае точно нет, за 5+ работы гошником я не упёрся в это ни разу
В пистоне я очень часто делал сеты для проверок уже имеющихся объектов. Для своего класса было достаточно реализовать пару магических методов. В го мне сказали, что все это нинужна.
Аноним 05/03/23 Вск 14:54:09 2630414 176
>>2629096
ну хорошо што про размер стека упомянул, но например такая хуйня (на зашкваренном медиуме) есть https://medium.com/@philpearl/bad-go-pointer-returns-340f2da8289
(еще результаты бенча у меня нихуя не сходятся со статьей пиздос лмао)
и наверное нужно понять когда объемы считать большими а когда нет........ вот допустим у меня в структе там 20 int64 и 20 строк = 40*8 байт. кажется что бля достаточно большой но так ли это мистер фриман?
Аноним 05/03/23 Вск 15:02:28 2630428 177
>>2629433
>Нужно изменять - возвращай указатель, ненужно изменять - возвращай копию.
это же больше к ресиверам в методах относится? изменение полей же не переаллоцирует структ
Аноним 05/03/23 Вск 15:20:36 2630455 178
>>2628766
>И да, паблик\прайват заглавными буквами - это просто комически плохое решение, лол, пожалуй худшая косметическая фича в истории дизайна япов
__такой_хуйни_навалом()
Аноним 05/03/23 Вск 23:29:15 2630998 179
Аноним 06/03/23 Пнд 08:12:20 2631160 180
>>2630414
>результаты бенча не сходятся
Так у тебя и процессор другой, шиз
Аноним 06/03/23 Пнд 20:36:19 2631939 181
Сейчас в очередной раз поработал на проекте, где активно используется uber/fx и в очередной раз подтвердил свой опыт, что это удобная либа с хорошим апи, но при этом невероятно мерзотно реализованная внутри, как впрочем и всё остальное у убера. Ну вот прям видно, что писали джависты. Всё в десяти обертках, всё максимально абстрактно называется и максимально неочевидным образом происходит.
Я там думал дописать кое-чего и им потом реквест создать - так выяснилось, там уровней сложности даже несколько. Интуитивно кажется, что fx должен быть тонкой обёрткой вокруг dig - но на самом деле нихера и там по сути два контейнера, один собственно fx, а второй уже dig. Зачем так сделано - непонятно.


Короче, никогда не используйте код от убера в качестве примеров, так как делают они- делать не надо. Прочих их либ это тоже касается, они даже из сраного логгера, который как бы не рокет сайнс ни разу, ухитрились сделать самолёт.
Аноним 06/03/23 Пнд 20:37:48 2631941 182
>>2624090
ты проебал немного в условии цикла.
Ты пишешь "1<5", т.е. если переводить на человеческий - "ПОКА 1 (АДИН!!!) меньше 5 то {Действиие}", у тебя единица всегда меньше пяти, т.е. всегда TRUE.

Тебе нужно писать не 1, а переменную i.

Как только переменная i станет больше или равно 5, то будет нужный тебе результат.
Аноним 06/03/23 Пнд 22:21:55 2632065 183
>>2631160
Хватит следить за мной
Аноним 06/03/23 Пнд 23:06:08 2632107 184
>>2631939
Спорно, но спасибо за мнение, годный постинг.
Аноним 06/03/23 Пнд 23:10:42 2632117 185
>>2631939
Это потому что Го не предназначен для DI, а не потому что код писали """неправильные программисты""". Гугловый DI выглядит еще уебищнее чем uber/fx, потому что - ненужно. Пишите маленькие сервисы и инжектите все руками в инит().
Аноним 07/03/23 Втр 11:01:00 2632341 186
>>2632117
Ты не прав и я как раз писал о другом. fx можно использовать и это нормально выглядит в итоге, особенно удобно, когда у тебя много разных тестов - и тогда ты в каждом пакете отдельно объявляешь var Module = fx.Provide(...) и потом нужные модули подключаешь в контейнер, выглядит похоже на аннотации в той же джаве.

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

> Пишите маленькие сервисы
Вот это распространённое заблуждение, как и то, что "Го - язык для микросервисов". Не бывает в жизни исключительно маленьких сервисов, или ты делаешь что-то не так. Бизнес-логика всегда сложная и разветвленная, у тебя всегда много сценариев и хотелок, в рамках одного бизнес-юнита.

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

> инжектите все руками в инит
это нормально работает в случае одной main или какого-то небольшого их количества. Но когда у тебя к примеру появляются тесты, а особенно интеграционники, то уже становится больно, потому что каждый тест требует той же инициализации, но периодически со своими особенностями, всякими моками и заглушками. В случае с ручным инитом это приводит к адовому копипасту очень быстро.
Ну и самих команд может быть дофига.
Как вариант, можно делать ручной di в main и отдельно юзать контейнер в тестах и это тоже ок.
Аноним 07/03/23 Втр 17:07:24 2632777 187
Ща сидел в толчке и вспомнил малолетнего долбоёба гиперактивного из вашей тусовки. Чё с ним стало?
Аноним 07/03/23 Втр 18:28:41 2632891 188
>>2632341
>Бизнес-логика сложная
Может тогда просто взять полноценный язык (да с полноценной системой типов) для написания сложной бизнес-логики? Ах да, ведь мы уже наняли команду 300кб\наносеков-гошников, ну тогда ладно, авось спустя полгода что-нибудь и высрут. Зато памяти сэкономили.
Аноним 07/03/23 Втр 19:58:03 2633009 189
>>2632891
Го нормальный язык для написания бизнес-логики, не пизди. Интерфейсы есть, типы есть, функции есть, условия есть. В целом это минимальный набор. Не идеальный, но достаточный, чтобы писать сложную логику. Писал 100500 сложных проектов на го и именно с го проблем особо не было, брат жив. Дженерики побогаче бы конечно и в стдлиб побольше всяких filter() и map(), но это уже хотелки.

Существует множество бизнес областей (да почти все на самом деле), где достаточно развесистая логика, чтобы она вылезала за 100к строк, но при этом она не настолько сложная, чтобы ради этого начинать заниматься метапрограммированием. Более того, если ваша логика заставляет вас заниматься метапрограммированием - то возможно у вас джава головного мозга и вы зря нафигачили абстраций поверх абстракций.
Аноним 07/03/23 Втр 21:35:14 2633084 190
>>2633009
Конечно же, любого тьюринг-полного языка хватит чтобы описать любую бизнеслогику! Брейнфак форевер!
Аноним 07/03/23 Втр 21:39:14 2633086 191
>>2633084
Он же сказал "не идеальный"
Аноним 08/03/23 Срд 11:15:48 2633501 192
Прочитал про срезы и что-то у меня пукан разорвало от них. Это ж надо было выдумать настолько нелогичную и неудобную штуку с тонной подводных камней в использовании! Жесть просто!
Аноним 08/03/23 Срд 11:26:06 2633505 193
>>2633501
Что конкретно нелогично? В го туре сказано, что это просто указатель на основной массив, как и сказано то, что при расширении он уже перестанет быть указателем, что логично, ведь иначе ты не сможешь добавить в него элементы, ибо length > capacity, а значит нужно аллоцировать с нуля, что конкретно тут не логично?
Аноним 08/03/23 Срд 12:15:30 2633549 194
image.png 298Кб, 473x500
473x500
Аноним 08/03/23 Срд 12:37:39 2633559 195
я запускаю горутину и иду пить кофе
без остановки вертит сук мой нетполлер
селектом взял твои каналы за яичники
контекст отменится из них выйдет ошибка

коллега не заюзал gofmt раскрошил ебало
второй роба пайка не уважал раскрошил ебало
написал женерик функцию раскрошить ебало
убил всех джавистов но мне этого мало

мне этого мало

рублю бабло
рублю бабло
рублю бабло
на го

рублю бабло
рублю бабло
рублю бабло
на го
Аноним 08/03/23 Срд 12:43:26 2633564 196
>>2633505
Нужно было делать две сущности: срез как неизменяемый указатель на массив со строго фиксированными размерностью и ёмкость, и вторую - динамический массив, где нам без разницы что там внутри, а важно лишь, чтобы он хранил наши значения.
Аноним 08/03/23 Срд 12:51:39 2633580 197
>>2633564
разве не так сделано?
Массивы с детерминированым количеством элементов
Динамический слайс на базе массивов
Аноним 08/03/23 Срд 12:52:58 2633586 198
>>2633580
Или ты хочешь нетипизированную фигню как массивы в пхп?
Аноним 08/03/23 Срд 13:04:25 2633610 199
>>2633580
И чем они отличаются? Тип-то один. Нельзя написать допустим так:
func (final pArray []int) {
append(pArray, 5) //error!!!
}
Аноним 08/03/23 Срд 13:07:10 2633615 200
>>2633549
Слово "митинг" если чё тоже было широко употребимо в прошлом веке, уточка.
Аноним 08/03/23 Срд 13:13:43 2633623 201
>>2633610
Напиши аналог тайпскрипта для голанга, чтобы он компилировал расширенную статически строготипизированную версию голанга в читабельный голанг.
Аноним 08/03/23 Срд 13:28:16 2633632 202
suisei huh.png 336Кб, 526x526
526x526
Аноним 08/03/23 Срд 13:30:57 2633635 203
>>2633623
Сразу набегут тысячи хомячков и скажут, что не нужны нам енти ваши монады, писали err != nil и будем писать

к тому же нахера компилироваться в голанг, у него же инфраструктура по факту куцая
Аноним 08/03/23 Срд 14:53:38 2633783 204
>>2633501
Это нормальная абстракция поверх массивов, к примеру в расте тоже есть слайсы и они работают почти так же.
Неочевидность здесь исходит просто из постановки задачи: ты хочешь иметь непрерывный блок значений в памяти и обращаться к нему, как к переменной - и при этом хочешь уметь аппендить в него значаения сверх лимита. Это автоматически означает, что тебе нужно перевыделить память и переключить переменную на новый блок в памяти.
Это же тебе не список, который по всей куче может быть размазан и который потом gc заебется сканировать.

К гошной реализации можно придраться только с точки зрения дизайна функции append.

Но в реальности ты проблем с этим не испытываешь. Просто держи в голове два правила:
1) Вообще всегда присваивай результат аппенда в тот же слайс: foo = append(foo, ...) - кстати есть линтеры, которые за этим следят.
2) По возможности не пытайся менять саму переменную слайса, всегда возвращай новое значнение. Ну примерно как функция append делает. С мапами кстати аналогично.
Аноним 08/03/23 Срд 15:19:12 2633806 205
>>2633783
с мапами аналогично что
Аноним 08/03/23 Срд 15:53:00 2633821 206
Аноним 08/03/23 Срд 18:43:44 2634002 207
>>2633635
>к тому же нахера компилироваться в голанг, у него же инфраструктура по факту куцая
Быстрый ГЦ, горутины с вытесняющей многозадачностью, нативный бинарник без VM, есть ансейф, так что при желании можно и 2 указателя сложить. По первым двум пунктам только Эрланг может чем-то подобным похвастаться. Если бы не хуевый дизайн языка, то вообще был бы топ язык для прикладных приложений.
Аноним 08/03/23 Срд 18:48:26 2634013 208
>>2633783
Линейные типы? Не, не слышали. У нас же ПРОСТОЙ язык, нужно просто держать в голове два 9000 правил.
Аноним 08/03/23 Срд 18:50:36 2634016 209
>>2634002
Ну если совсем без траллинга, то в целом я согласен. Но я про куцесть скорее про либы писал - их все-таки значительно меньше и они более худшего качества, чем елсевере.

</совсембезтроллинга> Да и к тому же размер бинарников у го и граальвм почти одинаковый, а если не видно разницы, то зачем жрать ГОвно?
Аноним 09/03/23 Чтв 10:24:46 2634478 210
Аноним 09/03/23 Чтв 11:15:23 2634506 211
>>2634478
Потому что go.sum может показывать несколько версий сразу, например если ты используешь third-party пекейджы, потому лучше смотреть только в go.mod
Аноним 09/03/23 Чтв 13:20:14 2634629 212
primer.jpg 75Кб, 727x455
727x455
Сейчас копался в старых файлах и случайно наткнулся на старый скрин для двача. Оказывается, первую программу на голанге я написал в 2017.
Аноним 09/03/23 Чтв 13:59:46 2634668 213
>>2634016
>Да и к тому же размер бинарников у го и граальвм почти одинаковый, а если не видно разницы, то зачем жрать ГОвно?
Если лум и правда реализует все обещанные фичи, то может и правда будет конкуренция.

С другой стороны многих Го подкупает кажущейся простотой. до того самого момента, пока проект не разрастётся и простота не начнет мешать.
Аноним 09/03/23 Чтв 15:20:50 2634720 214
>>2634506
че ты мне тут корявого лепишь?
Что тут произошло:
Секурити-офицеры сначала родили какую-то машинку, но потом обосрались и потом откатили свои ахуенные истории.
Аноним 09/03/23 Чтв 15:41:38 2634741 215
>>2634720
Буквально коммент депендабота
> go.sum files are not lock files but a log of all packages downloaded by Go when building a project. They may include multiple versions of a dependency, which may result in false positive Dependabot alerts for a vulnerable version that isn't actually used in the project.
Аноним 09/03/23 Чтв 20:12:44 2634996 216
>>2634668
Simple != easy. Никакого симпл димпл в голанге и близко нет, такое же минное поле из костылей, как и кресты, просто по объему меньше.

А лум - да, уж не знаю, доживу ли до того момента, как они все допилят.
Аноним 10/03/23 Птн 15:12:31 2635771 217
>>2634996
>Никакого симпл димпл в голанге и близко нет, такое же минное поле из костылей, как и кресты, просто по объему меньше.
Го легок для чтения, с ним практически никогда не возникает вопросов "что эта функция делает" и "как реализовать эту функцию" всё примитивно и прямолинейно. Просто берёшь и кодишь. Много кодишь потому что язык многословней даже Джавы.
Аноним 10/03/23 Птн 15:19:47 2635778 218
>>2635771
Да. Тут большой плюс в гошке, что можно просто лазить по искодникам используемых пакетов они легко читаются. Не в пример даже Ларавелю какому-нибудь с его фасадами. Хер пойми откуда он что берет и куда перекладывает... Только дебагером.

мимо пыхарь
Аноним 10/03/23 Птн 15:29:04 2635784 219
>>2635778
Хорошо что деды которые гошку проектировали не стали туда макросы пихать как в своей любимой сишке. Или им зумер начальник из гугла запретил это делать.
Аноним 10/03/23 Птн 18:15:14 2635941 220
>>2635771
>Го легок для чтения
Язык не может быть "легок" или "сложен" для чтения. Легко или сложно читать может быть конкретный код. На любом языке можно написать как трудный для понимания код, так и легкий для понимания код.

Бой некорректному мышлению!
Аноним 10/03/23 Птн 18:55:00 2635971 221
>>2635941
Коректность не должна превращаться в шизу, игнорируя подразумеваемый контекст. Обсуждается средняя температура по больнице - читабельность языка. Пока ты не устроишься на проект, тебе его никто не даст почитать. Выберешь трудночитаемый язык - придется либо тянуть лямку, либо бегать от проекта к проекту теряя время на испытательном сроке.
Аноним 10/03/23 Птн 20:04:33 2636074 222
>>2635971
>трудночитаемый язык
Опиши, как (можно на глазок) померять трудночитаемость языка, и почему условный го трудночитаемей условной джавы.
Аноним 10/03/23 Птн 21:02:24 2636130 223
>>2635941
язык можно назвать легким для чтения, если весь/почти весь код, написанный на нём, легок для чтения. это называется метонимия
Аноним 10/03/23 Птн 21:43:30 2636149 224
>>2636130
>если весь/почти весь код, написанный на нём, легок для чтения
Ну да, а если я закину на жидхаб 9000 тонн говнокода на языкнейм, то это сразу магически изменит собственные качества языкнейма. Давайте-ка без вот этой глупой гуманитарщины, язык - это формальная система.
Аноним 10/03/23 Птн 21:52:18 2636156 225
Аноним 11/03/23 Суб 00:42:16 2636318 226
>>2636149
>Ну да, а если я закину на жидхаб 9000 тонн говнокода на языкнейм, то это сразу магически изменит собственные качества языкнейма
strawman
>Давайте-ка без вот этой глупой гуманитарщины, язык - это формальная система
это дискас на форуме где принят разговорный стиль переписки, алё. доебываться до того, что "кипит не чайник, кипит вода в чайнике" это уровень б или уже выше?
Аноним 11/03/23 Суб 08:10:52 2636444 227
Что лучше использовать для методов: приемники указателей или приемники значений?
Аноним 11/03/23 Суб 13:16:07 2636662 228
Есть ли в го джава лайк стримы?
Аноним 11/03/23 Суб 15:01:13 2636742 229
>>2636444
В общем и целом - лучше указатели. Они универсальньнее с точки зрения типов и быстрее
Аноним 11/03/23 Суб 15:02:33 2636745 230
>>2636662
Нет, но думаю появятся
Аноним 11/03/23 Суб 15:04:17 2636746 231
>>2635941

Ну удачи написать имедж борду на брейнфаке, лел
Аноним 11/03/23 Суб 15:05:48 2636750 232
Аноним 11/03/23 Суб 15:07:24 2636753 233
>>2633635

> Сразу набегут тысячи хомячков и скажут, что не нужны нам енти ваши монады, писали err != nil и будем писать

Без гарантированно чистых функций монады - это карго культ для фанатиков.

Выбор языка, кстати, тоже вопрос скорее религии
Аноним 11/03/23 Суб 15:12:11 2636759 234
>>2636742
А если я хочу показать, что приемник не будет изменяться в методе?
Аноним 11/03/23 Суб 15:37:09 2636790 235
>>2636759
чтобы что? это не const. назови метод нормально и всем будет понятно, что он ресивер не меняет. в местах вызова все равно в 99% случаев не видно какой ресивер, разве что когда в интерфейс пытаешься положить
Аноним 11/03/23 Суб 17:00:45 2636897 236
>>2636318
Я и не доебываюсь к тому, о чем ты пишешь.

>>2636746
Можно еще пожелать удачи с написанием модулей ядра на жаваскрипе, но зачем?
Аноним 11/03/23 Суб 17:02:43 2636902 237
>>2636753
Отнюдь.

Более того, гарантированно чистые функции - это карго культ для фанатиков.

За исключением 0.0001% случаев, где действительно нужна формальная верификация. Но и там в систему типов это тащить необязательно. Алсо, напоминаю про unsafePerformIO; так что там, хаскель с кого карго-культирует?
Аноним 11/03/23 Суб 17:04:45 2636904 238
>>2636759
Напиши комментарий. Это го, не пытайся сделать из него выразительный язык, он таковым не является. Лучше по умолчанию делай указатели.
Аноним 11/03/23 Суб 17:27:32 2636942 239
>>2636742
>быстрее
Ты скозал?
Процессору похуй, выделять 4 байта на указатель или 16 на структуру, будет одинаково быстро. (Кроме редких моментов с очень большими структурами, ОЧЕНЬ)

Во всем мире принято ставить указатель в принимаемый тип только основываясь на то, будет ли он изменяться внутри или нет
Аноним 11/03/23 Суб 17:40:41 2636978 240
16647305185691.png 1273Кб, 1080x1920
1080x1920
Привет, помогач!
В мои руки попал проект с .go в конце.
Нужна среда разработки, чтобы запустить программу и потрогать её внутри
Аноним 11/03/23 Суб 17:43:01 2636985 241
>>2636942
Еще не забываем про то, что указатели нужно еще и разименовывать, а значит уже больше действий, чем просто передать копию

К счастью, для такого есть даже отдельные инструкции
Аноним 11/03/23 Суб 18:08:10 2637048 242
>>2636978
Скачай сам го, а проект можно открыть в любом тестовом редакторе с подсветкой синтаксиса. Самая популярная среда - VS Code, ещё есть GoLand, но она платная.
Аноним 11/03/23 Суб 18:37:48 2637114 243
image.png 230Кб, 1298x719
1298x719
>>2636750
>Есть такое https://github.com/ahmetb/go-linq
Нечитабельное Go-вно.

>джавовые стримы спизжены с linq
Какие же шарперы тупые, это пиздец просто! Общая CS эрудиция отсутствует как класс.
Стримы в джаве чисто библиотечная вещь, никаких новых языковых конструкций в нем нет. В отличии от linq который сахар на сахаре, с сахарным сиропом. А сама идея идет из функциональщиных языков, мэп-редьюс, вот это все.
Аноним 12/03/23 Вск 01:12:01 2637508 244
>>2637114
Оно не только нечитабельное, оно еще и медленное и нетипобезопасное. Типичный ГОвнокод тащем-то.

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

>>2636750
Джавовые стримы основаны в первую очередь на стандартной библиотеке кложи, т.к. главный архитектор джавы слегка фанбоит по кложе. Но в целом это все известные чуть ли не с 80-ых паттерны ФП.
Аноним 12/03/23 Вск 18:32:06 2638184 245
>>2614678 (OP)
Если легаси хуитка, которая деплоится в несколько инстансов и отвечает по REST API. Только один инстанс может обработать запрос от клиента. Остальные откидывают кастомную жысонину, мол "не могу обработать". Типа мастер есть. Вот как лучше всего писать клиент к такой ебанине, если известны адреса каждого инстанса? Или это можно решить на уровне инфраструктуры и спрятать все это говно за какой-нибудь хитрой проксей?
Аноним 12/03/23 Вск 18:46:57 2638212 246
>>2638184
а нахуй они так сделали?
>Вот как лучше всего писать клиент к такой ебанине, если известны адреса каждого инстанса
ну просто делаешь обертку для хттп.клиента (или в него кастомный транспорт закидываешь, который тупо обертка над дефолтным с логикой фейловера). если запрос фейлится, то идешь раунд робином, пока один из адресов не ответит. если ответил, то дефолтишься на него.
>Или это можно решить на уровне инфраструктуры и спрятать все это говно за какой-нибудь хитрой проксей?
а хули они так не сделали?
Аноним 12/03/23 Вск 19:06:31 2638249 247
>>2638212
Не хочу велосипедить клиент, да еще и такую хуету писать с перебором. Хотелось бы это решить как-то изящнее. Изначально все писали долбаебы-студенты, которых наняли за копейки.
Аноним 13/03/23 Пнд 09:34:50 2638647 248
Кому-нибудь удалось написать свой веб-сервер? Ну не просто, который отдаёт всем хелловорлд, а полноценный, который можно использовать для написания коммерческих веб-приложений. Или всё-таки никто сам такое не пишет, а используют готовые фреймворки как в других языках?
Аноним 13/03/23 Пнд 10:15:20 2638656 249
>>2638647
А смысол? Разве для учебных целей.
Аноним 13/03/23 Пнд 10:19:16 2638662 250
>>2638656
Разве на работе не пишут веб-приложения? Мне казалось это основное направление го-разработки.
Аноним 13/03/23 Пнд 10:36:44 2638672 251
>>2638662
Ты путаешь веб-сервер, который сидит жопой в интернет и в современных условиях работает реверс проксей, и аппликейшен сервер, который уже работает с твоим приложением.
Писать самому второй, а тем более первый это бессмысленная задача, потому что их дохуя и они написаны и вылизаны людьми поумнее тебя.
Аноним 13/03/23 Пнд 12:14:29 2638766 252
>>2638672
Дак что в итоге пишут на го?
Аноним 13/03/23 Пнд 12:41:20 2638791 253
>>2638647
>Кому-нибудь удалось написать свой веб-сервер? Ну не просто, который отдаёт всем хелловорлд, а полноценный, который можно использовать для написания коммерческих веб-приложений
разработчикам го))
Аноним 13/03/23 Пнд 13:41:40 2638845 254
Сейчас читаю книжку Адама Фримана Pro Go и дошёл, где он начал писать платформу для своего онлайн-магазина. Если до этого всё было понятно, то вот когда он начал заворачивать многослойные сервисы, то у меня мозг отключился. Так реально пишут или это он превращает голанг в асп.нет со всякими внедрениями зависимостей? Я вот не понимаю, нафига городить такую хренотень, чтобы потом в одном месте написать одну строчку вместо двух? Типа глядите как классно: я могу пихать в сервисы любой тип, а он там сам всё раскрутит и создаст.
Аноним 13/03/23 Пнд 14:41:38 2638910 255
>>2638845
>Adam Freeman is an experienced IT professional who has held senior
positions in a range of companies, most recently serving as chief
technology officer and chief operating officer of a global bank. Now retired, he spends his time writing
у челика жава головного мозга, не суди строго
Аноним 13/03/23 Пнд 14:50:01 2638920 256
>>2638910
ну и челик который ревьюит просто картина маслом
>senior consultant and a senior analyst/developer using Microsoft technologies, a Microsoft Certified Solution Developer for .NET, a Microsoft Certified Application Developer for .NET, a Microsoft Certified Professional
Аноним 13/03/23 Пнд 16:01:33 2639007 257
>>2638845
>Сейчас читаю книжку Адама Фримана Pro Go
>Apress
Чел... Книгами этого издательства только подтираться или на растопку печки. Читай книги от Manning, O'Reilly или хотя бы The Pragmatic Bookshelf.
Аноним 13/03/23 Пнд 16:11:18 2639014 258
>>2638845
Почитай для контекста любые статьи по архитектуре, тысячи их.
Аноним 13/03/23 Пнд 16:31:05 2639027 259
>>2637508
>При этом сам шарп\дотнет ресерчат довольно крутые чуваки, у них там и эфшарп, и приблуды для формальных доказательств, да и в целом рнд сильнейший. Такая вот ирония.
Нет никакой иронии, это всё закономерно. Хороший дизайн языка, это умение добавлять нужные фичи и не добавлять малополезные фичи, это умение выбирать такую реализацию, чтобы язык оставался консистентеым по стилю.
Есть говей когда нужные фичи не добавляются до тех пор пока уже станет невозможно нормально разрабатывать на языке. Есть шарпвей когда в язык тащат все прикольные фичи которые можно реализовать. Проблема шарпа не в том что его авторы криворукие, а в том что у них нет чувства меры.
Аноним 13/03/23 Пнд 16:46:17 2639034 260
>>2639027
Нет никакой иронии, это всё закономерно. Хорошее свойство вещи типа N, это наличие X и отсутствие Y. В подтипе N1 типа N - X минимально, а в подтипе N2 типа N - Y максимально. Проблема N2 в том что производитель N2 добавил слишком много Y.
Аноним 13/03/23 Пнд 18:38:15 2639190 261
>>2639027
Ну зато там есть Blazor и можно написать фронт на сишарпе, а на голанге так нельзя. Надо будет учить жс/тс и фреймворк реакт/ангуляр/вуе.
Аноним 13/03/23 Пнд 19:57:42 2639287 262
>>2639027
не знаю, по мне так в шарпе не так уж и много лишнего, с чувством меры все в порядке.
Аноним 13/03/23 Пнд 23:54:43 2639443 263
>>2639190
>Ну зато там есть Blazor и можно написать фронт на сишарпе, а на голанге так нельзя.
Говно какое-то. Или уж делать нормальный десктоп или не ебать мозг и делать на базе Электрона и веб технологий, главное преимущество которого это возможность реюзать 99% кода для веб версии и независимость от бекенда. А так GWT для C# получается.

>>2639287
>не знаю, по мне так в шарпе не так уж и много лишнего, с чувством меры все в порядке.
1. LINQ это совершенно чужеродная с т.з. синтаксиса конструкция. Да еще неочевидно как работающая - как понять как будет делаться джоин 5 коллекций?
2. async/await - создает специальный класс async функций которые можно вызывать только из async функций или специальным образом. В Го можно любуй функцию запустить как горотину там есть вопросы с возвратом ответа, но все решаемо. А теперь этого мало, надо виртуальные треды делать.
3. Фич много, как правило есть больше одного способа реализовать фичу, команде приходится договариваться об общих подходах.
Аноним 14/03/23 Втр 00:00:01 2639448 264
почему учить Го а не Раст?
Аноним 14/03/23 Втр 00:55:05 2639463 265
>>2639448
А мы откуда знаем? Учи то, что нужно по потребностям
Аноним 14/03/23 Втр 01:10:54 2639470 266
>>2639448
хз. у нас на го позицию можно устроиться пройдя собес на другом языке вроде пыхи/петона. с растом хз получится ли такое.
Аноним 14/03/23 Втр 09:12:07 2639529 267
>>2638791
Что-то не заметил в пакете http промежуточного программного обеспечения.
Аноним 14/03/23 Втр 13:19:47 2639708 268
>>2639529
Что ты имеешь под
>промежуточного ПО
Миддлвари что ли? Так это тебе роутер нужен
Аноним 14/03/23 Втр 13:45:56 2639744 269
>>2639529
ну там же есть http.Server. почти на каждой работке его и юзали для создания коммерческих приложений
Аноним 14/03/23 Втр 14:58:41 2639845 270
>>2639463
>потребностям
1млн руб/мес или 400к+ юсд за пределами снг
Аноним 14/03/23 Втр 16:14:44 2639940 271
>>2639845
И что ты хотел сказать этими цифрами?
Аноним 14/03/23 Втр 16:56:30 2639982 272
>>2639448
Учи АК и не еби нам мозги.
Аноним 14/03/23 Втр 19:22:59 2640175 273
>>2639448
Смотри, чтобы найти работу на расте, нужно быть умненьким. Раз ты задаешь такие вопросы, то вполне очевидно, что ты тупенький. Поэтому если возьмешься за раст, то никогда не найдешь работу, а вот с го у тебя какие-то шансы все-таки есть, ибо го - язык для говнокодинга.
Аноним 15/03/23 Срд 00:17:11 2640499 274
Аноним 15/03/23 Срд 02:03:42 2640587 275
>>2640499
Ой ой! Задели нежную лубовь неофита к сишарпу...
Аноним 15/03/23 Срд 07:15:50 2640637 276
>>2638212
>а нахуй они так сделали?
Вот у вас есть контроллер, который обрабатывает поступающие запросы. На каждый запрос он получает из параметров инстанс переменную, например "@var". Её значение уникально для каждого запроса. Вот так приложение выполняет один и тот же код, но для разных входящих данных.
При дефолтных настройках вашего сервера, запросы встают в очередь и выполняются последовательно. Но если нагрузка начинает превышать возможности такого решения, то можно начать запускать приложение в нескольких инстансах. Это подразумевает выполнение одного и тоже кода в нескольких процессах (воркеры) или даже на разных серверах.
Пример: сервер распределяющий нагрузку (1 сервер) разделяет запросы на несколько инстансов (n серверов), где запущено одно и тоже приложение, но они все обращаются к одной базе (1 сервер).
Аноним 15/03/23 Срд 07:17:26 2640639 277
>>2638184
Очевидно на мастер истансе!
Аноним 15/03/23 Срд 07:49:19 2640643 278
>>2640587
Ты тупой и необразованный, это даже не требуется доказывать.
Аноним 15/03/23 Срд 10:37:27 2640715 279
>>2640643
Да вы оба не блещете умом.
Аноним 15/03/23 Срд 12:31:21 2640817 280
раст отстой сишарп параша
гоферы хой победа наша
Аноним 15/03/23 Срд 12:33:59 2640820 281
1677584001143329.png 205Кб, 351x310
351x310
>>2640637
так остальные инстансы же не работают
Аноним 15/03/23 Срд 14:40:04 2640947 282
>>2640637
Ты не понял. У тебя N инстансов одного сервиса. Только один из них может обрабатывать запросы по REST API. Остальные тебе вернут ошибку. Т.е. там роли у такого "кластера", где один мастер, который все запросы обрабатывает.
Аноним 16/03/23 Чтв 11:47:21 2641919 283
Вкатываюсь в го. Поясните по хадркору, как жить без дженерик методов? Вот как - как жить? Плодить копипасту? Вот у меня есть задача перекладыания сущностей их источника в хранилище. Ну типичная же, да? Ну не хочу я писать два десятка вариантов кода, отличающихся именем сущности. Казалось бы, Родина дала тебе дженерики! Но нихуя. Я хочу использовать DI и через него получать базу, логгер и прочую хуйню. А как мне таскать DI контейнер? Глобальной переменной, что ли?
Аноним 16/03/23 Чтв 12:45:23 2641941 284
>>2641919
Чем тебя джава не устраивает?
Аноним 16/03/23 Чтв 13:05:16 2641951 285
image.png 1007Кб, 1200x1200
1200x1200
Аноним 16/03/23 Чтв 13:27:49 2641964 286
>>2641941
Меня всем устраивает шарп, но у меня задача писать на го :(
>>2641951
Про type safety я вообще молчу. Мне бы хоть от копипасты избавиться :(
Аноним 16/03/23 Чтв 15:04:07 2642070 287
>>2641964
Я думал дотнетчиков заставляют фронт учить, а не другой язык для бэкенда
Аноним 16/03/23 Чтв 16:27:18 2642178 288
>>2642070
Я вообще на говне мамонта писал. Но меня заставляют на го. Мне нравится шарп,, но мне платят за то, чтобы я учил го.
Аноним 16/03/23 Чтв 18:46:40 2642337 289
Кажется, я понял дао Го. Дженерики не нужны, потому что всё равно типобезопасоности нет. Тупо заворачиваем всё в структуры interface{} и не лоъматим бабушку :(
Аноним 16/03/23 Чтв 22:20:49 2642551 290
Ты дрянь, лишь это слово псособно обидеть.
Ты дрянь, я не могу тебя любить, но не хочу ненавидеть.
Ты не тот инструмент, на котором я способен писать.

type TEntityDTD interface {
ContractorDTO
}
type TEntityXML interface {
ContractorXML
}
type Entity[D TEntityDTD, X TEntityXML] interface {
getXML() X
dtoMapper()
D
}
Теперь попытаемся имплементировать метод.
func (e Entity[ContractorDTO, ContractorXML]) getXML() ContractorXML {
return &ContractorXML{}
}

Invalid receiver type Entity[ContractorDTO, ContractorXML] (Entity[ContractorDTO, ContractorXML] is an interface type)
Аноним 16/03/23 Чтв 22:57:20 2642570 291
>>2641919
>Плодить копипасту?
Да, это же ГО - язык для ГОвнокода. Но дженерики (кастрированные) уже джва релиза назад завезли - теперь осталось только переписать все библиотеки, ура.

>Вот у меня есть задача перекладыания сущностей их источника в хранилище.
Если хочешь заморочиться, то можешь написать кодогенератор (см. go generate). Но разумеется так как мы в ГО треде, а ГО - это язык для ГОвнокода, тебе придется прям парсить и генерить текстовые файлы, т.к. про метапрограммирование и лисп-макросы роб пайк не слышал инб4: слышал но у него гой-вей!!1. Поэтому смотри сам, что проще.

В целом, при написании го главное поменять отношение. Не пытайся сделать "правильно" или "красиво", ну или "эффективно". Нахреначь как попало чтоб оно хоть как-то работало, притом поддержку желательно скинуть другой команде или свеженанятому джуну. Если какой-нибудь хер из другой команды решит на тебя позалупаться, то отвечай, что он хуй и ничего не понимает, а твой код соответствует the go way.
Аноним 17/03/23 Птн 00:06:04 2642624 292
>>2642570
> дженерики (кастрированные) уже джва релиза назад завезли
За два дня я сделал вывод, что дженерики в го завезли примерно так же, как альтернативную военную службу в России. Ты должен пожалеть об этом.
Аноним 17/03/23 Птн 19:40:15 2643438 293
>>2642624
А какие дженерики тебе нужны? Чем гошные хуже джавовых? Что такого ты хочешь с ними делать?
Аноним 17/03/23 Птн 20:59:59 2643498 294
>>2643438
Давай начнём с дженерик методов. Продолжим мапой без interface{}.
Я вообще не понимаю, почему го получил такую бешеную популярность. Что в нём суперкрутого? Лаконичный синтаксис? На да, на том же шарпе это пишется более жирно. Но блин, я ещё не встречал языка, на котором я должен неделю думать, как мне выразить мысль, который ставит мне палки в колёса - туда нельзя, сюда нельзя, но если вы возьмёте void, oops I mean interface{}.
Блядь, в 21 веке использовать void
! Дийкстра в гробу вертится, замедляя вращение Земли.
Аноним 17/03/23 Птн 21:11:57 2643505 295
>>2643498
Я сегодня про горутины и замыкания читал. Там вообще вынос мозга! К примеру, счётчик цикла горутина неправильно читает, а вот если его присвоить переменной внутри цикла, то уже всё норм.
Аноним 17/03/23 Птн 21:12:08 2643506 296
>>2642624
Ты не понимаешь. Это го-вей. Сейчас все перепишут весь код на кастрированные дженерики, потом еще через 5-10 лет роб пайк прочитает какой-нибудь пейпер про тайпклассы и добавит дженерик методы, чтобы все переписали весь код еще раз. Кодинг крутится, лавешки мутятся, ВВП растет. Смекаешь? Понимать надо.
Аноним 17/03/23 Птн 21:15:10 2643509 297
>>2643498
>Я вообще не понимаю, почему го получил такую бешеную популярность.
Ты не поверишь, но примерно 90% ПРОГРАММИСТОВ оценивают новый язык ровно по двум вещам:
1) синтаксису на примере хелловорлда
2) логотипу

Так что пиар гугла + логотип. Буквально это. Такая вот индустрия, добро пожаловать.
справедливости ради еще рантайм с гц и ксп из коробки в 2008 году
Аноним 17/03/23 Птн 21:17:56 2643510 298
>>2643505
>счётчик цикла горутина неправильно читает, а вот если его присвоить переменной внутри цикла
это ты еще интерфейсы с нил не сравнивал Ты не понимаешь. Го - это простой язык. Го-вей - это ПРОСТОТА. Ну мне так чувак в пинджаке по телеютубу сказал. А ты кто такой? Вот он в гугле работает, а ты русский фашист хуесос с двачей.
Аноним 17/03/23 Птн 21:48:13 2643533 299
>>2643509
Не могу вспомнить, кто сказал, что простые вещи должны быть простыми, а сложные - возможными. Вот го отлично справляется с первым. И никак - со вторым.
МЕня вымораживают коллекции с interface{}. Меня вообще вымораживают здешние коллекции - они НЕ ПРОСТЫЕ. Они простые в Perl, Они слишком простые в PHP. Они достаточно удобные в дабе и шарпе. Они блать ебанутые в go.
Интерфейсы вроде бы есть, но я пока не познал их дао. Но в стандартной библиотекте их нет. Нет никого ILogger или IDbCOntext. Просто в голове не укладывается - вот этим люди обмазываются и просят ещё!
Аноним 17/03/23 Птн 21:56:16 2643545 300
>>2643498
Сука, он мне вместо войд-звёздочка курсив сделал :(.
Аноним 18/03/23 Суб 12:43:05 2644072 301
>>2643533
>Вот го отлично справляется с первым.
>десять синтаксисов на каждую фичу
>неоднозначный парсинг после введение дженериков
>тонны подводных камней, некоторые из которых уже упомянуты выше по треду
>вообще лень опять перечислять очевидное
Нет, не справляется. Вот scheme - справляется, например. Да даже простихоспати луа какая-нибудь и то справляется

>ILogger
>IDbCOntext
А зачем ставить букву I перед названием интерфейса иметь это в стандартной библиотеке?
Аноним 18/03/23 Суб 15:31:19 2644272 302
>>2624966
За аж неделю изучения языка пришел к выводу, что в го di не имеет смысла. В нем не принят полиморфизм, не принято делать стандартные абстрактные классы или интерфейсы. Без них di я вляется изощрённым способом почесать левой пяткой правое ухо.
Аноним 18/03/23 Суб 17:24:26 2644430 303
>>2624966
не то чтобы совсем нинужно, но вообще нинужно. если там бля ну хендлеры ходят в сервисы, сервисы ходят в репозитории, репозитории ходят в бд, то инжектор говорит о чем? о том, что ребята скоро будут распиливать свой монолит, т.к. дохуя говна завезли и пытаются костылями скрыть сложность погружения в его код
Аноним 18/03/23 Суб 18:46:53 2644523 304
>>2633783
>По возможности не пытайся
>Вообще всегда присваивай результат как надо, хотя язык этого не требует явно

Охуенный дизайн языка. Просто охуенный. Делайте как надо, а как не надо не делайте, но мы вас не заставляем, можно делать и совсем наоборот и ИНОГДА это будет иметь смысл!
Аноним 18/03/23 Суб 19:54:59 2644596 305
Как же коряво делается бизнес логика, такое ощущение, что ебу байты на сишке при этом не имея и доли сишных возможностей. Как будто язык предназначен только для ебли с сетью, что бы грузить бинарные жсоны.
Аноним 18/03/23 Суб 19:57:15 2644598 306
>>2644596
Какую приложуху пишешь? Я все же подумываю бэкенд для несложной в плане графики игры запилить на гошке, но сомнения терзают.
Аноним 18/03/23 Суб 19:59:39 2644601 307
>>2644598
Беттинг.
Переписываем парочку компонентов с питона на го, что бы с сеткой быстро работало. Думали остальную часть тоже переписать, но когда дело дошло до описания доменных моделей и работы с ними от идеи резко отказались.
Аноним 18/03/23 Суб 20:55:35 2644660 308
>>2644272
Ты не путай, в рабочем коде слои изолируются через интерфейсы. То, что в стдлибе ничего не выведено на интерфейсы - так это просто разрабы мудаки, но это ж не повод за ними повторять плохое.
Аноним 18/03/23 Суб 20:58:13 2644661 309
>>2644596
>ебу байты на сишке при этом не имея и доли сишных возможностей
Ты только что суть.

>>2644598
Если чисто ради изучения чего-то нового, то запили лучше на кложе\хаскеле\эликсире. Если надо просто запилить побыстрее и чтоб работало, то бери то, что знаешь лучше всего, очевидно же.
Аноним 18/03/23 Суб 23:03:00 2644782 310
>>2639443
>async/await - создает специальный класс async функций которые можно вызывать только из async функций или специальным образом
Какое же говно этот ваш Шарп
Минуточку...>>2639443
>В Го можно любуй функцию запустить как горотину - специальным образом
Ах, какой же это охуенный язык!
Аноним 18/03/23 Суб 23:09:00 2644789 311
>>2644660
Так и не в стандартной. Все модули - кто в лес, кто по дрова, и гордятся своим специальным апи.
Аноним 18/03/23 Суб 23:10:04 2644791 312
Всё-таки знаете, аноны, перл приятнее. Он хотя бы не прикидывается ем, чем не является.
Аноним 19/03/23 Вск 13:09:35 2645030 313
>>2644791
>перл
Яндексблядок детектед! Когда мои ПД вернешь, сука?
Аноним 19/03/23 Вск 13:28:22 2645056 314
>>2643498
>почему го получил такую бешеную популярность
компилируемый + горутины из коробки + простой в освоении по сравнению с растом или cpp + gc
Аноним 19/03/23 Вск 13:33:49 2645062 315
>>2641919
DI обычно не используется в гошке.
Аноним 19/03/23 Вск 14:05:24 2645097 316
>>2645056
>компилируемый + горутины из коробки + простой в освоении по сравнению с растом
Таких языков десятки, если не сотни. Но у них нет финансовой поддержки гугла. и няффки-логотипа :333
Аноним 19/03/23 Вск 14:11:56 2645100 317
>>2645097
Горутины из коробки у кого есть? У раста нет, у cpp тоже.
У сишарпа их нет. У джавы вот только-только в превью.

>>2645097
>Но у них нет финансовой поддержки гугла
Ну само собой без пиара ничего не взлетит само по себе.
Аноним 19/03/23 Вск 15:57:45 2645216 318
>>2645100
эликсир, окамл, кристал, ди вроде тоже, и еще сотня более обскурных языков, я даже где-то список сохранял, лень искать

без поддержки (((корпораций))) все равно все дохлое
Аноним 19/03/23 Вск 16:33:45 2645258 319
>>2643498
Подожди, но это хуёвый ответ.
Я тебя спрашиваю "что тебе не нравится в гошных дженериках?". Ты мне отвечаешь "в го нет мап без any" (кстати так и не понял о чём это ты) и дальше накидываешь про сам язык.
В итоге, ты пиздел на гошные дженерики, поясняй за них, что тебя в них не устраивает.

>>2643505
Ты глупенький что ли? Это называется замыкание и происходит во многих разных языках, в том же js (ну со скидкой на то, что он однопоточный).
Если ты используешь в горутине какую-то переменную, а потом эта переменная изменится - то да, она изменится внутри горутины тоже. Абсолютно валидное поведение. Не хочешь, чтобы она менялась - то не суй в горутину то, что меняется снаружи.
Аноним 19/03/23 Вск 16:45:11 2645270 320
>>2645258
Нельзя использовать в методах, нельзя использовать как уже говорили выше в мапах/слайсах, это сырое говно. Интерфейсы тоже не лучше, нельзя например сделать интерфейс с типами как параметр функций (нахуя тогда оно надо?) и это только то, что пришло сразу в голову, покопаться - еще больше пиздеца будет

другой анон
Аноним 19/03/23 Вск 16:51:50 2645278 321
А где вы прочитали про дженерики? Я скачал книгу за 2023 год, но там нет ничего про них. А в старых самого собой про них ещё и не знали.
Аноним 19/03/23 Вск 17:14:21 2645336 322
>>2645270
>нельзя использовать как уже говорили выше в мапах/слайсах
В качестве ключей в мапах и в качестве значений в мапах/слайсах можно.
Аноним 19/03/23 Вск 17:26:28 2645371 323
>>2645278
>книги по программированию
>2023
Имагинировали ебало этой промывки инфоцыганами?
Аноним 19/03/23 Вск 18:01:56 2645414 324
>>2645030
Нахуй пошел, быстро решительно.
Аноним 19/03/23 Вск 18:03:47 2645418 325
>>2645270
> нельзя использовать как уже говорили выше в мапах/слайсах
можно

> нельзя например сделать интерфейс с типами как параметр функций
можно
Аноним 19/03/23 Вск 18:10:25 2645432 326
>>2645418
Покажи, вот у меня есть функция, которая должна принимать либо int64, либо float32, либо string, как это реализовать в интерфейсе?
Аноним 19/03/23 Вск 18:11:01 2645433 327
>>2645278
Так толсто, что даже тонко
Аноним 19/03/23 Вск 18:16:15 2645439 328
image.png 48Кб, 582x623
582x623
image.png 6Кб, 364x125
364x125
>>2645432
Ну вот например. Это то, что ты хотел?
Аноним 19/03/23 Вск 18:18:50 2645448 329
>>2645418
Как использовать в мапах/слайсах с проверкой типов? За any будешь обоссан.
Аноним 19/03/23 Вск 18:24:34 2645462 330
>>2645439
Так это дженерики уже, попробуй тогда это сделать методом
Аноним 19/03/23 Вск 18:25:17 2645464 331
>>2645448
Что тебе нужно, например от мапы? Не совсем ясно что ты хочешь с ней делать. С дженериками и мапами кажется в гошке все ок.
Аноним 19/03/23 Вск 18:31:19 2645471 332
>>2645464
Я хочу хранить в мапе MyType. Я просто хочу хранить в мапе MyType.
Алсо, почему го - единственный ЯВУ, в котором я должен думать о ёмкости коллекции? Почему в го нет ArrayList?
Аноним 19/03/23 Вск 18:34:14 2645478 333
image.png 67Кб, 668x746
668x746
image.png 4Кб, 336x127
336x127
Аноним 19/03/23 Вск 18:35:59 2645481 334
Аноним 19/03/23 Вск 18:36:41 2645482 335
>>2645478
И че это, мне каждый раз придется делать новый инстанс этого типа??? Это конечно круто, но обычно методов далеко не 1…

Факт фактом, что дженерики, что интерфейсы в гошке - сырое говнище
Аноним 19/03/23 Вск 18:37:26 2645483 336
>>2645481
Очевидный голанд очевиден.
Аноним 19/03/23 Вск 18:38:44 2645484 337
image.png 33Кб, 722x383
722x383
>>2645471
>Я хочу хранить в мапе MyType. Я просто хочу хранить в мапе MyType.
Аноним 19/03/23 Вск 18:42:39 2645492 338
>>2645414
Яндексблядку не пичот!
Аноним 19/03/23 Вск 18:44:57 2645498 339
>>2645464
>С дженериками и мапами кажется в гошке все ок.
Чтоб было ок, мапы должны быть не накостыленным встроенным типом, а обыкновенным Map[k,v], где к - компарабл.
Аноним 19/03/23 Вск 18:45:44 2645500 340
>>2645483
Но он платный и дорогой
Аноним 19/03/23 Вск 18:49:07 2645509 341
>>2645500
Винда тоже платная и недешевая, и что теперь?
Аноним 19/03/23 Вск 18:49:53 2645510 342
>>2645498
>компарабл
Это слишком сложно для простого языка.
Аноним 19/03/23 Вск 18:51:44 2645512 343
image.png 22Кб, 716x286
716x286
>>2645482
Дело не в дженериках, а в том, что методы для интерфейсов не нужно имплементить.
Их имплементят уже те, кто этот интерфейс хочет реализовать. Так что дженерик интерфейсы в качестве ресивера особо бесполезны имхо.
Аноним 19/03/23 Вск 18:55:54 2645524 344
>>2645510
Как проще? По хешкоду считать как джаве или питоне?
Аноним 19/03/23 Вск 18:58:17 2645529 345
>>2645524
>Как проще
boolean, numeric, string, pointer, channel, and interface types, and structs or arrays that contain only those types.
Аноним 19/03/23 Вск 19:04:19 2645545 346
image.png 120Кб, 888x418
888x418
Алсо в 1.20 добавилась неочевидность: P any и просто any это разные вещи.
Для обычного any, (который на самом деле interface{}), == определен.
А для типа, который ограничили any, уже == не определен. Вот такая хуйня.
Аноним 19/03/23 Вск 19:04:22 2645546 347
>>2645512
То есть все, кто имплементит интерфейс, обязаны заниматься копипастой. Ну да, у нас же простой язык.
Аноним 19/03/23 Вск 19:06:05 2645550 348
>>2645546
Так во всех языках, не? Интерфейс это просто набор методов, которые нужно заимплементить, чтобы реализовать этот интерфейс. По сути просто контракт, что такие-то методы реализованы у всех, кто заимплементил этот интерфейс.

Причем тут копипаста? Или ты про аналог default методов в джаве, которые хуй пойми зачем нужны?
Аноним 19/03/23 Вск 19:06:52 2645551 349
>>2645546
Или про абстрактные классы, которые уже у себя имплементят часть поведения? От абстрактных классов решили отказаться. Даже в ООП языках их почти не используют сейчас.
Аноним 19/03/23 Вск 19:20:12 2645579 350
>>2645512
Хорошо блять, смотри, у меня есть свой тип, у него есть дохуя методов, и мне нужна что бы метод например Add принимал в себя одновременно и int и float и еще какую то хуйню, а еще у меня есть соседний метод, который принимает в себя только float или int, как реализовать? С any - идешь нахуй
Аноним 19/03/23 Вск 19:22:09 2645583 351
>>2645579
Делаешь два микросковиса...
Аноним 19/03/23 Вск 19:28:35 2645595 352
>>2645583
Кого кого делаю? Что ты там мямлишь
Аноним 19/03/23 Вск 19:30:43 2645600 353
>>2645595
Микросервисы, блядь, делаешь? Родина дала легковесные потоки и горутины, а ты хочешь разнотиповые методы в одном месте собрать.
Аноним 19/03/23 Вск 19:31:10 2645603 354
image.png 42Кб, 888x418
888x418
Аноним 19/03/23 Вск 19:34:57 2645609 355
>>2645603
Да ну капитан очевидность, правда что ли? Я про это и говорю, или по твоему это недостаточно сыро?
Аноним 19/03/23 Вск 19:37:44 2645616 356
>>2645603
Как в джаве такое сделать я уже не помню, не уверен, что там такое вообще можно было сделать, мб только если отказаться от дженериков и нагородить что-нибудь с иерархией наследования.
Про С++ хз, там наверное возможно поебаться с шаблонами и сделать как надо.

>>2645609
А как в других языках такое делается?
Аноним 19/03/23 Вск 19:38:21 2645618 357
>>2645600
А да, точно, это же Go Way - про GOвнокод
Аноним 19/03/23 Вск 19:43:17 2645628 358
>>2645609
> Go is not designed to cover this kind of use case
Вопросы?
Аноним 19/03/23 Вск 19:47:42 2645635 359
А нужны ли вообще дженерики? Для операций со структурами данных и для построения штук вроде Stream API нужны. А в остальных случаях? Сколько не видел продуктового кода на го, нигде не видел дженерики или чтобы они были сильно нужны.
Аноним 19/03/23 Вск 19:49:39 2645639 360
>>2645635
>нигде не видел дженерики
Может потому что они релизнулись в недавних апдейтах???
Мало того что проект с ними писать нужно, так они еще и не допиленные, так еще и самих разработчиков нужно научить использовать их
Аноним 19/03/23 Вск 19:58:40 2645656 361
>>2645639
Я раньше на джаве писал. Там дженерики видел только в коде библиотек всяких.
Аноним 19/03/23 Вск 20:01:56 2645662 362
>>2645656
Кто виноват что ты говнокодер?
Аноним 19/03/23 Вск 20:05:53 2645665 363
Аноним 19/03/23 Вск 20:07:57 2645672 364
>>2645545
Как же они заебали со своей простотой...
Аноним 19/03/23 Вск 20:17:51 2645694 365
>>2645635
Если у тебя статическая система типов, то она должна поддерживать параметрический полиморфизм, иначе это не система типов, а говно. Иначе ты не сможешь тайпчекнуть map :: (a -> b), [ a ] -> [ b ] или тривиально id :: a -> a.

Если у тебя язык, рассчитанный на хоть какое-то практическое применение, то тебе нужно решать expression problem[1] и поддерживать рантаймовый ад-хок полиморфизм, иначе не получится никакой модульной разработки. Это так или иначе приводит тебя к тайпклассам (а-ля х-ль) либо модулям\функторам (а-ля окамл), либо протоколам\клос в динамических языках. Это все если что было уже достаточно хорошо известно и исследовано в 90-ые. но читать вадлера - это не го-вей

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

[1]: https://en.wikipedia.org/wiki/Expression_problem
Аноним 19/03/23 Вск 20:48:26 2645771 366
Как мне вернуть дженерик в функции?
Аноним 19/03/23 Вск 21:34:57 2645866 367
>>2645771
В смысле. Приведи пример кода, что ты хочешь сделать.
Аноним 19/03/23 Вск 23:16:22 2646003 368
Я давно так не рофлил.
Кучу времени всякие долбоебы пиздели, что с го что-то не так. И в итоге стоило только начать предметный разговор, как выясняется что.. Вполне всё так. И дженерики рабочие, и мапы делать можно, и shadowing нормальный, и замыкание такие же, как и везде.
Очевидно, что здесь, как во всяких чатах в телеге, тусуется куча сомнительных личностей околоджуновского уровня, которые с уверенным видом вбрасывают в треды своё неквалифицированное мнение и самое главное, что может сделать нормальный человек - их не слушать.
Аноним 19/03/23 Вск 23:36:37 2646016 369
>>2646003
Я так понимаю неудобные посты выше ты игнорируешь и для тебя они «недостаточны» или что?
Аноним 19/03/23 Вск 23:45:15 2646022 370
>>2646016
Это же гофер. У него же религиозное сознание, как у яблочника.
Аноним 19/03/23 Вск 23:57:54 2646031 371
>>2646016
Если закрыть глазки, то этого то и нету совсем!
Аноним 20/03/23 Пнд 00:10:18 2646040 372
>>2646016
Я просто не восьмибитный школьник, страдающий максимализмом и тем более не ведусь на "моду" любить или не любить какие-то языки.

Идеальных языков не существует и в какой ты не ткнешь пальцем, найдешь трешняк. Джава пиздец жирная с уродливой жирной экосистемой поверх спринга, с++ угроблен кучей магии и ансейф вещей прям в стдлибе и какими-то академическими уебанами в комитете, js тащит за собой какой-то адский груз легаси из плохих решений в прошлом, ещё и оборачивая его в миллион библиотек поверх других библиотек, ts пытается прибирать за js c переменным успехом, php однопоточный, ruby с python тормозные и не умеют в нормальную многопоточность, c# вызывает диабет, scala ещё более жирная чем джава и к ней есть большие вопросы по поводу принятых там подходов, и тд и тп один rust няшечка и идеален.
К го тоже есть вопросы, да.
Просто нужно держать это всё в голове, что мир не черно белый и у всего есть много неочевидных плюсов и минусов. Та же гошная "простота", которую принято хейтить, иногда реально решает и к примеру когда пытаешься продраться сквозь 100500 слоёв абстракции в джавовом монолите, который ещё и стартует несколько минут, невольно думаешь, что всё могло быть иначе. И тупой хейт языка просто показывает вас дебилами с упрощенной картиной мира в голове.
Аноним 20/03/23 Пнд 00:15:50 2646047 373
>>2646040
И тем более странно делать тупые вбросы про большие или маленькие переменные (это блять условность синтаксиса, как $ в пхп. Вам то какая разница чего печатать), мапы (нормально работают, запихать можно почти всё, что угодно и в реальной жизни проблем с этим вообще нет), дженерики (ну разве что дженерик методов пока не бывает и то в новых версиях их обещают. и в стд либ обещают внедрить, просто не сразу) и тд и тп.
Когда вместо нормальных аргументов вида "вот это можно было сделать лучше вот так вот" читаешь что-то настольно непродуманное, хочется закрыть тред и окончательно поставить крест на людях, раз они думать не хотят. И то часто даже по "разумным" комментариям видно, что анон просто хочет, чтобы го был "как жава" и не понимает, почему что-то сделано так, а не иначе и что здесь был трейдофф и разработчики языка пожертвовали одним в пользу другого. Кстати напоминаю, что в джаве джереники сделаны просто стиранием типов и это самое уёбищное решение на свете.
Аноним 20/03/23 Пнд 00:30:01 2646057 374
>>2646040
>А ВОТ У БААРЕНАААА
Хохол, ты?
Аноним 20/03/23 Пнд 02:20:52 2646110 375
короче бля им надо было просто женерик методы сделать, но не ебаться с их поддержкой в интерфейсах. просто бля писать такого метода нет в интерфейсе. ну и всё, тогда бы люди думали о том как проблему интерфейсов решить, а не тупо жаловались что не могут метод написать.
Аноним 20/03/23 Пнд 04:35:15 2646154 376
>>2645484
Охуенно. Ну и какая сигнатура у получившейся Мары? Какой тип? Как ее передать в функцию?
Аноним 20/03/23 Пнд 05:36:32 2646166 377
>>2646154
она же литералли на скриншоте инстанциирована
Аноним 20/03/23 Пнд 08:00:08 2646203 378
>>2646003
Я сюда пришёл из мвп-треда, потому что рейтинг вката в го самый высокий
Аноним 20/03/23 Пнд 10:12:16 2646271 379
Как иге всё-таки скрестить ежа и ужа? Методы и дженерики?
Аноним 20/03/23 Пнд 10:14:10 2646272 380
>>2646271
В смысле, КРОМЕ вынесения параметра типа на самый верх? (и эти люди говорят, что async в шарпе токсичный)
Аноним 20/03/23 Пнд 10:28:06 2646286 381
>>2645484
Во, я вспомнил вопрос. Это значения одного типа в одном мапе? Я хочу разные.
Аноним 20/03/23 Пнд 10:31:20 2646291 382
>>2646286
>Это значения одного типа в одном мапе
Ну как видишь ключ это строка, а значение float32.
Аноним 20/03/23 Пнд 10:32:41 2646293 383
>>2646271
Просто делай методы, где ресивер это структура, а не интерфейс. Все чотко будет.
Аноним 20/03/23 Пнд 10:35:49 2646297 384
>>2646271
>Методы и дженерики
Пока что никак.
Аноним 20/03/23 Пнд 12:28:45 2646423 385
Почему они не догадались добавить в язык тип decimal? Ведь предполагается работа с базами данных напрямую, а адекватного типа, чтобы запихать денежное значение - нет.
Аноним 20/03/23 Пнд 13:38:15 2646475 386
>>2646423
Сложна. Го простой зяык.

> адекватного типа, чтобы запихать денежное значение - нет
Go is not designed to cover this kind of use case

>>2646291
> значение float32
А мне нужно было MyType.
Аноним 20/03/23 Пнд 13:41:49 2646487 387
>>2646475
>MyType
float32 это и есть MyType
Аноним 20/03/23 Пнд 13:42:41 2646489 388
>>2646286
Вообще что конкретно с мапой тебе нужно? Напиши кодом, словами нихуя не понятно чего тебе надо.
Аноним 20/03/23 Пнд 13:47:43 2646503 389
>>2646475
>Go is not designed to cover this kind of use case
Го это про засовывание байтов в сокет, а не вашу доменную логику
Аноним 20/03/23 Пнд 13:55:37 2646510 390
>>2646487
Как рядом с ним положить string?
Аноним 20/03/23 Пнд 15:50:15 2646617 391
image.png 52Кб, 917x621
917x621
>>2646510
Не получится. Дженерики не решают эту проблему и не должны решать. Дженерики как раз сделаны, чтобы не допускать такого, то есть наоборот запрещают подобные действия.

Если тебе нужно одновременно держать значения разных типов, то нужно interface{} использовать или any. Но это может приводить к ошибкам типобезопасноти.
Аноним 20/03/23 Пнд 16:34:08 2646662 392
>>2646617
Нормальный язык, значит. С нормальными дженериками и коллекциями. Со строгой типизацией.
Аноним 20/03/23 Пнд 18:06:01 2646781 393
image.png 4Кб, 303x65
303x65
А есть ли какая-то разница, кроме того, что s1 проинициализирован? Спасибо!
Аноним 20/03/23 Пнд 18:44:33 2646830 394
Какой же Го охуенный!

Вот есть regex.FindStringIndex() . Что он возвращает? Нет, не (int, int), не угадали. Нет не int[2], опять не угадали. Он возвращает - []int в котором обещают положить 2 элемента. Гении блядь, просто гении!

А ещё, по дефолту методы regex работает с байтами и надо добавлять суффикс String чтобы работать со строками.
Аноним 20/03/23 Пнд 19:03:16 2646854 395
>>2646830
> Он возвращает - []int в котором обещают положить 2 элемента
Эта доёбка была бы почти справедливой, если бы я не знал, что там под капотом используется общий для всех регулярок метод (re (*Regexp).doExecute , который всегда возвращает слайс (потому что он используется например в FindAll, когда вхождений может быть неопределенно много) и раскукоживать этот слайс на две отдельные переменные означало бы выделять дополнительную память. Захочешь - сам из слайса достанешь.
Но доебаться на двачах проще, чем самому заглянуть в код и разобраться, почему что-то сделано так, а не иначе, не так ли?

> А ещё, по дефолту методы regex работает с байтами и надо добавлять суффикс String чтобы работать со строками.
В целом нормальная тема, строки и слайсы байт это разные типы и всегда терпеть оверхед на конверсии не хотелось бы.
Аноним 20/03/23 Пнд 19:08:39 2646860 396
>>2646617
Вот я получил из мапы any. На самом деле это параметризованный интерфейс. Ну то есть внутри конкретная структура, с конкретными типами, и она знает, какие у неё типа, и её методы отвечают интерфейсу.
Прежметно.
type IEnitity[X, D] interface {
GetX() X
GetD() D
}
Есть структура, которая под ним лежит, есть конкретные X и D. Есть myMap map[string]any, куда сложены экземпляры.
Из myMap очевидно достчётся any. Как из него сделать IEntity?
Аноним 20/03/23 Пнд 19:11:52 2646864 397
>>2646003
Да, тут какие-то залетные школоло несут какую-то хуйню, которую без поллитры не разберешь, но я против них не воюю, воюю только в правильную сторону. Про дженерики (типопараметры в методах, которые обещали еще к 19-ой версии запиить) тебе уже пояснили, про мапы тоже.

мимо-хейтер-го
Аноним 20/03/23 Пнд 19:14:13 2646868 398
>>2646040
>Та же гошная "простота", которую принято хейтить
Так хейтят не "простоту", а тот факт, что пиздеж о некоей "простоте" - это именно что пиздеж.

И за то, что авторы языка полностью проигнорировали весь прогресс в комплюктер ссайенс с 70-ых годов, и вместо того чтобы просто зделоть нормально зделоли так, что теперь всем еще 30 лет за ними чистить вилкой придется.
Аноним 20/03/23 Пнд 19:15:21 2646871 399
>>2646047
>и в стд либ обещают внедрить, просто не сразу
Время переписывать код!
Аноним 20/03/23 Пнд 19:16:16 2646874 400
Аноним 20/03/23 Пнд 19:18:39 2646878 401
>>2646503
Наверное поэтому в стандартную библиотеку засунули кривой шаблонизатор, ведь go is about simplicity i zasovyvanie baytov v socket.
Аноним 20/03/23 Пнд 19:20:28 2646881 402
>>2646781
В случае слайсов - нет. В случае мап - есть, второй вариант сегфолтнется при использовании. Почему? Потому что go is a simple language, если уж добавляем три разных способа написать одно и то же - то надо обязательно добавить еще парочку корнер кейсов, которые крашатся в рантайме. Ну чтоб жизнь медом не казалась.
Аноним 20/03/23 Пнд 19:23:42 2646885 403
>>2646881
>В случае слайсов - нет. В случае мап - есть, второй вариант сегфолтнется при использовании
так если ты в nil слайс полезешь по индексу как в мапу то аналогично схватишь, тут магия только внутри аппенда
Аноним 20/03/23 Пнд 19:23:44 2646886 404
>>2646854
Эта абстракция была бы почти абстракцией, если бы не текла.

кстати, если уж экономишь выделение двух интов на стеке, то не забудь руками копипастить код этой функции каждый раз вместо ее вызова, ведь го - это про производительность и ПРОСТОТУ
Аноним 20/03/23 Пнд 19:25:25 2646889 405
>>2646886
>не забудь руками копипастить код этой функции каждый раз вместо ее вызова, ведь го - это про производительность и ПРОСТОТУ
а инлайнер в гошке чем не угодил то
Аноним 20/03/23 Пнд 19:32:21 2646896 406
>>2646885
Эм, нет. По какому индексу, если слайс пустой? Без разницы, инициализирован он нилом или собственно пустым слайсом, - он все равно пустой и будет out of bounds. Это не то.

В говномапах добавление нового элемента делается синтаксисом m[k] = v. В слайсах добавление нового элемента делается аппендом. В первом случае мы крашимся в рантайме от нил, во втором нет. Потому что ПРОСТОТА
Аноним 20/03/23 Пнд 19:32:41 2646897 407
>>2646889
Это к тому анону вопрос, не ко мне.
Аноним 20/03/23 Пнд 19:33:58 2646901 408
>>2646874
Нихера. У ьеня X и D - обобщённые интерфейсы. И IDE мне говорит, что я должен их вынести в сигнатуру функции, типа определить. А мне нахуй не надо их здесь определять!
Аноним 20/03/23 Пнд 19:34:37 2646902 409
Аноним 20/03/23 Пнд 19:35:07 2646903 410
>>2646860
>я получил из мапы any
Не нужно делать мапы map[X]any - это плохой паттерн. Нахуя ты так делаешь? Так не стоит делать.

И что за структура внутри, покажи ее в треде? Параметризованный интерфейс я увидел. А что за типы X и D, какие у них должны быть ограничения? Так нихуя и не понял что тебе нужно.

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

В общем как я понял тут что-то такое ты хотел?
https://go.dev/play/p/lWQgHbuZ825
Аноним 20/03/23 Пнд 19:35:46 2646904 411
>>2646901
Скинь код чо ты там хочешь наворотить, нихуя не понятно
Аноним 20/03/23 Пнд 19:39:25 2646911 412
>>2646902
> func accounting[X, D any]()
Вот это мне не нужно. Тем более что у меня не any, а вполне настоящие интерфейсы. То есть я был бы и не против, НО ЗДЕСЬ У МЕНЯ МЕТОД!!!
Аноним 20/03/23 Пнд 19:40:57 2646913 413
Аноним 20/03/23 Пнд 19:45:43 2646915 414
>>2646903
> Нахуя ты так делаешь?
Тому що в простом языке это единственный способ засунуть в мапу что-то неоднородное.
Аноним 20/03/23 Пнд 19:49:37 2646921 415
>>2646913
> [int, float32]
Чудесно, а тут ты из воздуха взял конкретные типы. До чего же простой язык, я ебу.

Так, с any не прокатило. Где-то на SO читал, что можно засунуть IIFE функции хитрым образом...
Аноним 20/03/23 Пнд 19:53:58 2646929 416
>>2646903
>map[X]any - это плохой паттерн
Обоснуй.
Аноним 20/03/23 Пнд 19:54:10 2646930 417
>>2646915
>засунуть в мапу что-то неоднородное
Так не нужно делать. Не стоит хранить в мапах неоднородные объекты.
Если сильно нужно, то есть интерфейсы для такого.
Аноним 20/03/23 Пнд 19:54:37 2646931 418
Аноним 20/03/23 Пнд 19:55:22 2646934 419
>>2646930
>есть интерфейсы для такого.
А any - это не интерфейс, угумс.
Аноним 20/03/23 Пнд 19:56:01 2646936 420
>>2646931
>так не нужно делать
>>почему?
>потому что так не нужно делать
Аргументация уровня Говна поел.
Аноним 20/03/23 Пнд 19:59:29 2646941 421
>>2646930
А не пiйшов би ти нахуй?
Аноним 20/03/23 Пнд 20:20:47 2646965 422
>>2646921
Нашёл. И там в итоге советую использовать рефлексию :(
ОХУЕННЫЙ ЯЗЫК
Аноним 20/03/23 Пнд 20:34:19 2646976 423
Сука, как же тебя наебать-то :( Это же пиздец императивный, в 21-то веке!
Аноним 20/03/23 Пнд 20:45:25 2646994 424
>>2646976
Да, никак. Дженерики должны однозначно раскрываться во время компиляции. КТО СКАЗАЛ МАКРОСЫ? Я ЯСНО СЛЫШАЛ, КАК КТО-ТО СКАЗАЛ МАКРОСЫ!
Надо как-то переписывать чтобы type switch использовать.
Боролся со свитчем и пришёл к тому, что единственная альтернатива свитчу это свитч. Ебануться.
Подходила к конфу первая четверть 21 века. За окном шёл дождь и рота красноармейцев.
Аноним 20/03/23 Пнд 21:20:56 2647032 425
>>2646994
Если честно, я так и не понял, что тебе нужно и что ты хочешь сделать. Если не влом, опиши одним постом с конкретным юзкейсом.

ГОвноланг - говно, гофанатики - пидоры, я не тролль, просто интересно
Аноним 20/03/23 Пнд 21:34:43 2647049 426
Ну вот выдержка.
https://go.dev/play/p/hs5rGn13eFU
Я хотел в Handler получить объект из коллекции и вызвать у него методы. Объект получается в зависимости от сигнатуры. В РАНТАЙМЕ. На шарпе или яве это делается на раз-два.
Аноним 20/03/23 Пнд 21:43:23 2647054 427
Аноним 20/03/23 Пнд 21:50:32 2647061 428
>>2647049
>T
>I
Говноеды.

И извини, но это просто адовый говнокод, и ты делаешь какую-то хуйню. Тебе вообще ненужны тут ни юнионы в констрейнтах, вообще ничего из того что ты наклал ненужно. Тебе достаточно полутора интерфейсов и одного тайп свича, все.
Аноним 20/03/23 Пнд 21:57:26 2647070 429
>>2647061
> тайп свича
У меня уже был свитч. Я хотел избавиться от него. Я, сука, неделю от него пытаюсь избавиться. Я пишу без свичей на скриптовых языках, я пишу без свичей на строгих языках, и только го заставляет меня херачить простыни свичей.
Как это говно стало популярным? Ради того, чтобы быстро класть быйтики в сокеты в 1000 потоков, люди готовы жрать говно?
Аноним 20/03/23 Пнд 22:25:59 2647107 430
>>2647070
Какие простыни? У тебя в пасте натурально целый экран говнокода с хуевой декомпозицией, который заменяется буквально тремя понятными строчками. Что конкретно ты хочешь сделать? Ты можешь нормально сформулировать техзадание? Или хотя бы запастить полный код?
Аноним 20/03/23 Пнд 23:55:25 2647175 431
>>2646854
>Эта доёбка была бы почти справедливой, если бы я не знал, что там под капотом используется общий для всех регулярок метод (re (*Regexp).doExecute , который всегда возвращает слайс (потому что он используется например в FindAll, когда вхождений может быть неопределенно много) и раскукоживать этот слайс на две отдельные переменные означало бы выделять дополнительную память. Захочешь - сам из слайса достанешь.
>Но доебаться на двачах проще, чем самому заглянуть в код и разобраться, почему что-то сделано так, а не иначе, не так ли?
Уж лучше бы молчал.
1. Уродский API остается уродским, даже если он сделан ради перформанса. Хотя конкретно тут перформансом и не пахнет, тут проблема в лени разрабов.
2. Положить 2 инта на стек, это пиздец какая дорогая операция. Ну а главное, что перед возвратом слайса там делается еще один слайсинг a[0:2] что создает на стеке те же пару интов.
3. Разрабам библиотеки насрать на перформанс, иначе бы они не использовали слайсы там где можно обойтись без них. У тебя на любой матч/файнд создается новый массив в куче, куда слайсятся результаты поиска.
4. В любом случае таким нано оптимизации, должны обязательно подкрепляться бенчмарками. Типа делаем кривой API потому что на реальных данных это дает +15% перформанса.


>В целом нормальная тема, строки и слайсы байт это разные типы и всегда терпеть оверхед на конверсии не хотелось бы.
Проблема не в наличии методов работы с байтами, а в том что метод Find() работает с байтами, а не строками что было бы логичней. Т.к. поиск по строкам выполняется чаще, чем по байтам.
Аноним 21/03/23 Втр 11:12:47 2647377 432
>>2646003
>что с го что-то не так
Работа со строками, подход как в говяхе работает, если ты имплементируешь что-то низкоуровневое и нужна ебля с байтами. Для вебсервера заебись, для сервера приложения полное говно.
Аноним 21/03/23 Втр 12:03:25 2647422 433
>>2647107
> Что конкретно ты хочешь сделать?
Я хочу выводить типы в рантайме. К сожалению, Go is not designed to cover this kind of use case. Дженерики работоспособны только при условии, что рано или поздно ты руками свернёшь их в конкретный тип. Нахуй они тогда вообще нужны, я не понимаю.
Аноним 21/03/23 Втр 14:29:50 2647566 434
Полистал примеры кода на голанге. У вас реально присваивание переменных через := или это троллинг такой? Это что за паскалевысер такой?
Аноним 21/03/23 Втр 14:55:23 2647596 435
>>2647566
>Полистал
маладетс! держи в курсе!
Аноним 21/03/23 Втр 15:29:25 2647648 436
>>2647566
Ещё типы с правой стороны
Аноним 21/03/23 Втр 18:09:14 2647827 437
>>2647422
>Я хочу выводить типы в рантайме
Дженерики существуют на уровне компилятора, это не сущность рантайма.
В рантайме работает рефлексия или тайп свитч.

>>2647422
>рано или поздно ты руками свернёшь их в конкретный тип
Так и есть во всех языках, лол.

Дженерики по сути нужны для работы с коллекциями. Чтобы не пихать лишний раз interface{}, а взять и написать обобщенную реализацию условной сортировки или поиска в массиве. В клиентском коде дженерики скорее редкость, у нас на проекте ни в одном из сервисов они не используются кроме самописных библиотек.

В чем заключается твой кейс до сих пор не понятно. Можешь упростить и показать на более простых примерах, не захламляя код лишними переменными и структурами?
Аноним 21/03/23 Втр 19:15:09 2647917 438
>>2647596
Ты на поставленные вопросы отвечай, паскалеблядь
Аноним 21/03/23 Втр 19:42:51 2647937 439
заебали со своими монадами. женерики были ошибкой
Аноним 22/03/23 Срд 00:29:48 2648246 440
https://pkg.go.dev/os#File.ReadDir
>func (File) ReadDir
>func (
File) Readdir
>func (*File) Readdirnames
Просто в голос! У дебилов кончились имена, хорошо что язык кейс сенсетив.
Аноним 22/03/23 Срд 00:39:41 2648252 441
>>2647917
Что тебе ответить? Что ты дебс и не видишь различия меджу присваиванием и объявлением? И еще полистываешь вместо того, чтобы почитать в документации.
В паскале приваивание
x := 1
В голанге короткое объявление локальной переменной
x := 1
x = 2
Аноним 22/03/23 Срд 00:41:49 2648253 442
Аноним 22/03/23 Срд 09:52:06 2648400 443
А правда, что нужно свои проекты размещать в GOPATH? У меня вроде всё работает и в других папках.
Аноним 22/03/23 Срд 09:59:09 2648406 444
>>2648400
Каталог $GOPATH/bin — это место, где Go размещает двоичные файлы, компилируемые go install. Операционная система использует переменную среды $PATH для поиска двоичных приложений, которые могут выполняться без полного пути. Рекомендуется добавить этот каталог в глобальную переменную $PATH.
Аноним 22/03/23 Срд 10:02:03 2648409 445
>>2648400
иначе нужно модуль инициализировать. У тебя возможно иде добавляет папку проекта в гопас
Аноним 22/03/23 Срд 12:08:32 2648506 446
>>2648406
Там ещё /src есть

>>2648409
Ну да. Я делаю
go mod init имя_модуля
и запускаю go run .
Аноним 22/03/23 Срд 12:58:38 2648559 447
>>2648506
>go mod init имя_модуля
ну тогда единственное удобство это то, что с настроенным гопатхом имя модуля само из названия папочек подтянется, когда ты их в гопатхе создаш
Аноним 22/03/23 Срд 13:14:49 2648578 448
>>2648559
Ну дак как правильно делать? Что является идиоматичным подходом?
Аноним 22/03/23 Срд 13:54:40 2648636 449
>>2648578
Делай то, что тебе кажется удобнее ей богу, это программирование, тут все пишут так, как они САМИ считают удобным и правильным, нету одного единого мнения, я всегда делаю мод инит и не ебу мозги
Аноним 22/03/23 Срд 14:00:27 2648643 450
>>2648578
Ты слишком много думаешь, го это язык про ГОвнокод, тут надо писать просто что бы работало
Аноним 22/03/23 Срд 21:32:13 2649214 451
>>2648578
На текущий момент идиоматично размещать проект где хочешь ( обычно в /home/projects) и там инициализировать модуль через go mod init. Го модули это вообще де факто уже стандарт. Все штуки вида "размещать в $GOPATH) или не дай бог glide и dep - это всё устаревшие решения года времен года так 2017.

>>2648643
Как вы, школьники, меня заебали.. Откуда вас столько именно в этом треде? Ни в одном языке нет такого, чтобы всем было насрать на всё, кроме факта работы. В разных языках отличаются критерии правильности, вот и всё. Те же джависты больше ценят уровни абстракции и максимальный импакт минимальным количеством кода, а гошники - более явный код, по которому должно быть понятно, что и где происходит.
Аноним 23/03/23 Чтв 09:04:46 2649661 452
>>2649214
Как же этого Джуна рвет, что его первый язык программирования оказался полной хуйней
Аноним 23/03/23 Чтв 09:49:02 2649679 453
Как пишут веб-приложения?
Вот, к примеру, я могу наделать хандлеров на каждый запрос вида: /list, /edit и т.п. А как обрабатывать запросы вида: /list/1, /edit/2 ? А что если мне надо отдельные функции на GET и POST запросы? Что-то совсем не догоняю как имеющимся функционалом это можно сделать.
Аноним 23/03/23 Чтв 10:49:26 2649704 454
Аноним 23/03/23 Чтв 15:42:17 2650105 455
>>2647422
>Я хочу выводить типы в рантайме
Извини, но ты безграмотный долбоеб (такой же, как команда го). Иди читай, что такое "система типов", что такое "вывод типов", что такое "рантайм".

Извини, но ты обоссан и обосран. Не был бы твой менеджмент таким же безграмотным - тебя бы давно уволили.
Аноним 23/03/23 Чтв 15:46:05 2650109 456
>>2647175
Вот этот пост двачую.

>>2648246
В целом os/io/fs/ioutil - это тот еще пиздец дизайна, конечно же несколько раз переделанный, хуево организованный, с кучей дупликации.
Аноним 23/03/23 Чтв 15:47:33 2650111 457
>>2648252
Тот анон конечно малолетний дегенерат, но := есмь именно присваивание для х в случае типа
x, y := <...>
, если х уже объявлен ранее.
Аноним 23/03/23 Чтв 15:49:52 2650112 458
>>2648400
Нет, все что связано с GOPATH - устарело и может быть проигнорировано. Просто команда разработки ГОвноланга не могла с самого начала сделать нормальную систему сборки, хотя абсолютно все им говорили, что они делают говно, и что нужно сразу сделать нормально, но они решили сперва сделать все через жопу, потом выждать лет 5, пока люди опубликуют в интернетах тысячи мануалов и туториалов с объяснением кривой системы сборки, а вот потом уже все-таки все поломать и сделать так, как им все предлагали сделать изначально. Потому что таков путь ГОвна, понимать надо. Гой-вей.
Аноним 23/03/23 Чтв 15:56:16 2650116 459
>>2649214
О, кстати! Анон, давай обсудим НЕЙМИНГ. Пост абсолютно нерелейтед, но ты мне напомнил. Вот у меня тоже всю жизнь папка с кодом называлась projects. Но я тут подумал, что во-первых это слишком длинное слово; во-вторых, у меня есть другая директория projects в другом месте, где лежат проекты, не связанные с кодом. Короче, как правильно назвать папку с кодом?

- dev - логично, кратко, красиво, но блин /dev означает другое, опять одно слово для двух вещей
- code - но собственно код у меня лежит и в других местах, а здесь лежит именно мой код, ну точнее мои проекты, либо проекты в которых я принимаю и\или планирую принять какое-то участие
- coding - логично, но англоспецифичные суффиксы это антипаттерн!
- src - было бы неплохо, но получается дублирование из-за projectname/src, так что не вариант
- ???
- какие еще есть варианты?

пойду репостну в линукс-тред

алсо ебать тебе бомбануло от правды о говноланге, хе-хе
Аноним 23/03/23 Чтв 16:42:06 2650164 460
Аноним 23/03/23 Чтв 16:51:49 2650181 461
>>2650116
Я слышал, что надо cmd называть, а внутри ещё создавать папку app.
Аноним 23/03/23 Чтв 16:55:40 2650190 462
>>2649214
>по которому должно быть понятно, что и где происходит
читаешь простыни невнятной хуйни с паскале-си подобном синтаксисе, особенно в голос с массивов

имагинируешь ебало тех кому более понятно.
Аноним 23/03/23 Чтв 18:13:58 2650354 463
oof.jpg 42Кб, 680x436
680x436
>>2649214
>джависты больше ценят уровни абстракции и максимальный импакт минимальным количеством кода
>джависты
>минимальным количеством кода
Аноним 23/03/23 Чтв 18:17:55 2650364 464
Вот берёшь любой курс, книгу или серию видео на ютубе. Вначале говорят, что голанг такой крутой язык, что ему не нужны фреймворки. А когда дело доходит до написания реальных веб-приложений, то автор как бы невзначай говорит: ну а тут будем использовать такой-то фреймворк.
Аноним 23/03/23 Чтв 19:39:47 2650452 465
>>2648578
идиоматичным? модули. гопатх это рудимент который ну ты можешь настроить для себя если тебе хочется но это совсем не обязательно
Аноним 23/03/23 Чтв 19:56:42 2650460 466
>>2650116
держу все проекты в src, включая свои/рабочи и рандомную хуйню с гитхаба не вижу ничего плохого в
~/src/github.com/golang/go/src/cmd/api/testdata/src
Аноним 23/03/23 Чтв 20:10:47 2650464 467
>>2650460
Ну у меня бомбит от этого ~/src/.../src. Хотя так-то наиболее логичный вариант, тут соглы.
Аноним 23/03/23 Чтв 20:57:16 2650519 468
>>2650116
Борщехлёбность рассуждений зашкаливает.
Знаешь, как выглядит путь к папке с проектами и серьёзных, деловых людей? Примерно так:
>D:\По работе\Новая Папка\говно\github.com\golang\
Аноним 23/03/23 Чтв 22:21:18 2650611 469
>>2650519
Прекрати лазить по папиному компьютеру.
Аноним 24/03/23 Птн 06:22:20 2650869 470
>>2650464
Храню все documents/coding/Golang/%project name% и не ебу себе мозги настолько тупыми вопросами, храни там, где удобнее
Аноним 24/03/23 Птн 07:31:28 2650891 471
Бомбящий неделю назад скуф на связи. Всё-таки получилось, я познал дао го-дженериков и интерфейсов. Хотя от свичей по-прежнему бомбит.
А ещё бомбит, что структура помешается в интерфейс, и УКАХАТЕЛЬ НА СТРУКТУРУ прекрасно помещается в тот же самый интерфейс!
Я опять чего-то не понимаю? Или это хвалёная простота языка, когда я не могу понятоь, передаю я в функцию изменяемое значение или неизменяемое?
Аноним 24/03/23 Птн 10:01:40 2650935 472
>>2649704
Но тогда получается нужно учить этот фреймворк как спринг на джаве или асп.нет на сишарпе. В чём преимущество голанга тогда?
Аноним 24/03/23 Птн 10:31:10 2650952 473
>>2650935
Ты совсем не понимаешь что такое библиотека для роутинга имеющая буквально пару функций и ебучий фреймворк на миллиард абстракций, структур и разных функций? Там даже тысячи строк нету в ней
Аноним 24/03/23 Птн 13:04:51 2651093 474
>>2650891
выебоны с велью ресиверами это просто повод выстрелить себе в ногу, когда какой-нибудь хуй через полгода добавит в структуру слайсик/мутекс и решит аппендить/залочить внутри этого метода
Аноним 24/03/23 Птн 14:16:08 2651149 475
Куда вкатываться?
В бэк, микросервисы или завод?
Аноним 24/03/23 Птн 14:58:24 2651214 476
Screenshot20230[...].png 395Кб, 753x425
753x425
Аноним 24/03/23 Птн 15:53:48 2651272 477
>>2650891
>Или это хвалёная простота языка
Да, это оно самое. гой-вей Есть еще корнер кейзы с имплементацией интерфейса, если ты миксуешь поинтер и валюе ресиверы, поэтому лучше всегда использовать только поинтер ресиверы. ПРОСТОТА
Аноним 24/03/23 Птн 19:08:23 2651573 478
Кто нибудь знает на чём сидят авторы говна?

> for х := range someSlice {
Какого хуя х это индекс, а не значение? Кому в здравом уме нужны только индексы элементов массива? Это же совершенно неюзабельная хуйня!
Аноним 24/03/23 Птн 20:27:11 2651647 479
>>2651573
По индексу можно получить и значения, а переменная массива к тому же будет лишь копией значения и следовательно изменить его не сможешь. Так что, индекс (ключ) > значения.
Аноним 24/03/23 Птн 21:33:35 2651700 480
>>2651647
Просто нужно сделать это поинтером на элемент
Аноним 24/03/23 Птн 23:37:14 2651800 481
>>2651647
>По индексу можно получить и значения, а переменная массива к тому же будет лишь копией значения и следовательно изменить его не сможешь. Так что, индекс (ключ) > значения
Ёбаный стыд, кто на говне пишет.
1. Какой только хуеты не придумают, лишь бы оправдать маразм архитекторов языка.
2. Не могу в простейшую логику ну или вообще язык не знают
for _, val := range someSlice {
ВНЕЗАПНО, тоже создаёт копию значения слайса.
Аноним 25/03/23 Суб 01:31:57 2651857 482
>>2651272
> если ты миксуешь поинтер и валюе ресиверы
А что будет?
Я, кстати, избавился от any. Правда, пришлось всё на свете обмазать дженериками. С any у меня получалось, что я возвращал указатель, а присвивал значению. И оно волшебным образом кастовалось. Сидел целый еднь старательно убивал волшебство.

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

В целом - кошмар, в том плане, что без IDE я бы не разобрался. Я с ней-то по полдня сидел глядел на ошибку.
Аноним 25/03/23 Суб 01:41:40 2651862 483
>>2651573
Я сегодня изучал вопрос, как сделать N итераций. Просто N итераций. for ()..N). Официальный ответ Пайка - надо использовать трехчленный for. Вы не понимаете, это удобнее, чем for (1..N).
Аноним 25/03/23 Суб 07:48:30 2651950 484
>>2651862
А в каких языках кроме питона и луа не так? Создание нового массива и forEach если что не катит
Аноним 25/03/23 Суб 08:25:19 2651963 485
Imagine ебало тех кому нормально ебатсья с указателями в 2023, чтобы написать круд
Аноним 25/03/23 Суб 10:18:43 2652046 486
>>2651963
Ну да, константные ссылки были бы лучше. Но это слишком сложно для простого языка.
Аноним 25/03/23 Суб 10:24:55 2652061 487
>>2651950
Enumerable.Range(0, 10) в шарпе
Аноним 25/03/23 Суб 11:31:45 2652118 488
Колхозного интерпретатора ещё не придумано для Go? Playground конечно хорош, но хочется локально гонять без go run компиляции.
Аноним 25/03/23 Суб 11:59:39 2652134 489
>>2652118
Зачем? Если поиграться, можешь в голанле пускать. Если что-то серьезное, то лучше возьми нормальный скриптовый язык.
Аноним 25/03/23 Суб 13:28:30 2652233 490
>>2651800
>ВНЕЗАПНО, тоже создаёт копию значения слайса
Ну так тебе и написали, что поэтому изменить ты его не сможешь. А имея индекс этого элемента - сможешь.
Ей-богу, я воюю против ГОвна на одной стороне со школьниками-дебилоидами - лучше б вы молчали.

>>2651573
В нормальном языке не нужно было бы городить кучу специальных случаев в компиляторе, а просто была бы функция, возвращающая итератор по множеству ключей для данной последовательности.
Аноним 25/03/23 Суб 13:41:33 2652244 491
>>2651857
>А что будет?
это
>оно волшебным образом кастовалось
если у тебя поинтер ресивер, то реализация для валюе ресивера подставляется автоматически, а если у тебя валюе ресивер, но на коллсайте используется поинтерресивер, то ты словишь ошибку нот имплементед (особливо доставляет вкупе с дактайпингом), а если у тебя микс поинтер и валюе ресиверов, то еще веселее; энивей во всех стайлгайдах и емнип официальных доках рекомендуется не миксовать одно с другим и использовать поинтер ресиверыГОЙ-ВЕЙ

Вообще, забавно, насколько говнофанатики промытые зомби - буквально весь язык состоит из корнер кейсов, магических неочевидных вещей и прочей аморальной хуиты. Но чувак в пинджаке им сказал про ПРОСТОТУ - и тысячи хомячков до сих пор это повторяют. Ведь он же в ГУГЛЕ рабоатет, понимать надо, вумный значит дофига.

>в каких случая их указателя можно вызывать методы напрямую, а в каких его надо разыменовывать.
Один уровень индирекшона разыменовывается автоматически
Аноним 25/03/23 Суб 13:43:34 2652248 492
>>2651862
Тупая косметическая доебка, уровня "а вот в лишпе надо писать (f x y) вместо f(x, y), кокой кошмар!!11".

Хотя в целом это конечно сигнализирует о том, что в языке нет поддержки стримов (потому что нет нормальной системы типов)
Аноним 25/03/23 Суб 13:44:46 2652249 493
Аноним 25/03/23 Суб 13:53:49 2652256 494
>>2652244
>Один уровень
Ахтыжептвоювбогадушумать. Никогда бы не подумал.
Аноним 25/03/23 Суб 13:55:27 2652261 495
>>2652248
>в целом это конечно сигнализирует о том
Что некоторые языки заботятся об удобстве программиста, а некоторые объясняют, для чего именно язык предназначен.
Аноним 25/03/23 Суб 14:30:08 2652298 496
>>2652134
Моя бы воля, вообще бы в голанг не лез.

>>2652249
Благодарю!
Аноним 25/03/23 Суб 15:03:59 2652335 497
>>2652233
>В нормальном языке не нужно было бы городить кучу специальных случаев в компиляторе, а просто была бы функция, возвращающая итератор по множеству ключей для данной последовательности.
Кстати, почему не сделали итераторы как в пистоне? Реализуешь определенный интерфейс и итерируешься сколько хочешь без ебли с каналами
Аноним 25/03/23 Суб 15:27:51 2652364 498
>>2652261
>Что некоторые языки заботятся об удобстве программиста
Удобство программиста - в хороших базовых абстракциях, на которых построен язык. А не в том, есть там какой-то минорный синтаксический сахар или нет (один хуй что то, что другое генерится автодополнением из шаблона по нажатию двух клавиш).

>>2652335
Потому что... задние ряды уже начали догадываться... потому что... %%ГОЙ-ВЕЙ!!!11 ПРЫСТОТА, ПЫНИМАИШ?!!111 ГОЙВЕЙПРОСТАТАяидиотубейтеменяктонибудь
Аноним 25/03/23 Суб 16:22:24 2652403 499
>>2652061
>без создания нового массива
>функция создающая новый массив
Ебало памяти и гц Имагинировали если мне нужно слишком дохуя сделать итераций?
Аноним 25/03/23 Суб 18:14:41 2652581 500
>>2652403
Дохуя итераций обычно на пустом месте не появляются. У тебя скорее всего есть уже какая-то коллекция, по которой ты итерируешь. Я про другое. Тете для простого учебного примера надо сделать 10 итераций. Или тебе надо скинуть первые десять строк файла. Или что-то такое.
>>2652364
Не знаю, чего все так не любят сахар. Вот в сях квадратные скобки это сахар? Сахар. Неужели удобнее писать (pointer+5sizeof(int)) ?
Аноним 25/03/23 Суб 18:15:49 2652582 501
>>2652581
Да шож ты сука звёздочки жрешь, падла...
Аноним 25/03/23 Суб 19:15:52 2652661 502
Аноним 25/03/23 Суб 19:59:12 2652714 503
>>2652403
Не уверен на 100% насчет шарпа на 95% впрочем уверен, но нормальные стрим апи (или трансдьюсеры например) не создают новый массив при range(1,10), а просто возвращают стейтфул итератор, который с константной памятью йилдит значения в указанном промежутке. Учите матчасть, товарищи!
Аноним 25/03/23 Суб 20:01:37 2652720 504
>>2652581
Я не про любовь\нелюбовь, а про то, что доебка анона АРРЯЯЯ НАДО ПИСАТЬ i:=0; i<n; i++ вместо i:=(0..n) - абсолютно тупая и демонстрирует скорее его скудоумие, чем скудоумие создателей ГОвняшки (особенно на фоне того факта, что есть примерно 9000 других аспектов, действительно демонстрирующих скудоумие создателей ГОвняшки, и притом гораздо более фактурно и красочно).
Аноним 25/03/23 Суб 20:07:59 2652727 505
>>2615001
Концептуально правильное решение - open + first-class records, в примитивных низкоуровневых языках типа го и хаскеля такое невозможно.

Концептуально неправильное, но терпимое решение - id : Maybe int. Применяется по дефолту в большинстве языков со статической проверкой типов.

Концептуально неправильное, нетипизированное и prone to bugs решение - добавить в документацию констрейнт, что айди из базы никогда не должен равняться нулю, добавить в докстринг замечание, что айди = 0 подразумевает, что данная энтитя не записывалась в базу. Применяется в говняшке, потому что и так сойдет.
Аноним 25/03/23 Суб 21:58:31 2652832 506
>>2652720
А, ну так хули ты тут склоняещь Голанг? Дядя Роб сказал, как правильно писать, вот и пиши. Длинно - похуй, так надо. Неудобно - похуй, зато просто. Дядя сказал просто, значит просто.
Аноним 25/03/23 Суб 23:15:31 2652894 507
>>2652832
>А, ну так хули ты тут склоняещь Голанг?
Потому что это плохой язык? У тебя какой-то глупый и никчемный постинг, сорян.
Аноним 26/03/23 Вск 00:26:57 2652949 508
>>2614678 (OP)
Привет аноны, заинтересован в разработке какого-нибудь опенсорса или ваше интересного проекта, вдруг вы разрабатываете что-то реально интересное, может быть бесплатно, в зависимости от проекта готов уделять 10 + -ч в неделю
это еще много, поверьте, если работаешь
p.kwlks123@гмайл.ком
Аноним 26/03/23 Вск 14:29:19 2653355 509
>>2652949
Тоже в этом заинтересована
Телега @mentallyunstabledev
Аноним 26/03/23 Вск 15:15:37 2653401 510
Аноним 26/03/23 Вск 17:09:12 2653480 511
>>2652233
>Ей-богу, я воюю против ГОвна на одной стороне со школьниками-дебилоидами - лучше б вы молчали.
Ты просто тупой мудак, который не умеет четко выражать свои мысли.
Аноним 26/03/23 Вск 17:25:39 2653490 512
>>2653480
Я не тот анон, которому ты отвечал. Ей-богу, какой же ты тупой.
Аноним 26/03/23 Вск 18:23:25 2653566 513
Так. Поясните мне по хардкору, что за хуйня.
samber/do мне сообщает: DI: could not find service `service.IService`, available services: `chi.Mux`, `render.Template`, `service.IService`
Чтозанахуй?
Аноним 26/03/23 Вск 18:26:11 2653568 514
>>2653566
Сука. <ASTERISK>service.IService в обоих случаях.
Аноним 26/03/23 Вск 19:16:45 2653633 515
>>2653566
Пошел нахуй пидорас, нахуя ты этот ебанутый диай в гошке поставил, ну и конченные Джуны пошли, им похуй на все, главное название красивое
Аноним 26/03/23 Вск 19:22:45 2653647 516
>>2653633
Мне нсчальник передал скелет кода. Я бы не ставил, я в нём смысла не вижу. Но я вижу магию, которую я не понимаю. Какая-то еботень со структурами, интрефейсами и указателями. В простом языке.
Аноним 26/03/23 Вск 19:31:29 2653668 517
>>2653490
>Я не тот анон, которому ты отвечал. Ей-богу, какой же ты тупой.
Мудило! Это анонимная борда, я отвечал на сообщение, в душе не ебу сколько там семенов.
Аноним 26/03/23 Вск 19:35:27 2653673 518
>>2653647
Ага. Получается, что надо регистрировать структуры. Указатели на структуры. Интерфейсы рагистрировать и получать не надо. Интерфейсом можно объявлять переменную, магию им делать на надо.

А от этого DI я собираюсь избавиться, но позже. Не вижу смысла в DI, когда у тебя нет полиморфизма в самом дизайне приложения, когда у тебя уникальная структура, в единственном экхемпляре. Думаю всё убрать в "статический клас" - спекаильно обученный package.
Аноним 26/03/23 Вск 19:53:03 2653680 519
Можно ли на го писать десктопные приложения со всякими кнопочками?
Аноним 26/03/23 Вск 20:19:53 2653695 520
Аноним 26/03/23 Вск 20:36:14 2653700 521
>>2653668
Так в том сообщении, на которое ты отвечал, все мысли выражены предельно четко.
Аноним 26/03/23 Вск 20:40:32 2653704 522
>>2653673
>Думаю всё убрать в "статический клас" - спекаильно обученный package.
Все зависимости на данном слое у тебя должны быть убраны в структуру, которая передается аргументом (или ресивером) к хендлерам.

ты уже вторую неделю пытаешься разобраться в базовых вещах, как я понимаю ты стажер, как тебя до сих пор не уволили? что за фирма, если не секрет, нонейм ипшник?
Аноним 26/03/23 Вск 21:39:21 2653765 523
>>2653704
Я на перле 20+ лет писал. И последние 10 лет поддерживал жуткое легаси. Пришёл сюда на поддержку, как выяснилось, ещё более страшного легаси (до 40к строк в одном файле, все в одной процедуре, вложенности if-ов достигает восьми), но в процессе решили всё переписать на го, заодно научить ему меня. Типа, бросили в воду, плыви.
Аноним 26/03/23 Вск 21:59:34 2653782 524
>>2653704
> разобраться в базовых вещах
В базовых вещах простого языка, который состоит из подводных камней. А заодно переписать нормально код человека, который поместил в пакет repository интерфейс Service и структуру Repository, а в пакет service - интерфейс Repository и структуру Service.
Аноним 27/03/23 Пнд 03:10:04 2653900 525
>>2653673
>А от этого DI я собираюсь избавиться, но позже. Не вижу смысла в DI, когда у тебя нет полиморфизма в самом дизайне приложения
реальный di как паттерн или ты про di фреймворк еботу которая сама подставляет зависимости? сам di нужен, чтобы можно было замокать зависимости и написать юнит тесты без боли, которые не ломаются от минорных правок в соседнем пакете.
Аноним 27/03/23 Пнд 09:14:14 2653963 526
Всё равно не могу понять как пишутся реальные веб-приложения на голанге. Есть примеры проектов как пишутся типовые веб-приложения?
Аноним 27/03/23 Пнд 09:26:20 2653974 527
В книге Батчера, Фарина - Go на практике, авторы приводят рецепт №8 по сопоставлению URL-адресов с шаблонами через регулярки. Однако, в их примере я нашёл ошибку. Они используют в качестве хранилища мапу, а это значит, что при наличии двух и более подходящих шаблонов, выбираться будет любой первый попавшийся. Т.е. шаблон "GET /" может перехватывать запросы вида "GET /hello".
Получается даже в таких авторитетных книгах пишут лютый говнокод?
Аноним 27/03/23 Пнд 10:13:39 2654001 528
>>2653974
Для исправления ошибки изменил их структуру на слайс, где хранятся ссылка на обработчик и откомпилированная регулярка. Само собой обработчики надо добавлять в слайс в порядке от частного к общему, т.е. "GET /hello" должен добавляться раньше, а "GET /" должен идти последним.
В принципе, таким образом можно получить неплохой маршрутизатор для своих проектов.
Аноним 27/03/23 Пнд 13:32:16 2654186 529
>>2653963
Круд микросервис, чем тебе не реальное приложение?
Аноним 27/03/23 Пнд 15:06:28 2654279 530
>>2654186
Дак где его посмотреть можно?
Аноним 27/03/23 Пнд 16:12:56 2654361 531
Аноним 27/03/23 Пнд 16:23:51 2654371 532
>>2654361
Я слышал, что гарилу уже не используют, а горм - не идиоматичный, потому что в голанге пишут SQL-запросы, и не используют ORM.
Аноним 27/03/23 Пнд 16:58:51 2654435 533
Я вот сейчас думаю, что подход Адама Фримана, который написал свой мини ASP.NET на голанге, не так уж и плох.
Базовая библиотека не позволяет писать полноценные веб-приложения, потому надо наворачивать ещё целый слой логики.
Среди фреймворков целый зоопарк и не понятно какой учить, а какой не учить.
Написать что-то своё тоже сложно, потому что нет опыта.
Аноним 27/03/23 Пнд 19:21:31 2654627 534
>>2653765
Прикольно. Вот это я понимаю - хардкор, кишки, романтика. А не круды шлепать... Нанимаете?
Аноним 27/03/23 Пнд 19:23:33 2654632 535
>>2653782
>В базовых вещах простого языка
Нет, в этом посте я подразумевал базовые вещи софтваре инжиниринга в целом, а не говняшки в частности, - ну архитектуру и т.п.

>поместил в пакет repository интерфейс Service и структуру Repository, а в пакет service - интерфейс Repository и структуру Service.
А что не так? Видишь, ты опять упираешься в непонимание принципов архитектуры, инверсии зависимстей и т.п.
Аноним 27/03/23 Пнд 19:27:13 2654638 536
>>2653974
>Получается даже в таких авторитетных книгах пишут лютый говнокод?
Да, разумеется (и это не авторитетная книга). Тем более средний уровень ГОвноразработчиков довольно низкий, поэтому и большинство публикующихся книг по говняшке - довольно низкого качества. Их же пишут не какие-то марсиане с нибиру, а такие же кодеры.

Алсо, возможно описанное поведение соответствует ТЗ, и это не баг, а фича!

>>2654001
>Само собой обработчики надо добавлять в слайс в порядке от частного к общему
Нет, нужно применять сортировку по длине префикса. Раз уж фиксишь - то фикси, а не меняй один говнокод на другой.

>В принципе, таким образом можно получить неплохой маршрутизатор для своих проектов.
троллейбус-из-буханки.пнг
Аноним 27/03/23 Пнд 20:11:49 2654670 537
>>2654638
>сортировку по длине префикса
Как ты мапу отсортируешь? Тем более перебор идёт в порядке внутреннего представления (по вёдрам в карте). А если при каждом запросе гонять сортировку, то это ещё хуже, чем линейный поиск по слайсу в моём случае.

>троллейбус-из-буханки.пнг
Это же главная идиома голанга)))
Аноним 27/03/23 Пнд 20:51:02 2654705 538
>>2654279
Возможно более понятный тебе вариант
1) https://github.com/mammenj/goboot

В целом норм + -
2) https://github.com/shehab-as/Go-Microservices

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

юзер-товары-корзина(3 круда)
бизнес процесс добавить в корзину уже отдельный микросервис. Охуенно же по факту, имеешь структуру дерева микросервисов и быстро фиксишь\добавляешь в нужное.
Аноним 27/03/23 Пнд 20:54:16 2654707 539
Аноны, почему дизигн pkg.go.dev еще не завезли в качестве темы ? Если есть такая, реквестирую название.
Аноним 27/03/23 Пнд 21:23:32 2654727 540
>>2654670
>Как ты мапу отсортируешь?
Я не про мапу... хотя вообще говоря есть сортед мапы

>А если при каждом запросе гонять сортировку
Ох... Не при запросе. При объявлении роута.

>Это же главная идиома голанга)))
Бля. Туше!
Аноним 27/03/23 Пнд 21:28:39 2654731 541
>>2654705
Ехал сервис через сагу
Видит сервис в ямле докер
Эсдиэн гитопс графана
Кубер кубер кубер кубер
Аноним 28/03/23 Втр 08:45:08 2654917 542
>>2654705
Дак считается нормальным использовать гарилу/мукс?
Аноним 28/03/23 Втр 10:09:33 2654945 543
>>2654917
Так а почему нет? Роутер физически не могут устареть
Аноним 28/03/23 Втр 11:03:16 2654966 544
>>2654917
Да, хоть что используй, что сердцу твоему ближе.
Аноним 28/03/23 Втр 12:05:18 2655042 545
image.png 78Кб, 194x259
194x259
>>2654435
>Написать что-то своё тоже сложно, потому что нет опыта.
>Я вот сейчас думаю, что подход Адама Фримана, который написал свой мини ASP.NET на голанге, не так уж и плох.
>Базовая библиотека не позволяет писать полноценные веб-приложения
Аноним 28/03/23 Втр 12:41:38 2655092 546
>>2655042
Ну а что ты рекомендуешь?
Аноним 28/03/23 Втр 13:28:10 2655129 547
>>2654731
Езал pointer через any,
Видит any -- pointer any
any any any any
Аноним 28/03/23 Втр 13:29:11 2655132 548
>>2655129
Вру, последняя строчка такая - any any pointer nil
Аноним 28/03/23 Втр 13:31:38 2655137 549
>>2655092
Зачем тееб го, анлг* Иге вль за него платят деньги, и я страдаю. Я бы поедпочёл, чтобы мне платили за шарп, но мне платят за го, и я разыменовываю nil. А тебе зачем? Возьми нормальный типизрованный язык. Или возбит нормальный гибкий удобный язык.
Аноним 28/03/23 Втр 13:38:07 2655141 550
>>2655137
У голанга самый высокий рейтинг вката, а на сишарпе он один из самых низких, дак ещё надо и фронт учить, потому что 75% вакансий - это фуллстек.
Аноним 28/03/23 Втр 21:34:09 2655629 551
>>2653700
>все мысли выражены предельно четко
Какие блядь мысли? Там полный пук-среньк, а не мысли. Ты тут уже несколько постов усираешься мне что-то доказать, но при этом не привел пример когда нужно итерироваться по индексам, а не значениям. Единственное, что я могу назвать это инициализация пустого массива. Все остальное или значение или индекс+значение удобнее.
Аноним 28/03/23 Втр 21:41:07 2655635 552
Стикер 0Кб, 512x512
512x512
>>2654705
>бизнес процесс добавить в корзину уже отдельный микросервис.
И запускать на AWS Lambda пусть кабан удивится счетам за хостинг.
Аноним 28/03/23 Втр 22:23:41 2655655 553
>>2655629
>Ты тут уже несколько постов
Ты меня перепутал с другим аноном (кажется, тебе об этом уже говорили).

>пример когда нужно итерироваться по индексам, а не значениям
Любой код, изменяющий элементы массива, КО на связи.
Аноним 28/03/23 Втр 22:35:24 2655661 554
Так. У меня есть интерфейс с констрейнтами и мутатором.
`
type A struct {}
type B struct {}
type AB interface {A|B} {
mutator()
}
func (x AB) mutator() {
}
`
А это весёлая птица-синица, то есть конструктор
`
func ABCreator[T AB] () T {
return &T{}
}
`
Вот кот, Который пугает. то есть вызов коструктора:
`
var a = ABCreator[A]
`
И тут я получаю, что A нельзя использовать в качестве AB. потому что AB имеет метод с поинтер-ресивером.
Я долго курил SO, и там предложили сделать ЕЩЁ ОДИН интерфейс
`
type ABP[T AB] interface {
T
}
`
И таскать его ВСЮДУ за собой, типа
`
func ABCreator[T AB, P ABP[AB]] () P {
return &T{} // кажется так, тут я ХЗ что писать
}
`
Это же уродливо. Мне везде надо за собой таскать ABP, только потому что мне нужен поинтер-ресивер...
Аноним 28/03/23 Втр 22:42:12 2655663 555
Сука.
type A struct {}
type B struct {}
type AB interface {
A|B
mutator()
}
func (x #AB) mutator() {
}

func ABCreator[T AB] () T {
return &T{}
}

type ABP[T AB] interface {
#T
}
`
func ABUglyCreator[T AB, P ABP[AB]] () P {
return &T{}
}

Йобаная макаба.
Если я напишу
type AB interface {
A|B
}
то я хз как писать конструктор, мне скажут поинтер не тип.
Йобаная макаба Аноним 28/03/23 Втр 23:07:52 2655671 556
:(
Аноним 29/03/23 Срд 09:29:29 2655857 557
staticfileserver.jpg 80Кб, 1588x406
1588x406
Почему не работает маршрут со статическими файлами? Их перехватывает маршрут на "/", хотя должен показываться файл main.html.
Аноним 29/03/23 Срд 10:13:49 2655880 558
>>2655857
main.html у тебя по моему висит на /static, а ты еще сверху хуйни дописал в url, поэтому он берет дефолтный.
Аноним 29/03/23 Срд 10:19:16 2655883 559
>>2655880
Даже по запросу http://localhost:5000/static выдается Root.
Тем более весь смысл именно в том, чтобы он обрабатывал все файлы в папке static. Там всякие js, css файлы, картинки и т.п.
Аноним 29/03/23 Срд 10:23:08 2655886 560
>>2655883
Может надо не '/static' а '/static/'?
Аноним 29/03/23 Срд 10:42:23 2655910 561
staticfileserve[...].jpg 85Кб, 1589x444
1589x444
>>2655886
Разобрался! Запрос возвращается с префиксом /static, поэтому надо его откусить, чтобы он правильно подставился к папке.
Опаньки Аноним 29/03/23 Срд 14:01:40 2656122 562
Аноним 29/03/23 Срд 17:47:41 2656468 563
>>2655655
>Ты меня перепутал с другим аноном (кажется, тебе об этом уже говорили).
Повторяю для тупых:
>Мудило! Это анонимная борда, я отвечал на сообщение, в душе не ебу сколько там семенов.

>>2655655
>Любой код, изменяющий элементы массива, КО на связи.
То что ты читаешь жопой я уже понял
>или индекс+значение удобнее
Аноним 29/03/23 Срд 21:20:23 2656675 564
>>2656468
Ты отвечаешь не на то сообщение.

Зачем индекс+значение, если мне нужен только индекс?

хватит засирать тред
Аноним 29/03/23 Срд 21:33:03 2656680 565
Аноним 29/03/23 Срд 22:50:06 2656729 566
>>2656675
>Зачем индекс+значение, если мне нужен только индекс?
Ты туповат, но для Говно разработчика это норма.

Итак, для аутистов еще раз. Ты Disclaimer: или кто-то другой кто спизданул в этом треде. Я семенов сортировать не собираюсь спизданул:
>Любой код, изменяющий элементы массива
Чтобы что-то менять надо иметь старое значение эта мысль может быть не очевидна для даунов, но это правда. И тогда
>индекс+значение удобнее
не надо будет slice делать, можно сразу slice = transform(superStruct).

Ждем вскукареков про то что slice читабельней чем superStruct потому что ко-пок.
Аноним 29/03/23 Срд 22:51:42 2656733 567
>>2656729
>не надо будет slice делать
slice_[_i_]
Ябучая макаба!
Аноним 30/03/23 Чтв 03:02:36 2656868 568
image.png 185Кб, 501x500
501x500
>>2656729
>Чтобы что-то менять надо иметь старое значение
вообще-то иметь возможность обратиться к старому значению которое лежит по правильному адресу, ведь копию также можно назвать "старым значением" во многих контекстах
Аноним 30/03/23 Чтв 19:00:22 2657491 569
>>2656729
>Чтобы что-то менять надо иметь старое значение
Необязательно. Вангую, что ты быдло-оопблядок, не слышал про функциональное программирование (в 2024-то году, хехмда), и для тебя изменять (ака mutate) - это то же самое, что обновлять (ака функция из старого значения в новое).

>slice = transform(superStruct)
Я ошибся в предыдущем спойлере, нейминг выдает в тебе студентоту-вкатыша.

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

Про то, что в отдельных случаях копия значения != само значение тебе уже пояснили.
Аноним 31/03/23 Птн 17:55:10 2658556 570
Два вопроса.
1. Как писать миграции на буне, если я не хочу отлелоьно выписывать sql? Чтобы он по структуре сгенерил мне таблицу. Официальная документация какая-то туманная.
2. Как правильно писать тесты на го? Что почитать на эту тему?
Аноним 31/03/23 Птн 20:06:12 2658707 571
Нахуя нужны pointers в Go? Где их вообще применять?
Аноним 31/03/23 Птн 20:07:56 2658711 572
Сам язык неплохо описан, но вот стандартная библиотека плохо. А про написание реальных приложений инфы вообще ноль. Все учебные курсы рассказывают как написать примитивный http-сервер через один HandleFunc и ListenAndServe. Но реальные приложения так не пишутся.
Базы? Ну рассказывают как подключиться, там выполнить запрос. А миграции? Транзакции? Ноль инфы.

В общем, выйти на уровень профессионального разработчика невозможно из-за отсутствия инфы.
Аноним 31/03/23 Птн 21:24:55 2658782 573
>>2658707
Везде. В го нет ссылок. Это слишком сложно для простого языка. И если ты хочешь менять значение - надо передавать указатель. А если ты хочешь менять значение вызывателя - тебя ждут незабываемые чамы и дни. Даже моя привыкшая к void* жопа отказывалась принимать с первого раза. Неявное кастование приятно щекочет простату.
Аноним 31/03/23 Птн 21:33:04 2658789 574
>>2658782
>ссылки
>нельзя менять значение

Хуя се, и правда. Почему соевики не уделили внимания в Go Tour этим простым, но в то же время важным вещам?
Аноним 31/03/23 Птн 23:20:17 2658871 575
>>2658789
Потому что это понимает каждый, каждый это понимает с детства. Но ему ныжно объяснить Иначе он не поймёт ничерта.
Аноним 01/04/23 Суб 03:38:20 2658970 576
image.png 166Кб, 735x416
735x416
>>2658556
>1. Как писать миграции на буне, если я не хочу отлелоьно выписывать sql? Чтобы он по структуре сгенерил мне таблицу. Официальная документация какая-то туманная.
Аноним 01/04/23 Суб 05:00:22 2658980 577
>>2658711
>Все учебные курсы рассказывают как написать примитивный http-сервер через один HandleFunc и ListenAndServe. Но реальные приложения так не пишутся
в больших компаниях у тебя будет шаблон main.go, где нужно тупа зарегать хендлеры/прокинуть репозитории/сервисы, даже ListenAndServe за тебя уже есть в копипасте.
Аноним 01/04/23 Суб 08:11:39 2659010 578
>>2658871
После скриптовых языков не очевидная хрень. Если нулевой или С господин, то вопросов нет.
Аноним 01/04/23 Суб 08:11:53 2659011 579
>>2658980
Я ещё слышал, что надо писать промежуточное ПО, уметь делать валидацию форм, логирование, авторизацию и всё это уметь тестировать. Но инфы по этим темам нет. Есть курсы для новичков, где в лучшем случае делают примитивные примеры, а как это реализуют в реальных приложения - не пишут.
Аноним 01/04/23 Суб 10:38:17 2659080 580
>>2658711
>миграции, транзакции
Помешанный шизоид на ОРМ, ты? Откуда только таких джунов понабрали, которые без орм ебучую миграции не осиливают блять…
Аноним 01/04/23 Суб 10:39:59 2659082 581
>>2659011
Инфы по этим темам дохуя и больше, называется QA, сейчас половина вкатунов туда лезет.

>валидация форм
Ты на ГОвняшке фронт умудряешься писать?
Аноним 01/04/23 Суб 10:41:52 2659083 582
>>2659082
>на ГОвняшке фронт
А чо, кстати, через васм тема. Язык-то простой!
Аноним 01/04/23 Суб 11:00:51 2659093 583
>>2659080
Я и орм не знаю.

>>2659082
Есть же html-шаблоны, то почему бы не написать?

А вообще, я рассчитывал на ссылки на учебные материалы, которых, как вы говорите, дохуя, но когда просишь, то никто не скидывает.
Аноним 01/04/23 Суб 11:07:19 2659099 584
>>2659093
Нахуя нам ради тебя открывать гугл и искать что то? Потом еще и слушать твое нытье если статья окажется хуйней.
Открыл гугл и завалил пиздак, ВСЕ, никто не носит с собой коллекцию не нужных им статей, не все настолько тупые как ты
Аноним 01/04/23 Суб 11:41:44 2659125 585
>>2659099
А нахуя ты вставляешь своё тупое мнение тогда? И в отличии от тебя, тупого пиздабола, я уже гуглил эти темы. И на основе это опыта утверждаю, что учебных материалов в свободном доступе нет. Но тут высирается очередной тупоголовый уёбок, который не погуглив, не проверив этот вопрос, высирает своё тупое мнение, что материалов там якобы дохуя. А когда его просят скинуть хотя бы пару ссылок, то сразу сливается со словами, что ему нахуй не надо что-то искать за других. Дак нахуя ты лезешь со своим мнением? За слова отвечать не учили?
Аноним 01/04/23 Суб 12:08:41 2659143 586
>>2659125
Неосилятора миграций без ормки порвало, классика
Аноним 01/04/23 Суб 19:14:45 2659586 587
>>2659011
большая часть этого к го как таковому не относится и везде немножко по-разному будет сделана с разными либами. на каждой работке придется привыкать к чему-то новому, главное понимать принципы, а они вообще языконезависимы.
если ты вкатывальщик, то тебе как стажеру принципы объяснят и у тебя будет там ~3 месяца, чтобы это вдуплить на реальных примерах сервисов твоей команды нужно только понимать как делать по подобию.
Аноним 01/04/23 Суб 19:17:45 2659587 588
>>2659125
Съеби в прикреп. Тут не рады очередным вкатунам, тут тред про унижение авторов го.
Аноним 01/04/23 Суб 21:44:37 2659833 589
>>2659587
Да тут никому не рады. Это же двач.
Аноним 02/04/23 Вск 03:03:00 2660150 590
Микросервисы это база, или похуй и все пишут монолит?
Аноним 02/04/23 Вск 04:31:05 2660160 591
>>2660150
в этом квартале тупо одну единственную табличку БД из сервиса вынесли в отдельный сервис. овер 1500 сервисов в компании
Аноним 03/04/23 Пнд 00:07:36 2661019 592
Только устроился работать фронтендером но думаю уже как перекатиться на голанг. Скажите это реально без опыта на других языках бэка (кроме node.js время от времени) и если нет с какого языка больше всего шансов на го потом перекатиться?
Аноним 03/04/23 Пнд 02:45:23 2661114 593
>>2661019
от компании к компании зависит, вряд ли можно дать общий ответ.
я думаю у нас тебе нужно будет сообщить HR о том, что ты гомосексуал у тебя опыт только с ЖС, но ты хочешь пойти в роли полноценного заднеприводного. тебе скорее всего подыскали бы инженера, который может на ЖС провести секцию по бэку. но тут уже зависит от готовности/желания самих интервьюеров, а гошников у нас больше, чем перекатчиков с ноды
Аноним 03/04/23 Пнд 15:15:05 2661738 594
Какой роутер мне следует использовать?
Аноним 03/04/23 Пнд 16:45:38 2661828 595
Кажется я понял, почему у голанга такой высокий индекс вката и не могут найти разработчиков. А всё потому, что нет учебных материалов. Авторы написали одну книгу как гонять байтики, а книги по написанию реальных приложений никто не написал.
Аноним 03/04/23 Пнд 18:19:37 2661929 596
Про разработку приложений написаны 1000 и одна книга. Просто берёшь и пишешь вместо джавы на го.
Аноним 03/04/23 Пнд 18:59:17 2661953 597
>>2661929
Нужна книга, где рассказывают про всякие миддлвари, авторизацию, миграции.
Аноним 03/04/23 Пнд 19:13:16 2661963 598
>>2661953
Боюсь, тебе это не поможет.
Аноним 03/04/23 Пнд 19:37:08 2661982 599
>>2661953
Если ты НАСТОЛЬКО тупой, то книга тебе уже не нужна
Аноним 03/04/23 Пнд 19:37:38 2661984 600
Ой вей братья мои, васалам алейкум, а перекат будет ле бля
Аноним 03/04/23 Пнд 19:46:53 2661989 601
Аноним 03/04/23 Пнд 19:49:04 2661991 602
>>2661963
Я за месяц Go Core изучил

>>2661982
А ты сразу родился с этими знаниями? Наверняка бегал за сеньорами и просил рассказать про мидлвари.
Аноним 03/04/23 Пнд 20:18:33 2662007 603
>>2661953
зачем для этого книга? это по говностатейкам на медиуме учится
Аноним 03/04/23 Пнд 20:23:09 2662010 604
>>2662007
В книге собрана вся нужная инфа и проверена рецензентами. А статейки пишут кто не попадя и их никто не проверяет. Тем более в сотне статеек сложно ориентироваться, если не знаешь какие темы тебе вообще нужны.
Вот выше я озвучивал некоторые из них, а сегодня узнал ещё про контекст. А если бы мне не повезло и я бы про него не узнал? Так что лучше прочитать добротную книгу и получить весь объём знаний, чем прыгать по статейкам с пустой головой.
Аноним 03/04/23 Пнд 21:24:12 2662072 605
>>2661991
То есть ты готур месяц проходил? Хехмда
Аноним 03/04/23 Пнд 21:24:48 2662073 606
>>2661989
Тому що индирекшон вестимо видево не смотрел, профайлер не запускал
Аноним 03/04/23 Пнд 23:02:10 2662126 607
>>2662010
>В книге собрана вся нужная инфа и проверена рецензентами. А статейки пишут кто не попадя и их никто не проверяет
там выше была книжка, которая написана прожжённым шарпистом, которую ревьюил другой прожжённый сертифицированный майкрософтом шарпист. ты больше получишь от того, что 5 статей от индусов с плюрализмом мнений прочитаешь и составишь своё, чем такую графоманию от залетного хуя, который рассасывает её на 30 страниц.
Аноним 03/04/23 Пнд 23:31:51 2662144 608
>>2662010
Ты из тех самых верунов, думающих что книги пишут умные люди? Эти книги пишут нищуки, которым в айтишке не платят, поэтому приходится идти как книгописец, тогда их и начнут брать, ведь ЦЕЛОЯ КНИГА
Аноним 04/04/23 Втр 12:22:37 2662399 609
>>2662126
>>2662144
А как вы учили голанг уровня энтерпрайз?
Аноним 04/04/23 Втр 13:18:39 2662439 610
>>2662399
Я просто пишу свои проекты и все, хватить пытаться делать все, лишь бы не само программирование, его так и надо учить, брать и тупо кодить, что то не понимаешь или нужно - открываешь гугл и гуглишь что тебе конкретно надо найти, го тур только пройти не забудь
Аноним 04/04/23 Втр 16:21:04 2662579 611
>>2662439
Я пытался гуглить маршрутизаторы, но там в каждой статье по разному пишут. В итоге так и не понял что и как писать. Ещё бывает с ошибками пишут, которые не сразу замечаешь.
Непосредственно про маршрутизаторы в старых статьях пишут, что надо использовать гарилу, а сейчас встретил инфу, что гарилу нельзя использовать, потому что она всё. И кому верить?
Аноним 04/04/23 Втр 16:22:44 2662580 612
>>2662399
Эм. Пчел, есть энтерпрайз-программирование. И есть язык го, для которого даже готур проходить неоябательно. Го в определённом смысле реально простой - в нём куда ни ткнёшься, ничего нет, учить буквально нечего. Зажача стоит как выразить лучшие практики программирования на этом зяыке, в котором ничего нет. Но это приходит только с практикой.
Аноним 04/04/23 Втр 16:25:27 2662582 613
>>2662580
>энтерпрайз-программирование
Какую книгу почитать, чтобы изучить это энтерпрайз-программирование?
Аноним 04/04/23 Втр 16:30:59 2662585 614
>>2662579
Тогда с чего ты взял, что в книге будет единственно правильное мнение? Особенно с учетом, что книга в 99% случаев - устаревшая. Роутер устареть никак не может если что, его просто перестали поддерживать и выпускать фиксы
Аноним 04/04/23 Втр 16:41:15 2662593 615
>>2662585
Книгу я хочу, потому что там описаны другие темы: миграции, авторизации, контексты и т.п. Откуда я вообще это должен всё узнать? Это как дать человеку, который не умеет читать, учебник русского языка и удивляться, почему он до сих пор не начал читать/писать по-русски.
Аноним 04/04/23 Втр 17:35:55 2662649 616
>>2662399
ну я пришел на работу стажером после прохождения го тура и делал по подобию как в команде принято. лазил по внутреннему гитлабу и искал что круто выглядит. лазил по гуглу читал говностатейки
Аноним 04/04/23 Втр 18:39:55 2662749 617
>>2662580
Если настолько простой то почему пишут что не подходит для первого языка и для изучения программированию?
Аноним 04/04/23 Втр 19:19:39 2662775 618
>>2662649
Тебе повезло. Считай всему научили на работе. А я вот дома самостоятельно всё учу, а это в разы тяжелее.
Аноним 04/04/23 Втр 20:17:49 2662843 619
>>2662749
Не знаю. На мой взгляд, он вообще ни для чего не подходит.
Аноним 04/04/23 Втр 21:10:00 2662884 620
>>2662593
Используя библиотеки и нарисовал свои петы ты в любом случае так или иначе столкнешься с этим, а дальше уже конкретный вопрос забиваешь в гугл, почему до тебя этот не доходит то
Аноним 05/04/23 Срд 00:37:45 2663026 621
>>2662775
ну слушай метрики логирование это совершенно минорные штуки, которые даже в топовых компаниях часто делают на отъебись и всё меняется от команды к команде. у нас на собесах например вообще нет вопросов по этому, максимум на финальном собесе тебя спросят с какими технологиями ты работал и ты можешь там прометеус/эластик упомянуть. но всем будет понятно, что если челик учил эту хуйню самостоятельно без команды, то грош этому цена. аутентификация это еще та залупа, с которой вероятно даже не придется столкнуться, будешь сразу userID в хедере получать.
Аноним 05/04/23 Срд 00:39:37 2663027 622
>>2662775
а ну и бля. в той залупе даже код ревью не проводили, я тупо мержил свой говнокод себе в мастер. так что повезло не повезло.
ну и вообще я к тому, что тебе эта хуйня не должна помешать пройти собес и уже учиться у команды.
Аноним 05/04/23 Срд 00:44:05 2663030 623
>>2663026
>аутентификация это еще та залупа, с которой вероятно даже не придется столкнуться, будешь сразу userID в хедере получать
ну и если это не так, то с JWT разобраться и написать себе мидлварю можно буквально за день
Аноним 05/04/23 Срд 19:51:40 2663618 624
А берут вообще на работу челиков без опыта на других бекенд языках?
Аноним 05/04/23 Срд 19:56:41 2663622 625
Хорошо знаю плюсы. Хочу закомиттить в опенсурс на го. Долго учить?
Аноним 05/04/23 Срд 20:09:37 2663638 626
>>2663622
Учить не долго, но потребуется время на охлаждение жопы в процессе.
Аноним 05/04/23 Срд 21:05:20 2663672 627
>>2663622
Вангую, что пулреквет не примут. Даже если ты закоммитишь реализацию нормальных дженериков в сам го - тем более не примут.
Аноним 05/04/23 Срд 23:09:06 2663754 628
>>2663618
меня взяли но тогда время было другое...
Аноним 06/04/23 Чтв 00:35:46 2663823 629
Эм. Я правильно понял, что попытки писать типобезопасно - это слишком сложно для простого языка? Нам нади интерфейсы, и мы должны радоваться?
Аноним 06/04/23 Чтв 08:25:30 2663901 630
Аноним 06/04/23 Чтв 12:00:30 2663991 631
Почему мне никто не помогает?
Аноним 06/04/23 Чтв 12:08:45 2663994 632
>>2663991
чтото из этого:

ты не спросил
ты психический инвалид
ты некорректно ставишь вопрос
ты не там спросил
Аноним 06/04/23 Чтв 12:23:46 2664009 633
>>2663994
Я изучил го кор, но не понимаю как писать реальные веб-приложения, потому что не могу найти инфу.
Сейчас скачал какой-то видеокурс и там тоже самое. Рассказывают про стандартную библиотеку net/http, а примеров написания реального приложения не дают.
Аноним 06/04/23 Чтв 12:25:44 2664011 634
>>2663901
Хм. Где бы об этом почитать. Именно о философии, приемрно как написано 100500 книг и статей о философии ООП.
Потому что в голове как-то не совсем укладывается. То есть оно работает, да, хотя ко(нтр)вариантности не хватает, но в жабе или шарпе я уверен, что если я хлрошо прописал типы, то у меня всё правильно работает. А с этими интерфейсами, которыми может прикрыться кто угожно в любой момент...
Аноним 06/04/23 Чтв 12:27:19 2664012 635
>>2664011
Я вот про то же. Книг по голангу вообще нет. А те, которые есть, описывают только основы. А как это всё применять на практике - не понятно.
Аноним 06/04/23 Чтв 12:40:07 2664028 636
>>2664012
Тебе десять раз сказали - читай любую книгу по паттернам, по энтерпрайз-приложениям. Просто пиши не на жабе, а на го. Зачем тебе вообще го, если ты не можешь даже этого понять?
Аноним 06/04/23 Чтв 12:45:09 2664033 637
>>2664028
На го самый высокий индекс вката, поэтому решил изучать го, чтобы наверняка вкатиться
Аноним 06/04/23 Чтв 13:05:58 2664062 638
>>2664033
На го сложно вкатиться. Туда берут уже с опытом на пхп или других языках
Аноним 06/04/23 Чтв 13:12:52 2664068 639
>>2664062
Обидно, а ведь уже потратил почти 2 месяца получается в никуда.
Аноним 06/04/23 Чтв 13:18:02 2664071 640
Аноним 06/04/23 Чтв 17:16:41 2664249 641
Почему в VS Code не работает линтер? Делал всё по видео-гайду, но у чувака всё работает, а у меня нет. Остальные фишки работают, но вот линтер - нет.
Аноним 06/04/23 Чтв 23:35:58 2664661 642
image.png 50Кб, 314x288
314x288
Почему этот язык настолько не интуитивно понятная пастулька? Запринтит [0 1 2 4] если что для обоих случаев
Аноним 07/04/23 Птн 04:09:05 2664723 643
>>2664661
чтоб на собесах залетных отфильтровывать
Аноним 07/04/23 Птн 10:00:26 2664756 644
>>2664068
Если у тебя го вообще первый язык то тогда сложновато, лучше питон/ноду годик а потом го. Если у тебя есть опыт программирования на других язык, и ты в целом идешь не с одной прочитанной книгой на собес, то шансы есть. У меня месяц ушло на получение оффера. Портфолио не забудь, хотя бы какие-нибудь круды туда покидай типа простых апишек. Иначе hr твое резюме даже смотреть не будет.
Аноним 07/04/23 Птн 10:16:55 2664758 645
>>2664756
Я учил сишарп и джаву до этого, но в сишарпе нет кроссплатформенности и обратной совместимости, много сахара, а в джаве кривые инструменты и надо покупать платную идею, чтобы писать веб-приложения.
Аноним 07/04/23 Птн 10:28:37 2664763 646
>>2664758
В таком случае не парься, шансы есть. Тебя больше по докеру, базам, микросервисам гонять будут чем по языку. Хотя конечно зависит от собеса. Могут что-то типа этого >>2664661 или классика о том почему переменная цикла в замыкании выводит 10 раз 10, а не 1, 2, 3 и т.д
Пройдись по основным моментам, как шедулер работает, сборщик мусора, оч. рекомендую прочитать Concurrency in Go: Tools and Techniques for Developers. А так могу пожелать только удачи и не слушать тех кто отговаривает.
Аноним 07/04/23 Птн 12:43:29 2664871 647
>>2664758
Хорошему программисту сахар мешает. И платная идея. Чувак, учи лучше 1С, или там PHP5. Будешь вордпрессы хуярить пачками. Вордпресс грязный, вонючий, за него платят мало, но его можно хуярить пачками.

А здесь... да, работа с сетью как элемент языка это забавно. НО БЛЯДЬ ЕХАЛ ANY ЧЕРЕЗ ANY.
Что можно запистаь в базу? Правильно, any. Что можно передать по сети? Ну-ка, дети, мы про него стишки учили и рассказы читали? Правильно, any! На выходе тот же PHP5 получается, только с горутинами.
Аноним 07/04/23 Птн 12:44:39 2664875 648
>>2664871
Алсо, чего-чего там в шарпе нету? Я не расслышал?
Аноним 07/04/23 Птн 13:09:58 2664918 649
>>2664871
Ты не прав, надо передавать срез байт по сети, а не интерфейс.
Аноним 07/04/23 Птн 13:15:55 2664927 650
>>2664871
Я в универе писал lab.cpp и мне очень нравилось гонять байтики. Поэтому подход го мне ближе, чем заоблачные абстракции джавы и сишарпа.

>>2664875
Сейчас во всех дистрибутивах линупса удалили дотнет6 и оставили только 7. В итоге фиг запустишь программы для дотнета6 или более поздней версии.
Ещё вижла только под винду. Ещё асп.нет надо переучивать каждый год.
Аноним 07/04/23 Птн 13:26:24 2664940 651
>>2664918
> надо передавать срез байт по сети, а не интерфейс
Для этого есть C.
Аноним 07/04/23 Птн 13:28:10 2664941 652
>>2664875
Просто для сравнения. Я могу поставить голанг на старенький ноут и программировать на нём в любом текстовом редакторе. А для джавы надо ставить монструозную идею, которая жрёт по 4 гига в простое и тормозит безбожно. А сишарп надо ковырятся с подгонкой нужного дотнета, да и среды для линуксов толком нет. А среда нужна, потому что сама структура проектов требует объединения их в солюшены. А солюшены поддерживаются только вижлой в винде. Сами микрософты официальным решением проблемы предлагают ставить виртуалку с шин11 и даже сделали готовые образы.

>>2664940
На Си работы нет толком.
Аноним 07/04/23 Птн 13:33:54 2664949 653
> во всех дистрибутивах удаллили dotnet LTS
> на го можно писать в блокноте, а на жабе только в платой идее
> го скомпилируется и запуститится на первопне
> асп надо полнолстью переучивать каждый день, ПОЛОНСТЬЮ, КАРЛ!
> я вот писал в универе лабу на десять строчек, и хочу такую же работу, чтобы два байта переслать надо было, я слышал что байты шлют на голанге и платят за это 500к/нс
> ни в одной книге по голангу не написано, какой роутер использовать и зачем он нужен
> ваши советы говно, я буду продолжать есть суп ножом и ныть

Уходи. Скатил тред в несмешной цирк.
Аноним 07/04/23 Птн 14:50:39 2665042 654
>>2664949
Я всё равно не буду возвращаться в твой джавошарп
Аноним 07/04/23 Птн 15:01:14 2665058 655
>>2664763
Тащемта правильно отговаривают. Сейчас даже на пхп вакансии по 100 откликов. А на гошечке (на которую мечтают сьебать пхпшники) это вообще анрил. Мало вакансий с кучей откликов от опытных пхпистов. Это ещё при том что у самих пхпистов сотни желающих вкатунов. А это самый простой язык для вката
Аноним 07/04/23 Птн 15:04:50 2665065 656
>>2665058
Опытные пхписты привыкли писать в рамках фреймворка типа ларавеля или симфони, а тут надо самому писать фреймворк. Из-за этого вкатиться в голанг сложнее.
Аноним 07/04/23 Птн 15:08:49 2665072 657
>>2665065
Я на голанге вообще без фреймворка пишу. Язык достаточно прост и удобен для этого. Всем похуй. Вот и сижу в своем пхп болоте.
Аноним 07/04/23 Птн 15:36:35 2665097 658
ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ ПЕРЕКАТ Аноним 07/04/23 Птн 19:54:58 2665439 659
Интерфейсы ПрограммистОчка 08/04/23 Суб 16:07:25 2666214 660
Я уже почти год бахаю на го, и уже почти месяц работаю в компаниянэйм, но я, блять, до сих пор не понимаю интерфейсы, есть ресурсики где можно доступно за это узнать
Аноним 09/04/23 Вск 00:00:38 2666839 661
>>2664009
Расскажу тебе все за $30 в час. пинджак у меня есть
Аноним 09/04/23 Вск 00:01:25 2666840 662
>>2664011
>но в жабе или шарпе я уверен, что если я хлрошо прописал типы, то у меня всё правильно работает
Рубрика "программисты шутят".
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов