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

Этого треда уже нет.
Это копия, сохраненная 10 февраля 2020 года.

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

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

Тред про лучший в мире язык GO №5 /go/ # OP 26 сен, 20:30 1482493 В конец треда | Веб

1,3 Мб, 4000x2067227 Кб, 900x1400

GO (а также Golang, Пщ или просто Го) — современный язык с зелеными потоками на уровне синтаксиса и крутой стандартной библиотекой. Так как делать пакеджи несложно, гитхаб полон пакеджами для абсолютно всего.

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

Пэкеджи можно искать тут https://github.com/avelino/awesome-go

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

Предыдущий: >>1452808 (OP)

Ответы482519482631482867483339484255486820486876496719498631513345516916524808524919528647543265

2 26 сен, 20:48 2 1482519

>>1482493 (OP)

Предлагаешь клиенту просто отслеживать статус задачи? Чтобы в случае ошибки он мог об этом узнать и повторить запрос/забить хуй? Я правильно тебе понимаю?

Ответы482521482878

3 26 сен, 20:48 3 1482521

>>1482519
>>1482455

4 26 сен, 23:10 4 1482631

>>1482493 (OP)
> смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики.

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

Ответы482705482881

5 27 сен, 00:45 5 1482705

>>1482631
> Go хотя бы пошустрее жабы
Жаба-интерпретируемые кресты, Го-ненужное говно

Ответы482870

6 27 сен, 11:03 6 1482861

А как вы мониторите сервисы?
Недавно попал в ситуацию, которую я не смог решить основываясь на цифрах. Но все решилось методом тыка.

Докер контейнер на ecs, метрики все отличные - памяти и процессора хватает с избытком. База данных не тормозит.
Но время ответа периодически жуткое - по 2 минуты, при 95 перцентиле около 20 мс.

Вот как бы вы решали?

Ответы485040

7 27 сен, 11:19 7 1482867

>>1482493 (OP)
>Керниган
Тот самый? Что он забыл в goвне?

Ответы483198

8 27 сен, 11:22 8 1482870

>>1482705
>Го-ненужное говно
Нет ли здесь тавтологии?

9 27 сен, 11:39 9 1482878

>>1482519
Ты не очень умненький да?

Все завис от доменной области.
Если это сохранение документа после редактирования, клиент должен знать, да?
Если это работа с кэшем и кэш отвалился, то знать ему не положено да?

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

Ответы483169

10 27 сен, 11:41 10 1482881

>>1482631
>но зато Go хотя бы пошустрее жабы
Ох лол, откуда эта байка идёт?
Как раз великий фейл го в том, что он тормознутее прогретой жабы оказался.

Ответы482892

11 27 сен, 11:59 11 1482892

>>1482881
>Как раз великий фейл го в том, что он тормознутее прогретой жабы оказался.
Пруфы?

Ответы483000

232 Кб, 1215x731
12 27 сен, 14:28 12 1482998

Ты недавно в ИТ?
https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=query

Ответы483000483040483051483160501454

13 27 сен, 14:29 13 1483000

>>1482892
>>1482998

14 27 сен, 15:19 14 1483040

>>1482998
Ну ахуеть. Я че, зря гошу учу штоли

Ответы483053511780

15 27 сен, 15:39 15 1483051

>>1482998
Какое же c++ говно, не зря жаву учил

16 27 сен, 15:41 16 1483053

>>1483040
даун.
1. го - говно язык.
2. гнаться за скоростью - ты ебанутый?
3. все равно попадешь на легаси говно проект
4. го абстраргируют под другие задачи.
5. Самые быстрые части, твич и тому подобное - написаны на плюсах.

А теперь съеби.

Ответы483090483095511960

17 27 сен, 16:29 17 1483090

>>1483053
С++ юзают там где нельзя сваливаться в GC. Писать на сях что-то крупное, это боль.

И да, у ламеров какой-то дроч на скорость, они верят что это им что-то дает. Писать "быстро" надо еще уметь, даже на быстром языке, тот сайт тому доказательство (внизу можно найти топ языки, в том числе и с++ и жабу со спрингом, лол)

Ответы483119

18 27 сен, 16:35 18 1483095

>>1483053

Съеби.

19 27 сен, 17:48 19 1483119

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

Ответы483127

20 27 сен, 18:03 20 1483127

>>1483119
Да он и так на морозе, надо уже признать что его поддувал только хайп.

Ответы483131

21 27 сен, 18:09 21 1483131

>>1483127
>хайп
Кокой хайп? Только гугля там чето кукарекала.

213 Кб, 469x485
22 27 сен, 18:53 22 1483153

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

Ответы483167483184505605505631510566

23 27 сен, 19:07 23 1483160

>>1482998
верить бенчам в вакууме такое себе

Ответы483182

24 27 сен, 19:16 24 1483167

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

Ответы505596

25 27 сен, 19:20 25 1483169

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

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

Ответы483187

174 Кб, 1904x842
26 27 сен, 19:27 26 1483171

https://kristoff.it/blog/why-go-and-not-rust/
>Go is a better Java / C#, while Rust is not. The clarity that Go can bring to enterprise software development is without a doubt much more valuable than removing garbage collection at the cost of worsening the overall productivity.

Ответы511781512167

27 27 сен, 20:01 27 1483182

>>1483160
Как раз бенч реал приложух, а не маня-дробилки в 100 строк

Ответы483436501455

28 27 сен, 20:02 28 1483184

>>1483153
Где вас такой херней кормят?

29 27 сен, 20:04 29 1483187

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

Ответы483200

30 27 сен, 20:30 30 1483198

>>1482867
>Керниган
Ну так-то с Пайком ( автором Го) они дружат давно и книги давно вместе пишут

31 27 сен, 20:33 31 1483200

>>1483187
Чувак, я тебе уже третий раз пытаюсь объяснить, что я встрял в ваш разговор только в этом сообщении >>1481660 Мне правда было интересно, каким образом ты собрался решать эту проблему, я даже был вежлив до некоторого момента, но ты оказался ебанным шизиком.

Ответы483225483227

32 27 сен, 21:01 32 1483225

>>1483200

Мальчики, не ругайтесь.

Есть два подхода - пессимистичный и оптимистичный.
С оптимистичным мы сразу показываем результат готовым (а потом можем откатить визуальщину), с пессимистичным только когда все точно готово.

Выбор зависит от того, насколько критичная операция.

Все остальное - мелочи реализации. Если вам что-то кажется нереализуемым/сложным/etc - гуглите или спрашивайте. Все реализуемо.

Ответы483234

33 27 сен, 21:06 33 1483227

>>1483200
Врывается в диалог двух анонов.
@
Без ремарок ведет диалог как бы от второго анона
@
Называет собеседника шизиком.

Ответы483255

34 27 сен, 21:20 34 1483234

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

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

Ответы483258

35 27 сен, 22:05 35 1483255

>>1483227
>Врывается в диалог двух анонов.
И?
>Без ремарок ведет диалог как бы от второго анона
Ещё один долбоеб. Можешь перечитать историю сообщений, я раза три отчётливо пытаюсь донести суть своего вопроса и указываю на то что я другой анон прошу пояснить за эту хуйню
>Произошла ошибка, а клиент думает что все ок, но видит некорректный результат (или вообще ничего не видит). Чистая магия, которая противоречит юзабельности.
В итоге чувак мне все разы отвечает, что я не должен запускать таски в потоке с бизнес-логикой

36 27 сен, 22:18 36 1483258

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

Ответы483329

37 28 сен, 00:41 37 1483329

>>1483258
>сервится отдельной горутиной
Еще одна жертва хайпа. Ну есть у тебя 100.000 горутин, а толку если они в четырёх физических потоках?
Подвесил ты один поток, одной горутиной и ~25.000 горутин сосут.

Ответы483357483363

38 28 сен, 00:53 38 1483339

>>1482493 (OP)
Как там Го, пасаны?

39 28 сен, 01:39 39 1483357

>>1483329
>Подвесил ты один поток, одной горутиной и ~25.000 горутин сосут.
Днина, ты? Есть же нетворк поллер.

40 28 сен, 01:54 40 1483363

>>1483329
Бля, да все же знают, что если поток локируется, то рантайм создаёт ещё один.

Ответы483449483456

41 28 сен, 08:58 41 1483436

>>1483182
нихера,там именно проствя страница

42 28 сен, 10:41 42 1483449

>>1483363
Как она узнает что поток блокирован? Это же не бесплатно.

Ответы483556

43 28 сен, 10:53 43 1483456

>>1483363
То есть, при дидос атаке, будут еще неконтролируемо треды создаваться?

Ответы483528483558

44 28 сен, 13:30 44 1483528

>>1483456
На дваче.

45 28 сен, 14:04 45 1483556

>>1483449
>Как она узнает что поток блокирован? Это же не бесплатно
Очевидно потому что поток блокируется системным вызовом.

Ответы483557

46 28 сен, 14:05 46 1483557

>>1483556
И?

Ответы483563

47 28 сен, 14:05 47 1483558

>>1483456
>То есть, при дидос атаке, будут еще неконтролируемо треды создаваться?
Нет, нетворк коллы обслуживаются одним тредом через асинк сисколлы.

Ответы483885

48 28 сен, 14:20 48 1483563

>>1483557
Рантайм понимает что будет блокирующий вызов и берет из пула свободный тред, или создаёт новый.

49 28 сен, 18:46 49 1483885

>>1483558
Почему одним тредом, когда у тебя много ядер?
Какой-то node.js прям получается.

Ответы483892484312

50 28 сен, 18:54 50 1483892

>>1483885
>Почему одним тредом, когда у тебя много ядер?
че ты за хуйню пишеш нахуй лезиш если не шариш иди пару статей почитай

Ответы483901483902

51 28 сен, 19:04 51 1483901

>>1483892
Так я и спрашиваю, тормоз.

52 28 сен, 19:05 52 1483902

>>1483892
>иди пару статей почитай
Прочитал пару статей в мужском журнале, до сих пор не понял, не работает это.

70 Кб, 640x570
53 29 сен, 06:27 53 1484255

>>1482493 (OP)
Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?

Ответы498961589983

54 29 сен, 10:33 54 1484312

>>1483885
>Почему одним тредом, когда у тебя много ядер?
>Какой-то node.js прям получается.
Потому что нетворкполлер работает через асинхронные системные вызовы. Одного треба видимо посчитали, что хватит.

Ответы484782

55 29 сен, 20:06 55 1484782

>>1484312
>нетворкполлер
Это в го или какой-то системный драйвер?

Ответы484962

56 29 сен, 23:04 56 1484962

>>1484782
>Это в го или какой-то системный драйвер?
В го есть два вида i/o Нетворк и ненетворк(файлы/другиесисколы/хуемое). Так вот все не нетворк сисколлы блокируют поток, поэтому планировщик го имеет пул потоков и умеет создавать новые. Когда происходит блокировка, планировщик подменяет заблокированный тред на тред из пула или новый. При разблокировке тред возвращается в пул.
Для Нетворк i/o в рантайме есть отдельный поток, так называемый Нетворк поллер. Данный механизм в одном потоке имеет очередь горутин, которые хотят сделать Нетворк i/o. Вместо обычных блокирующих системных вызовов используется семейство асинхронных сисколлов ОС. Таким образом все горутины в данном потоке могут работать с сетью, не блокируя поток при этом. Ка столько результат вызова получен, горутины возвращается в очередь к планировщику го.

57 30 сен, 01:16 57 1485040

>>1482861
trace посмотри

58 30 сен, 19:22 58 1485608

Блин, как научиться заумным вещам вроде cqrs es, паттернам, вроде саг? И другим вещам, которые стоят в списке требований в проектах на микросервисах?
Есть ли курсы/книги, где идёт разбор на практике?

Ответы485733485833

59 30 сен, 21:41 59 1485733

>>1485608
Есть ли смысл использовать TLS/SSL при взаимодействии между сервисами которые крутятся в кубере и не смотрят наружу?
Если ответ будет с аргументацией, то вообще отлично.

Ответы485738485765485838

60 30 сен, 21:42 60 1485738

>>1485733
Случайно нажал "ответить"

61 30 сен, 22:29 61 1485765

>>1485733

Ssl не бесплатный, его терминацию лучше выносить на apigateway

62 1 окт, 00:14 62 1485833

>>1485608
>Блин, как научиться заумным вещам вроде cqrs es, паттернам, вроде саг? И другим вещам, которые стоят в списке требований в проектах на микросервисах?
>Есть ли курсы/книги, где идёт разбор на практике?

microservices.io

Ответы485840

63 1 окт, 00:18 63 1485838

>>1485733
>Есть ли смысл использовать TLS/SSL при взаимодействии между сервисами которые крутятся в кубере и не смотрят наружу?
Зачем вообще используют TLS/SSL? В основном, наверное, чтобы прятать траффик от MitM. Если у тебя в кластере кубернетеса находится негодяй, то, боюсь, MitM это наименьшая из проблем. Плюс внутри кластера же все должно быстро работать, надо минимизировать latency. А так у тебя в цепочке появляется лишний запрос, это невыгодно.

64 1 окт, 00:19 64 1485840

>>1485833
А, ещё книга Building microservices Ньюмена

65 1 окт, 18:07 65 1486355

>Given non-empty array nums of integers, return an array output such that output is equal to the product of all the elements of nums except nums.

Example:
Input: [1,2,3,4]
Output: [24,12,8,6]
Why?
output[0] = 234 = 24
output[1] = 134 = 12
output[2] = 124 = 8
output[3] = 123 = 6

Задачу решил (https://pastebin.com/ujrnMJB6), но возник вопрос - какой идеологически верный способ смержить два слайса (т.е. создать слайс, состоящий сначала из айтемов первого, а затем второго слайса)?
С одной стороны, append(after, before...) работает нормально, но если поменять слайсы местами - все сломаеться нахуй.
Очевидно, что тут дело в том, как именно брать слайс от слайса/массива, верояно тут дело в том, происходит ли алокация иннер аррея при взятии слайса.
С другой же, в случае с append(append([]int{}, before...), after...) наплевать на месторасположение аргументов, что намного более ошибкоустойчево, но выглядит как говно из жопы.
На какой из стульев сесть?

Ответы486531487533

66 1 окт, 20:46 66 1486531

>>1486355
А зачем тебе каждый раз делать аппенд?
Не проще ли черз двойной цикл
где будет
if j!= i {
result*=input[j]
?

67 2 окт, 03:36 67 1486820

>>1482493 (OP)
бля епта, установил себе этот го а дальше что??? как писать код? Я даже не могу хелло.го запустить, как вообще это работает?

Ответы486838

68 2 окт, 05:52 68 1486838

>>1486820
готур хуяч и не выебывайся

69 2 окт, 09:52 69 1486876

>>1482493 (OP)
*lambda expressions

А разве этого нет в первой версии? В Go есть же анонимные функции, не?

Ответы486880

70 2 окт, 10:19 70 1486880

>>1486876
Наверное, имеются в виду однострочные функции без слова func и без фигурных скобок. Типа такого:
((a, b) -> a + b)(1, 2)

Ответы486884

71 2 окт, 10:23 71 1486884

>>1486880

Просто синтаксический сахар короч в JS стрелочные функции хотя бы имеют смысл: они берут this из внешнего скопа, а не тот который им забиндили или global как в обычных function expressions

Ответы486885486904

72 2 окт, 10:23 72 1486885

>>1486884

*бля спойлер проебал

73 2 окт, 10:30 73 1486889

Алсо нахуя дженерики, если есть function expressions?

74 2 окт, 11:14 74 1486904

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

Ответы486913

75 2 окт, 11:25 75 1486913

>>1486904

> Да любые новые фичи в языках программирования поверх команд ассемблера - это синтаксический сахар
> синтаксический сахар

Значение знаешь?

Про то что стрелочные функции в Go 2 - просто синтаксический сахар, я ошибся: стрелочные функции возвращают значение выражения, которое записано после стрелки. Так что они отличаются и семантически от обычных анонимных функций.

Ответы486917

76 2 окт, 11:26 76 1486917

>>1486913

Синтаксическим сахаром стрелочные функции были бы если бы без return statement они не возвращали значение

Ответы486923

77 2 окт, 11:32 77 1486923

>>1486917

Бесполезный сахар. Лямбды нужны были джаве, так как их не было, джсу, потому что всех заебал this.
В го уже есть все необходимое, непонятно зачем нужна ещё одна запись для функций

Ответы486965

78 2 окт, 12:44 78 1486965

>>1486923

А Python зачем нужны тогда лямбда-функции, если контекст может быть только у функций класса?

Ответы487022

79 2 окт, 13:44 79 1487022

>>1486965

В питоне нельзя без лямбды определить функцию инлайн, в го - можно.

ПАМАХИТЕ 80 2 окт, 17:02 80 1487243

Гоанон, памахи!
Короче есть один веб скраппер и у него есть следующий стракт

type WebApi struct {
Api IApi
Database db.Database
}

У стракта есть поле Api, которое интерфейс для различных апих. У интерфейса должен быть метод Api.GetMappings()

Далее есть метод New(), который возвращает инициализированный

func New(apiProvider string, dbConf string) (WebApi, error){
...

provider = new(SomeApi) // SomeApi это тоже стракт с методами под конкретную апиху

...
return &WebApi{provider, dbase}, nil
}

Затем где-то в коде идёт вызов
...

mapp, err := web.Api.GetMappings(target)

...

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

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x98a819]

Чё я не так сделал то?

ПАМАХИТЕ 80 2 окт, 17:02 80 1487243

Гоанон, памахи!
Короче есть один веб скраппер и у него есть следующий стракт

type WebApi struct {
Api IApi
Database db.Database
}

У стракта есть поле Api, которое интерфейс для различных апих. У интерфейса должен быть метод Api.GetMappings()

Далее есть метод New(), который возвращает инициализированный

func New(apiProvider string, dbConf string) (WebApi, error){
...

provider = new(SomeApi) // SomeApi это тоже стракт с методами под конкретную апиху

...
return &WebApi{provider, dbase}, nil
}

Затем где-то в коде идёт вызов
...

mapp, err := web.Api.GetMappings(target)

...

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

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x0 pc=0x98a819]

Чё я не так сделал то?

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

81 2 окт, 17:24 81 1487259

>Чё я не так сделал то?
Выбрал го.

Ответы487268487290

82 2 окт, 17:29 82 1487268

>>1487259
АХХАХАХААХАХАХААХАХАХАХАХАХААХАХАХААХАХАХААХАХАХАХААХАХАХАХАХАХАХАХАХАХАХАХАХАХАХААХАХАХААХАХАХАХАХАХАХпошел нахуй чмо ебаное

83 2 окт, 18:03 83 1487290

>>1487259
Не ну серьзно. Я чета не могу самостоятельно понять в чём проблема.
Единственное чё нагуглил это вот
https://yourbasic.org/golang/gotcha-nil-pointer-dereference/
Но у меня всё так и есть вроде. Или мне надо как-то

(*WebApi).Api по новой определять или почему на него ссылка проёбывается?

Типа вот в методе New, я возвращаю готовый поинтер на WebApi

&WebApi{provider, dbase}

Вот provider тут как раз и есть это .Api, которое крашится при вызове.
Провайдер это provider = &SomeApi{}

Надеюсь в этот раз понятней объяснил.

Ответы487389

84 2 окт, 20:05 84 1487389

>>1487290

Нихуя не понятнее.
Почем нам знать, чо за хуйня под капотом?
Ошибка ясна? Ясна.
Садись за дебаггер и исследуй поток исполнения, пока не найдешь. где объебался.

Ответы487663

85 2 окт, 22:05 85 1487473

>>1487243
Скинь нормальный кусок кода с помощью https://play.golang.org

86 2 окт, 23:33 86 1487533

>>1486355
Очевидно, что за один проход найти произведение product, а потом за второй заполнить out = product/in

Ответы487538

87 2 окт, 23:37 87 1487538

>>1487533
Решение не сработает, если попадется 0

Ответы487540

88 2 окт, 23:38 88 1487539

>>1487243
WebApi - конкретный тип struct, func New возвращает WebApi, но return ты делаешь &WebApi, т.е. указатель. При этом ты утверждаешь, что сумел это скомпилировать, раз словил ошибку в рантайме. Какая-то черепашка пиздит

Ответы487663

89 2 окт, 23:39 89 1487540

>>1487538
ты прав, обработать этот случай, но всё ещё не повод для сложности выше линейной.

90 3 окт, 08:02 90 1487663

>>1487539
Да не, это вакаба съела звёздочку просто.
А проблемой я вчера разобрался частично.
На самом деле прав был этот анон >>1487389.
web.Api у меня было тупо nil'ом, тк инициализация происходила в init(), и умпешной не являлось. Только у меня там было почемуто написано fmt.Sprintf() вместо Println, поэтому ошибку я тупо не видел.
Короче я сам тупик ещё тот.

Ответы492212

91 6 окт, 15:46 91 1490142

>>1487243
Аноны, сам уже во всем разобрался, можете не помогать.

92 9 окт, 10:55 92 1492212

Тред мертв?

>>1487663
>к инициализация происходила в init(), и умпешной не являлось.
Я в таких случаях паникую, и мне похуй, что это вне main(). Ну, типо, если приложение ожидает инициализированные инстансы всякой хуйни, а там тупо nil'ы, то оно уподет все равно, но ты больше времени потратишь на поиски причины. Только с точки зрения суппортинга всего этого говна.

93 10 окт, 17:01 93 1493224

>Если ваши байт-слайсы содержат секретные данные (криптографические хеши, токены и т. д.), которые нужно сравнивать с предоставленной пользователями информацией, обойдитесь без reflect.DeepEqual(), bytes.Equal() или bytes.Compare(). Эти функции сделают приложение уязвимым к атакам по времени. Чтобы избежать утечки информации о времени, используйте функции из пакета crypto/subtle (например, subtle.ConstantTimeCompare()).

Нихуя не понял, объясните, пожалуйста, для медленных.
источник: https://habr.com/ru/company/mailru/blog/314804/#39

Ответы493476

94 10 окт, 21:36 94 1493476

>>1493224
Очевидно, что bytes.Equal для массива в 10 символов выполняется быстрее, чем для массива в 1000 символов. А значит, зная скорость выполнения функции можно оценить длину данных ( и иногда состав данных, типа есть ли там большое количество нулевых байтов и тд).
Чтобы этого избежать, есть специальные функции сравнения, которые работают одинаковое время для данных разной длины.

Ответы493857493871

95 11 окт, 13:53 95 1493857

>>1493476
>Чтобы этого избежать, есть специальные функции сравнения, которые работают одинаковое время для данных разной длины.
Это основано на хитровыебанных хешах? Или как?

Ответы493890

96 11 окт, 14:07 96 1493871

>>1493476
А при чем тут секретные данные?

Ответы493873

97 11 окт, 14:09 97 1493873

>>1493871
Например, это пароль.

Ответы493919

98 11 окт, 14:27 98 1493890

>>1493857
Самое простое (скорее всего реально сделано умнее) - всегда возвращать ответ через 0.1 секунды, неважно, сколько времени реально ушло.
Ну типа:
t := timer.start()
h := calculateHash()
t2 := t.stop()
if t2 < 0.1 { time.Sleep(0.1-t2)}
return h

Ответы493893

99 11 окт, 14:31 99 1493893

>>1493890
>всегда возвращать ответ через 0.1 секунды
Я то думал там какие-то хитровыебанные О(1) алгоритмы.

Ответы494047

100 11 окт, 15:01 100 1493919

>>1493873
Ну да, например. От них хеши нельзя брать, или что?

Ответы494050

101 11 окт, 17:04 101 1494047

>>1493893
Я хз, если интересно - посмотри и разберись. Пример с таймером я сам придумал.

102 11 окт, 17:07 102 1494050

>>1493919
Тебе же сказали уже, взять можешь. Но хэш от AAA и хэш от AAAAAAAAAAAA будет браться разное время, как и от AAA и ABC. В итоге, человек, замеряющий время, которое выполняются запросы на (к примеру) POST /password с разными паролями сможет довольно точно предсказывать, сколько и чего лежит в пароле. В итоге можно перебирать не все радужные таблицы а только часть.
Никто не будет заниматься таким мозгоёбством ради твоего занюханного самописного бложека, это правда. Но ради банка или гуглоаккаунта крупной компании - запросто.

103 13 окт, 15:10 103 1495601

А кто сейчас в России является самыми авторитетными программистами на Go? Дайте ссылки на их блоги, где они делятся лучшими практиками.

Ответы495852

104 13 окт, 19:04 104 1495852

>>1495601
Авторитетные программисты из России? Лол.
Мне всегда казалось, что русскоязычные разработчики хорошо разрабатывают, но плохо пиарятся, а европейцы пишут чаще пишут говнокод, но зато коллективно дрочат пиарятся на конфах, в блогах и прочих твиттерах. В итоге авторитет у них, так как о них больше слышно.
Оффтопик, но меня всегда бесило, что девяносто девять процентов контента какого-нибудь медиума или конфы - это вольный пересказ мануалов из официальных источников. И под каждым найдётся несколько англоязычных комментариев вида "очень круто, так держать!". Какой смысл хвалить халтуру, там нет ничего интересного. Лучше уж токсично заунижать чем засорять свои интернеты копроконтентом.

Ответы495855

105 13 окт, 19:06 105 1495855

>>1495852
Но вообще, по-моему гошный рейс-детектор, сборщик мусора и golangcimetalint (вроде) написаны разработчиками из России, можешь погуглить, как их зовут.

Ответы496062

106 13 окт, 23:45 106 1496062

>>1495855
Scheduler в го тоже написан русским проггером

Ответы496647

107 14 окт, 00:20 107 1496082

Эй, говнюки, как с использованием os/exec вызвать длинную bash-строку с пайпами? а то видите ли name string, arg ...string и он их как-то экранирует или хз что делает, короче, не работают с пробелами команды.

Ответы497045

108 14 окт, 19:56 108 1496646

При установке флагов через flag.String() в справке потом показывается после названия флага принимаемый тип string.
Вопрос: как убрать из справки эту инфу о типе string, чтобы осталось только название флага и заданное мной его описание? Мне нужен вид как для flag.Bool().

109 14 окт, 19:57 109 1496647

>>1496062
Автодополнялка gocode - тоже.

110 14 окт, 21:16 110 1496719

>>1482493 (OP)
Бляха-муха, посмотрел на картинку франкенштейна-гофера, и так расстроился, что чуть не заплакал. Ну вот нахуя они это делают?

Ответы496760497019507094

111 14 окт, 21:52 111 1496760

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

Ответы496856

112 14 окт, 23:20 112 1496856

>>1496760
> теперь сможет по возможностям соревноваться аж с пехепе и
В пехепе есть встроенные функции для того, что в говне пишется в тридать строк кода.

113 15 окт, 08:12 113 1497019

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

Ответы497437

114 15 окт, 09:14 114 1497045

>>1496082
https://golang.org/pkg/os/exec/#Cmd.StdoutPipe

Ответы497131

115 15 окт, 12:12 115 1497131

>>1497045
Спасибо. Я понял, Go нужен чтобы писать простые вещи в больше строк кода. Только не надо сравнивать с сишкой, сами же понимаете, что не та сфера применения.

Ответы497141

116 15 окт, 12:42 116 1497141

>>1497131
С этим всё понятно. Уносите.

Ответы497176

117 15 окт, 13:30 117 1497176

>>1497141

Ну давай разберём по частям, мною написанное по схеме с StoutPipe.

c1 := exec.Command("hostnamectl")
c2 := exec.Command("grep", "Operating System")
c2.Stdin, _ = c1.StdoutPipe()
c2.Stdout = os.Stdout
_ = c2.Start()
_ = c1.Run()
_ = c2.Wait()

Именно так оно работает. Я конечно понимаю, что могло быть хуже, но почему сначала c2.Start(), а потом c1.Run()?

Ответы497274

118 15 окт, 16:50 118 1497274

>>1497176
Очевидно потому что сначала надо включить ту часть пайпа, которая принимает данные (с2) а потом уже сами данные начать отправлять (с1)

119 15 окт, 20:57 119 1497437

>>1497019
Да уж, вот тут не могу поспорить. Подумаешь, пишу if err != nil, но зато не пишу на Java. А что теперь, сделают клон Java? :(

120 15 окт, 22:13 120 1497530

Java, Go или C#? Где вкатиться перспективнее?

Ответы497558497745

121 15 окт, 22:38 121 1497558

>>1497530
Bash

122 16 окт, 04:07 122 1497682

Как монетизировать знания Го? Вакансий нет, он нахуй никому ненужОн. Ну да, написали на нем докер, дальше что... Все равно все вакансии с богомерзкими джавой и макакаскриптом

Ответы497746

123 16 окт, 08:27 123 1497745

>>1497530
На Java и C# больше вакансий, Go лучше брать вторым языком.

Ответы521569

124 16 окт, 08:29 124 1497746

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

125 17 окт, 15:07 125 1498631

69 Кб, 766x51563 Кб, 1060x39345 Кб, 1026x354

>>1482493 (OP)
Товарищи суслики. Очень нужна ваша помощь. Пишу небольшую прослойку между двумя протоколами. Один из них gRPC. Дело в том, что сервер grpc не наш, а партнёров. Они дегенераты редкие и их документацией подтереться можно, разве что.
Собственно, к проблеме. Мне выдали сертификаты и прото-файл. Дело в том, что у меня не получается даже подключиться к их апи.
rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: authentication handshake failed: remote error: tls: handshake failure"
Подкидываю сертификаты к подключению и их токен кастомным заголовком. Ни в какую. ЧЯНТД?

Ответы498736

126 17 окт, 17:13 126 1498736

>>1498631
Всё, отбой. Разобрался. Если кому интересно будет, расскажу в чём проблема была.

Ответы499091499119

127 17 окт, 18:14 127 1498764

Goвно

128 17 окт, 20:48 128 1498860

1

129 17 окт, 23:48 129 1498961

>>1484255
>
бампаю вопросу. этот языкастый спрашиавет то что надо

130 18 окт, 08:08 130 1499091

>>1498736
Ну и зачем так делать? Сразу рассказывай тогда.
привет коллегам-денегератам

Ответы499121

77 Кб, 1177x965
131 18 окт, 09:49 131 1499119

>>1498736

Ответы499121

61 Кб, 1130x364
132 18 окт, 09:52 132 1499121

>>1499091
>>1499119
Проблема была в сертификатах, я их скинул в одну кучу, и думал, что как и с https проканает ключ к апи сначала получается на сервере аутентификации. Но нет. Пик 1. Делаем CertPool с одним единственным са-сертификатом и делаем отдельный сертификат из непосредственно сертификата и подписи. Потом создаём креды TLS и указываем полученные сертификаты в своих полях.
Так и завелось.
Ну не стукайте, всеж мы люди

Ответы499122

48 Кб, 1020x279
133 18 окт, 09:53 133 1499122

>>1499121
Второй пик отклеился

52 Кб, 1280x498
134 18 окт, 13:27 134 1499252

Ответы499330

135 18 окт, 14:43 135 1499330

>>1499252
Ну и причём здесь го? Картинка смешная, но это про кубернетес.
Если ты запостил это в тему того, что кубернетес "такой плохой", потому что написан на го, то:
- Он написан на го джавистами, которые написали джавоговно на го, отсюда и самопальные дженерики и неадекватная структура в коде кубов;
- Столько мемов про кубы не потому, что они плохо написаны, а потому, что это очень сложная (в смысле complex, а не hard) технология, которую нужно понимать и уметь правильно готовить.

Ответы499377

136 18 окт, 16:15 136 1499377

>>1499330
>Если ты запостил это в тему того, что кубернетес "такой плохой", потому что написан на го
Нет, просто я только в этом треде на бордах сижу. Никакой агрессии я не нес.
>- Он написан на го джавистами, которые написали джавоговно на го, отсюда и самопальные дженерики и неадекватная структура в коде кубов;
Про это вообще не знал, я из всего кода только мейкфайлы листал. И то только ради праздного интереса.
>- Столько мемов про кубы не потому, что они плохо написаны, а потому, что это очень сложная (в смысле complex, а не hard) технология, которую нужно понимать и уметь правильно готовить.
Именно об этом и картинка

137 19 окт, 12:44 137 1499897

16 лет,собираюсь выучить голанг чтобы устроится на работу(хотя б какую-нибудь)
Идет как почти первый язык.до этого изучал немного изучал си,ну так,пару книг(собственно поэтому к голангу и присмотрелся,синтаксис похож сильно и приятен глазу
Можете отговорить/одобрить это дело?Пока прошел только готур и вроде норм

Ответы499903

138 19 окт, 12:49 138 1499903

>>1499897
Посмотри на количество и качество вакансий в своем городе. Достаточно ли их? Есть ли вакансии для новичка без опыта в принципе?

Ответы499912

139 19 окт, 12:55 139 1499912

>>1499903
Сам из москвы,думаю с вакансиями тут проблем особо не будет надеюсь.Просто на днях наткнулся на мысль что сишка это конечно очень здорово,быстро там,можно много чего веселого писать,но работу я хуй найду на нее(если смотреть на вакансии то там нужны люди с опытом 10+ лет и знаниям системы на уровне руссиновича).Собственно из-за этого и встал выбор что теперь учить

Ответы499955

140 19 окт, 13:43 140 1499955

>>1499912
Го - вполне хороший язык для новичка, но у него действительно не так много вакансий по сравнению с джавой, и вряд ли среди них много новичковых.
Но в Москве скорее всего проблем не будет.
Единственное, я бы тебе не рекомендовал останавливаться только на го, в свободное время обязательно возьми изучи хотя бы базовый курс фронтенда и что-то более классическое вроде тех же С++ или там Java, чтобы разбираться в ООП и классических реализациях паттернов (я советую это новичка в независимости от того, какой язык они хотят учить, хоть питон, хоть го, хоть пхп).

141 19 окт, 14:06 141 1499986

у го легко поднять вебсокеты ?

Ответы500020

142 19 окт, 15:18 142 1500020

>>1499986
Сами вебсокеты - на изичах, пакет gorilla/websocket, если не путаю. Но обычно проблема в протоколах поверх сокетов, там целая пачка задач вида подтверждения получения запросов, подписок, избавления от дубликатов и так далее. Так что вариант "написания самому" лучше приберечь под конец (если это не пет-проект, конечно же).
На ноде я бы взял socket.io, но он, к сожалению, на го имеет крайне посредственные реализации.
Вроде бы, сейчас наиболее приличный пакет для этого - это centrifuge или centrifugo (не помню, кто из этих двоих), сам я его не юзал.
Ну и в го хорошо работает grpc, который вполне себе замена вебсокетам.

Ответы500056

143 19 окт, 16:23 143 1500056

>>1500020
еще вопрос,я ведь нуб
на го можно запилить еще регистрацию,доступ к БД,или ну его нах,и реализовать это на пхпа го оставить сокеты и немного логики для работы с юзерами?

Ответы500060

144 19 окт, 16:32 144 1500060

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

Ответы500264

145 19 окт, 21:50 145 1500264

>>1500060
На го нет единого фреймворка-комбайна, как в php. На го принято собирать свой проект по частям из мини-библиотек.
Всё, что ты хочешь, на го сделать можно, и довольно легко - ищи подходящие библиотеки (ищи в awesome-go) и используй.

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

Ответы500270

146 19 окт, 21:55 146 1500270

>>1500264
а что,сайт можно на го собрать по кускам,от роутинга,БД до сокетов?

Ответы500285

147 19 окт, 22:07 147 1500278

Вот вы говорите, что у вас многопоток реализован на синтаксисе, а чем он не реализован в джаве и шарпе с их Thread ?

Ответы500281500285500297

148 19 окт, 22:13 148 1500281

>>1500278
Говорят что в гошечке 500 долларовая макака может с потоками работать

Ответы500282

149 19 окт, 22:18 149 1500282

>>1500281
Фу.

150 19 окт, 22:30 150 1500285

>>1500270
Я именно это и написал. Сайт - это набор механизмов: веб-сервер, роутинг, работа с бд и т.п. Иногда эти механизмы дают тебе сразу в комплекте, как какой-нибудь Laravel. В го подход другой.

>>1500278
Многопоточность в го реализована не "на синтаксисе", а является частью самого го, так что да, с ней легче работать. И да, это хорошо.

Ответы500286500292

151 19 окт, 22:32 151 1500286

>>1500285
а есть к-л тутор,как это собрать?

Ответы500296

152 19 окт, 22:36 152 1500292

>>1500285
>а является частью самого го
А на тех языках это отдельная либа чтоли? Тоже часть базового пакета.
Или ты про то, что любая прога Го будет дефолтно многопоточна, а уж пользоваться им или нет решать тебе ?

Ответы500303

153 19 окт, 22:43 153 1500296

>>1500286
Нет, потому что на "подключение библиотек" нет стандартов, ни в одном из языков, что я видел. Это довольно тривиально, на самом деле, обычная работа с кодом. Как правило, в любом нормальном пакете есть примеры, как с ним работать.
Вся соль в том, чтобы правильно выстроить приложение из этих библиотек - и тут каждый действует на свой вкус и знания (большинство пишут говно, конечно).
Если ты новичок - то тебе определённо будет легче максимум работы выполнять в рамках фреймворка, гугля любой вопрос в стиле "how to do ... in Laravel". Где-то года через 2-3 при определённой удаче начнёшь разбираться, как в принципе стоит выстраивать архитектуру приложений.

Ответы500301500305

154 19 окт, 22:44 154 1500297

>>1500278
Потому что тупо треды - это низкоуровневая хуита без какой либо модели, и ты гарантировано с ними насосёшься если их будет больше трёх.То что Thread это типа класс - это вообще отдельная хохма, ведь тред != объект, как минимум потому что у них разное время жизни.
Короче именно из-за джявы с Thread возник миф что concurrency is hard. Это при том что есть языки типа Erlang и Go, где concurrency is easy.
К счастью, сегодня уже все чуть лучше, ведь есть Akka, которую даже в сисярп портировали. С другой стороны, любая привнесённая извне надстройка всегда хуже, чем если язык изначально задизайнен с этой фичей и она напрямую поддерживается платформой.

Ответы500322

155 19 окт, 22:46 155 1500301

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

Ответы500308

156 19 окт, 22:49 156 1500303

>>1500292
Да, если сравнивать го с php или тем же node.js, то ключевая разница будет в том, что php по умолчанию однопоточен, сам твой код запускается уже в рамках одного потока обработки запроса. По сути, веб-сервер создаёт поток, в котором уже запускается твой код. Пхп иногда надстраивают до ассинхронной работы (это не равно многопоточности, ты можешь погуглить разницу между этими двумя вещами) внешними расширениями, но я это воспринимаю скорее как извращения, потому что пхп изначально задизайнен так, чтобы выполнять всё в одном потоке, синхронно.

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

Ответы500325

157 19 окт, 22:50 157 1500305

>>1500296
а как обстоят дела с богатством этих библиотек на все случаи?

Ответы500310

158 19 окт, 22:51 158 1500308

>>1500301
Го эффективнее утилизирует ресурсы системы, да. А ещё он компилируемый и более низкоуровневый. Поэтому с точки зрения производительности он бесспорно эффективнее.
Но с точки зрения поиска работы нода скорее всего популярнее.
Смотри сам, что для тебя является "лучше",

Ответы500309

159 19 окт, 22:52 159 1500309

>>1500308
для меня лучше то,что я могу эффективно и быстро реализовать.

Ответы500313

160 19 окт, 22:54 160 1500310

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

161 19 окт, 22:57 161 1500313

>>1500309
Если я понял, то с php ты уже на каком-то уровне знаком. Это достаточно хороший язык с достаточно качественной экосистемой, чтобы иметь возможность сделать на нём что угодно за малым исключением. Поэтому я тебе рекомендую максимально делать на нём. То, что он не может (по сути, только вебсокеты) вынеси в го или ноду, только не усложняй. В ноду тебе скорее всего будет даже проще, кстати, потому что ты можешь взять socket.io (библиотека такая) и на сервере, и на клиенте и минимизировать свои усилия.

Ответы500315

162 19 окт, 23:00 162 1500315

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

Ответы500317

163 19 окт, 23:00 163 1500317

>>1500315
те для прототипирования

164 19 окт, 23:11 164 1500322

>>1500297
>из-за джявы с Thread возник миф что concurrency is hard.
Ну как бы треады там в 95 году появились, вот и хард. А гошке сколько лет.

165 19 окт, 23:16 165 1500325

>>1500303
А как обстоят дела с синхронизацией потоков? Когда два метода например обращаются к одному и тому же объекту?
ну getBalance() и makeDeposit() одновременно

Ответы500337500356

166 19 окт, 23:40 166 1500337

>>1500325
https://golang.org/pkg/sync/
https://tour.golang.org/concurrency/1

167 20 окт, 00:09 167 1500356

>>1500325
В двух словах, память общая, так что может быть конфуз. Решается правильным структурированием программы и примитивами из пакета sync.
Проходи tour of go, там всё есть.

168 20 окт, 22:41 168 1501045

Теперь честно: вам нравится этот язык?

Ответы501047501099501193501198501305501402501579502072

169 20 окт, 22:45 169 1501047

>>1501045
Английский > rust > python > говяжий в маринаде

Ответы501071

170 20 окт, 23:18 170 1501071

>>1501047
Ruby > scala > татарский > С > арабский > говяжий

Ответы501574

171 20 окт, 23:51 171 1501099

>>1501045
Мне нравится.

172 21 окт, 03:03 172 1501193

>>1501045
Да.

173 21 окт, 03:48 173 1501198

>>1501045
Без фанатизма

174 21 окт, 10:11 174 1501305

>>1501045
Я хотлел бы на нем работать. После ноды - как глоток свежего воздуха

Ответы501440

175 21 окт, 12:41 175 1501402

>>1501045
Синтаксис местами достаточно уродлив, но в целом ок.

Ответы501450

176 21 окт, 13:02 176 1501440

>>1501305
чем тебе сука нода не угодила?

Ответы501516501548

177 21 окт, 13:16 177 1501450

>>1501402
Синтаксис тут уебищен. Гугл не мог сделать что-то по-лучше?

Ответы501469

178 21 окт, 13:28 178 1501454

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

179 21 окт, 13:30 179 1501455

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

180 21 окт, 13:43 180 1501469

>>1501450
тогда велком ту эликсир

Ответы501474501487

181 21 окт, 13:50 181 1501474

>>1501469
>тогда велком ту эликсир
Работа есть? Мать жива будет?

Ответы501481

182 21 окт, 13:55 182 1501481

>>1501474
хватит,щас многие проэкты переписывают с руби на элик или пишут сразу с нуля

183 21 окт, 13:59 183 1501487

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

Ответы501488

184 21 окт, 14:00 184 1501488

>>1501487
относительно го-да,но в отношении большинства-даст просраться

401 Кб, 650x616
185 21 окт, 14:25 185 1501516

>>1501440
Пидорасы надоели, которые привыкли на своём фронте говнокодить и тащат свои уёбищные синглетоны в мой чистый бекенд. И блять типизации никакой не поддерживают. На один проект на node.js с тайпскриптом приходится десять написанных на чистой магии, когда хуй поймёшь что и куда приходит, в разных ситуациях - разные наборы полей.

Ответы501538

186 21 окт, 14:42 186 1501538

>>1501516
джавист порвался,несите следуещего

Ответы501546501550

187 21 окт, 14:44 187 1501546

>>1501538
Мамку свою неси, азаза

188 21 окт, 14:45 188 1501548

>>1501440
Всего 2:
>Cannot read property of undefined In JavaScript
>TypeError: "foo" is not a function
Рефакторинг в большом проекте на динамикоговне - та еще боль.
TS не помогает, когда колеги и тимлид игнорит его

Ответы501563

189 21 окт, 14:46 189 1501550

>>1501538
Словно кроме б-г мерзкой жабы нигде нет статичной проверки типов

190 21 окт, 14:56 190 1501563

>>1501548
ну значит они дебилы,что не используют такую простую,но важную фичу

191 21 окт, 15:07 191 1501574

>>1501071

Эльфийский > Английский > Python > JS > Go > PHP > C# > Java > ...

192 21 окт, 15:13 192 1501579

>>1501045

Хз. Минималистичное ООП, функциональные замыкания как в ЖС, но из-за строгой типизации приходится городить код не только для реализации бизнес-логики, но и для проверки и каста типов.

193 22 окт, 11:30 193 1502072

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

Ответы502091502194

194 22 окт, 11:55 194 1502091

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

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

Ответы502138

195 22 окт, 13:26 195 1502138

>>1502091
В жабу грин-треды завозят уже примерно 9 лет, и всё никак не довезут - project loom.
Грин треды и корутины - это свойство рантайма, а не просто либа, как большинство костылей на жвм. Вот есть у тебя котлин-корутины, и никакого толку от этого нет, так как их никто не использует кроме небольшего числа новых проектов. Условно гворя беря либу на го - ты её просто пользуешь и всё, она будет использовать те же каналы, те же корутины, тот же шедулер что и весь остальной код. Беря либу на жвм - ты берёшь или блокирующее легаси или очередной велосипед на тему асинка, который нужно будет дружить с основным велосипедом твоего проекта - kotlin.crorutines / vertx / zio / quasar / monix итд, тысячи их. Карочи, я к тому, что в плане удоства разработки конкаренси, JVM-based решения - хуйня и даже близко не стоят рядом с го.

Ответы502291529405

196 22 окт, 14:26 196 1502194

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

Ответы503141

197 22 окт, 16:55 197 1502291

>>1502138
>В жабу грин-треды завозят уже примерно 9 лет
Забавно, что изначально они там были, но потом их заменили на нейтив.

Ответы503146

198 23 окт, 10:06 198 1502739

Как вы думаете, на чем бэк запилить проще: на C++ с либами или на Go с либами?

Ответы502757

199 23 окт, 10:48 199 1502757

>>1502739
На том, что лучше знаешь. Но при равенстве имхо на го писать проще, потому что многие вещи за тебя решат GC и планировщик.

200 23 окт, 17:03 200 1503141

>>1502194
>> После свифта
А почему рот в говне? Как с тобой общаться то теперь?

Ответы503149

201 23 окт, 17:05 201 1503146

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

Ответы529112

202 23 окт, 17:06 202 1503149

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

Ответы503163

203 23 окт, 17:19 203 1503163

>>1503149
школоту порвало, дрочающую на красивые сигнатуры функций, найс.
смотри, уёба, го - простой язык, для решения сложных задач, там где важна архитектура, убогая сфивтомакака (как ты) даже не слышала о таком. всю свою блевотную ссанину, ты будешь запускать на сервисах реализованных на го, они будет деплоится в кубере, выполнять сервис дискваери через etcd или координироваться через consul, объединятся в сложные service mesh топологии через istio и собираться в докер контейнеры. го - по сути вершина промышленной разработки, нам трудно общаться потому-что ты не инженер, а просто напёрдыш, горстка чиркашей на теле IT, иди к аким-нибудь скалистам мерятся type safety для задача уровня сложности "идиот".

Ответы503168503478505612

204 23 окт, 17:25 204 1503168

>>1503163
> школоту порвало
> мелкобуквенная бугуртная простыня следом

205 23 окт, 21:35 205 1503368

Учу ваш чудо-юдо-язык около недели. Писал сегодня 2 часа один проект, ни разу не компилируя, только что запустил, а все работает! Ни одного бага! Екарный бабай, как так.

Ответы503790

sage 206 23 окт, 23:50 206 1503478

>>1503163
>Ряяяя я на своей процедурной дрисне ришаю сложные задачи ни то что вы на красоту кода дрочите!

Мде, где-то я это уже слышал. Риальне, goвноеды- новая, деградировавшая версия сидаунов.

Ответы503480503593

207 23 окт, 23:52 207 1503480

>>1503478
Ты потралить пришёл?

208 24 окт, 07:54 208 1503593

>>1503478
Этот совсем деградировал, уносите

209 24 окт, 14:17 209 1503790

>>1503368
В GoLand'е писал?

Ответы503868

210 24 окт, 15:55 210 1503868

>>1503790
Да, люблю эти гипертрофированные (но не настолько как студия) ИДЕшки.

Ответы503935

211 24 окт, 18:07 211 1503935

>>1503868
Они прикольные, и когда научишься ими пользоваться (и если стек подходящий, т.е. не js и не php), то действительно практически ничего не делаешь руками. Абсолютное каждое действие вроде "объявить метод", "добавить метод в интерфейс и все классы, что его реализуют", "вынести выделение в переменную или отдельный метод", "добавить инъекцию черех конструктор" и т.п. делается одним привычным сочетанием клавиш.
В итоге становится очень больно смотреть на неудачников особо упорных личностей, которые так мееедленно тыкают мышкой в файлики и вручную копипастят код.
мимо-анон

Ответы504013

212 24 окт, 20:15 212 1504013

>>1503935
Я раньше страдал долбоебизмом, писал в vim'е и обдрачивался. Потом симптомы постепенно пропали.

213 26 окт, 22:09 213 1505596

>>1483167
Не надо тут, даже сишка повыразительнее будет при необходимости.

214 26 окт, 22:16 214 1505605

>>1483153
Лол, а теперь посмотри на языки вроде хацкеля/окамла/раста/свифта и пойми, что переупрощенный синтаксис хорошо подходит для написания хелловорлдов и хуево подходит для всего чуть более сложного. По-настоящему интутитивный способ написания многопоточных программ -- в BEAM VM (эрланг, эликсир и еще какое-то лиспоподобие было). Не хочешь ебанутых проблем с мьютексами? Не используй, если проблему возможно переформулировать. Это ваше CSP подходит далеко не для всего.
Самый легкий синтаксис -- у лиспа, очевидно. И в го нихера не строгая типизация -- одна только конструкция interface {} с последующим приведениям к типам чего стоит. Говно, а не язык.

Ответы505727544017

215 26 окт, 22:22 215 1505612

>>1503163
Лол блядь, щас бы называть язык, пославший нахуй результат эволюции ЯП на протяжении лет 30-40, а затем спешно меняя штаны после обсера, вершиной промышленной разработки. Тебе там без нормальной системы типов и дженериков нормально живется, ребенок?

Ответы505966507347

216 26 окт, 22:34 216 1505631

>>1483153
Уже можно найти элемент в массиве или все ещё никак?

217 26 окт, 23:28 217 1505727

>>1505605
>По-настоящему интутитивный способ написания многопоточных программ -- в BEAM VM (эрланг, эликсир и еще какое-то лиспоподобие было)
бизнесу похуй. В гробу он видал твою БИМ. К сожалению, это реалии, за языком больше не может стоять дух авантюризма, присущий в 90-х. Пишем на том, что скажут.

Ответы505766

218 26 окт, 23:44 218 1505743

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

Ответы505759

219 26 окт, 23:53 219 1505759

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

Ответы505966

220 27 окт, 00:01 220 1505766

>>1505727
Лол, то-то воцап и дискорд на beam vm работают.

221 27 окт, 11:09 221 1505966

>>1505759
>>1505612

Почему вас так бомбит от go? Вас заставляют на нем писать? От зависти? Чтобы потешить ЧСВ?

Ответы505975

222 27 окт, 11:21 222 1505975

>>1505966
В каком-то смысле.
Бывает заходишь на проект на нормальном языке и вроде все норм, а потом выясняется что “А у нас тут Толян для этой задачи вьебал сервис на Go”, причём мотивация Толяна была только в том чтоб пописать на новом хайповом языке. И ты такой с fuuu-фейсом думаешь, мда теперь ещё поддерживать хуиту на недоязыке из восьмидесятых.

Ответы505977

223 27 окт, 11:22 223 1505977

>>1505975
А что ж это за компания, которая позволяет Толянам писать на чем они хотят?

Ответы505986

224 27 окт, 11:36 224 1505986

>>1505977
Да вот бывают такие, с плоской моделью и большой степенью автономности. Ну или если контора маленькая и CTO сам хипстерок еще тот.

Ответы505987

225 27 окт, 11:37 225 1505987

>>1505986
Тогда почему ты там?

Ответы505991

226 27 окт, 11:45 226 1505991

>>1505987
Я сьебал, но осадок остался.

227 27 окт, 11:53 227 1505995

сервер для простой онлайн игры на го можно запилить?

Ответы506017

228 27 окт, 12:36 228 1506017

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

Ответы506059506101

229 27 окт, 13:59 229 1506059

>>1506017
мне максимум на 100-200 игроков

Ответы506079

230 27 окт, 14:38 230 1506079

>>1506059
Для таких целей даже го оверкилл, на питоне запили, лол.

231 27 окт, 15:15 231 1506101

>>1506017
По каким причинам го не подходит для данной задачи также, как кресты или жаба?

Ответы506230506237

232 27 окт, 16:45 232 1506230

>>1506101
Потому что
1. В крестах ты вручную управляешь памятью, что ценно при гонке за производительностью.
2. Что джава, что кресты банально предоставляют нужный уровень абстракции, ты не будешь передавать в качестве аргумента объект типа interface {}.
3. Контроль за многопоточностью в таких приложениях нужен филигранный.

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

Ответы507366

233 27 окт, 16:50 233 1506237

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

Ответы506259

234 27 окт, 17:26 234 1506259

>>1506237
На самом деле я плюсовик, лол. Просто не хейчу другие языки и было интересно мнение по этому поводу. У меня приятель микросервисы на Го ебашит, вроде для своей ниши ЯП вполне нормальный, хз чего его хейтят.

Ответы506978

235 27 окт, 20:41 235 1506978

>>1506259
Люди любят хейтить тех, кто от них отличается. Гошники отличаются от джавистов, можно хейтить значит.

236 27 окт, 23:00 236 1507094

>>1496719
В комунити пришли рубисты, и им стало неприятно без своих привычных фич, вот и впилили.

Ответы507118

237 28 окт, 00:06 237 1507118

>>1507094
Да мимо уже, го не в тренде. Сейчас бы еще какой-нибудь лисп или кобол вспоминать.

Ответы507135

238 28 окт, 01:32 238 1507135

>>1507118
А что в тренде?

Ответы507162

239 28 окт, 04:42 239 1507162

>>1507135
SAS, Goviaji, APL - зависит от задачи.

240 28 окт, 06:24 240 1507175

Вкатываюсь в эту движуху. Есть русскоязычная литература?

Ответы507193

241 28 окт, 08:29 241 1507193

>>1507175
Дофига, гугли. Плюс, есть активное сообщество в слаке golang-ru.slack.com (хотя там не всем можно верить, есть наркоманы, дающие странные советы)

242 28 окт, 13:56 242 1507347

>>1505612
Уёба, хороший конкаренси куда важшее чем твои "нормальные" системы типов и гейнерики. На уровне архитектуры сложной системы вообще насрать на завитушки в типах, ты можешь оброчится хоть всякими HKT, но это тебе не поможет толком с оздании сложной системы типа кубера. На продвинутые типы дрочат как раз школьники и дети, которые красят кнопки либо академические аутисты, которые пишут наколеночные залепухи. Тебя, долбоёба, не смущает, что все самые сложные системы вообще на си написаны? а? (По типу ядра линукса). Перфоманс и конркаенси вот что важно, а не твоя хуебарга.

Ответы507444

243 28 окт, 14:03 243 1507366

>>1506230
Ты идиот? Ни в крестах, ни в жабе нет грин тредов, крестам это проститетльно - они системный язык. Жабе - нет. Разрабатывать на го приложухи где много работы с ИО в десятки раз удобнее, чем на твоей обосанной жабе, блядь, у них на го уже будет протип продукта, пока ты будешь ебаться с netty или котлин-корутинами, в и в итоге отсосешь по производительности и потреблнию памяти у гошного решения.

Ответы507445

244 28 окт, 15:14 244 1507439

Хули раскукарекались? Нужна как и платформа (производительность, конкарренси, всё такое), так и экосистема (синтаксический сахар, библиотеки).
Го только недавно стартовал, платформа хорошая, экосистема только развивается. Пройдёт время - разрабатывать будет также комфортно, как и на джаве, но производительнее.
А джава к тому времени, возможно, вырастет в противоположную сторону, таки выкатив грин-треды и прочее. Хотя ей сложнее, у неё легаси больше.

245 28 окт, 15:23 245 1507444

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

Ответы507498

246 28 окт, 15:24 246 1507445

>>1507366
> описываешь свои аргументы
> получаешь оскорбление в ебало
ох уж эти го-фанатики.
Вот скажи мне, что важнее всего в высоконагруженном игровом сервере? Ответ -- скорость отклика. Если у тебя пинг скачет как хохол, то игроки на твой сервак забьют и уйдут в более стабильную игру.
Игровые серверы хранят очень много информации в оперативной памяти именно по этой причине. Надеюсь, у тебя хватило бы мозгов не хранить состояние чего-то вроде раунда в кс на жестком диске.
Твои грин-треды не являются решением для всего, маня.
Если я правильно помню, в го многозадачность кооперативная, а это не есть гут, если тебе нужно детально контролировать каждый чих каждого игрока, разделяя состояние между потоками.
Да, у го будет выше производительность, чем у джавы, но ты проигнорировал аргумент о системе типов. Допустим, ребята на го накидают какой-то сервер быстрее, чем ребята на джаве/скале/еще чем-то. А насколько такой прототип будет расширяемый? Ты понимаешь, что если прототип не расширяемый и не поддерживает большую нагрузку, то про игру забудут через несколько дней?

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

Ответы508150

247 28 окт, 16:08 247 1507498

>>1507444
Я, кстати, писал выше:
> Он написан на го джавистами, которые написали джавоговно на го, отсюда и самопальные дженерики и неадекватная структура в коде кубов;
Там вообще забавная история произошла. Гуглы сначала написали альфу кубернетеса на джаве, а потом поняли, что нужно пиарить свой новый язык и менеджеры приняли решение заставить программистов переписать всё на го. Так как гугловых джавистов никто даже не собирался обучать гошечке, а им просто сказали "переделывайте", так что они просто пожали плечами, прочитали мануал по синтаксису го и написали кубер на го на джаве.
Соответственно, кубернетес написан отвратительно, но не из-за проблем с языком, а из-за менеджерских проблем (как и всегда, лол).

Но при этом чувак из >>1507444 какой-то странный. Любую систему можно написать на любом языке программирования, если он тьюринг-полный.

спорят два идиота-фанатика и засирают мой тред, достали уже
мимо-анон

Ответы507555508147

248 28 окт, 16:39 248 1507555

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

Ответы507587

249 28 окт, 17:03 249 1507587

>>1507555
Хз, вопрос к даунам, которые приводят его в пример.

250 29 окт, 10:14 250 1508147

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

Ответы508168

251 29 окт, 10:20 251 1508150

>>1507445
ты какую-то хуйню несёшь.
1. ничего не мешает тебе сделать низкую скорость отклика. Да, в го кооперативная многозадачность, но горутину можно убить, если там нет долгой блокирующей операции (через канал например). Опять же если тебе нужна вытесняющая многозадачность - велком ту эрланг, нахуй ты опять свой жвм велосипед катишь? не проще ли забивать гвозди молотком, а не отвёрткой?
2. у тебя самого хватило мозгов понять, что off-heap храннение доступно почти на всех мейн-стрим платформах?
3. схуяли не расширяемый? может твоя команда не умеет в проектирование? есть куча сложных и масштабных проектов, и ничего расширяются допиливаются.

Ответы508277

252 29 окт, 10:59 252 1508168

>>1508147
К примеру, вот прототип кубера (т.г. "Омега"), он на скале https://github.com/google/cluster-scheduler-simulator
Вот тут про это рассказывали, вроде https://archive.fosdem.org/2019/schedule/event/kubernetesclusterfuck/

253 29 окт, 11:09 253 1508179

Go Standard Packages https://golang.org/pkg/
Где можно прочитать русский перевод документации к стандартным пакетам?
Кстати, почему в Китае Go так популярен? Китайцы уже перевели документацию:
https://go-zh.org/pkg/
https://github.com/Go-zh/go

254 29 окт, 13:12 254 1508277

>>1508150
Чем больше вижу сообщений в этом треде, тем больше убеждаюсь, что go-кодеры самые отбитые и недалекие, лол.
Ты когда-нибудь писал по-настоящему сложный игровой сервер?
Или вообще что-нибудь, что одновременно должно терпеть высокие нагрузки и быть сложнее калькулятора? Про адекватную систему типов слышал? Нет? Оно и видно, лол. этот тезис ты, кстати, почему-то постоянно игнорируешь. Видимо, все же понимаешь, что тут даже заикаться бесполезно.
Про тот же кубер уже выше написали, что там эмуляция дженериков сделана, потому что го сам по себе ущербное поделие из 80-ых в худшем смысле.

И да, дай, пожалуйста, примеры высоконагруженных серьезных игровых серваков на го. Отмаза в стиле "никто не понимает величия го, вот жеж еретики" не принимается.

какие же большинство go-шников агрессивные дегенераты, пиздец просто

Ответы508318508436

255 29 окт, 13:45 255 1508318

>>1508277
Просто не спорь с этим поехавшим. У любого стека есть неадекватные фанатики.

Ответы508736

256 29 окт, 16:13 256 1508436

>>1508277
ты кроме своей "адекватная система типов" нихуя по делу сказать не можешь. игровые сервера... блядь, маня, мир не сходится в игровых серврах, какая-нибудь сложная распределённая реляционка типа cockorach или tidb куда сложнее твеого обосанного игрового сервера и предъявляет такие же требования по работе с ио и верменем отклика.

Ответы508736

257 29 окт, 22:08 257 1508736

>>1508318
Не могу не согласиться, но последние 5 копеек все же вставлю.

>>1508436
Мальчик, ну это слишком жирно. Сначала мы рассматриваем именно игровые сервера, а затем ты обсираешься и пытаешься сменить тему. Постирай штаны, а то так и будешь в говне ходить.
Распределенные субд -- из примеров могу сходу привести Cassandra (Java, есть клон ScyllaDB на крестах, сам догадайся почему), CouchDB, Mnesia (erlang), PostgreSQL (c), MongoDB (c++). И да, задачи все же разные, будь добр не смешивать.

А про систему типов я тебе как человек с еще тем образованием и опытом не зря говорю, поверь. Чем лучше система типов -- тем меньше нужно писать для по на базирующемся на ней языке тестов. Как пример: js который ближе к лиспу, чем к джаве, кстати против idris с его зависимыми типами.

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

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

258 29 окт, 23:47 258 1508824

Аноны, напомните или скиньте статью, почему так?
https://play.golang.com/p/HmwQ5e7-eke
>res: 3 3 3

Ответы508827

259 30 окт, 00:04 259 1508827

>>1508824
По факту это тоже самое, что и
https://play.golang.com/p/QNJ1MA5uddr

Ответы508828

260 30 окт, 00:08 260 1508828

>>1508827
Спасибо, вкурил вроде.

261 31 окт, 09:10 261 1509590

Подскажите студенту, желающему вкатиться в бекенд. Чем похожи и чем отлияабтся эрланг/эликсир и го, какие преимущества и недостатки у них относительно друг друга и относительно других языков для бекенда? Меня больше всего интересует разработка тех кусков бекенда, где максимальная нагрузка, много параллельных соединений, возможность широкого масштабирования системы. На чем пишут такие вещи для продуктов типа скайпа, твитча, и телеграма, и самое интересное бекенд ммо игр типа world of warcraft, lol, dota?

Ответы509598509601509602509639

262 31 окт, 09:48 262 1509598

>>1509590
ОЖИДАНИЕ
Пишешь высоконагруженные сервисы для всемирно известных продуктов, типа твитча или доты
РЕАЛЬНОСТЬ
Пишешь очередной аналог убера для говностартапа

263 31 окт, 09:55 263 1509601

>>1509590
У Го есть неоспоримое преимущество перед эликсиром/эрлангом : вакансий гораздо больше

Бэкенд твитча писался на го

Ответы575141

264 31 окт, 09:55 264 1509602

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

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

скайп - мало, что известно, в основном C++
твич - C, C++, Go
телега - вообще хз, если кто расскажет будет интересно
вов - в основном плюсы

Ответы509639509640510290

265 31 окт, 11:10 265 1509639

>>1509590
>>1509602
>Телега
Бекенд я код не нашел, но слышал что он на C++
Кор клиента (протокол, работа с локальной базой, вообще вся логика) написана тоже на C++
Клиенты (по факту только UI часть):
IOS: C 53.2% Swift 20.3% Objective-C 13.1%
Андроид: Java 42.8% C 36.9% C++ 14.6%
Десктопы - QT, почти 100% С++

Ответы510591

266 31 окт, 11:10 266 1509640

>>1509602
Скайп давно уже является оболочкой для msm, всё оригинально-скайповое из него давно вырезали.

267 31 окт, 11:16 267 1509644

Да, геймдев - что бек, что фронт - это плюсы, и пока альтернатив особо нет. Есть еще java и до-диез, но это не так популярно.
Но выбор языка - это вообще очень сложная вещь и там много факторов, кроме популярности.
В eve online, например, бекенд вооще на питоне написан

Ответы509703

268 31 окт, 12:44 268 1509703

>>1509644
>Но выбор языка - это вообще очень сложная вещь и там много факторов, кроме популярности.
Сроки+кадры, всё, ничего сложного нет тут.
Другое дело, если ты сам пишешь себе манясервер на 1,5 человек. Но тут уж хоть на хаскелле пиши, хуйлоада всё равно не будет нужно выбирать тупо самый знакомый инструмент.

Ответы509776

269 31 окт, 14:05 269 1509776

>>1509703
>Сроки+кадры, всё, ничего сложного нет тут.
Не знаю как со сроками в EVE было (наверно как везде - нужно на вчера)
Но вопрос - много ли ты знаешь python game dev'ов?

Ответы509800

270 31 окт, 14:33 270 1509800

>>1509776
>Но вопрос - много ли ты знаешь python game dev'ов?
А в чём проблема, по-твоему нужно специализироваться на питоне чтобы что-то на нём написать? Прямо куча байтойобов-плюсовиков не освоят за пару вечеров какой нибудь aio и не сварганят сервер?

Алсо, возможно там уже были бэкэндеры на питоне.

Ответы509935

271 31 окт, 17:13 271 1509935

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

Ответы509995

272 31 окт, 18:24 272 1509995

>>1509935
>а у него еще и магии очень много
Которая хоть и всегда медленно, но работает. И именно из-за этого это язык №1 для вкатывальщиков (и просто №1 по всем количественным статистикам).

273 31 окт, 23:24 273 1510290

>>1509602
Я уже вкатился, но не в настоящий бекенд. Пишу на ноде всякую муть под aws lambda.
Ты ошибаешься, я не хочу писать игры и геймдев мне не интересен, мне интересно делать хайлоад бекенд для массовых продуктов, в том числе для игр, как один из примеров. Интересны конкретно распределенные системы с реальной многопоточностью, параллелизмом, когда одновременно обрабатываются десятки тысяч двусторонних соединений, например. А не как кастрированный асинк авейт в JS с одним потоком.

Ответы510479

274 1 ноя, 10:51 274 1510479

>>1510290
> кастрированный асинк авейт в JS с одним потоком.
У меня для тебя плохие новости, ты не вкатился бекенд. Даже текущий инструмент не освоил, нода многопточна за счёт воркеров, в которых потом используется модель обмена сообщениями, да, у тебя нет аналога util.concurrent из жабы, но данная модель тоже популряна и очень живуча.
нодовская реализация промисов вообще топовая, там самый стабильный и оптимизированный event loop на рынке. Так-то если умень готовить и не увлекатсья абстракиямию можно на NIO задачах получать впечатляющие результаты и махаться с гошкой и netty по перфомансу.

Ответы510493510815

275 1 ноя, 11:12 275 1510493

>>1510479
Таки ты не совсем прав. Во вполне определённом классе задач (собственно, параллельные действия на уровне логики) нет смысла сравнивать ноду и го, потому что это эвент луп против множества потоков. Например, если мне захочется пробежать массив из триллиона элементов и почему-то он будет у меня в памяти - в го я могу делать это, к примеру, в два потока (с середины и с начала), а в ноде только в цельный проход от начала и до конца, и ничего ты тут не сделаешь.
Другое дело, что по моему опыту это не особенно часто нужно, большая часть бизнес-логики вполне синхронна и её вполне быстро обрабатывает хоть нода, хоть го, хоть прости-господи пыха.
Но это опять же смотря что писать, потому что большая часть той самой бизнес-логики это перекладывание данных из интернетов в базу и наоборот.
Соответственно, если речь идёт о сервере для обсчёта каких-то сложных игровых механик (те же бои в еве), то го или та же джава тебе подойдут лучше, чем нода, за счёт лучшей утилизации ресурсов.
Тут нужно чётко понимать грань, где и какой инструмент использовать, потому что для 95% проектов подойдёт что угодно, там и близко нет таких нагрузок. В таких случаях лучше брать то, где ты быстрее выкатишь фичи и получишь $$$, джаву, пыху, ноду или ещё что.
мимо-анон из стартапа по обработке данных, пишем движок на го, а админку и прочий биллинг на пыхе

276 1 ноя, 13:45 276 1510566

>>1483153
Это у вас аутотренинг такой?

72 Кб, 689x536
277 1 ноя, 14:12 277 1510591

>>1509639
Пиздабол!

Ответы510752

278 1 ноя, 17:14 278 1510752

>>1510591
А в чём он спиздел-то?
У тебя списочек устаревший кстати, новая версия телеги для яблочных девайсов уже на свифте
https://github.com/overtake/TelegramSwift
А джавы даже на андроиде меньше половины
https://github.com/DrKLO/Telegram
кекус.

Ещё они недавно опубликовали исходники TON
https://github.com/ton-blockchain/ton
которая написана на плюсах, как и всё её окружение
https://github.com/desktop-app
что как бы намекает на чём написан бэк телеги.

Ответы510826

279 1 ноя, 18:26 279 1510815

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

Ответы510855513609

280 1 ноя, 18:44 280 1510826

>>1510752
>на чём написан бэк телеги
на скале?

Ответы511412

281 1 ноя, 19:28 281 1510855

>>1510815
А ноду-то ты каким хуем сюда приплёл?
>дискорда
Судя по их гитхабу у них вообще бэк на элексире (+немного питона), и ботлнеки на расте/плюсах, хипсторы 80 lvl.

282 2 ноя, 16:58 282 1511412

>>1510826
на крестах, алло

283 2 ноя, 17:14 283 1511423

Вам правда нравится паскалевский синтаксис?

Ответы511672511696560453

88 Кб, 271x331
284 2 ноя, 23:48 284 1511672

>>1511423

285 3 ноя, 00:58 285 1511696

>>1511423
>паскалевский
го сиподобный

Ответы511768511820

286 3 ноя, 04:11 286 1511768

>>1511696
:=

287 3 ноя, 05:55 287 1511780

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

Ответы511960

288 3 ноя, 06:10 288 1511781

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

289 3 ноя, 10:13 289 1511820

>>1511696
Вохвращаемый тип после названия функции

Ответы512424

290 3 ноя, 13:34 290 1511960

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

>>1483053
Проиграл с местных даунов. Лучше иди и отнаследуй абстрактную виртуальную фабрику фабрик, а то чо у тебя код недостаточно оопшный и магический..

291 3 ноя, 16:48 291 1512167

>>1483171
Пиздец, это чё рофл? С такой логикой на паскале или няшной вообще всё кристально ясно, а на говне как раз нет ясности, потому что GC затуманивает предсказуемость работы.

292 3 ноя, 22:08 292 1512424

>>1511820
это не мешает ему быть сиподобным, свифт и пхп тоже имеют возвращаемый тип после функции, например

Ответы512783

293 4 ноя, 12:46 293 1512783

>>1512424
Но это говноязыки.

Ответы513047

294 4 ноя, 13:24 294 1512808

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

Ответы513228513466513651

295 4 ноя, 17:00 295 1513047

>>1512783
Что предъявишь свифту как языку? Ты ведь не просто так вскукарекнул без знаний о нем, так ведь?

Ответы513128513163

296 4 ноя, 18:11 296 1513128

>>1513047
Он ото всех понемногу взял и в итоге вода.

Ответы513162

297 4 ноя, 18:53 297 1513162

>>1513128
Что конкретно в свифте ты считаешь водой?

298 4 ноя, 18:54 298 1513163

>>1513047
для педиков язык просто и все

Ответы513255

299 4 ноя, 20:00 299 1513228

>>1512808
С какой именно бд?

Ответы513363

300 4 ноя, 20:27 300 1513255

>>1513163
Эпплогеи, ха-ха))0

Ответы513344

301 4 ноя, 21:51 301 1513344

>>1513255
Да,педики прикинь))реально на макоси(хуй саси) сидят и на своем свифте пидорском пишут хахаха)))

302 4 ноя, 21:54 302 1513345

>>1482493 (OP)
>смеемся над джавистами, которые не могут жить без ексепшенов
Но в 2.х ведь завезли. Кстати нахуя? Ручная обработка ошибок ведь надёжнее

Ответы513429

303 4 ноя, 22:17 303 1513363

>>1513228
с дефолтной (постгре)

Ответы513368

304 4 ноя, 22:20 304 1513368

>>1513363
Есть официальный драйвер. Дальше можешь или Gorm навернуть или прямые запросы в базу писать

305 4 ноя, 23:56 305 1513429

>>1513345
Не завезли. Читай новости.

306 5 ноя, 00:56 306 1513466

>>1512808
Использую github.com/jinzhu/gorm
Я не матерый разработчик, а июнь, но вполне работаю в продакшене.

Ответы513651

307 5 ноя, 11:09 307 1513609

>>1510815
напишешь, нода довольно крутая штука, просто нужно уметь готовить. paypal на ноде, netflix начинает её всё больше внедрять.

Ответы514206524934

308 5 ноя, 12:15 308 1513651

>>1513466
Горм - на редкость херовая штука. Самый главный его минус в том, что он магический, ты не сможешь предсказать, что он сделает. К примеру, угадаешь, что будет, если я вызову db.Delere(user{})? Не угадаешь, он дропнет тебе всю таблицу.
И вместо джоинов он селекты использует и мерджит данные на своей стороне (и довольно медленно).
Его можно использовать для прототипирования, чтобы быстренько круд навернуть и всё такое, но не более.

>>1512808
Sqlboiler пока что выглядит наиболее идиоматичным для го.

мимо

Ответы514000514359

309 5 ноя, 20:11 309 1514000

>>1513651
Вот тоже много чего плохого про gorm слышал, поэтому и спросил. спасибо за ответ

310 5 ноя, 23:23 310 1514206

>>1513609
Я не понимаю. Там же нету настоящей многопоточности.

Ответы514392

311 6 ноя, 03:59 311 1514359

>>1513651
Спасибо, посмотрю.
Вообще, не люблю ORM, но заставляют. мимо июнь

312 6 ноя, 10:01 312 1514392

>>1514206
а что есть настоящая? шареные между тредами структутры? тогда в эрланге её тоже нет, лол.

Ответы514402

313 6 ноя, 10:32 313 1514402

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

Ответы514418

314 6 ноя, 11:01 314 1514418

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

Ответы514428

315 6 ноя, 11:28 315 1514428

>>1514418
Нодоперделка это сраный FSM, каждый раз добавляя новый колбек в этот FSM, ты замедляешь общую скорость работы. Т.е. оно может работать быстро пока у тебя там 3.5 ивента, но потом треды тупо быстрее. IO может быть параллельным, но так как нода работает с одним потоком, она в него не может. И, очевидно, решения сделанные на уровне балансировщиков будут медленней встроенной многопоточности.
Да и нахуй эта наркомания, считай тебе надо запустить по инстансу на каждое ядро, все это сбалансировать сначала в рамках одной машины, настроить между ними пабсаб с каким нибудь рэбитом, потом обеспечить общий сторейдж добавив какой нибудь рэдис, потом нужен фронт сервер для балансировки типа нджинкса и ещё хуй пойми что, в то время как в go/эрланге это все сразу встроено и ничего делать не надо.

Ответы514447514547

316 6 ноя, 12:16 316 1514447

>>1514428
Не скажи, балансировщик к примеру нужен внешний, потому что между инстансами или кластерами тоже нужно балансировать запросы. Тем более, l7. Тем более, балансировка сокетов, grpc и им подобных постоянных соединений.

317 6 ноя, 14:32 317 1514547

>>1514428
Лол, оно может работать когда у тебя и миллионы эвентов. Паттерн эвент-лупа, как раз на это и расчитан. поэтому принципу работают очень высокопроизводительные сетевые штуки типа nginx, envoy, и многие другие. Луп эфективнее грин тредов для сырого ио.

Ответы514558

318 6 ноя, 14:50 318 1514558

>>1514547
Чего? А где пруфы?
Как бы по умолчанию несколько воркеров эффективнее одного, при отсутствии блокировок.
мимо

Ответы514580

319 6 ноя, 15:19 319 1514580

>>1514558
ну так никто тебе не мешает запустить несколько воркеров, хоть процессами, хот ьв пределах одного процесса.

нжинкс это пул воркеров с лупами
https://www.nginx.com/blog/thread-pools-boost-performance-9x/

https://habr.com/ru/post/123154/

Ответы514607

320 6 ноя, 15:45 320 1514607

>>1514580
Я спрашиваю, где пруфы на "Луп эфективнее грин тредов для сырого ио".
Про nginx:
Во-первых, nginx - это пул воркеров, а не единый воркер с лупом. Соответственно, чтобы утилизировать все процессоры, ты просто запускаешь сам nginx и он поднимает воркеров по числу процессоров. С нодой тебе придётся поднять инстансов ноды по числу процессоров. Понимаешь разницу между воркерами одного процесса (тем более, написанного на плюсах и не имеющего значимого рантайма) и несколькими процессами v8?
Далее, для nginx эта архитектура оптимальна, поскольку его задача - это проксировать запросы из очереди апстрима в куда-то и проксировать ответы обратно, оно всё строго синхронно, соответственно нечего распараллеливать.
Для бизнес-логики всё можеть быть не совсем так.

Я к чему виду, нода при прочих равных будет дороже goшечки (интерпретация, оверхед на динамическую типизацию, оверхед на рантайм, оверхед на сборку мусора, оверхед на прочие инстансы), которая будет дороже c++ (за счёт рантайма, планировщика и сборки мусора).
Вот когда в v8 наконец-то добавят нормальный шаринг ресурсов между инстансами, чтобы получился эдакие application server - вот тогда мы вернёмся к разговору о сравнении потребления ресурсов между гошечкой и нодой. И то, я сразу предскажу, что будет: на синхронных тестах всё будет +-сравнимо за счёт оптимизаций на уровне v8, а на паралелящихся алгоритмах типа map-reduce гошечка затащит.

Ответы515864

321 7 ноя, 22:17 321 1515864

>>1514607
> С нодой тебе придётся поднять инстансов ноды по числу процессоров.
А как же кластеры? https://nodejs.org/api/cluster.html
Или это оно и есть?

Ответы516113

322 8 ноя, 10:28 322 1516113

>>1515864
там по разному можно
кластеры - это процессы. воркеры - это треды в пределах одного процесса.

323 8 ноя, 10:57 323 1516124

Хз, лучший язык в мире это кобол, все же.

Ответы516302

324 8 ноя, 15:20 324 1516302

>>1516124
Java - это кобол 21 века.

325 9 ноя, 15:46 325 1516916

>>1482493 (OP)
Какую библиотеку для обвязки ncurses под Go нужно брать? Нашёл эту: https://github.com/rthornton128/goncurses
Но в ней ни документации, ни активности.

Ответы516923523848

326 9 ноя, 15:53 326 1516923

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

Ответы516938

327 9 ноя, 16:04 327 1516938

>>1516923
Видел статью на хабре про красивую консольную утилиту, которая как раз на go. Но сейчас не могу найти ни названия той утилиты, ни статьи. Есть идеи, где искать?

Ответы516955

328 9 ноя, 16:14 328 1516955

>>1516938
Всё, нашёл. Sampler называется

329 11 ноя, 07:28 329 1518407

33 Кб, 543x49910 Кб, 621x109

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

Зачем b присваивается новый срез такой же вместимости (без этого не работает)?

Ответы518411

330 11 ноя, 07:39 330 1518411

>>1518407
Второй вопрос снимаю, это какой-то даун написал, тут важно просто возвращать правильную длину

Ответы518413

331 11 ноя, 07:42 331 1518413

>>1518411
Первый тоже снимаю. Передаётся копия объекта, но ссылается на оригинальный массив.

332 11 ноя, 22:19 332 1518974

Что бы вы выбрали для однорыльного (на первое время) веб говна коего десятки тысяч проекта с получением с него прибыли в перспективе: модный молодежный голанг или плейн олд джаву со всей ее устоявшейся экосистемой?

Ответы518979518986

333 11 ноя, 22:41 333 1518979

>>1518974
То, что ты лучше знаешь.

Ответы518983

334 11 ноя, 22:49 334 1518983

>>1518979
А если опустить этот момент?

Ответы518997

335 11 ноя, 22:52 335 1518986

>>1518974
Для однорыльного я бы брал голанг. Мне кажется, джаву надо брать, если проект на человек 10 и тд.
Плюс, насколько я понимаю, в голанге проще накидать прототип, чем в джаве

336 11 ноя, 23:15 336 1518997

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

337 12 ноя, 06:12 337 1519099

Я в осадке.
https://play.golang.org/p/smcH6eZeEOH

Чё не так то?

Ответы519109

338 12 ноя, 07:15 338 1519109

>>1519099
https://play.golang.org/p/HcEtP8Ze-Tr

Ответы519113

339 12 ноя, 07:35 339 1519113

>>1519109
Спасибо огромное, друг! Только я всё равно не понял почему выдавало стек оверфлоу.

Ответы519158519181

340 12 ноя, 09:45 340 1519158

>>1519113
Я думаю, что дело в том, что когда ты вызываешь fmt.Println() для ошибки, оно в первую очередь проверяет, есть ли у структуры метод Error(), и если есть, то вызывает его. По факту, ты создал бесконечную рекурсию вызовов метода Error()

341 12 ноя, 10:30 341 1519181

>>1519113
У тебя при выводе ошибки была ошибка, которая вызывала функцию ошибки, в которой ошибка, которая при ошибке вызывала функцию ошибки. А вообще я только два дня вкатываюсь, так что не ебу, как такие вещи ловить.

342 12 ноя, 11:21 342 1519208

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

34 Кб, 841x358
343 12 ноя, 11:34 343 1519215

Это жирный рантайм?

Ответы519518

344 12 ноя, 11:37 344 1519217

Есть ли в golang конструция по типу сишной
(void) argv
чтоб компилятор не ругался о том, что переменная не используется?

Ответы519218519270

345 12 ноя, 11:40 345 1519218

>>1519217
После объявления foo на следующей строке пиши _ = foo
Для аргументов функций/методов это делать не нужно

346 12 ноя, 13:02 346 1519270

>>1519217
Или сразу func Test(_ argv) {//...}

347 12 ноя, 14:05 347 1519294

Кек, гугл уже 10 лет как форсит goвно, а в http/2 оно так и не научилось: https://github.com/golang/go/issues/32441
Слушаю ваши оправдания, goвноеды.

Ответы519335519337

sage 348 12 ноя, 15:03 348 1519327

У вас нет дженериков ахахахахах Shit<Go> poop;

Ответы519335

349 12 ноя, 15:06 349 1519335

>>1519294
>>1519327
а че так много школоты к этому треду липнет?

Ответы519450

350 12 ноя, 15:07 350 1519337

>>1519294
Так же, как и браузеры, что уж тут. Зато поддерживаемый хромом https://en.wikipedia.org/wiki/QUIC мало где кроме GO заимплеменчен

Ответы519437

351 12 ноя, 17:55 351 1519437

>>1519337
> Так же, как и браузеры, что уж тут.
Дядя, проснись, ты обосрался: https://caniuse.com/#search=http2

Ответы521519

352 12 ноя, 18:13 352 1519450

>>1519335
А кто на дваче ещё сидит, кроме школьников и странных личностей? задумайся про себя, кстати
Я как в /pr не зайду, так охуеваю от местных знатоков. Где тебе ещё расскажут, что архитектура нинужна, менджеры зависимостей нинужны, типизация нинужна, а чёткие пацаны херачат невероятный JS-код на кончиках пальцев через vim прямо в продакшен.

Ответы521520

353 12 ноя, 19:23 353 1519493

Добрый вечер, аноны.
Такой вопрос, хочу написать фильтрующий прокси-сервер чтобы вкатиться в goршок. Оно то и понятно, чтобы нафигачить полурабочий пет проект можно любые технологии заюзать. Но вот я задумался, если по уму все делать, что лучше будет. Пилить все на го, или лучше запилить плагины для nginxa(что на го в целом тоже возможно)? Что по-вашему будет лучше, чтобы держать большой трафик с возможностью снифать его по https.

Ответы519541

sage 354 12 ноя, 19:27 354 1519497

ГОвно обосратое из проприетарной помойки гугла
сажи

355 12 ноя, 19:52 355 1519518

>>1519215
Смотря что понимать под жиром рантайма. Если сравнивать с жвм/дотнетом — целой вм и всего обвеса к ней очевидно, нет. Если же сравнивать с нативными языками без рантайма вообще вроде сей/растов/итд — то да, ебать жирный (и мусор собирает, и каждое обращение по поинтеру менеджерит, и потоки полностью контроллирует и тд).

356 12 ноя, 20:13 356 1519541

>>1519493
Зависит от задачи. Но вообще сейчас для всяких микросервисов и сервис мешей го берут: envoy, traefik, krakend.
Но nginx тоже очень даже норм и скорее всего даже будет производительнее (в простых случаях).

Ответы519776

357 13 ноя, 00:30 357 1519776

>>1519541
Ок, спс за ответ.

Назрел такой вопрос, мб кто знает. Если я хочу сделать так, чтобы многие сайты могли подключиться к моей проксе (тип как incapsula), то как в этом случае поступать с https трафиком. У каждого сайта свой сертификат, мне требуется "изымать" оригинальные? или хватит свой подписанный собой. Так же интересует вопрос, вот я обработал запрос по https, проксировать его на другой сайт надо тоже по https? или забить и по http отправлять?

Ответы519786519789

358 13 ноя, 01:08 358 1519786

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

359 13 ноя, 01:10 359 1519789

>>1519776
Если брать обобщенно, то я бы добавил включение ssl и cертификатов опционально

360 13 ноя, 14:33 360 1520051

Ананасы, помогите советом. Хочу глубоко вкатиться в exploit development, есть неплохвя база для этого (Си, кресты, асм х86, знания основ ОС, базовый уровень реверсинга и эксплуатации простых уязвимостей). Сразу говорю, отговаривать меня от этого не надо, в моей стране это более востребовано, чем в странах СНГ, и в этом работают здесь далеко не невыездные тарищи майоры за 40к рублей в месяц.
Суть: как сделать так, чтобы хотя бы пригласили на собес, а не выкинули резюме в мусорку при подаче оного? Подрочить pwnы на HackTheBox? Или сходить на CTFы пару раз? Ведь на реальных примерах это не показать, ибо, ясень-пень, незаконно.

Ответы520091520501520729

361 13 ноя, 14:41 361 1520063

Блять, я случайно не в тот тред написал, земля мне сегфолтом

362 13 ноя, 15:07 362 1520091

>>1520051
Насколько я знаю, конторы сканят участников всяких хакер-фестов на предмет найма.

363 13 ноя, 23:04 363 1520501

>>1520051
Вкатись c Linux Kernel Development

364 14 ноя, 11:21 364 1520729

>>1520051
Израиль?

Отец 365 14 ноя, 23:06 365 1521353

я правильно понял, что interface{} - это не что иное как void ptr, только не ptr?

Ответы521356521359521531

Отец 366 14 ноя, 23:13 366 1521356

>>1521353
не не не, я имел interface как раз void*, только с метаданными

Ответы521357

Отец 367 14 ноя, 23:15 367 1521357

>>1521356
или не поинтер, а хуй его знает, посмотрю в спецификации короче

sage 368 14 ноя, 23:22 368 1521359

>>1521353
Интырфейс это говно!

Ответы521362

7 Кб, 244x148
Отец 369 14 ноя, 23:37 369 1521362

>>1521359
Ты походу прав, это говно внезапно может менять свой тип:
Вывод кода с закоментированной `sn = "pizda"`:
hui hui
pizda pizda

Вывод с раскоментированной строчкой:

Ответы521364521368

370 14 ноя, 23:38 370 1521364

>>1521362
>Вывод с раскоментированной строчкой:
panic: interface conversion: interface {} is string, not *string

Ответы521535

371 14 ноя, 23:40 371 1521368

>>1521362
Хотя мы тут явно создаем новый interface{} через присвоение sn нового значения, так что все норм

Ответы521369

372 14 ноя, 23:41 372 1521369

>>1521368
Хотя с херали

373 15 ноя, 11:35 373 1521519

>>1519437
Хуя себе! Т.е. gRPC можно уже и в браузерах использовать?

374 15 ноя, 11:36 374 1521520

>>1519450
>Прямо на проде под нагрузкой

375 15 ноя, 11:44 375 1521531

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

376 15 ноя, 11:47 376 1521535

>>1521364
Интерфейсное значение - это всегда поинтер к оригинальному значению. Если оригинальное значение уже поинтер - используем его, иначе - берем поинтер от оригинального значения.

377 15 ноя, 12:18 377 1521569

>>1497745

378 15 ноя, 14:04 378 1521661

Анон, почему выведется 3, а не 1? int тоже не измненяемый тип данных и скопируется, если ему присваивать?
https://play.golang.org/p/j2aTxgb-Epz

Ответы521669521948

379 15 ноя, 14:20 379 1521669

>>1521661
Могу тебе напиздеть, но как я это понимаю:
- В го переменные выглядят, как <имя>-<тип>-<адрес памяти, где лежат данные>;
- Соответственно, когда ты что-то передаёшь "по указателю", ты создаёшь новую перменную, указывающую на тот же адрес памяти, что и "старая";
- Таким образом, когда ты говоришь "i = &x" ты перетираешь значение "адреса" у локальной переменной и потом пишешь в новый адрес; Старый адрес остаётся нетронут.

Ответы521820

380 15 ноя, 17:19 380 1521820

>>1521669
Вот этот хуй писал ещё https://dave.cheney.net/2017/04/29/there-is-no-pass-by-reference-in-go , т.е. передачи по указателю, как в си на самом деле нет, а передаётся копия адреса, я понял. спасибо.

Ответы521838

381 15 ноя, 17:29 381 1521838

>>1521820
Бля, в Си тоже такого нет, вот я фуфел.

Ответы521948

382 15 ноя, 19:19 382 1521948

>>1521661
>>1521838
В си тоже самое получится, хули не так то, ты же &x присваиваешь указателю (который сам по себе локальный, а адрес имеет в качестве значения), а не памяти на
который он указывает.

383 18 ноя, 06:28 383 1523848

>>1516916
Не рекомендую использовать эти биндинги - они глючат, когда начинаешь что-то более-менее сложное писать. Лучше бери нативные либы типа tcell.

384 19 ноя, 03:22 384 1524447

Профессор компьютерных наук поясняет, почему он выбрал Go вместо питона и жабы:
https://yourbasic.org/golang/advantages-over-java-python/

Ответы524455

385 19 ноя, 03:55 385 1524455

>>1524447
>профессор
@
>разрабатывал на жабе 20 лет
@
>рандомный долбоёб в треде говна
@
>АРЯ ПРОФЕСАР))ЖАБАПИТОНАГАВНО А ВОТ ГОШЕЧКА НЯШНАЯ)))

sage 386 19 ноя, 07:15 386 1524472

> статическая типизация
> нет дженериков
> res, err := doSomeShit()
> if err != nil ...
> нет лямбда выражений
> для итерации по массиву используем цикл (привет из 1962 года)
> нет классов и ооп
> нет нормальных фреймворков
> указатели

Ответы524502

387 19 ноя, 09:43 387 1524502

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

388 19 ноя, 10:36 388 1524516

Ёбаным голангиндусам, напоминаю разницу. Зоопарк вопросов:
- где вывод типов?
- где шаблоны?
- где оптимизация хвостовой рекурсии?
- где fold, map и хотя бы фильтры? Даже в ебаном шарпе есть LINQ
- где расширения методов класса?
- где перегрузка параметров функций?
- где нормальное потребление памяти приложением?
- где перегрузка операторов?
- где оптимизиции хвостовой рекурсии?
- где ленивость?
- где нормальная реализация модели акторов? Каждый разработчик вынужден с нуля лепить свою реализацию обмена сообщениями между горутинами
- где человеческая типизация с возможностью объявить канал сообщений нескольких типов?
- где человеческая инкапсуляция? Единая область видимости на весь пакет, охуенная идея
- где нормальная обработка ошибок?

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

Ответы524544

389 19 ноя, 11:37 389 1524544

>>1524516
Ещё раз, съеби нахуй отсюда.

> где нормальная реализация модели акторов? Каждый разработчик вынужден с нуля лепить свою реализацию обмена сообщениями между горутинами
Никогда не перестану рофлить с долбоёбов

390 19 ноя, 14:53 390 1524645

Анон, у меня вопрос скорее по архитектуре. Есть веб круд, есть числовое значение X, берущееся из конфига, надо перед созранением модели валидировать её поле больше/меньше оно этого X. Пока просто есть хелпер, который вызывается из модели, куда каждый раз передаётся X и проверяемое поле. Выглядит как-то не по-говнокодерски. Как бы сделать получше?

Ответы524650524654

391 19 ноя, 15:20 391 1524650

>>1524645
>созранением
>как-то по-говнокодерски
Го сделал меня дауном, извиняйте.

Ответы524654524698

392 19 ноя, 15:45 392 1524654

>>1524645
Если вкратце, то если эта модель - часть твоей предментной области, то и правила валидации - это тоже её часть. Опиши механизм валидации этой модели и вызывай его перед сохранением. Если хранишь оригиналы модели до изменения - то можешь смотреть дифф и валидировать только изменённые поля.
В качестве валидатора можешь присмотреться к go-validate или делать всё кастомно.
Если чуть посложнее, то по-хорошему нужно валидировать не модель перед сохранением, а данные до попадания в модель. Для этих данных можно описать отдельный механизм валидации и валидировать их перед (в начале) вызовом какого-то сценария.

>>1524650
Съеби нахуй.

Ответы524698

54 Кб, 872x524
393 19 ноя, 16:03 393 1524668

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

Ответы524687

394 19 ноя, 16:29 394 1524687

>>1524668

type Doer interface {
Do()
}

type Foo struct {
Doer
}

Ответы524819

395 19 ноя, 16:39 395 1524698

>>1524654
У меня скорее еботня получается с передачей каких-то лишних контекстов во все возможные функции пакетов, попробую сделать как-то через service options что ли.
Это я же был >>1524650, если что.

Ответы524746

396 19 ноя, 17:46 396 1524746

>>1524698
> Это я же был
Тогда сорян, принял тебя за местного дауна

Насчёт контекстов, то тут тебе нужно поизучать архитектуру. Прочитай про clean architecture, hexagonal architecture, domain driven design и попробуй разнести логику по соответствующим ей слоям. Сущности типа валидаторов не вызывай явно, а инжекть через конструктор и вызывай как метод поля у application сервисов или доменных сервисов.

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

397 19 ноя, 19:04 397 1524808

>>1482493 (OP)
Потсоны, такое дело, я вообще не погромизд, но вынужден был писать некоторые сервисы для конторы на джанге. Успешно писал, в общем то.
Сейчас встала задача сделать еще один, который будет куда глобальнее прежних. И тут мой начальник, начитавшись интернетов, заявляет джанга мол твоя, легаси говно. Давай на го пиши. Говорю, не умею я в го, и учиться долго буду потому что я немного тугой. Он говорит ну тип похуй, отправим тебя на какие нибудь курсы хуе-мое.
Так вот, насколько я знаю го это кровавый энтерпрайс уровня жавы, нет?
Реально ли в одиночку там что то более менее внятное высирать? Или лучше на джанге продолжать говнячить?

Ответы524851525189544029

398 19 ноя, 19:16 398 1524819

>>1524687
Ты показал встроенный интерфейс, а там встроенная анонимная структура, ну я погуглил, походу они обосрались просто в тесте

399 19 ноя, 20:05 399 1524851

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

400 19 ноя, 21:49 400 1524919

>>1482493 (OP)
Для чего этот язык используют?

Ответы524922525043

401 19 ноя, 21:52 401 1524922

>>1524919
Для тролинга джава макак

Ответы524924

402 19 ноя, 21:53 402 1524924

>>1524922
То есть для веба в бекенде?

Ответы524931

403 19 ноя, 21:59 403 1524931

>>1524924
Да + демоны и консольные утилиты

404 19 ноя, 22:04 404 1524934

>>1513609
>netflix

99% софта на джаве

Ответы525093

405 20 ноя, 03:34 405 1525043

>>1524919
Для всего. Даже на микроконтроллерах есть
https://github.com/ziutek/emgo
https://github.com/tinygo-org/tinygo/

Ответы525128

406 20 ноя, 08:08 406 1525093

>>1524934
Было 100, стало 99. Норм.

407 20 ноя, 10:06 407 1525128

>>1525043
>Для всего
Прям как javascript

408 20 ноя, 12:13 408 1525189

>>1524808
Везет же тебе

409 20 ноя, 16:40 409 1525416

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

410 22 ноя, 06:14 410 1526405

Что скажете про Akka? Go уделывает её в типичных задачах?

411 22 ноя, 13:04 411 1526645

Анон, пишу микросервисы-демоны так: есть структура, которая инициализируется в main(), там лежит абсолютно всё: подключения к БД, логгер, конфиги и т.д. Далее прокидывается везде через декоратор или пишутся, к ней методы, которые делают абсолютно любую хуйню, где нужен контекст этой структуры. Не покидает ощущение, что я пишу хуйню. Есть "правильный" бойлерплейт для подобных сервисов? Или книга какая-то, только не абстрактная хуета на собачках и котиках.

Ответы526669

412 22 ноя, 13:32 412 1526669

>>1526645
Ты идешь в правильном направлении, но не дошёл до конца.

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

У тебя должен быть отдельный пакет-консольное приложение (условно "cli"), в котором ты описываешь то, как ты берешь аргументы из конфига, переменных окружения и команды типа serve, migrate и прочего.
Внутри этих команд ты действительно вручную инициализируешь сервисы. Зависимости между ними решаешь с помощью инъекций через конструктор, граф инициализируешь либо руками, либо через wire от гугла, как удобнее.
Потом в определённом порядке бустртапишь сервисы и в обратном порядке регистрируешь для остановки (чтобы graceful shutdown сделать), потом слушаешь сигналы от ОС, как получаешь нужный - вызываешь последовательность shutdowner'ов.

Сами сервисы правильно делить на три слоя, инфраструктурный, юз-кейзов (или application) и предметной области (domain или core), про это можешь прочитать в книгах по DDD.

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

Ответы526729

413 22 ноя, 14:43 413 1526729

>>1526669
>Во-первых, непонятно, нахера тебе декоратор.
Это к примеру, когда у демона торчит наружу rpc/rest api мне нужно прокинуть, туда соединение к БД, чтобы что-то запросить и отдать.
func List(d *Daemon) http.HandlerFunc {
return func(...) {
// здесь обращаемся к базе и логируем ошибки и т.д.
}
}

>Во-вторых, этом не место в мейне.
Выглядит примерно так всё:
func main() {
app := app.New(config) // там открываются соединения с базам и разными api
if err := app.Run() { // бесконечный цикл
log.Error(err)
return
}
}

>В-третьих, сервисы не передаются через контекст, он не для этого.
Не понял. я имел в виду не пакет context, а контекст выполнения ф-ии/метода. Ну т.е. имеется моя огромная структура type App struct {}, где вообще всё и где мне что-то нужно сделать, и где нужен логгер и БД из неё, я просто делаю это как её метод, т.е. о Single Responsibility речи вообще нет. Как это всё делать правильно?

Ответы526812527663

414 22 ноя, 16:12 414 1526812

>>1526729
> Это к примеру, когда у демона торчит наружу rpc/rest api мне нужно прокинут
Нет, это не так работает.
У тебя должен быть сервис (условно) handler.UserHandler, который через конструктор получает HttpServer и (к примеру) usecase.SaveUser, и регистрирует свои методы в качестве роутов, всего такого.
Внутри роутов он достаёт из http.Request (или как он там называется, я не помню сходу) нужные аргументы, проверяет их тип и всё такое. Если всё валидно, он прокидывает это в условный usecase.SaveUser, в котором уже написана реальная логика, что тебе там нужно с ним сделать.

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

> Выглядит примерно так всё:
В мейн-функции это делать не стоит, потому что у тебя может быть туева хуча различных вариантов работы с приложением. Main-это точка входа + роутинг для консольного приложения, в которое скомпилируется твой код. Граф зависимостей собирается под конкретную задачу. Представь, у тебя есть две консольные команды, serve и migrate. Нахера тебе в migrate какой-нибудь http?

> имеется моя огромная структура type App
То есть, у тебя есть какой-то огромный божественный сервис-локатор. Это неправильно и не нужно. Просто инъекти зависимости через конструкторы и собирай набор сервисов под текущую команду (или тест, к примеру).

415 22 ноя, 22:16 415 1527130

Я правильно понимаю, что если вкатиться в go, то можно будет навсегда забыть о фронте, вёрстке и прочем ui? Потому что из-за этого не хочу в другие бэкенд лезть: python, ruby, php, java - в вакансиях везде пишут html, css и тд Хочу просто писать api, сервисы, то есть заниматься данными и не думать о ui от слова совсем, а аналогов go получается и нет в этом плане, только кресты, но их редко юзают, как я понял в бэкенде

Ответы527671529311

416 23 ноя, 16:08 416 1527663

>>1526729
>имеется моя огромная структура type App struct {}, где вообще всё и где мне что-то нужно сделать
Это называется God object. Не надо так делать почти никогда (но иногда можно).

Ответы527693

417 23 ноя, 16:13 417 1527671

>>1527130
Да, фулстек с го сейчас редкость

418 23 ноя, 16:38 418 1527693

>>1527663
Нет, God object про действия, а не данные. Это что-то про ближе к redux.

Ответы527713

419 23 ноя, 17:02 419 1527713

>>1527693
> God object is an object that knows too much or does too much

Ответы527972

420 23 ноя, 21:26 420 1527972

>>1527713
И?

421 24 ноя, 00:24 421 1528088

Pony убьёт golang?

Ответы528118

422 24 ноя, 01:20 422 1528118

>>1528088
То что мертво умереть не может.
А Pony попросту не взлетит.

Ответы528130528271

39 Кб, 368x604
423 24 ноя, 01:47 423 1528130

>>1528118
>golang мертв

424 24 ноя, 11:40 424 1528271

>>1528118
Ну эт толсто, даже в рахе уже мыло, авито, озон, тинькоф на го, а это довольно крупные компании

Ответы528323

425 24 ноя, 13:38 425 1528323

>>1528271
Тиобе говорит что govno почти вылетело из топ20 и продолжает падать.
Язык был рассчитан на нюбасов, которым тяжело вкатится даже на сверхпопулярных джаве и питоне.
Все что было за этим языком это хайп и куча маркетингового буллшита от гугла, но хайп ушёл, хайп на микросервис-парашу ушёл, нюбы поняли что вкатываться некуда. Некоторые крупные конторы, которые могут позволить экспериментировать немного вляпались в эту парашу, но это временно.

Ответы528334528335528350528355528605

426 24 ноя, 13:52 426 1528334

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

Вот, можно взять https://insights.stackoverflow.com/survey/2019#technology
Чтобы понять, что Go - 13ый по популярности, 9ый в списке самых любимых, 19ый в списке нелюбимых ,3ый в списке желаемых и 3ый по зарплате

427 24 ноя, 13:53 427 1528335

>>1528323
Так тиобе же показывает популярные технологии с точки зрения вкатывальщиков, а не использования

428 24 ноя, 14:10 428 1528350

>>1528323
>немного вляпались в эту парашу, но это временно.
На что переписывать будут?

429 24 ноя, 14:20 429 1528355

>>1528323
Как объяснишь, что в основновных ру онлайн образовательных площадках за последний год появились курсы по go: нетология, отус, гикбрэйнс, на курсере mail два онлайн курса запустил, то есть интерес к языку только растёт

430 24 ноя, 16:11 430 1528451

Вопрос:

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

Ответы528474528476528509543327

431 24 ноя, 16:28 431 1528474

>>1528451
Фронт тоже новичек?

Ответы528537

68 Кб, 794x798
432 24 ноя, 16:28 432 1528476

>>1528451
>как запустить программу на яп, не устанавливая яп

Ответы528531

433 24 ноя, 17:10 433 1528509

>>1528451
Юзайте докер. Опишешь всё в docker-compose - файле и фронтендщик сможет сделать docker-compose up и получить себе полносью рабочий сервис без установки всего дерьма себе в систему.

Ответы528515528537543327

434 24 ноя, 17:15 434 1528515

>>1528509
>Я новичок в разработке
>Юзайте докер. Опишешь всё в docker-compose

kek

Ответы528586

435 24 ноя, 17:23 435 1528531

>>15>>1528476
Мне казалось сокмплированному мной файлу, уже не нужен установленный go на пк, чтобы его запустить

Ответы528532528553528586

436 24 ноя, 17:24 436 1528532

>>1528531
*скомпилированному

437 24 ноя, 17:28 437 1528537

>>1528509
Я и думал об этом уже, но судя по всему тогда легче заставить человека golang установить, чем тот же docker

>>1528474
чисто фронтендер который всегда только на js пишет (нода установлена), и не очень лоялен чтобы использовать что-то не знакомое (придется ведь голанг ставить, да ещё возможно и переменные окружения настраивать на винде!)

Ответы528548528586

438 24 ноя, 17:36 438 1528548

>>1528537
А разве на голанге пишут что-то отличное от рест сервиса и тому подобноого? Нафейхоа ему устанавливать голанг? или у вас публик сервера нет?

Ответы528586

439 24 ноя, 17:38 439 1528553

>>1528531
Ну да, но тогда тебе придётся каждый раз присылать фронту новую версию

440 24 ноя, 17:59 440 1528586

>>1528537
> Я и думал об этом уже, но судя по всему тогда легче заставить человека golang установить, чем тот же docker
Лолчто? Докер - это уже де-факто стандарт. И фронтендеру он нужен как раз для того, чтобы не ставить себе стороннее говно в систему, нуль лишних зависимостей - кроме самого докера.

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

>>1528548
Это нормальная тема, иметь у себя локально полностью поднятое приложение или сервис, намного удобнее разрабатывать - и фронту в том числе.

>>1528531
А ещё база, миграции и прочая херня. Лучше сразу подумать о доставке, найти мануал и сделать всё нормально.

22 Кб, 305x448
441 24 ноя, 18:17 441 1528605

>>1528323
Чтобы увидеть как го "умирает" достаточно посмотреть количество го-репозиториев на github больше чем с 5к звезд.

Ответы528610

442 24 ноя, 18:21 442 1528610

>>1528605
А если ещё рассматривать репозитории не старше 1 года, то го вообще в топ-3 вместе с Python и JavaScript

443 24 ноя, 18:59 443 1528647

>>1482493 (OP)
Оправдывайтесь, говноеды:
https://habr.com/ru/post/469441/

Ответы528654528658528692528706

434 Кб, 960x720
444 24 ноя, 19:05 444 1528654

>>1528647

445 24 ноя, 19:10 445 1528658

>>1528647
я щя блевану

446 24 ноя, 19:40 446 1528692

>>1528647
знатно аффтар обоссал говно. найс

Ответы528699

447 24 ноя, 19:44 447 1528699

>>1528692
И зачем же он тебя обоссал?

448 24 ноя, 19:51 448 1528706

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

Ответы528725

449 24 ноя, 20:03 449 1528725

>>1528706
Все сишарперы как то криво по земле ходят

450 25 ноя, 13:40 450 1529112

>>1503146
В Java 1.1 green threads являлись единственной потоковой моделью (моделью распараллеливания потоков), используемой в JVM[7], по крайней мере, в Solaris. Ввиду того, что green threads обладают ограничениями в сравнении с native threads, в последующих версиях Java основной упор сделан на native threads.

С вики.

Ответы529160

451 25 ноя, 14:52 451 1529160

>>1529112
Вероятно, тогда их время ещё не пришло.

452 25 ноя, 17:00 452 1529311

>>1527130
Работаю на ноде, пишу только апишки. Все зависит от компании

453 25 ноя, 18:38 453 1529405

>>1502138
>Карочи, я к тому, что в плане удоства разработки конкаренси, JVM-based решения - хуйня и даже близко не стоят рядом с го
Scala

454 27 ноя, 19:11 454 1530993

11

455 27 ноя, 19:27 455 1531004

Бля, в Украине вообще есть работа на GO для не помидоров в 12-литним опытом на го?

Ответы531166

456 27 ноя, 21:40 456 1531166

>>1531004
Нет, придётся шлёпать формочки на жяваскрипте. Зато плотют хорошо!

Ответы531406

457 28 ноя, 11:41 457 1531406

>>1531166
FUUUUUUU

458 29 ноя, 16:51 458 1532485

https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

Видали прикол?

Ответы534152

459 29 ноя, 17:33 459 1532516

java or go for casual online game?

Ответы532546534152

460 29 ноя, 18:06 460 1532546

>>1532516
haskell ofc

461 29 ноя, 19:06 461 1532603

Сап, go-феры.
Я NodeJS/PHP макака, больше 5 лет на этом всем пишу.
Есть месяц, чтобы выучить GoLang + все, что нужно для среднего бэка на нем. Киньте списком того, что надо знать, пожалуйста

Ответы534051543330

462 30 ноя, 22:52 462 1534051

>>1532603
1) Работа с основными типами данных, в частности slice и map
2) Работа с указателями и nil
3) Горутины и каналы, мютексы
3) Как структурировать проект
4) Что умеют основные стандартные пакеты
5) Как писать тесты в го
6) Основные внешние библиотеки для работы с сетью, роутингом, базами данных

Вроде этого хватит

Ответы534052

463 30 ноя, 22:55 463 1534052

>>1534051
И в дополнение, необязательные, но полезные штуки
1) Внутреннее устройство слайсов, map, каналов
2) работа garbage collector
3) Работа с профилировщиком
4) context

Ответы534070

464 30 ноя, 23:23 464 1534070

>>1534052
Благодарю, анон, пометил себе

Ответы535042

465 1 дек, 02:32 465 1534152

>>1532485
Обнаружена абстрактная фабрика ЖЖ Артемия Лебедева!
>>1532516
Java если игра сложнее 3 + 3. Иначе на говне охуеешь пилить всю логику, а профит от нормального конкарренси не почувствуешь, потому что у тебя нет конкарренси, а нет конкарренси потому что проект так и не написан.

Ответы534229

466 1 дек, 09:47 466 1534229

>>1534152
>сложнее 3 + 3
планирую логическую игры,наподобие крестики нолики

Ответы534519534786

467 1 дек, 13:05 467 1534519

>>1534229
Берешь язык, который знаешь лучше.
Если не знаешь оба, то бери го, он проще, и там нет всех этих абстрактных фабрик синглтонов

468 1 дек, 15:46 468 1534786

>>1534229
Пфф, тогда на чем угодно, хоть на JS. Я думал ты задаешь вопрос на чем писать онлайн игорь, которую надо поддерживать и развивать, а ты про петпроект. Вообще на чем угодно.

Ответы534861

469 1 дек, 16:50 469 1534861

>>1534786
>Вообще на чем угодно
на руби было бы странно

470 1 дек, 19:22 470 1535042

>>1534070
Только вот:
> 3) Как структурировать проект
Сами гоферы часто структурируют его, как полные мудаки. По DDD вообще единицы.

> 2) работа garbage collector
> Планировщик
Очень мало практической информации.

Ответы535412

471 1 дек, 23:13 471 1535412

>>1535042
Тут скорее знания для собеса

472 11 дек, 01:23 472 1543265

>>1482493 (OP)
ntcn

473 11 дек, 08:58 473 1543327

>>1528451
1. Голанш элементарно ставится. В разы проще, чем тулчейн у типичного фронтера
2. Как сказал этот анон >>1528509 юзайте докеры, если еще не начали. Хотя установить голанг проще, чем осваивать докер
3. Публикуй бинари на сетевой ресурс, а фронтер пусть тянет бинарь

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

Ответы543342

474 11 дек, 09:03 474 1543330

>>1532603
В дополнение:
А. Прочти это http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/
Б. Изучай сорс стандартных либ, смотри как тесты к ним написаны. Это лучший учебный материал.

475 11 дек, 09:33 475 1543342

>>1543327
> Хотя установить голанг проще, чем осваивать докер
Типичный сервис - это база, файлуха, кеш, какая-нибудь дополнительная херня, планировщик и только потом код.
Без докера всё это поднимать будет печально.

Ответы543374

476 11 дек, 10:29 476 1543374

>>1543342
Все так
Но если хочется максимально light-weight dev cycle, то:
- git pull
- go run
ничего "легче" не придумывается.
Тем более что ОП хотел по изменениям файлов рестарты делать

Ответы543394

477 11 дек, 11:31 477 1543394

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

478 12 дек, 06:46 478 1544017

>>1505605
> Лол, а теперь посмотри на языки вроде хацкеля/окамла/раста/свифта

>Хацкель
Для фп-шизиков и математикошизиков, изредка для реально редких и крутых академиков
>Окамл
Никому не нужный ноунейм, в котором модель CSP неудобна
>Свифт
Для гейос шлёпателей.
>Раст
Вот наконец хоть один увожаемый язык назвал.
>Erlang
Вырвиглазгый, почти никому не нужен. Но всё же не ноунейм. И на нем базируется Эликсир, который в свою очередь крайне увожаемый.

479 12 дек, 08:53 479 1544029

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

480 12 дек, 15:28 480 1544346

Ребят, пишу на PHP + Laravel. Апишки для фронтендеров и мобильщиков, фронтендирую сам иногда (Vue.js, React).

Часто встречаю вкусные вакансии на PHP + Go, часть на PHP, микросервисы на Go. Вскоре предстоит интервью в забугорную компанию на Senior PHP/Golang developer. Я и в PHP не сеньор, в Golang даже не Junior. Сказали, что Go желательно, но не обязательно. У них там Kubernetes и вся такая дичь, а я кроме Docker'a (для локальной разработки) не щупал ничего.

На GO могу писать простые Rest API'шки. Горутины и каналы не трогал.
Поясните почему PHPшные проекты частично переводят на Go?
Чтобы тратить меньше бабла на железо?
Какую логику отдают Golang'у?

Можете привести пример проекта с микросервисами на Go, где основным языком является некомпилируемый язык типа PHP и Python. Что конкретно из логики выносится в микросервисы?

В общем не уверен что дальше развивать, реакты ангуляры для fullstack. Или Golang для бородатого сеньора-бекендера. Цель - 300к в сек, конечно же. Да и PHP + Laravel заебал, писать на нем удобно, легко и скучно.

Зарплата 135к, работаю удаленно. Но я жадный и хочу больше золота.

Ответы544353544361572485

481 12 дек, 15:33 481 1544353

>>1544346
Кстати, реквестирую курс OTUS по Golang'у. Вроде годнота, судя по программе курса. Там про микросервисы, про то как это всё состряпать в единую работающую хуету.
Есть у кого?

Ответы548380

482 12 дек, 15:38 482 1544361

>>1544346
Если цель стать синиор бэкендером в крупной компании, то конечно пхп+го, если востребованность в мелкосреднем сегменте, на удаленках и т.д., то фулстечить. Первое дает стабильность и деньги, но компаний выбор не так и велик, особенно если не в многомиллионнике вроде ДС или Лондона, а второе для мобильности удобнее, по деньгам можно примерно и так же выйти

483 16 дек, 02:48 483 1547873

думаю над темой диплома, что такого я могу написать на пщ? сайт уж слишком стыдно

Ответы547890

484 16 дек, 05:08 484 1547890

>>1547873
Простой блокчейн. Для бакалавра потянет.

Ответы547891548054

485 16 дек, 05:12 485 1547891

>>1547890
>Простой блокчейн. Для бакалавра потянет
Куда копать?
Какие либы есть?

Ответы548054

486 16 дек, 10:57 486 1548054

>>1547890
збазиба, анон
>>1547891
ну я немного уже себе нашел в интернетах, вкатись в предметную область

Ответы548073

487 16 дек, 11:39 487 1548073

>>1548054
Есть же опенсорсные реализации уже + статьи на медиуме вида "простой блокчейн в два шага".
Да даже больше скажу, этот ваш блокчейн это по сути эвент соурсинг с подписью изменений, Линус Торвальдс ещё в 2005 году то же самое сделал, когда гит написал.

488 16 дек, 17:48 488 1548380

>>1544353
Тоже хотелось бы увидеть этот курс

489 16 дек, 19:14 489 1548470

Когда там Go 2 выйдет? Или неизвестно?

Ответы548592

490 16 дек, 20:47 490 1548592

>>1548470
В будущем

50 Кб, 1280x720
491 20 дек, 22:41 491 1552140

Добрый день. Как в этом языке грамотно работать с математическими действиями? Вот делю я 25 на 7 (25/7) а выводится 3. Что читать?

Ответы552160552240552416

492 20 дек, 22:52 492 1552160

>>1552140
Результат целый, потому что оба аргумента целые. Нужно, чтобы хотя бы один был вещественным. Делай либо 25.0/7, либо float64(25)/7

54 Кб, 640x640
493 21 дек, 00:58 493 1552240

>>1552140
>Добрый день. Как в этом языке грамотно работать с математическими действиями? Вот делю я 25 на 7 (25/7) а выводится 3. Что читать?

25.0 / 7.0

494 21 дек, 09:52 494 1552416

>>1552140
Иди сразу по хардкору и используй https://golang.org/pkg/math/big/

495 23 дек, 09:22 495 1554369

Антон подскажи как быть. Сижу QA в команде, бек пилят на Go. Не хочу оставаться селениум-дауном и гонять регрессы. Какие есть шансы начать брать небольшие задачи на Go и перекатываться в dev? Олсо думаю параллельно проходить курс https://otus.ru/lessons/razrabotchik-golang/ Изучил пока только синтаксис, знаю python на уровне писания автотестов

Ответы554374554728554867554876

496 23 дек, 09:34 496 1554374

>>1554369
Шансы есть, конечно. Почему бы и нет?

Ответы555372

497 23 дек, 16:06 497 1554728

>>1554369
Не жалко 50к инфоцыганам заносить?

498 23 дек, 18:44 498 1554867

>>1554369
- проходишь тур го на оф сайте
- конец

499 23 дек, 18:50 499 1554876

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

500 24 дек, 11:30 500 1555372

>>1554374
>Почему
слышал что в основном на Go перекатываются уже разработчики с опытом backend- разработки. И компании рассматривают разрабов, которые пишут на Го или готовы переучиваться.

501 25 дек, 23:20 501 1557108

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

Ответы557158

502 26 дек, 00:19 502 1557158

>>1557108
Готовься к баттхёрту. Если ты учишь го потому что дядя так сказал надо, то пиздарики тебе. А вот если потому что самому интересно — то это божья благодать. Хотя это зависит от того, с каких языков ты пришёл. Если с жявы, то точно пиздарики.

503 26 дек, 13:16 503 1557490

Рейт ми /пр
https://github.com/beneG/mad_test
Это тестовое задание в одну говноконтору, надо было сделать фриланс аукцион с корректным обращением с деньгами.

Это моя первая программа на го, и хз почему меня не взяли в эту говноконтору.

Ответы557519557806

504 26 дек, 13:34 504 1557519

>>1557490
Архитектура так себе (про DDD ты явно не слышал), слои логики перемешаны между собой, файловая структура самописная и так себе, гошная специфика тоже так себе. О доставке тоже не подумал, апи задекларировано так себе.
Максимум, взял бы тебя на джуна без обид, ты попросил - я оценил.

Ответы557763557802

505 26 дек, 17:48 505 1557763

>>1557519
Вооот. А на деле я оказался супер продвинутым программером, и сейчас работаю в одной известной конторе и делаю ИИ в авиасимуляторе на крестах.
Всё с вами goферами понятно, чисто формалистский подход и оценка.

Ответы557764557976

506 26 дек, 17:53 506 1557764

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

> одной известной конторе
Я видел говнокод от множества известных контор, включая Яндекс и Гугл. Ничего эти ярлыки не значат.

Ответы557774

507 26 дек, 18:05 507 1557774

>>1557764
>Что-то по коду не видно, говнокод, как он есть. Если ты считаешь себя супер-продвинутым, мне стоит тебя огорчить.
Это первая программа на голанге, после которой я руки мыл с мылом. Ладно ковыряйтесь в свойём goвне сами, а я пожалуй останусь на божественных крестах.

А ты, пидор, покажи свой конфетка-код прежде чем свой носик задирать.

Ответы557802

508 26 дек, 18:41 508 1557802

>>1557774
Сначала ты просишь оценить тебя, а потом строишь обиженку? Ну ок.
Свой лепет про первую программу можешь больше не писать, потому что если бы ты хотя бы слышал про азы разработки на бекенде, то попытался бы что-то такое изобразить. Твой код не не-идиоматичен, он просто плохой, потому что ты путаешь тёплое с мягким.
Да и в принципе опытные разработчики как правило сразу гуглят примеры кода и какие-нибудь example-проджекты на стеке X, чтобы понять, как вообще тут принято делать. Ты поленился сделать даже это.

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

Ответы557835

509 26 дек, 18:44 509 1557806

>>1557490
>Всё с вами goферами понятно, чисто формалистский подход и оценка
>А ты, пидор, покажи свой конфетка-код прежде чем свой носик задирать.
>Это первая программа на голанге, после которой я руки мыл с мылом. Ладно ковыряйтесь в свойём goвне сами
>Aug 24, 2018
спустя полтора года чувстсовать себя солёным и обсирать виноград, которые тебе не достался, это сильно. правильно не взяли.

Ответы557835

510 26 дек, 19:20 510 1557835

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

>>1557802
Покажи. С радостью.
И смогу скопипастить формальные и максимально размытые доёбки которые подходят всем как гороскопы.

И то что ты не отрицаешь что ты пидор говорит о том что пидоры - говно, так как множество пидоров содержит такого уебана как ты.

Ответы558444

511 26 дек, 20:35 511 1557976

>>1557763
Уж ли не для Ил2: Штурмовик ИИ пишешь? Судя по твоему гиту тебя туда взяли пару месяцев назад на джуна или трейни

Ответы558018

512 26 дек, 20:48 512 1558018

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

513 27 дек, 03:23 513 1558444

>>1557835
> Я пришёл обсирать не виноград а яп который ебанут и имеет ебанутое коммунити.
То есть наговнокодил ты, а виноват язык и комьюнити? Гениально.

Ответы558508

514 27 дек, 09:29 514 1558508

>>1558444
Ему гоферы в штаны насрали

515 27 дек, 12:22 515 1558596

Спасибо, ребят что охладили моё чсв.
go ахуенный язык, вот тот чел который так и не показал свой конфека-код вообще красавчик. А то пол ./pr ослепло бы.
Да и ваще все вы молодцы. Отсасывайте друг у друга.

Ответы558884

516 27 дек, 16:17 516 1558884

>>1558596

Странный ты чувак. Выше уважаемый ананас тебе все объяснил. Чего у тебя подгорает - не понятно.

517 29 дек, 17:16 517 1560453

>>1511423
Ты не писал на паскалевском синтаксисе. PL/SQL - паскаль. Го - си с корутинами и гц.

518 2 янв, 22:39 518 1563448

ПЕРЕКАТ
>>1563445 (OP)
>>1563445 (OP)
>>1563445 (OP)
>>1563445 (OP)
>>1563445 (OP)
ПЕРЕКАТ

519 14 янв, 13:06 519 1572485

>>1544346
Бамп

520 17 янв, 09:22 520 1575141

>>1509601
У Elixir/Erlang тоже есть неоспоримые преимущества:
это разработанные не через жопу языки, в которых есть инструменты более продвинутые, чем палки-копалки из го.
Ну и рантайм получше, в основном за счет идеи каждому процессу свою память давать. Вот в BEAM VM асинхронность, да. А в этих ваших Golang / Python asyncio и прочем -- ебучее CSP, которое стало ебучим из-за того, что его пихают везде, даже туда, где оно, блджад, не работает.

521 3 фев, 04:36 521 1589983

>>1484255
бамп годному вопросу

Тред утонул или удален.
Это копия, сохраненная 10 февраля 2020 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion