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


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
377 33 192

Тред про лучший в мире язык GO №3 /go/ Аноним # OP 07/03/19 Чтв 22:19:46 13607871
1vHUiXvBE0p0fLR[...].gif (249Кб, 500x500)
500x500
sjJ4QNy.png (218Кб, 778x960)
778x960
lJA9gDmoo3A5B2f[...].jpg (78Кб, 700x695)
700x695
GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего. Батарейки почти как в питоне.

Дженериков нет, эксепшенов нет, просто смирись.

Обработка ошибок получается охуенно через http://github.com/pkg/errors | в приложениях обычно можно просто паниковать на ошибках.
HTTP-сервер для убер максимального маня-хайлоада: https://github.com/valyala/fasthttp
С версии Go 1.11 наконец-то появится официальный менеджер зависимостей vgo

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

Вкатываемся в эпоху докера, микросервисов и адово кошерной сетевухи.

Предыдущий: >>1314918 (OP)
нумерация утеряна, так что перезапуск нумерации
Аноним 07/03/19 Чтв 23:35:00 13608022
15200295608960.png (420Кб, 1200x1200)
1200x1200
Аноним 08/03/19 Птн 01:02:58 13608283
Аноним 08/03/19 Птн 03:12:49 13608354
Стоит ли после тура читать сразу Effective Go?
Говорят что в Языке программирования го очень много воды
Аноним 08/03/19 Птн 08:13:09 13608595
Не пойму как работают горутины. Какая-то магия. Ненавижу магию
Аноним 08/03/19 Птн 12:22:22 13609186
Нид хелп. Есть xml вида
<?xml version="1.0" encoding="UTF-8" ?>
<azaza>
<ololo>puk</ololo>
<ololo>kek/jpeg</ololo>
<azaza>

type Xuy struct {
Ololo []string `xml:"azaza>ololo"`
}

Делаю анмаршал, а структура пуста. Какого хрена?
Аноним 08/03/19 Птн 12:44:01 13609247
>>1360859
Для начала лучше разберись как устроенна асинзронность вообще. Погугли событийные циклы. Очереди задач. Асинхронность на генираторах и каллбеках.

Все асинхронные механизмы во всех языках работают на них.

Мимо Питон макака.
Аноним 08/03/19 Птн 14:22:25 13609678
>>1360918
Во-первых, закрой тег /azaza, траллер. Во-вторых, почитай про xml tags, в данном случае тебе поможет xml:"ololo"
Аноним 08/03/19 Птн 14:23:44 13609689
>>1360859
Что именно тебе не понятно?
Отдельный поток исполнения, смотрит в общую память, но общаться лучше через каналы. Магии как раз минимум (гарантий впрочем тоже)
Аноним 08/03/19 Птн 15:24:11 136099210
>>1360967
Тег закрыт, это я просто криво сюда написал. Спасибо, помоглоололо
Аноним 08/03/19 Птн 21:01:11 136115411
bjay-vYuv0A.jpg (226Кб, 905x1080)
905x1080
>>1360787 (OP)
В очередной раз я пришел сюда за интересными идеями для полезных консольных утилит. Вся надежда на тебя, анон!
Аноним 08/03/19 Птн 22:02:14 136116812
>>1360924
>lazy eval - это теперь асинхрон
Ну охуеть теперь
Аноним 09/03/19 Суб 03:11:54 136126413
image.png (296Кб, 640x566)
640x566
Эх, помню срачем за месяц 10 тредов по го делали.
Аноним 10/03/19 Вск 12:25:47 136187414
1njghubStD4DaYb.mp4 (528Кб, 1280x720, 00:00:03)
1280x720
кек
Аноним 10/03/19 Вск 13:41:03 136190315
>>1360787 (OP)
что смогу сделать на этом говне? бота для телеги можно?
Аноним 10/03/19 Вск 14:00:29 136191516
>>1361903
>бота для телеги можно?
Да
Аноним 10/03/19 Вск 14:39:44 136193217
Аноним 10/03/19 Вск 15:19:09 136196018
>>1360787 (OP)
> го
А нахуй он собственно нужен? Просто зачем?
Аноним 10/03/19 Вск 15:26:32 136196619
>>1361960
Чтоб писать относительно небольшие программы и микросервисы на компилируемом языке, а не поддерживать монструозные проекты на джаве/дотнете
Аноним 10/03/19 Вск 15:30:14 136197220
>>1361966
Что насчет создания полноценных декстоп-аппов?
Аноним 10/03/19 Вск 15:33:29 136197421
>>1361972
Го - язык серверный, гуи на нем не пишут.
Аноним 10/03/19 Вск 17:13:46 136202522
>>1361966
но ведь ты описал пайтон
Аноним 10/03/19 Вск 17:16:38 136202723
>>1362025
>пайтон
>компилируемый
10/03/19 Вск 17:34:19 136204324
>>1362027
Как бы тебе сказать...
Аноним 11/03/19 Пнд 18:12:02 136253725
87686868768686.png (63Кб, 512x512)
512x512
Отладка в голанде уебанская какая-то. Или я даун. Или и то и другое
Аноним 11/03/19 Пнд 19:11:17 136256826
Screenshot from[...].png (325Кб, 1356x1003)
1356x1003
Аноним 11/03/19 Пнд 20:02:11 136258527
>>1362568
>Попробуй vscode
// Эта строчка советует анону
// Попробовать vscode
Аноним 11/03/19 Пнд 21:14:49 136262028
>>1362585
Предлагаешь анончику пользоваться консольным gdb?
Я сам не фанат vscode, но на данный момент это лучшая ide для гошечки.
Аноним 11/03/19 Пнд 22:49:08 136272829
>>1362620
Зачем вам отладчик/ide для языка, в котором тестов пишут больше чем кода, и скомпилировать с неиспользуемой переменной не дают. Зачем?
Аноним 11/03/19 Пнд 23:00:20 136273730
>>1362620
я скорее имел ввиду стиль коментариев на пикрелейдет.
Так то вскоде вперде.
Аноним 11/03/19 Пнд 23:52:06 136277631
>>1362728
> Зачем вам ide
Например для быстрой навигации по проекту и удобного рефакторинга. Моя влажная мечта запомнить cli команды по типу gofmt и gorename и перекатиться на какой-нибудь vim.

> Зачем вам отладчик
Иногда нужно посмотреть что у тебя приходит в параметрах запроса или результат вызова json.Unmarshal. Банально у тебя большая структура, которая не помещается в консоль когда вызываешь fmt.Println. В добавок иногда не всё удаётся покрыть тестами.

>>1362737
Извини. Я думал это как вызов `порекомендоватьVScode()` и он закомментирован.
Аноним 12/03/19 Втр 01:31:33 136280432
>>1362776
vim-go такие вещи по \f умеет. Не надо ничего запоминать.
Аноним 12/03/19 Втр 15:56:17 136300933
А это нормально писать на го и не пользоваться ООП? Сишники че-то там учат какие-то паттерны, тяжело им, а я будто в чистом си пишу.
Аноним 12/03/19 Втр 16:56:18 136304134
>>1362776
>Иногда нужно посмотреть что у тебя приходит в параметрах запроса или результат вызова json.Unmarshal.
В нормальных языках для этого отладчики не нужны. Как всегда, ide лишь компенсирует ущербность языка.
Аноним 13/03/19 Срд 01:26:29 136324935
>>1363009
1) В Го нет только наследования, которое не самая популярная опция в ооп. А так, по сути, там есть те же классы и интерфейсы.
2) Так ли надо ооп для успешного программирования?

>>1363041
>В нормальных языках для этого отладчики не нужны.
Ну назови "нормальный" язык, который используется массово для промышленной разработки и без иде.
13/03/19 Срд 14:31:30 136342536
>>1363249
>Ну назови "нормальный" язык, который используется массово для промышленной разработки и без иде.
Во-первых, я ничего не говорил о "языке, который используется без иде". Перечитай еще раз.
Во-вторых, называю: си, баш, пайтон, руби, луа, жс, го.
Аноним 13/03/19 Срд 16:15:23 136349837
>>1363425
>луа
Тут ты перетолстил
13/03/19 Срд 18:51:01 136359338
>>1363498
Нет, я не перетолстил, луой действительно часто пользуются без ide.

Почему в го-треде одни дебилы?
Аноним 13/03/19 Срд 19:40:55 136360739
>>1363593
Да понятно, что без IDE, вопрос в том что Lua это с очень большой натяжкой промышленный язык
Аноним 13/03/19 Срд 20:51:36 136363240
>>1363041
Без отладки (как процесса) ты нормальный промышленный код написать не сможешь практически никогда. И тут у тебя два варианта: иде с дебаггером или log.println() как деды завещали.
Аноним 13/03/19 Срд 20:58:10 136363341
>>1363632
Серьезно? В питоне есть интерактивный дебагер останавливающий выполнение программы и подключающий, собственно, cli дебагера, звучит как что-то, что присуще каждому нормальному языку
Аноним 13/03/19 Срд 21:02:15 136363442
>>1363607
Нихуя себе, LuaJit так то быстрее вашего v8, все нормальные люди уже давно если не используют, то пробуют lua
Аноним 13/03/19 Срд 21:06:18 136363643
>>1363633
Ты определись с тезисом, который ты доказываешь.
То ты говоришь, что отладчики не нужны, то теперь говоришь, что в питоне он нужен.
13/03/19 Срд 21:12:53 136363944
>>1363607
Ну на луе скорее всего кода написано больше, чем на сабже, например. Я не знаю, что за критерии "промышленного языка" у тебя. Скала промышленная? А кложа? А котлин? Ну ладно, а Ада промышленная? Вот хаскель несколько банков для внутреннего софта используют - это делает его промышленным или он остается академическим? Ну и так далее.
Аноним 13/03/19 Срд 21:13:15 136364045
>>1363636
я не утверждал что отладчики не нужны, только одноизвилиннаяпринтоблядь такое говорить станет, меня удивили предложенные варианты, то есть либо а-ды-йе либо принты, и мой кейс был в том что во всех нормальных языках должен быть как минимум дебагер с cli
Аноним 13/03/19 Срд 21:14:03 136364146
>>1363632
>И тут у тебя два варианта: иде с дебаггером или log.println()
Сразу две ошибки. Во-первых, дебаггер может быть без иде а иде, наверное, может быть без дебагера. Во-вторых, варианты этими двумя не исчерпываются.
Аноним 13/03/19 Срд 21:17:35 136364647
>>1363641
А какие еще варианты для отладки, кроме этих?
>дебаггер может быть без иде
Он и есть без иде, называется delve
Аноним 13/03/19 Срд 21:18:15 136364748
>>1363041
>В нормальных языках для этого отладчики не нужны.
>>1363640
>я не утверждал что отладчики не нужны

А что утверждал?
Аноним 13/03/19 Срд 21:21:29 136364849
>>1363647
> мой кейс был в том что во всех нормальных языках должен быть как минимум дебагер с cli
Аноним 13/03/19 Срд 21:24:12 136365050
>>1363648
кажется ты путаешь меня с другим аноном дауном который пытается прокукарекать что дебагеры не нужны

Я писал только это:
>>1363633
>>1363640
>>1363648
Аноним 13/03/19 Срд 21:31:21 136365551
>>1363650
Если говорить нормальными утверждениями, то я утверждаю что дебагеры - это удобный инструмент для дебага кода (удивительно), который удобнее принтов по очевидным причинам, и утверждать что они не нужны - все равно что утверждать что тебе не придется дебажить тылу е код, что либо ложь, либо подразумевает что твой код организован каким-то специальным образом который полностью логирует весь алгоритм приложения вплоть до стека вызовов или близкого к тому
Аноним 13/03/19 Срд 21:33:45 136365852
>>1363655
тем самым заменяя необходимость дебага возможностью просто смотреть логи

фикс: тылу е -> твой
Аноним 14/03/19 Чтв 12:22:54 136407053
>>1363646
>А какие еще варианты для отладки, кроме этих?
Репл, например.

>Он и есть без иде
Так я отвечал на ">И тут у тебя два варианта: иде с дебаггером или log.println()"

>>1363655
> твой код организован каким-то специальным образом который полностью логирует весь алгоритм приложения вплоть до стека вызовов или близкого к тому
Для этого не нужно какой-то специальной организации кода, во всех нормальных языках можно включить трейсинг исполнения. Хотя разумеется написание маленьких чистых функций вместо больших и грязных здорово помогает не сломать потом голову при попытке распарсить лог трейсинга.
Аноним 14/03/19 Чтв 13:22:36 136409454
>>1361874
Так вот за что просят 250К гривен, кек.
Аноним 15/03/19 Птн 14:34:17 136471055
1035F077-23F3-4[...].jpg (1337Кб, 1124x1403)
1124x1403
Аноны, а где вы применяете рефлексию?
Аноним 15/03/19 Птн 14:50:23 136471556
>>1361874
Купил себе в офис "геймерскую" клавиатуру для подобных хуёвин, записал на макросы на доп кнопки. Сначала надо мной ржали, теперь почти весь отдел купили себе похожие.
Аноним 15/03/19 Птн 14:55:10 136471757
image.png (125Кб, 512x256)
512x256
Почему не Nim?
Аноним 15/03/19 Птн 15:25:36 136473058
Аноним 15/03/19 Птн 15:30:24 136473359
Аноним 15/03/19 Птн 17:43:19 136481060
>>1364730
>Платов
Это кто? Твой протыкатель?
15/03/19 Птн 18:14:49 136482861
>>1364810
Это тот, из чьего спидозного очка ты высосал свой ним.
Аноним 15/03/19 Птн 20:27:08 136492362
>>1364717
Зачем в принципе учить языки, на которых пишут полторы калеки? По приколу или для пет-проекта можно, но работу себе на нем не найдешь.
Аноним 15/03/19 Птн 23:25:12 136502463
>>1364923
постмодернизм, самоирония))
Аноним 16/03/19 Суб 09:18:49 136524064
Аноним 16/03/19 Суб 11:39:23 136527265
>>1364923
>работу себе на нем не найдешь
Ха-ха, ту что, все учат погромирование в надежде найти работу? ХХАХАХАХА
Аноним 18/03/19 Пнд 11:07:43 136641666
Аноним 18/03/19 Пнд 16:46:53 136660967
1. Какой линтер используешь?
2. log.Fatal vs panic
Аноним 18/03/19 Пнд 16:56:05 136661268
>>1360787 (OP)
Что там по работе на Го? Хочу выкатится/совместить с пистоном. Интересует перспектива зарплаты/трактора
Имеется бекграунд в виде двух лет бека на пистоне
Аноним 18/03/19 Пнд 16:58:28 136661469
Аноним 18/03/19 Пнд 17:59:27 136665670
>>1360787 (OP)
Антоны, а есть какие-нибудь ещё интерактивные челленжи по типу codewars с Go?
Аноним 18/03/19 Пнд 19:19:16 136668271
>>1366614
Оригинальный вопрос: >> 1362537
> Отладка в голанде уебанская какая-то.
Лол. Я тоже не сразу понял, что речь идёт не про язык, а про ide.
Аноним 18/03/19 Пнд 20:36:45 136673572
>>1366682
Пол треда шизиков
Мимоанон, сокрушавшийся по поводу уебанской отладки
Аноним 18/03/19 Пнд 20:57:17 136674473
>>1362537
Полгода назад сравнивали отладку в голанде и вс коде, в голанде была поудобнее. Что именно вызвало неудобства?
Аноним 18/03/19 Пнд 23:42:27 136681774
Аноним 20/03/19 Срд 12:49:32 136746875
>>1360787 (OP)
Аноны скажите что учить в связке с го
Перекатываюсь в него из ноде жс
И что то кажется одного только го для проекта не хватит
Получается только микрлсервисы на нем пилить ?
Или ещё пыху подучить
Аноним 20/03/19 Срд 12:54:06 136747076
>>1367468
Пистон учи, будешь с него сервисы переписывать
Аноним 20/03/19 Срд 21:01:54 136769477
>>1367468
Го обычно работает один на проекте, то есть фулстэк разрабы с го не особо популярны. Учи го, базы данных, архитектуру, можешь еще захватить кубернетес
Аноним 21/03/19 Чтв 06:27:43 136791078
>>1367694
>Учи го, базы данных, архитектуру, можешь еще захватить кубернетес

Я бы сказал учи кубернетес, можешь еще го захватить.

на шару вкатился на го(отписывался в прошлом) кун
Аноним 24/03/19 Вск 17:47:12 136941279
Аноны, хочу вкатиться в программирование. Из знаний имеются база по Паскалю из школки, С с первого курса и немного nasm да SQL.
Почитал про разные ЯП и возник вопрос, стоит ли начинать глубокое изучение языка с Го или лучше иметь базу с того же С или Питона?
Аноним 24/03/19 Вск 18:14:54 136942880
>>1369412
Если хочешь найти работу, то жаба, пистон, жс, пхп.
Аноним 24/03/19 Вск 18:34:10 136944181
Аноним 27/03/19 Срд 15:35:09 137082782
Умоляю анон помоги нахуярить динамические конфиги на сервис
Аноним 27/03/19 Срд 16:30:23 137085583
>>1369428
>пистон
Если даже на пистоне больше вакансий, то все выглядит очень плохо
Аноним 27/03/19 Срд 17:31:51 137088584
Народ, как у вас в go со структурами данных?
Они вообще есть?
Если есть, заканчиваются ли на банальном? Map,stack...?
Или у вас пошире и найдутся посложнее? hash table, segment tree...?
Аноним 27/03/19 Срд 19:28:54 137095685
Как стать мидл разрабом на go. Если опыта 5 лет на пхп
Аноним 27/03/19 Срд 19:35:47 137096086
15324989750790.jpg (153Кб, 954x996)
954x996
>>1360787 (OP)
Анон, чому я не могу сконвертить в интегер результат, возвращаемый os.Getenv? Как вообще числа хранить в енв файлах?
Аноним 27/03/19 Срд 19:39:01 137096287
>>1370960
Тащемта ничего сложного-то ту нет. Просто храни в строке и конвертируй.
value := strconv.Atoi(os.Getenv("SOME_VALUE"))
Аноним 27/03/19 Срд 19:46:06 137096988
Аноним 27/03/19 Срд 20:53:04 137099989
Аноним 28/03/19 Чтв 15:23:30 137143690
image.png (25Кб, 554x252)
554x252
господа у меня назрел вопрос

я понемногу включаю го в свой рацион, и при работе над пет прожектом столкнулся с проблемой.
Мне необходимо в обработчик запроса захуярить еще один параметр, помимо реквеста и респонса.
В тырнете советуют делать такую инъекцию зависимости, (я еще не пробовал так делать)
но я уже не совсем догоняю как она сработает, ведь мы пассим только функцию в качестве аргумента, откуда там остальные поля структуры ?!

type Users struct {
db gorm.DB
}

func (users
Users) showHandler(w http.ResponseWriter, r http.Request) {
//now you can use users.db
}
func (users
Users) addHandler(w http.ResponseWriter, r *http.Request) {
//now you can use users.db
}

// setup
users := &Users{db: createDB()}
router.HandleFunc("/users/{id}", users.showHandler).Methods("GET")
router.HandleFunc("/users/new", users.addHandler)
//etc



Дублирую код картинкой, это все решение со стака

Спасибо за ответы

Аноним 28/03/19 Чтв 16:20:37 137146791
>>1371436
Смотри сигнатуру HandleFunc. Про коллбэки слышал? Подучи программирование в принципе.
Аноним 28/03/19 Чтв 16:24:16 137146892
image.png (8Кб, 614x76)
614x76
>>1371467
при чем тут коллбеки, просто HandleFunc принимает метод с конкретными параметрами
Аноним 28/03/19 Чтв 16:29:34 137147293
>>1371436
Ох, ну добро пожаловать в Го. Тут многие вещи происходят магическим блядь образом во время рантайма. showHandler, showHandler это не методы, а функции, рантайм сам подставит, первым аргументом (users Users) а уже потом те, что соответствуют типу колбека.
Аноним 28/03/19 Чтв 16:31:12 137147394
>>1371472
>>1371467
я уже понял сладкий, я понял что функция структуры содержит ссылку на структуру, тем самым можно обратится к ее полям)
Однако спасибо за советы)
Аноним 28/03/19 Чтв 16:31:24 137147495
>>1371472
Короче говоря, несмотря на то, что у тебя как бы мето func (user Users) addHandler(...) На самом-то деле у тебя вот такое func ( user Users, w http....)
Аноним 28/03/19 Чтв 16:34:27 137147896
>>1371473
Так чего ты хочешь еще?
Аноним 28/03/19 Чтв 16:36:24 137147997
>>1371478
>>1371474
>Так чего ты хочешь еще?
уже все спасибо)
Аноним 28/03/19 Чтв 16:38:29 137148098
Gg
Аноним 29/03/19 Птн 12:23:40 137188299
Начал колупать горм. Вопрос, какого хуя я могу повесить уникальный констрейнт только на поле с типом указатель?
Аноним 29/03/19 Птн 16:35:02 1371964100
5 минут как вкатываюсь в го, почему такая уебанская система директорий?
Аноним 29/03/19 Птн 16:49:27 1371968101
>>1371964
Чтобы отсеять слабых духом. Вот какого ты ответа, блядь, ожидаешь на такой охуительный вопрос?
Аноним 29/03/19 Птн 17:17:15 1371983102
>>1371968
Я надеялся на какой-то скрытый смыл ну что ж будем терпеть и кушать кактус.

Кстати поясните за channel, если я допустим хочу написать парсер и выгрузку webm с двача.

мне нужен
1. скедулер - который раз в какой-то момент будет кидать ивент(или хуй знает как оно у вас называется)
2. парсер json - который сделает http запрос и тред и закинет в кьюху webm которые нужно выкачать
3. downloader -(канкаренси будет тут) который выкачивает все и сохраняет на диск

Может кто рассказать в двух словах как это православно на гошечке заимплементить?


Аноним 29/03/19 Птн 17:38:07 1371990103
Почему в вашем го функции называются с большой буквы? Выглядит максимум уебански.
Аноним 29/03/19 Птн 17:39:21 1371992104
>>1371964
>почему такая уебанская X?
>golang
Ох, тебя ждет еще много удивительных открытий, мой юный падаван.
Аноним 29/03/19 Птн 18:33:49 1372017105
download.jpeg (4Кб, 274x184)
274x184
>>1371964
что уебанская, ты уебан бля. Главное что оно есть!
(с) пикрил

>>1371990
> Почему в вашем го функции называются с большой буквы?
А в питоне вашем все функции начинаются с _ или __, вообще пиздец.
Аноним 29/03/19 Птн 20:35:22 1372064106
>>1371983
С каналами все просто.
У тебя есть канал с определенным буфером ( по умолчанию буфер равен 1). В канал кладешь инфу, в другой горутине читаешь. Если горутина не может положить ( весь буфер заполнен) или не может прочитать( в канале пусто), то она блокируется до момента, когда ситуация разрешится.
Аноним 29/03/19 Птн 22:23:22 1372109107
>>1371983
собственно, развивая >>1372064, твой парсер будет скидывать не в кьюху, а в канал.
А гоурутина будет за каналом следить и на каждое сообщение запускать гоурутину обрабатывающую твою бурятскую порнуху.
Размером канала можно будет управлять сколько параллельных процессов тебе нада
Аноним 30/03/19 Суб 08:28:12 1372221108
Аноним 30/03/19 Суб 13:22:36 1372301109
>>1372221
По дефолту значения nullable во многих субд, тебе нужен пойнтер чтобы дать возможность присваивать nil (NULL) значению. Попробуй unique,not_null или что-то вроде того. gorm не юзал никогда.

А вообще лучше юзать reform, т.к. там кодогенерация и скорость работы с базой выше. У неё правда есть свои минусы, например отсутствие композитных PK.
Аноним 30/03/19 Суб 14:04:58 1372320110
photo2018-08-10[...].jpg (26Кб, 540x546)
540x546
>>1372301
Пиздец, нет ни одного нормального фреймворка, ни орм. Все криво, уебищно, примитивно. Выкатываюсь к ебени матери
Аноним 30/03/19 Суб 14:09:54 1372323111
Микросервисы - что это?
Звучит как нечто не связанное с самим языком.
Есть ли аналоги на других языках?
Есть ли где-то вменяемое описание подхода, его преимуществ?
Аноним 30/03/19 Суб 14:13:36 1372324112
>>1372323
Это не связано с языком, это принцип построения архитектуры
Аноним 02/04/19 Втр 15:07:50 1373782113
image.png (108Кб, 638x1236)
638x1236
Аноны, есть один контроллер. Как можно сделать нормальное внедрение зависимостей? Не хочу, чтобы соединение с базой передавалось в каждый экшен по отдельности. Хочу, что-то типа конструктора, чтобы вмандить туда репу с инкапсулированным соединением
Код не мой, а с курсов хуевых
02/04/19 Втр 18:14:04 1373853114
Аноним 02/04/19 Втр 20:06:24 1373900115
Аноним 02/04/19 Втр 20:16:12 1373910116
>>1373900
type KekController struct {
repo repository.KekRepository
}

func NewKekController(repo
repository.KekRepository) *KekController {
return &KekController{repo}
}
Аноним 02/04/19 Втр 20:16:47 1373911117
Что там по смартконтрактам на го?
Аноним 02/04/19 Втр 20:19:24 1373913118
>>1373910
Двощ съел астериски
Аноним 02/04/19 Втр 22:02:12 1373979119
Зовут на джун вакансию голанг бэкендера, но я с ГОвном вообще не работал и не писал на нем ничего. Даже в резюме нет слова "go". Но дохуя могу на ноде/жс и посредственно шарп. Чет странно немного, какого хуя меня позвали, но на самом деле я только рад буду, если меня примут. Правда мне наверное пизда на собеседовании, так как голанг я вообще нихуя не знаю. Че делать то, за несколько дней читать GOLANG БЫСТРЫЙ СТАРТ?
Аноним 02/04/19 Втр 23:27:28 1374023120
>>1372064
> по умолчанию буфер равен 1
Заебали, буфер по умолчанию -- 0. Буфер размера 1 -- тоже полезная штука, но объявляется явно.
Аноним 03/04/19 Срд 01:03:58 1374056121
>>1373979
я сразу на мидла вкатился, без особого понятия.
До этого только парсер двача на го писал.
Не ссы, научат. Меня вот учат.
Аноним 03/04/19 Срд 09:54:46 1374101122
>>1373979
Быстро-быстро читай Effective Go, там текста на длинный вечер, а пользы джуну дохуя
Аноним 04/04/19 Чтв 11:25:23 1374853123
>>1373782
Можно реализовать сервис контейнер, самый простой и очевидный вариант.
Также в го есть пакет reflect, может пригодится, если хочешь в рантайме разруливать хотя ты быстро поймешь, что в го это нинужно
Аноним 04/04/19 Чтв 16:17:28 1374977124
Можно ли вкатиться в ГО из плюсов? Язык выучить не особо большая проблема, но как искать работу человекус с "плюсовым" стеком без опыта в микросервисах?
Аноним 05/04/19 Птн 10:23:12 1375317125
>>1360787 (OP)
Сап программач
Есть регулярка вида ^blabla([\w]+)$
Как грамотно проверить строку на соответствие регулярке и вытащить группу?
Аноним 05/04/19 Птн 11:46:01 1375345126
Аноним 05/04/19 Птн 11:56:55 1375348127
>>1375345
С помощью стандартной библиотеки
05/04/19 Птн 15:05:48 1375438128
>>1375317
В этом вашем Го нет документации?
Аноним 08/04/19 Пнд 10:05:15 1377084129
>>1360787 (OP)
Аноны, будут ли выводиться строки или любые другие штуки из слайса в порядке их добавления?
Аноним 08/04/19 Пнд 17:31:51 1377233130
>>1377084
Ну это смотря как ты их добавлял.
Ну и как будешь выводить.
Если делал, скажем, апенд, а теперь делаешь ранже (мне сложно переключать раскладку бля!) то ответ д
08/04/19 Пнд 18:59:02 1377284131
>>1377233
Я уже нагуглил ответ, но все равно спасибо
Аноним 08/04/19 Пнд 19:32:21 1377295132
Аноним 09/04/19 Втр 12:26:33 1377651133
Я прочитал книжку по го и мне он показался на удивление простым, даже в питоне больше подводных камней и способов для извращений.
Он действительно такой примитивный или это только на первый взгляд так кажется? Где можно прочитать что-то для более глубокого понимания?
Аноним 09/04/19 Втр 12:31:43 1377658134
>>1377651
Какую книжку читал?
Аноним 09/04/19 Втр 12:40:30 1377665135
>>1377658
An Introduction to Programming in Go
Аноним 09/04/19 Втр 14:18:49 1377735136
Аноним 09/04/19 Втр 17:18:00 1377820137
>>1360787 (OP)
Нормально ли, что файл, относящийся к пакету main, лежит не в корне, а в отдельной директории? Или за такое в го мире принято пиздить ногами?
Аноним 09/04/19 Втр 20:53:31 1377936138
Аноним 09/04/19 Втр 20:57:08 1377938139
>>1377651
Го достаточно простой язык с точки зрения синтаксиса, это была одна из его целей. Но подводные камни там есть, погугли "50 оттенков Go"
Аноним 09/04/19 Втр 21:56:04 1377970140
>>1377936
В моем случае это папка с консольными командами
Аноним 10/04/19 Срд 09:23:58 1378179141
Двачик, я тут накодил на го: >>1376929 (OP). Что думаешь?
Аноним 10/04/19 Срд 13:14:49 1378240142
image.png (22Кб, 291x223)
291x223
Правда ли, что скоро избавятся от этого ебаного хомяка и вместо него будет пикрил?
Аноним 10/04/19 Срд 23:13:10 1378801143
>>1378179
> GetMessageID(room string) (uint64, error)
> Get
Not go way, sorry
Аноним 11/04/19 Чтв 01:00:06 1378893144
Аноним 11/04/19 Чтв 08:47:00 1378973145
>>1378240
Нет.
У тебя на пикче - логотип, а хомяк( точнее суслик) - это маскот.
Аноним 11/04/19 Чтв 09:32:33 1378978146
15326481332940.jpg (392Кб, 1000x1333)
1000x1333
>>1378801
Не понимаю, чому использовать префикс Get зашкварно, а New нет
Аноним 11/04/19 Чтв 12:36:00 1379028147
>>1378973
>маскот
надеюсь маскат не бинарный? иначе зашквар и нормальные люди не поймут
Аноним 11/04/19 Чтв 23:15:15 1379453148
>>1360968
Общаться каналами - не самая лучшая практика, тбх.
Рейс кондишн, все дела.
Аноним 12/04/19 Птн 18:53:51 1379875149
>>1378978
Ничего зашкварного нет, совершенно нормальная практика. Меньше всяких кукаретиков слушай.
Аноним 13/04/19 Суб 19:16:34 1380379150
Goсподи, ну какое же это уебанство! Почитал тутор, посмотрел скринкасты, полистал код коллеги на го и как-будто в 90е нырнул.
Такой лютой ебанины увидеть в конце 2010х я не ожидал.
Конструкции и синтаксис блять, как-будто школьник макросов для сишки написал и назвал это языком.
Экосистема, как если в 90х появился гитхаб и какой-то хипстер сделал революционное предложение - а давайте пекеджи неймспейсить по репозиторию.
Код пишут так, как-будто лабу на первом курсе.

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

А писать на нем, как я посмотрю, пытаются очень много. Ну ладно там какое-нибудь очень узкое место сделать, по типу работы декодер-энкодер там лихой или там реал-тайм-веб какой-нибудь. Но они же блять свои неуклюжие ОРМки прикручивают и начинают ручками круды описывать. Бляяять. Такое километровое уебанство, где одна строчка сути на питоне == 100 строкам мозгоебства на этом го, за которыми уже не видно ни какой сути.
Аноним 13/04/19 Суб 19:23:04 1380384151
>>1380379
А, еще забыл добавить.
Что уж там говорить об архитектуре. Понятное дело, им бы справиться с километрами своих байтов, не до абстракций. Повторить валидацию в на создании и обновлении - пфф, это дело десятое. Главное что он ЗАТАЩИЛ это, он-таки вывез этот километр ифов, лупов и структур, оно блять у него заработало. А то что там он валидацию покопистил - так это так, пыль на сапогах.
Аноним 13/04/19 Суб 19:39:19 1380393152
>>1380384
в чёт проблема языка если твой коллега макака взял гранату для забивания гвоздя и лупит по гвоздю ?
Аноним 13/04/19 Суб 19:41:40 1380395153
>>1380393
Так микросервисы же, ептить. А как? Он взял и написал микросервис комментариев. Комментарии в базе. Их можно создавать и обновлять. Казалось бы.
Аноним 13/04/19 Суб 19:43:11 1380396154
>>1380395
и это пиздец какое узкое место в приложении ? а микросервис страницы логина не хотите на хаскель переписать ?
Аноним 13/04/19 Суб 19:44:50 1380399155
>>1380395
Ах, и еще этот незабываемый вкус того времени, когда таблицы и поля в базах еще не научились именовать. Ну реально, как-будто лет на 15 назад в прошлое вернулся.
Аноним 13/04/19 Суб 19:46:09 1380401156
>>1380396
Да конечно оно не узкое, просто игрушку в руки дали, "мы теперь будем писать на микросервисах все".

>а микросервис страницы логина не хотите на хаскель переписать
Уже. Собираются переписывать на го.
Аноним 13/04/19 Суб 19:48:53 1380404157
>>1380401
а вы говорите свичерчы не трабыл для професси , уже не первый раз вижу когда в компании , почитав статейки , даун номер 1 пытается всё новомодное вхуярить в проект , хотя не кто не имеет в этом опыта , а другие дауны и рады , хули хотели выучить язык\фрейм\другую поеботу а дома как бы и в падлу , давайте вливать всё говно в проект , правильно или нет да похуй...
Аноним 13/04/19 Суб 19:51:51 1380408158
>>1380404
>свичерчы
Свичеры? Это кто? Не слышал раньше такого выражения.
Аноним 13/04/19 Суб 19:53:59 1380410159
>>1380408
таксисты, работяги с завода , шлюхи , вкатившиеся в ваЙТи
Аноним 13/04/19 Суб 20:04:54 1380418160
>>1380404
Через год этот даун сменит место на более прибыльное, а ты нет, потому что у него будет дополнительная строчка в резюме и год работы с модной хуйней.
Аноним 13/04/19 Суб 20:08:22 1380419161
>>1380418
палю годноту , что бы добавить строчку в резюме не нужно пилить говно , можно даже её просто взять и добавить
Аноним 13/04/19 Суб 20:13:49 1380423162
>>1380419
Да ты что, а потом ты просто обосрешься на собеседовании?
Аноним 14/04/19 Вск 00:04:53 1380561163
>>1380423
у норм лида шанс обосратся что ты нихуя не знаешь или знаешь хуёва примерно === , у лида который и сам нехуя не шарит вытянит харизма
Аноним 14/04/19 Вск 15:03:42 1380840164
Screenshot2019-[...].png (24Кб, 615x345)
615x345
Суп. Прохожу курс на курсере, я дурак или в квизе ошибка? По идее должно быть: func fA(whatever) func (string) int {}
Аноним 14/04/19 Вск 15:31:06 1380851165
Аноним 15/04/19 Пнд 18:13:09 1381882166
>>1360787 (OP)
Недавно вкатился в го, пытаюсь заюзать go mod. Есть собственно два модуля вне gopath, оба инициализированы как модули (go mod init modules/first и go mod init modules/second), однако импортировать один в другой нельзя (import "modules/second"), билд жалуется на то что импортируемый модуль не существует. Как, собственно, нормально импортировать один го модуль в другой, да так чтоб ничего никуда не пушить и сидеть при этом вне gopath?
Аноним 16/04/19 Втр 10:10:18 1382161167
Аноны, есть ли возможность вытащить текущий path template у гориллороутера?
16/04/19 Втр 10:34:34 1382173168
Аноним 17/04/19 Срд 16:57:33 1382947169
Аноним 17/04/19 Срд 19:16:04 1383010170
Аноним 18/04/19 Чтв 02:21:25 1383156171
>>1382947
все пожимать руки говистам официально зашквар
Аноним 18/04/19 Чтв 06:55:55 1383188172
А есть ли советы как не обосраться?
Аноним 18/04/19 Чтв 08:45:42 1383199173
>>1383188
Сжимай булки сильнее

Советы о чем ты хочешь?
18/04/19 Чтв 09:45:49 1383223174
>>1382947
>>1383156
Вы отписались в го тредике и теперь официально зашкварены. Сегодня вас обоссут на районе
Аноним 18/04/19 Чтв 13:57:40 1383416175
>>1360787 (OP)
Как православно запилить итератор для структуры?
Аноним 18/04/19 Чтв 14:01:16 1383417176
>>1383223
пацаны не бейте лучше научите дизайнить диляторы на го
Аноним 18/04/19 Чтв 20:23:36 1383634177
>>1383416
В го такое не канон, используй мапы тогда уж.
Аноним 18/04/19 Чтв 20:27:23 1383639178
>>1383417
А тебе зачем? Уж не пидор ли ты часом?
Аноним 20/04/19 Суб 20:09:27 1385016179
>>1380379
Ты просто не шаришь. Го со всей его неуклюжей простотой - это просто глоток свежего воздуха после какой нибудь джавы, JS'а или, прости господи, PHP.
Как раз недавно пришлось подключиться и поработать с кодом, который писали вдохновлённые миддлоджуниоры - они постоянно норовят написать свой велосипед, усложнить задачу на пустом месте, захуячить декоратор ради декоратора и так далее. Доходит до того, что боишься даже объект класса создавать, потому что мало ли, чего там в конструкторе понаписали и как это себя поведёт.
Как пример из моей практики, была либа от, вроде бы Stripe, где в деструкторе какого-то класса то ли делался запрос, то ли ещё что-то. И эта сука вызывала падение - причём, посколько это деструктор, то падение происходило в конце функции, при том, что объект был создан где-то до этого.
Я вот сейчас пишу фронтенд и охуеваю от количества магии и сахара на тайпскрипте и в ангуляре. И хуй его знает, что я буду делать, если внутри это магии что-то начнёт работать не так.
В го, к счастью, вырезали всю магию. Да, он простой до примитивизма. Да, многословный. Да, приходится иногда копипастить код. Да, в нём нет сахара. Но в этом-то и плюс!
Потому что легко сделать сложно, но сложно сделать просто.
Он заставляет писать очевидный код, который работает именно так, как ты думаешь. Ничего не создаётся из ничего и никуда не уходит, если явно не прописано.
Огромный плюс в мире софта написанного любителями.

Не говорю, что в го нет минусов, они очевидно есть. Чувствуется влияние сишников, которые все последние двадцать лет сидели где-то в своей дыре, не выглядывая наружу и продолжают, как раньше, тянуть свои невразумительные практики (все эти "менеджер пакетов не нужон! вендор надо класть под гит! gopath - это правильно и весь код должен лежать в одном месте! переменные по одному символу!).
Выдать бы сишникам пиздюлей, добавить дженерики и разобраться с обработкой ошибок (текущая ситуация мне не особенно нравится) + подумать над указателями на интерфейсы (слишком мерзкие ошибки случаются) - и будет конфетка, а не язык.

Но несмотря на все недостатки (а какой язык без них?), он уже сейчас мне нравится больше конкурентов.
20/04/19 Суб 23:40:59 1385138180
>>1385016
>Но в этом-то и плюс!
>он уже сейчас мне нравится больше конкурентов.
Потому что ты кроме жс и пхп ни с чем не знаком.

мимо-капитан
Аноним 21/04/19 Вск 13:11:33 1385311181
>>1385138
Джава и плюсы тебя устроят?
21/04/19 Вск 15:36:44 1385847182
>>1385311
Примерно то же самое, а во многих моментах даже хуже. После жавы и плюсов и жс покажется удивительно выразительным языком.
Аноним 21/04/19 Вск 20:03:07 1386037183
>>1385847
Тогда нам незачем спорить, ты просто из другого мира. Дальше будет совсем вкусовщина.
Аноним 23/04/19 Втр 12:13:27 1387228184
У меня есть слайс []int{0,1,2,3,4}

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

Я понимаю как сделать типа такого
func Bla(index int, arr []int) ([]int, []int) {
...
}

abc := []int{0,1,2,3,4}
var bca []int
bca, abc = Bla(2,abc)

Как сделать это с этими ебучими ссылками и указателями, чтобы возвращался только срез при том модифицировался слайс abc?
Аноним 23/04/19 Втр 12:34:20 1387233185
>>1387228
Разобрался без вас, пидорасов.

func RemoveIndex(index int, d []int) []int {
var v []int
locker.RLock()
for i := 0; i < index+1; i++ {
v = append(v, (
d))
}
d = append((d)[:0], (*d)[index+1:]...)
locker.RUnlock()
return v
}
Аноним 23/04/19 Втр 13:26:11 1387261186
>>1387233
Пиздец говнокод. Инвалида даже линт не исправит.
Аноним 23/04/19 Втр 13:39:19 1387265187
>>1387261
Критикуешь - предлагай. Соси хуй, педрила.
Аноним 23/04/19 Втр 17:24:41 1387380188
>>1387265
Для начала прочитай что такое слайс в Го и больше не произноси бред вроде "ссылки на слайс". Это тебе не массив в С, довн.
Аноним 25/04/19 Чтв 18:25:39 1388597189
image.png (93Кб, 976x806)
976x806
>>1360787 (OP)
Товарищи суслики, поясните, пожалуйста. Только вкатываюсь в го, но на работе уже требуют чтобы что-то на нём делал что правильно, в общем-то
Короче, ситуация такая. Мне нужно слушать топик по mqtt и обрабатывать приходящие данные. Но не суть. Вопрос в чём, при выходе, мне нужно закрывать соединение и останавливать горутину. Нагугленные решения мне показались слишком костыльными. Поэтому я подставил свой костыль. Вначале объявляю в глобальном скоупе переменную alive := true ну и просто меняю на false при выходе. Мудрые аноны, подскажите, всё правильно сделал или это "бэдпрактис" и надо иначе?
Код скрином, чтобы тред не засирать и всякими пастбинами не пользоваться. Не люблю их.
Аноним 25/04/19 Чтв 18:45:35 1388623190
>>1388597
<- Close
client.Disconnect()
close(ch);

if input == "q" {
<- Close struct{}{}
}
Аноним 25/04/19 Чтв 18:45:53 1388624191
>>1388623
> ;
Ой, прошу прощения.
Аноним 25/04/19 Чтв 20:00:01 1388701192
Аноним 30/04/19 Втр 11:36:43 1391999193
Тредик не тони
Аноним 30/04/19 Втр 19:51:22 1392243194
Почему все ссылки на книги из ОП-поста не работают? Где их вообще воровать?
Аноним 01/05/19 Срд 16:47:14 1392627195
Аноним 01/05/19 Срд 20:52:42 1392788196
Аноним 01/05/19 Срд 23:26:56 1392835197
Реально ли в провинции устроиться go разработчиком? На город миллионик всего 3 вакансии. На тот же php более 70
Аноним 02/05/19 Чтв 01:22:39 1392864198
Пщферы, выручайте. Читаю инпут из Stdin при помощи fmt.Scanln()
Если в строке есть запятая, то он читает в буфер ровно до неё, саму запятую, потом съедает любое количество пробелов и один символ из оставшейся строки. Это так и задумано?
Аноним 02/05/19 Чтв 11:19:18 1392926199
>>1392864
Input processed by verbs is implicitly space-delimited: the implementation of every verb except %c starts by discarding leading spaces from the remaining input, and the %s verb (and %v reading into a string) stops consuming input at the first space or newline character.
Аноним 02/05/19 Чтв 13:14:27 1392954200
>>1392835
>реально ли
>3 вакансии
да, съеби работать и не пиши сюда
Платиновый вопрос из шапки Аноним 02/05/19 Чтв 14:46:07 1392970201
Есть задача написать пару скриптов и 0 навыков программирования(кроме дельфи в пту), в какой язык проще вкатиться новичку - питон или го?
Аноним 02/05/19 Чтв 15:18:19 1392982202
Аноним 03/05/19 Птн 19:14:46 1393508203
Подскажите, плз, стоит ли делать себе пртфолио на Hugo?
Аноним 04/05/19 Суб 20:04:27 1394003204
Чего оно медленное такое? Слепил 20 строчек кода в цикле уровня 2+2 с очисткой экрана и выводом в консоль. Замеряю через time - 40 мс на каждую итерацию. Чего, блять?
Аноним 04/05/19 Суб 21:59:07 1394090205
>>1394003
Ты производительность вывода в консоль измеряешь, что ли?
Аноним 04/05/19 Суб 22:03:10 1394093206
>>1394090
Ну да. Почему даже питон в 10 раз быстрее?
Аноним 05/05/19 Вск 00:29:40 1394264207
Аноним 05/05/19 Вск 11:12:28 1394384208
>>1394003
А ты собрал или через `go run` запускаешь?
Аноним 05/05/19 Вск 12:38:51 1394425209
>>1394093
Пиздец, а в соседних тредах говорят, что 3к зарплаты им мало.
Твой вывод в консоль большую часть времени занимает.
Аноним 05/05/19 Вск 12:59:46 1394436210
>>1394425
И сам код покажи, конечно, а то хрен знает, что ты там понаписал.
Аноним 05/05/19 Вск 15:31:00 1394500211
Недавно видел репозиторий где чувак пишет алгоритмы на разных языках и там типа бенчмарки для сравнения. Побеждал там всех Pypy, если не путаю. Но ЧСХ, что на го, что на джаве там такая дичь была понаписана.. Руки бы ему оторвать.
Аноним 06/05/19 Пнд 21:09:07 1394887212
>>1379453
Ну, сами по себе каналы concurent-safe. Другое дело, что никто не помешает тебе передавать через них указатели. Но это уже вопрос семантики происходящего, а не структуры канала.
Аноним 07/05/19 Втр 20:46:18 1395390213
>>1394384
go run точно так же собирает, если что
Аноним 07/05/19 Втр 21:11:50 1395408214
>>1395390
go run собирает и запускает. А имеет смысл запускать уже собранное
Аноним 11/05/19 Суб 19:17:49 1397798215
>>1394887
Более того, "канал" - это просто очередь с мьютексом, без особой магии. В исходниках довольно очевидно всё написано.
Аноним 13/05/19 Пнд 13:17:52 1398959216
1 как сделать чат на сайте
2 как это прикрутить к сайту на ларавеле
Аноним 14/05/19 Втр 10:50:44 1399593217
>>1398959
1. Сокеты
2. Спросить в php треде.
Аноним 21/05/19 Втр 17:04:49 1404283218
Итак вкатывальщик-кун в треде, открыл учебник по го неделю назад, сейчас уже нормас свободно пишу, занимался не каждый день, в основном ток вчера норм начал

до этого фуллтаймил на js, больше всего времени ушло на еблю с gopath / go modules и ide (в итоге взял goland)
Аноним 21/05/19 Втр 19:25:29 1404339219
Аноним 21/05/19 Втр 20:03:06 1404353220
Аноним 21/05/19 Втр 20:03:53 1404354221
>>1404283
50 оттенков Го почитай
Аноним 23/05/19 Чтв 19:22:33 1405313222
решил потыкаться в го, так как всюду говорят какой он быстрый начал писать как сишник, но внезапно выяснилось, что for i, v := range копирует значения, а на стаковерфлоу, на вопрос "почему все используют только слайсы, и не используют листы" был дан ответ просто используй слайсы везде, где ты хочешь использовать листы, чтобы понять чем по сути является слайс, ибо нихуя не понятно, я стал гуглить, но дельного ничего не нашёл.

Как писать на го? Как питоноблядь скрипты? Я нихуя не понимаю, объясните пожалуйста, это язык для производительности, или чтобы писать хуйню вокруг чёрного ящика, делающую 100500 аллокаций каждую секунду?
Аноним 23/05/19 Чтв 19:38:03 1405328223
>>1405313
>чтобы понять чем по сути является слайс
Слайс это структура, в которой лежит указатель на массив, длина слайса и капасити.
По сути слайсы - это динамические массивы, сделанные как структура над обычными.
Аноним 23/05/19 Чтв 19:40:24 1405331224
>>1405328
ну я так и думал
ну тогда использовать их как листы — пиздец неэкономично, тут быстродействием занимаются, или простым написанием программ?
Аноним 23/05/19 Чтв 19:50:58 1405338225
>>1405331
Так как писать то? Экономя каждый вызов, каждую аллокацию, или ебашить append к слайсу в цикле?
Аноним 24/05/19 Птн 08:39:41 1405552226
>>1405338
Так в чем суть задачи то?
Аноним 24/05/19 Птн 13:16:22 1405660227
>>1405552
я про в принципе стиль написания, а не конкретную задачу
Аноним 24/05/19 Птн 23:32:00 1405983228
Аноним 25/05/19 Суб 16:48:11 1406297229
>>1405313
>for i, v := range копирует значения
А for i := range не копирует.
Аноним 25/05/19 Суб 22:51:46 1406470230
pepegopher3.png (412Кб, 1634x2224)
1634x2224
Аноним 26/05/19 Вск 14:24:59 1406712231
>>1405313
Если хочешь писать как на Си, может лучше писать на Си?
Аноним 28/05/19 Втр 01:59:38 1407717232
1558997961724.png (373Кб, 512x498)
512x498
Привет, я очередной "вкатывальщик" не бейте, лучше обоссыте
Почитал про Go, работаю писядмином, меня подкупает возможность компиляции кода в нативный бинарник на вообще любые платформы на работе имею дело с охуеть каким большим зоопарком устройств, от обычных пекарен до хуйни на армах

Стыдно говорить, но за 7+ лет на никсах я научился только писать простые скрипты на бидоне и портянки на баше. То есть знания ЯП околонулевые

Стоит ли?
Аноним 28/05/19 Втр 10:20:33 1407808233
>>1407717
А зачем тебе вообще что-то компилировать?
Аноним 28/05/19 Втр 11:34:34 1407835234
суп борщ.
Пишу сейчас хуёвый веб на рнр (проект хуёвый и сам я тоже хуёвый). Хотелось бы выкатиться с текущего проекта.
Смотрю вакансии - очень много говна где нужны знания css/js, хотелось бы быть как можно дальше от этого говна.
Ещё могу в питно, но там почти та же история - почти все вакансии это джанга или дата ссайнс.
Подумал вкатиться в го. Язык, конечно, так себе, если сравнить с каким-нибудь котлином или окамлом, или кложей (языки с которыми я игрался и немного знаком).
Но, есть вакансии, язык молодой и могут взять без особого опыта наверное, и самое главное фронтендовой параши нигде нет в требованиях.
Короче, хотелось бы избежать монотонных крудов и UI.
У го вроде бы ниша это высоконагруженные сервисы, мультитрединг из коробки и вот это всё, звучит интересно.
Стоит ли мне вкатываться с такими потребностями?
Аноним 28/05/19 Втр 11:53:39 1407845235
>>1407835
>могут взять без особого опыта наверное
Маловероятно, язык не такой уж молодой
>>1407835
>и самое главное фронтендовой параши нигде нет в требованиях.
Иногда встречаются фулстеки, но все-таки го - это чисто бэкенд
>>1407835
>Короче, хотелось бы избежать монотонных крудов и UI.
>У го вроде бы ниша это высоконагруженные сервисы, мультитрединг из коробки и вот это всё, звучит интересно.
Ниша - да, но проекты встречаются как и нагруженные сервисы, так и круды. Тут как повезет.

>>1407835
>Стоит ли мне вкатываться с такими потребностями?
Тебе решать, но не факт, что тебя возьмут без опыта в го. Попили хотя бы пет-проектов на нем, вдруг разочаруешься.
Аноним 28/05/19 Втр 12:24:19 1407857236
>>1407845
>но не факт, что тебя возьмут без опыта в го
Ну, я имел в виду коммерческий. Проскакивали вакансии с опытом рнр или питона, отсюда и вывод, собственно.
Так-то дома попилить, конечно, надо будет, и для себя и для CV.
Аноним 28/05/19 Втр 13:34:17 1407885237
>>1407857
Есть такие вакансии, в которых суть - переписать с пхп на го
Аноним 30/05/19 Чтв 21:53:14 1409503238
>>1378978
да нормально все, не зацикливайся только на подобных практиках
Аноним 31/05/19 Птн 13:10:18 1409849239
unnamed.jpg (54Кб, 1280x298)
1280x298
Чому такой всратый маскот.
Читаешь доки и прямо воодушевляешься.
А потом смотришь на такие картинки и ощущаешь себя ретардом в спецклассе.
Аноним 31/05/19 Птн 13:15:06 1409852240
96fddcc1aba0093[...].png (332Кб, 600x700)
600x700
>>1409849
няшнота же
я вот учу джаваскрипт и завидую что у вас есть няшка маскот а у джс нет
пусть тоже придумают что нибудь, я себе плюшевую игрушку закажу -_-
Аноним 01/06/19 Суб 04:29:35 1410166241
Аноним 01/06/19 Суб 07:24:45 1410173242
>>1409849
А ты представляй что это типа такая самоирония, доступная для понимания только увереным и mature людям. Понятно что шкальникам такой маскот не будет нравиться - но в этом то и суть.
Аноним 08/06/19 Суб 15:30:08 1413659243
>>1409849
>Читаешь доки и прямо воодушевляешься.

Воодушевляешься тем что можно дальше не напрягать мозг и фигачить простынки из if err != nil и interface{}?
Аноним 08/06/19 Суб 17:30:26 1413711244
image.png (739Кб, 1438x788)
1438x788
О, дженерики
Аноним 09/06/19 Вск 12:12:19 1413996245
Аноним 09/06/19 Вск 12:47:29 1414006246
>>1413711
Ммм, с синтаксисом Canadian Aboriginal Syllabics. Джва года ждал.
Аноним 09/06/19 Вск 16:57:22 1414113247
>>1414006
Всегда проигрываю, когда кто-нибудь хвастает "а вот в нашем языке можно в утф-16 называть переменные!"
А потом, такие, "о, бля, а как это у тебя дженерики, а у меня не работает?"
Аноним 10/06/19 Пнд 09:19:27 1414377248
image.png (80Кб, 311x340)
311x340
Аноним 11/06/19 Втр 22:45:32 1414981249
ппц я в шоке конечно, есть структура, которая содержит мапу, и я ничего не могу с ней сделать. Дефолтных параметр не задать, приходится либо делать конструктор с определенным количеством аргументов (извините, перегрузок нет), либо проверять что объект инициализирован, и, если нет - инитить. Выбир между клизмой и сендвичем с дерьмом. Кто это вообще придумал? А если у меня 4 мапы в одном стракте?
Аноним 11/06/19 Втр 22:55:37 1414988250
го
Аноним 12/06/19 Срд 12:24:24 1415157251
Аноним 13/06/19 Чтв 00:01:05 1415536252
>>1415157
ну что ебаных конструкторов нормальных не завезли. Что есть структура с мапой внутри, и чтобы этой мапой пользоваться надо извращаться.
Аноним 13/06/19 Чтв 09:28:14 1415624253
>>1413996
Неочевидная херня получается, ты никогда не знаешь, какую именно ошибку из какого блока ты будешь обрабатывать своим "catch"ем. Это как бы убивает то, ради чего вообще начинали сыр-бор:
идеологам го не нравилось, что ты можешь понапихать в try {} catch{} понапихать кучу кода и обрабатывать вообще всё оттуда в одном месте, вроде как это слишком непрозачно.
И поэтому они решили заставить всех делать if'ы после каждой строчки кода, чтобы явно заставить тебя обрабатывать ошибки конкретно из этой функции в своём отдельном месте.
Аноним 13/06/19 Чтв 09:30:18 1415626254
>>1415536
Конструктор - это просто функция. Создай функцию NewYourObject() и иди себе с миром.
Ну или `func (obj *YourObj) Construct()`, если хочется обмазываться извращениями.
Аноним 13/06/19 Чтв 09:48:22 1415630255
>>1415626
и как же мне заставить додиков пользоваться конструктором, не созданием структуры? Если написать с маленькой буквы то внутри пакета все равно можно будет пользоваться struct{}, и выглядит это ужасно, тяжело становится понимать, где тип, а где нет.
Аноним 13/06/19 Чтв 11:08:47 1415674256
>>1415630
> выглядит это ужасно, тяжело становится понимать, где тип, а где нет
Так в этом и суть го.
Аноним 13/06/19 Чтв 11:41:48 1415694257
>>1415630
Например, ты можешь не экспортировать эту структуру (назови её с маленькой буквы). Или не экспортируй нужные поля (называй их с маленькой буквы).
Аноним 13/06/19 Чтв 11:42:44 1415695258
>>1415674
Нифига не в этом, нормально всё понимается.
Аноним 13/06/19 Чтв 13:21:44 1415775259
>>1415695
С тем, что выглядит ужасно, ты хоть согласен?
Аноним 13/06/19 Чтв 18:54:21 1415975260
>>1415694
я об этом и написал, алсо внутри пакета я все равно могу себе ебнуть в колено
Аноним 13/06/19 Чтв 23:22:04 1416072261
>>1415975
Так в любом языке себе можно ебнуть в колено
Аноним 13/06/19 Чтв 23:26:28 1416076262
>>1416072
ну го должен был быть dumbed down, а если я перестану беречь свои колени, то я пойду на node js писать без типов.
Аноним 14/06/19 Птн 01:35:04 1416126263
>>1360787 (OP)
линки на книги битые, ну еб твою
Аноним 14/06/19 Птн 08:59:59 1416177264
>>1416126
Убери запятую в конце адреса.
Аноним 14/06/19 Птн 09:02:50 1416179265
>>1415630
>и как же мне заставить додиков пользоваться конструктором, не созданием структуры?
Джентельменское соглашение.
Вон у пиндо в питоне в мануале прямо написано:
- Разработчик апи объявил в классе переменную с двумя андерскорами, а я все равно ее прочту))
- Ну нинад плиз(
Аноним 14/06/19 Птн 10:21:18 1416204266
>>1364710
Рефлексия не нужна в большинстве случаев, т.к. она бьёт по перфомансу, а если перфоманс не критичен, то удобнее взять что-то более гибкое, типа скриптовщины какой-нибудь.
Аноним 14/06/19 Птн 13:27:29 1416313267
>>1416076
А в другом языке ты можешь менять поле внутри любого другого метода класса. Хочешь изоляции - дели по пакетам и всего делов.

>>1415775
Да обычно выглядит, называй нормально и всё. В любом языке так, кроме php, где переменные с доллара начинаются и поэтому никогда с таким не сталкиваешься.
Аноним 14/06/19 Птн 13:28:12 1416314268
>>1416204
Вместо рефлексии нужно использовать кодогенерацию, если это возможно (типа го-вей).
Аноним 16/06/19 Вск 09:34:12 1417093269
>>1416314
Не могу нихуя нагуглить, можно подробнее?
Аноним 16/06/19 Вск 19:28:16 1417366270
>>1417093
Вместо того, чтобы в рантайме смотреть на тип и что-то делать исходя из типа, заранее напиши тулзовину, которая будет принимать список типов и генерить типизированнй код. По аналогии с cheekybits/genny или hexdigest/gowrap,
В го отличный парсер и прочий тулчеин, я свой первый генератор написал за 2 часа (причём второй час бился с шаблонизатором). Следующий напишу за полчаса-час по необходимости.
Аноним 16/06/19 Вск 23:41:12 1417455271
>>1417366
> я свой первый генератор написал за 2 часа (причём второй час бился с шаблонизатором). Следующий напишу за полчаса-час по необходимости
Но дженерики нинужны, ага.
Аноним 17/06/19 Пнд 06:24:27 1417507272
>>1417366
Кек, я когда услышал что дженериков нет сразу тоже подумал так делать. Только я хотел ещё чтобы оно список типов на основе моего кода само вычисляло. Спасибо за ссылки.
>>1417455
двачую, го это царство логики
Аноним 17/06/19 Пнд 13:38:34 1417656273
>>1417455
Хз, не понимаю, чего все дрочат на отсутствие дженериков. Честно, за всё время моей работы они мне понадобились раза два. Оба раза я даже не генерируя код написал всё руками. Чуть менее элегантно, согласен.
Но это не такая уж и большая проблема, какой её раздувают. Интерфейсы, кодогенерация и, по большой необходимости, рефлексия решают все те же задачи, просто другим способом.
Если уж хотите доебаться до го, доябывайтесь до nillable интерфейсов или обработки ошибок хотя бы.
Аноним 17/06/19 Пнд 21:00:03 1417993274
>>1417656
> обработки ошибок
Она не так уж плоха, мне больше нравится, чем неявная работа с исключениями. Единственный минус - это обилие кода типа
if err != nil{
return nil,err
}
Но это пытаются пофиксить различными пропозалами
Аноним 17/06/19 Пнд 22:18:20 1418036275
Я ньюфаг в самом программировании в принципе, до Го учил JS три месяца, извините что тупой.
Так вот, зачем закрывать файл?
firstFile, err := os.Open(os.Args[1])
if err != nil { panic(err) }
>defer firstFile.Close()
Вот это вот.
Аноним 17/06/19 Пнд 22:48:36 1418050276
>>1418036
Потому что количество дескрипторов не бесконечно.
Аноним 18/06/19 Втр 00:23:21 1418075277
Прохожу тьюториал на Го и там автор использует glide как менеджер зависимостей. Что лучше glide или go get?

Ну и чтобы два раза капчу не воодить: VS Code vs GoLand - кроме легковестности у VS Code есть еще преимущества? Отладка там как, нормальная?
Аноним 18/06/19 Втр 01:40:47 1418084278
>>1418075
Читай про go modules - это к вопросу о менеджере зависимостей
>>1418075
>VS Code vs GoLand - кроме легковестности у VS Code есть еще преимущества? Отладка там как, нормальная?
Нормальная, хотя что-то там мне не понравилось. VS Code бесплатная, а GoLand - плати или ищи лицензии
Аноним 18/06/19 Втр 11:35:21 1418180279
>>1418075
Голанд срет своим конфигом тебе прямо в $HOME, а vscode тоже в хоум, и в .config, блядь, везде насрано.
Аноним 18/06/19 Втр 11:36:23 1418181280
>>1418180
Скажите, что вим умеет показывать докстринг для импортируемой функции, и я на него перекачусь.
Аноним 18/06/19 Втр 12:39:58 1418210281
>>1417993
Она не плоха, но возникают проблемы с идентификацией ошибок и добавлением контекста в ошибки.
Аноним 18/06/19 Втр 12:42:51 1418214282
>>1418075
> Ну и чтобы два раза капчу не воодить: VS Code vs GoLand - кроме легковестности у VS Code есть еще преимущества? Отладка там как, нормальная?
Дебаггер у vs code вроде как лучше.
Мне лично студия почему-то не зашла, пользуюсь IDEA. Но я уже лет 5 их IDE'хами пользуюсь, выработалось много привычек, больно без удобных привычных кнопочек, которые ты уже знаешь, где лежат и как найти.
Аноним 18/06/19 Втр 13:30:46 1418236283
>>1416314
тут ещё стоит добавить, что рефлексия в го довольно всратая, как и система типов. например, нельзя скастовать тип полученный из рефлексии на интерфейс.
Аноним 18/06/19 Втр 13:46:05 1418244284
Аноним 18/06/19 Втр 23:09:30 1418574285
>>1418084
>Читай про go modules - это к вопросу о менеджере зависимостей
Go modules - прикольней чем glide или go get.


А что со сборкой проекта? Makefile, gödel или еще что-то?
Аноним 18/06/19 Втр 23:18:50 1418579286
Аноним 18/06/19 Втр 23:33:24 1418583287
image.png (523Кб, 500x500)
500x500
Аноним 20/06/19 Чтв 08:30:20 1419197288
>>1418236
Непонятно, почему "нельзя". Что ты хочешь сделать и чего у тебя не получается? Покажи код.
Аноним 20/06/19 Чтв 10:13:46 1419252289
1.png (140Кб, 512x512)
512x512
>>1419197
Нельзя из-за парадаксальной ситуации, потому что reflect.TypeOf, внезапно, не может возвращать тип и его результат "is not a type".

пример
https://play.golang.org/p/-58cxNN5QWL
Аноним 20/06/19 Чтв 20:40:56 1419567290
1561052440276.jpeg (118Кб, 716x705)
716x705
>>1418574
> Go modules - прикольней чем glide или go get.
Приватные репы
+ >>1381882
Аноним 20/06/19 Чтв 22:26:22 1419619291
Аноним 21/06/19 Птн 12:02:41 1419855292
>>1419252
Ты пытаешься какую-то странную хрень сделать, закастить тип первого аргумента, в аргумент второго аргумента. Не говоря уже о том, что код просто некорректно написан и не скомпилируется.
Напиши реальный юзкейз, когда тебе понадобиться так сделать. Пока что выглядит так, что ты пытаешь программировать на го на пехапе и у тебя не выходит.
Аноним 21/06/19 Птн 16:00:33 1419999293
Аноним 21/06/19 Птн 19:26:01 1420099294
>>1419855
В этом и суть, что оно не компилируется, а должно. Смотри:
1) каст всегда выполняется к типу x.(type)
2) функция typeOf по логике должна возвращать тип, иначе нахуя её так называть? Сделали бы тогда wtfOf, чтобы голову не морочить.
3) значит каст должен работать x.(typeOf(x)), но хер там, потому typeOf возвращает хз что.
Да, это нерабочий код, но какого хуя?
Аноним 22/06/19 Суб 12:17:12 1420368295
>>1420099
typeOf возвращает не тип, а описание типа
Аноним 23/06/19 Вск 08:08:38 1420755296
>>1420368
Хуёво, чо. И название метода косое, и тип невозможно на лету получить и кастонуть как обычно. Только костыли ебические с call как на примеие анона выше.
Аноним 23/06/19 Вск 08:30:25 1420757297
>>1420755
ты тредом ошибся, удобства в языке для вонабикрасноглазиков-но-неосиляторов искать -- глупо.
Аноним 23/06/19 Вск 15:50:22 1420914298
>>1420757
А какой язык для осиляторов? Си? Кроме 0,5% разработчиков он никому уже нинужен. Плюсы? Такая же шняга как го, только в придачу еще многоэтажный шалаш из костылей.
Аноним 25/06/19 Втр 16:14:25 1422067299
>>1420757
Щас бы придираться к отсутствию динамического кастинга в статическом языке. Я бы у вас вообще рефлексию отобрал, ибо нефиг, одно говно пишете с ней.
Аноним 26/06/19 Срд 18:45:31 1422683300
>>1420757
ну а хуле поделать, альтернатив нет. грин треды есть еще только в эрланге и хаскеле... и на этом всё.
а без грин тредов в 2к19 - вообще хуйня ебаная, это проститетльно только для системных языков их не иметь.
Аноним 27/06/19 Чтв 09:24:46 1422984301
Аноним 27/06/19 Чтв 10:15:55 1423023302
image.png (92Кб, 865x767)
865x767
image.png (102Кб, 680x365)
680x365
Товарищи суслики, подскажите, где я долбоёб.
В общем, есть штука. Функция database.Connect() это то же что и sql.Open(), только вынес в одну функцию сразу и чтение параметров подключения, и всю эту чепуху.
Проблема в чём. При ограниченном MaxIdleConns, на сервере всё равно плодится хуева туча этих висящих подключений. Из-за чего БД в какой-то момент, естественно, перестаёт принимать подключения. Как фиксить? Месседж хендлер обрабатывает входящие данные и пишет результат в БД. Пробовал и defer db.Close(), всё равно эти мёртвые подключения висят. И даже с ограниченным лайфтаймом никуда не деваются. Всё что debug_user это подключения от моего обработчика.
Аноним 27/06/19 Чтв 10:34:44 1423038303
>>1423023
Выставил уже 0 MaxIdleCons и всё равно висят соединения. Какого чёрта.
Аноним 27/06/19 Чтв 11:02:39 1423061304
>>1423038
ЕМНИП, стандартная библиотека по умолчанию реализует пул коннектов. Но db.Close() должен помогать.
Код у тебя конечно пиздец.
Если выложишь пример в 20 строк кода (выкинь всё лишнее), который я смогу локально запустить (и скажешь, что именно тебе в нём не нравится) - посмотрю.
Аноним 27/06/19 Чтв 11:23:55 1423080305
>>1423061
То есть, как я понимаю, лучше для каждого хендлера открывать коннект отдельно и после записи мануально его закрывать, верно?
Аноним 27/06/19 Чтв 11:30:10 1423084306
vim.png (176Кб, 1916x1080)
1916x1080
Аноним 27/06/19 Чтв 12:07:05 1423110307
Аноним 27/06/19 Чтв 12:08:38 1423112308
image.png (54Кб, 1095x306)
1095x306
>>1423110
10 сообщений пришло и все 10 соединений висят.
Аноним 27/06/19 Чтв 21:24:49 1423552309
Аноним 29/06/19 Суб 23:42:48 1424737310
>>1422683
В Эрланге нет грин тредов, там акторы, а акторы есть и для Java, Scala, .Net, да даже C++.
Для асинхронных методов в .Net - async/await, в JVM - Kotlin coroutines.
Аноним 30/06/19 Вск 15:40:50 1424935311
>>1424737
В ерланге процессы попизже сцаных гринтредов.
И причём тут акторы? Модель актров - это просто модель, имплементации могут отличаться.
Аноним 30/06/19 Вск 22:18:39 1425165312
>>1424935
И что же там такого пиздатого, чего нигде больше нет?
Аноним 03/07/19 Срд 09:30:54 1426881313
>>1425165
[irony]Там 3.14здатые строки в виде массивов чаров[/irony]
Аноним 03/07/19 Срд 13:48:06 1426983314
Захотел другой формат даты в логе, в доках нет ничего, заглянул в исходник, а там блядь хардкод.
[code]
if l.flag&Ldate != 0 {
year, month, day := t.Date()
itoa(buf, year, 4)
buf = append(buf, '/')
itoa(buf, int(month), 2)
buf = append(buf, '/')
itoa(buf, day, 2)
buf = append(buf, ' ')
}
[/code]

Что теперь? Искать на гитхабе васянские пекеджи? Это прямо какой-то perl с TIMTOWTDI.
Аноним 03/07/19 Срд 13:48:46 1426984315
>>1426983
Разметку проебал, все проебал, так себе неделя.
Аноним 04/07/19 Чтв 08:51:19 1427657316
>>1426983
Для логов популярен пакет logrus
Аноним 04/07/19 Чтв 16:49:01 1427975317
>>1427657
Главное не берите логгер от убера, там такой пиздец, будто данные со спутника логировать собираешься.
Аноним 04/07/19 Чтв 21:15:02 1428110318
>>1426983
В чем проблемс создать свой пекедж с необходимым форматом даты
Аноним 04/07/19 Чтв 23:49:04 1428188319
Аноним 05/07/19 Птн 08:29:01 1428280320
>>1428110
Я ж скозал, получится перл. Зере из моар зен уан вей ту ду ит, а на деле это означает "сделай сам". То есть, начинаешь кодить проект, а логер не кастомизируется. Напиши свой! Ну или ищи на гитхабе логер от васяна, но и с претензиями тоже к васяну иди.
Аноним 06/07/19 Суб 17:58:43 1429167321
>>1428280
В чём проблема? В го есть стандартный форматтер даты. Если в логгере хардкод - перепиши его и плюнь в морду/репозиторий автору-говнокодеру
Аноним 10/07/19 Срд 00:38:07 1431362322
А что можете посоветовать почитать про аллокации в Go (раздел документации, глава в книге).

Меня сейчас совершенно вымораживают конструкции типа

var myname string
fmt.Scanf("%s", &myname)

- Где аллоцируется myname? На стеке?
- А что будет если Scanf() отдаст ссылку на &myname куда-то еще и она переживет возвтрат из основной функции?
Аноним 10/07/19 Срд 08:29:31 1431447323
func main() {
goku := &Saiyan{"Goku", 9000}
Super(goku)
fmt.Println(goku.Power)
}

func Super(s *Saiyan) {
s.Power += 10000
}

Пиздец, почему примеры из книжки не работают?
Аноним 10/07/19 Срд 08:38:45 1431449324
>>1431447
Это в какой книжке такие мемные примеры с Драгон Боллом?
Аноним 10/07/19 Срд 08:43:31 1431450325
Аноним 10/07/19 Срд 09:19:38 1431457326
Аноним 10/07/19 Срд 09:41:14 1431463327
>>1431457
Импорт и пекедж добавлял, насчет типа понял, спасибо!
Аноним 10/07/19 Срд 11:36:48 1431494328
Почему в слайсах первый элемент включается, а последний нет? Есть какое-то объяснение этому?
Аноним 10/07/19 Срд 11:45:13 1431500329
>>1431494
Что значит "включается"?
Аноним 10/07/19 Срд 11:48:14 1431501330
>>1431500
func main() {
s := []int{2, 3, 5, 7, 11, 13}

s = s[1:4]
fmt.Println(s)

Вот тут например получается [3 5 7], т.е. слайс 1 элемента = 3 включен, а 4 элемент = 11 нет?
Аноним 10/07/19 Срд 13:30:43 1431539331
Почему на го 80% вакансий -- какой-то откровенный скам блокчейновый или вообще хуй пойми что?
Аноним 10/07/19 Срд 13:35:12 1431541332
Аноним 10/07/19 Срд 13:46:12 1431549333
>>1431539
Современная индустрия - либо галеры, либо легаси-говнище либо сомнительные стартапы.
Аноним 10/07/19 Срд 15:08:11 1431601334
>>1431541
Да хз ну просто кучу разноработы как на том же питоне, например. Понятно, что вакансий на го я и не ожидал увидеть столько же, сколько на питоне, да хуй бы с ним даже если бы их в 20 раз меньше было, но само качество вакансий это же полный пиздец.
Аноним 10/07/19 Срд 15:59:07 1431632335
>>1431501
Ты выбрал элементы с первого по четвёртый, логично, что ты их и получил.

Так будет понятнее (надеюсь, двач не побъет отступы):
| a | b | c | d | e | f | g | h | i |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
------^-----------^

Т.е. ты взял все элементы начиная с индекса 1, заканчивая индексом 4.
Аноним 10/07/19 Срд 16:00:56 1431634336
>>1431632
Я еще с питоновских слайсов запомнил, что первая скобка интервала квадратная, а вторая круглая.
Аноним 10/07/19 Срд 16:01:39 1431635337
>>1431601
Го ещё молод - это во первых.
Во вторых, основные ниши - это высоконагруженные (микро)сервисы (а как правило высоконагруженные сервисы быстро приносят бабло и сами превращаются в кровавый энтерпрайз) либо блокчейны.

Есть мнение, что со временем го распробуют, полюбят за низкий порог входа и го станет языком для быстрого прототипирования (как сейчас php или nodejs).
Аноним 10/07/19 Срд 16:02:37 1431636338
>>1431634
> Si fueris Romae, Romano vivito more, Si fueris alibi, vivito sicut ibi. - Если ты в Риме - живи как Римлянин, в других местах - живи (веди себя) как местный.
В питоне пиши на питоне, в го пиши на го.
Аноним 10/07/19 Срд 16:10:06 1431641339
>>1431636
> Если ты в Риме - живи как Римлянин, в других местах - живи (веди себя) как местный.
Вот римляне огребли и в Риме и в других местах.
Аноним 10/07/19 Срд 16:10:49 1431642340
>>1431636
TIL что алиби в прямом смысле означает "в другом месте"
> from Latin alibī (“elsewhere, at another place”, adverb).
Аноним 10/07/19 Срд 16:34:41 1431657341
https://play.golang.org/p/ObBJ2RwownA
Если сбилдить и запустить например:
main.exe http://vk.com > test.html
В переменной test оказывается вот это:
Test%!(EXTRA int64=9285)
Откуда берется %! и int после него? Я понимаю, что это общее количество спаршенных символов, но я же нигде не указывал что хочу их видеть. У меня немного едет логика, когда я думаю о том чтобы писать _, err (и последующим сравнением err != nil), вместо того чтобы просто юзать err:= copy ... без _ и вот этих EXTRA int, которые в нем находятся.
Аноним 10/07/19 Срд 16:41:40 1431664342
>>1431641
<оффтоп><нет политосрачу>Ну так-то они построили государство, которое просуществовало полторы тысячи лет (считая Восточную), их язык является основой для большинства современных, включая международный, а их культура до сих пор живёт и здравствует, как часть массовой (легионы, император, гладиаторы и тысячи прочих моделей).
Для сравнения:
- Российская империя просуществовала 196 лет и практически ничем сравнимым с римскими легионами в массовой культуре не отметилась.
- Советский союз просуществовал 69 лет, и помнят его только потому, что и он сам, и холодная война были сравнительно недавно и ещё живы те, кто видел всё своими глазами. (спустя ещё сто лет и пару мировых войн, боюсь, в массовой культуре он будет значить столько же, сколько Австро-Венгрия).
- РФ существует всего 28 лет.
</нет политосрачу></оффтоп>
Аноним 10/07/19 Срд 16:50:50 1431673343
>>1431635
>высоконагруженные (микро)сервисы
для вкатывания в которые все требуют готовый опыт участия в других высоконагруженных проектах = джуниоры идут нахуй. мне так-то похуй, я с 2005 года в индустрии, но если нет потока джунов, то за счёт чего технология будет взлетать?

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

так что я бы может и хотел на го писать, но я чёт хочу кушать. а там не кормят особо. а для прототипирования для себя мне проще взять ту же ноду и не ебать мозга себе и окружающим.
Аноним 10/07/19 Срд 17:12:38 1431694344
>>1431673
Ты не сечёшь фишку.
Го очень простой, на самом деле. Тебе не придётся объяснять джуниору тонкости наследования, арифметику указателей, async-await, реактивщину и прочие концепции.
При условии, что он не тупой и у него есть знания хотя бы на уровне семестра погроммирования на сипаскалепитоне из института,ты клонишь ему проект, увешнный гошными линтерами и рейс-детектерами (а это очень просто настроить), объясняешь "короч пиши go перед кодом и он выполнится в другом потоке, потом верни результат через канал" - и он пишет код, который потом очень легко ревьювить, по сравнению с каким-нибудь джаваскриптом. Снижается когнитивная нагрузка на тебя-тимлида. А, так как микросервисы, то нужен один или два головастых архитектора, кто продумают взаимодействие между микросервисами и напишут интерфейсы (к примеру, proto-файлы в отдельном репозитории).
После этого, джуниоров можно запускать в маленькие приложения, там минимум кода, хрен они что тебе сломают там, пусть говнокодят и учатся. Линтеры поймают 90% ошибок, ты пробежишь глазами и поймаешь ещё 9%.
Можно так делать и на какой-нибудь пыхе, только го намного производительнее (и всё ещё очень просто).
Аноним 10/07/19 Срд 17:37:24 1431712345
>>1385016
Мои мысли описал. Особенно про пиздюлей сишникам.
Аноним 10/07/19 Срд 20:40:57 1431866346
>>1431673
По этой же логике не может быть ждунов по любому языку, который не входит в универскую программу.

Сейчас есть и курсы по го, и в некоторые конторы берут стажеров, и некоторые разрабы переучиваются с питона и пхп на го. Так что количество го разработчиков постепенно растет.

>>1431673
>выравнивание структур по границам
Это штука, которая, насколько я знаю, почти никогда не нужна, и о ней многие знают, только потому что на нее есть линтер.
Аноним 10/07/19 Срд 21:16:54 1431889347
>>1431694
>>1431866
Это всё как-то не вяжется с тем, что на данный конкретный момент все вакансии по golang, которые вообще имеет смысл рассматривать, включают в себя знание как минимум реляционных субд, а лучше ещё и nosql, а так же знание сетевого стека. Во многих вакансиях ещё блокчейн. Много где требуется знание основ фронтэнда. Много где вообще без задней мысли хотят ещё С++ или тот же Python.
Аноним 10/07/19 Срд 21:24:56 1431892348
>>1385016
>Я вот сейчас пишу фронтенд и охуеваю от количества магии и сахара на тайпскрипте и в ангуляре.
С го будет то же самое. В 2010 году исходники бэкбона тоже мог прочитать любой желающий целиком и многие читали, я в том числе.
Аноним 10/07/19 Срд 21:26:08 1431894349
>>1431889
С тем же успехом можно сказать, что все вакансии по джаве требуют спринг и тд
Аноним 10/07/19 Срд 22:22:55 1431918350
>>1431889
Сейчас бы возмущаться, что на бекенде кроме ЯП нужно знать ещё БД, сетевой стек и основы фронтенда.
Аноним 10/07/19 Срд 23:27:04 1431951351
>>1431494
Просто общепринятая практика: полуоткрытый диапазон.
Слайс на весь массив будет [0:len]
Цикл for i := 0; i < n; i++
rand.Intn(n) выдает [0,n)

В общем так принято, левая граница включается правая нет. Глубокого замысла в этом нет, просто так исторически сложилось. В других языках то же так же.
Аноним 11/07/19 Чтв 00:32:01 1431983352
>>1431657
Мы вам не перезвоним.
Аноним 11/07/19 Чтв 10:48:32 1432260353
>>1360787 (OP)
Вкатываюсь из питона. Подскажите, что нужно знать на уровень мидла? Ну кроме очевидных как работает язык, архитектуру микросервисов, кэши, докеры, бд.
Аноним 11/07/19 Чтв 10:50:12 1432263354
>>1361974
>Компилируемый
>Серверный
Не вижу связи. Не придумывай.
Аноним 11/07/19 Чтв 13:10:31 1432346355
>>1432260
Очевидно, как работает язык, сложившиеся практики работы с языком и прочие паттерны (не всегда ООПшные) + тулчеин и набор маст-хев библиотек.
Аноним 12/07/19 Птн 09:04:45 1432947356
На апворке куча вакансий типа
Ищем рокстар го-сеньора 15+ лет опыта. Требования:
- знать
>как работает язык, сложившиеся практики работы с языком и прочие паттерны (не всегда ООПшные) + тулчеин и набор маст-хев библиотек.
- жить в нищей стране третьего мира, но в нашем часовом поясе
- Ангулар.жс
Они это серьезно?
Аноним 12/07/19 Птн 09:33:32 1432960357
Аноним 12/07/19 Птн 09:36:26 1432963358
>>1432947
Ну а ты чего хотел? Пока есть индусы, украинцы и прочие мексиканцы, которые готовы на всё за еду - их и будут искать.
Как говориться, у бизнеса никогда нет денег сделать всё хорошо сразу, зато всегда есть деньги сделать фичу два раза.
Аноним 12/07/19 Птн 12:21:34 1433102359
>>1432960
Ты сам-то свою ссылку читал?
> generate a byte-code file from a source file
Аноним 12/07/19 Птн 12:26:20 1433106360
>>1433102
Я-то читал и знаю. Сначала ищется pyc файл. Если не находится, то берется файл py. Он компилируется в байт-код и дальше использует именно байт-код. Отличие только, что нужно специальную джава-ебанину-машину ставить, а в питоне интерпретатор содержит средства для работы с байт-кодом.
Аноним 12/07/19 Птн 12:27:59 1433108361
image.png (10Кб, 422x160)
422x160
Как называются такие структуры? Вложенные гуглил, немного не то. И как работать с ее значениями? fmt.Println(CurrentItemStruct.Result) очевидно выводит все сразу в строку, а что-то типа CurrentItemStruct.Result.Listing.Whisper не работает.
Аноним 12/07/19 Птн 12:38:13 1433118362
>>1433108
резалт - не структура, а слайс анонимных структур
Аноним 12/07/19 Птн 14:43:28 1433233363
>>1433108
CurrentItemStruct.Result[0].Listing.Whisper должен сработать
Аноним 12/07/19 Птн 16:34:48 1433298364
>>1433233
CurrentItemStruct.Result undefined (type CurrentItemStruct has no method Result)
Блядь, вообще ничего не понимаю. Как разобраться в этом?
Аноним 12/07/19 Птн 16:40:39 1433306365
>>1433298
Инициализируй структуру
Аноним 12/07/19 Птн 18:19:29 1433391366
>>1433106
Братюнь, байт-код то который, кстати, почти 1:1 соответствует исходному коду, оптимизатор в питоне - не пришей пизде рукав интерпретируется.
Аноним 12/07/19 Птн 19:17:12 1433444367
Обрыгался с го после раста, ваши оправдания?
Аноним 13/07/19 Суб 15:10:36 1433935368
image.png (643Кб, 1024x568)
1024x568
Аноним 16/07/19 Втр 10:40:35 1436613369
Знакомлюсь с вашим Goвном, есть опыт в других яхыках. Что можно/нужно написать на нем чтобы затронуть большую часть языка?
Аноним 16/07/19 Втр 10:46:52 1436615370
>>1436613
Лiл, имиджборду с поддержкой quic. С коброй и вайпером.
Аноним 16/07/19 Втр 10:46:54 1436616371
Разбираюсь с контекстом.
Основная горутина запускает несколько горутин, забирает результат от самой быстрой, остальные тихонько завершаются.
Вот код, написанный как сказано в документации:
https://play.golang.org/p/YRmBM4bOf_2
Вот код, который работает, как ожидается:
https://play.golang.org/p/cKWS4K6Z8Rq

Вопрос 1: почему в первом случае select не ловит ctx.Done()?
Вопрос 2: почему в первом случае select ловит ctx.Done(), если канал объявить небуферизированным?
Аноним 16/07/19 Втр 19:40:03 1437012372
Чем ваша горутина отличается от корутины? Или гошники просто спиздили идею и выдали её за свою под "оригинальным" названием?
Аноним 16/07/19 Втр 20:22:00 1437047373
>>1436616
Предположу, что в первом случае все траблы из-за того, что происходят два события одновременно: получение ctx.Done() и запись в канал out. И видимо, select выбирает случайным образом, какое событие обработать.
Аноним 16/07/19 Втр 21:34:58 1437119374
>>1437047
Да, ты прав:
A select blocks until one of its cases can run, then it executes that case. It chooses one at random if multiple are ready.
Если сделать result небуферизированным каналом, то все работает ок.
А из-за рандомности селекта не все воркеры ведут себя одинаково.
Аноним 16/07/19 Втр 22:08:13 1437146375
Аноним 17/07/19 Срд 10:27:44 1437409376
>>1437012
При использовании корутин контекст меняется явно, посредством вызова yield. Го-рутины переключаются планировшиком (там целая пачка условий, таймауты, директивы и прочее).
Аноним 17/07/19 Срд 12:05:46 1437471377
>>1437146
>>1437409
Не гопник.
Чем тогда горутины отличаются от тредов не по ресурсам, а по программированию? Как обработка критических секций осуществляется, тоже всё подряд надо лочить? То есть фактически это треды, а не корутины?

Корутины хороши тем, что я сам разрешаю переключение задач и знаю, когда может переключиться, а когда не может.
Аноним 17/07/19 Срд 14:14:14 1437568378
>>1437471
Рассматривать горутины отдельно от каналов смысла нет.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов