Сохранен 814
https://2ch.hk/pr/res/2165418.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Go тред №18 /go/

 Аноним 24/09/21 Птн 01:21:03 #1 №2165418 
image.png
image.png
image.png
image.png
image.png
Cамого МУЖЕСТВЕННОГО в мире языка Go тред №18 /go/

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

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

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


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

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

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

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

Ламповая конфа треда: t.me/golang2ch и даже активная

Предыдущий тред умирает здесь: >>1986204
Шаблон шапки: https://pastebin.com/vmWawK2t
Аноним OP 24/09/21 Птн 01:23:32 #2 №2165420 
Предыдущий загнивает здесь: >>2119331 (OP)
Аноним 24/09/21 Птн 01:53:15 #3 №2165429 
Goвноеды, как вам писать на языке для даунов загнанными в жесточайшие рамки и лишенными всего?
Аноним 24/09/21 Птн 01:55:06 #4 №2165430 
>golang
> Я только сегодня понял, что почти никто толком-то и не понимает, зачем вообще Go нужен. Если коротко, то Go нужен для того, чтобы проектировать robust software. Я не знаю, как правильно перевести это слово на русский, но это скорее всего что-то вроде «надежный». Так вот, Go сделали, потому что гуглу нужен был инструмент для написания надежного кода. На самом деле не сколько гуглу, сколько Робу Пайку, который последние две декады, как минумум, одержим идеей сделать сишку с каналами и зелеными потоками. Так получилось, что Роб Пайк попал в нормальную компашку с другими штрихами из Bell Labs, крутейшим Russ Cox, Фицпатриком и т.д. Этим ребятам несложно было убедить гугл, что им нужен новый язык и вобщем-то, бабосики они на него выбили.

> Так, это было небольшое лирическое отступление, давайте вернемся к теме. Да, зачем же все-таки гуглу был нужен новый язык? Ну, тут все понятно, давайте послушаем слова самого Роба Пайка:

> Фишка в том, что наши программисты гуглеры, а не ученые. Это обычно молодые, только выпустившиеся пацаны, которые возможно выучили Java, возможно даже C/C++ и может быть Python. Они не в состоянии понимать пробздетый язык, но мы все равно хотим, чтобы они делали хороший софт. Таким образом, мы даем им легкопонимаемый язык, к которому они быстро привыкнут.

> А теперь давайте попытаемся понять, что же он имел ввиду. Если грубо говоря, то он сказал, что в гугле работают не самые умные ребята («не способные понимать крутой язык»), так что они придумали такой язык, который просто невозможно не понять. Это на самом деле очень круто для менеджмента. Посудите: можно нанять 100 посредственных программистов, дать им в руки Go и эта армия обезьян будет генерить вам много «неплохого» и очень даже поддерживаемого кода! Go это фантастический инструмент для менеджмента, лучше не придумать: моментально загоняем всех программистов в рамки go-fmt (никто не сможет пропихнуть свой стиль форматирования), забираем у них любые абстракции сложнее интерфейса и получается такой конвеер кода, в котором developer is just another brick in the wall. По-моему, очень круто! Ну, программистам скорее всего такой расклад не очень понравится — мало кто любит быть винтиком в системе.
Аноним 24/09/21 Птн 02:11:22 #5 №2165435 
>>2165430
>>2165429
Понятно, снова из палаты убежал, дружище?
Аноним 24/09/21 Птн 07:47:20 #6 №2165483 
>>2165435
Прибежал же.
Аноним 24/09/21 Птн 08:36:23 #7 №2165500 
>>2165483
Прибежал из палаты.
Аноним 24/09/21 Птн 09:10:56 #8 №2165509 
>>2165500
В палату.
Аноним 24/09/21 Птн 14:23:00 #9 №2165737 
29b0c7eeb567bc76c0a83021f3210348.jpg
>>2165430
отправляйся к себе в шарпы/жабу/пидон или откуда ты там вылез, и не мешай нам тут
Аноним 25/09/21 Суб 09:44:17 #10 №2166446 
Здравствуйте, меня зовут Анон и я долбоёб. Что я, блядь, делаю не так? Программа простейшая же. Дебаг уезжает куда-то в бесконечный вызов системного стека и виснет нахуй после ввода значения.

[code]
package main

import (
"bufio"
"fmt"
"math"
"os"
"strconv"
"strings"
// "errors"
)

func main() {
phrase := "Counting the circles..." //string

fmt.Println(phrase)
fmt.Println("Please select radius for a circle")
reader := bufio.NewReader(os.Stdin)
rad, _ := reader.ReadString('\n')
rad = strings.Replace(rad, "\n", "", -1)
numrad, e := strconv.ParseFloat(rad, 64)
if e != nil {
fmt.Println("Conversion error", rad)
}
circlearea(numrad)

}

func circlearea(p float64) {
area := (math.Pow(p, 2)) * math.Pi
var printable string = strconv.FormatFloat(area, 'f', 6, 64)
fmt.Println(printable)
[/code]
}
Аноним 25/09/21 Суб 09:45:34 #11 №2166449 
>>2166446
Настолько долбоёб, что не могу нормально оформить код.

https://pastebin.com/uj0AeWRQ
Аноним 25/09/21 Суб 09:58:14 #12 №2166454 
>>2166449
func syscall_Syscall6(fn, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) {
lockOSThread()
defer unlockOSThread()
c := &getg().m.syscall
c.fn = fn
c.n = nargs
c.args = uintptr(noescape(unsafe.Pointer(&a1)))
cgocall(asmstdcallAddr, unsafe.Pointer(c))
return c.r1, c.r2, c.err

Виснет вот тут в процессе обработки. Чё ему не нравится - понять не могу.
Аноним 25/09/21 Суб 10:17:58 #13 №2166471 
>>2166454
Переписал.
https://pastebin.com/gY1F0Xf3
Повисло абсолютно там же. Конкретно вот на этой строчке всё в пизду летит.
> cgocall(asmstdcallAddr, unsafe.Pointer(c))
В описании функции вот такая хуйня:
> Call from Go to C.
Нужен С в зависимостях, или как это должно работать?

Не пиздите тряпками, плез, я кода никакого джва года не писал, SQL не в счёт.
Аноним 25/09/21 Суб 10:34:11 #14 №2166491 
>>2166471
> so you cannot use gopls and vscode with static libraries
> https://github.com/golang/go/issues/35721
Ну блядь заебись.
Аноним 26/09/21 Вск 10:51:39 #15 №2167312 
Эй, говнари, я вам персональную домашнюю страничку Пайка принёс: https://robpike.io
Аноним 26/09/21 Вск 11:04:04 #16 №2167317 
ГОвну >>2165737 как всегда нечего ответить.
Пукнул в тред.
Аноним 26/09/21 Вск 12:07:00 #17 №2167349 
аноны, подскажите пж перевкатышу с джавы на го, где найти нормальные гайд\туториалы\книги по бэку на го. Всё что не находил - с места в карьер сразу, без каких-либо дополнительных объяснений
Аноним 26/09/21 Вск 14:13:48 #18 №2167435 
>>2165429
Не знаю, ведь я никогда не писал на джаве
Аноним 26/09/21 Вск 16:47:58 #19 №2167592 
>>2167349
Мне вполне зашла книга, которая Язык программирования Go. Все вполне себе кратко изложено для тех, кто уже знаком с программированием, ну т.е. не скучаешь. И практических заданий завались, особенно начиная с горутин и каналов, дают просраться не слабо. Собственно после этой книги я уже свободно писал на Go, посматривая в документацию.
Аноним 26/09/21 Вск 17:31:09 #20 №2167643 
>>2167592
Окей, глянул содержание - я так понял это книга больше по основам Go, чтобы выучить всякую многопоточку, ну и вообще не быть лохом в базовом синтаксисе. Ну а по бэкенду? Книги\туториалы по написанию тех же простеньких RESTApi, или CRUDа с какой-нибудь БД где можно откопать, пока нашел на гитхабе какие-то полу-гайды
Аноним 26/09/21 Вск 18:07:23 #21 №2167695 
>>2165429
>Goвноеды
бля в голосину обосрался
Аноним 26/09/21 Вск 19:33:02 #22 №2167785 
>>2167643
Вот полных гайдов нормальных не думаю что найдешь. Просто придумываешь идею для сервиса и идешь гуглить фреймворки/либы под это дело, если чего-то не находишь - пишешь сам.
Например нужен тебе микросервис с REST API и коннектом к базе.
Ищешь HTTP фреймворк, тот же Gin, например, супер простой. Ищешь коннектор к PostgreSQL/MySQL/etc. Если какое-то взаимодействие между сервисами, то можно GRPC впилить. И так далее. Изучаешь их по отдельности и пишешь код.
Аноним 26/09/21 Вск 19:58:13 #23 №2167808 
>>2167785
Понял, благодарю
Аноним 27/09/21 Пнд 00:34:44 #24 №2168039 
>>2166446
Так оно же ждет \n в stdin. Попробуй go build -o /tmp/bin . && echo 42 | /tmp/bin
Аноним 27/09/21 Пнд 12:16:20 #25 №2168300 
как обстоит вопрос с трудоустройством джуном\интерном? открыл хх - всего пару вакансий, большинство хотят мидлов и синьоров
Аноним 27/09/21 Пнд 13:33:49 #26 №2168338 
>>2168300
Начинающие на Го не нужны. Только опытные бэкэндеры и девопсы.
Аноним 27/09/21 Пнд 15:48:30 #27 №2168410 
>>2168338
и чего делать начинающим на Го?
Аноним 27/09/21 Пнд 16:01:42 #28 №2168417 
>>2168300
Хуже чем с другими языками, но тоже реально. Позаходи на сайты крупных фирм, на "галеры", так называемые.
Аноним 27/09/21 Пнд 16:02:29 #29 №2168418 
>>2168410
Идти нахуй, очевидно же
Аноним 27/09/21 Пнд 16:41:45 #30 №2168445 
>>2167349
Макгаврен Д Изучаем Go
Аноним 27/09/21 Пнд 16:58:58 #31 №2168469 
>>2168410
Есть вариант дослужиться до мидла/синьера на другом языке, а затем свичнуться, большая часть гоферов по такому пути пришли. Но это всё фигня, вкатунов в го всё равно меньше чем вакансий ждунов, смело иди на собесы
Аноним 27/09/21 Пнд 17:01:12 #32 №2168472 
Кто тут го2 ждал? Его нету у меня, но зато есть го++ для ученых-на-говне-печеных https://github.com/goplus/gop#error-handling
Аноним 27/09/21 Пнд 17:41:23 #33 №2168499 
Если допустим репозиторий выбросил ошибку что низя делать инсерт, то полагается прямо ошибку постгрес драйвера в контроллере обрабатывать, или же делать свой тип ошибки, обработать всю постгрес хуйню в репозитории при сохранении и в контроллере уже только проверить что ошибка кастомного типа "nemogusohranitoshibka.go"?
Аноним 27/09/21 Пнд 17:50:03 #34 №2168501 
>>2168472
А хорошо выглядит
интересно, они стрелочки специально сделали, что бы сделать вид, что это не питон
Аноним 27/09/21 Пнд 18:23:03 #35 №2168525 
>>2168469
>вкатунов в го всё равно меньше чем вакансий ждунов
Опять охуительные истории про дефицит кадров
Аноним 27/09/21 Пнд 19:46:57 #36 №2168583 
>>2168499
Суть паттерна репозиторий в том, чтобы абстрагировать слой данных от остального приложения. Т.е. хорошо написанный репозиторий должен быть легко заменяем другой имплементацией без изменения кода приложения. Так что да, я всегда создаю отдельный пакет репозиторий, который содержит интерфейсы репозиториев всяких сущностей + определения ошибок или просто их значения, т.к. в большинстве случаев хватает именно синглтона ошибки стандартного типа
Аноним 27/09/21 Пнд 19:52:02 #37 №2168587 
>>2168525
Ну я тоже верил в шизотеории про то, что вкатуны с говнокурсов если не сегодня то завтра точно отберут у меня работу, но потом меня повысили, я стал проводить больше собеседований и я понял на сколько это далеко от правды. У меня теперь другая шизотеория, что курсы на самом деле отупляют людей, которые до этого были способны сами прочитать книжку, настроить себе окружение и написать калькулятор. Но из-за того что привыкли что их водят за ручку на этих самых курсах они окончательно потеряли способность самостоятельно находить информацию
Аноним 27/09/21 Пнд 20:02:42 #38 №2168591 
image.png
>>2168587
>Но из-за того что привыкли что их водят за ручку на этих самых курсах они окончательно потеряли способность самостоятельно находить информацию

Они сами хотят, что бы их за ручку вели
Аноним 27/09/21 Пнд 20:24:14 #39 №2168604 
>>2168591
Я пришел вкатываться с нуля - катите меня!
Аноним 27/09/21 Пнд 20:29:27 #40 №2168607 
>>2168587
>про то, что вкатуны с говнокурсов
Какие ещё вкатуны? Полно свежих профильных студентов, вкатывающихся на хайповое goвно
Аноним 27/09/21 Пнд 20:35:29 #41 №2168610 
>>2168607
>Профильный студент
Не имеет никаких навыков по написанию поддерживаемого кода и больших проектов, а в случае с говной и жизненно необходимым навыком правильного написания распределенных систем

Я когда только выпустился мне на первой работе так жепь разорвало от того, что после вуза пришлось люто доучиваться на самой работе
Аноним 27/09/21 Пнд 20:39:05 #42 №2168613 
>>2168610
>навыков по написанию поддерживаемого кода и больших проектов,
>а в случае с говной и жизненно необходимым навыком правильного написания распределенных систем

И нахуй тогда вообще нужны джуны/вкатуны
Аноним 27/09/21 Пнд 20:46:35 #43 №2168615 
Лисп решает
Аноним 27/09/21 Пнд 20:47:23 #44 №2168616 
>>2168613
Так они и нужны в очень небольшом количестве, что бы расширять постепенно штат сотрудников что очень часто не работает потому что они сваливают как начинают ощущать себя мидлами
Аноним 27/09/21 Пнд 21:01:44 #45 №2168628 
>>2168616
И нахуй тогда пиздеть, что вкатунов меньше чем вакансий джунов
В го не берут джунов Аноним 27/09/21 Пнд 21:09:53 #46 №2168633 
В го не берут джунов

Сабж.
Аноним 27/09/21 Пнд 21:40:40 #47 №2168651 
>>2168633
Трус не играет в хоккей!
Аноним 27/09/21 Пнд 22:00:33 #48 №2168672 
>>2168633
джнуов не берут никуда, даже в дворники, даже в охранники
Аноним 27/09/21 Пнд 23:41:17 #49 №2168745 
>>2168633
Нахуй вообще программирование нужно?
Аноним 28/09/21 Втр 09:47:54 #50 №2168886 
>>2168633
Так сложно полгода гриндить литкод и закатиться в топ маркетплейс? Ах да, у пориджей же алгосы не нужны
Аноним 28/09/21 Втр 11:19:48 #51 №2168925 
>>2168591
> Вкати меня, мразь!
Аноним 28/09/21 Втр 11:26:24 #52 №2168929 
>>2168886
> гриндить литкод
>>2168610
>навыков по написанию поддерживаемого кода и больших проектов, а в случае с говной и жизненно необходимым навыком правильного написания распределенных систем
Аноним 29/09/21 Срд 01:42:02 #53 №2169703 
>>2168607
Ты охуееш когда узнаешь на сколько там всё плохо, если это не топ-5 вузов страны. А если топ-5, то их еще за 2 года до выпуска забирают к себе крупные конторы и обучают под свои нужды
Аноним 30/09/21 Чтв 21:11:44 #54 №2171042 
Почему меня тошнит от го?
Аноним 30/09/21 Чтв 21:39:17 #55 №2171071 
>>2171042
Так не юзай.
Аноним 30/09/21 Чтв 22:28:38 #56 №2171118 
>>2171071
Так я не юзаю.
Аноним 30/09/21 Чтв 22:59:37 #57 №2171154 
>>2171118
Понятно.
Аноним 30/09/21 Чтв 23:47:44 #58 №2171185 
>>2171042
>Почему куда бы я не пришел - вас воняет дерьмом?
Аноним 01/10/21 Птн 12:26:43 #59 №2171427 
Количество малвари, написанной на Go, увеличилось на 2000% за несколько лет
эффект низкой БАЗЫ

https://xakep.ru/2021/02/26/go-malware/
Аноним 01/10/21 Птн 17:08:11 #60 №2171674 
>>2171427
А что не так? Любая программа на говне уже по умолчанию вредоносная.
Аноним 01/10/21 Птн 19:05:50 #61 №2171742 
>>2171185
Так только у вас воняет.
Аноним 02/10/21 Суб 13:51:03 #62 №2172148 
>>2171427
Ну, ботнеты на го писать наверное одно удовольствие.
Аноним 02/10/21 Суб 13:57:01 #63 №2172149 
>>2169703
>Ты охуееш когда узнаешь на сколько там всё плохо
Это значит, что кабанчики совсем зажрались

>А если топ-5
Куда вам топ-5, вы и сами не фуфанг
Аноним 03/10/21 Вск 13:32:08 #64 №2172713 
>>2172148
А на чем их до этого писали? На плюсах?
Аноним 03/10/21 Вск 14:04:55 #65 №2172737 
>>2172713
На чем угодно. В малвари хайтек только в всяких руткитах, а клиентский софт на любой хуйне пишется, c&c тоже может макака на пхп написать.
Аноним 03/10/21 Вск 14:30:02 #66 №2172748 
>>2172713
>>2172737
>На чем угодно.
Не на чём угодно, в идеале, нужно скомпилировать бинарь, если знаешь точную конфигурацию машины жертвы. А там уже остаётся только через бэкдор скачать бинарь на машину и запустить. Скачивать интерпретаторы или ВМ не вариант, так как это легко можно спалить антивирусом.
Аноним 03/10/21 Вск 14:33:15 #67 №2172750 
>>2172748
99% массовой малвари под шинду, к линупсам в любом случае нужен индивдуальный подход, там работают точечно.
На что и намекае статья с списками APT, эти не сшибают мелочь с миллионов, а работают по крупняку.
Аноним 03/10/21 Вск 14:56:44 #68 №2172774 
>>2172750
Так я про архитектуру проца и версию ос имел ввиду.
Аноним 03/10/21 Вск 15:48:28 #69 №2172831 
>>2172774
>>2172750

А в чем проблема собрать n бинарей и выкачивать нужный в зависимости от ОС/проца?
Аноним 05/10/21 Втр 02:50:16 #70 №2174207 
https://github.com/golang/go/issues/45346
Видели уже? Что думаете? Как по мне - хуита, можно было безболезненно сделать поведение с тильдой по умолчанию и не засорять код ненужными символами
Аноним 06/10/21 Срд 00:43:16 #71 №2175036 
1
Аноним 06/10/21 Срд 00:44:17 #72 №2175037 
1
Аноним 08/10/21 Птн 02:01:30 #73 №2177248 
043d3232d5ba4217a6e88934b773873d.gif
Анон, есть ли какие-то удачные паттерны для работы с каналами?

Мне, например очень понравилась errgroup ну это не паттерн, но как бы ты понял что я имею в виду - удачный и изящный конструкт. Типа нужно запустить горутины, которые могут поймать ошибку. И красота в том, что нет ни строчки лишнего кода. eg.Go() и пиздец. А под капотом целая машинерия на каналах.

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

Мне кажется должны быть уже известные рецепты/инструменты для таких типичных кейсов.
Аноним 08/10/21 Птн 16:49:49 #74 №2177586 
>>2177248
Ну можно через пулл воркеров ебануть. Запускаешь сколько надо воркеров, например 4, на каждое ядро, и через канал отдаешь им таски, через другой канал смотришь ошибки (можно обернуть в тот же Wait). Но это довольно громоздко.
Аноним 08/10/21 Птн 18:07:54 #75 №2177673 
Screenshot from 2021-10-08 17-58-51.png
>>2177586
Да, это все очень громоздко.

Вообще я немного ступил в своем вопросе, ограничить горутины семафором легко (пикрелейтед) - это достаточно лакончино получается.

Я хотел сказать другое.
Есть пул задач, которые мы хотим разбирать в N воркеров.
И есть их результаты работы, которые мы хотим разбирать в M воркеров.
(Ну например: ходим во внешний сервис 10-ю воркерами, пишем в базу 2-мя. Условно.)

Суть очень простая. Но на чистых каналах это будет ебаная простыня.
Мне хочется какой-то конструкт, чтобы что-то типа:
err := pipe.
-- Funout(10, func() {}).
-- Funnel(5, func() {}).
-- Wait()
Аноним 09/10/21 Суб 22:46:59 #76 №2178830 
Что такое дженерики и зачем они нужны? Можно пример в псевдокоде?
Аноним 09/10/21 Суб 23:23:16 #77 №2178862 
>>2166446
Так падажи ебанарот, ты как на дваче моноспейсом пишешь? Или у меня
Аноним 09/10/21 Суб 23:31:31 #78 №2178867 
>>2178862
С дашчана капчуешь? Попробуй теперь в браузере открыть, увидишь тег [сodе][/сodе].
Аноним 09/10/21 Суб 23:34:12 #79 №2178870 
>>2178867
Ды, с дашчана.

Ну-ка
[code]
six = 2 3
twelve = six
2
[/code]
Аноним 09/10/21 Суб 23:34:46 #80 №2178871 
>>2178870
Не, всё равно звёздочки съедаются.

блядская макака
Аноним 09/10/21 Суб 23:38:55 #81 №2178874 
>>2178871
Если бы хач полностью выключил разметку в /pr/, это бы принесло больше пользы, чем вреда. То индекс по i проебётся, то указатели, а используют подчёркивания-курсив в тексте в основном одни шизики.
Аноним 11/10/21 Пнд 01:38:47 #82 №2179907 
>>2177673
>Мне хочется какой-то конструкт, чтобы что-то типа:
>err := pipe.
>-- Funout(10, func() {}).
>-- Funnel(5, func() {}).
>-- Wait()
Ну без дженериков такое использовать очень неудобно, но можешь обмазаться https://github.com/ReactiveX/RxGo
Аноним 11/10/21 Пнд 05:55:55 #83 №2179930 
Попросили написать сервис для генерации jwt access и refresh токенов, проверки и выдачи новой пары.
Я в го совсем недавно, хочу устроиться кодером на бэк, хоть куда-нибудь, всё зделал за пару дней. Вместо gin лучше самому движок написать? Они попросили не использовать ничего кроме го и монгодб.
Просто хз как надо.

А ещё вопрос. В "hash" есть интерфейс hash.Hash. Функция из "crypto/hmac" hmac.New(...) возвращает тип hash.Hash структура вроде как или хз. Хотел написать что-то вроде этого:

func (h hash.Hash) addSomeShit(data []byte) hash.Hash {}

Но он не даёт это сделать, только так

type Hash struct {
Hash hash.Hash
}

func (h Hash) addSomeShit(data []byte) Hash {}

С обращением через h.Hash. По другому не работает. Пробовал type Hash hash.Hash, type Hash struct {hash.Hash}, Но в тех и других случаях получается не то что хотелось бы.
Интерфейс можно указывать как выход, но для него нельзя добавить новый метод получается?
Аноним 11/10/21 Пнд 14:05:58 #84 №2180218 
Screenshot2021-10-11-15-58-26-332com.github.android.jpg
>>2179930
Вот ещё, в самой либе hmac. Он возвращает hash.Hash, но делает return Hmac. Можно просто на вывод указать интерфейс, а там любой тип, лишь бы реализовывал его? В чём плюсы так делать? Чтоб рефакторинг не проводить потом?
Аноним 11/10/21 Пнд 14:12:36 #85 №2180224 
>>2179930
>Вместо gin лучше самому движок написать?
На самом деле стандартный net/http не так и плох, для твоей задачи более чем хватит
> Интерфейс можно указывать как выход, но для него нельзя добавить новый метод получается?
Да, ты можешь заембедить в свою структуру либо другую структуру, либо интерфейс, но добавлять метод к типу из другого пакета ты не можешь.
>>2180218
Вообще рекомендуют в общем случае принимать в аргументы интерфейсы, а возвращать конкретные типы, а кому надо - они уже дальше в интересы явно или неявно преобразуют.
Аноним 12/10/21 Втр 14:21:37 #86 №2181252 
Rob Pike aka BATYA предлагает не торопить события:
> I propose that we do not update the libraries in 1.18.

https://github.com/golang/go/issues/48918
Аноним 13/10/21 Срд 06:59:17 #87 №2182081 
Ящитаю что классы избыточны
Аноним 13/10/21 Срд 23:31:46 #88 №2182939 
>>2182081
Ну да, на много лучше как в старых добрых сях - вместо методов создавать функции для работы со структурой.
Аноним 13/10/21 Срд 23:41:38 #89 №2182943 
>>2182939
В жабе тоже так делают со стейтлесс-сервисами и сущностями без логики.
Аноним 14/10/21 Чтв 18:09:25 #90 №2183600 
аноны, какой стек технологий посоветуете учить с голангом?
Аноним 14/10/21 Чтв 18:42:00 #91 №2183644 
>>2183600
Постгрес, докер и остальное.
Аноним 15/10/21 Птн 14:51:18 #92 №2184381 
>>2183600
Если разраб: https://github.com/Alikhll/golang-developer-roadmap/blob/master/golang-developer-roadmap.png

Если девопс - тебе в общем-то кубернетиса более чем хватит чтобы охуеть от количества материала, а когда будешь в кубере понимать - там уже по вакансиям смотри что на рынке требуют.
Аноним 17/10/21 Вск 11:13:47 #93 №2185766 
16333431071160.png
Сап гоферы, кто-нибудь может пояснить тупому бекендеру пишущему на интерпретируемых динамикодриснявых и т.д. языках как понять ебучие указатели и как научиться понимать где использовать указатели и где не использовать? Я пришел в го после трёх лет работы, уже полгода пишу на нем и до сих пор не понимаю сраные указатели. Повезло попасть в проект, где в основном уже всё готово и я просто добавляю роуты по аналогии с уже имеющимися и таким же образом дёргаю базу. Сам с нуля я хуй бы всё это написал т.к. имею слишком низкий IQ для понимания указателей, но может всё-таки кто-то здесь сможет мне помочь?
Аноним 17/10/21 Вск 13:54:28 #94 №2185834 
>>2185766
>на интерпретируемых динамикодриснявых и т.д. языках
Ты жалок и слабодушен. Ради ответа на вопрос поносишь себя говном и свои альма-матер.
Мать тоже продашь за сгуху при соответствующих обстоятельствах?

>как понять ебучие указатели
Что там понимать? Указатель это ссылка на область памяти.
Передаешь в функцию указатель - прыгаешь к данным по ссылке и работаешь с ними.
Передаешь в функцию не указатель (значит само значение) - получаешь копию области памяти и работаешь с копией.
Отсюда два сайдэффекта:
- Указатель занимает 64 бита незвисимо от того на что указывает.
- Работа с указателем повлияет непосредственно на оригинальные данные, а не на копию.

Дриснявое говно это го.
Аноним 17/10/21 Вск 15:28:23 #95 №2185893 
>>2185766
Ну, если ты из интерпретируемых динамикодриснявых языков, то просто используй поинтеры к любой структуре, которую ты сам определил, семантика будет такая же как ты и привык в своём ${языкНейм}
Аноним 17/10/21 Вск 15:31:46 #96 №2185894 
>>2185893
Единственное исключение - старайся не передавать поинтеры в каналы, либо если передавать - то больше не использовать его в той горутине откуда ты его отправил.
Аноним 17/10/21 Вск 22:30:24 #97 №2186308 
>>2185834
Не ради ответа на вопрос, а просто констатирую факты, которые обнаружил через работу с этими языками, потому и решил переходить на го или дотнет или джаву, вот го первым подвернулся. И не себя поливаю, а инструменты, на которых работал. Альма-матер? Ты слишком серьезно относишься к лопатам и киркам.

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

Если ты считаешь го дрисней, то какие языки не считаешь?

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

>>2185894
Во втором случае больше не использовать в горутине даже если из канала он просто читается и ничего больше с ним не делается? Данные по ссылке ведь те же самые должны остаться
Аноним 17/10/21 Вск 23:25:28 #98 №2186349 
>>2186308
>не понятно когда их использовать, а когда нет
Используй указатели для больших структур или если объект должен быть мутабелен. В остальных случаях передавай копированием, всё. Про согласованность методов структуры читай ниже.
https://golang.org/doc/faq#methods_on_values_or_pointers
Аноним 18/10/21 Пнд 22:30:39 #99 №2187148 
photo2021-09-3013-00-35.jpg
>>2185766
Аноним 18/10/21 Пнд 23:48:44 #100 №2187225 
>>2187148
Literally me
Аноним 19/10/21 Втр 01:36:22 #101 №2187285 
>>2186308
>если можно каждый раз не использовать их и просто передавать копию? Байты экономить?
Представь себе, да. Когда про говноязыки говорят, что они текут, имеют в виду именно рост потребления памяти по времени работы процесса. Если хочешь в документации к своему говну написать "нужен перезапуск процесса по крону раз в час", то да, можно не использовать указатели и просто передавать копию.
Аноним 19/10/21 Втр 09:23:24 #102 №2187357 
>>2187285
Есть какие-то данные о том, насколько сильно это экономит память? Это точно не экономия на списках?
Аноним 19/10/21 Втр 13:32:47 #103 №2187496 
>>2187357
Если ты программист, то можешь написать два куска кода и погонять их в бенчмарках. Если нет, то хули тебе надо бля?
Аноним 19/10/21 Втр 20:33:33 #104 №2187972 
>>2187496
Нужны пруфы утверждению о том, что указатели значительно уменьшают потребление памяти. Утечки памяти ещё приплел не к месту зачем-то.
Аноним 19/10/21 Втр 21:02:49 #105 №2188015 
>>2187285
Утечки памяти по-другому работают, пчел. И как раз в говноязычках всё на указателях работает
Аноним 19/10/21 Втр 21:07:55 #106 №2188023 
>>2187972
У тебя есть массив, который весит 1мб

Каждый раз передавая массив в функцию, тебе придется выделять память под новый массив, а gc убирает старый. Программа потребляет в разы больше памяти и сколько-то процессорного времени.
Аноним 19/10/21 Втр 21:52:47 #107 №2188076 
>>2188023
>Программа потребляет в разы больше памяти и сколько-то процессорного времени.
Ты уверен, что потребляет в разы больше памяти? Тем более gc это быстро чистит, и процессорного времени он занимает не много, он го охуеть какой эффективный, особенно по latency.
Аноним 19/10/21 Втр 22:49:33 #108 №2188133 
>>2188076
Зависит от размера структуры и нагрузки. GC умный, но магии здесь нет.
В хайлоаде начинают каждую аллокацию считать
Аноним 19/10/21 Втр 23:11:20 #109 №2188172 
Важно также понимать, что часть переменных алоцируется на стеке и не нагружают GC. Что именно будет алоцировано на стеке а что в хипе - решает escape analysis на стадии компиляции.
В любом случае, вы сейчас занимаетесь теориекрафтите преждевременные оптимизацию не столкнувшись с реальной проблемой в производительности, а такие вещи лучше решать по месту.
Аноним 20/10/21 Срд 09:14:56 #110 №2188317 
>>2188023
что либо предполагать тут бессмысленно, надо запускать escape analysis.

Есть несколько нюансов по котороым память выделится в хипе:
1) При неопределенной длине слайса/мапы
2) При возврате указателя с функции/метода (ИМЕННО return)
3) При создании глобальной переменной в пакете
4) closure (лямбды)

1) Массивы(не слайсы) с определенной длиной передаются by value(слайсы по идее тоже, но там только хэдер, а данные по указателю)
2) При передаче указателя в аргумент функции, данные не будут выделяться в хипе
3) Гошный stack очень сильно отличается от стэка других ЯП, если кратко сказать то он эластичен и может изменяться, но задетектить это кажется нереально (надо глянуть сурсы). Поэтому большие массивы у которых длина константна могут уложиться в стэк (если данные массива занимают больше 65536 байт то он уйдет в хип, при меньшей в стэк)
Аноним 20/10/21 Срд 09:56:06 #111 №2188330 
>>2188317
фикс: у слайсов если длина константна*
Аноним 23/10/21 Суб 18:00:42 #112 №2191590 
кто-нить устраивался в WILDBERRIES на стажёра? ебут на собесах?
Аноним 23/10/21 Суб 23:54:40 #113 №2191874 
Come Go With Me
Why Network Engineers Should Learn Go


https://darrenparkinson.uk/posts/2021-10-13-why-network-engineers-should-learn-go/
Аноним 24/10/21 Вск 00:44:32 #114 №2191887 
Какие вообще есть реальные альтернативы го в коммерческой разработке/карьере? Джава и дотнет? Почему вы выбрали не их, в именно го?
Аноним 24/10/21 Вск 00:45:59 #115 №2191888 
>>2191887
Это ещё вопрос, является ли сам го альтернативой жабе и дотнету.
Аноним 24/10/21 Вск 01:07:26 #116 №2191899 
>>2191887
Сейчас все пишут на тайпскрипе на ноде и деплуят это все в кубернетисы на облако
Аноним 24/10/21 Вск 01:09:54 #117 №2191901 
>>2191899
Самые злоебучие и громкие - это не все.
Аноним 24/10/21 Вск 01:13:17 #118 №2191904 
>>2191901
Ну а хули, го только и обслуживает кубернетисы и больше нигде не нужен, вон в helm там шаблоны на готемплейтах
Аноним 24/10/21 Вск 01:15:27 #119 №2191905 
>>2165418 (OP)
Пацаны ну есть же нормальные языки типа джавыскрипта или питона, нахуй это говно нужно?
Аноним 24/10/21 Вск 01:19:21 #120 №2191906 
>>2191905
> нормальные языки
> джавыскрипта или питона
Выбери одно.
Аноним 24/10/21 Вск 22:41:56 #121 №2192607 
>>2191887
От го меньше тошнит, проще вкатиться на сеньора, меньше вероятность что придется ковырять кровавое легаси
Аноним 24/10/21 Вск 23:33:48 #122 №2192635 
>>2191906
> > джавыскрипта или питона
> Выбери одно.
Выбираю жавускрипт
Аноним 24/10/21 Вск 23:54:41 #123 №2192654 
>>2191590
стажёра-упаковщика шмоток?
Аноним 25/10/21 Пнд 09:18:06 #124 №2192837 
>>2191887
ООП языки дискредитировали себя, так что выбор у тебя между нодой и го, если хочешь работать в топовой компании.
Аноним 25/10/21 Пнд 11:57:39 #125 №2192963 
>>2192837
>ООП языки дискредитировали себя
Каким это образом?
Аноним 25/10/21 Пнд 12:25:19 #126 №2193000 
>>2192654
очень смешно
Аноним 25/10/21 Пнд 22:51:22 #127 №2193538 
Как на вашем го дела с десктоп гуйней?
Аноним 25/10/21 Пнд 23:30:51 #128 №2193568 
>>2193538
Никак.
Аноним 26/10/21 Втр 01:22:35 #129 №2193624 
>>2193538
Есть обертки над сишными либами разной степени паршивости, есть https://github.com/fyne-io/fyne для простых приложений без требований к дизайну.
А вообще вот список, я не знаю что ты хочешь сделать и какие требования к либе https://awesome-go.com/#gui + https://awesome-go.com/#game-development
Аноним 26/10/21 Втр 13:48:56 #130 №2193875 
>>2193538
>2k22
>десктоп
Аноним 27/10/21 Срд 00:28:06 #131 №2194469 
>>2193875
В мрачной антиутопии 2k22 года всё только в вебе или через электрон в вебе?
Аноним 27/10/21 Срд 00:32:55 #132 №2194473 
>>2194469
ОС будет либо консолью для админов, где можно ставить только серверный софт, либо браузером, где свои приложения ставить запрещено, постоянный доступ в интернет обязателен.
Аноним 27/10/21 Срд 01:40:39 #133 №2194497 
>>2191590
да, нет, если опыт прям ноль то рекомендую, если опыт был хотябы 2+ года на любом языке в вебе то сразу бздуй на мидла, не шучу
Аноним 27/10/21 Срд 01:48:26 #134 №2194500 
>>2194473
Такой-то дивный новый мир.
Аноним 27/10/21 Срд 11:34:20 #135 №2194683 
>>2194473
>консолью для админов, где можно ставить только серверный софт
Такой-то манямир неосилятора линукс. Для текстовых консолей есть и музыка, и игры, и отображатели картинок даже. ASCII-видео разумеется не завезли, но оно и не нужно.
Аноним 27/10/21 Срд 11:38:05 #136 №2194686 
>>2194683
Но зачем
Аноним 27/10/21 Срд 11:55:11 #137 №2194702 
>>2194683
>не завезли
>и не нужно.
Типичный "осилятор" линуксовой копрофилии
Аноним 27/10/21 Срд 12:08:43 #138 №2194722 
>>2194702
Эх, сейчас бы быть разРАБотчиком и не мочь в линупс.
Аноним 27/10/21 Срд 20:44:21 #139 №2195421 
psina.webm
>>2194683
> ASCII-видео разумеется не завезли
Аноним 27/10/21 Срд 23:55:13 #140 №2195606 
>>2195421
Охуеть, а я запускал иксы, чтобы подрочить. Спасибо, анон!
Аноним 28/10/21 Чтв 21:30:34 #141 №2196586 
Какой-то сложный язык. Хожу на курсы от одной ит-конторки, и перестал понимать что-либо в нем. Синтаксис какой-то захламленный, а контекст вообще не понятно зачем нужен.
Аноним 28/10/21 Чтв 21:32:16 #142 №2196588 
>>2196586
Если пщ для тебя сложный, то что тогда простое? Только не говори, что жс/питон, они намного сложнее.
Аноним 28/10/21 Чтв 21:33:57 #143 №2196591 
>>2196588
php
Аноним 28/10/21 Чтв 21:38:14 #144 №2196598 
>>2196591
Ладно, принято. Ну хз, главное изучать дальше и не сдаваться, понимание появится.
Аноним 28/10/21 Чтв 21:46:02 #145 №2196612 
>>2196591
php 3?
Аноним 28/10/21 Чтв 21:50:50 #146 №2196617 
>>2196612
php 5.4 минимум
Аноним 28/10/21 Чтв 22:31:37 #147 №2196656 
Бэк на Го в целом чем отличается от "крудов" на Node.js? У меня есть небольшой опыт разработки бэка на Python и Node.js, но сам я фронтендер который пилит фронт уже 3 года. Знакомые советуют перекатываться в бэк на Го возможно, в будущем я так и поступлю, но чет ссыкую понизить грейд до джуна. Поетому мне интересно почитать про архитектуру типовых проектов на Го, что в целом спрашивают на собесе у мидлов.
Аноним 28/10/21 Чтв 22:38:47 #148 №2196667 
>>2196656
В го нет джунов, можешь не переживать.
Аноним 28/10/21 Чтв 23:09:33 #149 №2196704 
>>2196656
Микросервисная залупа обернутая в кубернетис, вот тебе и вся архитектура.
Аноним 28/10/21 Чтв 23:52:12 #150 №2196753 
а вам норм в коде оставлять ссылку на модуль на гитхабе? а если с ним что-то будет?
Аноним 29/10/21 Птн 00:02:26 #151 №2196763 
>>2196753
Не норм. Но скажи спасибо гуглу, что выбора тупым программистмшкам он не дал.
Аноним 29/10/21 Птн 00:34:18 #152 №2196780 
>>2196753
Пакеты с npmjs.com не могут исчезнуть?
Пакеты с pypi.org не могут исчезнуть?
в го модулях тоже можно переопределить откуда пакет тянуть (replace) https://golang.org/doc/modules/gomod-ref
Аноним 29/10/21 Птн 00:53:06 #153 №2196784 
>>2196753
Оставляй ссылки на модуль в гитлабе, очевидно же.
Аноним 29/10/21 Птн 02:58:25 #154 №2196839 
>>2196784
Ну и про вендоринг не забывайте
Аноним 29/10/21 Птн 21:46:24 #155 №2197669 
Ребята, как в Go достать жсон из гет запроса? У меня есть API мне нужно с него получить данные в виде ЖСОН чтобы дальше с ними работать, но у меня получается вывести только в байтовом виде(какая-то хрень выводится) или в виде строки(в виде строки нормальные массивы)
Аноним 29/10/21 Птн 22:56:54 #156 №2197691 
>>2197669
json.Unmarshal
Аноним 29/10/21 Птн 23:18:04 #157 №2197697 
>>2197691
Пробовал. cannot unmarshal array into Go value

Аноним 29/10/21 Птн 23:23:04 #158 №2197699 
>>2197697
Чел ты... го тур проходил?
var v []interface{}
json.Unmarshal(body, &v)
Аноним 29/10/21 Птн 23:30:51 #159 №2197701 
>>2197699
Конечно. Уже вторую неделю изучаю его после работки.

Приходит <nil>

func MakeRequest() {
//var query string
var v []interface{}

resp, err := http.Get("тут урл")
if err != nil {
log.Fatalln(err)
}

body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatalln(err)
}
//query = string(body)

test := json.Unmarshal(body, &v)

log.Println(test)
}

Аноним 29/10/21 Птн 23:31:54 #160 №2197702 
>>2197701
Щит, с разметкой накосячил... Простите.
Аноним 29/10/21 Птн 23:50:31 #161 №2197710 
>>2197701
В данном случае лучше использовать json.NewDecoder(resp.Body).Decode(&v)

https://play.golang.org/p/Gv7UN3vS_fA
Аноним 30/10/21 Суб 10:56:05 #162 №2197907 
>>2197710
для двоча подошло, конечно, но для моей задачки нет. массивы данных у меня в текстовом виде представлены и только когда я выбираю в консоли браузера вкладку с get параметром, то в ответе вижу json. Пытался в самом браузере в поисковой строке дописать .json в конце строки, так он мне просто null вернул(браузер, не Go)
Аноним 30/10/21 Суб 12:18:06 #163 №2197952 
>>2197701
>test := json.Unmarshal(body, &v)
>log.Println(test)
>Приходит <nil>

Ты же в курсе, что ты логируешь ошибку? Этот метод "анмаршалит" данные в структуру V и возвращает ошибку. Нормальный код выше уже написали, он должен работать. Проверь правильность работы АПИ, или чего нибудь ещё, ошибка может быть очень глупой.
Аноним 30/10/21 Суб 18:09:41 #164 №2198290 
>>2197952
О, блен, анон, реально чето затупил. Сейчас все получилось. Огромное спасибо!

Просто убрал присвоение и стал выводить v. Ошибка реально глупая.
Аноним 30/10/21 Суб 20:38:53 #165 №2198477 
>>2198290
Глупой ошибкой было писать на GOвне вместо языка.
Аноним 31/10/21 Вск 13:35:52 #166 №2198869 
>>2198477
Анон, расскажи о себе. Что такого произошло в твоей жизни, что ты решил тратить своё свободное время на засерание го треда? Где ты свернул не туда?
Аноним 31/10/21 Вск 16:57:25 #167 №2199136 
>>2198869
>ГОвно
>засерание
Норм шутканул.
Аноним 31/10/21 Вск 17:39:51 #168 №2199157 
>>2199136
Нет, я серьезно. Мне правда интересно как ты пришел к такой жизни
Аноним 01/11/21 Пнд 00:55:40 #169 №2199465 
>>2199157
Да я просто в детстве упал на швабру, 5 раз подряд
Аноним 01/11/21 Пнд 00:57:28 #170 №2199467 
А ещё я сосу хуи
Аноним 01/11/21 Пнд 09:41:55 #171 №2199534 
Как в ГО происходят прерывания для переключения задачи? В питоне все понятно, поставил await и это сигнал менеджера, а тут чет не нашел ничего подобного.
Аноним 01/11/21 Пнд 13:08:19 #172 №2199675 
>>2199534
Братан тебе ещё рано, пройди пока го-тур.

Аноним 01/11/21 Пнд 13:19:07 #173 №2199677 
>>2199534
А в пщ это делается автоматически, никакого async-await-мусора не нужно.
Аноним 01/11/21 Пнд 13:25:36 #174 №2199678 
>>2199534
Тут почти как в OS - планировщик всю эту херню крутит-вертит и мапит m горутин на n тредов, а когда они доходят до всяких time.Sleep, сисколов, мьютексов и каналов - передает управление другой горутине. Но ты можешь руками вызвать runtime.Gosched(), если тебе очень надо.
Аноним 01/11/21 Пнд 13:59:59 #175 №2199703 
>>2199675
Лул, я на позицию го-дева прошел в банк только закончив тур и написал говноборду. На собесе только про прошлый опыт с питоном спрашивали и пару задач с которыми даже даун справился бы. и отвалился на СБ так как не хотел ИП закрывать, который я для апворка использую
Аноним 01/11/21 Пнд 14:22:48 #176 №2199712 
изображение.png
>>2199703
Аноним 01/11/21 Пнд 20:39:36 #177 №2200023 
>>2199534
Для синхронизации нужны каналы, waitgroup. Читай доку, читай го бложик
Аноним 02/11/21 Втр 05:46:14 #178 №2200303 
>>2165418 (OP)
Товарищи Аноны, имеет ли смысл брать GO первым языком программирования? Если нет посоветуйте какой-нибудь другой(Сижу под линей, С# не предлагать)
Аноним 02/11/21 Втр 11:03:53 #179 №2200401 
>>2200303
Изучаю голанг как второй ЯП уже после двух лет работы на пхп. Мне очень трудно дается.
Аноним 02/11/21 Втр 11:06:13 #180 №2200405 
sdf.png
Аноны, как в Go отправить по-нормальному POST запрос? Пытаюсь отправить JSON в него и получить нормальный ответ, но получаю 400 Bad Request.
Аноним 02/11/21 Втр 11:33:49 #181 №2200445 
>>2200303
Не имеет, го для миддлов, перекатывающихся из других языков.
Язык выбирай по области, которой хочешь заниматься, хоть жаба, хоть жс, хоть кресты.
Аноним 02/11/21 Втр 13:02:02 #182 №2200515 
>>2200401
А чего не дается-то? Основная разница в sync пакете валяется и в каналах, ну и в байтоебле с профилированием и высчитыванием шо стек шо хип как любят плюсовички, а просто говнокодить контроллеры и репозитории все одинаково
Аноним 02/11/21 Втр 13:11:32 #183 №2200526 
>>2200515
Контекст, горутины, каналы, кривой синтаксис, постоянные err != nil, ругань о том, что что-то объявлено и не используется, громоздкие отправки GET и POST запросов, странные интерфейсы. В общем у меня ошибка на ошибке. Решу одну, всплывает другая. Ну и конечно же подкрепляется это тем, что из-за необычности синтаксиса понимание написанного дается в несколько раз сложнее.
Аноним 02/11/21 Втр 13:13:21 #184 №2200527 
>>2200526
Странный ты, у меня после пистона натура заходит.
Аноним 02/11/21 Втр 13:56:02 #185 №2200587 
>>2200405
> но получаю 400 Bad Request
А что в логах сервера-то? Код клиента вроде вполне корректный
Аноним 02/11/21 Втр 16:00:44 #186 №2200722 
>>2200405
Чел, ты ... Джсон на валидность проверял? У тебя лишняя запятая в конце
Аноним 02/11/21 Втр 20:55:53 #187 №2201063 
>>2200722
Да, поменял сейчас, но ошибка та же)
Аноним 03/11/21 Срд 04:10:43 #188 №2201348 
>>2201063
Тогда хз, у меня твой код работает, внимательно изучи API сервера, мб проебался с типами.
Аноним 04/11/21 Чтв 20:22:28 #189 №2203326 
Знающие аноны! У меня есть вопрос по циклу с горутинами, может подскажет кто-нибудь умелец?
Вот есть цикл который с 10 итерациями.
Каждый раз в цикле запускаются анонимные горутины, которые записывают в канал(int) число возвращаемое из функции(которая выполняет какие-то действия и возвращает int)
Далее после всего цикла перед return я читаю все 10 значений из канала, НО получаю половину значение с числом 1. Вопрос, как получить все 10 значений из функций в горутинах?

Аноним 04/11/21 Чтв 22:40:11 #190 №2203472 
>>2203326
анонимку покаж
Аноним 04/11/21 Чтв 23:03:49 #191 №2203482 
4BYDjNQdohI.jpg
>>2203472
Аноним 04/11/21 Чтв 23:17:03 #192 №2203492 
>>2203482
arrayNumbers передай аргументом в анонимку
Аноним 04/11/21 Чтв 23:20:10 #193 №2203495 
>>2203492
Ахах, а ловко ты это придумал. Я даже сначала и не понял почему так было)
Спасибо)
Аноним 05/11/21 Птн 00:43:52 #194 №2203524 
>>2200303
>имеет смысл GO
да
>под линей
это типа линукс? я так понимаю ты собрался сервера писать, есть же .netcore нормально пишут на нем сервера.

> Если нет посоветуйте какой-нибудь другой
похуй какой, везде придется учить клиент-серверная архитектура, основы сетевой работы, rest, docker, kuber, БД, bash, и прочие команды терминала. Именно язык тут 10-30%. Думаю лучше начать с python у него тонны документации на ру. Если ты читаешь на инглише и смотришь видосики то можно и ГО.
На работу можешь подаваться когда осилишь условно 10 серверов, зальешь на гит с нормальными коментами.
Аноним 05/11/21 Птн 01:16:25 #195 №2203534 
>>2200526
>что что-то объявлено и не используется
Так вот кто этот говнокод на пыхе пишет, ты может быть ещё и битриксоид?
Аноним 05/11/21 Птн 01:52:36 #196 №2203549 
>>2187148
Пиздец я обоссался с пикчи
Аноним 05/11/21 Птн 12:34:30 #197 №2203647 
>>2203534
Ну да, я пишу. Только не битриксоид а PHP Native.
Аноним 06/11/21 Суб 02:29:10 #198 №2204242 
Помню смотрел когда кщк 1.13 было и угарал с этого go111mod и ручного складывания в go.mod. Как там сейчас? Все так же зависимость ставится глобально, да еще и что-то там настраивать в путях надо?
Аноним 06/11/21 Суб 02:38:06 #199 №2204245 
>>2204242
> Все так же зависимость ставится глобально, да еще и что-то там настраивать в путях надо?
Если ты намекаешь на node_modules, подобного говна нет и никогда не будет ни в одном нормальном языке. Несколько версий одного пакета можно держать менее костыльными способами.
Аноним 06/11/21 Суб 02:38:58 #200 №2204248 
>>2204245
Ну так расскажи, как правильно надо организовать это.
Аноним 06/11/21 Суб 02:48:10 #201 №2204250 
>>2204248
Всё в доке написано и уже давно работает, ничего самостоятельно делать не нужно.
Аноним 06/11/21 Суб 02:58:23 #202 №2204253 
>>2204250
Конечно написано, только это документация для питона
go get -u github.com/gorrila/mux
rm -f $(go env GOPATH)/pkg/mod/gorrila
Пиздец комманда для удаления.
Аноним 06/11/21 Суб 20:46:42 #203 №2204817 
30332963600.jpg
>>2165418 (OP)
Привет задроты. Я тут мимо-фулстак-жс-макака, решил расширить кругозор и углубился в этот ваш го. Осилил интро до момента "у нас нет классов, а метод это функция с указанием типа-ресивера"

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

Как тут у вас с ооп? Наследования нет, как я понял, как же вы тут живёте? Утиная типизация?

Почему нет Классов? Нет классов значит нет конструкторов значит нет реализации базового функционала? Или вы там фабриками на каждый чих обмазываетесь?

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

Вопрос последний, который должен быть первым. А нахуя вообще нужен этот голанг? В мире дотнета, ноды и прочего такого?
Аноним 06/11/21 Суб 21:01:43 #204 №2204823 
>>2204817
> Как тут у вас с ооп? Наследования нет, как я понял, как же вы тут живёте?
Вместо наследования есть interface embedding/struct embedding. Полиморфизма нет.
> Почему нет Классов?
Дядюшка Пайк считает, что они не нужны.
> Нет классов значит нет конструкторов значит нет реализации базового функционала? Или вы там фабриками на каждый чих обмазываетесь?
А что плохого в фабричных функциях? Те же конструкторы, но с названием.
> Нахуя указатели?
А нахуя ссылки в JS?
> А нахуя вообще нужен этот голанг? В мире дотнета, ноды и прочего такого?
А нахуя дотнет, нода и прочее такое, если есть голанг?
Аноним 06/11/21 Суб 21:22:52 #205 №2204842 
>>2204817
У го киллерфича это то что нет async/await и тредового говна, и не надо синк/асинк версии функций писать, своя модель конкаренси
Аноним 06/11/21 Суб 21:45:35 #206 №2204858 
>>2204823
Ну для начала сразу скажу что я не даю оценок. Я прикидываю закатываться или нет. А для этого мне надо понять как делаются типовые задачи. >>2204823
>Вместо наследования есть interface embedding/struct embedding
Можно вкрации на пальцах? Сам я все свои 22 года программирования пишу в ООП парадигме, и очень редко функционально..
>А нахуя ссылки в JS?
Ну быстрое сравнение? Безопасность опять жи

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

Т. З. Персонального опыта Го смотрится как йет эназер хайпнейм лангуаге. Но я предполагаю что должны ж быть места где он хорош, раз его используют в тырпрайзе?
>>2204842
Вот это уже звучит как интересное. Я вот сам думал что асинк авейт ващет могли б сделать поведением по умолчанию...

Окей, я понял что их нет. А в чем киллер фича? Как там прогают асинхронно тогда?
Аноним 06/11/21 Суб 22:00:03 #207 №2204869 
Блять, почаны, хотел в ваш го вкатиться ждуном, но почитав тред передумал. Выглядит синтаксис вырвиглазно, хуже чем PHP, ей богу, это ваще жесть какая-то. Постоянно ошибки, длинные запросы, нет ООП, ссылки называются указателями. Все перевернуто и переебано. За сим отдаю вам вакансию ждуна за 25к - https://hh.ru/vacancy/42302087

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

>>2196656
А зачем бросать фронт? Чем тебе не нравится? Полно работы и денег, много интересных проектов, что не нравится-то я не пойму?
Аноним 06/11/21 Суб 22:21:14 #208 №2204883 
>>2204858
>Можно вкрации на пальцах?

Ну например:

type Stringer interface{ String() }

func Print(s Stringer) - функция которая принимает только объекты которые реализуют метод String(). Правильно реализовать метод String в своем объекте - твоя задача.
Аноним 06/11/21 Суб 22:25:29 #209 №2204886 
>>2204883
Так если класса нет, и наследования нет, как гарантировать что макакен реализует String() правильно?
Аноним 06/11/21 Суб 22:37:45 #210 №2204892 
>>2204886
>как гарантировать что макакен реализует String() правильно?
Не ебёт. Например ты реализовал интерфейс для БД (обычный круд), и с помощью него написал view и controller, пускай теперь другая макака на основе этого интерфейса запилит бд и чтобы она норм работала.
Аноним 06/11/21 Суб 22:38:19 #211 №2204893 
>>2204883
В прочем похуй, я тут копнул ещё.
Дженериков нет, трайкетча нет, дефолтных параметров нет, перегрузки методов нет.

Залупа/10, а не язык.
Пойду дальше на тайпскрипте кодить.
Аноним 06/11/21 Суб 22:46:09 #212 №2204896 
>>2204893
>Дженериков нет
НЕНУЖОН, но в 1.19 методичку поменяют. обмажемся по полной.
>трайкетча нет
НЕНУЖОН
>дефолтных параметров нет
НЕНУЖОН
>перегрузки методов нет
НЕНУЖОН

>Залупа/10, а не язык.
Ну где то так, мне норм.
Аноним 06/11/21 Суб 23:47:13 #213 №2204931 
>>2204896
>трайкетча нет
>НЕНУЖОН
Если с остальными еще с горем пополам могу согласить, но вот тут ты обосрался, мартышка.
Аноним 07/11/21 Вск 01:05:01 #214 №2204976 
>>2204931
>трайкетча нет
Это и ошибка по значению очень сильно влияет на процесс написания кода и архитектуры. Я после года на гоше, кроме как на расте больше не могу ни на чём писать без постоянного затупа.
Аноним 07/11/21 Вск 10:56:08 #215 №2205094 
>>2204976
Пчел, мне прям не хочется быть грубым. Но судя по спецификации это реально язык для тупых код макак которым нельзя вообще ничего.

Ну типа автор языка вместо
DoShit(a, b?, c?, d?) реально считает что копипаста
DoShitWithA
DoShitWithAandB
....
SoShitWithD
это что-то хорошее.

Аноним 07/11/21 Вск 13:54:58 #216 №2205191 
photo2021-11-0712-38-48.jpg
О сложности вката в го
Аноним 07/11/21 Вск 14:11:25 #217 №2205204 
>>2205094
В го комьюнити есть общепринятый способ как работать с опциональными параметрами.
https://petomalina.medium.com/dealing-with-optional-parameters-in-go-9780f9bfbd1d
Аноним 07/11/21 Вск 14:12:06 #218 №2205205 
>>2165418 (OP)
надо ли знать ЖС для вката в Го?
Это же по сути бэкенд язык, значит надо понимать хоть чуть-чуть что там просходит настороне фронта? Или похуй?
Аноним 07/11/21 Вск 14:14:43 #219 №2205207 
>>2165430
>программистам скорее всего такой расклад не очень понравится — мало кто любит быть винтиком в системе.

Лел, можно подумать что программисты это и так не легкозаменяемые винтики в системе, отличающиеся от заводчан только условиями работы и зарплатами.
Аноним 07/11/21 Вск 14:17:37 #220 №2205211 DELETED
Мне подойдет Го если у меня хер 27 см?
sageАноним 07/11/21 Вск 15:22:32 #221 №2205252 DELETED
>>2205211
Тебе подойдёт репорт.
Аноним 07/11/21 Вск 15:28:21 #222 №2205257 
>>2205094
Блять, честно тебе скажу, мб я макака, но за все время пока писал на го, единственным юзкейсом использования дефолтных параметров, были алгоритмы с рекурсией. А для чего они ещё нужны?

Если прям вообще пичёт, то альтернатив много:
1. Кастомный конфиг (Если объект очень большой, сервер или репа)
2. Обычный map (Самый простой, но самый уебанский способ)
3. Как уже написали, опционные функции (Хорошее решение для использования в функциях инициализаторах).

Это кстати, те знаменитые велосипеды на Го
Аноним 07/11/21 Вск 16:54:54 #223 №2205315 
>>2205257
> А для чего они ещё нужны?
Для функций/методов, которые делают всё на свете и сразу. Вот в го есть fmt.Printf, который печатает в stdout, и есть fmt.Fprintf, который печатает в указанный райтер, а в том же питоне, например, https://docs.python.org/3/library/functions.html#print принимает 4 аргумента с дефолтным значением, один из них это файл-лайк объект, по дефолту sys.stdout. Вообще для питона это нормально, некоторые функции там принимают по 3 строки аргументов, и если бы не дефолты - люди бы охуевали это всё передавать.
Аноним 07/11/21 Вск 17:00:25 #224 №2205319 
>>2205315
А как в го конструируют большие объекты? Педалят по 20 функций на все?
Аноним 07/11/21 Вск 17:29:29 #225 №2205338 
>>2205319
Уже написал >>2205257
Аноним 07/11/21 Вск 17:34:42 #226 №2205345 
>>2205319
В го стараются не делать большие объекты, зачастую всё подобное говно делают многослойным.
Ну и еще есть принцип make zero value useful, но вне стандартной либы его практически никто не придерживается
Аноним 07/11/21 Вск 17:36:18 #227 №2205346 
>>2205315
Тут есть чёткая грань между твоим примером об fmt и "принимают по 3 строки аргументов". Большие объекты можно через конфиг создавать, NewRepo(&cfg{...}) и это будет удобно, а функции которые делают все подряд - говнокод.
Аноним 07/11/21 Вск 21:57:25 #228 №2205661 
Яндекс практикум выкатывает свой курс https://practicum.yandex.ru/promo/go-profession/
Аноним 07/11/21 Вск 22:55:14 #229 №2205724 
>>2204817
> Как тут у вас с ооп
Нахуй ООП
> Наследования нет
Не нужно

> Утиная типизация
Для интерфейсов

> нет Классов
Нахуй классы

> нет конструкторов
Используют функции, возвращающие структуру

> Нахуя указатели
Всё более явно. В принципе, их могло и не быть
Аноним 08/11/21 Пнд 22:25:57 #230 №2207290 
>>2205257
>. А для чего они ещё нужны?
CreateUser(firstName, secondName, lastName, prefix, postfix, gender, birthDate)
Аноним 09/11/21 Втр 04:43:51 #231 №2207426 
>>2207290
CreateUser(models.User{firstName:"GO",secondName:"VNO"})

Возвращать может созданого юзера, можно ещё делать валидацию внутри функции, чтобы присвоить свои default поля, но придется городить if'ы не самый хуйовый кастыль который я видел в го, так что бздеть по этому поводу не стоит.
Аноним 09/11/21 Втр 10:04:59 #232 №2207611 
>>2207426
Ладно дженерики, там пайк кое как объяснился, а чем ему необязательные и дефолтные параметры не угодили?
Аноним 09/11/21 Втр 10:17:32 #233 №2207625 
>>2207611
"They are a bad idea as they make it much easier to build confusing functions that complicate the API."
Хуйню написал если честно, что мешает создавать запутанные API через указатели на структуры вместо дефолтных параметров?
Аноним 11/11/21 Чтв 10:23:56 #234 №2209433 
>>2165418 (OP)
Перекатываюсь в го из пистона и понемногу ахуеваю.
Как вы живете с такими уебищными обработками ошибок, посоны? Это же пизда.
А еще я не понимаю где и зачем использовать указатели, потому что я тупой.
А еще я не понимаю почему чтобы сделать мапу, нужно обязательно оборачивать ее в make.
Пиздец какой то
Аноним 11/11/21 Чтв 16:49:06 #235 №2209652 
>>2209433
>А еще я не понимаю почему чтобы сделать мапу, нужно обязательно оборачивать ее в make.

>Map: An empty map is allocated with enough space to hold the specified number of elements. The size may be omitted, in which case a small starting size is allocated.

>m := map[int]int{}

Братан, точно не мне давать тебе советы, но просто в доки смотри.
Аноним 11/11/21 Чтв 18:55:43 #236 №2209731 
>>2209433
> А еще я не понимаю почему чтобы сделать мапу, нужно обязательно оборачивать ее в make.
Не обязательно, ты можешь создать мапу из значений https://play.golang.org/p/CAH_912zpdJ
Аноним 11/11/21 Чтв 22:36:14 #237 №2209868 
>>2209433
Указатель для передачи в функцию большого числа данных.

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

Отсюда же вытекает, что если передаёшь что-то по указателю, то функция это что-то может изменить в ходе своей работы (напоминаю, что в противном случае она изменит копию, а не сам предмет).
Аноним 12/11/21 Птн 14:36:43 #238 №2210264 
>>2209868
Спасибо, более менее понятно.
В ступор ввел трехстрочный http сервер, где функция принимает ссылку на request и я вообще запутался
Аноним 12/11/21 Птн 21:15:27 #239 №2210823 
>>2210264
Просто всегда используй поинтеры к структурам, зачастую это оправданно.
Аноним 13/11/21 Суб 20:00:11 #240 №2211520 
>>2210823
Бля, это ваше странное ООП еще с толку сбивает. По ощущениям поинтеры максимально похожи на self/this в пистоне
Аноним 14/11/21 Вск 01:24:11 #241 №2211701 
>>2211520
receiver, ты хотел сказать? Да, это буквально тоже самое, что и self/this.
Аноним 14/11/21 Вск 02:18:17 #242 №2211748 
>>2210823
Почему кстати не рекомендуют смешивать в рамках одной структуры передачу по ссылке и значению? От ситуации же должно зависеть
мимо
Аноним 14/11/21 Вск 03:15:08 #243 №2211771 
>>2211748
Думаю это связано с тем, что T и *T вангую макаба съест астериск, там поинтер на Т это разные типы и вполне могут имплементить разные интерфесы, вернее поинтер может имплеменить интерфейс, который значение по поинтеру не имплементит. Соответственно и в ряде случаев просто не имеет смысла использовать значение типов, которые должны быть использованы только через поинтеры. Яркий пример это структуры которые содержат мьютекс или вейтгруппу - их нельзя копировать, т.к. нельзя копировать нижележащие атомики, по тому что это просто не имеет смысла.
Возможно еще по тому, что если ресивер передается в часть методов как поинтер, то он скорее всего и так утечет в хип, а копирование поинтера на каждый вызов всё равно дешевле чем копирование какого-то другого, более сложного, типа.
Возможно просто хотели снизить когнитивную нагрузку, т.к. вложенность методов может быть довольно большая, и в ряде случаев сложно с первого взгляда определить, меняет ли метод внутреннее состояние или нет. А если меняет и где-то в цепочке вызовов был ресивер по значению - всё сломается, т.к. работа будет уже с копией.
Аноним 14/11/21 Вск 14:03:05 #244 №2211957 
А где почитать, у go есть планы по дальнейшему развитию дженериков в следующих за 1.18 версиях?
Что-то я потыкался - прикольно, но пока оно прокатит только для крайне ограниченного числа кейсов. Больше всего не хватает дженериков на методах.
Аноним 14/11/21 Вск 14:04:54 #245 №2211963 
>>2211957
Их так и оставят, а потом задепрекейтят.
Аноним 14/11/21 Вск 14:09:35 #246 №2211965 
Кстати, а есть какие-то объективные причины, почему все жалуются на обработку ошибок в го?

Вот такие как этот
>>2209433

Ладно я, я начинал с си, где нет этих исключений, и у меня вообще нет вопросов.
Еще трогал хаскели и расты.
Почему все писаются от Option в них, а в го та же пара возвращаемых значений - плохо?
Аноним 14/11/21 Вск 14:16:31 #247 №2211972 
>>2211965
Ну в оптион языках, компилятор по голове не погладит за то, что забыл обработать ошибку/нулл, а в го можно хуй забить или забыть и получить ошибку в рантайме. Так думаю.
не знаком ни с одним из этих языков если что
Аноним 14/11/21 Вск 14:24:44 #248 №2211977 
>>2211965
"Все", кто жалуется на обработку ошибок в Go, и "все", кто писается от Option - это две разные непересекающиеся группы людей. На растах-хаскеллях ничего реального не пишут, и интересны они только борщехлёбам, которые и от отсутствия изменяемых переменных в восторге. От сишки-обёртки над ассемблером многого не ждут. А го продвигают чуть ли не как убийцу промышленных языков, при этом не давая их возможностей.
Аноним 14/11/21 Вск 14:34:35 #249 №2211988 
Сап, двощ. После курсов местной конторы есть возможность пройти у них собес на Го-разработчика (на деле фулстака, ибо придётся писать немного логики на фронте). В технологиях числятся Докер, Кубернетис, Постгре, Монго, Редис. Тем кто уже устроился на работу, какие требования были у вашего работодателя и какие вопросы были на собесе?

Я скорее всего завалю ибо тот курс был первый раз когда я вообще написал на языке что-то вменяемое, но почему бы не попробовать?
Аноним 14/11/21 Вск 20:59:29 #250 №2212264 
>>2211957
Главная причина почему не сделали дженерики в методах - это по тому что это усложнит ту часть компилятора и рантайма, который чекает имплементит ли данный тип данный интерфейс. Я не думаю что это что-то принципиально невыполнимое, но пока не ясно нужно ли это вообще кому-либо.
Аноним 14/11/21 Вск 21:03:04 #251 №2212273 
>>2212264
С interface{} на типобезопасность им было похуй, а в дженериках она вдруг понадобилась?
Аноним 14/11/21 Вск 21:32:38 #252 №2212289 
>>2212273
>ещё не понял, что все говносообщество - сборище двуликих пидорасов
Аноним 14/11/21 Вск 21:57:50 #253 №2212313 
>>2212273
Ну, всегда есть места, где нужно принять любой тип, и не важно, что это interface{}, any или Object.
Аноним 14/11/21 Вск 22:42:37 #254 №2212357 
>>2212313
Всегда есть места, где нужно принять за щеку - например в комьюнити Go
Аноним 14/11/21 Вск 22:47:17 #255 №2212359 
Бля, на хедхантере куча джуновских го вакансий, все ищут себе молодых и перспективных.
А в пиндосии также? Или это говно только у нас популярно, потому что быстро и недорого?
Аноним 14/11/21 Вск 22:50:09 #256 №2212363 
>>2212273
При чем тут пустой интерфейс? Я про имплиментацию up-casting/down-casting в компиляторе/рантайме говорю.
Аноним 14/11/21 Вск 22:55:09 #257 №2212368 
>>2212359

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

хз, почему оно так взелетело.
да, язык очень приятный и быстрый, но раст-то круче
Аноним 14/11/21 Вск 22:58:09 #258 №2212369 
>>2212368
>но раст-то круче
сука ты по всей борде меня преследуешь что ли блять...
в /b/ с тобой недавно общались
Аноним 14/11/21 Вск 23:04:54 #259 №2212376 
>>2212368

вот похожие мысли

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

но вот как программист, хотелось бы чего-то более лаконичного, с возможностью каких-то изящных конструкций (раст, скала) и еще большей производительностью
Аноним 15/11/21 Пнд 05:40:33 #260 №2212528 
>>2212368
Поддержка у Go лучше, заходишь в любой сервис (heroku как пример), там сразу список из php/java/node/go, rust'a либо вообще нет, либо поддерживатеся на пол-шишечки.
Аноним 15/11/21 Пнд 07:41:14 #261 №2212539 
>>2212359
Это вакансии танцовщиц go-go тебе в выдачу попали
Аноним 15/11/21 Пнд 08:18:09 #262 №2212542 
>>2212539
Go Go Power Rangers ? ? ?
Аноним 15/11/21 Пнд 14:34:09 #263 №2212921 
Работодателю нужно чтобы я срочно пересел с питона на го, но так как я тупой хуй и никогда со строго типизированными языками не работал, до меня доходит с трудом. Короче мне готовы оплатить курс от инфоцыган. Посоветуйте какой нить не всратый.
Аноним 15/11/21 Пнд 15:01:14 #264 №2212948 
>>2212921
Шварценегера смотри. Но его можно спиздить, а деньги пропить.
https://pro.academind.com/p/golang-the-practical-guide
Аноним 15/11/21 Пнд 18:33:21 #265 №2213203 
15963858261720.png
>>2211988
По самому языку будут спрашивать типовые задачки про слайсы/мапы/стринги/указатели и многопоточность: горутины, каналы и пакет sync. Если не дурак, то за пару дней нагуглишь на том же хабре и вызубришь, мне искать лень, сорян. Дальше обычно не лезут, все остальное скорее всего будет ебкой по сопутствующему стеку: SQL-запрос попросят написать-оптимизировать и что-нибудь про деплой и микросервисы спросят. Но я перекатывался с другого стека сразу на миддла, ко мне отношение изначально менее предвзятое было.
Аноним 15/11/21 Пнд 19:52:44 #266 №2213265 
>>2212921

нахуй инфоцыган
сначала gobyexample, что бы попробовать язык
потом бесплатный курс на степике
Аноним 15/11/21 Пнд 21:39:24 #267 №2213349 
>>2213265
В целом согласен, но в данном случае конторе сильно надо и она готова платить за это, то почему бы и нет?
Другой анон
Аноним 15/11/21 Пнд 21:45:25 #268 №2213354 
>>2213349

Так результат будет хуевый + инфоцыган кормить - моветон.
Аноним 15/11/21 Пнд 22:17:17 #269 №2213367 
советую вкатунам серию от этого чувака
https://www.youtube.com/watch?v=VzBGi_n65iU
Аноним 16/11/21 Втр 13:34:25 #270 №2213866 
>>2211965
В Си можно написать макрос, чтобы не писать один и тот же код для обработки ошибок множество раз, а в Го нет. Поэтому и бугурт
Аноним 16/11/21 Втр 14:37:32 #271 №2213923 
>>2165418 (OP)
Ну и чем го лучше питона?
Аноним 16/11/21 Втр 14:41:05 #272 №2213925 
>>2213923
тем что питон легаси на микросервисах и с него все уходят, работу через пару лет пиздонистом будет сложно найти
Аноним 16/11/21 Втр 15:20:17 #273 №2213966 
>>2213925
Её и пару лет назад было сложно найти. Слишком поздно для бэка, слишком рано для нейроговга.
Аноним 16/11/21 Втр 15:47:22 #274 №2213997 
>>2213925
можно вкатиться к вам, если у меня мак? не могу в линукс совсем
заебало, что полторы вакансии для ios
Аноним 16/11/21 Втр 16:05:57 #275 №2214013 
>>2213997
думаешь, так просто всё? щас главный треда подойдёт, посмотрит кто ты, откуда, чем живёшь-дышишь...
Аноним 16/11/21 Втр 16:25:18 #276 №2214020 
>>2213923
Ничем не лучше и не хуже. Хотя оба языка по заявлению разработчиков универсальные и мультипарадигменные, каждый из них хорош только в своих узких задачах, где чаще всего и применяется. Чем ты занимаешься в IT? CRUDы, наверное, на джанге/фласке+химии проще писать, чем на го.
>>2213997
Не можешь в десктопный линукс или вообще в линукс? Если первое - то всё нормально, сейчас всё равно всё в контейнерах, особенно в го.
Если второе - то тебе стоит задуматься, стоит ли вообще заниматься бекендом, независимо от языка.
Аноним 16/11/21 Втр 17:07:08 #277 №2214048 
>>2214013
как раз и думаю, что все дохуя сложно
что в универе, что после не могу его переваривать, да и он меня
>>2214020
скорее в первый, но я слишком сильно хочу перекатиться из Германии в Новую Зеландию или Нидерланды и только го сейчас выглядит most indemand

Спасибо за внимание
Аноним 17/11/21 Срд 13:50:20 #278 №2214843 
>>2214048
В консольке с brew и другими утилитами работать умеешь? Если не пугает, то велкам, никаких подводных. У нас около половины гоферов — маководы, остальные сидят на линуксах разной степени красноглазия: кто-то как на главной системе, кто-то дуалбутит, а кто-то компилирует ядро прямо в винде через WSL как я, очень хорошо сделали, разве что скорость доступа к виндовым файлам из-за эмуляции ntfs хромает.
Аноним 17/11/21 Срд 14:13:29 #279 №2214895 
Как понять, что микросервис нужно писать на го, а не на петухоне?
Есть к примеру дефолтное круд приложение. Что то забираешь из базы, что то пишешь, и результат отдаешь через апи
Это же никак от быстродействия самого языка не зависит, а только от скорости обработки в бд. Ну если это не хайлоад какой конечно, хотя в кубере можно все разбалансить
Короче, тут наверное много питонистов в прошлом, к вам вопрос, почему вы решили пересесть на го, если 90% задач одинаковые что там, что тут?
Аноним 17/11/21 Срд 14:32:02 #280 №2214927 
>>2214895
На го у нас написана веб морда, которая обслуживает дохуя конектов и делает запросы в другие сервисы с бизнес-логикой на питоне обмазанным типизацией
Аноним 17/11/21 Срд 16:15:49 #281 №2215042 
>>2214927
>питоне обмазанным типизацией
а как так? фастапи?
Аноним 17/11/21 Срд 16:35:23 #282 №2215076 
>>2215042
>а как так? фастапи?
Нет, просто обмазались mypy и окунаем в говно на ревью, если отсутвтуют типы в местах, где они помогают понимать код
Аноним 18/11/21 Чтв 16:49:56 #283 №2216177 
https://github.com/golang/exp/blob/master/slices/slices.go

Сука, ну нахуя они эту тильду сраную сделали? Нельзя было её поведение сделать по дефолту что-ли?
Аноним 18/11/21 Чтв 21:40:57 #284 №2216547 
.png
>>2216177
Какая-то хуйня без задач.
И это насколько ж надо быть душным, чтобы высрать такую простыню. А ещё что-то на "сложные" кресты гонят.
Аноним 19/11/21 Птн 00:41:35 #285 №2216647 
Если я приду на вакансию ГО с другого стека ( sap) с примерно 2-3 года опыта, то меня будут оценивать как вкатыша или как человека? Был у кого такой опыт? что ожидать, сколько просить?
Аноним 19/11/21 Птн 01:59:29 #286 №2216666 
>>2216647
Если умеешь распределенные системы строить то как на нормального человека, если нет то как на вкатыша
Аноним 19/11/21 Птн 02:47:53 #287 №2216674 
>>2216177
>Delete is O(len(s)-(j-i))
кек
Аноним 19/11/21 Птн 05:57:33 #288 №2216719 
чисто теоретически, если у меня два офера от озона и мейлру (вк), то что лучше? inb4 одна хуйня
Аноним 19/11/21 Птн 10:51:43 #289 №2216861 
>>2216674
Ну а ты как хотел? O(len(s)-j)? Практика показала, что мутабельность дороже обходится. Или новый слайс возвращать за деревом удаленных интервалов, чтобы на лету трансляцию индекса делать? Тогда на лукапах по кеш-миссам всосешь.
>>2216719
ВК чуть получше будет, но по факту обе суть зашквар.
Аноним 19/11/21 Птн 11:04:42 #290 №2216877 
>>2216719
По наблюдениям в озоне редкостные чсвшные мудаки работают.
Аноним 19/11/21 Птн 16:52:27 #291 №2217190 
>>2216877
Кодеры в массе своей это и есть чсвшные мудаки. Я в Ciklum сходил когда-то на собеседование, меня там чуть-ли не унижали
Аноним 19/11/21 Птн 22:46:50 #292 №2217493 
>>2216719
Что та хуйня, что это хуйня. Выбирай по задачам, жизнь от одного отдела к другому сильно отличается
Аноним 20/11/21 Суб 04:04:10 #293 №2217586 
>>2214020
Крудами крудами, я почему про go и спросил.
Аноним 20/11/21 Суб 04:52:52 #294 №2217602 
>>2217586
Ну, на го они более вербозные, и дело даже не в обработке ошибок. Но писать можно, и за них платят немного больше чем на других языках.
Из плюсов - неплохой баланс между временем написания и производительностью сервиса. Но как и почти много где - можно немного сдвинуть этот показатель в ту или иную сторону, например используя sync.Pool можно добиться практически полного отказа от аллокаций в хипе ценой сложности написания кода, или использовать пустые интерфейсы+рефлексию, чтобы делать универсальные библиотеки, но ценой производительности.
Но главная особенность го - это всё-таки работа с асинхронностью.
Если всё что тебе нужно - это аналог js-ного Promise.all, то ты, конечно, не ощутишь разницу, в этом плане sync.WaitGroup более неудобная штука. Но зато она даёт куда больше возможностей, особенно в сочетании с каналами.
Аноним 20/11/21 Суб 04:54:14 #295 №2217603 
>>2217602
> Но как и почти много где
Пардон, время позднее, уже плохо соображаю
Аноним 20/11/21 Суб 18:14:03 #296 №2218019 
>>2216719

нах справшиваешь, где больше денег пообещали, туда иди.

ходил с ними общаться, у вк зп пощедрее, а у озона зато щедрые опиционы. остался у всебя, в другой компании из вотвася
Аноним 20/11/21 Суб 18:18:46 #297 №2218022 
>>2216177
>https://github.com/golang/exp/blob/master/slices/slices.go

а я чет не врубаюсь, что тильда делает в определении типа?
гугл подскаживает только битовое не
Аноним 20/11/21 Суб 22:41:46 #298 №2218250 
>>2218022
https://github.com/golang/go/issues/45346
> An approximation ~T is only valid if the underlying type of T is itself T

Смотри, у тебя есть
type MyString string и функция, которая принимает []string
С тильдой ты сможешь использовать эту функцию для []MyString без приведения типа в цикле.
Аноним 21/11/21 Вск 00:19:05 #299 №2218307 
>>2218250
Пиздец дегроды. В нормальных языках вообще никакой разницы нет и никакие тильды не нужны.
Аноним 21/11/21 Вск 00:45:19 #300 №2218329 
>>2218307
Это синтаксическая соль. Сделано специально, чтобы не хотелось юзать дженерики.
А err != nil специально, чтобы не хотелось обрабатывать ошибки
Аноним 21/11/21 Вск 03:32:00 #301 №2218404 
>>2218307
Ну, в целом это нужно для создания энумов, иногда полезно указать, что у нас не просто стринг или инт, а что это какой-то конкретный флаг или ключ, в общем случае тип у которого лимитированное количество валидных значений, как например syscall.Signal или syscall.Errno
Аноним 21/11/21 Вск 20:22:09 #302 №2219087 
Извиняюсь, за скорее всего платиновый вопрос: за полгода можно норм выучиться на джуна, чтобы устроиться? Они вообще нужны? Есть сейчас полгода работы на питоне с асинхронщиной, до этого было совсем чутка java\spring. Просто небольшой анализ вакансий — дохуя лет разработки до и свитч на го или же вообще ничего толком не написано. Поэтому и интересно, когда через полгода буду знать базу, то смогу устроиться куда-нибудь go-джуном?
Аноним 21/11/21 Вск 22:38:02 #303 №2219196 
>>2219087

на го джуны практически не нужны
сам язык простой, но его используют, когда сложность систем уже высока
работай на питончике, пока не почувствуешь себя крепким миддлом, параллельно попробуй втащить на работе какой-нибудь сервис на го, а потом дуй к нам на x2
Аноним 21/11/21 Вск 23:42:56 #304 №2219226 
>>2219196
А мне наоборот пришлось откатиться до богомерзкой джанги, так как платят больше на 50-80к чем на прошлом месте где писал на го сервисы с относительно низкоуровневным сетевым взаимодействием. Однако как мне кажется зря я это сделал, так как стал дико выгорать из-за того что мне это совсем не интересно, ощущение как будто отправили назад учиться в начальную школу лол.
Аноним 21/11/21 Вск 23:59:36 #305 №2219232 
>>2219226
странно, уже второй год гошка рвет всех по зп, кроме скалы

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

а здесь эти сраные solid и clean architecture помноженные на вербозность самого го
Аноним 22/11/21 Пнд 01:07:21 #306 №2219263 
image.png
>>2204869
Идеально описывает место
Аноним 22/11/21 Пнд 16:40:41 #307 №2219630 
Как у вас методы перегружаются? Чет не найду в доке
Аноним 22/11/21 Пнд 16:53:02 #308 №2219639 
>>2219630
Никак. Страдай.
Аноним 22/11/21 Пнд 17:11:08 #309 №2219643 
>>2219630
дженерики юзай
ой, их же до сих пор нет в 2к22
аххахаха блять
Аноним 23/11/21 Втр 21:39:00 #310 №2220773 
>>2219643
Женерики миф, гугл скорее выкинет го нахуй когда его поддержка станет нецелесообразной и сделает что-то новое хайповое, как они это делали уже ни раз.
Аноним 23/11/21 Втр 21:56:12 #311 №2220792 
>>2220773

гошечку уже не выкинут
слишком уж много написано на ней
уже хватает абсолютно всего, со временем появляется и доп. сахар, вроде дженериков
Аноним 23/11/21 Втр 21:57:14 #312 №2220796 
>>2216719
а скок предлагают сейчас?
Аноним 23/11/21 Втр 22:01:32 #313 №2220803 
>>2220792
А уж на коболе сколько написано.
Аноним 23/11/21 Втр 22:16:22 #314 №2220830 
>>2220803
Все таки кобол не за один день выкинули, а вспомни как флеш мучительно умирал, пердел кашлял, но его до последнего порносайты и казино использовали, пока не исчезли браузеры с ним.
Аноним 24/11/21 Срд 00:53:10 #315 №2220959 
>>2219643
>>2220773
Шизик уймись
Аноним 24/11/21 Срд 08:27:19 #316 №2221021 
>>2220803
Немного написано. Когда писали на коболе, айти индустрия была на порядки меньше. Но на коболе написаны некоторые критически важные системы, поэтому он жив и вероятно переживет зумеров.
Аноним 24/11/21 Срд 10:21:15 #317 №2221060 
Придумал охуенную задачу, чтобы попускать годебилов:

Есть джейсонины произвольной структуры. Их надо переложить в другие джейсонины, где все поля объектов с именем "fizz" будут называться "buzz".
Аноним 24/11/21 Срд 10:29:50 #318 №2221064 
>>2221060
Ты случайно не нодежс макака возомнившая себя богом джейсонов из-за пары функций в стандарте языка?
Аноним 24/11/21 Срд 10:36:32 #319 №2221069 
>>2221064
JSON = JavaScript Object Notation

Ноджс-адепты боги джсонов по определению.

Но ты решай, решай, не отвлекайся. Там всего-то джсоны переложить.
Аноним 24/11/21 Срд 11:52:54 #320 №2221140 
>>2221060
С ГОвном тут только свой парсер писать.
Аноним 24/11/21 Срд 12:10:49 #321 №2221148 
>>2221060
Да регуляркой заменить "fizz"\s∗: на "buzz": и не ебать мозг. У вложенных жысонов внутри строк кавычки будут экранированы, так что должно быть правильно. Хуйня задача. Лучше будет смержить два жысона произвольного формата, вот там пиздец, да. Нужно json.RawMessage парсить в map[string]interface{} и дальше рекурсивно спускаться. Енджой ер статик типизейшн, епта.
Аноним 24/11/21 Срд 12:14:03 #322 №2221150 
>>2221069
Так javascript прошивка для json?
Аноним 24/11/21 Срд 12:21:16 #323 №2221159 
>>2221140
Тащемта да. Причем если это будет уже не JSON, а XML то вообще ебать цирк с конями начнется. Дефолтные encoding/xxx либы вообще по-уебански как-то сделаны с этим маршалингом непосредственно в гошные структуры. Для простых случаев может норм, но когда надо с документами вытворять всякое, то случается пук.
Аноним 24/11/21 Срд 12:22:23 #324 №2221160 
>>2221148
{"хуй":"там fizz плавал"}
Аноним 24/11/21 Срд 12:23:53 #325 №2221162 
>>2221148
Fizz-buzz это так для разминки. В реальных задачах такими костылями не отделаешься.
Аноним 24/11/21 Срд 12:27:44 #326 №2221165 
>>2221060
>>2221140
>>2221159
А кто-то действительно пишет на говне что-то кроме веб-морд и прочего сетевого говна? Он же совсем невыразителен для чего то кроме этого, не дай бог на нем бизнес-логику писать
Аноним 24/11/21 Срд 12:42:57 #327 №2221171 
>>2221165
У нас так его взяли для бэка, ведь хайпово, молодежно, быстро и надежно, и вообще бэк только хатэтэпе-методы дергает, а оказалось что таки да, надо ещё кое-какую бизнес-логику там крутить.
Аноним 24/11/21 Срд 13:23:04 #328 №2221193 
>>2221160
Условие перечитай, дебик.
> поля объектов с именем "fizz" будут называться "buzz"
Поля с именем, а не значения полей, содержащих подстроку.
>>2221162
Ну вот я тебе получше задачу дал, более практическую: смержить два жысона. Типа {"foo":{"bar":1}} ⨁ {"foo":{"baz":2}} ≡ {"foo":{"bar":1,"baz":2}} На любом языке с статической типизацией это боль подобное реализовывать.
Аноним 24/11/21 Срд 14:11:43 #329 №2221246 
>>2221193
> Нужно json.RawMessage парсить в map[string]interface{} и дальше рекурсивно спускаться.

Тут надо делать структуры, в которые раскладываются разобранные жсонины, по типу как DOM для XML, и делать функцию для слияния, которая из двух таких создает третью. Обычный map[string]interface{} например будет проебывать порядок полей.
Аноним 24/11/21 Срд 14:14:50 #330 №2221249 
>>2221246
> Обычный map[string]interface{} например будет проебывать порядок полей.
> An object is an unordered set of name/value pairs. https://www.json.org/json-en.html
Че?
Аноним 24/11/21 Срд 14:27:49 #331 №2221258 
>>2221249
Похуй на спеку, по факту порядок полей в жсонинах существует.
Аноним 24/11/21 Срд 14:54:08 #332 №2221272 
>>2221258
Пиздос. Не хотел бы я после тебя проект поддерживать...
Аноним 24/11/21 Срд 14:59:46 #333 №2221279 
>>2221272
Знаешь, жсонины иногда читают люди, а иногда даже суют из в diff. И тут ты такой: а срать мне на ваш порядок полей, в спеке не написано, щас всё перемешаю к хуям собачьим и хавайте что дали.
Аноним 24/11/21 Срд 15:02:46 #334 №2221282 
>>2221279
Но ведь в джейсоны сериализуют хешмапы, а там ключи по определению абы как.
Аноним 24/11/21 Срд 15:08:17 #335 №2221287 
>>2221282
Да как бы далеко не всегда. Чаще всего в них самые обычные бизнес-данные типа профайлов пользователей. Так-то похуй, в каком порядке поля, но если вдруг надо будет продиффать два таких документа, то лучше чтобы порядок имелся.
Аноним 24/11/21 Срд 15:10:40 #336 №2221289 
>>2221287
Тогда нехуй в виде ключей в мапе хранить.
Аноним 24/11/21 Срд 15:15:24 #337 №2221295 
>>2221287
Ну вот когда диффать потребуется, тогда на лету и канонизируешь через jq --sort-keys, а до этого нехуй требовать выдуманную из пизды дополнительную структуру, спекой не предусмотренную.
Аноним 24/11/21 Срд 15:25:26 #338 №2221306 
>>2221295
> jq --sort-keys
Как же оно сортирует поля, если порядок спекой не установлен. Хмм...
Аноним 24/11/21 Срд 15:31:41 #339 №2221308 
>>2221306
Вот вам наше джейсон апи. Требования к клиенту: он должен быть написан на жс или другом языке для даунов, где объекты по спеке не итерируемы но фактически соблюдается порядок ключей при сериализации в ждейсон...
Аноним 24/11/21 Срд 15:49:30 #340 №2221316 
>>2221306
Лексиграфически, епта. Спека не устанавливает порядок полей, поэтому сериализовать можно как угодно. Строго говоря, это всего лишь костыль имеено что для наколеночного диффа, т.к. для каноникализации этого недостаточно, нужно иначе убирать половину флоатов и все эскейп последовательности, кроме кавычек.
Аноним 24/11/21 Срд 16:42:34 #341 №2221342 
>>2221159
>Для простых случаев может норм, но когда надо с документами вытворять всякое, то случается пук.
Хуйню спизданул.
Аноним 24/11/21 Срд 19:21:28 #342 №2221485 
>>2221308
Кстати не знаю как json, но fmt пакет сортирует ключи мапы.
Аноним 24/11/21 Срд 22:38:55 #343 №2221578 
бля когда уже там 1.18....
Аноним 24/11/21 Срд 22:43:08 #344 №2221583 
>>2221578
Пока не релизнули, существует шанс больше нуля, что их выпилят обратно.
Аноним 25/11/21 Чтв 00:24:05 #345 №2221656 
>>2221583
Хейтер, спок. Наслаждайся последними деньками с возможностью высраться на тему дженериков, скоро будет неактуально
Аноним 25/11/21 Чтв 00:27:56 #346 №2221658 
>>2221656
А может я перестану быть хейтером, когда сабж станет похожим на привычные мне языки, кто знает.
Аноним 25/11/21 Чтв 00:31:44 #347 №2221662 
>>2221658
А зачем делать еще одину жабу, шарпы, котлин или тайпскрипт? или что ты там котируешь? Пусть лучше будет куча языков, хороших и разных.
Аноним 25/11/21 Чтв 06:56:23 #348 №2221751 
>>2221662
Вот это плюсую. Две пагубные тенденции имеют место быть
Чтобы все языки были похожи 1 в 1
Быть программистом язык нейм, а не просто быть программистом.
Аноним 25/11/21 Чтв 10:55:38 #349 №2221858 
>>2221751
Программист одного фреймворка > программист одного языка > программист
Аноним 25/11/21 Чтв 11:03:42 #350 №2221863 
>>2221858
Птушкин, плиз, пиздуй в свою бурсу к корешам бухать .
Аноним 25/11/21 Чтв 11:11:43 #351 №2221867 
>>2221662
Жаба старая, котлин не нужен (фичи котлина переносят в jdk, а теперь еще loom в превью), шарпы забивают на обратную совместимость и закрыли себе дорогу в энтерпрайз (кроме Windows-house компаний), тайпскрипт это попытка мелкомягких подмять под себя js хипстеров(EEE).
Го единственный современный язык, который массово принял бизнес и инвестирует в него ресурсы
Аноним 25/11/21 Чтв 11:25:55 #352 №2221877 
>>2221867
>Го единственный современный язык, который массово принял бизнес и инвестирует в него ресурсы

В последние годы Го развивается с той же скоростью, что и жаба в период с 6 по 8 версии, то есть почти никак. Так что не знаю, какая тут современность. Вот если дженерики будут вменяемые, то уже да, значительный шаг вперед.
Аноним 25/11/21 Чтв 11:38:49 #353 №2221885 
>>2221867
>Жаба старая
Тем не менее на ней очень много всего пишется, да и в чем старость? Стримы есть, лум наверняка будет к следующему LTS или через один LTS, для всякой энтерпрайзной еботни вроде банков, финтехов, ритейла, где куча бизнес-логики и нужна поддержка десятилетиями, это отличный вариант, как ни крути.
Аноним 25/11/21 Чтв 12:00:52 #354 №2221896 
>>2221863
А что не так? Узкий специалист всегда будет знать в своей области поболе челов, которые распыляются на 100500 языков.
Аноним 25/11/21 Чтв 12:29:18 #355 №2221919 
>>2221896
Нет. Челы делятся на тех кто развивается и тех кто остановился в развитии. Раньше например среди пыхарей было много CMS простофиль, времена меняются, теперь полно непробиваемых laravel + vuejs кулибиных. Их попроси сделать сервис конвертации видео, они начнут его делать на пхп очередях просто потому что они встроены в ларавел.
Аноним 25/11/21 Чтв 20:51:56 #356 №2222374 
А здесь вакансии можно писать?
Ищу себе в команду аутистов в области edtech 2 мидл+ гоферов, можно в офис мск/питер, можно чистая удаленка, новенький макбук, дмс, полный список уже обычных для всех компаний плюшек.
вилка 200-400, в зависимости от левела, для рокстаров - обсудим отдельно

если интересно - пишите на [email protected]
я вас перенаправлю на херочек, которые проведут по процессу найма
а то они блин деревьев в лесу сами не найдут
Аноним 25/11/21 Чтв 23:29:07 #357 №2222472 
>>2221165
Я в банке работаю, у нас дохера всего на го, от обработки транзакций, до всяких бизнесовых приколюх, акций и тп.
Полёт нормальный.
Аноним 25/11/21 Чтв 23:33:38 #358 №2222474 
>>2221060
Примерно одинаково на всех языках будет написано. В го можно смапить json'ину в map[string]interface{} и рекурсивно пройтись по всему этому говну с коллбеком `func (obj interface{})`, где можно поменять исходную мапу. Работать будет в целом нормально, пока json не раздуется до тех размеров, когда придется потоковый процессинг писать.
Аноним 26/11/21 Птн 01:15:12 #359 №2222512 
>>2221165
Девопс, пчёл. В сравнении с питоновским/пхпшным/перловым/башевым говнокодом админов - вообще сказка
Аноним 26/11/21 Птн 01:36:00 #360 №2222517 
>>2222512
Ога, бинарные скрипты с километровыми исходниками, которые хуй по-быстрому поправишь, просто топчик.
Аноним 26/11/21 Птн 03:15:52 #361 №2222529 
>>2222517
А кашу на баше или перловку ты охуенно быстро правишь, да?
Аноним 26/11/21 Птн 08:07:11 #362 №2222597 
>>2222529
Да, только не перл, а питон. Там кто угодно разберётся и поправит быстро. Кроме тебя, видимо.
Аноним 27/11/21 Суб 00:20:02 #363 №2223136 
>>2222472
Что за банк? Сбер/Тиньк?
Аноним 27/11/21 Суб 20:45:19 #364 №2223771 
>>2223136
врядли, у них все процессинги уже дервние, на джавах/скалах

хотя гошка есть и у тех, и других, но на небанковыских направлениях
Аноним 27/11/21 Суб 23:28:59 #365 №2223882 
wtf.png
>>2205661
какой ещё нахуй паблик у них в тесте
Аноним 27/11/21 Суб 23:56:12 #366 №2223903 
>>2223882
Это то что не приват
Аноним 28/11/21 Вск 18:18:25 #367 №2224525 
Наконец нашлось достойное применение для достойного языка
https://www.youtube.com/watch?v=ZACOc-NwV0c
Аноним 28/11/21 Вск 19:03:11 #368 №2224609 
изображение.png
>>2224525
Лол
Аноним 28/11/21 Вск 19:53:53 #369 №2224630 
>>2224525
Эх, тянка похожа на мою школьную еот
Аноним 28/11/21 Вск 19:56:50 #370 №2224636 
>>2224630
Видимо ты не до конца понял, для чего нужна штука, которую она рендерит
Аноним 28/11/21 Вск 20:59:32 #371 №2224674 
>>2222374
Зачем тебе в команде аутисты? (99% посетителей этой доски)
Аноним 28/11/21 Вск 21:54:09 #372 №2224721 
>>2224674
я сам аутист
мне будет с такими же как я комфортно работать
не кабанчиков же мне нанимать
Аноним 29/11/21 Пнд 02:11:51 #373 №2224873 
>>2224721
А аутисты проект двигать смогут? У нас на крупные фичи раз в пару месяцев общий сбор и обсуждение на 1-2 часа.
Аноним 29/11/21 Пнд 06:53:44 #374 №2224898 
как менять стек, если гандоны с hh пишут про опыт ПЩ не меньше года. Понятно что для некоторых это не очень принципиально, но тем не менее. Мне что сражаться за место с вчерашними студентами имея опыт коммерческой разработки в несколько лет?
Хочу в начале след года ( до весны) сменить стек, сейчас вот начал к ГОвну присматриваться
Аноним 29/11/21 Пнд 10:30:56 #375 №2224934 
>>2224898
pop <старый_стэк>
push <новый_стэк>
Аноним 29/11/21 Пнд 11:58:36 #376 №2225015 
>>2224898
Когда менял стек я соврал про 1.5 года опыта на го. Какая разница, если я всё равно знал как CRUDы писать на го и писал их на других языках?
Аноним 29/11/21 Пнд 12:22:56 #377 №2225027 
>>2225015
в резюме у тебя что написано то, что работал у Кабан Кабаныча на ГОвне? нет ведь
хотя я тоже могу скромно написать что просто бэкэндером провеслал 2 года
Аноним 29/11/21 Пнд 12:26:14 #378 №2225028 
>>2224898
C какого стека уходишь? Если с пхп или питуна, то перекатиться легко, сейчас полно проектов, которые решили зачем-то переписать с них на ГО.
Аноним 29/11/21 Пнд 12:39:51 #379 №2225035 
>>2225028
SAP opentext, писал круды все как полагается. Но оставаться и дальше на этой поделке нет желания, потому что развития я тут не вижу
Аноним 30/11/21 Втр 18:31:10 #380 №2226142 
>>2219232
>solid и clean architecture
А я думал в сообществе Го мартиновский буллшит котируется меньше, чем в других стеках.
Аноним 30/11/21 Втр 18:33:24 #381 №2226143 
Как гошный GC трейсит через нетипизированные указатели (unsafe.Pointer). Например, есть unsafe.Pointer на структуру, в которой тоже есть указатели. Как GC их определяет?
Аноним 30/11/21 Втр 18:49:31 #382 №2226150 
>>2226143
Они только для тебя нетипизированные.
Аноним 30/11/21 Втр 18:57:01 #383 №2226157 
>>2226150
Не мог бы ты раскрыть? Ты хочешь сказать, что для них в рантайме отслеживается тип того, на что они указывают? Насколько я знаю, размер unsafe.Pointer - честный один указатель и объекты в Го не имеют префикса с указателем на RTTI (как в Java/C++). Как же это тогда работает?
Аноним 30/11/21 Втр 19:05:53 #384 №2226165 
>>2224898
Мне кажется, в этом плане ПЩ сейчас, наоборот, самый дружелюбный к перекатывальщикам. Если в резюме не хватает баззвордов, можно вспомнить всё говно, с которым ты работал, не зависящее от языка (Я кэп, да).
Аноним 30/11/21 Втр 19:09:27 #385 №2226167 
>>2165418 (OP)
добавьте в шапку эту писанину китайца - https://go101.org/article/101.html
оно стоит того
Аноним 01/12/21 Срд 00:53:37 #386 №2226452 
>>2224898
Так изи же, сменил Java->Go с х2.5 без коммерческого опыта на говне
Аноним 01/12/21 Срд 12:53:48 #387 №2226608 
>>2165418 (OP)
Без коммерческого опыта вообще не вкатиться?
Аноним 01/12/21 Срд 13:03:32 #388 №2226620 
>>2226608
Да.
Аноним 01/12/21 Срд 13:12:56 #389 №2226627 
>>2226620
Но я не хочу работать на джаве...
Аноним 01/12/21 Срд 13:24:41 #390 №2226638 
>>2226627
Так и не работай на ней.
Аноним 01/12/21 Срд 13:31:26 #391 №2226644 
>>2226638
Если бы рынок дотнета не был полной залупой, то даже бы не раздумывал. Но увы, в го меня не пустят, а остается пыха или джава
Аноним 01/12/21 Срд 22:44:51 #392 №2227159 
>>2226608
Вкатиться реально, и даже легче чем в js/питон, т.к. говнокурсов по го не так и много и он не так популярен среди вайтишников, а компаниям нужны ждуны
Аноним 01/12/21 Срд 22:49:33 #393 №2227164 
>>2226143
Ну что же вы, гоферы... Кто-то же должен знать, здесь же элита всея российского IT сидит.
Аноним 02/12/21 Чтв 00:28:56 #394 №2227229 
>>2227159
Что знаешь? Что можешь сделать? Как учил?

Мимо вкатун
Аноним 02/12/21 Чтв 02:01:58 #395 №2227262 
Screenshot20211201221100.png
>>2226143
Не читал особо код рантайма, может там что-то по другому работает, чем для обычных кодеров (хотя я сомневаюсь), но в общем случае с unsafe.Pointer'ом мало что полезного можно сделать. Но если мы точно знаем что это поинтер на интерфес (например пустой) - из него мы можем получить реальный тип
Аноним 02/12/21 Чтв 11:32:54 #396 №2227366 
>>2226644
Пару раз в год появляются вакансии на джуна без коммерческого опыта, так что шансы есть. Ждать придется долго. А может и нет.
Аноним 02/12/21 Чтв 11:39:31 #397 №2227370 
Вкатываюсь к вам с Битрикса. 70к для меня стало маловато, хочу 370к. Есть норм книга по алгосам и штоб примеры были на го?
Аноним 02/12/21 Чтв 19:14:16 #398 №2227795 
Go - это карьерный выбор хуевого мыдла.

Джунов туда не берут, сеньор на других языках будет получать больше (ибо куча опыта обнулится ради хуй знает чего), вот и остается куче дурачков, которые не смогли на своем исходном стеке быть успешными, конвертиться в GOвноедов, сражающихся на арене ради 200к пример есть даже в рашке - см. озон где полтысячи говноедов работают за такую зепе над обосанным магазином резиновых тапок, зато на GO ПИШУТ


В общем, если вы посредственность - отличный язык, всем остальным не рекомендую.
Аноним 02/12/21 Чтв 20:00:17 #399 №2227826 
>>2227795
Java - это карьерный выбор хуевого мыдла.

Джунов туда не берут, сеньор на других языках будет получать больше (ибо куча опыта обнулится ради хуй знает чего), вот и остается куче дурачков, которые не смогли на своем исходном стеке быть успешными, конвертиться в Javaдебилов, сражающихся на арене ради 200к пример есть даже в рашке - см. озон где полтысячи Javaдебилов работают за такую зепе над обосанным магазином резиновых тапок, зато на JAVE ПИШУТ


В общем, если вы посредственность - отличный язык, всем остальным не рекомендую.
Аноним 02/12/21 Чтв 20:11:36 #400 №2227828 
>>2227795
Java-петух пригорел
У гоферов ЗП на уровне джавы, пыхи джээсы и питоны оплачиваются ниже.
Пиздуй поддерживать абстрактное легаси говно в говнобанке, раб
Аноним 02/12/21 Чтв 21:30:30 #401 №2227864 
>>2227826
Всё так.
мимо жаба господин 200к/сек
Аноним 02/12/21 Чтв 22:14:57 #402 №2227890 
>>2227826
>>2227828
>>2227864

Почему если кто-то пишет плохое про Го, то это обязательно джавист? Я, конечно, знаю джавистов, которым не нравится Го (в их числе есть те, кто даже писал в проде на Го), но ведь всяких сишарперов, а тем более питухонеров и пыхеров Го должен волновать сильнее.
Аноним 02/12/21 Чтв 22:20:05 #403 №2227892 
>>2227795
Как будто нельзя писать на нескольких языках, на всех проектах бек был на 2-3 языках написан.
Аноним 02/12/21 Чтв 23:00:11 #404 №2227922 
>>2226608
вкатиться, со мной в отделе работает 30-летний вкатун после курсов. мне никто не поверит, конечно...
Аноним 03/12/21 Птн 01:08:26 #405 №2227968 
image.png
я обязательно перекачусь на ПЩ с 2 годами опыта другого языка
Аноним 03/12/21 Птн 01:37:53 #406 №2227976 
>>2227795
>Джунов туда не берут
Меня взяли
Аноним 03/12/21 Птн 06:11:34 #407 №2228018 
>>2227968
Так ведь изи же. Я с 2 годами опыта на тайпскрипте получил 3 офера с 3 собесов
Аноним 03/12/21 Птн 06:29:35 #408 №2228021 
>>2228018
ну вот в январе начну бегать по собесикам, сейчас гошечу пока подтяну
скажи гит свой( если есть)показывал кому нибудь на этих 3 собесах? и просили ли тебя ин риал тайм решать задачу
Аноним 03/12/21 Птн 06:37:05 #409 №2228022 
>>2228021
> сейчас гошечу пока подтяну
Обрати внимание на асинхронность, и работу со встроенными типами, в т.ч. что происходит при работе с нулевыми значениями разных типов
> скажи гит свой( если есть)показывал кому нибудь на этих 3 собесах?
Указан в резюме, но там на го ничего не было, да и на других языках там хелоуворолды разного уровня встратости. Но да, 2-х летней давности.
> и просили ли тебя ин риал тайм решать задачу
Почти на всех собесах давали небольшое тестовое задание уровня CRUD сервис запилить. На одном из собесов дали 10 снипитов уровня https://habr.com/ru/company/vk/blog/314804/ и спрашивали что выведет, но нигде прям лайфкодинга не было
Аноним 03/12/21 Птн 10:20:13 #410 №2228061 
image.png
image.png
image.png
image.png
Ну и что с этим Govnom делать? Три стажерские вакансии на всю Москву? И куда эти вкатуны с курсов идут? Я вот студент и в принципе не могу вкатиться в этот чудный язык, так как в Яндексе у меня уже бан на полгода, в озоне нужно 40 часов батрачить, а в wildberries меня просто игнорят, лол.
Аноним 03/12/21 Птн 10:48:28 #411 №2228085 
>>2228061
Да что ты говоришь? Целую стандартную пятидневку? Вот изверги!
Аноним 03/12/21 Птн 11:26:37 #412 №2228133 
>>2228085
Меня числанут из шараги нахуй, если я буду фулл пятидневку работать.
Аноним 03/12/21 Птн 11:27:41 #413 №2228134 
>>2228133
велика потеря
Аноним 03/12/21 Птн 11:28:22 #414 №2228136 
>>2228134
Ну да, просрать 2.5 года жизни, кучу нервов и денег впустую, чтобы просто числануться без сраной бумажки в итоге.
Аноним 03/12/21 Птн 11:30:03 #415 №2228140 
>>2228136
бедный ребенок(
Аноним 03/12/21 Птн 22:38:15 #416 №2228687 
>>2227795
Миддлы на го сейчас порядка 250 получают
мимо
Аноним 06/12/21 Пнд 09:42:56 #417 №2230611 
Чтож, начинаем перекат в ГОvno с жабы...
Аноним 06/12/21 Пнд 09:52:54 #418 №2230614 
>>2230611
Да, это правильно, не как некоторые с нуля пытаются вкатиться в язык для миддлов без опыта.
Аноним 06/12/21 Пнд 15:21:53 #419 №2230892 
В каких случаях нужно использовать буферизованный канал, в каких не буферизованный канал? Как подобрать размер буфера?
Аноним 06/12/21 Пнд 19:11:23 #420 №2231124 
Чому гошники столько получают? Он же проектировался, как язык для тупых, по словам его автора...
Аноним 06/12/21 Пнд 19:11:51 #421 №2231125 
Чому гошники столько получают? Он же проектировался, как язык для тупых, по словам его автора...
Аноним 06/12/21 Пнд 19:21:00 #422 №2231133 
>>2231124
Потому что в силу простоты делают больше задач для бизнеса, а не меряются сложностью языка и количеством легаси, как жабошарпобляди.
Аноним 06/12/21 Пнд 19:48:23 #423 №2231144 
>>2230614
>>2231133
Двощую, сам перекатываюсь из жабы в Го, так как в жабу меня тупо не взяли. Отсылал резюме в 200 контор, откликнулись 15, из которых на собес меня пригласили 11. Все собесы завалил.
Теперь учу новый стек.
Аноним 06/12/21 Пнд 20:22:35 #424 №2231161 
>>2231144
Ну ты и лошок
Аноним 06/12/21 Пнд 20:43:14 #425 №2231174 
>>2231144
> меня пригласили 11. Все собесы завалил.
Где вы такие собесы находите, жесть
Аноним 06/12/21 Пнд 20:45:58 #426 №2231177 
>>2228061
> а в wildberries меня просто игнорят
Ну и правильно, нехуй там делать
Аноним 06/12/21 Пнд 21:04:05 #427 №2231195 
>>2231177
Почему, а где хуй делать?
Аноним 06/12/21 Пнд 21:26:19 #428 №2231218 
>>2231195
https://vc.ru/trade/182301-it-specialisty-wildberries-zhaluyutsya-na-massovye-uvolneniya-a-marketpleys-ih-otricaet
год назад такая хуйня была, короче к тебе будет отношение такое же как и к грузчикам на складе
Аноним 06/12/21 Пнд 21:33:58 #429 №2231232 
>>2231218
Так все правильно. Какое ещё может быть отношение к взаимозаменяемой печатающей мартышке.
Аноним 07/12/21 Втр 00:34:49 #430 №2231359 
>>2231133
Блин, а что, так можно было? Почему тогда ещё не всё новые бэкенды пишутся на Го?
Аноним 07/12/21 Втр 00:38:26 #431 №2231362 
>>2231359
Потому что ещё нет такого количества разрабов на го, а у крупных организаций нет ресурсов на замену жабошарпоблядей гоферами, вот и приходится писать на том, что все знают.
Аноним 07/12/21 Втр 10:16:07 #432 №2231459 
>>2231144
>>2231174
да просто. хр ищет по ключевым словам и шлёт на техсобес,
а там скучающие "техлиды" доёбываются до всякой хуйни, которую вчера в гугле вычитали
мимокрок
Аноним 07/12/21 Втр 12:31:26 #433 №2231558 
>>2230892
> В каких случаях нужно использовать буферизованный канал
В общем случае - когда ты хочешь делать select+send/receive с дефолтом, чтобы не зависать на этой операции, если на другом конце слоупочат. Воспринимай этот тип канала как внешнюю очередь сообщений.
>в каких не буферизованный канал
Во всех остальных случаях, т.е. когда нужно синхронное взаимодействие по аналогии с http-запросом
> Как подобрать размер буфера?
В большинстве случаев это либо 1, либо по количеству горутин, которые могут туда записать сообщение, это может быть удобно, когда нам нужно получить только самый первый результат или самую первую ошибку (т.е. мы читаем из канала только один раз), но при этом не создав утечку горутин.
Бывают еще экзотические варианты, вроде вебсокет-чатов, где имеет смысл брать большие буферы под каналы для отправки контента конкретному пользователю, но там значения подбираются экспериментально, обмазывайтесь логами и мониторингом.
Аноним 07/12/21 Втр 20:49:52 #434 №2232065 
Норм язык для вката или джун никому не сдался ?
Аноним 07/12/21 Втр 20:52:31 #435 №2232068 
>>2232065
Джун никому не сдался. Поработай жабамакакой пару лет и можешь вкатываться.
Аноним 07/12/21 Втр 20:59:47 #436 №2232075 
>>2232068
Джава мертва
Аноним 07/12/21 Втр 21:21:21 #437 №2232094 
Джава не мертва, но популярность JVM платформы постепенно падает, особенно для новых проектов.
Это связано не с тем, что джава хуевый язык или платформа говно, а потому что сейчас все становится cloud native. Нужно уметь быстро запускать небольшие сервисы, а не ждать по 3 часа, пока спринг фреймворк будет делать свою подготовительную магию.
Решением был бы quarkus/micronaut вместе с graalvm, только вот проблема в том, что со спринга очень тяжко перейти на новый фреймворк. По сути большая часть джава проектов намертво увязла в спринге, который годится для классических старых серверов с виртуалками, расположенных где-то в датацентре банка, а не для сервисов, крутящихся где-то там в амазоне.
Аноним 07/12/21 Втр 21:27:32 #438 №2232103 
>>2232094
> что со спринга очень тяжко перейти на новый фреймворк
Поэтому надо всё выбрасывать и писать с нуля на другом языке языке без инфраструктуры.
Аноним 07/12/21 Втр 21:30:22 #439 №2232107 
jatnik.png
>>2232103
>ваааа бля стабильность
Аноним 07/12/21 Втр 21:36:53 #440 №2232112 
>>2232107
- Ты видишь работу на голанге?
- И я не нет. А она есть...
Аноним 07/12/21 Втр 21:44:06 #441 №2232119 
>>2232103
Так никто не выбрасывает спринг и джаву в частности. Что уже написано на них - дальше поддерживается. Однако с новыми проектами уже не все так очевидно.

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

>>2232112
Да еще где-то полгода назад работы было меньше, сейчас даже в таких концентраторах джавистов вроде сбера и тинька появилось довольно много голанг вакансий.
Аноним 08/12/21 Срд 00:08:31 #442 №2232187 
>>2232119
>прорывные проекты по части инфраструктуры
Это что такое например?
Аноним 08/12/21 Срд 02:50:15 #443 №2232228 
999.JPG
Объясните пож, что тут происходит. Гуглил много и ничего похожего не нашёл.
Как это можно использовать? Похоже на интерфейс, но вроде не он
Аноним 08/12/21 Срд 03:21:07 #444 №2232230 
>>2232228
>Гуглил много и ничего похожего не нашёл.
чел, я даже не программист и то понял
гугли golang struct
Аноним 08/12/21 Срд 03:21:24 #445 №2232232 
>>2232228
Это какая-то дич.
Аноним 08/12/21 Срд 04:01:39 #446 №2232237 
>>2232094
> Это связано не с тем, что джава хуевый язык или платформа говно
Нет, связано. Страшно подумать сколько они денег потратили в GC, а всё-таки с аллокациями на стеке это никогда не сравниться. Да и платформа является ненужной абстракцией, в реальности никому не нужно использовать один и тот же билд на железе разной архитектуры ну, кроме как в разработке под андроид
Аноним 08/12/21 Срд 04:08:03 #447 №2232238 
>>2232228
> что тут происходит
По одной структуре не могу наверняка сказать, но думаю что говнокод.
> Как это можно использовать?
Создаешь в замыкании подключение, потом опять же в замыкании суешь реализации этих функций в структуру, а затем возвращаешь структуру. Профитов никаких, кроме того что используешь "функциональные" подходы вместо ООП. Вангую написано каким-то студентом с JS-ом головного мозга
Аноним 08/12/21 Срд 10:35:09 #448 №2232275 
>>2232187
Всякие фреймворки для бигдаты, распределенных систем и клауда.
Тот же zookeeper, hadoop, cassandra, spark, elastic, стек нетфликса - все это требовало огромных вложений как денег, так и людских ресурсов. Сейчас уже основной стек технологий написан, и остается только его поддержка, которой может любой индус заниматься, а не только дяди с пхд по распределенным системам.
Аноним 08/12/21 Срд 11:19:07 #449 №2232300 
Как же душно написаны статьи, особенно русские, просто пиздец. Человек сеньор-goвножор пишет базовые примеры, которые сам бы никогда не писал. Лезешь в репы и глаза на затылок лезут.
Почему про реальные программы никто не пишет? Я к примеру, до сих пор не понимаю где лучше хранить url для запросов к другим апи - в самом коде или каком-то отдельном файле. Писать отдельные методы для каждого запроса или просто подгрузить конфиг из какого-нибудь json, один хер эти запросы не меняются кроме пары ключей. Ничего этого нет.
90% статей в айти - как написать хеловорлд.
Аноним 08/12/21 Срд 12:27:47 #450 №2232337 
image.png
И почему ты еще не вкатился анон?
Аноним 08/12/21 Срд 12:58:54 #451 №2232365 
Куда вкатываться?

https://strawpoll.com/w4crg6d7k
Аноним 08/12/21 Срд 16:16:27 #452 №2232522 
>>2232337
да вот взял отпуск на декабрь, посижу нг выходные и пойду по собесикам бегать в поисках своей сотыги! а там глядишь и сбегу от своего кабана к другому но уже на ГОвне
Аноним 08/12/21 Срд 16:28:54 #453 №2232531 
>>2232337
Что значит agile для обычного разработчика?
Аноним 08/12/21 Срд 16:41:48 #454 №2232538 
>>2232531
Ничего не значит. Просто есть категория шизиков, которые каким-то образом умудряются найти связь между гитом, микросервисами и эджайлом.
Аноним 08/12/21 Срд 18:13:57 #455 №2232624 
Сто значит микросервисы? Если, к примеру, просто разделить проект на более мелкие, которые общаются между собой вебхуками, это считается за микросервис? Или там обязательно должен использоваться grps, протофацлв и пр?
Аноним 08/12/21 Срд 18:22:38 #456 №2232635 
>>2232531
Переработки.
Аноним 08/12/21 Срд 20:03:46 #457 №2232691 
>>2232275
>zookeeper, hadoop, cassandra, spark, elastic
Это всё инфраструктура и никогда обычными бэкенд-девами не писалось. То, что это всё написано на Джаве, еще не значит, что ковырятели Спринга имеют к этому отношение.
Аноним 08/12/21 Срд 20:04:39 #458 №2232692 
>>2232691
>>2232275
>то, что это всё написано на Джаве
Хер знает зачем, кстати.
Аноним 08/12/21 Срд 20:28:50 #459 №2232707 
>>2232624
>Если, к примеру, просто разделить проект на более мелкие, которые общаются между собой вебхуками, это считается за микросервис?
Если различия только в этом, то это распределенный монолит, микросервисы должны быть потенциально независимы друг от друга, в том числе и в плане масштабирования
Аноним 08/12/21 Срд 20:42:13 #460 №2232712 
Go для вката язык не сложный ? Я вообще не представляю как программирование происходит
Аноним 08/12/21 Срд 20:52:40 #461 №2232718 
>>2232712
Сложный
Аноним 08/12/21 Срд 21:12:06 #462 №2232725 
>>2232531
В большинстве случаев нихуя, но иногда в этом свои приколы, тут от компании зависит и от того что пилится и как. Где-то это всё хуйня, Миша, давай по новой и так каждый спринт, жизнь в вечной переделке. Где-то должны обосраться но успеть всё в спринт и похуй что у тебя жена рожает, Сычёв. Где-то это как в книжке написано плиннинг в начале, ретро и демо в конце, промежуточные синки, дейлики, 1+1, разноцветные стикеры миро, 2 часа обсуждать сколько сторипоинтов будет перекрасить синюю кнопку в зелёную и прочая залупа, а в перерывах между созвонами в зуме пилишь хоть какой-то код. Где-то это упирается в то что хуй чего по быстрому сделаешь в команде, у Ололоева на этот спринт задачи есть, а то что тебе сейчас нужно будет заложено в следующий спринт через 2 недели.
Аноним 08/12/21 Срд 21:14:16 #463 №2232726 
>>2232337
Надо будет им написать)
Аноним 08/12/21 Срд 21:14:22 #464 №2232727 
>>2232718
А если у меня за плечами делфи, перл, питон и с++?
Аноним 08/12/21 Срд 21:15:20 #465 №2232728 
>>2232727
Тогда почему ты такие вопросы задаешь?
Аноним 08/12/21 Срд 21:20:33 #466 №2232732 
>>2232728
Я другой анон. Просто если еботня как с растом или с++, то не очень хочется связываться.
Аноним 08/12/21 Срд 21:21:50 #467 №2232733 
>>2232707
Ну, они вполне независимы, со своими бд. Просто для того чтоб работал один сервис, должна приходить информация от другого. К примеру, один считывает данные с сайта и отправляет его в пользование другим сервисам, которые выкладывают её каждый на своём сайте.
Или это должны быть вообще несвязанные между собой вещи? Так это совсем разные проекты получается, а не микросервисная архитектура, если они каким-то образом должны работать, если отвалилась основная.
Аноним 08/12/21 Срд 21:22:40 #468 №2232734 
>>2232732
Если сравнивать с питоном и любям языком где есть ооп, то го отличается кардинально.
Аноним 08/12/21 Срд 22:05:24 #469 №2232754 
>>2232734
>Процедурныя язык
>Сильно отличается от языков с поддержкой ооп
Ебало этого говноеда представили?
Аноним 08/12/21 Срд 22:08:48 #470 №2232761 
>>2232692
А на чем еще писать, кроме как на жабе в те времена? Из ООП языков только она была достаточно простой, чтобы избежать кучи ошибок, и кроссплатформенной.
Сейчас на С++ стало чуть легче пользоваться, поэтому возможно на них будут писать дальнейшие инфраструктурные проекты.

А так, даже сейчас тяжело предложить иные альтернативы жабы в таких проектах. Написать на Го hadoop или elastic имхо будет тяжело. Хотя тот же Zinc как замена эластика уже существует.
Аноним 08/12/21 Срд 22:14:18 #471 №2232767 
>>2165429
глянь растланг
Аноним 08/12/21 Срд 22:19:01 #472 №2232769 
>>2232337
А это кто?
Аноним 09/12/21 Чтв 00:50:26 #473 №2232843 
>>2232754
> Пщ
> Процедурныя язык
Что еще расскажешь?
Аноним 09/12/21 Чтв 01:04:24 #474 №2232847 
>>2232843
Го - процедурный язык.
Аноним 09/12/21 Чтв 11:18:38 #475 №2232991 
Насколько хорош подход в Го, где на каждом проекте пилят свой велосипед?
Из плюсов могу выделить, что это может быть просто интересно, с нуля собирать свою инфраструктуру под проект.
С другой стороны, когда ты увольняешься и приходишь на другую работу, то там уже стек технологий будет отличаться. И что тогда?

Почему до сих пор нет единого фреймворка вроде laravel/django/flask/asp.net/spring?
Аноним 09/12/21 Чтв 11:25:39 #476 №2232995 
>>2232991
>Почему до сих пор нет единого фреймворка вроде laravel/django/flask/asp.net/spring?
Это придумано для людей с низкими умственными способностями, которые будут работать за копейки винтиком в системе
>С другой стороны, когда ты увольняешься и приходишь на другую работу, то там уже стек технологий будет отличаться. И что тогда?
Будешь расти как программист-инженер, а не останешься макакой одного фреймворка
Аноним 09/12/21 Чтв 11:36:35 #477 №2232997 
>>2232995
>Будешь расти как программист-инженер
Но ведь разве не инженер собирает проект из уже готовых частей?

>>2232995
>не останешься макакой одного фреймворка
Ну, справедливости ради, стек технологий так или иначе меняется от проекта к проекту, но основной фреймворк остается.
Другое дело, что ковыряние в криво написанном велосипеде не факт, что даст полезный опыт. А если ты джун/стажер, то придя на проект с таким велосипедом, потом перейти на другое место работы будет просто тяжело. Или нет?
Аноним 09/12/21 Чтв 12:02:37 #478 №2233030 
>>2232991
>Почему до сих пор нет единого фреймворка вроде laravel/django/flask/asp.net/spring?
Мне кажется не хватает гибкости языка, например без тех же дженериков много чего уже не сделать, плюс ещё в го нет макросов, аннотаций, наследования и сделать какой-нибудь фреймворк в таких условиях довольно сложно. Поглядим когда дженерики завезут.
Аноним 09/12/21 Чтв 12:36:59 #479 №2233048 
>>2232991
> Почему до сих пор нет единого фреймворка
По тому что в отличии от того же питона и js-а в го стандартный сервер вполне юзабельный, для нашего прода его вполне хватило.

>>2233030
> нет аннотаций
Есть теги полей структур
> наследования
Есть встраивание
Внезапно этого набора вполне хватает, чтобы написать тот же GORM. А дженерики единственное что изменят - для пользователя это будет чуть-чуть удобнее, т.к. тогда вместо пустых интерфейсов будут конкретные типы но под капотом всё равно будет тонна рефлексии
Аноним 09/12/21 Чтв 17:46:33 #480 №2233296 
Проблема голанга в скудном наборе удобных библиотек для выполнения тривиальных задач. Куда уж там до фреймворков. Приходится всю структуру расписывать заново. Одна из причин почему в го нет вакансий для джунов, которые банально не в курсе как всё должно выглядеть в производственном коде.
В итоге все проекты на го - велосипеды разной степени паршивости. Казалось бы, язык позиционируется для ускоренной разработки, но на практике всё с точностью до наоборот.
Прежде чем писать на го, надо убить пару месяцев на создание собственных библиотек. Это типа круто, позволит расти и так далее. Ну напишите тогда на брейнфаке сервер, это же позволит вам вырасти ещё лучше.
Аноним 09/12/21 Чтв 18:10:48 #481 №2233323 
>>2233296
> ждать удобных библиотек от языка с if err != nil
Аноним 09/12/21 Чтв 18:45:23 #482 №2233346 
>>2233296
Почти в любой серьезной конторе есть свои фреймворки и обвязки типо консьюмеров/продюсеров, rpc, клиентов для взаимодействия с другими сервисами. И это не зависит от языка.
Аноним 09/12/21 Чтв 18:51:53 #483 №2233352 
>>2233346
Нет, такой бардак только в Go.
Аноним 09/12/21 Чтв 18:55:08 #484 №2233354 
>>2233352
Тебе вкатунцу виднее.
Аноним 09/12/21 Чтв 19:57:51 #485 №2233414 
>>2232228
если внутри тестов, то похоже на мок. еще может быть конфигом для настройки хуков, но по названию не похоже. еще мб они там динамически эти функции меняют зачем-то
Аноним 09/12/21 Чтв 20:05:45 #486 №2233418 
>>2233323
Ничто не мешает её игнорировать
ass, _ := hole()
>>2233346
Классный подход. Идешь в другую контору - становишься джуном.
Аноним 09/12/21 Чтв 22:23:14 #487 №2233507 
>>2233418
>Идешь в другую контору - становишься джуном.
Если ты макака которая нихуя не соображает то да, весь бэк примерно одинаковый. Основная сложность это предметная область и общее понимание как работает система, а не инструменты с помощью которых выполняются задачи.
Аноним 09/12/21 Чтв 22:40:32 #488 №2233535 
>>2233507
Ну, если у тебя есть время каждый проект писать с нуля, то видимо дальше курсов с ютуба ты не ушёл.
Аноним 09/12/21 Чтв 23:33:49 #489 №2233597 
Как будут работать два инстанса одного микросервиса? Допустим, есть инстанс, который делает запросы на сторонее апи, но он оказался нагруженным и появилась необходимость создать ещё один.
Как в этом случае они будут работать?
Аноним 09/12/21 Чтв 23:35:32 #490 №2233599 
>>2233535
>Ну, если у тебя есть время каждый проект писать с нуля
Что ты несешь поехавший, причем тут писать проект с 0 и общие библиотеки и фрейморки всей компании?
Аноним 09/12/21 Чтв 23:52:11 #491 №2233616 
>>2233597
Ну, реверс-прокси просто начнёт делить запросы между ними пополам, не совсем понимаю, что ты имеешь ввиду.
Аноним 10/12/21 Птн 04:36:53 #492 №2233675 
>>2233616
Ну мы коннектимся к grpc серверу по адресу и порту. Как запустить ещё один инстанс микросервиса чтоб к нему бвл доступ на этот же порт и адрес? Или в докере мы запускаем несколько инстансов и он каким-то образом будет их выводить на один порт?
Просто пишут, что микросервисы хороши тем, что если не хватает ресурсов, можно просто запустить ещё один инстанс и не париться. Как это работает не совсем понимаю
Аноним 10/12/21 Птн 07:45:50 #493 №2233699 
>>2233675
Внутри докера крутится DNS сервер, который переводит доменные имена в айпишники. Если у тебя несколько инстансов сервиса с одним именем, он будет делать round robin между инстансами. Можно извратиться и сделать куда более замороченнее и эффективнее, но по умолчанию балансировка идет на уровне DNS.
Аноним 10/12/21 Птн 13:34:23 #494 №2233900 
>>2233675
Почитай, что такое load balancing
Аноним 10/12/21 Птн 23:53:20 #495 №2234617 
Перекатываюсь с ноды
Кто нибудь обьяснит мне, как писать на ЭТОМ. Именно всякие common best practices.
Смотришь код приложений, каждое - абсолютно уникальное блять со своими непонятными на первый взгляд велосипедами. Или же это хелловорд и хуй поймешь как это дальше разрастаться будет.
Как структурировать приложение (и че за internal)?
Допустим, я хочу связать graphql и postgres, и чтобы схемы красиво генерились, и чтобы говнокода мало было, и миграции работали. Как это сделать?
Аноним 11/12/21 Суб 00:45:48 #496 №2234650 
>>2234617
Насчет структуры, нашел годный ответ тут: https://github.com/golang-standards/project-layout/blob/master/README_ru.md
Аноним 11/12/21 Суб 01:22:16 #497 №2234659 
>>2234617
> Что за internal?
https://docs.google.com/document/d/1e8kOo3r51b2BWtTs_1uADIA5djfXhPT36s6eHVRIvaU/edit
Аноним 11/12/21 Суб 09:29:40 #498 №2234710 
Можно ли начинат свой вкат вайти с go? Скоро третий курс, специализация и практики т.д., а я уже успел все поверхностно потыкать из самого популярного на бэк; жабаскрипт, питон, пыха, и мне ничего из этого не нравится. Не хочу иметь дело с этими языками на проф. уровне. Так вот, можно ли без опыта сразу начать работать на го?
Аноним 11/12/21 Суб 13:10:46 #499 №2234793 
>>2234710
возьми кобол, работа всегда будет
Аноним 11/12/21 Суб 13:39:57 #500 №2234805 
>>2234650
Это гуглоперевод? Что за пиздец?
Аноним 11/12/21 Суб 15:27:09 #501 №2234867 
flat,750x,075,f-pad,750x1000,f8f8f8.u3.jpg
>>2234793
Если бы мне было похуй на чем кодить, я б взял жиес и вопрос этот не постил. Так что, нет
Аноним 11/12/21 Суб 18:35:13 #502 №2235093 
>>2234867
жс не трогай, вкатыш. Я на него три года назад с крестов перешел, до сих пор доволен.
Аноним 11/12/21 Суб 20:18:35 #503 №2235221 
>>2165418 (OP)
>от создателей таких шедевров, как UTF–8
а эмодзи не они делают? могут ли создатели utf-8 перевернуть свою строку?
Аноним 11/12/21 Суб 20:21:03 #504 №2235226 
>>2235221
Это будет посложнее, чем перевернуть дерево.
Аноним 11/12/21 Суб 22:55:14 #505 №2235362 
image.png
image.png
Кто подавался на стажировку в Wildberries? Что там реально спрашивают? Попускают алгоритмами, как в яндексе, или гоняют по кишкам гоуленга?

Еще у них сайт с вакансиями максимально всратый, мало того, что информация не очень хорошо структурирована, так еще и рекламу какого-то говна предлагают смотреть.
Аноним 11/12/21 Суб 23:23:40 #506 №2235395 
image.png
>>2235362
Не лезь туда дебил, оно тебя сожрет
Аноним 12/12/21 Вск 00:19:20 #507 №2235424 
>>2235395
Ебать самодур, сам же не обозначил чёткие границы ответственности между командами, сам же и страдает потом. Да и общение как с грузчиками, работать в этой хуйне себя не уважать
Аноним 12/12/21 Вск 01:05:56 #508 №2235468 
image.png
??????????
Аноним 12/12/21 Вск 01:42:37 #509 №2235517 
Блять почему тут тернарника нет
Аноним 12/12/21 Вск 02:11:48 #510 №2235537 
>>2235517
> The reason ?: is absent from Go is that the language's designers had seen the operation used too often to create impenetrably complex expressions. The if-else form, although longer, is unquestionably clearer. A language needs only one conditional control flow construct.
Виноваты говнокодеры, а отдуваться языку. Пиша на Го, ты похож не на свободного человека, а на овоща в подгузнике и смирительной рубашке в комнате с мягкими стенами
Аноним 12/12/21 Вск 07:08:38 #511 №2235556 
Аноны, вот я вкатываюсь с нуля.
Интересна мне именно веб-разработка.
Различные стартапы и веб-сервисы.

Правильно ли я думаю, что если начну с go, то голова не будет забита корявыми практиками из js, nodejs и php?
И что это лучший язык для вката в веб, судя по его производительности и тому, как все его хвалят?

Лично мне он ооочень интересен, меня, как перфекциониста, привлекла его концепция и подход.
Аноним 12/12/21 Вск 09:06:01 #512 №2235570 
>>2235537
Двачую
Аноним 12/12/21 Вск 12:09:49 #513 №2235639 
image.png
Аноним 12/12/21 Вск 14:50:23 #514 №2235736 
>>2235537
Я как понял концепцию языка всё должно быть простым как мясорубка и должен быть только один путь решения
Аноним 12/12/21 Вск 15:41:25 #515 №2235783 
>>2235736
Да, один народ, одна вера, одна извилина.
Аноним 12/12/21 Вск 16:34:31 #516 №2235830 
Снимок экрана от 2021-12-12 16-34-01.png
>>2235517
Выглядело бы прикольно)
Аноним 12/12/21 Вск 16:40:13 #517 №2235835 
>>2235783
Тут фишка не в тупости разработчика, а в доступности для бизнеса. Можно взять разработчика из любого языка с любым уровнем и через неделю он уже сможет что-то писать, ему не нужно будет постигать азы синтаксического сахара годами и он сможет легко читать чужой код, это хорошо работает для бизнеса, позволяет быстро и без особой боли найти разработчиков на проект и быстро что-то выкатить.
Но да писать на нем больно, особенно обработка ошибок лютый пиздец
Аноним 12/12/21 Вск 16:41:53 #518 №2235838 
Снимок экрана от 2021-12-12 16-40-48.png
>>2235830
Опечатался, быстрофикс) Как-то так
Аноним 12/12/21 Вск 17:02:38 #519 №2235855 
>>2235556
> Различные стартапы
Там очень важна скорость разработки, нужны жирные и многофункциональные фреймворики, ORMы, а так же большое количество дешевых джунов с рынка труда.
У го по всем этим пунктам не очень: скорость разработки, конечно, выше, чем у языков без GC, но немного ниже, чем у популярных в вебе языков, фреймворки и ORMы в го, конечно, есть, но их не принято использовать, да и ебаться в пустые интерфесы тоже то еще удовольствие, по этому писать сырой SQL считается тут нормой, да и джунов на рынке на одну вакансию на порядок меньше чем на жыэс или питон.
Будь я CTO в стартапе - у меня на go были бы только k8s операторы, а всё остальное скорее всего на Nestjs + TypeORM + PostgreSQL, просто по тому что решает большинство задач.

> Правильно ли я думаю, что если начну с go, то голова не будет забита корявыми практиками из js, nodejs и php?
Говнокод есть в любом языке, язык сам по себе не сделает тебя говнокодером. Другой вопрос, что в каждом языке есть свои особенности, которые тебе нужно будет учитывать и уметь обходить. Например в js-е это неявный каст типов, в питоне в случае асинхронного кода следить за тем, чтобы не было синхронного io в зависимостях и так далее.

> И что это лучший язык для вката в веб
Го, как любой другой язык - это просто инструмент. Прикладные задачи, типичные для бекенда, (читай - CRUD) на го писать можно, но сложнее чем на более популярных языках, а значит более дорого для бизнеса. А те вещи, в которых го хорош, вроде удобной работы с асинхронностью или стримами (сравните https://nodejs.org/api/stream.html и https://pkg.go.dev/io) - это далеко от ежедневной работы обычного бекендера. Вроде на бекенде есть где развернуться с асинхронностью, но на практике кроме errgroup почти никогда ничего не нужно, т.е. по факту это тот же asyncio.gather или Promise.all

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

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

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

> Лично мне он ооочень интересен, меня, как перфекциониста, привлекла его концепция и подход.
Ну тогда успехов во вкате, что я могу сказать. Ну и да, единственный способ научиться программировать - это программировать, по этому очень рекомендую написать форум/борду/блог, используя стандартные net/http и database/sql пакеты, без этого я бы не шел на собеседования.
Если не получиться вкатиться с го - рекомендую тайпскрипт
Аноним 12/12/21 Вск 19:47:47 #520 №2235976 
>>2235855
Благодарю за ответ!
Аноним 12/12/21 Вск 19:48:38 #521 №2235978 
image.png
Роб ебать твой рот Пайк, спасибо за такие енумы
Аноним 12/12/21 Вск 19:56:00 #522 №2235983 
>>2235978
Ещё есть iota, вообще пиздец.
Аноним 12/12/21 Вск 23:03:44 #523 №2236160 
>>2235978
Зачем эти методы руками писал, оно разве само не работает, как с json-ом?
Аноним 13/12/21 Пнд 14:45:01 #524 №2236579 
Не знаком с Go, но понадобилось собрать одно приложение, работающее чисто с сетью. Оно тихо игнорирует запросы, по всей видимости, из-за несовпадения структуры с ожидаемой, никакого логгирования автор не предусмотрел.
Есть ли менее ебанутый способ дебага, чем раскидывать принты в каждом if err != nil блоке, а совсем в идеале, собрать чтобы печатало трейс в реальном времени?
Аноним 13/12/21 Пнд 15:32:24 #525 №2236627 
>>2236579
Есть
Аноним 13/12/21 Пнд 16:55:43 #526 №2236720 
Q all!
Стоит задача переписать скрипт с питона на что-то такое, чтобы юзер просто нажимал на ехе и все работало. Кроме excelize есть иные библиотеки для работы с Excel? Как в Го ищут нужные библиотеки? В чем разница между go get repo и если просто в импорте прописывать? Сорян за нубские вопросы, если чо.
Аноним 13/12/21 Пнд 17:02:28 #527 №2236732 
>>2236720
Pyinstaller будет на порядок быстрее освоить
Аноним 13/12/21 Пнд 22:47:06 #528 №2237025 
>>2236720
Реально, просто возьми Pyinstaller, как чел выше сказал, там буквально одну комманду ввести и будет тебе экзешник.
Аноним 13/12/21 Пнд 22:49:56 #529 №2237029 
Пацаны, стоит в гошечку врываться с плюсов? Как по вакансиям?
Аноним 13/12/21 Пнд 23:44:29 #530 №2237076 
>>2236579
Есть. Например ты можешь запустить его в режиме отладки (понадобится голанд чтоб было удобно), либо добавить логирования на каждый чих.
Аноним 14/12/21 Втр 02:53:07 #531 №2237147 
>>2235362
на стажировку был тестик вопросов из 20 вроде того как расшифровывается хттп с вариантами ответа, несколько по базовому синтаксису гошки вроде что выведет программа, пара вопросов вроде напишите физбазз (неиронично) на языке на выбор, потом беседа с интервьюером, который смотрит твой тестик и мб спросит из чего состоит слайс и что-нибудь вроде напишите селект запрос с хевингом. саму гошку в принципе знать необязательно было, я тур оф го только прошел и проебался на нескольких вопросах в тесте по гошке. ну меня в итоге эта контора пидарасов в 2020м на хуе прокрутила, когда движуха была конечно, но я с годиком опыта с повышением зп переустроился, так что вообще не жалко.
Аноним 14/12/21 Втр 04:22:06 #532 №2237156 
>>2237025
>>2236732
Оки, понял.
Аноним 14/12/21 Втр 04:35:37 #533 №2237158 
>>2237029
У го немного другая сфера применения.
> Как по вакансиям?
Сильно зависит от предметной области. На девопс много, на остальное - сильно меньше.
sageАноним 16/12/21 Чтв 23:47:24 #534 №2239521 
Хочу пописать на вашем говне, какую иде выбрать - vscode или sublime? Так-то я бы взял голанд не раздумывая, но он сука платный.
Аноним 17/12/21 Птн 00:01:06 #535 №2239532 
>>2239521
Пиратство.
Аноним 17/12/21 Птн 00:02:43 #536 №2239534 
>>2239521
Триал ресет, чел
sageАноним 17/12/21 Птн 00:06:34 #537 №2239540 
>>2239534
>>2239532
Хуй знает, как на работе на это посмотрят. Там есть белый список софта.
Аноним 17/12/21 Птн 00:10:42 #538 №2239546 
>>2239540
На работе работодатель оплачивает лицензии.
Аноним 17/12/21 Птн 00:17:47 #539 №2239551 
>>2239540
Они жопятся на лицензии? Беги от них
sageАноним 17/12/21 Птн 00:19:10 #540 №2239554 
>>2239551
>>2239546
Го не основной язык, поэтому для него пока (надеюсь) жопятся.
Аноним 17/12/21 Птн 13:26:43 #541 №2239831 
Ну что, дженерикам быть значит? Переобуваться уже готовы?
Аноним 17/12/21 Птн 16:06:51 #542 №2239959 
>>2239831
> Переобуваться уже готовы?
Ну, у хейтеров осталось еще обработка ошибок
Аноним 17/12/21 Птн 18:22:18 #543 №2240072 
>>2239959
>у хейтеров
Разве не сами гоферы кричали что НИНУЖНА?
Аноним 17/12/21 Птн 18:37:28 #544 №2240080 
>>2240072
Они это кричали, бомбанув из-за хейтеров.
Аноним 17/12/21 Птн 18:52:06 #545 №2240090 
image.png
>>2240080
>Они это кричали, бомбанув из-за хейтеров.
Аноним 17/12/21 Птн 19:33:57 #546 №2240116 
image.png
Уже в бете
Предвкушаете?
sageАноним 17/12/21 Птн 19:35:13 #547 №2240118 
>>2240116
Ну охуеть, выглядит почти как нормальный язык.
Аноним 17/12/21 Птн 19:54:04 #548 №2240146 
>>2240118
Осталось ещё выпилить var, имена переменных писать после типов, впилить эксепшены, классы, аннотации, сделать неиспользуемые импорты и переменные варнингами, впилить вменяемые тулзы для сборки и менеджер пакетов.
Аноним 17/12/21 Птн 20:02:36 #549 №2240159 
>>2165418 (OP)
на сколько и как перекатываются мидлы с 3+ годами опыта в других ЯП в го?
Аноним 17/12/21 Птн 20:05:18 #550 №2240165 
>>2240072
Не знаю кто эти гоферы, но разработчики языка никогда не говорили что они не нужны. Они только говорили, что есть проблемы, связанные с имплементацией дженериков, и придется чем-то пожертвовать, или размером бинаря и скоростью билда или скоростью в рантайме. Надеюсь выбрали первое

https://go.dev/blog/survey2019-results
Аноним 17/12/21 Птн 20:09:44 #551 №2240173 
>>2240165
>2020
К этому моменту они уже заебались слышать о необходимости дженериков. До введения в черновики стабильно кричали нинужна и ссылались на высеры пайка.
Аноним 17/12/21 Птн 20:15:11 #552 №2240178 
>>2240165
Картинка отвалилась
>>2240173
Т.е. по твоему гугламисты в хорошем смысле это фанатики и адепты "ненужнасти", а не инженеры с огромным опытом?
Аноним 17/12/21 Птн 20:15:37 #553 №2240182 
fig28.png
>>2240178
Сука, второй раз
Аноним 17/12/21 Птн 20:34:11 #554 №2240210 
>>2240178
>Т.е. по твоему гугламисты в хорошем смысле это фанатики и адепты "ненужнасти", а не инженеры с огромным опытом?

Так они их и не собирались реализовывать до момента, когда на них начало комьюнити налегать. Если бы не этот опрос, то до сих пор бы они отодвигали решение на долгий срок, так как не считали это необходимым для нормальной разработки.
Аноним 17/12/21 Птн 20:36:26 #555 №2240213 
>>2240072
я кричал. и до сих пор так считаю.
sageАноним 17/12/21 Птн 21:24:43 #556 №2240285 
>>2240213
Жопу вытирать тоже нинужна?
Аноним 17/12/21 Птн 21:33:46 #557 №2240296 
>>2240146
>менеджер пакетов
Вот прям две вещи, которые я хочу - нормальный менеджер пакетов и более адекватный отлов ошибок. С остальным я готов мириться.
Аноним 17/12/21 Птн 22:41:55 #558 №2240327 
Screenshot20211217213906.png
>>2240210
> Так они их и не собирались реализовывать до момента, когда на них начало комьюнити налегать.
Ты пытаешься меня убедить, что человек, который имеет огромный опыт на плюсах и еще куче всего пишет эту хуйню и приговаривает "Как же хорошо, что нет дженериков, а то хуйня какая-то была бы". И при этом это не рандомный >>2240213 с двача, а рокстар, получающий 300к $ в наносекнду в гугле. Нет, я не поверю в это никогда.
Аноним 18/12/21 Суб 00:51:38 #559 №2240448 
>>2240327
>Ты пытаешься меня убедить, что человек, который имеет огромный опыт на плюсах и еще куче всего пишет эту хуйню и приговаривает "Как же хорошо, что нет дженериков, а то хуйня какая-то была бы"
Эти люди сделали уебищную систему прокидывания ошибок и всратейший пакетный менеджер, который выглядит более всрато, чем установка *-dev пакетов в пользовательское окружение, а дженерики добавили только когда их активно начало пинать комьюнити. Причем они не придумали ничего лучше, чем сделать квадратные скобки в текущей реализации, хотя такое решение можно было и в нулевых запилить.
Аноним 18/12/21 Суб 12:29:37 #560 №2240680 
Заменитый ESR https://en.wikipedia.org/wiki/Eric_S._Raymond перевёл свой довольно большой проект с питона на go. Вот его предложения по улучшению языка https://gitlab.com/esr/reposurgeon/-/blob/master/GoNotes.adoc
Аноним 18/12/21 Суб 13:14:33 #561 №2240732 
Вышла бета go 1.18 https://go.dev/blog/go1.18beta1 с дженериками https://go.dev/doc/tutorial/generics
sageАноним 18/12/21 Суб 13:19:19 #562 №2240738 
>>2240732
Ого нахуй
Аноним 18/12/21 Суб 15:22:57 #563 №2240884 
5245857.jpg
Аноны, вкатываюсь в Golang с нуля.

Не могу въехать, для чего нужны руны? Типа они показывают какому символу какой код в таблице Unicode соответствует?

Что это и для чего? Гуглил объяснения, но там всё как-то сложно, как для начинающего.
Аноним 18/12/21 Суб 16:25:57 #564 №2240960 
Бля, как учиться то.
Прошел го тур, разобрался вроде с базовой хуйней, полез смотреть в ютубе как собирают простейший веб сервер.
И началось нахуй. Куча говна, какие то бест практис, чистые архитектуры.
Я просто там нихуя не понимаю
Аноним 18/12/21 Суб 16:29:34 #565 №2240962 
>>2240960
Сколько лет коммерческого опыта у тебя на других языках?
Аноним 18/12/21 Суб 16:32:00 #566 №2240965 
>>2240962
48 лет
Аноним 18/12/21 Суб 16:32:54 #567 №2240968 
>>2240962
Мало, год на петухоне.
Аноним 18/12/21 Суб 17:19:03 #568 №2241014 
>>2240884
> для чего нужны руны?
Тип данных, который представляет собой 1 юникод символ, по тому что в 1 байт он, скорее всего, не поместиться.
Аноним 18/12/21 Суб 17:41:06 #569 №2241039 
>>2240448
> а дженерики добавили только когда их активно начало пинать комьюнити
Новую методичку подвезли? Сколько раз ты планируешь еще повторять эту мантру? ИТТ уже 2 раза
Аноним 18/12/21 Суб 17:59:11 #570 №2241057 
>>2241039
А сколько раз ты планируешь это игнорировать?
Аноним 19/12/21 Вск 22:14:11 #571 №2242260 
Зацените
https://entgo.io/docs/getting-started/
Аноним 20/12/21 Пнд 22:09:15 #572 №2243341 
image.png
Никак не могу с горутинами разобраться.
Нормально ли это писать в один канал с двух горутин?
Если на пике горутины в разных потоках, то почему циклы последовательно выполняются, а не в перемешку?
Аноним 20/12/21 Пнд 22:51:58 #573 №2243375 
>>2243341
Поставь внутрь горутин Sleep на рандомное время, станут вперемешку
Аноним 20/12/21 Пнд 23:32:54 #574 №2243419 
image.png
>>2243375
Все равно нихуя не понял, но хотя бы вижу что две функции запустились в горутинах и работают одновременно
Что вообще по каналам обычно передают серьезные ребята? Я туда пишу просто чтобы горутина не кончилась.
Аноним 21/12/21 Втр 16:51:19 #575 №2244069 
>>2240448
>а дженерики добавили только когда их активно начало пинать комьюнити
и прально, нехуй добавлять то, что никому не нужно
Аноним 21/12/21 Втр 17:36:12 #576 №2244109 
>>2244069
Зачем ты серьезно ему отвечаешь? Он же сюда посрать пришел, ему плевать на твою рационализацию.
Аноним 21/12/21 Втр 18:42:41 #577 №2244205 
>>2244069
Там с момента создания их просили добавить. Может у тебя дефолтные и необязательные параметры не нужны, любитель пилить структуры-конфиги?
Аноним 21/12/21 Втр 21:07:43 #578 №2244390 
>>2239521
Вопрос остался без ответа.
Аноним 21/12/21 Втр 21:34:00 #579 №2244420 
>>2244390
Понятно.
Аноним 22/12/21 Срд 00:20:31 #580 №2244626 
https://mehdihadeli.github.io/awesome-go-education/ годнота для вкатывальщиков, можно в шапку закинуть
Аноним 22/12/21 Срд 00:24:14 #581 №2244630 
>>2244626
Закинешь, когда будешь перекатывать.
Аноним 23/12/21 Чтв 01:18:03 #582 №2245563 
>>2243419
в го есть всегда 1 горутина это мэйн, горутина это функция которая запускается в отдельном(от потока мейна) потоке(горутине). Фича тут в том что когда ты не обьявляешь горутины, твой код выполняется последовательно. Если ты обьявил горутину то то код перестает быть последовательным, и можно вызывать следующие функции/операторы не дожидаясь работы вызванной горутины.

каналы(как пневматические трубы в офисе чтоб туда пеналы с документами отправлять) создали чтоб был механизм передачи данных между горуинами. в твоем первом пике на 16 строке твоя прога стоит ждет пока канал закроется и можно будет читать из нее, поэтому тебя сначала прокрутился цикол10 строка потом ты послал в канал ИНТ и основная горутина/поток видит это, считывает из канала ИНТ (правда в примере в никуда, такое бывает да), и только потом основной поток/горутина едет дальше.

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

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


вообще это лучше использовать когда тебе надо запускать например ГЕТ запрос по тыщю раз, и чтоб не ждать пока они последовательно выполнятся, каждую запустить в своей горутине, так у тебя будут гет запросы одновременно(почти), и ты не будешь сидеть ждать пока сервак к которому ты обращаешься готовит тебе жисончик ПОСЛЕДОВАТЕЛЬНО

вообще есть реальные потоки системы и процессы, и 1 поток системы != 1 горутина, это важно понять, гоха под капотом имеет менеджер горутин(которые крутит гоха) и потоков(которые дала система) и переключает горутины в потоки по какимто алгоритмам, если будешь крудошлепить то не парься даже.
Аноним 23/12/21 Чтв 01:26:10 #583 №2245568 
>>2239521
на вскоде пишу, пробовал голанд, но часто колупаю баш скрипты, а в голанде с другими языками чет туго пиздец, но в вс коде надо настраивать настройки, потомучто искаропки там максимально уебищно все сделали
наример на таб там 4 пробела вместо табуляции,
модули/gopath вообще ебано настроены когда ставишь ГОаддон
Аноним 23/12/21 Чтв 01:48:56 #584 №2245578 
https://go.dev/play/p/9obIE_WybNG
Аноним 23/12/21 Чтв 01:50:24 #585 №2245579 
>>2245578 отклеилась ссылка на меседж
>>2240884
Аноним 23/12/21 Чтв 04:08:00 #586 №2245619 
>>2240884
Руна представляет собой один юникодный символ, который на практике может быть от 1 до 4 байт, в случае емодзи, например. Слайс рун занимает больше памяти чем стринга, т.к. utf-8 позволяет чуть-чуть экономить память и не выделять по 4 байта на каждый символ. При работе с юникодными строками учти, что при обращении по индексу стринга ты обращаешься не к символу с заданной позицией, а именно к байту, который как может быть целым символом в случае ASCII. так и куском любого другого символа. Не знаю что тебе еще сказать, ты лучше сам задавай конкретные вопросы.
Аноним 23/12/21 Чтв 17:30:44 #587 №2246081 
>>2241014
>>2245579
>>2245619
Понял, благодарю
Аноним 23/12/21 Чтв 22:22:11 #588 №2246398 
Пацаны, помогите.
У меня есть апи сервер, на котором нужно запускать дополнительные скрипты по шедулеру.
Мне лучше наговнячить отдельные независимые скрипты и засунуть их в линуксовый кронтаб, или найти какую нибудь имплементацию крона в гохе, и хуярить их в основной программе?
Как бы вы сделали? А то я нюфаг, и мне оба решения кажутся костыльными.
Аноним 24/12/21 Птн 00:34:37 #589 №2246479 
Если это наколенное поделие, которое ты не будешь долго сопровождать на многих инсталляциях, то делай в крон.
Если нет, то я бы сделал свой отдельный планировщик
Аноним 24/12/21 Птн 00:34:53 #590 №2246480 
>>2246398
>>2246479
Аноним 24/12/21 Птн 02:15:15 #591 №2246528 
>>2246398
Я бы сделал k8s CronJob, если вы используете кубер, либо просто https://hub.docker.com/r/willfarrell/crontab + docker-compose если нет.
CURRENT_YEAR всё-таки на дворе, нужно жить в контейнерах, а не на хосте.
Аноним 24/12/21 Птн 02:19:23 #592 №2246530 
И тут дело даже не в контейнерах ради контейнеров, а в том, чтобы иметь infrastructure as a code, чтобы потом при любых инфраструктурных манёврах не носиться по офису между разрабами и админами теряя кал, в попытках понять как оно работало до этого
Аноним 24/12/21 Птн 13:21:48 #593 №2246737 
>>2246528
Свидетели в контейнерах подъехали, тред спасен
Аноним 24/12/21 Птн 15:26:02 #594 №2246870 
>>2246737
>>2246530
Аноним 26/12/21 Вск 03:42:05 #595 №2248127 
>>2246398
я бы сделал простой тайм.слип/тайм.афтер/тайм.тикер, потомушто в 99% случаев похуй что этот крон отработает в полночь или в два часа дня.
Аноним 26/12/21 Вск 16:27:17 #596 №2248478 
Анон, привет
Изучаю го и пилю небольший пет проектик, который состоит из двух частей:
1) Модуль, который умеет следить за определенными событиями и определять когда они наступили
2) Модуль-бот для телеги, через которого можно будет подписываться на эти события.

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

Имеет ли смысл так делать, или хуйней занимаюсь и так никто в здравом уме не делает?
Аноним 26/12/21 Вск 16:50:34 #597 №2248501 
>>2248478
> Но сейчас кажется, что это плохая мысль: т.к. придется в каждом модуле делать и сервер, который принимает сообщения, и клиента, который их отправляет.
Там же кодогенерация
> Имеет ли смысл так делать
Да, но я бы не стал так делать со старта. Просто пиши код модулями так, чтобы в случае необходимости ты мог разделить его на 2 процесса.
Ну и я бы на твоем месте тут добавил очередь с сохранением на диск, чтобы не проёбывать ивенты
Аноним 27/12/21 Пнд 14:43:50 #598 №2249370 
Аноны. Я только вкатываюсь. Нужен ваш опытный взгляд.

Почему Hello World выводится только один раз, а не два?
Не понимаю.

Код элементарный же.

https://go.dev/play/p/229ANIj17pR
Аноним 27/12/21 Пнд 14:45:43 #599 №2249381 
>>2249370
Потому что функция main() вызывается, а f() - нет.
Ты выбрал не тот язык для вката. В Go берут исключительно миддлов из других языков. Их и учи.
Аноним 27/12/21 Пнд 14:46:00 #600 №2249382 
>>2249370
И попутный вопрос. Расшаренный код через этот сервис имеет срок действия?
Аноним 27/12/21 Пнд 14:48:18 #601 №2249386 
>>2249381

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

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

Мне нравится golang, я осилю.
Есть опыт написания скриптов на js и php в прошлом.
Аноним 27/12/21 Пнд 14:54:38 #602 №2249395 
>>2249386
Не одинаковы. Функция с названием "main" - точка входа в программу, и при запуске вызывается сама. О вызове функций с названием "f" нет никаких соглашений, поэтому она и не вызывается, её можно вызвать только самому из функции main или какой-нибудь другой функции, которая вызывается из функции main.
Аноним 27/12/21 Пнд 15:00:21 #603 №2249399 
>>2249395
Начал догадываться. Благодарю за ответ.
Аноним 27/12/21 Пнд 15:13:14 #604 №2249410 
>>2249382
Не имеет
Аноним 29/12/21 Срд 16:05:09 #605 №2251513 
>>2232337
Прошло 3 недели, а вакансия все еще висит.
Кто-нибудь пробовал туда собеситься? Что спрашивали?
Аноним 30/12/21 Чтв 00:10:57 #606 №2251904 
А как ваш го в плане секса разрешения зависимостей? Все модули ставятся исключительно в $GOPATH/mod? Нет никаких вещей, наподобие питонячего венва?
Аноним 30/12/21 Чтв 00:15:39 #607 №2251905 
>>2251904
Зачем? В GOPATH лежат разные версии одного и того же пакета, в проекте просто импортируешь нужную.
Аноним 30/12/21 Чтв 00:50:22 #608 №2251911 
>>2240296
Что не так с go modules? Про обработку ошибок спрашивать не буду - примерно представляю, какой ответ меня ждет
Аноним 30/12/21 Чтв 00:53:55 #609 №2251914 
>>2251911
> Про обработку ошибок спрашивать не буду
Но я всё равно отвечу: THROW TRY CATCH FINALLY
Аноним 30/12/21 Чтв 12:10:48 #610 №2252137 
Чёт подзаебало меня писать круды на ларке. Решил потыкать go. Что могу сказать сначала было сложно. Но уже норм, нраица, решаю задачки на лит коде . Особенно нравится строгая типизация, после пыхи прям кайф. Параллельно смотрю курс от mail.ru на курсере. Планирую заполнить пробелы в алгоритмах , докере и тестировании. На праздниках наверное запилю спа на вуе ток пока не определился гин брать или эхо. Но с работой беда, везде нужен опыт а где его брать хз
Аноним 30/12/21 Чтв 15:18:56 #611 №2252269 
>>2252137
>а где его брать хз
Ну как же, пишешь на пхп годик-другой, параллельно учишь Го, потом просишься в контору, которая переписывает свое помойное легаси с пхп на не менее помойные микросервисы на Го.
Аноним 30/12/21 Чтв 16:14:26 #612 №2252306 
>>2252137
Придумай себе попыт, я не знаю. CRUDы в любом языке мало отличаются друг от друга. Можешь пет-проект сделать за пару вечеров чтобы проникнуться обработкой ошибок.
Аноним 30/12/21 Чтв 23:29:54 #613 №2252738 
Бля, почему всё так сложно у вас нахуй.
Нужно отправить пост запрос с вложенным жсоном, приходится создавать две структуры, вкладывать одну в другую, маршалить запрос, потом так же принимать ответом вложенный жсон, опять так же маршалить во вложенные структуры нахуй.
Нет особо никаких других путей что ли?

как же было ахуенно говнячить на питоне
Аноним 30/12/21 Чтв 23:41:27 #614 №2252746 
>>2252738
Так и говнячь на питоне. Зачем тебе вообще язык со статической типизацией, если контролировать типы ты не хочешь?
Аноним 30/12/21 Чтв 23:45:47 #615 №2252748 
>>2252746
Да кабану кто то внушил что го ахуенный для его мелкобизнеса, что хттп сервер искаробки там работает асинхронно и прочую ебалу, сижу вот уже вторую неделю все свое говно переписываю...
Аноним 02/01/22 Вск 20:05:17 #616 №2254608 
>>2194497
Ну я с пхп 1 год на битриксе работал и еще год на ларе, плюс запилил за месяц небольшой пет-проектик. Хватит на мидла? Хотя что спрашивать, лучше проверить по собесам.
Аноним 02/01/22 Вск 23:17:04 #617 №2254755 
>>2254608
именно
все зависит от компании
где-то будут дрочить тонкостями рантайма и сборщика мусора
где-то алгоритмами
где-то знаниями микросервисов
Аноним 03/01/22 Пнд 16:07:40 #618 №2255163 
Норм идти на собес просто из интереса? Устраиваться сейчас не собираюсь, чисто чтобы разведать обстановку и через полгодика уже пойти или не пойти. HR-ы, у вас бы пригорело от такой хуйни?
Аноним 03/01/22 Пнд 16:17:43 #619 №2255171 
>>2255163
а ты уверен что даже с прибавкой 30-50% решишь не переходить? всегда можно сказать, что мало предложили и ты хочешь прокачаться и попробовать чуть позже.
Аноним 03/01/22 Пнд 16:21:56 #620 №2255178 
>>2255171
Ну у меня положение пока такое, недавно уволился. Пока решаю все дела и думаю куда идти.
Аноним 04/01/22 Втр 04:34:02 #621 №2255532 
В каком направлении стоит двигаться, если хочу научиться писать бэк на Go, но опыта написания сетевых (да и не только) приложений нет?

С основными структурами данных и какими-то базовыми алгоритмами типа бин. поиска я знаком, но ничего промышленного, кроме как уебищного андроид-приложения из говна и палок, я не делал (пару лет назад ходил в IT школу Самсунга, но разработка под Андроид мне не вкатила).

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

Материалов, рассказывающих с нуля, как взаимодействовать с серверами на Go я, увы, не нашел. Все, что я видел, скорее для людей, которые имели до этого опыт разработки и просто пересаживаются на Go с каким-никаким, но пониманием, как что работает. Есть ли какие-то пути лучше, чем изучать материалы, которые требуют непосредственного написания кода, с условным Питоном (его синтаксис мне знаком), а потом, когда +- буду осознавать, что к чему, пытаться делать все то же самое, но уже с помощью Голанга? Есть, конечно, мнения что, Go как первый язык учить - затея не из лучших, но долбиться с каким-нибудь плюсами/учить Питон не хочется: все-таки, судя по тому, что я почекал, стажерские/джуновские вакансии на Go в ДС существуют, и их не меньше, чем по другим ЯП, а язык кажется перспективным.
Аноним 04/01/22 Втр 12:38:11 #622 №2255650 
>>2255532
Напиши пару REST API. Гайдов особенно на ангельском языке более чем достаточно, gin поковыряй.

А так тебе правильно порекомендовали по поводу сетевого приложения. Если начнешь его делать познакомишься с авторизацией (JWT, как пример), БД (изучишь GORM) и так далее.

Плакать что материалов нет --- глупо, т.к. их более чем достаточно. На крайняк в гугле забей "Top pet projects Golang"
Аноним 04/01/22 Втр 13:11:14 #623 №2255674 
да нет почти джуновких вакансий по го

везде нужно знать дохрена - пару-тройку баз данных (sql, nosql, cache), очереди, куб, паттерны микросервисной архитектуры

если вкатываешься, то имеет смысл идти в жаву, питочик или жээсину - там монолиты и реально можно постепенно развиваться
Аноним 04/01/22 Втр 13:13:50 #624 №2255676 
>>2255650
Вообще в первую очередь на русском искал, и может я, конечно, поисковиком не умею пользоваться, но условных лекций (как и литературы), где прям с самых основ рассказывают про какой-нибудь HTTP, а потом начинают, разжевывая, что-то писать серверное именно на Go не нашел.

Про REST API - спасибо, ознакомлюсь. Еще вопрос: с >>2165418 (OP)
>- Емкий пошаговый гайд с азов до джуна (go tour на максималках): https://www.practical-go-lessons.com/ стоит ознакомиться? Там про HTTP, XML, JSON что-то есть, выглядит как то, что может пригодиться.


Аноним 04/01/22 Втр 13:14:55 #625 №2255679 
>>2255676
Ой, кусок вопроса в цитату влез, но надеюсь ясно, о чем я спрашивал
Аноним 04/01/22 Втр 14:21:09 #626 №2255737 
>>2255532
Двачую вопрос, я тоже хочу вкатиться в Go, но не обязательно сразу бэк писать. Что на нём ещё можно написать в качестве первого проекта?
Аноним 04/01/22 Втр 14:22:10 #627 №2255738 
>>2255737
Больше ничего.
Аноним 04/01/22 Втр 14:23:11 #628 №2255740 
>>2255738
Ладно.
Аноним 04/01/22 Втр 15:50:04 #629 №2255791 
>>2255532
>стажерские/джуновские вакансии на Go в ДС существуют, и их не меньше, чем по другим ЯП, а язык кажется перспективным

Не, сильно меньше. Как минимум тот же яндекс нанимает кучу С++/Java стажеров. Сбер, тиньк, рсхб устраивают java/js стажировки для студентов. Не говоря уже о всяких галерах и интеграторах, которым нужны джуны и стажеры, которые будут разгребать самые помойные нудные таски, за которые никто не хочет браться.

Из известного мне, гошников к себе на стажировку берет вайлдбериз, озон (правда у них обязательно 40 часов в неделю работать) и яндекс (в очень малых количествах). А, ну еще и авито, правда хз набирают ли они стажеров, плюс там были довольно кабальные условия уровня работать год за 40к.
Аноним 04/01/22 Втр 16:02:01 #630 №2255806 
>>2255791

это другое

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

с улицы туда не зайти

у меня племянник прошел отборы в тинькофскую школу финтех, рассказывал о задачах по математике и алгоритмам, прошел у них курс по го и сейчас вышел к ним джуном
Аноним 04/01/22 Втр 16:07:49 #631 №2255817 
>>2255806
Есть такое, чтобы попасть в тинькофф нужно уметь решать довольно нетривиальные задачи на динамическое программирование и графы. Да и в целом тинек сейчас позиционирует себя как банк-фаанг и зазывают всяких математиков-олимпиадников. Но там и стажировки раз в квартал стартуют, правда я за 6 попыток так и не смог даже до собеседования дойти, лол.

А вообще кроме как крупняк сейчас мало кто может содержать джунов и стажеров. Это считай как бесполезного сотрудника содержать у себя в течение полгода.
Аноним 04/01/22 Втр 16:21:12 #632 №2255832 
image.png
image.png
Вот, к слову, статистика тинька. Конкурс примерно по 50 человек на место. Удачи вкатиться, хуле.

https://vk.com/topic-123851409_48300564
Вот их задачи и решения, если что. Чтобы получить возможность пройти собеседования, нужно решить 4 задачи и желательно пятую частично.

>>2255532
Попробуй вкатиться в wildberries, контора все-таки более паршивая, может хоть туда конкурс поменьше будет.
А так, если ты лоускилльный вкатун, ну то есть не умеешь решать сложные медиумы или харды с литкода (ДП, графы, жадные алгоритмы, всякие рабины-карпы и бойеры-муры для строк, какой-нибудь хитрый бинпоиск) за относительно короткое время, то сейчас только во всякие НИИ, заводы и госы нужно вкатываться, потому что в ДС, не задротя алгоритмы со школьных лет, ты только пососешь в крупных компаниях.
Аноним 04/01/22 Втр 16:26:29 #633 №2255837 
>>2255832
Ну там скорей всего семёны какие-нибудь, которым лишь бы куда устроиться.
Аноним 04/01/22 Втр 16:27:18 #634 №2255840 
>>2255676
> Вообще в первую очередь на русском искал
Ну тогда твой путь это 1-ass, либо быть вечным мидлом, даже с огромным опытом
Аноним 04/01/22 Втр 16:28:48 #635 №2255841 
>>2255737
Можешь k8s оператор написать, но лучше всё-таки типичный бекенд
Аноним 04/01/22 Втр 16:30:13 #636 №2255843 
>>2255841
А куб нужно знать при разработке на Go?
Аноним 04/01/22 Втр 16:35:02 #637 №2255855 
>>2255843
Для написания операторов или других приблуд для кубера - определенно да, но это уже больше ответственность девопсов.
А для обычного бекенда это скорее "будет плюсом" и мало где реально нужно
Аноним 04/01/22 Втр 16:42:40 #638 №2255865 
>>2255855
>мало где реально нужно

почти везде сами разраыбы пишут кубо-конфиги
нужно понимать, как работает куб, как писать деплойменты-стейтфул-сеты-сервисы-ингрес
Аноним 04/01/22 Втр 16:45:15 #639 №2255866 
>>2255837
А так везде, на любую стажерскую и джунскую вакансию за неделю прилетает по 300-600 откликов. Как ты будешь отсеивать кандидатов? Понятно, что всякие тестовые дают, контесты, а после еще собеседования по алгоритмам и кишочкам языка, но тем не менее.

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

https://hh.ru/search/vacancy?area=1&fromSearchLine=true&text=Golang+junior
Аноним 05/01/22 Срд 15:07:28 #640 №2256572 
type switch под капотом рефлексию использует?
Аноним 05/01/22 Срд 21:59:55 #641 №2256825 
>>2256572
Короткий ответ - нет, там более низкоуровневая unsafe-машинерия
Рефлексия в го инкапсулирована в отдельный пакет, который рантайм го напрямую не импортирует. Вообще компилятор и рантайм почти не используют общедоступные пакеты, вместо этого они используют параллельные имплиементации из internal пакетов. Я так понимаю это из-за 1.х promise of compatibility, который связывает по рукам и ногам
Встречный вопрос - а какая, в общем-то разница? Если ты упрешься в производительность type switch или type assertion тебе вообще и от интерфейсов нужно будет отказаться.
Аноним 06/01/22 Чтв 14:37:44 #642 №2257281 
>>2256572
Вопрос, мягко говоря, странный. И то и другое - сущности уровня языка и используют одни и те же механизмы.
Аноним 06/01/22 Чтв 19:37:03 #643 №2257515 
>>2256572
Если тебя беспокоит производительность - пиши бенчмарки
type switch по по производительности почти не отличается от обычного свича
Аноним 06/01/22 Чтв 19:59:00 #644 №2257533 
Как на вашем ГОвне вообще искать работу после других языков, если в абсолютно каждой вакансии требуют 2 года коммерческого опыта конкретно на го?
Аноним 06/01/22 Чтв 20:01:05 #645 №2257536 
>>2257533
Многие хоть и не пишут этого, но готовы рассмотреть и с опытом на других языках.
Аноним 06/01/22 Чтв 20:03:24 #646 №2257539 
>>2257536
Ну и как ты это себе представляешь, писать в резюме "я на го только хелловорлды борду и интернет магазин писал, опыта нет, зато я мидл в языке x"? Так такое резюме на этапе хрюши в помойку отправится.
Аноним 06/01/22 Чтв 20:06:06 #647 №2257540 
>>2257539
> Ну и как ты это себе представляешь, писать в резюме "я на го только хелловорлды борду и интернет магазин писал, опыта нет, зато я мидл в языке x"?
Да.
> Так такое резюме на этапе хрюши в помойку отправится.
Нет.
Аноним 06/01/22 Чтв 20:11:13 #648 №2257545 
>>2257539
Друг, я тебе, возможно, тайну открою, но джуна от миддла отличают не то, как они задрочили подводные камни конкретного языка, а опыт и знание подходов непосредственно к разработке ПО.
Аноним 06/01/22 Чтв 20:12:08 #649 №2257547 
>>2257545
Да это я понимаю, а хрюши понимают?
>>2257540
Если так, то заебись.
Аноним 06/01/22 Чтв 20:42:39 #650 №2257559 
>>2256825
>Встречный вопрос - а какая, в общем-то разница?
>>2257281
>>2257515
Меня не производительность беспокоит, я просто хотел разобраться в кишочках гоуленга...
Аноним 06/01/22 Чтв 20:46:20 #651 №2257561 
>>2257533
Озон вроде бы раньше нанимал на Го людей из других стеков технологий без требований глубокого знания го.

>>2257547
>а хрюши понимают
Ну даже если не понимают, какая от этого разница? Ты с пыхи перекатываешься или откуда? Если с пыхи или питона, то можно поискать вакансии, где требуют PHP/Golang или Python/Golang. Могут на такое взять и без коммерческого опыта в Go. Правда не факт, что на работе ты будешь разрабатывать модные молодежные микросервисы, могут заставить ковыряться вилкой в помойном легаси на пыхе.
Аноним 06/01/22 Чтв 22:44:47 #652 №2257640 
Screenshot20220106213943.png
>>2257559
> я просто хотел разобраться в кишочках гоуленга...
На эту тему не много контента, лучший выбор это сколнировать репу голенга и читать код рантайма. https://go.dev/src/runtime/iface.go

Но для начала хватит понимания что вообще такое интерфейсное значение (структура с двумя поинтерами, один из которых на рантайм-данные о типе, которые как оказалась (см комментарий на скриншоте) - в нормальных условиях является синглтоном), чтобы понимать, что проверка конкретного типа у интерфейсного значения это относительно не дорогая операция (сравнение двух адресов, т.е. сравнение двух чисел)
Аноним 06/01/22 Чтв 22:58:02 #653 №2257649 
>>2257547
> а хрюши понимают?
Не важно, что говорят крысы за спиной у кисы
Аноним 07/01/22 Птн 16:18:16 #654 №2258244 
>>2255532
тупо иди на собес в авито/вб/озон. если сольют, то проси фидбек. большой шанс, что если тебя сольют, то это будет не из-за хуевого знания гошки/микросервисов. я на похуй без опыта вкатился через стажерство в вайлдбериз, прошел только tour of go до собеса. в резюмехе были базовые знания петона, плюсов, sql и инженерная специальность по радиолокации. на своём опыте вообще не почувствовал никакую трудность вката, о которой тут пишут.
потом эти ягодные пидары сократили, но в другую контору перейти с повышением ЗП уже было максимально просто. всю эту хуйню вроде взаимодействия с серверами и как писать рест апишки за первый месяц выучишь на 95%.
Аноним 07/01/22 Птн 19:50:55 #655 №2258598 
>>2235395
давай кулстори. кто это?

И, вообще, как такие проблемы в нормальной команде надо решать?
Пример данных в базе на картинке. Произошло какое-то несоответсвие выдачи. Некто Кульпин отослал решать проблему в группе, которая пишет бэк.
Виноват Кульпин?
Аноним 07/01/22 Птн 19:51:58 #656 №2258599 
>>2258244
В каком году это было? Сейчас вб при подаче к ним на стажку просит вертеть деревья и решать задачи уровня яндекса на собесах.
Аноним 07/01/22 Птн 19:53:59 #657 №2258606 
>>2258598
Чабинский Паша из вб, не знал что-ли? По какой причине произошел такой диалог, не в курсе, но на дваче и не только это еще год назад обсуждали.

https://www.highload.ru/moscow/2018/authors/1728

https://s30132103300.mirtesen.ru/blog/43718606268/-YA-vas-v-krug-postavlyu-Kak-v-Wildberries-obschayutsya-s-podchi

https://joker.ykt.ru/2021/01/18/kak-v-wildberries-obschayutsya-s-podchinennymi.html
Аноним 07/01/22 Птн 21:10:45 #658 №2258717 
>>2258244
>но в другую контору перейти с повышением ЗП уже было максимально просто
В РФ есть нормальные места, где пишут на го, за исключением авито/вб/озона? Нормальные - без кучи легаси, с нормальным руководством и без толп вкатунов с заводов на позициях сеньоров.
Аноним 08/01/22 Суб 07:48:25 #659 №2258967 
>>2258717
Есть
Аноним 09/01/22 Вск 16:20:44 #660 №2260233 
>>2257559
Дело не в производительности, просто вопрос странный сам по себе. Это примерно как спросить "пистолет Макарова под капотом АК-47 использует"?
Аноним 09/01/22 Вск 16:23:35 #661 №2260239 
>>2260233
>>2257559
Знаю, пример долбанутый - первое, что пришло в голову.
Аноним 09/01/22 Вск 22:25:31 #662 №2260609 
Сел написать hello world на го, мне понравилось, хочу ещё. Я теперь goвноед?
Аноним 09/01/22 Вск 22:32:52 #663 №2260614 
>>2260239
Рефлексия - это такой удобный способ использования unsafe'а, когда вместо сигфолта ты получаешь паники.
Приведение к конкретному типу это вообще про другое, хотя и использует под капотом unsafe, как и почти всё в рантайме
Аноним 09/01/22 Вск 22:33:52 #664 №2260617 
>>2260609
Говноедом ты станешь, когда тебе понравятся горутины.
Аноним 10/01/22 Пнд 18:38:51 #665 №2261273 
Кто работал/работает в Озоне, расскажите, как там, живы ли братья и т. п.
Аноним 10/01/22 Пнд 23:43:45 #666 №2261573 
Есть такой странный проект tinygo. Кто-нибудь пробовал?

Так вот, если tinygo ради многопоточности вставляет в каждую строчку await, это все ебово проседает по сравнению с простейшим кодом на обычном ардунском си?
Аноним 11/01/22 Втр 00:50:52 #667 №2261610 
>>2261573

там стандартные llvm корутины

простейший код на си всегда будет быстрее

перфоманс на уровне плюсов, там теже таргеты, что и у llvm - только достаточно перфомные микроконтроллеры, так что ничего все будет норм.
Аноним 11/01/22 Втр 10:37:46 #668 №2261756 
>>2261610
Дело в том что я еще не знаю что такое стандартные горутины.
Мне нужно оценить перспективу в это ввязываться.
Действительно ли после каждого оператора происходит неявный вызов кода?

Хотел попробовать обрабочик звука сделать.

выхода у меня два:
писать на micropython с кусками кода на C
Go, где интерфейсы с железяками плохо доделаны, но я могу рассчитывать, что производительность как Си потянет мое DSP.

При этом мне просто не нравится Си и все эти исторически сложившиеся таймеры в ембедеде.

Хороша ли идея использовать tinygo ?
Аноним 11/01/22 Втр 12:46:58 #669 №2261869 
>>2260617
Но ведь горутины с точки зрения разработки практически ничем от отличаются тредов - те же рейсы, те же дедлоки. Их отличие от обычных тредов больше в производительности, т.к. они являются абстракцией над тредпулом они получаются более легковесными, вот и всё.
Отличительная особенность го это именно каналы как встроенный в язык тип => имеем дефакто стандартный способ общения горутин
Аноним 11/01/22 Втр 18:52:14 #670 №2262272 
>>2261756

нет, что микропитон, что тиниго подходят только для энтузиастов "поиграться"

хочешь нормально - пиши на с

хочешь поиграться - бери тиниго, о производительности не парься.
Аноним 12/01/22 Срд 02:03:32 #671 №2262506 
>>2261273
моему дружку нравится, бухают по пятницам в офисе, подробнее хз
Аноним 12/01/22 Срд 22:21:59 #672 №2263482 
Что произойдет, если вызвать в горутине продолжительную по времени операцию? Например чтение из большого файла или чтение из сокета, куда данные медленно поступают. Реальный системный поток так или иначе заблокируется, пока не будут считаны все данные, так? И что тогда делают остальные горутины? Ждут, пока занятая долгой операцией горутина закончит свою работу, после чего планировщик на этот поток ставит другую горутину? Разве будет от этого выигрыш в задачах, связанных с IO?
Я думал всегда, что механизм какого-нибудь epoll в этом плане более производительный и удобный.
Аноним 12/01/22 Срд 23:20:58 #673 №2263522 
>>2263482
Я так понял, что блокирующий IO вызов в горутине просто отдается в netpoller, где как раз с помощью epoll/kqueue отслеживается состояние IO задачи. А в это время на поток, где ранее была горутина с блокирующим вызовом, помещается другая горутина. В целом умно, хуле скажешь.
Другое дело, что если блокирующую задачу нельзя с помощью epoll/kqueue отслеживать, то пизда всему сущему - системный тред заблокируется, и с этим, похоже, что ничего не поделаешь.

Тогда другой вопрос. Вот эти все обращения к БД, они же через сокеты идут, а значит их можно в netpoll отдать и системный поток не будет блокироваться в ожидании результатов какого-нибудь селект запроса?
Аноним 13/01/22 Чтв 00:05:42 #674 №2263535 
>>2263522

угу, все так

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

>Тогда другой вопрос. Вот эти все обращения к БД, они же через сокеты идут, а значит их можно в netpoll отдать и системный поток не будет блокироваться в ожидании результатов какого-нибудь селект запроса?

в целом, зависит от драйвера
но в подавляющем количестве случаев драйверы асинхронные, и блокировки не будет
Аноним 15/01/22 Суб 15:31:17 #675 №2265677 
>>2263535

кстати, я чуть позже все-таки нашел как оно работает

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

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

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

а поток выполнения продолжает работать со своими горутинками

как-то оно так работает
Аноним 15/01/22 Суб 20:34:18 #676 №2265978 
>>2165418 (OP)
>- Емкий пошаговый гайд с азов до джуна (go tour на максималках): https://www.practical-go-lessons.com/
ого, это что такое? говно какое-то или норм тема? насколько утверждение про джуна - фантазии ОПа-хуя?
мне не для вката, а так, чисто просто интересно
мимо
Аноним 16/01/22 Вск 18:12:01 #677 №2266958 
>>2165418 (OP)
>пункт "Learning Go"
Нет такого пункта. Вопрос, какая должна быть структура каталогов где писать код? Левые стайлгайды говорят, что нужно создать 10+ каталогов, в том числе cmd для бинарников, хотя для них автоматические создается каталог bin.
Аноним 16/01/22 Вск 20:58:00 #678 №2267098 
>>2266958

https://wcademy.ru/%D0%9A%D0%B0%D0%BA%20%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%20%D0%BD%D0%B0%20go/
Аноним 16/01/22 Вск 21:11:34 #679 №2267118 
>>2258717

нормальные места для гошки - вотвася, нигде дикого легаси еще написать на нем не умели

либо на забугор, на митера джона

остальные конторы - говно
Аноним 16/01/22 Вск 22:11:22 #680 №2267164 
>>2267098
Пасиба!
Аноним 17/01/22 Пнд 10:48:57 #681 №2267492 
image.png
Отвратительная мерзкая параша прямиком из семидесятых вот что такое это ваше говно. Я срал ебал!
Аноним 17/01/22 Пнд 11:52:49 #682 №2267577 
Только бездари называют переменные одной буквой.
Аноним 17/01/22 Пнд 12:51:55 #683 №2267629 
>>2267577
Автодополнение придумали не от хорошей жизни.
Аноним 17/01/22 Пнд 13:19:21 #684 №2267666 
>>2165418 (OP)
>В обязательном порядке проходим Go Tour: https://tour.golang.org/welcome/1 (есть на Русском)
Нетути на русском
Аноним 17/01/22 Пнд 13:52:20 #685 №2267695 
https://go.dev/doc/tutorial/generics
что с ебалом, хкйтеры?
Аноним 17/01/22 Пнд 13:54:23 #686 №2267697 
>>2267695
Теперь будем продавливать эксепшены.
Аноним 17/01/22 Пнд 20:34:27 #687 №2268197 
>>2267697

эксепшоны не нужны
нужны option и result типы + немного синтаксического сахара поверх
и будет вообще красота
Аноним 17/01/22 Пнд 22:03:42 #688 №2268296 
Что насчёт переката? А то даже у рубистов тред не тонет, а вы тут вообще где-то в параше, только по тегу и находит.
Аноним 17/01/22 Пнд 22:10:53 #689 №2268303 
>>2268296
Перекати.
Аноним 17/01/22 Пнд 22:12:11 #690 №2268306 
>>2268296

а зачем?
пока не грохнулся - норм, зато залетных почти нет
Аноним 18/01/22 Втр 05:07:38 #691 №2268513 
>>2267577
И errdefer, как в zig
Аноним 18/01/22 Втр 14:37:49 #692 №2268921 
>>2268306
>залетных почти нет
так вообще никого нет
Аноним 18/01/22 Втр 15:05:05 #693 №2268964 
>>2165418 (OP)
Давайте посмотрим кто из местных сеньюров сможет пройти собес на вкатухскую вакуху джуна говнолэнщика.


1. Чем отличается аутентификация и авторизация?
2. Какие есть модели контроля уровня доступа?
3. Дай определение и область применения SAML. Какие преимущества, недостатки и альтернативы?
4. Как ты понимаешь термин Non-Repudiation?
5. В чём заключается CAP теорема?
6. Опиши алгоритм работы равт протокола.
7. Зачем нужен кворум в распределёных системах? Какие преимущества и недостатки системы работающей без кворума?
8. Назови функции девопса в команде.
9. Чем отличаются end to end тесты от интеграционных?
10. Назови принципы SOLID.
11. Что такое "пахнущий" код? Опиши несколько примеров такого кода
12. Какие отличия sql от nosql баз данных? Когда стоит применять какие базы?
13. Назови ACID принципы.
14. Чем оптимистик лок отличается от писимистик лока?
15. Что такое мастер-слэйв (ридонли) реплика? Чем она отличается от эктив стэндбай реплики?
16. Опиши как работает хэндшейк в TCP.
17. Что такое nagle algorithm?
18. Как при сканировании отличить закрытый TCP порт от защищёного фаерволом?
19. В чём разница хтпп первой и второй версии?
20. Какие бывают атрибуты у кук?
21. Какой хейдер ставит вебсервер при проксировании запроса?
22. Опиши когда применяют post-mortem, ретроспективу и root cause analysis?
23. Для чего в гите blame, cherry pick и bisect?
24. В чём разница ручного, полуручного и автоматического пайплайна? Когда какой стоит использовать?
25. Чем отличается фабрика от абстрактной фабрики?

Ну и хватит. Кто тут пройдёт собес на джуна?
Аноним 18/01/22 Втр 18:09:43 #694 №2269250 
>>2268964

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

лично я не знаю ответов на

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

> 17. Что такое nagle algorithm?
> 18. Как при сканировании отличить закрытый TCP порт от защищёного фаерволом?

это что-то что обычному программисту не нужно
Аноним 18/01/22 Втр 20:04:38 #695 №2269373 
>>2267666
Там есть инструкция как локально развернуть, там был русек, но очень васянский - с КАРТОЙ вместо map хорошо хоть слайс не перевели как нарезку
Аноним 18/01/22 Втр 20:28:08 #696 №2269389 
Решил попробовать ваше Goвно после нормального языка. И сразу вопрос. Почему JSON разбирается независимо от регистра ключей? Вам там делать нехуй?
Аноним 18/01/22 Втр 20:44:24 #697 №2269404 
>>2269389
Пиздец, и эту фичу даже выключить нельзя.
Аноним 18/01/22 Втр 20:46:20 #698 №2269407 
>>2269389
Лол, после if err != nil у тебя ещё остались вопросы, а не только желание выбросить этот калл и вымыть руки?
Аноним 18/01/22 Втр 21:07:40 #699 №2269427 
>>2269389
Нихуя тебя не понял.
>JSON разбирается
Что это значит? Скинь пример на го плейграунд
> независимо от регистра ключей?
Ключей в json-объекте, го мапе, полях структуры?
> Вам там делать нехуй?
if thingsToDelat == nil {
return nil, errors.New("da, nam norm")
}
Аноним 18/01/22 Втр 22:45:35 #700 №2269585 
>>2269407
Мне надо написать небольшую кроссплатформенную хуйню, показалось, что Go подходящий инструмент. Но уже всё понял.
Аноним 18/01/22 Втр 22:51:35 #701 №2269594 
>>2269427
Что тебе не понятно? Берём любую программу на Go, работающую с JSON вида {"Hui":"pizda"} и страктом Hui. Начинаем ей кормить JSON вида {"Hui":"pizda","HUI":"anus"}. Программа берёт HUI несмотря на регистр и ебётся в anus. As expected?
Аноним 18/01/22 Втр 23:33:45 #702 №2269671 
>>2269594
Ты даже пщ не осилил, куда тебе до джсона...
https://go.dev/play/p/CC0GhEphC9j
Аноним 19/01/22 Срд 00:10:43 #703 №2269704 
>>2269671
> Ты даже пщ не осилил, куда тебе до джсона...
В голос

>>2269594
Без твоего кода нельзя сказать точно, но ты, скорее всего, проебался на том, что не прочитал документацию по json пакету, где сказано, что чтобы маршалить го структуры в json объекты или анмаршалить наоборот - тебе нужно чтобы все интересующие тебя в этом плане поля были экспортируемыми, т.е. с большой буквы. по тому что пакет рефлексии, который пакет json использует для работы искусственно ограничивает работу с приватными полями. Если очень надо - юзай unsafe
Если у тебя в json объекте ключи с маленькой буквы - тебе нужно использовать специальные struct tags.
Как, например, тут https://go.dev/play/p/-wWcGgp4hbe
Пройди, блядь, ебучий тур по го, он охуенный
Аноним 19/01/22 Срд 00:33:01 #704 №2269726 
Сусланы, вбросьте какой-нибудь годный таториал по вёрстке production grade CRUD'ов. Перекатываюсь сейчас с долгих лет фронтенда в джуниор Го. Кодать как — разобрался, делать нетривиальные рест сервисы — тоже. Но всё это учебные проекты. А как сделать буллет пруф продакшон грейд рест эйпиай энд сак сам дик чёт пока не разобрался. Может быть есть какой-то гайд что надо реализовать чтобы приложение было годным и его не стыдно было показывать на собесе прожжённым гоферам? Я пока на вскидку сделал всё чтобы 12 factor app'у соответствовать тяжело идёт обучение без ежедневного код ревью как привык, но не покидает ощущение что этого мало.
Аноним 19/01/22 Срд 00:38:25 #705 №2269730 
>>2269726

https://threedots.tech/series/modern-business-software-in-go/

там много о clean architecture + ddd + как писать на гошке
Аноним 19/01/22 Срд 00:58:57 #706 №2269747 
>>2269704
https://go.dev/play/p/fG4MlSBC39i
Аноним 19/01/22 Срд 01:01:15 #707 №2269751 
>>2269671
>>2269704
https://go.dev/play/p/ZSYjPAuYXtP
Аноним 19/01/22 Срд 02:52:32 #708 №2269843 
16269680871300.png
>>2269751
Ну а вот в этот пример го не может...

>To unmarshal JSON into a struct, Unmarshal matches incoming object keys to the keys used by Marshal (either the struct field name or its tag), preferring an exact match but also accepting a case-insensitive match. By default, object keys which don't have a corresponding struct field are ignored (see Decoder.DisallowUnknownFields for an alternative).

Засим отправляю вас к https://github.com/mailru/easyjson
Аноним 19/01/22 Срд 20:35:40 #709 №2270791 
>>2269726
>буллет пруф продакшон грейд рест эйпиай
в компаниях по-разному. где-то десятки пакетов по 30 строк кода и мемы про чистую архитектуру и DDD, где-то https://medium.com/@matryer/how-i-write-go-http-services-after-seven-years-37c208122831 все роуты в одном пакете и сотни строк в каждом пакете - норм. на джуна в обоих случаях должен пройти, если собеседующие не ебаны. если и ты, и собеседующие не ебаны, то у тебя вообще тестовых заданий быть не должно и в первые недели ты будешь поставлен на колени делать код как в остальных проектах команды. единственное что я блять увидел за 3 места работы это то что все имеют пакет с модельками названный models
Аноним 21/01/22 Птн 01:10:14 #710 №2272015 
>>2268306
И тут го перенимает традиции жавы.
Как думаете, через 10-15 лет станет ли го второй жабой в плане легасе?
Аноним 21/01/22 Птн 01:30:09 #711 №2272019 
>>2272015
Почему именно жабы? Половину языковых тредов перекатывают после 1000 под тем же предлогом.
Аноним 21/01/22 Птн 10:10:45 #712 №2272106 
Как вы смирились с тем, что для обозначения приватных членов используется запись имени с нижнего регистра? Это же хуже даже чем m_*, почему нельзя было добавить модификатор, как static из C или private из ООП языков? Зачем уродовать код? Использовать lowerCamelCase, когда во всем коде используется CamelCase. Вкусовщина, но я не понимаю.
Аноним 21/01/22 Птн 10:14:40 #713 №2272108 
>>2272106
В дополнение, как вы смирились с ограничением количества слов в названии пакетов до одного? Это же не дает вообще никакого понимания откуда этот пакет, что он делает, может быть вообще это другой пакет, а не который вы ожидаете. И вы это не поймете пока не посмотрите на импорт или на сам пакет.
Аноним 21/01/22 Птн 10:18:36 #714 №2272109 
>>2272106
>>2272108
И еще, вам серьезно нравится указывать в импортах ссылки на гитхаб? Почему в Go не завезли менеджер пакетов? Как у того же питона? Почему я не могу создавать проекты в любой директории, в которой хочу? Зачем мне нужен, GOPATH?
Аноним 21/01/22 Птн 20:58:05 #715 №2272717 
>>2272109
ты из какого года вылез? два года назад уже всё было когда я устраивался стажером
Аноним 21/01/22 Птн 21:07:17 #716 №2272726 
>>2272109
Не забывай обновлять методичку, ты за это деньги получаешь. С пакетами они разобрались, дженерики уже есть в бета-версии, скоро и эксепшены подвезут.
Аноним 22/01/22 Суб 00:08:00 #717 №2272849 
>>2272726

да сколько можно

эксепшенов не будет, да и они и не нужны

поверх error норм встанут монады

осталось только добавить синтаксического сахара, что бы уйти от if err!= nil
Аноним 22/01/22 Суб 00:08:16 #718 №2272850 
>>2272726

да сколько можно

эксепшенов не будет, да и они и не нужны

поверх error норм встанут монады

осталось только добавить синтаксического сахара, что бы уйти от if err!= nil
Аноним 22/01/22 Суб 01:31:12 #719 №2272920 
>>2272108
> как вы смирились с ограничением количества слов в названии пакетов до одного
Это не ограничение, это скорее рекомендация. На практике там часто 2 и иногда даже 3. Даже в стандартной либе есть по два слова.
Название пакета это название неймспейса, он не должен быть подробным описанием что это такое и для чего.
> Это же не дает вообще никакого понимания откуда этот пакет
Полный путь импорта более чем достаточно для понимания.
Аноним 22/01/22 Суб 19:39:49 #720 №2273594 
>>2272108
если уж нужно, то либо составное слово, либо аббревиатура. но внутри приложения обычно всё понятно. еще в серьезных компаниях автосгенерированный код может и с андерскорами в названии пакетов быть, поэтому в названиях самописных пакетов тоже их используют и не ебут мозги, хоть и неидеоматично. а для публичных либ не должно быть так уж трудно короткие названия придумать. если в твоей либе больше трех пакетов которые нужно импортить, то ты вообще пидор.
>>2272106
неиронично одна из лучших фич. делал себе скрипт штобы сишарп в го переписывать так это ебота лишние кейворды приходится стрипать плюс нихуя не понятно какое дополнительное понимание они привносят, кейсинг хотя бы дополнительно виден в точке вызова
Аноним 24/01/22 Пнд 17:33:19 #721 №2275671 
Дратути, стоит врываться в Go фанату С++? Посмотрел на ЗП и чет приуныл как Джуны С++ слегка отсасывают.
Аноним 25/01/22 Втр 12:15:20 #722 №2276246 
Блядь, какого хуя нету нормальной документации по Aerospike?
Заебись у них тупа на спйте лежит страница с описание в духе
«Метод получитьСписок - возвращает список»,
Примеров ноль, зато блядь поддержу pred exp выключили сука
Аноним 25/01/22 Втр 13:28:17 #723 №2276321 
>>2275671
Нет, в го все еще почти что нет вакансий для джунов или стажеров.
Лучше поработай год-два на пыхе или питоне, а потом в го вкатывайся.
Аноним 25/01/22 Втр 17:21:53 #724 №2276576 
>>2276246
Зачем вообще его использовать?
Аноним 25/01/22 Втр 17:46:55 #725 №2276619 
518hujD6CxL.SX430BO1,204,203,200.jpg
Чет горит от этого GO... Девупс который ничего кроме баша, ямла, и немного груви не умеет в треде.

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

Возникает куча вопросов, по релокации памяти, пустым интерфейсам, алгоритмам итд итп.
Думаю может есть какие-то репетиторы? менторы? Больно во всем этом разбираться самому. Не представляю как в ГО вкатываются с 0 самостоятельно.
Аноним 25/01/22 Втр 18:30:25 #726 №2276703 
>>2165418 (OP)
Аноны экс-джависты, можете пояснить почему/зачем вы перекатились на го? Я сам вкатун в пхп и понимаю, что с него придется перекатываться, чтобы начать деньги зарабатывать. Но вам это зачем, чем жаба не устраивала, там же вроде норма платят? Или доебала "корпоративная" культура, или проекты унылые?
Аноним 25/01/22 Втр 20:16:07 #727 №2276814 
>>2276703
>доебала "корпоративная" культура, или проекты унылые
И то, и другое. Ну и легаси конечно же.
Сам подумай, в джаве ты только и делаешь, что годами перекладываешь XML и джейсоны с помощью спринга, попутно разбираясь в крайне унылой бизнес логике предприятия или банка.

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

Ну и вообще скилловые джависты уходят в скалу или го обычно, а джава наполняется вкатунами с заводов и бывшими таксистами, уровень коллективов падает ежегодно.
Аноним 25/01/22 Втр 20:38:46 #728 №2276839 
>>2267492
> go
> defer
> chan
> select
> мерзкая параша прямиком из семидесятых
Будь это было так, сейчас бы асинхронный код в большинстве случаев не состоял бы из колбеков и async/await'ов
покормил хейтера
Аноним 25/01/22 Втр 20:55:28 #729 №2276857 
>>2275671
> стоит врываться в Go фанату С++
С такой формулировкой - однозначно нет, не иронично желаю продолжать наслаждаться своим языком.
Правильный вопрос - "я занимаюсь предметной областью х, в ней го вообще применимо?", тут уже можно подискутировать, если подставить разные значения х

>>2276619
> Возникает куча вопросов
Это нормально, когда изучаешь что-то новое. Задавай гуглу или итт, если последний вариант - желательно выкладывай примеры своего когда на го плейграунд
> Больно во всем этом разбираться самому. Не представляю как в ГО вкатываются с 0 самостоятельно.
Ты еще в раст/плюсы не пытался вкатываться, вот там вообще пиздец. А го один из самых простых языков с точки зрения вката.
> по релокации памяти
Не лезь в кишки без лишней необходимости. Помни про правило 20/80
> пустым интерфейсам
Сейчас уже модно писать any, т.к. это буквально что угодно
> Думаю может есть какие-то репетиторы? менторы?
У меня всегда были сомнения в квалификации людей, которые вместо того чтобы зарабатывать килобаксы в разработке занимаются преподаванием за мелкий прайс. Единственный плюс - в универе можно поёбывать студенток
Но ИТТ все твои друзья, поможем чем сможем.
Аноним 27/01/22 Чтв 02:02:47 #730 №2278263 
goapi.jpg
Здравствуйте.
Я изучаю Го как девопс, но запутался совершенно.

Написал простую программу с sql и gorilla/mux :
package main
*db.SQL
..
{
db, err := sql.Open("postgres", connStr)
err = db.Ping() //и все это работает
}

А в другом файле и том же package main я обрабатываю запросики:

err := db.Ping()

и db == nil !

БЛЯДЬ

что вообще тут в Go происходит?
Я прямо охуеваю с этого. Что можно сделать не так в таком простом примере?

Это все по хаутушкам делаю, за исключением небольших своих добавлений.
Из отличий от примитивных программ из инета у меня просто на разные файлы разбито и gorilla/mux .

Думаю, я какую-то детскую ошибку совершил. Может кто угадает какую?
Аноним 27/01/22 Чтв 04:14:06 #731 №2278305 
>>2278263
> Думаю, я какую-то детскую ошибку совершил
Да, скорее всего так и есть. В хендлере db это глобальная переменная, так ведь?

>{
>db, err := sql.Open("postgres", connStr)
>err = db.Ping() //и все это работает
>}
Тут ты создаешь локальную переменную db, область видимости которой ограничена фигурными скобками, не важно при этом это просто блок из фигурных скобок или функция. Создав локальную переменную с именем db ты теряешь возможность обратиться к глобальной переменной db. Подробнее разжевано тут:
https://golang-blog.blogspot.com/2020/05/shadowed-variables-in-golang.html
Аноним 27/01/22 Чтв 10:31:01 #732 №2278386 
>>2278305
>>db, err := sql.Open("postgres", connStr)
да, ты прав. я тупанул.

А разве компилятор не должен быть обнаружить затенение?
Ужасный язык.
Аноним 27/01/22 Чтв 12:31:41 #733 №2278475 
>>2278386
Затенение это легально, и иногда нужно. Поэтому ошибки нет
Аноним 27/01/22 Чтв 13:24:25 #734 №2278547 
https://hh.ru/vacancy/51699779?from=vacancy_search_list&hhtmFrom=vacancy_search_list&query=go

Налетаем!
Аноним 27/01/22 Чтв 13:33:37 #735 №2278559 
>>2278547
> 1990 отзывов
Аноним 27/01/22 Чтв 13:37:21 #736 №2278564 
>>2278547
> Blockchain Lab
Дальше не читал.
Аноним 27/01/22 Чтв 13:42:39 #737 №2278567 
>>2278564
Чел, ты собрался работать в помойном озоне и wb у торгашей?
Сейчас вся топовая работа на голанге - это блокчейн...
Аноним 27/01/22 Чтв 14:12:22 #738 №2278591 
Эксперты по стекам технологий здесь? Стоит ли перекатываться с жабы в гоуленг в 2х22 году?
Аноним 27/01/22 Чтв 15:13:35 #739 №2278699 
>>2278591
>>2276814
Аноним 27/01/22 Чтв 15:30:19 #740 №2278723 
>>2276814
>>2278699
Это сообщение я же и написал, попутно нафантазировав о том, что можно писать свои кривые велосипеды, так как в гоуленге не принято пользоваться фреймворками...
А как в действительности это дело обстоит?
Аноним 27/01/22 Чтв 15:56:15 #741 №2278756 
>>2276619
С нуля туда и не вкатываются, переходят с других ЯПов обычно. Предлагаю тебе сначала базовый Си изучить.
Аноним 27/01/22 Чтв 16:48:39 #742 №2278817 
>>2278723
Я не писал на джаве, по этому мне сложно сравнивать.
> можно писать свои кривые велосипеды, так как в гоуленге не принято пользоваться фреймворками
Ты так говоришь, словно в го вместо веб-сервера голый TCP-сокет и вокруг него нужно написать свой веб-сервер.
Или что каждый день гоферы сидят и свои велосипедные недо-фреймворки пишут под каждый проект.
Я на го работал на 2-х проектах, и в каждом была запилена очень тонкая абстракция над стандартным http + внешним роутером, и больше никто ничего не дополнял годами.
Я только однажды добавил сервить embedded files
А большую часть времени что так, что эдак - ты всё равно пилишь бизнес-логику.
А то что в го не принято использовать фреймворки значит приблизительно тоже самое, что и когда говорят что react.js это не фреймворк - что мы вместо одной жирной зависимости которая умеет вообще всё импортируем десяток узкоспециализированных зависимостей по необходимости. DI отдельно, генерация документации отдильно, ORM/драйверы бд - отдельно.
Аноним 27/01/22 Чтв 16:49:43 #743 №2278820 
>>2278817
Я только однажды добавил возможность сервить embedded files
быстрофикс
Аноним 27/01/22 Чтв 19:44:23 #744 №2279093 
https://www.youtube.com/watch?v=yyUHQIec83I
Ваше мнение об ЭТОМ? Индуска нагло зарабатывает на еду, впаривая базу под видом курса? или годный контент?
Аноним 27/01/22 Чтв 21:32:11 #745 №2279211 
>>2279093
Видеоконтент это в 99% случаев хуита для слабоумных, по тому что нет других причин смотреть 30 минут видео вместо того, чтобы прочитать этот материал тестом минут за 7-10
Аноним 28/01/22 Птн 07:10:26 #746 №2279479 
>>2279211
Ну так текстом слишком сухо для слабоумных, а тут подача и итеративный пример. Хотя в целом согласен.
Аноним 28/01/22 Птн 12:03:39 #747 №2279676 
Хорошая ли идея валироровать Json'ны с помощью validator v10?
Аноним 28/01/22 Птн 13:14:47 #748 №2279741 
На чем быстрее будет работать круд с рест апи и почему - на го или на пхп? Догадываюсь, что на го. И ещё - его же можно будет просто на сокет повесить через tcp порт? И будет ли при этом какой-то выигрыш у http?
Аноним 28/01/22 Птн 13:37:19 #749 №2279751 
>>2279741
> На чем быстрее будет работать круд с рест апи и почему - на го или на пхп? Догадываюсь, что на го.
Если это действительно круд, Go будет незначительно быстрее.
> И ещё - его же можно будет просто на сокет повесить через tcp порт? И будет ли при этом какой-то выигрыш у http?
Это как? Невозможно, конечно. Рест гвоздями прибит к http, который работает поверх tcp.
Аноним 28/01/22 Птн 15:46:41 #750 №2279887 
>>2279741
Смотря что ты поднимаешь под CRUD.
Если то что ты обычно пишешь на php - нет.

Правильный бекенд на Go делает какую-то логику : проверяет права, отдает "глобальные" данные , накапливает и откладывает обновления в базу.
В этом случае, конечно на Go быстрее даже для мелкого бизнеса.
Аноним 28/01/22 Птн 19:21:01 #751 №2280223 
>>2279751
> Это как? Невозможно, конечно. Рест гвоздями прибит к http, который работает поверх tcp.
Точно, забыл про это. Ну а если не именно rest юзать, а что-то другое? Типа какой-нибудь бинарный протокол юзануть или тот же grpc?

Задача простейшая, уровня "принять джысон - отдать джысон", прочитать/записать данные из базы. Авторизация будет через OAuth. Желательно прикрутить сваггер.

>>2279887
> Смотря что ты поднимаешь под CRUD.
Описал выше.

> Если то что ты обычно пишешь на php - нет.
Блин, откуда столько пафоса, пчел? Откуда ты знаешь, что я там обычно пишу на пхп?

Понятно, что бинарник будет быстрее интерпретируемого япа, я пытаюсь понять, на сколько конкретно, скорей всего сделаю два варианта и напишу какую-нибудь тестилку, которая будет бомбить запросами и сравню.
Аноним 28/01/22 Птн 19:25:52 #752 №2280231 
Подскажите, вот эта конструкция

> type customError uint

что конкретно делает? Создает алиас для uint но с кастомным именем, правильно понимаю?

Типа, uint(i) == customError(i)?
Аноним 28/01/22 Птн 19:57:54 #753 №2280260 
>>2280231
Нет, то что ты описал делает конструкция
> type customError = uint
А твоя же конструкция создает отдельный тип, который основан на базовом типе uint, но уже имеют другой набор методов, по этому имлементит другой набор интерфейсов.
Аноним 28/01/22 Птн 20:05:25 #754 №2280267 
>>2280260
Спасибо. А что значит "основан на базовом типе"? При инициализации переменной принимает значения этого типа?
Аноним 28/01/22 Птн 20:06:29 #755 №2280268 
>>2280267
А хотя чего это я. Пойду доку открою
Аноним 28/01/22 Птн 20:24:55 #756 №2280292 
ba31943fc5795429b055f2c9f17afc10.png
>>2280223
> я пытаюсь понять, на сколько конкретно
Если тебе действительно важно увидеть конкретные цифры на конкретном железе в конкретном окружении - тебе только бенчмарк поможет.
Если же речь "на сколько оно будет быстрее? Так, примерно, можешь почувствовать?" - в теории у тебя 99.98% времени будет занимать работа с сетью и диском и разницу ты почувствуешь только на очень большом скейле.
Аноним 28/01/22 Птн 20:30:04 #757 №2280299 
>>2280267
Это значит что оно в памяти лежит лежит одинаково и можно его кастить из одного типа в другой. Ну и да, при инициализации оно имеет одинаковое zero value
>>2280268
Это называется underlying type, ищи по этому термину
Аноним 28/01/22 Птн 20:58:10 #758 №2280333 
15489412812352.jpg
>>2280299
Спасибо!
Аноним 29/01/22 Суб 13:13:45 #759 №2280672 
>>2280292
Ну да, я же и собираюсь сделать бенчмарк.
Какой скейл считается очень большим? 1-10 миллионов записей за раз?
И ещё я понял, что существует очень большой выбор веб-фреймворков и прочего, сейчас выписываю в отдельный файлик все эти проекты.
Вот уже какой список:
https://github.com/labstack/echo
https://github.com/gin-gonic/gin
https://github.com/gofiber/fiber

Ну и net/http, конечно.
Аноним 29/01/22 Суб 16:15:18 #760 №2280782 
>>2280672
Классика для го это net/http + gorilla mux, это сочетание отражает производительность усредненного бекенда на го.

Но максимальную производительность ты выжмешь только на https://github.com/valyala/fasthttp + нестандартные json либы, которые не используют рефлексию
> Какой скейл считается очень большим? 1-10 миллионов записей за раз?
Тут зависит от железа же. Я бы в твоем случае арендовал за 5-15$ виртуалку и посмотрел сколько максимум реквестов в секунду можно выжать на этом железе при около-нулевом количестве 500-х ответов.
Потом можно будет еще с настройками ОС поиграться, если еще желание останется.
Аноним 29/01/22 Суб 19:10:31 #761 №2280939 
>>2280223
>Блин, откуда столько пафоса, пчел? Откуда ты знаешь, что я там обычно пишу на пхп?

Может быть потому что я писал и на php и на go ?

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

Главное отличие всех бекэнд-решений не на php - глобальная инициализация и достигаемое этим качественно иная производительность. Это почти всегда лучше php.
Аноним 29/01/22 Суб 19:16:19 #762 №2280946 
Расскажите мне лучше, вот есть Язык. Но где Фреймворк?

Что скрывает Google?
Что известно об их способе использования Go?
Аноним 29/01/22 Суб 19:24:50 #763 №2280954 
И еще один вопрос:
что произошло с библиотекой tensorflow ? Почему ее для Go больше не поддерживают? В книжках еще можно найти примеры использования, но сейчас как будто все закрылось.

Каков современный способ доведения до продашкшона ML-приложений по обработке каких-нибудь картиночек? Неужели в питон через веб-апи пихают?
Аноним 29/01/22 Суб 21:17:19 #764 №2280991 
>>2280946

а накуя? это не го вей

net/http более чем достаточно для всего
для чуть большего удобства есть фреймворки - тонкие надсстройки на роутером

усё
остальное от лукавого

(ну ладно, в некоторых обстоятельства net/http можно заменить на fasthttp - чувак невероятно крутую работу проделал)
Аноним 29/01/22 Суб 21:26:22 #765 №2280997 
>>2280991
вопрос не в том, что есть "го-вей".

вопрос, ПОЧЕМУ так сложилось? Какие идеи у Пайка с его бандой? Что ожидать в будущем?

В конечном счете, вопрос, стоит ли МНЕ изучать Go, но на этот вопрос никто из вас не даст ответа. Поэтому нужно понять откуда это все пришло и куда придет.
Аноним 29/01/22 Суб 21:37:11 #766 №2281006 
>>2280997

идея в том, что все должно быть просто, понятно, быстро и без магии

точка

за это опытные программисты и любят гошку
Аноним 29/01/22 Суб 21:37:57 #767 №2281008 
>>2280939
> Может быть потому что я писал и на php и на go ?
> потому что ты не мог написать код на php использующий глобальную инициализацию и разделяемые между запросами переменные(я хз как они там это называют, но сейчас активно движутся в этом направлении).
На пыхе есть асинхронные фреймворки, Swoole, ReactPHP и ещё там что-то.

> глобальная инициализация
Что ты под этим понимаешь? Давай поподробнее.
Аноним 29/01/22 Суб 21:51:02 #768 №2281024 
>>2281008
типичная ситуаци>>2281008
>На пыхе есть асинхронные фреймворки, Swoole, ReactPHP и ещё там что-то.
И их никто не использует. Нет культуры написания непрерывно работающих приложений.

>> глобальная инициализация
>Что ты под этим понимаешь? Давай поподробнее.
Смотрю, ты настоящий пхпшник.

По этим я понимаю все варианты переиспользования результатов работы любого кода. Глобальные переменные хранящие все что угодно - кеш курс доллара, права админа, токены-хуекины, словарь спам-слов.
Аноним 29/01/22 Суб 21:55:41 #769 №2281026 
>>2281024
> И их никто не использует. Нет культуры написания непрерывно работающих приложений.
Это да, согласен.

> >> глобальная инициализация
> >Что ты под этим понимаешь? Давай поподробнее.
> Смотрю, ты настоящий пхпшник.
> По этим я понимаю все варианты переиспользования результатов работы любого кода. Глобальные переменные хранящие все что угодно - кеш курс доллара, права админа, токены-хуекины, словарь спам-слов.
А тут какой-то бред пошёл. $GLOBALS тебе на что?
Кеш обычно в редисе держат.
Что ты там разрабатывал-то на пыхе, персональные хоумпаги?
Аноним 29/01/22 Суб 22:22:47 #770 №2281041 
>>2280997
Потому что проще и легче использовать несколько мелких библиотек, чем один огромный помойный легасный фреймворк по типу asp.net или spring.
Аноним 29/01/22 Суб 22:33:36 #771 №2281047 
>>2281041
Какие фреймы в го считаются огромно-легасными, чтобы не запомоиться?
Аноним 29/01/22 Суб 23:26:03 #772 №2281073 
>>2281047

beego, gorm
Аноним 29/01/22 Суб 23:32:20 #773 №2281077 
>>2281073
Спасибо, буду учить.
Аноним 29/01/22 Суб 23:48:23 #774 №2281086 
>>2281026
Ох, не хочу продолжать дискутировать с пришибленным пхп человеком.
Просто изучи как тут все работает, а потом поймешь почему так быстро.


Вопрос лишь в том, готов ли ты и твой кабанчик эту эффективность оплачивать.
Аноним 29/01/22 Суб 23:49:49 #775 №2281088 
>>2281026
Пафосный тон просто необходим чтобы ты осознал насколько все хуево.
Аноним 30/01/22 Вск 05:37:06 #776 №2281234 
>>2281006
>просто, понятно, быстро и без магии
>JSON разбирается независимо от регистра ключей
Аноним 30/01/22 Вск 13:05:19 #777 №2281424 
>>2281041
но ведь если все используют один и тот же фреймворк, то ты просто можешь нанимать программистов с улицы. или перекидывать между проектами не тратя время на адаптацию ( как в Google) .

(((Они)) что-то скрывают.
Аноним 30/01/22 Вск 13:59:00 #778 №2281461 
Аноны подскажите ньюфагу, плез.
Собираюсь перекладывать данные из 1 сервиса в другой. Первый сервис это Opensearch (elasticsearch) отдающий документы в json'ах.
У программы (перекладывателя) будет файловый конфиг, в котором я напишу как и в какие индексы opensearch сходить и какие поля документов мне интересны.
Проблема в том, что я не могу в момент конпеляции задать статически типы структур интересующих меня полей документов, чтобы натянуть на них получаемые по http json'ы, потому что в момент момент конпеляции они еще не известны. И станут известны только в момент выполнения, чтения конфига.
В какую сторону копать?
Аноним 30/01/22 Вск 14:33:40 #779 №2281495 
>>2281461
Похоже мне надо что-то типо вот этого https://go.dev/play/p/yFDL7d-yVDO
Аноним 30/01/22 Вск 21:23:53 #780 №2281866 
>>2281424
Ты перекурил, по ходу, заговоры мерещатся. Тебе же уже сказали, что в го должно быть везде всё просто.
Я вот в сторону echo сильно посмотриваю, как вкатун. Очень уж сильно просто там всё. Есть подводные?
Аноним 30/01/22 Вск 22:12:50 #781 №2281922 
>>2281866

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

лично мне fiber нравится
Аноним 30/01/22 Вск 23:49:18 #782 №2282030 
https://pastebin.com/LQRzCZqh

Почему я не могу делать foo.Execute(MoveLeft{}), но могу foo.Execute(&MoveLeft{}), если в сигнатуре метода объявлено, что получаем параметр не по ссылке?
Аноним 31/01/22 Пнд 01:21:18 #783 №2282089 
>>2280946
> Что известно об их способе использования Go?
Монорепы на десятки гб, гора кодогенерации и тестов
Общение между сервисами по grpc
Аноним 31/01/22 Пнд 01:35:47 #784 №2282097 
>>2280954
> Каков современный способ доведения до продашкшона ML-приложений по обработке каких-нибудь картиночек?
https://youtu.be/Ib934FGLsCU
https://youtu.be/-fXQN2cbhF8
Аноним 31/01/22 Пнд 03:40:13 #785 №2282132 
>>2281461
Если тебе буквально нужно переложить json - то тебе и парсить его не нужно, можно просто слайс байт прочитать и передать его в другое место, или даже io.Copy сделать, если возможно. А так да, либо мапа с пустыми интерфесами, либо с https://pkg.go.dev/encoding/json#RawMessage, если нужно какое-кто конкретное значение вытащить.
Аноним 31/01/22 Пнд 07:29:57 #786 №2282156 
>>2281922
Ну в пыхе например фреймворк - это альфа и омега, всё предоставляет, от ORM до тестов. Широко распространены "макаки одного фреймворка", которые даже не представляют, что можно что-то без фреймворка делать, клепают бесконечные "сайты с админкой на ларавеле", ИЧСХ, даже деньги этим зарабатывают.
Аноним 31/01/22 Пнд 11:54:36 #787 №2282284 
>>2282156
Так это даже не пхп разработчики, а что-то уровня ларавель- или даже вордпресс-девелоперы. Теперь понятно почему у них горит от го - быть чисто "net/http" девелопером ну уж совсем зашквар какой-то
Аноним 31/01/22 Пнд 12:16:04 #788 №2282304 
>>2282284
нет, тебе привели аргумент "практика - критерий истины".
давай защищайся!
Аноним 31/01/22 Пнд 12:38:20 #789 №2282318 
>>2282156
Сайты с админкой на одном фреймворке клепают для жадных кабанов с простыми требованиями, потому что зачем придумывать что-то сложнее, если никакой сложной логики или хайлоада не будет. Для нормальной макаки не составит никакой сложности переключиться в той же пыхе с ларавеля на голый роутер + http из симфони и взять doctrine вместо богомерзкого eloquent.
Аноним 31/01/22 Пнд 20:00:20 #790 №2282677 
А кто знает как в gorm комментарий для таблицы задать?
Заебись тут ИМПЕДАНС. Поля комментировать можно, а таблицу нет?
Интернет весь перерыл
Аноним 31/01/22 Пнд 20:02:27 #791 №2282679 
>>2282677
Пиши SQL-скрипт, сука.
Аноним 31/01/22 Пнд 20:18:04 #792 №2282689 
>>2282679
Я не хочу. Это учебный проект.
Аноним 31/01/22 Пнд 23:36:24 #793 №2282940 
>>2282689
Ты так ничему не научишься.
Аноним 01/02/22 Втр 01:34:12 #794 №2282995 
>>2282940
Это учебный проект, чтобы научиться работать с GORM.

Не знаешь - помолчи.
Аноним 01/02/22 Втр 21:12:28 #795 №2283843 
govscode.jpg
Решил немного продвинуться дальше и раскидать код по модулям по этому туториалу:
https://go.dev/doc/tutorial/call-module-code
(Да, мне непривычно размещать проект на гитхабе я че-то не врубаюсь как тут у вас принято, но туториал не выглядит плохим )

Все заработало, я могу сделать и go build и go run .

Но что все не нравится vscode ? Решительно невозможно так работать!
Как укротить vscode ?
Аноним 01/02/22 Втр 22:49:36 #796 №2283962 
>>2282995

а нах это говно учить?
Аноним 02/02/22 Срд 01:42:49 #797 №2284148 
>>2283843
Что у тебя в go.mod написано? У тебя пути к проектным пакетам должны начинаться с того, что у тебя в "module" написано.
Аноним 02/02/22 Срд 01:43:19 #798 №2284149 
>>2165418 (OP)
https://yourbasic.org/golang/
Следующему ОПу - добавьте в шапку
Аноним 02/02/22 Срд 01:52:48 #799 №2284156 
>>2284149
Ты следующий ОП и обязан перекатить тред.
Аноним 02/02/22 Срд 11:03:12 #800 №2284319 
>>2284148
в точности то, что в этой ебнутой ссылке, которую я нагуглил.
в go.mod написано : replace example.com/greetings => ../greetings

в общем, я перетасовал файлы и завелось. а с vscode что-то не то.
Аноним 02/02/22 Срд 14:02:29 #801 №2284526 
>>2283962
Наверное на галере с него это говно требуют.
Аноним 02/02/22 Срд 14:54:45 #802 №2284572 
>>2283962
Надо.
а SQL я выучил 20 лет назад.
Аноним 02/02/22 Срд 19:57:48 #803 №2284917 
изображение.png
Аноны, а такой вызов методов можно как-то сократить?
Аноним 02/02/22 Срд 20:06:47 #804 №2284933 
>>2284917
Можно было бы в массив массивов запихнуть правила замены, и по ним в цикле пройтись с реплейсом, но это если правил много, а не три.
Аноним 02/02/22 Срд 20:10:28 #805 №2284940 
>>2284933
Понял. Выглядит как говнокод конечно...
Аноним 02/02/22 Срд 20:45:07 #806 №2284986 
>>2284917

https://go.dev/play/p/-liM2PhUGEE

но всякие цепочки вызовов выглядят как говно
в жыэсах я наелся такого
Аноним 02/02/22 Срд 21:08:27 #807 №2285023 
>>2284917
В данном случае можно воспользоваться https://pkg.go.dev/strings#Replacer, он еще и по аллокациям будет эффективнее
Аноним 03/02/22 Чтв 14:24:38 #808 №2285568 
>>2285023
Спасибо. Если честно, дико выглядит сигнатура метода, где правила замены ты последовательно передаешь в фабрику через запятую. Почему бы мапой не передать?
Аноним 03/02/22 Чтв 17:14:27 #809 №2285768 
>>2285568
Питоновских kwargs не завезли, по этому используем *args. А другого сахара у меня для вас нет. А через мапу - так это вообще никакого сахара не будет тогда, куча лишних символов появляется
Аноним 03/02/22 Чтв 17:45:30 #810 №2285821 
Пилю свою либу, просто для развлечения и вот назрел вопрос. Что для вас хуже, или от чего больше воняет: копипаста в соурс коде, или ебанутое нагромождение абстракций?
Аноним 03/02/22 Чтв 18:41:28 #811 №2285885 
>>2285768
В Go вообще сахара нет. Могли бы хотя бы эти if err != nil завернуть во что-то приличное.
Аноним 03/02/22 Чтв 20:00:06 #812 №2285971 
>>2285885
Сегодня ты обрабатываешь ошибки через try/catch, а завтра родину продашь.
Аноним 04/02/22 Птн 15:59:40 #813 №2286752 
ПЕРЕКАТ https://2ch.hk/pr/res/2286748.html
ПЕРЕКАТ https://2ch.hk/pr/res/2286748.html
ПЕРЕКАТ https://2ch.hk/pr/res/2286748.html
ПЕРЕКАТ https://2ch.hk/pr/res/2286748.html
Аноним 05/02/22 Суб 12:24:13 #814 №2287496 
>>2286752
Спасибо тебе, добрый человек.
comments powered by Disqus

Отзывы и предложения