М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 31 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Тред про лучший в мире язык GO №3 /go/ # OP 7 мар, 22:19 1360787 В конец треда | Веб

249 Кб, 500x500218 Кб, 778x96078 Кб, 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)
нумерация утеряна, так что перезапуск нумерации

Ответы360802361154361903361960366612366656367468370960375317377084377820381882382947383416388597416126432260440080445817

420 Кб, 1200x1200
2 7 мар, 23:35 2 1360802

>>1360787 (OP)
Наконец-то адекватная шапка!

Ответы360828

3 8 мар, 01:02 3 1360828

>>1360802
ржу с пика

4 8 мар, 03:12 4 1360835

Стоит ли после тура читать сразу Effective Go?
Говорят что в Языке программирования го очень много воды

Ответы369441

5 8 мар, 08:13 5 1360859

Не пойму как работают горутины. Какая-то магия. Ненавижу магию

Ответы360924360968

6 8 мар, 12:22 6 1360918

Нид хелп. Есть 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"`
}

Делаю анмаршал, а структура пуста. Какого хрена?

Ответы360967

7 8 мар, 12:44 7 1360924

>>1360859
Для начала лучше разберись как устроенна асинзронность вообще. Погугли событийные циклы. Очереди задач. Асинхронность на генираторах и каллбеках.

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

Мимо Питон макака.

Ответы361168

8 8 мар, 14:22 8 1360967

>>1360918
Во-первых, закрой тег /azaza, траллер. Во-вторых, почитай про xml tags, в данном случае тебе поможет xml:"ololo"

Ответы360992

9 8 мар, 14:23 9 1360968

>>1360859
Что именно тебе не понятно?
Отдельный поток исполнения, смотрит в общую память, но общаться лучше через каналы. Магии как раз минимум (гарантий впрочем тоже)

Ответы379453

10 8 мар, 15:24 10 1360992

>>1360967
Тег закрыт, это я просто криво сюда написал. Спасибо, помоглоололо

226 Кб, 905x1080
11 8 мар, 21:01 11 1361154

>>1360787 (OP)
В очередной раз я пришел сюда за интересными идеями для полезных консольных утилит. Вся надежда на тебя, анон!

12 8 мар, 22:02 12 1361168

>>1360924
>lazy eval - это теперь асинхрон
Ну охуеть теперь

296 Кб, 640x566
13 9 мар, 03:11 13 1361264

Эх, помню срачем за месяц 10 тредов по го делали.

Ответы444732

528 Кб, mp4,
1280x720, 0:03
14 10 мар, 12:25 14 1361874

кек

Ответы361932364094364715

15 10 мар, 13:41 15 1361903

>>1360787 (OP)
что смогу сделать на этом говне? бота для телеги можно?

Ответы361915

16 10 мар, 14:00 16 1361915

>>1361903
>бота для телеги можно?
Да

17 10 мар, 14:39 17 1361932

>>1361874
Хорош

18 10 мар, 15:19 18 1361960

>>1360787 (OP)
> го
А нахуй он собственно нужен? Просто зачем?

Ответы361966

19 10 мар, 15:26 19 1361966

>>1361960
Чтоб писать относительно небольшие программы и микросервисы на компилируемом языке, а не поддерживать монструозные проекты на джаве/дотнете

Ответы361972362025

20 10 мар, 15:30 20 1361972

>>1361966
Что насчет создания полноценных декстоп-аппов?

Ответы361974

21 10 мар, 15:33 21 1361974

>>1361972
Го - язык серверный, гуи на нем не пишут.

Ответы432263

22 10 мар, 17:13 22 1362025

>>1361966
но ведь ты описал пайтон

Ответы362027

23 10 мар, 17:16 23 1362027

>>1362025
>пайтон
>компилируемый

Ответы362043432960

sage 24 10 мар, 17:34 24 1362043

>>1362027
Как бы тебе сказать...

63 Кб, 512x512
25 11 мар, 18:12 25 1362537

Отладка в голанде уебанская какая-то. Или я даун. Или и то и другое

Ответы362568366744

325 Кб, 1356x1003
26 11 мар, 19:11 26 1362568

>>1362537
Попробуй vscode

Ответы362585

27 11 мар, 20:02 27 1362585

>>1362568
>Попробуй vscode
// Эта строчка советует анону
// Попробовать vscode

Ответы362620

28 11 мар, 21:14 28 1362620

>>1362585
Предлагаешь анончику пользоваться консольным gdb?
Я сам не фанат vscode, но на данный момент это лучшая ide для гошечки.

Ответы362728362737366614

29 11 мар, 22:49 29 1362728

>>1362620
Зачем вам отладчик/ide для языка, в котором тестов пишут больше чем кода, и скомпилировать с неиспользуемой переменной не дают. Зачем?

Ответы362776

30 11 мар, 23:00 30 1362737

>>1362620
я скорее имел ввиду стиль коментариев на пикрелейдет.
Так то вскоде вперде.

Ответы362776

31 11 мар, 23:52 31 1362776

>>1362728
> Зачем вам ide
Например для быстрой навигации по проекту и удобного рефакторинга. Моя влажная мечта запомнить cli команды по типу gofmt и gorename и перекатиться на какой-нибудь vim.

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

>>1362737
Извини. Я думал это как вызов `порекомендоватьVScode()` и он закомментирован.

Ответы362804363041

32 12 мар, 01:31 32 1362804

>>1362776
vim-go такие вещи по \f умеет. Не надо ничего запоминать.

33 12 мар, 15:56 33 1363009

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

Ответы363249

34 12 мар, 16:56 34 1363041

>>1362776
>Иногда нужно посмотреть что у тебя приходит в параметрах запроса или результат вызова json.Unmarshal.
В нормальных языках для этого отладчики не нужны. Как всегда, ide лишь компенсирует ущербность языка.

Ответы363249363632363647

35 13 мар, 01:26 35 1363249

>>1363009
1) В Го нет только наследования, которое не самая популярная опция в ооп. А так, по сути, там есть те же классы и интерфейсы.
2) Так ли надо ооп для успешного программирования?

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

Ответы363425

sage 36 13 мар, 14:31 36 1363425

>>1363249
>Ну назови "нормальный" язык, который используется массово для промышленной разработки и без иде.
Во-первых, я ничего не говорил о "языке, который используется без иде". Перечитай еще раз.
Во-вторых, называю: си, баш, пайтон, руби, луа, жс, го.

Ответы363498

37 13 мар, 16:15 37 1363498

>>1363425
>луа
Тут ты перетолстил

Ответы363593

sage 38 13 мар, 18:51 38 1363593

>>1363498
Нет, я не перетолстил, луой действительно часто пользуются без ide.

Почему в го-треде одни дебилы?

Ответы363607

39 13 мар, 19:40 39 1363607

>>1363593
Да понятно, что без IDE, вопрос в том что Lua это с очень большой натяжкой промышленный язык

Ответы363634363639

40 13 мар, 20:51 40 1363632

>>1363041
Без отладки (как процесса) ты нормальный промышленный код написать не сможешь практически никогда. И тут у тебя два варианта: иде с дебаггером или log.println() как деды завещали.

Ответы363633363641

41 13 мар, 20:58 41 1363633

>>1363632
Серьезно? В питоне есть интерактивный дебагер останавливающий выполнение программы и подключающий, собственно, cli дебагера, звучит как что-то, что присуще каждому нормальному языку

Ответы363636363650

42 13 мар, 21:02 42 1363634

>>1363607
Нихуя себе, LuaJit так то быстрее вашего v8, все нормальные люди уже давно если не используют, то пробуют lua

43 13 мар, 21:06 43 1363636

>>1363633
Ты определись с тезисом, который ты доказываешь.
То ты говоришь, что отладчики не нужны, то теперь говоришь, что в питоне он нужен.

Ответы363640

sage 44 13 мар, 21:12 44 1363639

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

45 13 мар, 21:13 45 1363640

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

Ответы363647363650

46 13 мар, 21:14 46 1363641

>>1363632
>И тут у тебя два варианта: иде с дебаггером или log.println()
Сразу две ошибки. Во-первых, дебаггер может быть без иде а иде, наверное, может быть без дебагера. Во-вторых, варианты этими двумя не исчерпываются.

Ответы363646

47 13 мар, 21:17 47 1363646

>>1363641
А какие еще варианты для отладки, кроме этих?
>дебаггер может быть без иде
Он и есть без иде, называется delve

Ответы364070

48 13 мар, 21:18 48 1363647

>>1363041
>В нормальных языках для этого отладчики не нужны.
>>1363640
>я не утверждал что отладчики не нужны

А что утверждал?

Ответы363648

49 13 мар, 21:21 49 1363648

>>1363647
> мой кейс был в том что во всех нормальных языках должен быть как минимум дебагер с cli

Ответы363650

50 13 мар, 21:24 50 1363650

>>1363648
кажется ты путаешь меня с другим аноном дауном который пытается прокукарекать что дебагеры не нужны

Я писал только это:
>>1363633
>>1363640
>>1363648

Ответы363655

51 13 мар, 21:31 51 1363655

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

Ответы363658364070

52 13 мар, 21:33 52 1363658

>>1363655
тем самым заменяя необходимость дебага возможностью просто смотреть логи

фикс: тылу е -> твой

53 14 мар, 12:22 53 1364070

>>1363646
>А какие еще варианты для отладки, кроме этих?
Репл, например.

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

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

54 14 мар, 13:22 54 1364094

>>1361874
Так вот за что просят 250К гривен, кек.

1,3 Мб, 1124x1403
55 15 мар, 14:34 55 1364710

Аноны, а где вы применяете рефлексию?

Ответы364733365240366416416204

56 15 мар, 14:50 56 1364715

>>1361874
Купил себе в офис "геймерскую" клавиатуру для подобных хуёвин, записал на макросы на доп кнопки. Сначала надо мной ржали, теперь почти весь отдел купили себе похожие.

125 Кб, 512x256
57 15 мар, 14:55 57 1364717

Почему не Nim?

Ответы364730364923

58 15 мар, 15:25 58 1364730

>>1364717
Платов, соси хуй

Ответы364810

59 15 мар, 15:30 59 1364733

>>1364710
Бамп

60 15 мар, 17:43 60 1364810

>>1364730
>Платов
Это кто? Твой протыкатель?

Ответы364828

sage 61 15 мар, 18:14 61 1364828

>>1364810
Это тот, из чьего спидозного очка ты высосал свой ним.

62 15 мар, 20:27 62 1364923

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

Ответы365024365272

63 15 мар, 23:25 63 1365024

>>1364923
постмодернизм, самоирония))

64 16 мар, 09:18 64 1365240

>>1364710
БАмп

65 16 мар, 11:39 65 1365272

>>1364923
>работу себе на нем не найдешь
Ха-ха, ту что, все учат погромирование в надежде найти работу? ХХАХАХАХА

66 18 мар, 11:07 66 1366416

>>1364710
Бамп

67 18 мар, 16:46 67 1366609

1. Какой линтер используешь?
2. log.Fatal vs panic

Ответы366817

68 18 мар, 16:56 68 1366612

>>1360787 (OP)
Что там по работе на Го? Хочу выкатится/совместить с пистоном. Интересует перспектива зарплаты/трактора
Имеется бекграунд в виде двух лет бека на пистоне

69 18 мар, 16:58 69 1366614

>>1362620
goland

Ответы366682

70 18 мар, 17:59 70 1366656

>>1360787 (OP)
Антоны, а есть какие-нибудь ещё интерактивные челленжи по типу codewars с Go?

71 18 мар, 19:19 71 1366682

>>1366614
Оригинальный вопрос: >> 1362537
> Отладка в голанде уебанская какая-то.
Лол. Я тоже не сразу понял, что речь идёт не про язык, а про ide.

Ответы366735

72 18 мар, 20:36 72 1366735

>>1366682
Пол треда шизиков
Мимоанон, сокрушавшийся по поводу уебанской отладки

73 18 мар, 20:57 73 1366744

>>1362537
Полгода назад сравнивали отладку в голанде и вс коде, в голанде была поудобнее. Что именно вызвало неудобства?

74 18 мар, 23:42 74 1366817

>>1366609
1. https://github.com/golangci/golangci-lint
2. Зависит от задачи.

75 20 мар, 12:49 75 1367468

>>1360787 (OP)
Аноны скажите что учить в связке с го
Перекатываюсь в него из ноде жс
И что то кажется одного только го для проекта не хватит
Получается только микрлсервисы на нем пилить ?
Или ещё пыху подучить

Ответы367470367694

76 20 мар, 12:54 76 1367470

>>1367468
Пистон учи, будешь с него сервисы переписывать

77 20 мар, 21:01 77 1367694

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

Ответы367910

78 21 мар, 06:27 78 1367910

>>1367694
>Учи го, базы данных, архитектуру, можешь еще захватить кубернетес

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

на шару вкатился на го(отписывался в прошлом) кун

79 24 мар, 17:47 79 1369412

Аноны, хочу вкатиться в программирование. Из знаний имеются база по Паскалю из школки, С с первого курса и немного nasm да SQL.
Почитал про разные ЯП и возник вопрос, стоит ли начинать глубокое изучение языка с Го или лучше иметь базу с того же С или Питона?

Ответы369428

80 24 мар, 18:14 80 1369428

>>1369412
Если хочешь найти работу, то жаба, пистон, жс, пхп.

Ответы370855

81 24 мар, 18:34 81 1369441

>>1360835
Двачую вопрос

82 27 мар, 15:35 82 1370827

Умоляю анон помоги нахуярить динамические конфиги на сервис

83 27 мар, 16:30 83 1370855

>>1369428
>пистон
Если даже на пистоне больше вакансий, то все выглядит очень плохо

84 27 мар, 17:31 84 1370885

Народ, как у вас в go со структурами данных?
Они вообще есть?
Если есть, заканчиваются ли на банальном? Map,stack...?
Или у вас пошире и найдутся посложнее? hash table, segment tree...?

Ответы370999

85 27 мар, 19:28 85 1370956

Как стать мидл разрабом на go. Если опыта 5 лет на пхп

153 Кб, 954x996
86 27 мар, 19:35 86 1370960

>>1360787 (OP)
Анон, чому я не могу сконвертить в интегер результат, возвращаемый os.Getenv? Как вообще числа хранить в енв файлах?

Ответы370962

87 27 мар, 19:39 87 1370962

>>1370960
Тащемта ничего сложного-то ту нет. Просто храни в строке и конвертируй.
value := strconv.Atoi(os.Getenv("SOME_VALUE"))

Ответы370969

88 27 мар, 19:46 88 1370969

>>1370962
Спасибо, анончик

89 27 мар, 20:53 89 1370999

>>1370885
map,array, slice

25 Кб, 554x252
90 28 мар, 15:23 90 1371436

господа у меня назрел вопрос

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

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

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

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

25 Кб, 554x252
90 28 мар, 15:23 90 1371436

господа у меня назрел вопрос

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

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

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

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

Показать весь текст
Ответы371467371472

91 28 мар, 16:20 91 1371467

>>1371436
Смотри сигнатуру HandleFunc. Про коллбэки слышал? Подучи программирование в принципе.

Ответы371468371473

8 Кб, 614x76
92 28 мар, 16:24 92 1371468

>>1371467
при чем тут коллбеки, просто HandleFunc принимает метод с конкретными параметрами

93 28 мар, 16:29 93 1371472

>>1371436
Ох, ну добро пожаловать в Го. Тут многие вещи происходят магическим блядь образом во время рантайма. showHandler, showHandler это не методы, а функции, рантайм сам подставит, первым аргументом (users Users) а уже потом те, что соответствуют типу колбека.

Ответы371473371474

94 28 мар, 16:31 94 1371473

>>1371472
>>1371467
я уже понял сладкий, я понял что функция структуры содержит ссылку на структуру, тем самым можно обратится к ее полям)
Однако спасибо за советы)

Ответы371478

95 28 мар, 16:31 95 1371474

>>1371472
Короче говоря, несмотря на то, что у тебя как бы мето func (user Users) addHandler(...) На самом-то деле у тебя вот такое func ( user Users, w http....)

Ответы371479

96 28 мар, 16:34 96 1371478

>>1371473
Так чего ты хочешь еще?

Ответы371479

97 28 мар, 16:36 97 1371479

>>1371478
>>1371474
>Так чего ты хочешь еще?
уже все спасибо)

98 28 мар, 16:38 98 1371480

Gg

99 29 мар, 12:23 99 1371882

Начал колупать горм. Вопрос, какого хуя я могу повесить уникальный констрейнт только на поле с типом указатель?

Ответы372221

100 29 мар, 16:35 100 1371964

5 минут как вкатываюсь в го, почему такая уебанская система директорий?

Ответы371968371992372017

101 29 мар, 16:49 101 1371968

>>1371964
Чтобы отсеять слабых духом. Вот какого ты ответа, блядь, ожидаешь на такой охуительный вопрос?

Ответы371983

102 29 мар, 17:17 102 1371983

>>1371968
Я надеялся на какой-то скрытый смыл ну что ж будем терпеть и кушать кактус.

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

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

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

Ответы372064372109

103 29 мар, 17:38 103 1371990

Почему в вашем го функции называются с большой буквы? Выглядит максимум уебански.

Ответы372017

104 29 мар, 17:39 104 1371992

>>1371964
>почему такая уебанская X?
>golang
Ох, тебя ждет еще много удивительных открытий, мой юный падаван.

4 Кб, 274x184
105 29 мар, 18:33 105 1372017

>>1371964
что уебанская, ты уебан бля. Главное что оно есть!
(с) пикрил

>>1371990
> Почему в вашем го функции называются с большой буквы?
А в питоне вашем все функции начинаются с _ или __, вообще пиздец.

106 29 мар, 20:35 106 1372064

>>1371983
С каналами все просто.
У тебя есть канал с определенным буфером ( по умолчанию буфер равен 1). В канал кладешь инфу, в другой горутине читаешь. Если горутина не может положить ( весь буфер заполнен) или не может прочитать( в канале пусто), то она блокируется до момента, когда ситуация разрешится.

Ответы372109374023

107 29 мар, 22:23 107 1372109

>>1371983
собственно, развивая >>1372064, твой парсер будет скидывать не в кьюху, а в канал.
А гоурутина будет за каналом следить и на каждое сообщение запускать гоурутину обрабатывающую твою бурятскую порнуху.
Размером канала можно будет управлять сколько параллельных процессов тебе нада

108 30 мар, 08:28 108 1372221

>>1371882
Бамп

Ответы372301

109 30 мар, 13:22 109 1372301

>>1372221
По дефолту значения nullable во многих субд, тебе нужен пойнтер чтобы дать возможность присваивать nil (NULL) значению. Попробуй unique,not_null или что-то вроде того. gorm не юзал никогда.

А вообще лучше юзать reform, т.к. там кодогенерация и скорость работы с базой выше. У неё правда есть свои минусы, например отсутствие композитных PK.

Ответы372320

26 Кб, 540x546
110 30 мар, 14:04 110 1372320

>>1372301
Пиздец, нет ни одного нормального фреймворка, ни орм. Все криво, уебищно, примитивно. Выкатываюсь к ебени матери

111 30 мар, 14:09 111 1372323

Микросервисы - что это?
Звучит как нечто не связанное с самим языком.
Есть ли аналоги на других языках?
Есть ли где-то вменяемое описание подхода, его преимуществ?

Ответы372324

112 30 мар, 14:13 112 1372324

>>1372323
Это не связано с языком, это принцип построения архитектуры

108 Кб, 638x1236
113 2 апр, 15:07 113 1373782

Аноны, есть один контроллер. Как можно сделать нормальное внедрение зависимостей? Не хочу, чтобы соединение с базой передавалось в каждый экшен по отдельности. Хочу, что-то типа конструктора, чтобы вмандить туда репу с инкапсулированным соединением
Код не мой, а с курсов хуевых

Ответы373853374853

sage 114 2 апр, 18:14 114 1373853

>>1373782
Разобрался.

Ответы373900

115 2 апр, 20:06 115 1373900

>>1373853
Рассказывай

Ответы373910

116 2 апр, 20:16 116 1373910

>>1373900
type KekController struct {
repo repository.KekRepository
}

func NewKekController(repo repository.KekRepository) *KekController {
return &KekController{repo}
}

Ответы373913

117 2 апр, 20:16 117 1373911

Что там по смартконтрактам на го?

118 2 апр, 20:19 118 1373913

>>1373910
Двощ съел астериски

119 2 апр, 22:02 119 1373979

Зовут на джун вакансию голанг бэкендера, но я с ГОвном вообще не работал и не писал на нем ничего. Даже в резюме нет слова "go". Но дохуя могу на ноде/жс и посредственно шарп. Чет странно немного, какого хуя меня позвали, но на самом деле я только рад буду, если меня примут. Правда мне наверное пизда на собеседовании, так как голанг я вообще нихуя не знаю. Че делать то, за несколько дней читать GOLANG БЫСТРЫЙ СТАРТ?

Ответы374056374101377735

120 2 апр, 23:27 120 1374023

>>1372064
> по умолчанию буфер равен 1
Заебали, буфер по умолчанию -- 0. Буфер размера 1 -- тоже полезная штука, но объявляется явно.

121 3 апр, 01:03 121 1374056

>>1373979
я сразу на мидла вкатился, без особого понятия.
До этого только парсер двача на го писал.
Не ссы, научат. Меня вот учат.

122 3 апр, 09:54 122 1374101

>>1373979
Быстро-быстро читай Effective Go, там текста на длинный вечер, а пользы джуну дохуя

123 4 апр, 11:25 123 1374853

>>1373782
Можно реализовать сервис контейнер, самый простой и очевидный вариант.
Также в го есть пакет reflect, может пригодится, если хочешь в рантайме разруливать хотя ты быстро поймешь, что в го это нинужно

124 4 апр, 16:17 124 1374977

Можно ли вкатиться в ГО из плюсов? Язык выучить не особо большая проблема, но как искать работу человекус с "плюсовым" стеком без опыта в микросервисах?

125 5 апр, 10:23 125 1375317

>>1360787 (OP)
Сап программач
Есть регулярка вида ^blabla([\w]+)$
Как грамотно проверить строку на соответствие регулярке и вытащить группу?

Ответы375345375438

126 5 апр, 11:46 126 1375345

>>1375317
man sed

Ответы375348

127 5 апр, 11:56 127 1375348

>>1375345
С помощью стандартной библиотеки

sage 128 5 апр, 15:05 128 1375438

>>1375317
В этом вашем Го нет документации?

Ответы377295

129 8 апр, 10:05 129 1377084

>>1360787 (OP)
Аноны, будут ли выводиться строки или любые другие штуки из слайса в порядке их добавления?

Ответы377233

130 8 апр, 17:31 130 1377233

>>1377084
Ну это смотря как ты их добавлял.
Ну и как будешь выводить.
Если делал, скажем, апенд, а теперь делаешь ранже (мне сложно переключать раскладку бля!) то ответ д

Ответы377284

sage 131 8 апр, 18:59 131 1377284

>>1377233
Я уже нагуглил ответ, но все равно спасибо

132 8 апр, 19:32 132 1377295

>>1375438
https://golang.org/pkg/regexp/

133 9 апр, 12:26 133 1377651

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

Ответы377658377938

134 9 апр, 12:31 134 1377658

>>1377651
Какую книжку читал?

Ответы377665

135 9 апр, 12:40 135 1377665

>>1377658
An Introduction to Programming in Go

136 9 апр, 14:18 136 1377735

>>1373979
https://tour.golang.org/

137 9 апр, 17:18 137 1377820

>>1360787 (OP)
Нормально ли, что файл, относящийся к пакету main, лежит не в корне, а в отдельной директории? Или за такое в го мире принято пиздить ногами?

Ответы377936

138 9 апр, 20:53 138 1377936

>>1377820
Это распостраненная тактика, когда есть папка типа cmd, а там внутри папки app_name1, app_name2, а каждой main - если у тебя несколько приложений собираются из общих исходников.

https://github.com/golang-standards/project-layout/tree/master/cmd

Ответы377970

139 9 апр, 20:57 139 1377938

>>1377651
Го достаточно простой язык с точки зрения синтаксиса, это была одна из его целей. Но подводные камни там есть, погугли "50 оттенков Go"

140 9 апр, 21:56 140 1377970

>>1377936
В моем случае это папка с консольными командами

141 10 апр, 09:23 141 1378179

Двачик, я тут накодил на го: >>1376929 (OP). Что думаешь?

Ответы378801

22 Кб, 291x223
142 10 апр, 13:14 142 1378240

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

Ответы378973

143 10 апр, 23:13 143 1378801

>>1378179
> GetMessageID(room string) (uint64, error)
> Get
Not go way, sorry

Ответы378893378978

144 11 апр, 01:00 144 1378893

>>1378801
ты прав:3

145 11 апр, 08:47 145 1378973

>>1378240
Нет.
У тебя на пикче - логотип, а хомяк( точнее суслик) - это маскот.

Ответы379028

392 Кб, 1000x1333
146 11 апр, 09:32 146 1378978

>>1378801
Не понимаю, чому использовать префикс Get зашкварно, а New нет

Ответы379875409503

147 11 апр, 12:36 147 1379028

>>1378973
>маскот
надеюсь маскат не бинарный? иначе зашквар и нормальные люди не поймут

148 11 апр, 23:15 148 1379453

>>1360968
Общаться каналами - не самая лучшая практика, тбх.
Рейс кондишн, все дела.

Ответы394887

149 12 апр, 18:53 149 1379875

>>1378978
Ничего зашкварного нет, совершенно нормальная практика. Меньше всяких кукаретиков слушай.

150 13 апр, 19:16 150 1380379

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

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

А писать на нем, как я посмотрю, пытаются очень много. Ну ладно там какое-нибудь очень узкое место сделать, по типу работы декодер-энкодер там лихой или там реал-тайм-веб какой-нибудь. Но они же блять свои неуклюжие ОРМки прикручивают и начинают ручками круды описывать. Бляяять. Такое километровое уебанство, где одна строчка сути на питоне == 100 строкам мозгоебства на этом го, за которыми уже не видно ни какой сути.

Ответы380384385016

151 13 апр, 19:23 151 1380384

>>1380379
А, еще забыл добавить.
Что уж там говорить об архитектуре. Понятное дело, им бы справиться с километрами своих байтов, не до абстракций. Повторить валидацию в на создании и обновлении - пфф, это дело десятое. Главное что он ЗАТАЩИЛ это, он-таки вывез этот километр ифов, лупов и структур, оно блять у него заработало. А то что там он валидацию покопистил - так это так, пыль на сапогах.

Ответы380393

152 13 апр, 19:39 152 1380393

>>1380384
в чёт проблема языка если твой коллега макака взял гранату для забивания гвоздя и лупит по гвоздю ?

Ответы380395

153 13 апр, 19:41 153 1380395

>>1380393
Так микросервисы же, ептить. А как? Он взял и написал микросервис комментариев. Комментарии в базе. Их можно создавать и обновлять. Казалось бы.

Ответы380396380399

154 13 апр, 19:43 154 1380396

>>1380395
и это пиздец какое узкое место в приложении ? а микросервис страницы логина не хотите на хаскель переписать ?

Ответы380401

155 13 апр, 19:44 155 1380399

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

156 13 апр, 19:46 156 1380401

>>1380396
Да конечно оно не узкое, просто игрушку в руки дали, "мы теперь будем писать на микросервисах все".

>а микросервис страницы логина не хотите на хаскель переписать
Уже. Собираются переписывать на го.

Ответы380404

157 13 апр, 19:48 157 1380404

>>1380401
а вы говорите свичерчы не трабыл для професси , уже не первый раз вижу когда в компании , почитав статейки , даун номер 1 пытается всё новомодное вхуярить в проект , хотя не кто не имеет в этом опыта , а другие дауны и рады , хули хотели выучить язык\фрейм\другую поеботу а дома как бы и в падлу , давайте вливать всё говно в проект , правильно или нет да похуй...

Ответы380408380418

158 13 апр, 19:51 158 1380408

>>1380404
>свичерчы
Свичеры? Это кто? Не слышал раньше такого выражения.

Ответы380410

159 13 апр, 19:53 159 1380410

>>1380408
таксисты, работяги с завода , шлюхи , вкатившиеся в ваЙТи

160 13 апр, 20:04 160 1380418

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

Ответы380419

161 13 апр, 20:08 161 1380419

>>1380418
палю годноту , что бы добавить строчку в резюме не нужно пилить говно , можно даже её просто взять и добавить

Ответы380423

162 13 апр, 20:13 162 1380423

>>1380419
Да ты что, а потом ты просто обосрешься на собеседовании?

Ответы380561

163 14 апр, 00:04 163 1380561

>>1380423
у норм лида шанс обосратся что ты нихуя не знаешь или знаешь хуёва примерно === , у лида который и сам нехуя не шарит вытянит харизма

24 Кб, 615x345
164 14 апр, 15:03 164 1380840

Суп. Прохожу курс на курсере, я дурак или в квизе ошибка? По идее должно быть: func fA(whatever) func (string) int {}

Ответы380851

165 14 апр, 15:31 165 1380851

>>1380840
да, это бага. Глянь https://play.golang.org/p/g93ZU8S0QIL

166 15 апр, 18:13 166 1381882

>>1360787 (OP)
Недавно вкатился в го, пытаюсь заюзать go mod. Есть собственно два модуля вне gopath, оба инициализированы как модули (go mod init modules/first и go mod init modules/second), однако импортировать один в другой нельзя (import "modules/second"), билд жалуется на то что импортируемый модуль не существует. Как, собственно, нормально импортировать один го модуль в другой, да так чтоб ничего никуда не пушить и сидеть при этом вне gopath?

Ответы410166419567419619

167 16 апр, 10:10 167 1382161

Аноны, есть ли возможность вытащить текущий path template у гориллороутера?

Ответы382173

sage 168 16 апр, 10:34 168 1382173

>>1382161
Вопросик порешан

169 17 апр, 16:57 169 1382947

>>1360787 (OP)
Goвняшка - для пидоровнебинарных трансгендерных людей, пруфвидео:
https://www.youtube.com/watch?v=ZACOc-NwV0c

Ответы383010383156383223

170 17 апр, 19:16 170 1383010

>>1382947
лол

171 18 апр, 02:21 171 1383156

>>1382947
все пожимать руки говистам официально зашквар

Ответы383223

172 18 апр, 06:55 172 1383188

А есть ли советы как не обосраться?

Ответы383199

173 18 апр, 08:45 173 1383199

>>1383188
Сжимай булки сильнее

Советы о чем ты хочешь?

sage 174 18 апр, 09:45 174 1383223

>>1382947
>>1383156
Вы отписались в го тредике и теперь официально зашкварены. Сегодня вас обоссут на районе

Ответы383417

175 18 апр, 13:57 175 1383416

>>1360787 (OP)
Как православно запилить итератор для структуры?

Ответы383634

176 18 апр, 14:01 176 1383417

>>1383223
пацаны не бейте лучше научите дизайнить диляторы на го

Ответы383639

177 18 апр, 20:23 177 1383634

>>1383416
В го такое не канон, используй мапы тогда уж.

178 18 апр, 20:27 178 1383639

>>1383417
А тебе зачем? Уж не пидор ли ты часом?

179 20 апр, 20:09 179 1385016

>>1380379
Ты просто не шаришь. Го со всей его неуклюжей простотой - это просто глоток свежего воздуха после какой нибудь джавы, JS'а или, прости господи, PHP.
Как раз недавно пришлось подключиться и поработать с кодом, который писали вдохновлённые миддлоджуниоры - они постоянно норовят написать свой велосипед, усложнить задачу на пустом месте, захуячить декоратор ради декоратора и так далее. Доходит до того, что боишься даже объект класса создавать, потому что мало ли, чего там в конструкторе понаписали и как это себя поведёт.
Как пример из моей практики, была либа от, вроде бы Stripe, где в деструкторе какого-то класса то ли делался запрос, то ли ещё что-то. И эта сука вызывала падение - причём, посколько это деструктор, то падение происходило в конце функции, при том, что объект был создан где-то до этого.
Я вот сейчас пишу фронтенд и охуеваю от количества магии и сахара на тайпскрипте и в ангуляре. И хуй его знает, что я буду делать, если внутри это магии что-то начнёт работать не так.
В го, к счастью, вырезали всю магию. Да, он простой до примитивизма. Да, многословный. Да, приходится иногда копипастить код. Да, в нём нет сахара. Но в этом-то и плюс!
Потому что легко сделать сложно, но сложно сделать просто.
Он заставляет писать очевидный код, который работает именно так, как ты думаешь. Ничего не создаётся из ничего и никуда не уходит, если явно не прописано.
Огромный плюс в мире софта написанного любителями.

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

Но несмотря на все недостатки (а какой язык без них?), он уже сейчас мне нравится больше конкурентов.

179 20 апр, 20:09 179 1385016

>>1380379
Ты просто не шаришь. Го со всей его неуклюжей простотой - это просто глоток свежего воздуха после какой нибудь джавы, JS'а или, прости господи, PHP.
Как раз недавно пришлось подключиться и поработать с кодом, который писали вдохновлённые миддлоджуниоры - они постоянно норовят написать свой велосипед, усложнить задачу на пустом месте, захуячить декоратор ради декоратора и так далее. Доходит до того, что боишься даже объект класса создавать, потому что мало ли, чего там в конструкторе понаписали и как это себя поведёт.
Как пример из моей практики, была либа от, вроде бы Stripe, где в деструкторе какого-то класса то ли делался запрос, то ли ещё что-то. И эта сука вызывала падение - причём, посколько это деструктор, то падение происходило в конце функции, при том, что объект был создан где-то до этого.
Я вот сейчас пишу фронтенд и охуеваю от количества магии и сахара на тайпскрипте и в ангуляре. И хуй его знает, что я буду делать, если внутри это магии что-то начнёт работать не так.
В го, к счастью, вырезали всю магию. Да, он простой до примитивизма. Да, многословный. Да, приходится иногда копипастить код. Да, в нём нет сахара. Но в этом-то и плюс!
Потому что легко сделать сложно, но сложно сделать просто.
Он заставляет писать очевидный код, который работает именно так, как ты думаешь. Ничего не создаётся из ничего и никуда не уходит, если явно не прописано.
Огромный плюс в мире софта написанного любителями.

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

Но несмотря на все недостатки (а какой язык без них?), он уже сейчас мне нравится больше конкурентов.

Показать весь текст
Ответы385138431712431892442823

sage 180 20 апр, 23:40 180 1385138

>>1385016
>Но в этом-то и плюс!
>он уже сейчас мне нравится больше конкурентов.
Потому что ты кроме жс и пхп ни с чем не знаком.

мимо-капитан

Ответы385311

181 21 апр, 13:11 181 1385311

>>1385138
Джава и плюсы тебя устроят?

Ответы385847

sage 182 21 апр, 15:36 182 1385847

>>1385311
Примерно то же самое, а во многих моментах даже хуже. После жавы и плюсов и жс покажется удивительно выразительным языком.

Ответы386037

183 21 апр, 20:03 183 1386037

>>1385847
Тогда нам незачем спорить, ты просто из другого мира. Дальше будет совсем вкусовщина.

184 23 апр, 12:13 184 1387228

У меня есть слайс []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?

Ответы387233

185 23 апр, 12:34 185 1387233

>>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
}

Ответы387261

186 23 апр, 13:26 186 1387261

>>1387233
Пиздец говнокод. Инвалида даже линт не исправит.

Ответы387265

187 23 апр, 13:39 187 1387265

>>1387261
Критикуешь - предлагай. Соси хуй, педрила.

Ответы387380

188 23 апр, 17:24 188 1387380

>>1387265
Для начала прочитай что такое слайс в Го и больше не произноси бред вроде "ссылки на слайс". Это тебе не массив в С, довн.

93 Кб, 976x806
189 25 апр, 18:25 189 1388597

>>1360787 (OP)
Товарищи суслики, поясните, пожалуйста. Только вкатываюсь в го, но на работе уже требуют чтобы что-то на нём делал что правильно, в общем-то
Короче, ситуация такая. Мне нужно слушать топик по mqtt и обрабатывать приходящие данные. Но не суть. Вопрос в чём, при выходе, мне нужно закрывать соединение и останавливать горутину. Нагугленные решения мне показались слишком костыльными. Поэтому я подставил свой костыль. Вначале объявляю в глобальном скоупе переменную alive := true ну и просто меняю на false при выходе. Мудрые аноны, подскажите, всё правильно сделал или это "бэдпрактис" и надо иначе?
Код скрином, чтобы тред не засирать и всякими пастбинами не пользоваться. Не люблю их.

Ответы388623

190 25 апр, 18:45 190 1388623

>>1388597
<- Close
client.Disconnect()
close(ch);

if input == "q" {
<- Close struct{}{}
}

Ответы388624388701

191 25 апр, 18:45 191 1388624

>>1388623
> ;
Ой, прошу прощения.

192 25 апр, 20:00 192 1388701

>>1388623
Спасибо, анон!

193 30 апр, 11:36 193 1391999

Тредик не тони

194 30 апр, 19:51 194 1392243

Почему все ссылки на книги из ОП-поста не работают? Где их вообще воровать?

Ответы392627

195 1 мая, 16:47 195 1392627

>>1392243
Потому что к ссылкам добавилась запятая.
https://www.golang-book.com/
https://github.com/dariubs/GoBooks

Ответы392788

196 1 мая, 20:52 196 1392788

>>1392627
Оу, спасибо.

197 1 мая, 23:26 197 1392835

Реально ли в провинции устроиться go разработчиком? На город миллионик всего 3 вакансии. На тот же php более 70

Ответы392954

198 2 мая, 01:22 198 1392864

Пщферы, выручайте. Читаю инпут из Stdin при помощи fmt.Scanln()
Если в строке есть запятая, то он читает в буфер ровно до неё, саму запятую, потом съедает любое количество пробелов и один символ из оставшейся строки. Это так и задумано?

Ответы392926

199 2 мая, 11:19 199 1392926

>>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.

200 2 мая, 13:14 200 1392954

>>1392835
>реально ли
>3 вакансии
да, съеби работать и не пиши сюда

Платиновый вопрос из шапки 201 2 мая, 14:46 201 1392970

Есть задача написать пару скриптов и 0 навыков программирования(кроме дельфи в пту), в какой язык проще вкатиться новичку - питон или го?

Ответы392982404353446629446704

202 2 мая, 15:18 202 1392982

>>1392970
Питон.

203 3 мая, 19:14 203 1393508

Подскажите, плз, стоит ли делать себе пртфолио на Hugo?

204 4 мая, 20:04 204 1394003

Чего оно медленное такое? Слепил 20 строчек кода в цикле уровня 2+2 с очисткой экрана и выводом в консоль. Замеряю через time - 40 мс на каждую итерацию. Чего, блять?

Ответы394090394384

205 4 мая, 21:59 205 1394090

>>1394003
Ты производительность вывода в консоль измеряешь, что ли?

Ответы394093

206 4 мая, 22:03 206 1394093

>>1394090
Ну да. Почему даже питон в 10 раз быстрее?

Ответы394264394425

207 5 мая, 00:29 207 1394264

>>1394093
чёт ты как то х*ёва измеряешь

https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/go-python3.html

208 5 мая, 11:12 208 1394384

>>1394003
А ты собрал или через `go run` запускаешь?

Ответы395390

209 5 мая, 12:38 209 1394425

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

Ответы394436

210 5 мая, 12:59 210 1394436

>>1394425
И сам код покажи, конечно, а то хрен знает, что ты там понаписал.

211 5 мая, 15:31 211 1394500

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

212 6 мая, 21:09 212 1394887

>>1379453
Ну, сами по себе каналы concurent-safe. Другое дело, что никто не помешает тебе передавать через них указатели. Но это уже вопрос семантики происходящего, а не структуры канала.

Ответы397798

213 7 мая, 20:46 213 1395390

>>1394384
go run точно так же собирает, если что

Ответы395408

214 7 мая, 21:11 214 1395408

>>1395390
go run собирает и запускает. А имеет смысл запускать уже собранное

215 11 мая, 19:17 215 1397798

>>1394887
Более того, "канал" - это просто очередь с мьютексом, без особой магии. В исходниках довольно очевидно всё написано.

216 13 мая, 13:17 216 1398959

1 как сделать чат на сайте
2 как это прикрутить к сайту на ларавеле

Ответы399593

217 14 мая, 10:50 217 1399593

>>1398959
1. Сокеты
2. Спросить в php треде.

218 21 мая, 17:04 218 1404283

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

до этого фуллтаймил на js, больше всего времени ушло на еблю с gopath / go modules и ide (в итоге взял goland)

Ответы404339404354405983

219 21 мая, 19:25 219 1404339

>>1404283
Inspiring story, bro.

220 21 мая, 20:03 220 1404353

>>1392970
go

221 21 мая, 20:03 221 1404354

>>1404283
50 оттенков Го почитай

222 23 мая, 19:22 222 1405313

решил потыкаться в го, так как всюду говорят какой он быстрый начал писать как сишник, но внезапно выяснилось, что for i, v := range копирует значения, а на стаковерфлоу, на вопрос "почему все используют только слайсы, и не используют листы" был дан ответ просто используй слайсы везде, где ты хочешь использовать листы, чтобы понять чем по сути является слайс, ибо нихуя не понятно, я стал гуглить, но дельного ничего не нашёл.

Как писать на го? Как питоноблядь скрипты? Я нихуя не понимаю, объясните пожалуйста, это язык для производительности, или чтобы писать хуйню вокруг чёрного ящика, делающую 100500 аллокаций каждую секунду?

Ответы405328406297406712

223 23 мая, 19:38 223 1405328

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

Ответы405331

224 23 мая, 19:40 224 1405331

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

Ответы405338

225 23 мая, 19:50 225 1405338

>>1405331
Так как писать то? Экономя каждый вызов, каждую аллокацию, или ебашить append к слайсу в цикле?

Ответы405552

226 24 мая, 08:39 226 1405552

>>1405338
Так в чем суть задачи то?

Ответы405660

227 24 мая, 13:16 227 1405660

>>1405552
я про в принципе стиль написания, а не конкретную задачу

228 24 мая, 23:32 228 1405983

>>1404283
Почитай https://golang.org/doc/code.html#Introduction
чтобы закрепить навыки.
Потом можно отполировать Effective Go и уже будешь чувствовать go-way.

229 25 мая, 16:48 229 1406297

>>1405313
>for i, v := range копирует значения
А for i := range не копирует.

412 Кб, 1634x2224
230 25 мая, 22:51 230 1406470

231 26 мая, 14:24 231 1406712

>>1405313
Если хочешь писать как на Си, может лучше писать на Си?

373 Кб, 512x498
232 28 мая, 01:59 232 1407717

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

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

Стоит ли?

Ответы407808

233 28 мая, 10:20 233 1407808

>>1407717
А зачем тебе вообще что-то компилировать?

234 28 мая, 11:34 234 1407835

суп борщ.
Пишу сейчас хуёвый веб на рнр (проект хуёвый и сам я тоже хуёвый). Хотелось бы выкатиться с текущего проекта.
Смотрю вакансии - очень много говна где нужны знания css/js, хотелось бы быть как можно дальше от этого говна.
Ещё могу в питно, но там почти та же история - почти все вакансии это джанга или дата ссайнс.
Подумал вкатиться в го. Язык, конечно, так себе, если сравнить с каким-нибудь котлином или окамлом, или кложей (языки с которыми я игрался и немного знаком).
Но, есть вакансии, язык молодой и могут взять без особого опыта наверное, и самое главное фронтендовой параши нигде нет в требованиях.
Короче, хотелось бы избежать монотонных крудов и UI.
У го вроде бы ниша это высоконагруженные сервисы, мультитрединг из коробки и вот это всё, звучит интересно.
Стоит ли мне вкатываться с такими потребностями?

Ответы407845

235 28 мая, 11:53 235 1407845

>>1407835
>могут взять без особого опыта наверное
Маловероятно, язык не такой уж молодой
>>1407835
>и самое главное фронтендовой параши нигде нет в требованиях.
Иногда встречаются фулстеки, но все-таки го - это чисто бэкенд
>>1407835
>Короче, хотелось бы избежать монотонных крудов и UI.
>У го вроде бы ниша это высоконагруженные сервисы, мультитрединг из коробки и вот это всё, звучит интересно.
Ниша - да, но проекты встречаются как и нагруженные сервисы, так и круды. Тут как повезет.

>>1407835
>Стоит ли мне вкатываться с такими потребностями?
Тебе решать, но не факт, что тебя возьмут без опыта в го. Попили хотя бы пет-проектов на нем, вдруг разочаруешься.

Ответы407857

236 28 мая, 12:24 236 1407857

>>1407845
>но не факт, что тебя возьмут без опыта в го
Ну, я имел в виду коммерческий. Проскакивали вакансии с опытом рнр или питона, отсюда и вывод, собственно.
Так-то дома попилить, конечно, надо будет, и для себя и для CV.

Ответы407885

237 28 мая, 13:34 237 1407885

>>1407857
Есть такие вакансии, в которых суть - переписать с пхп на го

238 30 мая, 21:53 238 1409503

>>1378978
да нормально все, не зацикливайся только на подобных практиках

54 Кб, 1280x298
239 31 мая, 13:10 239 1409849

Чому такой всратый маскот.
Читаешь доки и прямо воодушевляешься.
А потом смотришь на такие картинки и ощущаешь себя ретардом в спецклассе.

Ответы409852410173413659

332 Кб, 600x700
240 31 мая, 13:15 240 1409852

>>1409849
няшнота же
я вот учу джаваскрипт и завидую что у вас есть няшка маскот а у джс нет
пусть тоже придумают что нибудь, я себе плюшевую игрушку закажу -_-

241 1 июня, 04:29 241 1410166

>>1381882
Бамп

242 1 июня, 07:24 242 1410173

>>1409849
А ты представляй что это типа такая самоирония, доступная для понимания только увереным и mature людям. Понятно что шкальникам такой маскот не будет нравиться - но в этом то и суть.

243 8 июня, 15:30 243 1413659

>>1409849
>Читаешь доки и прямо воодушевляешься.

Воодушевляешься тем что можно дальше не напрягать мозг и фигачить простынки из if err != nil и interface{}?

Ответы413996

739 Кб, 1438x788
244 8 июня, 17:30 244 1413711

О, дженерики

Ответы414006

245 9 июня, 12:12 245 1413996

>>1413659
>фигачить простынки из if err != nil
Может, добавят try
https://github.com/golang/go/issues/32437

Ответы415624

246 9 июня, 12:47 246 1414006

>>1413711
Ммм, с синтаксисом Canadian Aboriginal Syllabics. Джва года ждал.

Ответы414113

247 9 июня, 16:57 247 1414113

>>1414006
Всегда проигрываю, когда кто-нибудь хвастает "а вот в нашем языке можно в утф-16 называть переменные!"
А потом, такие, "о, бля, а как это у тебя дженерики, а у меня не работает?"

Ответы414377

80 Кб, 311x340
248 10 июня, 09:19 248 1414377

>>1414113
>utf-16 bad

249 11 июня, 22:45 249 1414981

ппц я в шоке конечно, есть структура, которая содержит мапу, и я ничего не могу с ней сделать. Дефолтных параметр не задать, приходится либо делать конструктор с определенным количеством аргументов (извините, перегрузок нет), либо проверять что объект инициализирован, и, если нет - инитить. Выбир между клизмой и сендвичем с дерьмом. Кто это вообще придумал? А если у меня 4 мапы в одном стракте?

Ответы415157

250 11 июня, 22:55 250 1414988

го

251 12 июня, 12:24 251 1415157

>>1414981
про что ты несешь

Ответы415536

252 13 июня, 00:01 252 1415536

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

Ответы415626

253 13 июня, 09:28 253 1415624

>>1413996
Неочевидная херня получается, ты никогда не знаешь, какую именно ошибку из какого блока ты будешь обрабатывать своим "catch"ем. Это как бы убивает то, ради чего вообще начинали сыр-бор:
идеологам го не нравилось, что ты можешь понапихать в try {} catch{} понапихать кучу кода и обрабатывать вообще всё оттуда в одном месте, вроде как это слишком непрозачно.
И поэтому они решили заставить всех делать if'ы после каждой строчки кода, чтобы явно заставить тебя обрабатывать ошибки конкретно из этой функции в своём отдельном месте.

254 13 июня, 09:30 254 1415626

>>1415536
Конструктор - это просто функция. Создай функцию NewYourObject() и иди себе с миром.
Ну или `func (obj *YourObj) Construct()`, если хочется обмазываться извращениями.

Ответы415630

255 13 июня, 09:48 255 1415630

>>1415626
и как же мне заставить додиков пользоваться конструктором, не созданием структуры? Если написать с маленькой буквы то внутри пакета все равно можно будет пользоваться struct{}, и выглядит это ужасно, тяжело становится понимать, где тип, а где нет.

Ответы415674415694416179

256 13 июня, 11:08 256 1415674

>>1415630
> выглядит это ужасно, тяжело становится понимать, где тип, а где нет
Так в этом и суть го.

Ответы415695

257 13 июня, 11:41 257 1415694

>>1415630
Например, ты можешь не экспортировать эту структуру (назови её с маленькой буквы). Или не экспортируй нужные поля (называй их с маленькой буквы).

Ответы415975

258 13 июня, 11:42 258 1415695

>>1415674
Нифига не в этом, нормально всё понимается.

Ответы415775

259 13 июня, 13:21 259 1415775

>>1415695
С тем, что выглядит ужасно, ты хоть согласен?

Ответы416313

260 13 июня, 18:54 260 1415975

>>1415694
я об этом и написал, алсо внутри пакета я все равно могу себе ебнуть в колено

Ответы416072

261 13 июня, 23:22 261 1416072

>>1415975
Так в любом языке себе можно ебнуть в колено

Ответы416076

262 13 июня, 23:26 262 1416076

>>1416072
ну го должен был быть dumbed down, а если я перестану беречь свои колени, то я пойду на node js писать без типов.

Ответы416313

263 14 июня, 01:35 263 1416126

>>1360787 (OP)
линки на книги битые, ну еб твою

Ответы416177

264 14 июня, 08:59 264 1416177

>>1416126
Убери запятую в конце адреса.

265 14 июня, 09:02 265 1416179

>>1415630
>и как же мне заставить додиков пользоваться конструктором, не созданием структуры?
Джентельменское соглашение.
Вон у пиндо в питоне в мануале прямо написано:
- Разработчик апи объявил в классе переменную с двумя андерскорами, а я все равно ее прочту))
- Ну нинад плиз(

266 14 июня, 10:21 266 1416204

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

Ответы416314

267 14 июня, 13:27 267 1416313

>>1416076
А в другом языке ты можешь менять поле внутри любого другого метода класса. Хочешь изоляции - дели по пакетам и всего делов.

>>1415775
Да обычно выглядит, называй нормально и всё. В любом языке так, кроме php, где переменные с доллара начинаются и поэтому никогда с таким не сталкиваешься.

268 14 июня, 13:28 268 1416314

>>1416204
Вместо рефлексии нужно использовать кодогенерацию, если это возможно (типа го-вей).

Ответы417093418236

269 16 июня, 09:34 269 1417093

>>1416314
Не могу нихуя нагуглить, можно подробнее?

Ответы417366

270 16 июня, 19:28 270 1417366

>>1417093
Вместо того, чтобы в рантайме смотреть на тип и что-то делать исходя из типа, заранее напиши тулзовину, которая будет принимать список типов и генерить типизированнй код. По аналогии с cheekybits/genny или hexdigest/gowrap,
В го отличный парсер и прочий тулчеин, я свой первый генератор написал за 2 часа (причём второй час бился с шаблонизатором). Следующий напишу за полчаса-час по необходимости.

Ответы417455417507

271 16 июня, 23:41 271 1417455

>>1417366
> я свой первый генератор написал за 2 часа (причём второй час бился с шаблонизатором). Следующий напишу за полчаса-час по необходимости
Но дженерики нинужны, ага.

Ответы417507417656

272 17 июня, 06:24 272 1417507

>>1417366
Кек, я когда услышал что дженериков нет сразу тоже подумал так делать. Только я хотел ещё чтобы оно список типов на основе моего кода само вычисляло. Спасибо за ссылки.
>>1417455
двачую, го это царство логики

273 17 июня, 13:38 273 1417656

>>1417455
Хз, не понимаю, чего все дрочат на отсутствие дженериков. Честно, за всё время моей работы они мне понадобились раза два. Оба раза я даже не генерируя код написал всё руками. Чуть менее элегантно, согласен.
Но это не такая уж и большая проблема, какой её раздувают. Интерфейсы, кодогенерация и, по большой необходимости, рефлексия решают все те же задачи, просто другим способом.
Если уж хотите доебаться до го, доябывайтесь до nillable интерфейсов или обработки ошибок хотя бы.

Ответы417993

274 17 июня, 21:00 274 1417993

>>1417656
> обработки ошибок
Она не так уж плоха, мне больше нравится, чем неявная работа с исключениями. Единственный минус - это обилие кода типа
if err != nil{
return nil,err
}
Но это пытаются пофиксить различными пропозалами

Ответы418210

275 17 июня, 22:18 275 1418036

Я ньюфаг в самом программировании в принципе, до Го учил JS три месяца, извините что тупой.
Так вот, зачем закрывать файл?
firstFile, err := os.Open(os.Args[1])
if err != nil { panic(err) }
>defer firstFile.Close()
Вот это вот.

Ответы418050

276 17 июня, 22:48 276 1418050

>>1418036
Потому что количество дескрипторов не бесконечно.

277 18 июня, 00:23 277 1418075

Прохожу тьюториал на Го и там автор использует glide как менеджер зависимостей. Что лучше glide или go get?

Ну и чтобы два раза капчу не воодить: VS Code vs GoLand - кроме легковестности у VS Code есть еще преимущества? Отладка там как, нормальная?

Ответы418084418180418214

278 18 июня, 01:40 278 1418084

>>1418075
Читай про go modules - это к вопросу о менеджере зависимостей
>>1418075
>VS Code vs GoLand - кроме легковестности у VS Code есть еще преимущества? Отладка там как, нормальная?
Нормальная, хотя что-то там мне не понравилось. VS Code бесплатная, а GoLand - плати или ищи лицензии

Ответы418574

279 18 июня, 11:35 279 1418180

>>1418075
Голанд срет своим конфигом тебе прямо в $HOME, а vscode тоже в хоум, и в .config, блядь, везде насрано.

Ответы418181

280 18 июня, 11:36 280 1418181

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

Ответы418244423084

281 18 июня, 12:39 281 1418210

>>1417993
Она не плоха, но возникают проблемы с идентификацией ошибок и добавлением контекста в ошибки.

282 18 июня, 12:42 282 1418214

>>1418075
> Ну и чтобы два раза капчу не воодить: VS Code vs GoLand - кроме легковестности у VS Code есть еще преимущества? Отладка там как, нормальная?
Дебаггер у vs code вроде как лучше.
Мне лично студия почему-то не зашла, пользуюсь IDEA. Но я уже лет 5 их IDE'хами пользуюсь, выработалось много привычек, больно без удобных привычных кнопочек, которые ты уже знаешь, где лежат и как найти.

283 18 июня, 13:30 283 1418236

>>1416314
тут ещё стоит добавить, что рефлексия в го довольно всратая, как и система типов. например, нельзя скастовать тип полученный из рефлексии на интерфейс.

Ответы419197

284 18 июня, 13:46 284 1418244

>>1418181
Emacs точно умеет.

285 18 июня, 23:09 285 1418574

>>1418084
>Читай про go modules - это к вопросу о менеджере зависимостей
Go modules - прикольней чем glide или go get.

А что со сборкой проекта? Makefile, gödel или еще что-то?

Ответы418579419567

286 18 июня, 23:18 286 1418579

>>1418574
Makefile обычно

Ответы418583

523 Кб, 500x500
287 18 июня, 23:33 287 1418583

>>1418579
Спасибо анончег.

288 20 июня, 08:30 288 1419197

>>1418236
Непонятно, почему "нельзя". Что ты хочешь сделать и чего у тебя не получается? Покажи код.

Ответы419252

140 Кб, 512x512
289 20 июня, 10:13 289 1419252

>>1419197
Нельзя из-за парадаксальной ситуации, потому что reflect.TypeOf, внезапно, не может возвращать тип и его результат "is not a type".

пример
https://play.golang.org/p/-58cxNN5QWL

Ответы419855419999

118 Кб, 716x705
290 20 июня, 20:40 290 1419567

>>1418574
> Go modules - прикольней чем glide или go get.
Приватные репы
+ >>1381882

291 20 июня, 22:26 291 1419619

>>1381882
https://stackoverflow.com/questions/52328952/how-to-use-a-module-that-is-outside-of-gopath-in-another-module
Вот вроде есть костыль

292 21 июня, 12:02 292 1419855

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

Ответы420099

293 21 июня, 16:00 293 1419999

>>1419252
https://play.golang.org/p/fMxxf9MQjH4

294 21 июня, 19:26 294 1420099

>>1419855
В этом и суть, что оно не компилируется, а должно. Смотри:
1) каст всегда выполняется к типу x.(type)
2) функция typeOf по логике должна возвращать тип, иначе нахуя её так называть? Сделали бы тогда wtfOf, чтобы голову не морочить.
3) значит каст должен работать x.(typeOf(x)), но хер там, потому typeOf возвращает хз что.
Да, это нерабочий код, но какого хуя?

Ответы420368

295 22 июня, 12:17 295 1420368

>>1420099
typeOf возвращает не тип, а описание типа

Ответы420755

296 23 июня, 08:08 296 1420755

>>1420368
Хуёво, чо. И название метода косое, и тип невозможно на лету получить и кастонуть как обычно. Только костыли ебические с call как на примеие анона выше.

Ответы420757

297 23 июня, 08:30 297 1420757

>>1420755
ты тредом ошибся, удобства в языке для вонабикрасноглазиков-но-неосиляторов искать -- глупо.

Ответы420914422067422683

298 23 июня, 15:50 298 1420914

>>1420757
А какой язык для осиляторов? Си? Кроме 0,5% разработчиков он никому уже нинужен. Плюсы? Такая же шняга как го, только в придачу еще многоэтажный шалаш из костылей.

299 25 июня, 16:14 299 1422067

>>1420757
Щас бы придираться к отсутствию динамического кастинга в статическом языке. Я бы у вас вообще рефлексию отобрал, ибо нефиг, одно говно пишете с ней.

300 26 июня, 18:45 300 1422683

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

Ответы424737

301 27 июня, 09:24 301 1422984

Вот и обработка ошибок (на самом деле нет) подъехала
https://go.googlesource.com/proposal/+/master/design/32437-try-builtin.md

302 27 июня, 10:15 302 1423023

92 Кб, 865x767102 Кб, 680x365

Товарищи суслики, подскажите, где я долбоёб.
В общем, есть штука. Функция database.Connect() это то же что и sql.Open(), только вынес в одну функцию сразу и чтение параметров подключения, и всю эту чепуху.
Проблема в чём. При ограниченном MaxIdleConns, на сервере всё равно плодится хуева туча этих висящих подключений. Из-за чего БД в какой-то момент, естественно, перестаёт принимать подключения. Как фиксить? Месседж хендлер обрабатывает входящие данные и пишет результат в БД. Пробовал и defer db.Close(), всё равно эти мёртвые подключения висят. И даже с ограниченным лайфтаймом никуда не деваются. Всё что debug_user это подключения от моего обработчика.

Ответы423038423552

303 27 июня, 10:34 303 1423038

>>1423023
Выставил уже 0 MaxIdleCons и всё равно висят соединения. Какого чёрта.

Ответы423061

304 27 июня, 11:02 304 1423061

>>1423038
ЕМНИП, стандартная библиотека по умолчанию реализует пул коннектов. Но db.Close() должен помогать.
Код у тебя конечно пиздец.
Если выложишь пример в 20 строк кода (выкинь всё лишнее), который я смогу локально запустить (и скажешь, что именно тебе в нём не нравится) - посмотрю.

Ответы423080423110

305 27 июня, 11:23 305 1423080

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

176 Кб, 1916x1080
306 27 июня, 11:30 306 1423084

>>1418181
Умеет.

307 27 июня, 12:07 307 1423110

>>1423061
Вот так сделал, и всё равно idle висит в БД. Не понимаю как этот пул работает.
https://pastebin.com/SgmK0c4W

Ответы423112

54 Кб, 1095x306
308 27 июня, 12:08 308 1423112

>>1423110
10 сообщений пришло и все 10 соединений висят.

309 27 июня, 21:24 309 1423552

>>1423023
Синглтон

310 29 июня, 23:42 310 1424737

>>1422683
В Эрланге нет грин тредов, там акторы, а акторы есть и для Java, Scala, .Net, да даже C++.
Для асинхронных методов в .Net - async/await, в JVM - Kotlin coroutines.

Ответы424935

311 30 июня, 15:40 311 1424935

>>1424737
В ерланге процессы попизже сцаных гринтредов.
И причём тут акторы? Модель актров - это просто модель, имплементации могут отличаться.

Ответы425165

312 30 июня, 22:18 312 1425165

>>1424935
И что же там такого пиздатого, чего нигде больше нет?

Ответы426881

313 3 июля, 09:30 313 1426881

>>1425165
[irony]Там 3.14здатые строки в виде массивов чаров[/irony]

314 3 июля, 13:48 314 1426983

Захотел другой формат даты в логе, в доках нет ничего, заглянул в исходник, а там блядь хардкод.
[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.

Ответы426984427657428110

315 3 июля, 13:48 315 1426984

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

316 4 июля, 08:51 316 1427657

>>1426983
Для логов популярен пакет logrus

Ответы427975

317 4 июля, 16:49 317 1427975

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

Ответы428188

318 4 июля, 21:15 318 1428110

>>1426983
В чем проблемс создать свой пекедж с необходимым форматом даты

Ответы428280

319 4 июля, 23:49 319 1428188

>>1427975
А мне норм.

320 5 июля, 08:29 320 1428280

>>1428110
Я ж скозал, получится перл. Зере из моар зен уан вей ту ду ит, а на деле это означает "сделай сам". То есть, начинаешь кодить проект, а логер не кастомизируется. Напиши свой! Ну или ищи на гитхабе логер от васяна, но и с претензиями тоже к васяну иди.

Ответы429167

321 6 июля, 17:58 321 1429167

>>1428280
В чём проблема? В го есть стандартный форматтер даты. Если в логгере хардкод - перепиши его и плюнь в морду/репозиторий автору-говнокодеру

322 10 июля, 00:38 322 1431362

А что можете посоветовать почитать про аллокации в Go (раздел документации, глава в книге).

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

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

- Где аллоцируется myname? На стеке?
- А что будет если Scanf() отдаст ссылку на &myname куда-то еще и она переживет возвтрат из основной функции?

323 10 июля, 08:29 323 1431447

func main() {
goku := &Saiyan{"Goku", 9000}
Super(goku)
fmt.Println(goku.Power)
}

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

Пиздец, почему примеры из книжки не работают?

Ответы431449431457

324 10 июля, 08:38 324 1431449

>>1431447
Это в какой книжке такие мемные примеры с Драгон Боллом?

Ответы431450

325 10 июля, 08:43 325 1431450

>>1431449
The Little Go Book.

326 10 июля, 09:19 326 1431457

>>1431447
Ну потому что надо добавить минимальную обвязку импорты, пекеджи и типы
https://play.golang.org/p/AzNOZExkbsY

Ответы431463

327 10 июля, 09:41 327 1431463

>>1431457
Импорт и пекедж добавлял, насчет типа понял, спасибо!

328 10 июля, 11:36 328 1431494

Почему в слайсах первый элемент включается, а последний нет? Есть какое-то объяснение этому?

Ответы431500431951

329 10 июля, 11:45 329 1431500

>>1431494
Что значит "включается"?

Ответы431501

330 10 июля, 11:48 330 1431501

>>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 нет?

Ответы431632

331 10 июля, 13:30 331 1431539

Почему на го 80% вакансий -- какой-то откровенный скам блокчейновый или вообще хуй пойми что?

Ответы431541431549

332 10 июля, 13:35 332 1431541

>>1431539
А чего ты ожидал?

Ответы431601

333 10 июля, 13:46 333 1431549

>>1431539
Современная индустрия - либо галеры, либо легаси-говнище либо сомнительные стартапы.

334 10 июля, 15:08 334 1431601

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

Ответы431635

335 10 июля, 15:59 335 1431632

>>1431501
Ты выбрал элементы с первого по четвёртый, логично, что ты их и получил.

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

Т.е. ты взял все элементы начиная с индекса 1, заканчивая индексом 4.

Ответы431634

336 10 июля, 16:00 336 1431634

>>1431632
Я еще с питоновских слайсов запомнил, что первая скобка интервала квадратная, а вторая круглая.

Ответы431636

337 10 июля, 16:01 337 1431635

>>1431601
Го ещё молод - это во первых.
Во вторых, основные ниши - это высоконагруженные (микро)сервисы (а как правило высоконагруженные сервисы быстро приносят бабло и сами превращаются в кровавый энтерпрайз) либо блокчейны.

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

Ответы431673

338 10 июля, 16:02 338 1431636

>>1431634
> Si fueris Romae, Romano vivito more, Si fueris alibi, vivito sicut ibi. - Если ты в Риме - живи как Римлянин, в других местах - живи (веди себя) как местный.
В питоне пиши на питоне, в го пиши на го.

Ответы431641431642

339 10 июля, 16:10 339 1431641

>>1431636
> Если ты в Риме - живи как Римлянин, в других местах - живи (веди себя) как местный.
Вот римляне огребли и в Риме и в других местах.

Ответы431664

340 10 июля, 16:10 340 1431642

>>1431636
TIL что алиби в прямом смысле означает "в другом месте"
> from Latin alibī (“elsewhere, at another place”, adverb).

341 10 июля, 16:34 341 1431657

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, которые в нем находятся.

Ответы431983

342 10 июля, 16:41 342 1431664

>>1431641
<оффтоп><нет политосрачу>Ну так-то они построили государство, которое просуществовало полторы тысячи лет (считая Восточную), их язык является основой для большинства современных, включая международный, а их культура до сих пор живёт и здравствует, как часть массовой (легионы, император, гладиаторы и тысячи прочих моделей).
Для сравнения:
- Российская империя просуществовала 196 лет и практически ничем сравнимым с римскими легионами в массовой культуре не отметилась.
- Советский союз просуществовал 69 лет, и помнят его только потому, что и он сам, и холодная война были сравнительно недавно и ещё живы те, кто видел всё своими глазами. (спустя ещё сто лет и пару мировых войн, боюсь, в массовой культуре он будет значить столько же, сколько Австро-Венгрия).
- РФ существует всего 28 лет.
</нет политосрачу></оффтоп>

343 10 июля, 16:50 343 1431673

>>1431635
>высоконагруженные (микро)сервисы
для вкатывания в которые все требуют готовый опыт участия в других высоконагруженных проектах = джуниоры идут нахуй. мне так-то похуй, я с 2005 года в индустрии, но если нет потока джунов, то за счёт чего технология будет взлетать?

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

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

Ответы431694431866

344 10 июля, 17:12 344 1431694

>>1431673
Ты не сечёшь фишку.
Го очень простой, на самом деле. Тебе не придётся объяснять джуниору тонкости наследования, арифметику указателей, async-await, реактивщину и прочие концепции.
При условии, что он не тупой и у него есть знания хотя бы на уровне семестра погроммирования на сипаскалепитоне из института,ты клонишь ему проект, увешнный гошными линтерами и рейс-детектерами (а это очень просто настроить), объясняешь "короч пиши go перед кодом и он выполнится в другом потоке, потом верни результат через канал" - и он пишет код, который потом очень легко ревьювить, по сравнению с каким-нибудь джаваскриптом. Снижается когнитивная нагрузка на тебя-тимлида. А, так как микросервисы, то нужен один или два головастых архитектора, кто продумают взаимодействие между микросервисами и напишут интерфейсы (к примеру, proto-файлы в отдельном репозитории).
После этого, джуниоров можно запускать в маленькие приложения, там минимум кода, хрен они что тебе сломают там, пусть говнокодят и учатся. Линтеры поймают 90% ошибок, ты пробежишь глазами и поймаешь ещё 9%.
Можно так делать и на какой-нибудь пыхе, только го намного производительнее (и всё ещё очень просто).

Ответы431889

345 10 июля, 17:37 345 1431712

>>1385016
Мои мысли описал. Особенно про пиздюлей сишникам.

346 10 июля, 20:40 346 1431866

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

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

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

Ответы431889

347 10 июля, 21:16 347 1431889

>>1431694
>>1431866
Это всё как-то не вяжется с тем, что на данный конкретный момент все вакансии по golang, которые вообще имеет смысл рассматривать, включают в себя знание как минимум реляционных субд, а лучше ещё и nosql, а так же знание сетевого стека. Во многих вакансиях ещё блокчейн. Много где требуется знание основ фронтэнда. Много где вообще без задней мысли хотят ещё С++ или тот же Python.

Ответы431894431918

348 10 июля, 21:24 348 1431892

>>1385016
>Я вот сейчас пишу фронтенд и охуеваю от количества магии и сахара на тайпскрипте и в ангуляре.
С го будет то же самое. В 2010 году исходники бэкбона тоже мог прочитать любой желающий целиком и многие читали, я в том числе.

349 10 июля, 21:26 349 1431894

>>1431889
С тем же успехом можно сказать, что все вакансии по джаве требуют спринг и тд

350 10 июля, 22:22 350 1431918

>>1431889
Сейчас бы возмущаться, что на бекенде кроме ЯП нужно знать ещё БД, сетевой стек и основы фронтенда.

351 10 июля, 23:27 351 1431951

>>1431494
Просто общепринятая практика: полуоткрытый диапазон.
Слайс на весь массив будет [0:len]
Цикл for i := 0; i < n; i++
rand.Intn(n) выдает [0,n)

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

Ответы441539

352 11 июля, 00:32 352 1431983

>>1431657
Мы вам не перезвоним.

353 11 июля, 10:48 353 1432260

>>1360787 (OP)
Вкатываюсь из питона. Подскажите, что нужно знать на уровень мидла? Ну кроме очевидных как работает язык, архитектуру микросервисов, кэши, докеры, бд.

Ответы432346

354 11 июля, 10:50 354 1432263

>>1361974
>Компилируемый
>Серверный
Не вижу связи. Не придумывай.

355 11 июля, 13:10 355 1432346

>>1432260
Очевидно, как работает язык, сложившиеся практики работы с языком и прочие паттерны (не всегда ООПшные) + тулчеин и набор маст-хев библиотек.

356 12 июля, 09:04 356 1432947

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

Ответы432963

357 12 июля, 09:33 357 1432960

>>1362027
Ты ведь ничего не знаешь о питоне, да?
https://docs.python.org/3/library/py_compile.html

Ответы433102

358 12 июля, 09:36 358 1432963

>>1432947
Ну а ты чего хотел? Пока есть индусы, украинцы и прочие мексиканцы, которые готовы на всё за еду - их и будут искать.
Как говориться, у бизнеса никогда нет денег сделать всё хорошо сразу, зато всегда есть деньги сделать фичу два раза.

359 12 июля, 12:21 359 1433102

>>1432960
Ты сам-то свою ссылку читал?
> generate a byte-code file from a source file

Ответы433106

360 12 июля, 12:26 360 1433106

>>1433102
Я-то читал и знаю. Сначала ищется pyc файл. Если не находится, то берется файл py. Он компилируется в байт-код и дальше использует именно байт-код. Отличие только, что нужно специальную джава-ебанину-машину ставить, а в питоне интерпретатор содержит средства для работы с байт-кодом.

Ответы433391

10 Кб, 422x160
361 12 июля, 12:27 361 1433108

Как называются такие структуры? Вложенные гуглил, немного не то. И как работать с ее значениями? fmt.Println(CurrentItemStruct.Result) очевидно выводит все сразу в строку, а что-то типа CurrentItemStruct.Result.Listing.Whisper не работает.

Ответы433118433233

362 12 июля, 12:38 362 1433118

>>1433108
резалт - не структура, а слайс анонимных структур

363 12 июля, 14:43 363 1433233

>>1433108
CurrentItemStruct.Result[0].Listing.Whisper должен сработать

Ответы433298

364 12 июля, 16:34 364 1433298

>>1433233
CurrentItemStruct.Result undefined (type CurrentItemStruct has no method Result)
Блядь, вообще ничего не понимаю. Как разобраться в этом?

Ответы433306

365 12 июля, 16:40 365 1433306

>>1433298
Инициализируй структуру

366 12 июля, 18:19 366 1433391

>>1433106
Братюнь, байт-код то который, кстати, почти 1:1 соответствует исходному коду, оптимизатор в питоне - не пришей пизде рукав интерпретируется.

367 12 июля, 19:17 367 1433444

Обрыгался с го после раста, ваши оправдания?

Ответы433935

643 Кб, 1024x568
368 13 июля, 15:10 368 1433935

>>1433444
Иди обратно в /vg.

369 16 июля, 10:40 369 1436613

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

Ответы436615

370 16 июля, 10:46 370 1436615

>>1436613
Лiл, имиджборду с поддержкой quic. С коброй и вайпером.

371 16 июля, 10:46 371 1436616

Разбираюсь с контекстом.
Основная горутина запускает несколько горутин, забирает результат от самой быстрой, остальные тихонько завершаются.
Вот код, написанный как сказано в документации:
https://play.golang.org/p/YRmBM4bOf_2
Вот код, который работает, как ожидается:
https://play.golang.org/p/cKWS4K6Z8Rq

Вопрос 1: почему в первом случае select не ловит ctx.Done()?
Вопрос 2: почему в первом случае select ловит ctx.Done(), если канал объявить небуферизированным?

Ответы437047

372 16 июля, 19:40 372 1437012

Чем ваша горутина отличается от корутины? Или гошники просто спиздили идею и выдали её за свою под "оригинальным" названием?

Ответы437146437409

373 16 июля, 20:22 373 1437047

>>1436616
Предположу, что в первом случае все траблы из-за того, что происходят два события одновременно: получение ctx.Done() и запись в канал out. И видимо, select выбирает случайным образом, какое событие обработать.

Ответы437119

374 16 июля, 21:34 374 1437119

>>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 небуферизированным каналом, то все работает ок.
А из-за рандомности селекта не все воркеры ведут себя одинаково.

375 16 июля, 22:08 375 1437146

>>1437012
Почти, но не совсем.
https://golang.org/doc/faq#goroutines
Мимо-питонист.

Ответы437471

376 17 июля, 10:27 376 1437409

>>1437012
При использовании корутин контекст меняется явно, посредством вызова yield. Го-рутины переключаются планировшиком (там целая пачка условий, таймауты, директивы и прочее).

Ответы437471

377 17 июля, 12:05 377 1437471

>>1437146
>>1437409
Не гопник.
Чем тогда горутины отличаются от тредов не по ресурсам, а по программированию? Как обработка критических секций осуществляется, тоже всё подряд надо лочить? То есть фактически это треды, а не корутины?

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

Ответы437568438475

378 17 июля, 14:14 378 1437568

>>1437471
Рассматривать горутины отдельно от каналов смысла нет.

379 17 июля, 22:01 379 1437909

Хей, анон, а как вообще вкатываться? Вакансий и фриланса по языку очень мало, а все позиции - чисто для Senior'ов. Получается, новичку вообще нет смысла вкатываться? Или как?

Ответы437911

380 17 июля, 22:06 380 1437911

>>1437909
Ну язык немного подрастет и станет популярным и тут ты такой открытый для предложений.

Ответы437979

381 17 июля, 23:25 381 1437979

>>1437911
Сколько языку уже лет, напомни, плиз?

Ответы437981

382 17 июля, 23:30 382 1437981

>>1437979
11

383 18 июля, 09:38 383 1438095

Как в го принято общаться с sql? Через орм или голыми запросиками?

Ответы438097438486

384 18 июля, 09:42 384 1438097

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

385 18 июля, 21:04 385 1438475

>>1437471
Ещё раз.
Есть треды, это прикольно, но тяжело - потому что процессору нужно тратить много времени на порождение треда + переключение контекста между тредами + нужно как-то самому реализовывать передачу данных между тредами.
А есть "зелёные треды", идея которых в том, что у тебя есть какой-то рантайм (го/котлин/any), который занимает сколько-то системных потоков. А уже внутри рантайма есть своя абстракция, легковесные "зелёные" потоки, которые как-то сами между собобой общаются, меняются и вообще делают, что хотят, потому что запущены внутри своей "виртуальной машины".
Реализаций концепций "легковесных потоков внутри своего рантайма" есть много, и все они чем-то отличаются. В частности, есть горутины в го и корутины в котлине. И то, и то - это грин треды, но у одних за переключение между легковесными потоками отвечает планировщик, а у других ты сам должен сказать рантайму "вот тут можешь что-нибудь поделать", ткнув свой yield.

Ответы438482438512

386 18 июля, 21:15 386 1438482

>>1438475
Про программирование.
Очевидно, разные реализации требуют разных подходов. В го у тебя память доступна между всеми горутинами, можешь хоть через глобальные переменные передавать.
Но вообще для таких целей нужно использовать каналы (канал в го - это по сути обёртка с мьютексом вокруг очереди). Создал канал - прокинул его внутрь горутины, там записал, тут вычитал.
Но стоит учитывать, что каналы несут за собой накладные расходы, поэтому злоупотреблять ими не стоит.

Ну и да, по моему опыту, чаще всего распараллеливание происходит во время начала обработки чего-нибудь и в конце.
Грубо говоря, тебе пришёл запрос, роутер его обработал и сам породил горутину, в которой вызвал твой коллбек. Всё, у тебя отдельный поток на обработку этого запроса - а бизнес-логика обычно вполне себе линейна: прокинул запрос в базу либо другой сервис, получил ответ, посчитал что-то, записал, вернул ответ клиенту. Обычно в несколько потоков делаешь разве что одновременные запросы в несколько систем с последующей компоновкой результата, обработку какого-нибудь большого массива данных (в несколько потоков) либо отложенные операции вида "прогрей", "почисти", "пошли ассинхронно" и тому подобное.
И решаются такие задачи зачастую просто через замыкание + sync.WaitGroup

387 18 июля, 21:25 387 1438486

>>1438095
В го-мире есть куча ебанутых, которые тебе расскажут, что они пишут все запросы руками - и я водил их мам в кино, потому что когда доходит до +- сложных запросов эти сениор си девелоперы начинают городить лютую херню из конкатенаций и ручного экранирования всего и вся.
Другое дело, что большая часть орм'ок в го-мире основана на пустых интерфейсах, что нарушает все плюсы статической типизации.
Я бы использовал kallax либо reform, либо sqlboiler, они все основаны на кодогенерации и дадут тебе возможность писать так, как ты этого достоин - структуры, типы, fluent интерфейсы и всё такое.
И отдельно призываю тебя максимально внимательно отнестись к gorm. В мире нет никого более беспомощного, безответственного и безнравственного, чем человек, использующий эту дрянь: она мало того, что вместо join'ов делает select'ы и мерджит результаты на уровне приложения (а не базы), так ещё и втихую может похерить тебе какую-нибудь таблицу, если засунешь в любой меняющий состояние метод структуру с пустым первичным ключом.
Ага, условный model.Delete(User{}) заапдейтит тебе всю тублицу, если ты случайно структуру с пустым айдишником туда прокинешь.

Ответы438636440275440305

388 18 июля, 21:38 388 1438492

Девелоперы отклонили try statement.

Ответы438684

389 18 июля, 22:15 389 1438512

>>1438475
Наверно надо просто прочитать про гринлеты и го, но лень, у меня вагон другого, что прочесть надо, и два вагона того, что сделать.

Всё-таки с точки зрения программирования, не думая о том, что под капотом.

Вот есть треды. Если я напишу в коде
print("say one")
print("say two")
то нет гарантии, что между ними чего-нибудь ещё не напечатается. А уровне питона даже нет гарантии, что c += 1 корректно выполнился в критической секции. Это особенность тредов. Что там внутри ОС или ЦПУ не важно.

Есть классические await.
пока я не сделал что-нибудь вроде await ...., у меня есть 100% гарантия, что переключения не произойдёт. Но чаще всего это всё работает на одном процессоре, то есть ресурсы не используются. Естественно, если делать
await print('one')
await print('two')
то тут уже потребуются локи для этого, но под корутины.

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

Ответы438596438687

390 19 июля, 01:51 390 1438596

>>1438512
> Верно ли, что в Го вся работа раскидывается системой по всем процессорам, а для программиста это выглядит как работа с корутинами, через await, и мне не надо думать о синхронизации между тредами?
Разница-то между типичным async/await и горутинами простая: в первом случае у тебя один ивент луп, в последнем у тебя их несколько, по одному-два на ядро.

Исходя из этого, если горутины не меняют общие ресурсы, то работать с ними будет также легко как с async/await. Если же меняют, то ты неизбежно огребёшь ад многопоточности с возможными дедлоками и порчей памяти объектов.

Но зато горутины хорошо перемалывают cpu-bound задачи, а не только io-bound, как async/await.

391 19 июля, 08:28 391 1438636

>>1438486
Воу, спасибо за такой развернутый ответ.

392 19 июля, 10:18 392 1438684

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

393 19 июля, 10:31 393 1438687

>>1438512
>1438596
Дополню, в голове удобно представлять каждую горутину, как отдельный тред, не думая о том, как оно там должно выполняться (на многоядерном компе будет выполняться одновременно несколько горутин, на одноядерном или с GOMAXPROCS=1 - это будет похоже на event loop, он будет выполнять все горутинны по чуть-чуть).
https://pastebin.com/pkp6qGef тут я сваял тебе пример, попробуй позапускать это с разными GOMAXPROCS - и сразу увидишь разницу, это будет или 1-1, 1-2, 1-3, ..., 2-1, 2-2, 2-3, ... в случае одного процессора, или 1-1, 2-1, 1-2, 3-1, ... в случае нескольких.
https://pastebin.com/P3ahRqmM а тут похожий пример, только с использованием каналов, чтобы было понятно, как их использовать.

394 19 июля, 11:38 394 1438698

134 Кб, 446x33293 Кб, 444x337

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

Ответы438706438711438737

395 19 июля, 12:17 395 1438706

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

Ответы438711

396 19 июля, 12:56 396 1438711

>>1438698
>>1438706
Ребята не стоит вскрывать эту тему. Вы молодые, шутливые, вам все легко. Это не то. Это не Чикатило и даже не архивы спецслужб. Сюда лучше не лезть. Серьезно, любой из вас будет жалеть. Лучше закройте тему и забудьте что тут писалось.

397 19 июля, 13:55 397 1438737

>>1438698
Посмотрим как ты будешь выглядеть в 63 года, если вообще доживёшь. А дядьке с первой пикчи как раз столько и есть.

Ответы438799

398 19 июля, 14:38 398 1438770

Решил короче вкатиться в го. Вкатился, начал прогать свой хэллоу ворлд, дошёл до интерфейсов и .. выпал в осадок. Бля ну какого хуя нельзя делать интерфейсы для свойств? Как вы решаете проблему, что бы интерфейс гарантировал наличие не только не только методов но и свойств?

Ответы438784439087439351

399 19 июля, 14:50 399 1438784

>>1438770
Это не проблема, поэтому её никак и не решаем. Почитай как организовано ООП в Go, перед тем как орать что это уебанство -- почитай про то, почему оно так сделано. Про Smalltalk, Objective-C и вот это всё.

Ответы438989

400 19 июля, 15:06 400 1438799

>>1438737
В 63 люди становятся похожими на маньяков?

401 19 июля, 17:49 401 1438989

>>1438784
> Objective-C
А что, может в го уже и аналог @property есть?

402 19 июля, 20:19 402 1439087

>>1438770
Если тебе так необходимо наличие свойств, то делай их через геттеры/сеттеры. Но скорее всего, они тебе не нужны.

403 20 июля, 13:21 403 1439351

>>1438770
Ещё один из мира формошлёпов что ли?
Интерфейсы определяют поведение, а не состояние, соответственно, нафиш там не нужны свойства.
Если тебе нужно передавать данные через интерфейс, ты или не знаешь про структуры, или делаешь что-то совсем неправильно.

404 21 июля, 12:12 404 1439845

Ну что, го-еды, вам уже перезвонили?

Ответы439940

405 21 июля, 13:17 405 1439940

>>1439845
Да, но я не взял трубку.

406 21 июля, 18:08 406 1440080

>>1360787 (OP)
Приветствую. Как в этом языке отлаживать код, если компилятор гугловский?

Ответы440081

407 21 июля, 18:10 407 1440081

>>1440080
>гугловский компилятор.
Чего блядь ? Уебывай отсюда.

Ответы440082

408 21 июля, 18:11 408 1440082

>>1440081
>Уебывай отсюда.
Давай ты.

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

Ответы440164

409 21 июля, 20:48 409 1440164

>>1440082
Логами и прокидыванием стектрейса.

Вообще можно вроде и отладчик подключить, но не пробовал

Ответы440165

410 21 июля, 20:59 410 1440165

>>1440164
Как можно работать без полноценной отладки? Это ж дурдом какой-то. Читаю сейчас за Delve и GDB вроде бы это умеет, но я так понимаю GDB отлаживает только то, что получено с компилятора что и идёт в GCC. Всякие GoLand это умеют. Как?

Ответы440169

411 21 июля, 21:08 411 1440169

>>1440165
В Goland вроде отладка через delve

Ответы440178

412 21 июля, 21:35 412 1440178

>>1440169
>delve
Там кстати какой-то свой или перекомпиленный, ибо обычный, который отдельно ставится, не работает на 32 битных системах(не спрашивай, откуда я это знаю), а вот ГоЛанд нормально пашет на них же.

Ответы440184

413 21 июля, 21:43 413 1440184

>>1440178
Этого я не знаю.

Можешь еще поинтересоваться, как отладка устроена в vscode, может найдешь полезную информацию.

Ответы440185

414 21 июля, 21:44 414 1440185

>>1440184
Да я вообще мимо проходил, я не тот анон.

sage 415 22 июля, 05:38 415 1440275

>>1438486
>kallax либо reform, либо sqlboiler
и ни одна из этих поебот не умеет нормально в many-to-many, охуительно

Ответы440291

416 22 июля, 08:21 416 1440291

>>1440275
Что же делать? Горм плохо,
>kallax либо reform, либо sqlboiler
плохо, чистые sql-запросы плохо.

Ответы440301

417 22 июля, 08:38 417 1440301

>>1440291
Да ладно, не верю. Это же не орм, это обёртки над sql, они не могут не уметь делать джоины.

418 22 июля, 09:10 418 1440305

>>1438486
>а мало того, что вместо join'ов делает select'ы и мерджит результаты на уровне приложения (а не базы)
мельком глчнул сорцы, вроде делает нормальный join

Ответы440835

159 Кб, 1419x649
419 22 июля, 20:14 419 1440616

Почему мой класс не работает? Вроде настроил правильно. Nginx должен редиректить с домен/guess/ на апи:11211. Сам класс называется guess, как и его подпапка

Ответы440629

420 22 июля, 20:30 420 1440629

>>1440616
Ладно, я сделал. Надо было после порта в редиректе в настройках сайта добавить pattern из HandleFunc

421 23 июля, 08:32 421 1440835

>>1440305
Чувак, кажется, не совсем понимает, что такое m2m.

422 23 июля, 17:03 422 1441045

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

423 23 июля, 23:08 423 1441266

Освоил Delve. Не всё так сложно как казалось. Могу отладить в терминале любую поделку на Go

Ответы441529

424 24 июля, 12:59 424 1441529

>>1441266
Могу обоссать любую поделку на го и переписать на кресты или старую добрую джаву

Ответы442010

425 24 июля, 13:10 425 1441539

>>1431951
>Глубокого замысла в этом нет,
Если ты чего-то не знаешь, не значит, что этого нет.
Сложи (конкатенируй) два слайса от A до B и от B до C.

426 25 июля, 06:00 426 1442010

>>1441529
Зачем? На го ведь уже написано. Перепиши на го то, чего нет еще на го, а не трать время впустую.

Ответы442723

427 26 июля, 09:54 427 1442723

>>1442010
Не мешай чуваку жить в его манямирке, где он единственный помнит про космическую радиацию.

sage 428 26 июля, 13:28 428 1442823

>>1385016

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

Этого более чем достаточно,с большим запасом, чтобы не писать на этом уебищном подзалупинском языке.

429 26 июля, 14:43 429 1442870

Привет, програмач
Выкатываюсь из SAP в программирование. Есть фин. подушка на полгода-год (можно даже курс купить) и желание завести трактор через год-два-сто. Ну или фрилансить
НАсколько это реально? Почитал статей, обзоров-судя по всему вакансий ДОСТАТОЧНО, но не шибко много, как на джаве, пхп и прочем говне.
ПОнимаю, что вопрос очередного нюфани, но god bless вас, спасибо

430 28 июля, 01:55 430 1443677

Добрые аноны, объясните зачем в для ожидания условия sync.Cond.Wait() используют бесконечный цикл вместо простого условия? Почему нельзя сделать так
api.secMut.Lock()

if len(api.SecretPool) == 0 {
api.secCond.Wait()
}

secret := api.SecretPool[0]
api.SecretPool = api.SecretPool[1:]
defer api.secMut.Unlock()
return secret, nil

зачем делать так и тратить такты у процессора?

for len(api.SecretPool) == 0 {
api.secCond.Wait()
}

Ответы443819446532447209

431 28 июля, 11:06 431 1443761

Подскажите что делаю не так. Установил Go на Линуксе, в $GOPATH/src создал каталог Hello, а в нем файл hello.go. Сбилдил, и по идее должен был появится каталог $GOPATH/bin, где будет бинарник, но бинарник появился рядом с исходником. Почему так, ведь он должен класть бинарники в каталог bin?

Ответы443772443779

432 28 июля, 11:39 432 1443772

>>1443761
Каталог /bin сгенерился, теперь билдит бинарники в него. Теперь другая проблема, не могу настроить чтобы бинарники видел в PATH, то есть чтобы запускать без указания каталога, например так home/go$ hello

Ответы443779

433 28 июля, 11:52 433 1443779

>>1443761
>бинарник появился рядом с исходником
go install
>>1443772
export PATH="$PATH:$GOPATH/bin" в .bashrc

Ответы443781

434 28 июля, 12:04 434 1443781

>>1443779
>go install
Чтобы go install работал походу все исходники должны лежать в go/src/github.com/.../.../? Потому что если исходник в go/src/hello, то go install выдает ошибку.

>export PATH="$PATH:$GOPATH/bin" в .bashrc
Короче делал по инструкции, так export PATH=$PATH:$(go env GOPATH)/bin, выполнял source ~/.bash_profile, даже делал выход из системы, и все бестолку. Сейчас снова открыл .bash_profile а там оказывается опечатка. В общем заработало. Большое спасибо!

Ответы443787

435 28 июля, 12:20 435 1443787

>>1443781
>должны лежать в go/src/github.com/.../.../
Никто ничего не должен и все прекрасно собирается из go/src/.../

Ответы443805

436 28 июля, 12:45 436 1443805

>>1443787
>Никто ничего не должен и все прекрасно собирается из go/src/.../
Собирается, только бинарник кидает в каталог проекта, а не в go/bin.

Ответы443824

437 28 июля, 13:07 437 1443819

>>1443677
Чё, неужели никто с sync.cond не работал?

3 Кб, 379x100
438 28 июля, 13:20 438 1443824

>>1443805

sage 439 29 июля, 11:14 439 1444255

if op != nil {
return 'op huy'
}

opUsingGo, err := op.isUsingGo()
if err != nil {
return 'op huy'
}

if opUsingGo {
return 'op huy'
}

440 30 июля, 00:23 440 1444732

>>1361264
Было дело, это уже ~30 итерация треда, но я вырос и теперь сам пишу на го :((

441 30 июля, 00:25 441 1444733

Народ, помогите определиться
Котлинтам вроде тоже зеленые треды осилили с асинками авэйтами
Или Го?
Прям аргументированно в пользу го?

Ответы444798446203

442 30 июля, 08:09 442 1444798

>>1444733
го проще, нету жвм

Ответы444845

443 30 июля, 12:21 443 1444845

>>1444798
А чем jvm так плох?

Ответы444907

444 30 июля, 14:45 444 1444907

>>1444845
Аппа не запустится в окружении без jvm, в каждом контейнере нужно jvm крутить, оверхед по оперативе.

Ответы444933444974445036

445 30 июля, 15:12 445 1444933

>>1444907
Ну можно скомпилить в нейтив бинарник при желании.

446 30 июля, 16:31 446 1444974

>>1444907
А какой оверхед на оперативке? Там разве будет что-то больше +-1-2 мегабайт?

sage 447 30 июля, 18:11 447 1445036

>>1444907
if err != nil {
}

Ответы445439

957 Кб, 640x853
448 31 июля, 14:37 448 1445439

>>1445036

Ответы446050

449 31 июля, 17:07 449 1445497

Прочитал тут в руби треде, что го плох для веба. Правда ли это? Начал изучать его неделю назад для rest api, перейдя с пыхи. Вроде нравится, похож на жабу, раза в два быстрее пыхи.

Ответы445507445745

450 31 июля, 17:35 450 1445507

>>1445497
>Прочитал тут в руби треде, что го плох для веба
Ничем не плох. Кто слаще редьки не ел, конечно, будет топить за рельсу.
>похож на жабу
Да ты шутишь?! Инкапсуляция ниже плинтуса, все функции и глобальные переменные видны во всем пакете, типов доступа к атрибутам не существует (да хоть неявно, как в Питоне через __).
>перейдя с пыхи
Чому не Питон?

Ответы445510

451 31 июля, 18:20 451 1445510

>>1445507
Друг посоветовал го, тк мне нужно было что-то быстрое быстрее пыхи; го формирует ответ в 2 раза быстрее

Ответы445561

58 Кб, 910x496
452 31 июля, 19:56 452 1445561

>>1445510
Тогда в путь.
Тут одинь мусье подогнал бенчмарк, по которому Го уделывается на обе лопатки в сервисе "принял rest запрос - сходил в postgre - создал html по шаблону - отправил ответ". Хотя Питон и ПэХэПэ там еще ниже.

Ответы445564445584

453 31 июля, 20:10 453 1445564

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

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

Ответы445582

454 31 июля, 20:36 454 1445582

>>1445564
>Обычно эти тесты откровенно синтетические.
Ты разбирался или ты очередное шаблонное трепло которое серит как стадо леммингов одно и тоже под копирку?

Ответы447877

455 31 июля, 20:39 455 1445584

>>1445561
Го очень сильно уступает той же асинхронной джаве или расту и т.д., это его критический минус, с учетом что в котлине корутины завезли. Есть говно теперь не обязательно.
Берем котлин, берем вертекс (с котлин горутинами) и творим чудеса

Ответы445588

456 31 июля, 20:44 456 1445588

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

Ответы445604

457 31 июля, 20:49 457 1445593

Лойс, тут прямо сплошные архитекторы высоконагруженных проектов собрались, у которых акции в цене просядут, если сервис меньше 10к рпс будет обслуживать.

Ответы445737

458 31 июля, 21:09 458 1445604

>>1445588
>ты выбираешь тредпул
Уровня микроменеджмента. Решил поиграть в Господа Бога ака Планировщика Задач - повышай уж уровень процесса.

Го > Раст > Котлин

Ответы445736

459 31 июля, 21:19 459 1445614

КОТЛИН vs GOLANG?

Ответы445738445741445839

460 1 авг, 00:27 460 1445736

>>1445604
Нет, мне на го нужен был системный поток, куда я мог скинуть дробилки и я обосрался, точнее обосрался го конечно
же я сделал еще один высер в виде микросервиса и теперь у меня туча наносервисов

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

461 1 авг, 00:33 461 1445737

>>1445593
Ты же понимаешь, что отмазка вида "все равно все упрётся в ввод/вывод" уже не подходит. Настало время когда из кэша ты с молниеносной скоростью выплевываешь мелкие json'ы и тебе нужны эти 10к на твоем древнем сервере. А го как бы подпитывал надежды на крутую асинхронщину, а на деле jvm просто божит (особенно грааль и es4)

Ответы445740

462 1 авг, 00:34 462 1445738

>>1445614
if err != nil{}

Ответы445742445794

463 1 авг, 00:36 463 1445740

>>1445737
>А го как бы подпитывал надежды на крутую асинхронщину, а на деле jvm просто божит (особенно грааль и es4)
Можешь пояснить последнюю строку ньюфагу? Пожалуйста

Ответы445747

464 1 авг, 00:37 464 1445741

>>1445614
У го осталось теперь только одно преимущество, это бинарь это зависимости и быстрый старт. Но если рынку нужен будет бинарь, там сделают или котлин-нейтив доделают к тому времени.
Меня и fat jar'ник устраивает тоже самое
Быстрый запуск? Ненужон мне как вебмакаке

Ответы445745

465 1 авг, 00:38 465 1445742

>>1445738
try {} catch() {}

466 1 авг, 00:42 466 1445745

>>1445741
А какой язык быстрее, котлин или го? Я >>1445497 .
Просто я уже давно хотел перейти с жабы на котлин, а тут пока буду переписывать апи и научи учить котлин.

Ответы445746445750445751445752

467 1 авг, 00:43 467 1445746

>>1445745
>научи
начну
быстрофикс

468 1 авг, 00:43 468 1445747

>>1445740
Что именно?
У джавы есть производительные асинхронные сервера, которые почти вровень с С++ и растом идут когда прогретые Все это есть и у котлина.
Так же, наблюдается качественный и быстрый jdbc драйвер к бд. Вообще библиотеки, популярные, зачастую качественные.

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

469 1 авг, 00:49 469 1445750

>>1445745
За редким исключением каких-то там проверок котлин равен джаве, как уверяют нас дизайнеры языка.

В целом jvm (джава и котлин) быстрее го и удобнее. Это судя по тестам TechEmpower
Но тебе такие скорости могут и не пригодиться никогда, потому что быстрее упрешься в канал 100мбит.

470 1 авг, 00:50 470 1445751

>>1445745
Может показаться что я немножко ебнутый все время про скорость спрашивать, но моё апи парсит два json и выдает ответ, что занимало на пыхе ~3 секунды в особом случае ~3минуты, а на го 1.5секунды

Ответы445754445755445756

471 1 авг, 00:51 471 1445752

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

472 1 авг, 00:53 472 1445754

>>1445751
Не понятно что там на пыхе парсится, для него json это многомерный массив.

473 1 авг, 00:54 473 1445755

>>1445751
Разовая операция по парсингу на джаве может быть дольше, потому что JIT сработает только после 10.000 обращений к методу

474 1 авг, 00:56 474 1445756

>>1445751
Вот тебе тесты по json
https://www.techempower.com/benchmarks/
Изучай и изучай исходник (какие либы они юзают).
Вероятно тебе нужен будет раст

Ответы445757

475 1 авг, 00:56 475 1445757

>>1445756
Пасибо

476 1 авг, 00:57 476 1445759

>Вот тебе тесты по json
фикс
https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=json

477 1 авг, 09:07 477 1445794

>>1445738
public static void

Ответы445814

478 1 авг, 09:34 478 1445814

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

Ну и сопровождать код, читая эти if err != nil, вообще вырвиглазно.

88 Кб, 1249x1300
479 1 авг, 09:37 479 1445817

>>1360787 (OP)
Правда что го разрабатывался студентами?

Ответы445826

480 1 авг, 10:07 480 1445826

>>1445817
Неправда говно "разрабатывалось" отбитым олигофреном

481 1 авг, 10:36 481 1445839

>>1445614
Чтобы и так не смеяться над тяжелой судьбой гоферов поднял тред на котлине (не мобильники)
>>1445837 (OP)
>>1445837 (OP)
>>1445837 (OP)
>>1445837 (OP)
>>1445837 (OP)

sage 482 1 авг, 17:17 482 1446050

>>1445439
гомакака увидела знакомый до анальных болей кусок кода

Ответы446106

86 Кб, 600x601
483 1 авг, 19:05 483 1446106

>>1446050

484 1 авг, 22:08 484 1446203

>>1444733
На го пишут микросервисы. Го, котлин, эликсир идут как вторичные, а не как первичные.
Заебали.

Ответы446227446234446390

485 1 авг, 22:28 485 1446227

>>1446203
>На го пишут
Дальше не читал.

268 Кб, 1011x1011
486 1 авг, 22:37 486 1446234

>>1446203
>На го пишут
Когда вы там писать успеваете, там же постоянно надо обрабатывать ошибку??

PS один раз соснул у суслика, по-моему в рендере, где просто возвращался err один, ну естественно я не подставил переменную и получил неявную заглушку на ошибку.
Прикинь, ты запускаешь, а у тебя тупо не работает и все. И ты такой - ЧЕГО МЛЯ??
Есть еще хуже вариант с работой SQL, где надо у кого-то несколько раз спросить - не произошла ли беда, то есть не у результата, что логично, а где-то просто так.

Ответы446241

426 Кб, 770x478
487 1 авг, 22:41 487 1446241

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

Ответы446391

488 2 авг, 08:28 488 1446390

>>1446203
Мыкросервисы для быдла или для всяких ойти-гигантов, которых в мире пять с половиной штук.

489 2 авг, 08:29 489 1446391

>>1446241
Хуя котлинодаун порвался, что полтреда засрал.

Ответы446506

260 Кб, 1171x1200
490 2 авг, 12:29 490 1446506

>>1446391
Да, пердачело мне ваш го в свое время знатно порвал.
Этот ваш суслик, тот еще анальный маньяк

491 2 авг, 13:12 491 1446532

>>1443677
Ну всё же бамп вопросу. Хотя бы скажите кто из вас вообще sync юзал?

492 2 авг, 14:56 492 1446629

>>1392970
или

493 2 авг, 16:25 493 1446704

>>1392970
В Kotlin с погружением в окружение Java.

494 3 авг, 09:03 494 1447209

>>1443677
Because c.L is not locked when Wait first resumes, the caller typically cannot assume that the condition is true when Wait returns. Instead, the caller should Wait in a loop:

Ответы447284

495 3 авг, 12:34 495 1447284

>>1447209
Тогда какой вообще смысл в wait, если эту функцию берет на себя луп?

Ответы447286448313

496 3 авг, 12:44 496 1447286

>>1447284
Тебя это ебать не должно.

Ответы447293447341

497 3 авг, 12:59 497 1447293

>>1447286
Это просто эталонная цитата от разработчиков го.

Ответы447348

498 3 авг, 14:10 498 1447341

>>1447286
Бля, серьёзно?

Ответы447348

499 3 авг, 14:14 499 1447348

1,3 Мб, 1550x856980 Кб, 912x513

>>1447293
>>1447341

500 4 авг, 09:22 500 1447799

Какие go-биндинги к ncurses сейчас считаются самыми лучшими?

https://github.com/rthornton128/goncurses
Вот это? Или есть лучше?

Не хочу использовать нативные tui типа termbox/tcell, меня интересует именно связка с ncurses.

Ответы447803

501 4 авг, 09:35 501 1447803

>>1447799
Иди нахуй со своим goвном.

Ответы447834

502 4 авг, 11:48 502 1447834

>>1447803
Ты забыл принять таблетки, которые тебе врач выписал?

503 4 авг, 13:32 503 1447877

>>1445582
Я (уже другой анон, если что) видел исходники таких тестов на гитхабе и разбирался в них. Обычно автор фулл-тайм пишет на джаве или питоне и на всех языках пишет в итоге "как на джаве, только на го". Логично, если ты будешь писать оптимальный код на джавотлине и неоптимальный на го, то джавотлин будет быстрее.

Ответы447879447949

504 4 авг, 13:35 504 1447879

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

505 4 авг, 15:30 505 1447949

>>1447877
Если авторы го-фреймов ссылаются на эти тесты, например автор fasthttp - значит они сами это и пишут

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

506 5 авг, 09:28 506 1448313

>>1447284
По идее там может быть максимум 2 итерации: первая неудачная когда кто опередил и вторая успешная.

507 6 авг, 10:09 507 1448781

go build -ldflags '[pattern=]arg list'

Какие аргументы ldflags принимает? Где глянуть полный список с описаниями? В доках go help build не нашлось чота.

Ответы448782448786

508 6 авг, 10:11 508 1448782

>>1448781
Например, в инете попадается go build -ldflags="-w"

509 6 авг, 10:30 509 1448786

>>1448781
go doc cmd/link
Алсо, первый линк в гугле

Ответы448789

510 6 авг, 10:37 510 1448789

>>1448786
Спс

sage 511 6 авг, 11:37 511 1448815

Когда там женерики с боку прелепят, петуханы?

Ответы448845

512 6 авг, 13:03 512 1448845

>>1448815
https://play.golang.org/p/_V0cKHJvy9S

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

Ответы448853

513 6 авг, 13:26 513 1448853

>>1448845
Отбой, сам разобрался. Нужно было имена полей начинать с заглавной буквы, чтоб они экспортировались.

514 6 авг, 18:37 514 1449046

Как правильно называть голанг файлы? Те у пхп например, скрипты

Ответы449297

515 6 авг, 18:41 515 1449048

Как сделать автозапуск голанг файлов на nginx? Те чтобы мое голанг апи начинало работать мне надо каждый раз через ssh запускать файл через ./название скомпиленного файла и работать апи будет пока открыто ssh соединение только

Ответы449147

516 6 авг, 22:45 516 1449147

>>1449048
Не совсем понял, что тебе надо? Автозапуск делается сторонними средствами, или тебе надо, чтобы просто всегда было твое приложение запущено

Ответы449184

517 7 авг, 00:19 517 1449184

>>1449147
Ну типо чтобы мое апи работало, мне приходится заранее заходить через ssh и запускать его. И работать будет пока будет открыто это ssh соединение. Можно сделать чтобы оно работало постоянно?

Ответы449303451204

518 7 авг, 10:42 518 1449297

>>1449046
Сначала у тебя исходники (файлы с исходным кодом), потом ты их компилируешь в бинарник (исполняемый файл).

519 7 авг, 10:54 519 1449303

>>1449184
Чувак, ты явно пришёл из мира php и тебе нужно много всего изучить.

Разница между пыхой и тем же го в том, что пхп-приложение - это набор исходников, которые тот же nginx с помощью специальной утилиты (обычно phpfpm) читает, интерпретирует и исполняет.
В случае с go, c, и целой кучей других стэков, само твоё приложение - и есть сервер, который сёрвит входящие запросы. Соответственно, во-первых, тебе далеко не всегда нужен nginx (но обычно нужен, потому что там есть куча всякой полезной фигни), во-вторых, тебе его нужно поднимать так же, как и nginx.

Это решается системой провизионинга.
Например:
- системный менеджер служб (init.d, systemd и прочие для линукс) - ты описываешь там юнит (путь, команду для старта, остановки, перезапуска, флаги, имя, необходимость рестартить при ребуте системы и т.п.) и просто запускаешь его через условный `sudo service start [my_application]`;
- сторонний менеджер-супервизор, какой-нибудь supervisord - ставишь, запускаешь, описываешь в конфиге путь для старта и прочее, затем говоришь `sudo supervisorctl start [my_application]` и то же самое;
- система контейнеризации, поначалу какой-нибудь docker (можно указать рестарт контейнера при перезагрузке и т.п.) - потом какой -нибудь nomad (он по-проще)/docker swarm/kubernetes/mesos.

Если ты совсем начинающий, используй supervisord, это до-докеровая классика в мире php-демонов, ты должен быть с ней +- знаком.

Ответы449878450698

520 8 авг, 15:02 520 1449828

добрый анон накидай идей для го проекта

521 8 авг, 16:41 521 1449878

>>1449303
ох и завалил ты его , он использует сво говно как апи , а ты ему про демоны , тыб ему посоветовал бы что то типа forever c ноды , или уже на худой конец screen , но часть с докером верна

Ответы450256

522 9 авг, 09:44 522 1450256

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

И да, я уже упоминал "сторонний менеджер-супервизор, какой-нибудь supervisord" - это аналог того самого forever о котором ты говоришь.

Ответы454834

523 9 авг, 23:37 523 1450698

>>1449303
А нельзя в @reboot крона записать путь к бинарнику и все?
мимо неразбирающийся

Ответы450859

524 10 авг, 13:25 524 1450859

>>1450698
Ну и крон каждую минуту (не чаще) будет поднимать тебе новый бинарник. А с уже запущенными ты что будешь делать?
Короче, не путай планировщик с супервизором, который отвечает за то, чтобы поднято было нужное количество демонов, они работали, были не подвисшими, перезапускает их по необходимости и много чего ещё. Это всё можно построить на кроне, но в итоге ты получишь тот самый супервизор, только кривой, потому что написан одним человеком на кроне и кастомных скриптах.

525 11 авг, 10:47 525 1451204

>>1449184
Я кручу докер контейнер docker-compose up -d с restart: unless-stopped, хз насколько это васянский подход, но мне хватает.

Ответы451845

526 12 авг, 11:51 526 1451845

>>1451204
По идее норм. Сам думал так же сделать. Ты не сталкивался с какими-либо проблемами с таким подходом?

Ответы451848

527 12 авг, 11:54 527 1451848

>>1451845
Нет, кручу так ботов в телеге несколько лет.

528 13 авг, 23:46 528 1452810

ПЕРЕКАТ
>>1452808 (OP)
>>1452808 (OP)
>>1452808 (OP)
>>1452808 (OP)
>>1452808 (OP)
ПЕРЕКАТ

529 17 авг, 09:33 529 1454834

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

Тред утонул или удален.
Это копия, сохраненная 31 августа 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion