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


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

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

Тред про лучший в мире язык GO №5 /go/ Аноним # OP 26/09/19 Чтв 20:30:08 14824931
1PKDa1ZG8ZJl8XN[...].png (1371Кб, 4000x2067)
4000x2067
7t1p88ct13ez[1].jpg (227Кб, 900x1400)
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)
Аноним 26/09/19 Чтв 20:48:19 14825192
>>1482493 (OP)

Предлагаешь клиенту просто отслеживать статус задачи? Чтобы в случае ошибки он мог об этом узнать и повторить запрос/забить хуй? Я правильно тебе понимаю?
Аноним 26/09/19 Чтв 20:48:40 14825213
Аноним 26/09/19 Чтв 23:10:34 14826314
>>1482493 (OP)
> смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики.

Скоро джависты будут смеяться, когда разрабы Go окончательно прогнутся под сообщество и превратят Go в кресты но зато Go хотя бы пошустрее жабы
Аноним 27/09/19 Птн 00:45:04 14827055
>>1482631
> Go хотя бы пошустрее жабы
Жаба-интерпретируемые кресты, Го-ненужное говно
Аноним 27/09/19 Птн 11:03:36 14828616
А как вы мониторите сервисы?
Недавно попал в ситуацию, которую я не смог решить основываясь на цифрах. Но все решилось методом тыка.

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

Вот как бы вы решали?
Аноним 27/09/19 Птн 11:19:56 14828677
>>1482493 (OP)
>Керниган
Тот самый? Что он забыл в goвне?
Аноним 27/09/19 Птн 11:22:07 14828708
>>1482705
>Го-ненужное говно
Нет ли здесь тавтологии?
Аноним 27/09/19 Птн 11:39:26 14828789
>>1482519
Ты не очень умненький да?

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

Но во всех случаях эти таски не должны работать в системных потоках/процессах бизнес логики.
Аноним 27/09/19 Птн 11:41:50 148288110
>>1482631
>но зато Go хотя бы пошустрее жабы
Ох лол, откуда эта байка идёт?
Как раз великий фейл го в том, что он тормознутее прогретой жабы оказался.
Аноним 27/09/19 Птн 11:59:37 148289211
>>1482881
>Как раз великий фейл го в том, что он тормознутее прогретой жабы оказался.
Пруфы?
Аноним 27/09/19 Птн 14:28:35 148299812
image.png (232Кб, 1215x731)
1215x731
Аноним 27/09/19 Птн 14:29:02 148300013
Аноним 27/09/19 Птн 15:19:21 148304014
>>1482998
Ну ахуеть. Я че, зря гошу учу штоли
Аноним 27/09/19 Птн 15:39:28 148305115
>>1482998
Какое же c++ говно, не зря жаву учил
Аноним 27/09/19 Птн 15:41:14 148305316
>>1483040
даун.
1. го - говно язык.
2. гнаться за скоростью - ты ебанутый?
3. все равно попадешь на легаси говно проект
4. го абстраргируют под другие задачи.
5. Самые быстрые части, твич и тому подобное - написаны на плюсах.

А теперь съеби.
Аноним 27/09/19 Птн 16:29:45 148309017
>>1483053
С++ юзают там где нельзя сваливаться в GC. Писать на сях что-то крупное, это боль.

И да, у ламеров какой-то дроч на скорость, они верят что это им что-то дает. Писать "быстро" надо еще уметь, даже на быстром языке, тот сайт тому доказательство (внизу можно найти топ языки, в том числе и с++ и жабу со спрингом, лол)
Аноним 27/09/19 Птн 16:35:39 148309518
Аноним 27/09/19 Птн 17:48:16 148311919
>>1483090
Тут скорее речь о том, что гошу выставят на мороз, если он будет и дальше просирать текущим топовым языкам.
Аноним 27/09/19 Птн 18:03:00 148312720
>>1483119
Да он и так на морозе, надо уже признать что его поддувал только хайп.
Аноним 27/09/19 Птн 18:09:10 148313121
>>1483127
>хайп
Кокой хайп? Только гугля там чето кукарекала.
Аноним 27/09/19 Птн 18:53:23 148315322
benchmarktuesday.png (213Кб, 469x485)
469x485
Go - определенно лучший язык современности. Лёгкий синтаксис, скорость написания кода, близкая к скриптовым языкам, но в тоже время строгая типизация и высокая производительность. Плюс каналы и горутины - абсолютно интуитивных подход для написания многопоточных программ, который красиво вписан в синтаксис.
GO ONE LOVE
Аноним 27/09/19 Птн 19:07:41 148316023
>>1482998
верить бенчам в вакууме такое себе
Аноним 27/09/19 Птн 19:16:16 148316724
>>1483153
> Лёгкий синтаксис
Поимитивный синтаксис, на любое нетривиальное действие приходится писать десятки строк кода, потому что нужные конструкции просто отсутствуют в языке. Привет от сишки.
Аноним 27/09/19 Птн 19:20:57 148316925
>>1482878
>Произошла ошибка, а клиент думает что все ок, но видит некорректный результат (или вообще ничего не видит). Чистая магия, которая противоречит юзабельности.
Тогда нахуя ты это высрал, долбоеб? Я тебя только за эту хуйню спрашивал, а оказалось, что ты ничего не можешь предложить лучше

> от доменной области
Иди лучше, блять, русский подучи, каждый раз ловлю фейспалм с твоих простыней говна
Аноним 27/09/19 Птн 19:27:15 148317126
image.png (174Кб, 1904x842)
1904x842
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.
Аноним 27/09/19 Птн 20:01:38 148318227
>>1483160
Как раз бенч реал приложух, а не маня-дробилки в 100 строк
Аноним 27/09/19 Птн 20:02:28 148318428
>>1483153
Где вас такой херней кормят?
Аноним 27/09/19 Птн 20:04:36 148318729
>>1483169
Когда человек обосрался по обсуждаемой теме, он начинает придираться к личности, к орфографии и т.д.
С тобой все ясно было еще в том треде, когда ты стал маня-архитектуру на коленке описывать.
Аноним 27/09/19 Птн 20:30:15 148319830
>>1482867
>Керниган
Ну так-то с Пайком ( автором Го) они дружат давно и книги давно вместе пишут
Аноним 27/09/19 Птн 20:33:50 148320031
>>1483187
Чувак, я тебе уже третий раз пытаюсь объяснить, что я встрял в ваш разговор только в этом сообщении >>1481660 Мне правда было интересно, каким образом ты собрался решать эту проблему, я даже был вежлив до некоторого момента, но ты оказался ебанным шизиком.

Аноним 27/09/19 Птн 21:01:30 148322532
>>1483200

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

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

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

Все остальное - мелочи реализации. Если вам что-то кажется нереализуемым/сложным/etc - гуглите или спрашивайте. Все реализуемо.
Аноним 27/09/19 Птн 21:06:42 148322733
>>1483200
Врывается в диалог двух анонов.
@
Без ремарок ведет диалог как бы от второго анона
@
Называет собеседника шизиком.
Аноним 27/09/19 Птн 21:20:23 148323434
>>1483225
Анон говорит, что большинству местных анонов асинхронщина не нужна.
@
Другой анон, оспаривает, говорит про веб
@
У него спрашивает где и как конкретно.
@
Тот высирает придуманный на коленке ответ, не используемый в реальных приложениях, сложнее домашнего пет-проекта.
@
Его ловят на этом.
@
Анон понял что обосрался, начал маневрировать, говорить с позиции второго анона, придумывать что он мимокродил и прочее.

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


Аноним 27/09/19 Птн 22:18:18 148325836
>>1483234
Ну кста по поводу асинхронности тот чувак ещё большую хуйню спизданул. Охуенно рассуждать о том что асинхронность не нужна и как бы ты все проблемы решил микросервисом на го, в то время как у тебя в 99% случаев каждый запрос сервится отдельной горутиной
Аноним 28/09/19 Суб 00:41:09 148332937
>>1483258
>сервится отдельной горутиной
Еще одна жертва хайпа. Ну есть у тебя 100.000 горутин, а толку если они в четырёх физических потоках?
Подвесил ты один поток, одной горутиной и ~25.000 горутин сосут.
Аноним 28/09/19 Суб 00:53:57 148333938
Аноним 28/09/19 Суб 01:39:05 148335739
>>1483329
>Подвесил ты один поток, одной горутиной и ~25.000 горутин сосут.
Днина, ты? Есть же нетворк поллер.
Аноним 28/09/19 Суб 01:54:12 148336340
>>1483329
Бля, да все же знают, что если поток локируется, то рантайм создаёт ещё один.
Аноним 28/09/19 Суб 08:58:30 148343641
>>1483182
нихера,там именно проствя страница
Аноним 28/09/19 Суб 10:41:28 148344942
>>1483363
Как она узнает что поток блокирован? Это же не бесплатно.
Аноним 28/09/19 Суб 10:53:01 148345643
>>1483363
То есть, при дидос атаке, будут еще неконтролируемо треды создаваться?
Аноним 28/09/19 Суб 13:30:56 148352844
Аноним 28/09/19 Суб 14:04:53 148355645
>>1483449
>Как она узнает что поток блокирован? Это же не бесплатно
Очевидно потому что поток блокируется системным вызовом.
Аноним 28/09/19 Суб 14:05:38 148355746
Аноним 28/09/19 Суб 14:05:54 148355847
>>1483456
>То есть, при дидос атаке, будут еще неконтролируемо треды создаваться?
Нет, нетворк коллы обслуживаются одним тредом через асинк сисколлы.
Аноним 28/09/19 Суб 14:20:41 148356348
>>1483557
Рантайм понимает что будет блокирующий вызов и берет из пула свободный тред, или создаёт новый.
Аноним 28/09/19 Суб 18:46:47 148388549
>>1483558
Почему одним тредом, когда у тебя много ядер?
Какой-то node.js прям получается.
Аноним 28/09/19 Суб 18:54:46 148389250
>>1483885
>Почему одним тредом, когда у тебя много ядер?
че ты за хуйню пишеш нахуй лезиш если не шариш иди пару статей почитай
Аноним 28/09/19 Суб 19:04:23 148390151
>>1483892
Так я и спрашиваю, тормоз.
Аноним 28/09/19 Суб 19:05:12 148390252
>>1483892
>иди пару статей почитай
Прочитал пару статей в мужском журнале, до сих пор не понял, не работает это.
Аноним 29/09/19 Вск 06:27:40 148425553
3bc7bc030fad10c[...].jpg (70Кб, 640x570)
640x570
>>1482493 (OP)
Привет, двач. Есть у кого на примете годный курс лекций по алгоритмам? Знаю, что библией алгоритмизации считается книга Кормэна(потом по нисходящей идут Дасгупта и Бхагарва, тоже знаю) и мне нравится её полнота, однако, формальный язык очень и очень отталкивает, не способствуя пониманию. Да и вообще, формат лекций мне как-то ближе, нежели просто чтение книги. В общем, какие требования? Полнота(речь не об N-полноте, лол) Кормэна в сочетании с интересным, не сухоформально рассказывающим преподом. А, да, и чтобы на русском(знаю, что охуел). Подскажите чего по сабжу?
Аноним 29/09/19 Вск 10:33:43 148431254
>>1483885
>Почему одним тредом, когда у тебя много ядер?
>Какой-то node.js прям получается.
Потому что нетворкполлер работает через асинхронные системные вызовы. Одного треба видимо посчитали, что хватит.
Аноним 29/09/19 Вск 20:06:18 148478255
>>1484312
>нетворкполлер
Это в го или какой-то системный драйвер?
Аноним 29/09/19 Вск 23:04:07 148496256
>>1484782
>Это в го или какой-то системный драйвер?
В го есть два вида i/o Нетворк и ненетворк(файлы/другиесисколы/хуемое). Так вот все не нетворк сисколлы блокируют поток, поэтому планировщик го имеет пул потоков и умеет создавать новые. Когда происходит блокировка, планировщик подменяет заблокированный тред на тред из пула или новый. При разблокировке тред возвращается в пул.
Для Нетворк i/o в рантайме есть отдельный поток, так называемый Нетворк поллер. Данный механизм в одном потоке имеет очередь горутин, которые хотят сделать Нетворк i/o. Вместо обычных блокирующих системных вызовов используется семейство асинхронных сисколлов ОС. Таким образом все горутины в данном потоке могут работать с сетью, не блокируя поток при этом. Ка столько результат вызова получен, горутины возвращается в очередь к планировщику го.
Аноним 30/09/19 Пнд 01:16:38 148504057
Аноним 30/09/19 Пнд 19:22:55 148560858
Блин, как научиться заумным вещам вроде cqrs es, паттернам, вроде саг? И другим вещам, которые стоят в списке требований в проектах на микросервисах?
Есть ли курсы/книги, где идёт разбор на практике?
Аноним 30/09/19 Пнд 21:41:11 148573359
>>1485608
Есть ли смысл использовать TLS/SSL при взаимодействии между сервисами которые крутятся в кубере и не смотрят наружу?
Если ответ будет с аргументацией, то вообще отлично.
Аноним 30/09/19 Пнд 21:42:25 148573860
>>1485733
Случайно нажал "ответить"
Аноним 30/09/19 Пнд 22:29:39 148576561
>>1485733

Ssl не бесплатный, его терминацию лучше выносить на apigateway
Аноним 01/10/19 Втр 00:14:22 148583362
>>1485608
>Блин, как научиться заумным вещам вроде cqrs es, паттернам, вроде саг? И другим вещам, которые стоят в списке требований в проектах на микросервисах?
>Есть ли курсы/книги, где идёт разбор на практике?

microservices.io
Аноним 01/10/19 Втр 00:18:21 148583863
>>1485733
>Есть ли смысл использовать TLS/SSL при взаимодействии между сервисами которые крутятся в кубере и не смотрят наружу?
Зачем вообще используют TLS/SSL? В основном, наверное, чтобы прятать траффик от MitM. Если у тебя в кластере кубернетеса находится негодяй, то, боюсь, MitM это наименьшая из проблем. Плюс внутри кластера же все должно быстро работать, надо минимизировать latency. А так у тебя в цепочке появляется лишний запрос, это невыгодно.
Аноним 01/10/19 Втр 00:19:35 148584064
>>1485833
А, ещё книга Building microservices Ньюмена
Аноним 01/10/19 Втр 18:07:48 148635565
>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...) наплевать на месторасположение аргументов, что намного более ошибкоустойчево, но выглядит как говно из жопы.
На какой из стульев сесть?
Аноним 01/10/19 Втр 20:46:55 148653166
>>1486355
А зачем тебе каждый раз делать аппенд?
Не проще ли черз двойной цикл
где будет
if j!= i {
result*=input[j]
?
Аноним 02/10/19 Срд 03:36:51 148682067
>>1482493 (OP)
бля епта, установил себе этот го а дальше что??? как писать код? Я даже не могу хелло.го запустить, как вообще это работает?
Аноним 02/10/19 Срд 05:52:49 148683868
>>1486820
готур хуяч и не выебывайся
Аноним 02/10/19 Срд 09:52:24 148687669
>>1482493 (OP)
*lambda expressions

А разве этого нет в первой версии? В Go есть же анонимные функции, не?
Аноним 02/10/19 Срд 10:19:43 148688070
>>1486876
Наверное, имеются в виду однострочные функции без слова func и без фигурных скобок. Типа такого:
((a, b) -> a + b)(1, 2)
Аноним 02/10/19 Срд 10:23:30 148688471
>>1486880

Просто синтаксический сахар короч в JS стрелочные функции хотя бы имеют смысл: они берут this из внешнего скопа, а не тот который им забиндили или global как в обычных function expressions
Аноним 02/10/19 Срд 10:23:46 148688572
>>1486884

*бля спойлер проебал
Аноним 02/10/19 Срд 10:30:33 148688973
Алсо нахуя дженерики, если есть function expressions?
Аноним 02/10/19 Срд 11:14:09 148690474
>>1486884
Да любые новые фичи в языках программирования поверх команд ассемблера - это синтаксический сахар. Они не добавляют ничего, что принципиально нельзя сделать без них.
Аноним 02/10/19 Срд 11:25:14 148691375
>>1486904

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

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

Про то что стрелочные функции в Go 2 - просто синтаксический сахар, я ошибся: стрелочные функции возвращают значение выражения, которое записано после стрелки. Так что они отличаются и семантически от обычных анонимных функций.
Аноним 02/10/19 Срд 11:26:32 148691776
>>1486913

Синтаксическим сахаром стрелочные функции были бы если бы без return statement они не возвращали значение
Аноним 02/10/19 Срд 11:32:12 148692377
>>1486917

Бесполезный сахар. Лямбды нужны были джаве, так как их не было, джсу, потому что всех заебал this.
В го уже есть все необходимое, непонятно зачем нужна ещё одна запись для функций
Аноним 02/10/19 Срд 12:44:40 148696578
>>1486923

А Python зачем нужны тогда лямбда-функции, если контекст может быть только у функций класса?
Аноним 02/10/19 Срд 13:44:20 148702279
>>1486965

В питоне нельзя без лямбды определить функцию инлайн, в го - можно.
ПАМАХИТЕ Аноним 02/10/19 Срд 17:02:27 148724380
Гоанон, памахи!
Короче есть один веб скраппер и у него есть следующий стракт

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]

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

Аноним 02/10/19 Срд 17:24:51 148725981
>Чё я не так сделал то?
Выбрал го.
Аноним 02/10/19 Срд 17:29:37 148726882
>>1487259
АХХАХАХААХАХАХААХАХАХАХАХАХААХАХАХААХАХАХААХАХАХАХААХАХАХАХАХАХАХАХАХАХАХАХАХАХАХААХАХАХААХАХАХАХАХАХАХпошел нахуй чмо ебаное
Аноним 02/10/19 Срд 18:03:52 148729083
>>1487259
Не ну серьзно. Я чета не могу самостоятельно понять в чём проблема.
Единственное чё нагуглил это вот
https://yourbasic.org/golang/gotcha-nil-pointer-dereference/
Но у меня всё так и есть вроде. Или мне надо как-то

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

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

&WebApi{provider, dbase}

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

Надеюсь в этот раз понятней объяснил.
Аноним 02/10/19 Срд 20:05:48 148738984
>>1487290

Нихуя не понятнее.
Почем нам знать, чо за хуйня под капотом?
Ошибка ясна? Ясна.
Садись за дебаггер и исследуй поток исполнения, пока не найдешь. где объебался.
Аноним 02/10/19 Срд 22:05:01 148747385
Аноним 02/10/19 Срд 23:33:30 148753386
>>1486355
Очевидно, что за один проход найти произведение product, а потом за второй заполнить out = product/in
Аноним 02/10/19 Срд 23:37:22 148753887
>>1487533
Решение не сработает, если попадется 0
Аноним 02/10/19 Срд 23:38:01 148753988
>>1487243
WebApi - конкретный тип struct, func New возвращает WebApi, но return ты делаешь &WebApi, т.е. указатель. При этом ты утверждаешь, что сумел это скомпилировать, раз словил ошибку в рантайме. Какая-то черепашка пиздит
Аноним 02/10/19 Срд 23:39:48 148754089
>>1487538
ты прав, обработать этот случай, но всё ещё не повод для сложности выше линейной.
Аноним 03/10/19 Чтв 08:02:21 148766390
>>1487539
Да не, это вакаба съела звёздочку просто.
А проблемой я вчера разобрался частично.
На самом деле прав был этот анон >>1487389.
web.Api у меня было тупо nil'ом, тк инициализация происходила в init(), и умпешной не являлось. Только у меня там было почемуто написано fmt.Sprintf() вместо Println, поэтому ошибку я тупо не видел.
Короче я сам тупик ещё тот.
Аноним 06/10/19 Вск 15:46:51 149014291
>>1487243
Аноны, сам уже во всем разобрался, можете не помогать.
Аноним 09/10/19 Срд 10:55:05 149221292
Тред мертв?

>>1487663
>к инициализация происходила в init(), и умпешной не являлось.
Я в таких случаях паникую, и мне похуй, что это вне main(). Ну, типо, если приложение ожидает инициализированные инстансы всякой хуйни, а там тупо nil'ы, то оно уподет все равно, но ты больше времени потратишь на поиски причины. Только с точки зрения суппортинга всего этого говна.
Аноним 10/10/19 Чтв 17:01:42 149322493
>Если ваши байт-слайсы содержат секретные данные (криптографические хеши, токены и т. д.), которые нужно сравнивать с предоставленной пользователями информацией, обойдитесь без reflect.DeepEqual(), bytes.Equal() или bytes.Compare(). Эти функции сделают приложение уязвимым к атакам по времени. Чтобы избежать утечки информации о времени, используйте функции из пакета crypto/subtle (например, subtle.ConstantTimeCompare()).

Нихуя не понял, объясните, пожалуйста, для медленных.
источник: https://habr.com/ru/company/mailru/blog/314804/#39
Аноним 10/10/19 Чтв 21:36:14 149347694
>>1493224
Очевидно, что bytes.Equal для массива в 10 символов выполняется быстрее, чем для массива в 1000 символов. А значит, зная скорость выполнения функции можно оценить длину данных ( и иногда состав данных, типа есть ли там большое количество нулевых байтов и тд).
Чтобы этого избежать, есть специальные функции сравнения, которые работают одинаковое время для данных разной длины.
Аноним 11/10/19 Птн 13:53:26 149385795
>>1493476
>Чтобы этого избежать, есть специальные функции сравнения, которые работают одинаковое время для данных разной длины.
Это основано на хитровыебанных хешах? Или как?
Аноним 11/10/19 Птн 14:07:16 149387196
>>1493476
А при чем тут секретные данные?
Аноним 11/10/19 Птн 14:09:44 149387397
>>1493871
Например, это пароль.
Аноним 11/10/19 Птн 14:27:43 149389098
>>1493857
Самое простое (скорее всего реально сделано умнее) - всегда возвращать ответ через 0.1 секунды, неважно, сколько времени реально ушло.
Ну типа:
t := timer.start()
h := calculateHash()
t2 := t.stop()
if t2 < 0.1 { time.Sleep(0.1-t2)}
return h
Аноним 11/10/19 Птн 14:31:22 149389399
>>1493890
>всегда возвращать ответ через 0.1 секунды
Я то думал там какие-то хитровыебанные О(1) алгоритмы.
Аноним 11/10/19 Птн 15:01:15 1493919100
>>1493873
Ну да, например. От них хеши нельзя брать, или что?
Аноним 11/10/19 Птн 17:04:44 1494047101
>>1493893
Я хз, если интересно - посмотри и разберись. Пример с таймером я сам придумал.
Аноним 11/10/19 Птн 17:07:57 1494050102
>>1493919
Тебе же сказали уже, взять можешь. Но хэш от AAA и хэш от AAAAAAAAAAAA будет браться разное время, как и от AAA и ABC. В итоге, человек, замеряющий время, которое выполняются запросы на (к примеру) POST /password с разными паролями сможет довольно точно предсказывать, сколько и чего лежит в пароле. В итоге можно перебирать не все радужные таблицы а только часть.
Никто не будет заниматься таким мозгоёбством ради твоего занюханного самописного бложека, это правда. Но ради банка или гуглоаккаунта крупной компании - запросто.
Аноним 13/10/19 Вск 15:10:28 1495601103
А кто сейчас в России является самыми авторитетными программистами на Go? Дайте ссылки на их блоги, где они делятся лучшими практиками.
Аноним 13/10/19 Вск 19:04:31 1495852104
>>1495601
Авторитетные программисты из России? Лол.
Мне всегда казалось, что русскоязычные разработчики хорошо разрабатывают, но плохо пиарятся, а европейцы пишут чаще пишут говнокод, но зато коллективно дрочат пиарятся на конфах, в блогах и прочих твиттерах. В итоге авторитет у них, так как о них больше слышно.
Оффтопик, но меня всегда бесило, что девяносто девять процентов контента какого-нибудь медиума или конфы - это вольный пересказ мануалов из официальных источников. И под каждым найдётся несколько англоязычных комментариев вида "очень круто, так держать!". Какой смысл хвалить халтуру, там нет ничего интересного. Лучше уж токсично заунижать чем засорять свои интернеты копроконтентом.
Аноним 13/10/19 Вск 19:06:26 1495855105
>>1495852
Но вообще, по-моему гошный рейс-детектор, сборщик мусора и golangcimetalint (вроде) написаны разработчиками из России, можешь погуглить, как их зовут.
Аноним 13/10/19 Вск 23:45:58 1496062106
>>1495855
Scheduler в го тоже написан русским проггером
Аноним 14/10/19 Пнд 00:20:11 1496082107
Эй, говнюки, как с использованием os/exec вызвать длинную bash-строку с пайпами? а то видите ли name string, arg ...string и он их как-то экранирует или хз что делает, короче, не работают с пробелами команды.
Аноним 14/10/19 Пнд 19:56:37 1496646108
При установке флагов через flag.String() в справке потом показывается после названия флага принимаемый тип string.
Вопрос: как убрать из справки эту инфу о типе string, чтобы осталось только название флага и заданное мной его описание? Мне нужен вид как для flag.Bool().
Аноним 14/10/19 Пнд 19:57:51 1496647109
>>1496062
Автодополнялка gocode - тоже.
Аноним 14/10/19 Пнд 21:16:51 1496719110
>>1482493 (OP)
Бляха-муха, посмотрел на картинку франкенштейна-гофера, и так расстроился, что чуть не заплакал. Ну вот нахуя они это делают?
Аноним 14/10/19 Пнд 21:52:33 1496760111
>>1496719
Всмысле? Был максимальной примитивный недопаскаль с корутинами, стало - все ещё жутко примитивный, но хотя бы соотвествующий современному вчерашнему мейнстриму говноязык, который теперь сможет по возможностям соревноваться аж с пехепе и тайпскриптом.
Аноним 14/10/19 Пнд 23:20:27 1496856112
>>1496760
> теперь сможет по возможностям соревноваться аж с пехепе и
В пехепе есть встроенные функции для того, что в говне пишется в тридать строк кода.
Аноним 15/10/19 Втр 08:12:22 1497019113
>>1496719
Очень просто, большинство людей (в том числе и разработчиков) довольно глупы и не способны сравнивать вещи объективно.
Соответственно, если в одном языке есть (к примеру) миксины, а в другом - нет, то это значит, что первый язык лучше. Ну и мейнстрим, все дела.
Не говоря уже о том, что если ты долго разрабатывал на языке А, то ты привыкаешь мыслить в его логике и концептуально другой язык Б кажется тебе необычно неестественно мерзким.
Ну и ещё разработчики - очень токсичный народец, который любит поунижать разработчиков на других технологиях, по любому поводу.
Аноним 15/10/19 Втр 09:14:04 1497045114
Аноним 15/10/19 Втр 12:12:06 1497131115
>>1497045
Спасибо. Я понял, Go нужен чтобы писать простые вещи в больше строк кода. Только не надо сравнивать с сишкой, сами же понимаете, что не та сфера применения.
Аноним 15/10/19 Втр 12:42:47 1497141116
>>1497131
С этим всё понятно. Уносите.
Аноним 15/10/19 Втр 13:30:21 1497176117
>>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()?
Аноним 15/10/19 Втр 16:50:21 1497274118
>>1497176
Очевидно потому что сначала надо включить ту часть пайпа, которая принимает данные (с2) а потом уже сами данные начать отправлять (с1)
Аноним 15/10/19 Втр 20:57:48 1497437119
>>1497019
Да уж, вот тут не могу поспорить. Подумаешь, пишу if err != nil, но зато не пишу на Java. А что теперь, сделают клон Java? :(
Аноним 15/10/19 Втр 22:13:59 1497530120
Java, Go или C#? Где вкатиться перспективнее?
Аноним 15/10/19 Втр 22:38:43 1497558121
Аноним 16/10/19 Срд 04:07:09 1497682122
Как монетизировать знания Го? Вакансий нет, он нахуй никому ненужОн. Ну да, написали на нем докер, дальше что... Все равно все вакансии с богомерзкими джавой и макакаскриптом
Аноним 16/10/19 Срд 08:27:51 1497745123
>>1497530
На Java и C# больше вакансий, Go лучше брать вторым языком.
Аноним 16/10/19 Срд 08:29:37 1497746124
>>1497682
Хз, я довольно легко нашёл работу, даже в моём мухосранске.
Плюс, в линкедине меня периодически пытаются захантить с релокацией в Москву или ещё куда.
Но конечно на Java и говноскрипте будет больше работы, в ближайшие лет десять, нет смысла этого отрицать.
Аноним 17/10/19 Чтв 15:07:08 1498631125
image.png (69Кб, 766x515)
766x515
image.png (63Кб, 1060x393)
1060x393
image.png (45Кб, 1026x354)
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"
Подкидываю сертификаты к подключению и их токен кастомным заголовком. Ни в какую. ЧЯНТД?
Аноним 17/10/19 Чтв 17:13:19 1498736126
>>1498631
Всё, отбой. Разобрался. Если кому интересно будет, расскажу в чём проблема была.
Аноним 17/10/19 Чтв 18:14:56 1498764127
Goвно
Аноним 17/10/19 Чтв 20:48:40 1498860128
1
Аноним 17/10/19 Чтв 23:48:03 1498961129
>>1484255
>
бампаю вопросу. этот языкастый спрашиавет то что надо
Аноним 18/10/19 Птн 08:08:20 1499091130
>>1498736
Ну и зачем так делать? Сразу рассказывай тогда.
привет коллегам-денегератам
Аноним 18/10/19 Птн 09:49:12 1499119131
photo2019-03-06[...].jpg (77Кб, 1177x965)
1177x965
Аноним 18/10/19 Птн 09:52:47 1499121132
image.png (61Кб, 1130x364)
1130x364
>>1499091
>>1499119
Проблема была в сертификатах, я их скинул в одну кучу, и думал, что как и с https проканает ключ к апи сначала получается на сервере аутентификации. Но нет. Пик 1. Делаем CertPool с одним единственным са-сертификатом и делаем отдельный сертификат из непосредственно сертификата и подписи. Потом создаём креды TLS и указываем полученные сертификаты в своих полях.
Так и завелось.
Ну не стукайте, всеж мы люди
Аноним 18/10/19 Птн 09:53:10 1499122133
image.png (48Кб, 1020x279)
1020x279
>>1499121
Второй пик отклеился
Аноним 18/10/19 Птн 13:27:10 1499252134
photo2019-10-18[...].jpg (52Кб, 1280x498)
1280x498
Аноним 18/10/19 Птн 14:43:20 1499330135
>>1499252
Ну и причём здесь го? Картинка смешная, но это про кубернетес.
Если ты запостил это в тему того, что кубернетес "такой плохой", потому что написан на го, то:
- Он написан на го джавистами, которые написали джавоговно на го, отсюда и самопальные дженерики и неадекватная структура в коде кубов;
- Столько мемов про кубы не потому, что они плохо написаны, а потому, что это очень сложная (в смысле complex, а не hard) технология, которую нужно понимать и уметь правильно готовить.
Аноним 18/10/19 Птн 16:15:08 1499377136
>>1499330
>Если ты запостил это в тему того, что кубернетес "такой плохой", потому что написан на го
Нет, просто я только в этом треде на бордах сижу. Никакой агрессии я не нес.
>- Он написан на го джавистами, которые написали джавоговно на го, отсюда и самопальные дженерики и неадекватная структура в коде кубов;
Про это вообще не знал, я из всего кода только мейкфайлы листал. И то только ради праздного интереса.
>- Столько мемов про кубы не потому, что они плохо написаны, а потому, что это очень сложная (в смысле complex, а не hard) технология, которую нужно понимать и уметь правильно готовить.
Именно об этом и картинка
Аноним 19/10/19 Суб 12:44:32 1499897137
16 лет,собираюсь выучить голанг чтобы устроится на работу(хотя б какую-нибудь)
Идет как почти первый язык.до этого изучал немного изучал си,ну так,пару книг(собственно поэтому к голангу и присмотрелся,синтаксис похож сильно и приятен глазу
Можете отговорить/одобрить это дело?Пока прошел только готур и вроде норм
Аноним 19/10/19 Суб 12:49:33 1499903138
>>1499897
Посмотри на количество и качество вакансий в своем городе. Достаточно ли их? Есть ли вакансии для новичка без опыта в принципе?
Аноним 19/10/19 Суб 12:55:54 1499912139
>>1499903
Сам из москвы,думаю с вакансиями тут проблем особо не будет надеюсь.Просто на днях наткнулся на мысль что сишка это конечно очень здорово,быстро там,можно много чего веселого писать,но работу я хуй найду на нее(если смотреть на вакансии то там нужны люди с опытом 10+ лет и знаниям системы на уровне руссиновича).Собственно из-за этого и встал выбор что теперь учить
Аноним 19/10/19 Суб 13:43:10 1499955140
>>1499912
Го - вполне хороший язык для новичка, но у него действительно не так много вакансий по сравнению с джавой, и вряд ли среди них много новичковых.
Но в Москве скорее всего проблем не будет.
Единственное, я бы тебе не рекомендовал останавливаться только на го, в свободное время обязательно возьми изучи хотя бы базовый курс фронтенда и что-то более классическое вроде тех же С++ или там Java, чтобы разбираться в ООП и классических реализациях паттернов (я советую это новичка в независимости от того, какой язык они хотят учить, хоть питон, хоть го, хоть пхп).
Аноним 19/10/19 Суб 14:06:00 1499986141
у го легко поднять вебсокеты ?
Аноним 19/10/19 Суб 15:18:59 1500020142
>>1499986
Сами вебсокеты - на изичах, пакет gorilla/websocket, если не путаю. Но обычно проблема в протоколах поверх сокетов, там целая пачка задач вида подтверждения получения запросов, подписок, избавления от дубликатов и так далее. Так что вариант "написания самому" лучше приберечь под конец (если это не пет-проект, конечно же).
На ноде я бы взял socket.io, но он, к сожалению, на го имеет крайне посредственные реализации.
Вроде бы, сейчас наиболее приличный пакет для этого - это centrifuge или centrifugo (не помню, кто из этих двоих), сам я его не юзал.
Ну и в го хорошо работает grpc, который вполне себе замена вебсокетам.
Аноним 19/10/19 Суб 16:23:34 1500056143
>>1500020
еще вопрос,я ведь нуб
на го можно запилить еще регистрацию,доступ к БД,или ну его нах,и реализовать это на пхпа го оставить сокеты и немного логики для работы с юзерами?
Аноним 19/10/19 Суб 16:32:27 1500060144
>>1500056
короче,нужен легкий фреймворк,к которому можно подключить пакеты(наверно это у вас так называется)
Аноним 19/10/19 Суб 21:50:30 1500264145
>>1500060
На го нет единого фреймворка-комбайна, как в php. На го принято собирать свой проект по частям из мини-библиотек.
Всё, что ты хочешь, на го сделать можно, и довольно легко - ищи подходящие библиотеки (ищи в awesome-go) и используй.

Выбор между "сделать только на го" и "сделать часть на го, часть на пыхе" однозначно сделать сложно. Лично я бы сделал вообще всё на го. Но если у тебя больше скиллов в php - то можешь оставить го в качестве эдакого "сокет гейтвея", почему бы и нет.
Аноним 19/10/19 Суб 21:55:36 1500270146
>>1500264
а что,сайт можно на го собрать по кускам,от роутинга,БД до сокетов?
Аноним 19/10/19 Суб 22:07:44 1500278147
Вот вы говорите, что у вас многопоток реализован на синтаксисе, а чем он не реализован в джаве и шарпе с их Thread ?
Аноним 19/10/19 Суб 22:13:17 1500281148
>>1500278
Говорят что в гошечке 500 долларовая макака может с потоками работать
Аноним 19/10/19 Суб 22:18:21 1500282149
Аноним 19/10/19 Суб 22:30:50 1500285150
>>1500270
Я именно это и написал. Сайт - это набор механизмов: веб-сервер, роутинг, работа с бд и т.п. Иногда эти механизмы дают тебе сразу в комплекте, как какой-нибудь Laravel. В го подход другой.

>>1500278
Многопоточность в го реализована не "на синтаксисе", а является частью самого го, так что да, с ней легче работать. И да, это хорошо.
Аноним 19/10/19 Суб 22:32:31 1500286151
>>1500285
а есть к-л тутор,как это собрать?
Аноним 19/10/19 Суб 22:36:34 1500292152
>>1500285
>а является частью самого го
А на тех языках это отдельная либа чтоли? Тоже часть базового пакета.
Или ты про то, что любая прога Го будет дефолтно многопоточна, а уж пользоваться им или нет решать тебе ?
Аноним 19/10/19 Суб 22:43:18 1500296153
>>1500286
Нет, потому что на "подключение библиотек" нет стандартов, ни в одном из языков, что я видел. Это довольно тривиально, на самом деле, обычная работа с кодом. Как правило, в любом нормальном пакете есть примеры, как с ним работать.
Вся соль в том, чтобы правильно выстроить приложение из этих библиотек - и тут каждый действует на свой вкус и знания (большинство пишут говно, конечно).
Если ты новичок - то тебе определённо будет легче максимум работы выполнять в рамках фреймворка, гугля любой вопрос в стиле "how to do ... in Laravel". Где-то года через 2-3 при определённой удаче начнёшь разбираться, как в принципе стоит выстраивать архитектуру приложений.
Аноним 19/10/19 Суб 22:44:21 1500297154
>>1500278
Потому что тупо треды - это низкоуровневая хуита без какой либо модели, и ты гарантировано с ними насосёшься если их будет больше трёх.То что Thread это типа класс - это вообще отдельная хохма, ведь тред != объект, как минимум потому что у них разное время жизни.
Короче именно из-за джявы с Thread возник миф что concurrency is hard. Это при том что есть языки типа Erlang и Go, где concurrency is easy.
К счастью, сегодня уже все чуть лучше, ведь есть Akka, которую даже в сисярп портировали. С другой стороны, любая привнесённая извне надстройка всегда хуже, чем если язык изначально задизайнен с этой фичей и она напрямую поддерживается платформой.
Аноним 19/10/19 Суб 22:46:35 1500301155
>>1500296
вот го многопоточный язык,нода однопоточная асинхроннная.
го лучше ?
Аноним 19/10/19 Суб 22:49:41 1500303156
>>1500292
Да, если сравнивать го с php или тем же node.js, то ключевая разница будет в том, что php по умолчанию однопоточен, сам твой код запускается уже в рамках одного потока обработки запроса. По сути, веб-сервер создаёт поток, в котором уже запускается твой код. Пхп иногда надстраивают до ассинхронной работы (это не равно многопоточности, ты можешь погуглить разницу между этими двумя вещами) внешними расширениями, но я это воспринимаю скорее как извращения, потому что пхп изначально задизайнен так, чтобы выполнять всё в одном потоке, синхронно.

Го в отличие от пхп многопоточен по умолчанию, веб-сервер уже заранее встроен в сам го и на каждый запрос го запустит легковесный виртуальный поток, в котором вызовет твою функцию.
Аноним 19/10/19 Суб 22:50:35 1500305157
>>1500296
а как обстоят дела с богатством этих библиотек на все случаи?
Аноним 19/10/19 Суб 22:51:34 1500308158
>>1500301
Го эффективнее утилизирует ресурсы системы, да. А ещё он компилируемый и более низкоуровневый. Поэтому с точки зрения производительности он бесспорно эффективнее.
Но с точки зрения поиска работы нода скорее всего популярнее.
Смотри сам, что для тебя является "лучше",
Аноним 19/10/19 Суб 22:52:58 1500309159
>>1500308
для меня лучше то,что я могу эффективно и быстро реализовать.
Аноним 19/10/19 Суб 22:54:09 1500310160
>>1500305
Го достаточно взрослый для того, чтобы библиотеки закрывали всё или почти всё, что нужно. Я за три года, что пишу на го, практически ни разу не сталкивался с тем, что чего-то нет.
Бывает, что написано не так, как мне бы хотелось, это да - но это не гошный эксклюзив.
Аноним 19/10/19 Суб 22:57:13 1500313161
>>1500309
Если я понял, то с php ты уже на каком-то уровне знаком. Это достаточно хороший язык с достаточно качественной экосистемой, чтобы иметь возможность сделать на нём что угодно за малым исключением. Поэтому я тебе рекомендую максимально делать на нём. То, что он не может (по сути, только вебсокеты) вынеси в го или ноду, только не усложняй. В ноду тебе скорее всего будет даже проще, кстати, потому что ты можешь взять socket.io (библиотека такая) и на сервере, и на клиенте и минимизировать свои усилия.
Аноним 19/10/19 Суб 23:00:00 1500315162
>>1500313
ну я тоже думаю насчет ноды,как вката хуяк-хуяк и в продакшен,если надо,переписать на го
Аноним 19/10/19 Суб 23:00:31 1500317163
>>1500315
те для прототипирования
Аноним 19/10/19 Суб 23:11:42 1500322164
>>1500297
>из-за джявы с Thread возник миф что concurrency is hard.
Ну как бы треады там в 95 году появились, вот и хард. А гошке сколько лет.
Аноним 19/10/19 Суб 23:16:01 1500325165
>>1500303
А как обстоят дела с синхронизацией потоков? Когда два метода например обращаются к одному и тому же объекту?
ну getBalance() и makeDeposit() одновременно
Аноним 19/10/19 Суб 23:40:22 1500337166
Аноним 20/10/19 Вск 00:09:23 1500356167
>>1500325
В двух словах, память общая, так что может быть конфуз. Решается правильным структурированием программы и примитивами из пакета sync.
Проходи tour of go, там всё есть.
Аноним 20/10/19 Вск 22:41:49 1501045168
Теперь честно: вам нравится этот язык?
Аноним 20/10/19 Вск 22:45:27 1501047169
>>1501045
Английский > rust > python > говяжий в маринаде
Аноним 20/10/19 Вск 23:18:59 1501071170
>>1501047
Ruby > scala > татарский > С > арабский > говяжий
Аноним 20/10/19 Вск 23:51:23 1501099171
Аноним 21/10/19 Пнд 03:03:54 1501193172
Аноним 21/10/19 Пнд 03:48:19 1501198173
Аноним 21/10/19 Пнд 10:11:07 1501305174
>>1501045
Я хотлел бы на нем работать. После ноды - как глоток свежего воздуха
Аноним 21/10/19 Пнд 12:41:05 1501402175
>>1501045
Синтаксис местами достаточно уродлив, но в целом ок.
Аноним 21/10/19 Пнд 13:02:33 1501440176
>>1501305
чем тебе сука нода не угодила?
Аноним 21/10/19 Пнд 13:16:42 1501450177
>>1501402
Синтаксис тут уебищен. Гугл не мог сделать что-то по-лучше?
Аноним 21/10/19 Пнд 13:28:38 1501454178
>>1482998
этот бенч хуйня полная, ты исходники бы хоть посмотрел перед тем как сюда это говно тащить. его проекты не имеют ни какого отношения к реальным, это просто сборище костылей и хаков, вплоть до отчати статичного буфера с хэллоу вордом. реальность такова - что жаба тормозное говно, а на расте писать очень дорого.
Аноним 21/10/19 Пнд 13:30:52 1501455179
>>1483182
аутист, бенч реал приложух это бенч, внезапно, реальных приложух. возьми аналогичные приложухи и сравнивай, например жабовский zk против гошного etcd, жабовский zuul против гошного traefik итд. только никакой интриги не будет - жаба это отсос и увеличенное потребление памяти.
Аноним 21/10/19 Пнд 13:43:07 1501469180
>>1501450
тогда велком ту эликсир
Аноним 21/10/19 Пнд 13:50:55 1501474181
>>1501469
>тогда велком ту эликсир
Работа есть? Мать жива будет?
Аноним 21/10/19 Пнд 13:55:59 1501481182
>>1501474
хватит,щас многие проэкты переписывают с руби на элик или пишут сразу с нуля
Аноним 21/10/19 Пнд 13:59:20 1501487183
>>1501469
увы, но он не ровня го. т.к. сосёт на cpu задачах, там годный ио и конкаренси, но эликсир сам по себе как и эрланг довольно тормозной язык.
Аноним 21/10/19 Пнд 14:00:55 1501488184
>>1501487
относительно го-да,но в отношении большинства-даст просраться
Аноним 21/10/19 Пнд 14:25:41 1501516185
155533849315739[...].png (401Кб, 650x616)
650x616
>>1501440
Пидорасы надоели, которые привыкли на своём фронте говнокодить и тащат свои уёбищные синглетоны в мой чистый бекенд. И блять типизации никакой не поддерживают. На один проект на node.js с тайпскриптом приходится десять написанных на чистой магии, когда хуй поймёшь что и куда приходит, в разных ситуациях - разные наборы полей.
Аноним 21/10/19 Пнд 14:42:18 1501538186
>>1501516
джавист порвался,несите следуещего
Аноним 21/10/19 Пнд 14:44:24 1501546187
>>1501538
Мамку свою неси, азаза
Аноним 21/10/19 Пнд 14:45:31 1501548188
>>1501440
Всего 2:
>Cannot read property of undefined In JavaScript
>TypeError: "foo" is not a function
Рефакторинг в большом проекте на динамикоговне - та еще боль.
TS не помогает, когда колеги и тимлид игнорит его
Аноним 21/10/19 Пнд 14:46:31 1501550189
>>1501538
Словно кроме б-г мерзкой жабы нигде нет статичной проверки типов
Аноним 21/10/19 Пнд 14:56:26 1501563190
>>1501548
ну значит они дебилы,что не используют такую простую,но важную фичу
Аноним 21/10/19 Пнд 15:07:38 1501574191
>>1501071

Эльфийский > Английский > Python > JS > Go > PHP > C# > Java > ...
Аноним 21/10/19 Пнд 15:13:40 1501579192
>>1501045

Хз. Минималистичное ООП, функциональные замыкания как в ЖС, но из-за строгой типизации приходится городить код не только для реализации бизнес-логики, но и для проверки и каста типов.
Аноним 22/10/19 Втр 11:30:50 1502072193
>>1501045
Нет, но выбора увы тоже нет, после го и эрланга/эликсира, понимаешь, что языки без грин тредов (не считая системных, там своя атмосфера) - это говно и нинужно. Это как сраниват ькрасивую карету и топорный автомобиль невразчный, но автомобиль один хер удобнее, даже если он страшный.
Аноним 22/10/19 Втр 11:55:48 1502091194
>>1502072
Как бы корутины из того же котлина вполне себе те же задачи решают. В джаву грин-треды вроде тоже или внедряют, или собираются. Нода, хоть и говно, но async-await позволяет писать примерно такой же синхронный код, а в ограничения по утилизации ресурсов системы (когда го начнёт выигрывать ноду) надо ещё умудриться упереться.
В-общем, грин-треды - это прикольно, но не панацея.

Лично мне го нравится сочетанием неусложнённости и производительности. Язык не идеальный, конечно, но идеальных я ещё не видел.
Аноним 22/10/19 Втр 13:26:34 1502138195
>>1502091
В жабу грин-треды завозят уже примерно 9 лет, и всё никак не довезут - project loom.
Грин треды и корутины - это свойство рантайма, а не просто либа, как большинство костылей на жвм. Вот есть у тебя котлин-корутины, и никакого толку от этого нет, так как их никто не использует кроме небольшего числа новых проектов. Условно гворя беря либу на го - ты её просто пользуешь и всё, она будет использовать те же каналы, те же корутины, тот же шедулер что и весь остальной код. Беря либу на жвм - ты берёшь или блокирующее легаси или очередной велосипед на тему асинка, который нужно будет дружить с основным велосипедом твоего проекта - kotlin.crorutines / vertx / zio / quasar / monix итд, тысячи их. Карочи, я к тому, что в плане удоства разработки конкаренси, JVM-based решения - хуйня и даже близко не стоят рядом с го.
Аноним 22/10/19 Втр 14:26:55 1502194196
>>1502072
После свифта и раста понимаешь, что языки без нормальных сам тайпов и опшионалов - это говно и нинужно.
Аноним 22/10/19 Втр 16:55:24 1502291197
>>1502138
>В жабу грин-треды завозят уже примерно 9 лет
Забавно, что изначально они там были, но потом их заменили на нейтив.
Аноним 23/10/19 Срд 10:06:34 1502739198
Как вы думаете, на чем бэк запилить проще: на C++ с либами или на Go с либами?
Аноним 23/10/19 Срд 10:48:10 1502757199
>>1502739
На том, что лучше знаешь. Но при равенстве имхо на го писать проще, потому что многие вещи за тебя решат GC и планировщик.
Аноним 23/10/19 Срд 17:03:26 1503141200
>>1502194
>> После свифта
А почему рот в говне? Как с тобой общаться то теперь?
Аноним 23/10/19 Срд 17:05:56 1503146201
>>1502291
долбоёбы значит, феерически ебласнкое решение, хз как так можно. но думаю их там таки не было, есть ифна где почитать?
Аноним 23/10/19 Срд 17:06:55 1503149202
>>1503141
Да одноклеточным гошникам ясен хуй трудно общаться, слава богу хоть дышать хватает способностей.
Аноним 23/10/19 Срд 17:19:14 1503163203
>>1503149
школоту порвало, дрочающую на красивые сигнатуры функций, найс.
смотри, уёба, го - простой язык, для решения сложных задач, там где важна архитектура, убогая сфивтомакака (как ты) даже не слышала о таком. всю свою блевотную ссанину, ты будешь запускать на сервисах реализованных на го, они будет деплоится в кубере, выполнять сервис дискваери через etcd или координироваться через consul, объединятся в сложные service mesh топологии через istio и собираться в докер контейнеры. го - по сути вершина промышленной разработки, нам трудно общаться потому-что ты не инженер, а просто напёрдыш, горстка чиркашей на теле IT, иди к аким-нибудь скалистам мерятся type safety для задача уровня сложности "идиот".
Аноним 23/10/19 Срд 17:25:50 1503168204
>>1503163
> школоту порвало
> мелкобуквенная бугуртная простыня следом
Аноним 23/10/19 Срд 21:35:00 1503368205
Учу ваш чудо-юдо-язык около недели. Писал сегодня 2 часа один проект, ни разу не компилируя, только что запустил, а все работает! Ни одного бага! Екарный бабай, как так.
23/10/19 Срд 23:50:03 1503478206
>>1503163
>Ряяяя я на своей процедурной дрисне ришаю сложные задачи ни то что вы на красоту кода дрочите!

Мде, где-то я это уже слышал. Риальне, goвноеды- новая, деградировавшая версия сидаунов.
Аноним 23/10/19 Срд 23:52:38 1503480207
>>1503478
Ты потралить пришёл?
Аноним 24/10/19 Чтв 07:54:38 1503593208
>>1503478
Этот совсем деградировал, уносите
Аноним 24/10/19 Чтв 14:17:14 1503790209
Аноним 24/10/19 Чтв 15:55:39 1503868210
>>1503790
Да, люблю эти гипертрофированные (но не настолько как студия) ИДЕшки.
Аноним 24/10/19 Чтв 18:07:56 1503935211
>>1503868
Они прикольные, и когда научишься ими пользоваться (и если стек подходящий, т.е. не js и не php), то действительно практически ничего не делаешь руками. Абсолютное каждое действие вроде "объявить метод", "добавить метод в интерфейс и все классы, что его реализуют", "вынести выделение в переменную или отдельный метод", "добавить инъекцию черех конструктор" и т.п. делается одним привычным сочетанием клавиш.
В итоге становится очень больно смотреть на неудачников особо упорных личностей, которые так мееедленно тыкают мышкой в файлики и вручную копипастят код.
мимо-анон
Аноним 24/10/19 Чтв 20:15:34 1504013212
>>1503935
Я раньше страдал долбоебизмом, писал в vim'е и обдрачивался. Потом симптомы постепенно пропали.
Аноним 26/10/19 Суб 22:09:58 1505596213
>>1483167
Не надо тут, даже сишка повыразительнее будет при необходимости.
Аноним 26/10/19 Суб 22:16:33 1505605214
>>1483153
Лол, а теперь посмотри на языки вроде хацкеля/окамла/раста/свифта и пойми, что переупрощенный синтаксис хорошо подходит для написания хелловорлдов и хуево подходит для всего чуть более сложного. По-настоящему интутитивный способ написания многопоточных программ -- в BEAM VM (эрланг, эликсир и еще какое-то лиспоподобие было). Не хочешь ебанутых проблем с мьютексами? Не используй, если проблему возможно переформулировать. Это ваше CSP подходит далеко не для всего.
Самый легкий синтаксис -- у лиспа, очевидно. И в го нихера не строгая типизация -- одна только конструкция interface {} с последующим приведениям к типам чего стоит. Говно, а не язык.
Аноним 26/10/19 Суб 22:22:01 1505612215
>>1503163
Лол блядь, щас бы называть язык, пославший нахуй результат эволюции ЯП на протяжении лет 30-40, а затем спешно меняя штаны после обсера, вершиной промышленной разработки. Тебе там без нормальной системы типов и дженериков нормально живется, ребенок?
Аноним 26/10/19 Суб 22:34:53 1505631216
>>1483153
Уже можно найти элемент в массиве или все ещё никак?
Аноним 26/10/19 Суб 23:28:12 1505727217
>>1505605
>По-настоящему интутитивный способ написания многопоточных программ -- в BEAM VM (эрланг, эликсир и еще какое-то лиспоподобие было)
бизнесу похуй. В гробу он видал твою БИМ. К сожалению, это реалии, за языком больше не может стоять дух авантюризма, присущий в 90-х. Пишем на том, что скажут.
Аноним 26/10/19 Суб 23:44:35 1505743218
Почему в этом треде, значительно чаще, чем в других язычок-тредах, упоминается некий «бизнес».
Тут сидят владельцы айти-компаний?
Аноним 26/10/19 Суб 23:53:22 1505759219
>>1505743
Просто goвноеды осознают на каком говне пишут и поэтому постоянно пытаются себя загипнотизировать, типа на самом деле язык хороший, разве может Бизнестм выбрать плохой язык, он же раньше никогда такого не делал.
Аноним 27/10/19 Вск 00:01:37 1505766220
>>1505727
Лол, то-то воцап и дискорд на beam vm работают.
Аноним 27/10/19 Вск 11:09:49 1505966221
>>1505759
>>1505612

Почему вас так бомбит от go? Вас заставляют на нем писать? От зависти? Чтобы потешить ЧСВ?
Аноним 27/10/19 Вск 11:21:29 1505975222
>>1505966
В каком-то смысле.
Бывает заходишь на проект на нормальном языке и вроде все норм, а потом выясняется что “А у нас тут Толян для этой задачи вьебал сервис на Go”, причём мотивация Толяна была только в том чтоб пописать на новом хайповом языке. И ты такой с fuuu-фейсом думаешь, мда теперь ещё поддерживать хуиту на недоязыке из восьмидесятых.
Аноним 27/10/19 Вск 11:22:46 1505977223
>>1505975
А что ж это за компания, которая позволяет Толянам писать на чем они хотят?
Аноним 27/10/19 Вск 11:36:42 1505986224
>>1505977
Да вот бывают такие, с плоской моделью и большой степенью автономности. Ну или если контора маленькая и CTO сам хипстерок еще тот.
Аноним 27/10/19 Вск 11:37:54 1505987225
>>1505986
Тогда почему ты там?
Аноним 27/10/19 Вск 11:45:54 1505991226
>>1505987
Я сьебал, но осадок остался.
Аноним 27/10/19 Вск 11:53:40 1505995227
сервер для простой онлайн игры на го можно запилить?
Аноним 27/10/19 Вск 12:36:35 1506017228
>>1505995
Можно, но не нужно. Поверь, для этих целей больше подойдут жабка, кресты, вот это все.
Можешь попробовать на эликсире с растом, но это на твой страх и риск и скорее всего не взлетит, лол.
Аноним 27/10/19 Вск 13:59:56 1506059229
>>1506017
мне максимум на 100-200 игроков
Аноним 27/10/19 Вск 14:38:32 1506079230
>>1506059
Для таких целей даже го оверкилл, на питоне запили, лол.
Аноним 27/10/19 Вск 15:15:38 1506101231
>>1506017
По каким причинам го не подходит для данной задачи также, как кресты или жаба?
Аноним 27/10/19 Вск 16:45:26 1506230232
>>1506101
Потому что
1. В крестах ты вручную управляешь памятью, что ценно при гонке за производительностью.
2. Что джава, что кресты банально предоставляют нужный уровень абстракции, ты не будешь передавать в качестве аргумента объект типа interface {}.
3. Контроль за многопоточностью в таких приложениях нужен филигранный.

Тут даже хаскель лучше подходит, потому что, при схожей производительности, обеспечивает намного большую степень гибкости и надежности.
Аноним 27/10/19 Вск 16:50:56 1506237233
>>1506101
Не слушай его, это местный шизик.
Бери тот язык, в котором разбираешься лучше. И го нормально подойдет для задачи.
Аноним 27/10/19 Вск 17:26:22 1506259234
>>1506237
На самом деле я плюсовик, лол. Просто не хейчу другие языки и было интересно мнение по этому поводу. У меня приятель микросервисы на Го ебашит, вроде для своей ниши ЯП вполне нормальный, хз чего его хейтят.
Аноним 27/10/19 Вск 20:41:09 1506978235
>>1506259
Люди любят хейтить тех, кто от них отличается. Гошники отличаются от джавистов, можно хейтить значит.
Аноним 27/10/19 Вск 23:00:30 1507094236
>>1496719
В комунити пришли рубисты, и им стало неприятно без своих привычных фич, вот и впилили.
Аноним 28/10/19 Пнд 00:06:46 1507118237
>>1507094
Да мимо уже, го не в тренде. Сейчас бы еще какой-нибудь лисп или кобол вспоминать.
Аноним 28/10/19 Пнд 01:32:29 1507135238
Аноним 28/10/19 Пнд 04:42:35 1507162239
>>1507135
SAS, Goviaji, APL - зависит от задачи.
Аноним 28/10/19 Пнд 06:24:05 1507175240
Вкатываюсь в эту движуху. Есть русскоязычная литература?
Аноним 28/10/19 Пнд 08:29:38 1507193241
>>1507175
Дофига, гугли. Плюс, есть активное сообщество в слаке golang-ru.slack.com (хотя там не всем можно верить, есть наркоманы, дающие странные советы)
Аноним 28/10/19 Пнд 13:56:40 1507347242
>>1505612
Уёба, хороший конкаренси куда важшее чем твои "нормальные" системы типов и гейнерики. На уровне архитектуры сложной системы вообще насрать на завитушки в типах, ты можешь оброчится хоть всякими HKT, но это тебе не поможет толком с оздании сложной системы типа кубера. На продвинутые типы дрочат как раз школьники и дети, которые красят кнопки либо академические аутисты, которые пишут наколеночные залепухи. Тебя, долбоёба, не смущает, что все самые сложные системы вообще на си написаны? а? (По типу ядра линукса). Перфоманс и конркаенси вот что важно, а не твоя хуебарга.
Аноним 28/10/19 Пнд 14:03:40 1507366243
>>1506230
Ты идиот? Ни в крестах, ни в жабе нет грин тредов, крестам это проститетльно - они системный язык. Жабе - нет. Разрабатывать на го приложухи где много работы с ИО в десятки раз удобнее, чем на твоей обосанной жабе, блядь, у них на го уже будет протип продукта, пока ты будешь ебаться с netty или котлин-корутинами, в и в итоге отсосешь по производительности и потреблнию памяти у гошного решения.
Аноним 28/10/19 Пнд 15:14:41 1507439244
Хули раскукарекались? Нужна как и платформа (производительность, конкарренси, всё такое), так и экосистема (синтаксический сахар, библиотеки).
Го только недавно стартовал, платформа хорошая, экосистема только развивается. Пройдёт время - разрабатывать будет также комфортно, как и на джаве, но производительнее.
А джава к тому времени, возможно, вырастет в противоположную сторону, таки выкатив грин-треды и прочее. Хотя ей сложнее, у неё легаси больше.
Аноним 28/10/19 Пнд 15:23:33 1507444245
>>1507347
> но это тебе не поможет толком с оздании сложной системы типа кубера
Иронично, что в пример ты приводишь куб, в котором соорудили свою систему типов и суррогат дженериков, лолблядь.
Аноним 28/10/19 Пнд 15:24:24 1507445246
>>1507366
> описываешь свои аргументы
> получаешь оскорбление в ебало
ох уж эти го-фанатики.
Вот скажи мне, что важнее всего в высоконагруженном игровом сервере? Ответ -- скорость отклика. Если у тебя пинг скачет как хохол, то игроки на твой сервак забьют и уйдут в более стабильную игру.
Игровые серверы хранят очень много информации в оперативной памяти именно по этой причине. Надеюсь, у тебя хватило бы мозгов не хранить состояние чего-то вроде раунда в кс на жестком диске.
Твои грин-треды не являются решением для всего, маня.
Если я правильно помню, в го многозадачность кооперативная, а это не есть гут, если тебе нужно детально контролировать каждый чих каждого игрока, разделяя состояние между потоками.
Да, у го будет выше производительность, чем у джавы, но ты проигнорировал аргумент о системе типов. Допустим, ребята на го накидают какой-то сервер быстрее, чем ребята на джаве/скале/еще чем-то. А насколько такой прототип будет расширяемый? Ты понимаешь, что если прототип не расширяемый и не поддерживает большую нагрузку, то про игру забудут через несколько дней?

Чувак, не пихай го в нишу, в которой его применение является заведомо проигрышным вариантом. А лучше вообще его никуда не пихай, пока нормальные абстракции не завезут.
Аноним 28/10/19 Пнд 16:08:43 1507498247
>>1507444
Я, кстати, писал выше:
> Он написан на го джавистами, которые написали джавоговно на го, отсюда и самопальные дженерики и неадекватная структура в коде кубов;
Там вообще забавная история произошла. Гуглы сначала написали альфу кубернетеса на джаве, а потом поняли, что нужно пиарить свой новый язык и менеджеры приняли решение заставить программистов переписать всё на го. Так как гугловых джавистов никто даже не собирался обучать гошечке, а им просто сказали "переделывайте", так что они просто пожали плечами, прочитали мануал по синтаксису го и написали кубер на го на джаве.
Соответственно, кубернетес написан отвратительно, но не из-за проблем с языком, а из-за менеджерских проблем (как и всегда, лол).

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

спорят два идиота-фанатика и засирают мой тред, достали уже
мимо-анон
Аноним 28/10/19 Пнд 16:39:41 1507555248
>>1507498
Ну так и зачем везде приводить его в пример, если он написан как говно-то? С тем же успехом можно посылать нюфагов изучающих си в исходники какого нибудь уёбищного gcc или линукса (где нестандартных расширений языка ещё на 2 стандарта си хватит) вместо няшных исходников бсд и хвастаться — сортите, как можим!
Аноним 28/10/19 Пнд 17:03:51 1507587249
>>1507555
Хз, вопрос к даунам, которые приводят его в пример.
Аноним 29/10/19 Втр 10:14:01 1508147250
>>1507498
пруфани, что он написан на го ради пиара. он написан го потому-что го лучше подходит для таких задач, потому-что куб на джвае будет жрать в несколько раз больше памяти и тормозить. жаба жирная и тормозная - это факт, для рядового проекта, если ты пользуешь обычные либы и экосистему (которая является всратым легаси по большей части, с блокирующим ио). чтобы нормально что-то написать на жабе придётся изобредать велосипеды и потратить хуеву тучу времени.
пруфани, кстати, что он изначально был на жабе.
Аноним 29/10/19 Втр 10:20:55 1508150251
>>1507445
ты какую-то хуйню несёшь.
1. ничего не мешает тебе сделать низкую скорость отклика. Да, в го кооперативная многозадачность, но горутину можно убить, если там нет долгой блокирующей операции (через канал например). Опять же если тебе нужна вытесняющая многозадачность - велком ту эрланг, нахуй ты опять свой жвм велосипед катишь? не проще ли забивать гвозди молотком, а не отвёрткой?
2. у тебя самого хватило мозгов понять, что off-heap храннение доступно почти на всех мейн-стрим платформах?
3. схуяли не расширяемый? может твоя команда не умеет в проектирование? есть куча сложных и масштабных проектов, и ничего расширяются допиливаются.
Аноним 29/10/19 Втр 10:59:31 1508168252
Аноним 29/10/19 Втр 11:09:29 1508179253
Go Standard Packages https://golang.org/pkg/
Где можно прочитать русский перевод документации к стандартным пакетам?
Кстати, почему в Китае Go так популярен? Китайцы уже перевели документацию:
https://go-zh.org/pkg/
https://github.com/Go-zh/go
Аноним 29/10/19 Втр 13:12:44 1508277254
>>1508150
Чем больше вижу сообщений в этом треде, тем больше убеждаюсь, что go-кодеры самые отбитые и недалекие, лол.
Ты когда-нибудь писал по-настоящему сложный игровой сервер?
Или вообще что-нибудь, что одновременно должно терпеть высокие нагрузки и быть сложнее калькулятора? Про адекватную систему типов слышал? Нет? Оно и видно, лол. этот тезис ты, кстати, почему-то постоянно игнорируешь. Видимо, все же понимаешь, что тут даже заикаться бесполезно.
Про тот же кубер уже выше написали, что там эмуляция дженериков сделана, потому что го сам по себе ущербное поделие из 80-ых в худшем смысле.

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

какие же большинство go-шников агрессивные дегенераты, пиздец просто
Аноним 29/10/19 Втр 13:45:49 1508318255
>>1508277
Просто не спорь с этим поехавшим. У любого стека есть неадекватные фанатики.
Аноним 29/10/19 Втр 16:13:55 1508436256
>>1508277
ты кроме своей "адекватная система типов" нихуя по делу сказать не можешь. игровые сервера... блядь, маня, мир не сходится в игровых серврах, какая-нибудь сложная распределённая реляционка типа cockorach или tidb куда сложнее твеого обосанного игрового сервера и предъявляет такие же требования по работе с ио и верменем отклика.
Аноним 29/10/19 Втр 22:08:07 1508736257
>>1508318
Не могу не согласиться, но последние 5 копеек все же вставлю.

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

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

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

Как же жаль тебя, адепт го, ты ведь так себя ограничиваешь, принципиально отказываясь рассматривать другие подходы и технологии. Хотя, так ты никогда не узнаешь, что на само деле твой язык -- просто говно, которое гугл который, блджад, не всегда прав решил по какому-то странному стечению обстоятельств хоть как-то отбить инвестиции зафорсить. Впрочем, вряд ли у тебя хватит интеллекта для того, чтобы пересмотреть свое мнение.
Аноним 29/10/19 Втр 23:47:21 1508824258
Аноним 30/10/19 Срд 00:04:58 1508827259
Аноним 30/10/19 Срд 00:08:05 1508828260
>>1508827
Спасибо, вкурил вроде.
Аноним 31/10/19 Чтв 09:10:37 1509590261
Подскажите студенту, желающему вкатиться в бекенд. Чем похожи и чем отлияабтся эрланг/эликсир и го, какие преимущества и недостатки у них относительно друг друга и относительно других языков для бекенда? Меня больше всего интересует разработка тех кусков бекенда, где максимальная нагрузка, много параллельных соединений, возможность широкого масштабирования системы. На чем пишут такие вещи для продуктов типа скайпа, твитча, и телеграма, и самое интересное бекенд ммо игр типа world of warcraft, lol, dota?
Аноним 31/10/19 Чтв 09:48:50 1509598262
>>1509590
ОЖИДАНИЕ
Пишешь высоконагруженные сервисы для всемирно известных продуктов, типа твитча или доты
РЕАЛЬНОСТЬ
Пишешь очередной аналог убера для говностартапа
Аноним 31/10/19 Чтв 09:55:07 1509601263
>>1509590
У Го есть неоспоримое преимущество перед эликсиром/эрлангом : вакансий гораздо больше

Бэкенд твитча писался на го
Аноним 31/10/19 Чтв 09:55:47 1509602264
>>1509590
А ты будешь то вкатыватсья в принципе? Список у тебя подозрительный, похоже на малолетнего школьника-иградауна, такие обычно кричат "хочу игори писать!", а потом забивают и дальше идут гамать и аутировать в твиче. В больших конторах зоопарки там обычно нет какого-то одного языка или плафтмормы, можно сказать только в общих чертах.

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

скайп - мало, что известно, в основном C++
твич - C, C++, Go
телега - вообще хз, если кто расскажет будет интересно
вов - в основном плюсы
Аноним 31/10/19 Чтв 11:10:02 1509639265
>>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% С++
Аноним 31/10/19 Чтв 11:10:40 1509640266
>>1509602
Скайп давно уже является оболочкой для msm, всё оригинально-скайповое из него давно вырезали.
Аноним 31/10/19 Чтв 11:16:34 1509644267
Да, геймдев - что бек, что фронт - это плюсы, и пока альтернатив особо нет. Есть еще java и до-диез, но это не так популярно.
Но выбор языка - это вообще очень сложная вещь и там много факторов, кроме популярности.
В eve online, например, бекенд вооще на питоне написан
Аноним 31/10/19 Чтв 12:44:25 1509703268
>>1509644
>Но выбор языка - это вообще очень сложная вещь и там много факторов, кроме популярности.
Сроки+кадры, всё, ничего сложного нет тут.
Другое дело, если ты сам пишешь себе манясервер на 1,5 человек. Но тут уж хоть на хаскелле пиши, хуйлоада всё равно не будет нужно выбирать тупо самый знакомый инструмент.
Аноним 31/10/19 Чтв 14:05:38 1509776269
>>1509703
>Сроки+кадры, всё, ничего сложного нет тут.
Не знаю как со сроками в EVE было (наверно как везде - нужно на вчера)
Но вопрос - много ли ты знаешь python game dev'ов?
Аноним 31/10/19 Чтв 14:33:02 1509800270
>>1509776
>Но вопрос - много ли ты знаешь python game dev'ов?
А в чём проблема, по-твоему нужно специализироваться на питоне чтобы что-то на нём написать? Прямо куча байтойобов-плюсовиков не освоят за пару вечеров какой нибудь aio и не сварганят сервер?

Алсо, возможно там уже были бэкэндеры на питоне.
Аноним 31/10/19 Чтв 17:13:35 1509935271
>>1509800
Ты меня, на самом деле, убедил. Но в любом языке много своих подводных камней, и питон - не исключение, а у него еще и магии очень много
Аноним 31/10/19 Чтв 18:24:17 1509995272
>>1509935
>а у него еще и магии очень много
Которая хоть и всегда медленно, но работает. И именно из-за этого это язык №1 для вкатывальщиков (и просто №1 по всем количественным статистикам).
Аноним 31/10/19 Чтв 23:24:46 1510290273
>>1509602
Я уже вкатился, но не в настоящий бекенд. Пишу на ноде всякую муть под aws lambda.
Ты ошибаешься, я не хочу писать игры и геймдев мне не интересен, мне интересно делать хайлоад бекенд для массовых продуктов, в том числе для игр, как один из примеров. Интересны конкретно распределенные системы с реальной многопоточностью, параллелизмом, когда одновременно обрабатываются десятки тысяч двусторонних соединений, например. А не как кастрированный асинк авейт в JS с одним потоком.
Аноним 01/11/19 Птн 10:51:06 1510479274
>>1510290
> кастрированный асинк авейт в JS с одним потоком.
У меня для тебя плохие новости, ты не вкатился бекенд. Даже текущий инструмент не освоил, нода многопточна за счёт воркеров, в которых потом используется модель обмена сообщениями, да, у тебя нет аналога util.concurrent из жабы, но данная модель тоже популряна и очень живуча.
нодовская реализация промисов вообще топовая, там самый стабильный и оптимизированный event loop на рынке. Так-то если умень готовить и не увлекатсья абстракиямию можно на NIO задачах получать впечатляющие результаты и махаться с гошкой и netty по перфомансу.
Аноним 01/11/19 Птн 11:12:41 1510493275
>>1510479
Таки ты не совсем прав. Во вполне определённом классе задач (собственно, параллельные действия на уровне логики) нет смысла сравнивать ноду и го, потому что это эвент луп против множества потоков. Например, если мне захочется пробежать массив из триллиона элементов и почему-то он будет у меня в памяти - в го я могу делать это, к примеру, в два потока (с середины и с начала), а в ноде только в цельный проход от начала и до конца, и ничего ты тут не сделаешь.
Другое дело, что по моему опыту это не особенно часто нужно, большая часть бизнес-логики вполне синхронна и её вполне быстро обрабатывает хоть нода, хоть го, хоть прости-господи пыха.
Но это опять же смотря что писать, потому что большая часть той самой бизнес-логики это перекладывание данных из интернетов в базу и наоборот.
Соответственно, если речь идёт о сервере для обсчёта каких-то сложных игровых механик (те же бои в еве), то го или та же джава тебе подойдут лучше, чем нода, за счёт лучшей утилизации ресурсов.
Тут нужно чётко понимать грань, где и какой инструмент использовать, потому что для 95% проектов подойдёт что угодно, там и близко нет таких нагрузок. В таких случаях лучше брать то, где ты быстрее выкатишь фичи и получишь $$$, джаву, пыху, ноду или ещё что.
мимо-анон из стартапа по обработке данных, пишем движок на го, а админку и прочий биллинг на пыхе
Аноним 01/11/19 Птн 13:45:40 1510566276
>>1483153
Это у вас аутотренинг такой?
Аноним 01/11/19 Птн 14:12:32 1510591277
image.png (72Кб, 689x536)
689x536
Аноним 01/11/19 Птн 17:14:38 1510752278
>>1510591
А в чём он спиздел-то?
У тебя списочек устаревший кстати, новая версия телеги для яблочных девайсов уже на свифте
https://github.com/overtake/TelegramSwift
А джавы даже на андроиде меньше половины
https://github.com/DrKLO/Telegram
кекус.

Ещё они недавно опубликовали исходники TON
https://github.com/ton-blockchain/ton
которая написана на плюсах, как и всё её окружение
https://github.com/desktop-app
что как бы намекает на чём написан бэк телеги.
Аноним 01/11/19 Птн 18:26:27 1510815279
>>1510479
Но на ноде же не напишешь бекенды уровня дискорда или твитча, и тем более вотсаппа.
Аноним 01/11/19 Птн 18:44:36 1510826280
>>1510752
>на чём написан бэк телеги
на скале?
Аноним 01/11/19 Птн 19:28:48 1510855281
>>1510815
А ноду-то ты каким хуем сюда приплёл?
>дискорда
Судя по их гитхабу у них вообще бэк на элексире (+немного питона), и ботлнеки на расте/плюсах, хипсторы 80 lvl.
Аноним 02/11/19 Суб 16:58:41 1511412282
Аноним 02/11/19 Суб 17:14:30 1511423283
Вам правда нравится паскалевский синтаксис?
Аноним 02/11/19 Суб 23:48:17 1511672284
image.png (88Кб, 271x331)
271x331
Аноним 03/11/19 Вск 00:58:48 1511696285
>>1511423
>паскалевский
го сиподобный
Аноним 03/11/19 Вск 04:11:40 1511768286
Аноним 03/11/19 Вск 05:55:02 1511780287
>>1483040
на гоу пишут обычно небольшой вэб без бизнес логики. например, kubernetes. если задача хоть немного будет меняться, ты затрахаешься использовать го
Аноним 03/11/19 Вск 06:10:16 1511781288
>>1483171
ну раз ноунейм написал, что менее выразительный код go принемет больше clarity - то да, сложно не согласиться
Аноним 03/11/19 Вск 10:13:14 1511820289
>>1511696
Вохвращаемый тип после названия функции
Аноним 03/11/19 Вск 13:34:40 1511960290
>>1511780
Удивлю, но бизнес-логика есть всегда и везде, это по сути именно та полезная работа, которую делает продукт либо сервис. В случае кубернетес, полезная работа - это оркестрация, встроенный планировщик, вот это всё. А вот хранение состояния, кластеризация и там протоколы всякие - это уже инфраструктурный уровень.

>>1483053
Проиграл с местных даунов. Лучше иди и отнаследуй абстрактную виртуальную фабрику фабрик, а то чо у тебя код недостаточно оопшный и магический..
Аноним 03/11/19 Вск 16:48:23 1512167291
>>1483171
Пиздец, это чё рофл? С такой логикой на паскале или няшной вообще всё кристально ясно, а на говне как раз нет ясности, потому что GC затуманивает предсказуемость работы.
Аноним 03/11/19 Вск 22:08:55 1512424292
>>1511820
это не мешает ему быть сиподобным, свифт и пхп тоже имеют возвращаемый тип после функции, например
Аноним 04/11/19 Пнд 12:46:03 1512783293
Аноним 04/11/19 Пнд 13:24:00 1512808294
здорово, мужичье. что посоветуете для работы с БД в голанге. интересует мнение матёрых разработчиков, которые работали с го в продакшню
Аноним 04/11/19 Пнд 17:00:01 1513047295
>>1512783
Что предъявишь свифту как языку? Ты ведь не просто так вскукарекнул без знаний о нем, так ведь?
Аноним 04/11/19 Пнд 18:11:35 1513128296
>>1513047
Он ото всех понемногу взял и в итоге вода.
Аноним 04/11/19 Пнд 18:53:44 1513162297
>>1513128
Что конкретно в свифте ты считаешь водой?
Аноним 04/11/19 Пнд 18:54:34 1513163298
>>1513047
для педиков язык просто и все
Аноним 04/11/19 Пнд 20:00:30 1513228299
Аноним 04/11/19 Пнд 20:27:52 1513255300
Аноним 04/11/19 Пнд 21:51:42 1513344301
>>1513255
Да,педики прикинь))реально на макоси(хуй саси) сидят и на своем свифте пидорском пишут хахаха)))
Аноним 04/11/19 Пнд 21:54:06 1513345302
>>1482493 (OP)
>смеемся над джавистами, которые не могут жить без ексепшенов
Но в 2.х ведь завезли. Кстати нахуя? Ручная обработка ошибок ведь надёжнее
Аноним 04/11/19 Пнд 22:17:01 1513363303
>>1513228
с дефолтной (постгре)
Аноним 04/11/19 Пнд 22:20:13 1513368304
>>1513363
Есть официальный драйвер. Дальше можешь или Gorm навернуть или прямые запросы в базу писать
Аноним 04/11/19 Пнд 23:56:29 1513429305
>>1513345
Не завезли. Читай новости.
Аноним 05/11/19 Втр 00:56:04 1513466306
>>1512808
Использую github.com/jinzhu/gorm
Я не матерый разработчик, а июнь, но вполне работаю в продакшене.
Аноним 05/11/19 Втр 11:09:54 1513609307
>>1510815
напишешь, нода довольно крутая штука, просто нужно уметь готовить. paypal на ноде, netflix начинает её всё больше внедрять.
Аноним 05/11/19 Втр 12:15:06 1513651308
>>1513466
Горм - на редкость херовая штука. Самый главный его минус в том, что он магический, ты не сможешь предсказать, что он сделает. К примеру, угадаешь, что будет, если я вызову db.Delere(user{})? Не угадаешь, он дропнет тебе всю таблицу.
И вместо джоинов он селекты использует и мерджит данные на своей стороне (и довольно медленно).
Его можно использовать для прототипирования, чтобы быстренько круд навернуть и всё такое, но не более.

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

мимо
Аноним 05/11/19 Втр 20:11:45 1514000309
>>1513651
Вот тоже много чего плохого про gorm слышал, поэтому и спросил. спасибо за ответ
Аноним 05/11/19 Втр 23:23:43 1514206310
>>1513609
Я не понимаю. Там же нету настоящей многопоточности.
Аноним 06/11/19 Срд 03:59:33 1514359311
>>1513651
Спасибо, посмотрю.
Вообще, не люблю ORM, но заставляют. мимо июнь
Аноним 06/11/19 Срд 10:01:17 1514392312
>>1514206
а что есть настоящая? шареные между тредами структутры? тогда в эрланге её тоже нет, лол.
Аноним 06/11/19 Срд 10:32:05 1514402313
>>1514392
Как бы очевидно, что анон говорил о том, что в ноде процесс по сути всё равно один, не считая воркеров и ассинхронного io.
Но он неправ в том, что "многопоточность" является киллер-фичей. Нодовой псевдо-многопоточности достаточно для написания достаточно нагруженных апи, так что вполне себе нормально писать на нём хоть дискорд, хоть вотсапп, просто демонов побольше назапускаешь и всё.
Понятно, что это будет несколько менее производительно, чем гошечка, за счёт утилизации ресурсов, но вполне себе будет работать.
Аноним 06/11/19 Срд 11:01:03 1514418314
>>1514402
вот утилизация тонкий момент, нода может быть в плане ио, и более производительна чем гошечка или эрланг, чисто за счёт того, что колбек/промис - это существенно более легковесная сущность, чем грин тред. а на ио нагрузке, многопоточность как такова не сильно влияет в мастшабе всей системы. т.к. можно комфортно маштабироватсья через кубер или иную оркестрацию, мелкими контейнерами, сидя за балансировщиками.
Аноним 06/11/19 Срд 11:28:40 1514428315
>>1514418
Нодоперделка это сраный FSM, каждый раз добавляя новый колбек в этот FSM, ты замедляешь общую скорость работы. Т.е. оно может работать быстро пока у тебя там 3.5 ивента, но потом треды тупо быстрее. IO может быть параллельным, но так как нода работает с одним потоком, она в него не может. И, очевидно, решения сделанные на уровне балансировщиков будут медленней встроенной многопоточности.
Да и нахуй эта наркомания, считай тебе надо запустить по инстансу на каждое ядро, все это сбалансировать сначала в рамках одной машины, настроить между ними пабсаб с каким нибудь рэбитом, потом обеспечить общий сторейдж добавив какой нибудь рэдис, потом нужен фронт сервер для балансировки типа нджинкса и ещё хуй пойми что, в то время как в go/эрланге это все сразу встроено и ничего делать не надо.
Аноним 06/11/19 Срд 12:16:43 1514447316
>>1514428
Не скажи, балансировщик к примеру нужен внешний, потому что между инстансами или кластерами тоже нужно балансировать запросы. Тем более, l7. Тем более, балансировка сокетов, grpc и им подобных постоянных соединений.
Аноним 06/11/19 Срд 14:32:11 1514547317
>>1514428
Лол, оно может работать когда у тебя и миллионы эвентов. Паттерн эвент-лупа, как раз на это и расчитан. поэтому принципу работают очень высокопроизводительные сетевые штуки типа nginx, envoy, и многие другие. Луп эфективнее грин тредов для сырого ио.
Аноним 06/11/19 Срд 14:50:07 1514558318
>>1514547
Чего? А где пруфы?
Как бы по умолчанию несколько воркеров эффективнее одного, при отсутствии блокировок.
мимо
Аноним 06/11/19 Срд 15:19:42 1514580319
Аноним 06/11/19 Срд 15:45:32 1514607320
>>1514580
Я спрашиваю, где пруфы на "Луп эфективнее грин тредов для сырого ио".
Про nginx:
Во-первых, nginx - это пул воркеров, а не единый воркер с лупом. Соответственно, чтобы утилизировать все процессоры, ты просто запускаешь сам nginx и он поднимает воркеров по числу процессоров. С нодой тебе придётся поднять инстансов ноды по числу процессоров. Понимаешь разницу между воркерами одного процесса (тем более, написанного на плюсах и не имеющего значимого рантайма) и несколькими процессами v8?
Далее, для nginx эта архитектура оптимальна, поскольку его задача - это проксировать запросы из очереди апстрима в куда-то и проксировать ответы обратно, оно всё строго синхронно, соответственно нечего распараллеливать.
Для бизнес-логики всё можеть быть не совсем так.

Я к чему виду, нода при прочих равных будет дороже goшечки (интерпретация, оверхед на динамическую типизацию, оверхед на рантайм, оверхед на сборку мусора, оверхед на прочие инстансы), которая будет дороже c++ (за счёт рантайма, планировщика и сборки мусора).
Вот когда в v8 наконец-то добавят нормальный шаринг ресурсов между инстансами, чтобы получился эдакие application server - вот тогда мы вернёмся к разговору о сравнении потребления ресурсов между гошечкой и нодой. И то, я сразу предскажу, что будет: на синхронных тестах всё будет +-сравнимо за счёт оптимизаций на уровне v8, а на паралелящихся алгоритмах типа map-reduce гошечка затащит.
Аноним 07/11/19 Чтв 22:17:32 1515864321
>>1514607
> С нодой тебе придётся поднять инстансов ноды по числу процессоров.
А как же кластеры? https://nodejs.org/api/cluster.html
Или это оно и есть?
Аноним 08/11/19 Птн 10:28:28 1516113322
>>1515864
там по разному можно
кластеры - это процессы. воркеры - это треды в пределах одного процесса.
Аноним 08/11/19 Птн 10:57:19 1516124323
Хз, лучший язык в мире это кобол, все же.
Аноним 08/11/19 Птн 15:20:54 1516302324
>>1516124
Java - это кобол 21 века.
Аноним 09/11/19 Суб 15:46:15 1516916325
Аноним 09/11/19 Суб 15:53:26 1516923326
>>1516916
Посмотри гошные тулзовины, которые графики всякие красивые в консоли выводят. Полюбому они что-то используют.
Аноним 09/11/19 Суб 16:04:44 1516938327
>>1516923
Видел статью на хабре про красивую консольную утилиту, которая как раз на go. Но сейчас не могу найти ни названия той утилиты, ни статьи. Есть идеи, где искать?
Аноним 09/11/19 Суб 16:14:31 1516955328
>>1516938
Всё, нашёл. Sampler называется
Аноним 11/11/19 Пнд 07:28:14 1518407329
image.png (33Кб, 543x499)
543x499
image.png (10Кб, 621x109)
621x109
Почему это говно работает, если в метод передаётся копия объекта, а не ссылка?

Зачем b присваивается новый срез такой же вместимости (без этого не работает)?
Аноним 11/11/19 Пнд 07:39:03 1518411330
>>1518407
Второй вопрос снимаю, это какой-то даун написал, тут важно просто возвращать правильную длину
Аноним 11/11/19 Пнд 07:42:42 1518413331
>>1518411
Первый тоже снимаю. Передаётся копия объекта, но ссылается на оригинальный массив.
Аноним 11/11/19 Пнд 22:19:53 1518974332
Что бы вы выбрали для однорыльного (на первое время) веб говна коего десятки тысяч проекта с получением с него прибыли в перспективе: модный молодежный голанг или плейн олд джаву со всей ее устоявшейся экосистемой?
Аноним 11/11/19 Пнд 22:41:12 1518979333
>>1518974
То, что ты лучше знаешь.
Аноним 11/11/19 Пнд 22:49:37 1518983334
>>1518979
А если опустить этот момент?
Аноним 11/11/19 Пнд 22:52:29 1518986335
>>1518974
Для однорыльного я бы брал голанг. Мне кажется, джаву надо брать, если проект на человек 10 и тд.
Плюс, насколько я понимаю, в голанге проще накидать прототип, чем в джаве
Аноним 11/11/19 Пнд 23:15:49 1518997336
>>1518983
Тогда гопарашу, потому что на нее любого васяна можно за пару дней обучить. С джавапарашей будет сложнее.
Аноним 12/11/19 Втр 06:12:02 1519099337
Аноним 12/11/19 Втр 07:15:24 1519109338
Аноним 12/11/19 Втр 07:35:23 1519113339
>>1519109
Спасибо огромное, друг! Только я всё равно не понял почему выдавало стек оверфлоу.
Аноним 12/11/19 Втр 09:45:20 1519158340
>>1519113
Я думаю, что дело в том, что когда ты вызываешь fmt.Println() для ошибки, оно в первую очередь проверяет, есть ли у структуры метод Error(), и если есть, то вызывает его. По факту, ты создал бесконечную рекурсию вызовов метода Error()
Аноним 12/11/19 Втр 10:30:47 1519181341
>>1519113
У тебя при выводе ошибки была ошибка, которая вызывала функцию ошибки, в которой ошибка, которая при ошибке вызывала функцию ошибки. А вообще я только два дня вкатываюсь, так что не ебу, как такие вещи ловить.
Аноним 12/11/19 Втр 11:21:22 1519208342
Давеча на собесе начали спрашивать про солид, я ретировался, ибо реально ничего из этого не помню или не знаю. Паттерны ещё худо-бедно использую, но солид это же реально какое-то мозгодрочево, архитектура ради архитектуры, тяжёлое наследие ООП и жавы головного мозга или я не прав?
Аноним 12/11/19 Втр 11:34:54 1519215343
Screenshot20191[...].png (34Кб, 841x358)
841x358
Это жирный рантайм?
Аноним 12/11/19 Втр 11:37:22 1519217344
Есть ли в golang конструция по типу сишной
(void) argv
чтоб компилятор не ругался о том, что переменная не используется?
Аноним 12/11/19 Втр 11:40:19 1519218345
>>1519217
После объявления foo на следующей строке пиши _ = foo
Для аргументов функций/методов это делать не нужно
Аноним 12/11/19 Втр 13:02:02 1519270346
>>1519217
Или сразу func Test(_ argv) {//...}
Аноним 12/11/19 Втр 14:05:12 1519294347
Кек, гугл уже 10 лет как форсит goвно, а в http/2 оно так и не научилось: https://github.com/golang/go/issues/32441
Слушаю ваши оправдания, goвноеды.
12/11/19 Втр 15:03:21 1519327348
У вас нет дженериков ахахахахах Shit<Go> poop;
Аноним 12/11/19 Втр 15:06:08 1519335349
>>1519294
>>1519327
а че так много школоты к этому треду липнет?
Аноним 12/11/19 Втр 15:07:20 1519337350
Аноним 12/11/19 Втр 17:55:13 1519437351
Аноним 12/11/19 Втр 18:13:45 1519450352
>>1519335
А кто на дваче ещё сидит, кроме школьников и странных личностей? задумайся про себя, кстати
Я как в /pr не зайду, так охуеваю от местных знатоков. Где тебе ещё расскажут, что архитектура нинужна, менджеры зависимостей нинужны, типизация нинужна, а чёткие пацаны херачат невероятный JS-код на кончиках пальцев через vim прямо в продакшен.
Аноним 12/11/19 Втр 19:23:12 1519493353
Добрый вечер, аноны.
Такой вопрос, хочу написать фильтрующий прокси-сервер чтобы вкатиться в goршок. Оно то и понятно, чтобы нафигачить полурабочий пет проект можно любые технологии заюзать. Но вот я задумался, если по уму все делать, что лучше будет. Пилить все на го, или лучше запилить плагины для nginxa(что на го в целом тоже возможно)? Что по-вашему будет лучше, чтобы держать большой трафик с возможностью снифать его по https.
12/11/19 Втр 19:27:58 1519497354
ГОвно обосратое из проприетарной помойки гугла
сажи
Аноним 12/11/19 Втр 19:52:03 1519518355
>>1519215
Смотря что понимать под жиром рантайма. Если сравнивать с жвм/дотнетом — целой вм и всего обвеса к ней очевидно, нет. Если же сравнивать с нативными языками без рантайма вообще вроде сей/растов/итд — то да, ебать жирный (и мусор собирает, и каждое обращение по поинтеру менеджерит, и потоки полностью контроллирует и тд).
Аноним 12/11/19 Втр 20:13:09 1519541356
>>1519493
Зависит от задачи. Но вообще сейчас для всяких микросервисов и сервис мешей го берут: envoy, traefik, krakend.
Но nginx тоже очень даже норм и скорее всего даже будет производительнее (в простых случаях).
Аноним 13/11/19 Срд 00:30:46 1519776357
>>1519541
Ок, спс за ответ.

Назрел такой вопрос, мб кто знает. Если я хочу сделать так, чтобы многие сайты могли подключиться к моей проксе (тип как incapsula), то как в этом случае поступать с https трафиком. У каждого сайта свой сертификат, мне требуется "изымать" оригинальные? или хватит свой подписанный собой. Так же интересует вопрос, вот я обработал запрос по https, проксировать его на другой сайт надо тоже по https? или забить и по http отправлять?
Аноним 13/11/19 Срд 01:08:22 1519786358
>>1519776
Зависит от задач твоего прокси. Если рассматривается возможность удаленной авторизации пользователей, то сертификация соответственна должна быть от конечного сайта, https идет в приоритете. Если же нет, то смело клади и на https и на сертификаты
Аноним 13/11/19 Срд 01:10:36 1519789359
>>1519776
Если брать обобщенно, то я бы добавил включение ssl и cертификатов опционально
Аноним 13/11/19 Срд 14:33:47 1520051360
Ананасы, помогите советом. Хочу глубоко вкатиться в exploit development, есть неплохвя база для этого (Си, кресты, асм х86, знания основ ОС, базовый уровень реверсинга и эксплуатации простых уязвимостей). Сразу говорю, отговаривать меня от этого не надо, в моей стране это более востребовано, чем в странах СНГ, и в этом работают здесь далеко не невыездные тарищи майоры за 40к рублей в месяц.
Суть: как сделать так, чтобы хотя бы пригласили на собес, а не выкинули резюме в мусорку при подаче оного? Подрочить pwnы на HackTheBox? Или сходить на CTFы пару раз? Ведь на реальных примерах это не показать, ибо, ясень-пень, незаконно.
Аноним 13/11/19 Срд 14:41:32 1520063361
Блять, я случайно не в тот тред написал, земля мне сегфолтом
Аноним 13/11/19 Срд 15:07:51 1520091362
>>1520051
Насколько я знаю, конторы сканят участников всяких хакер-фестов на предмет найма.
Аноним 13/11/19 Срд 23:04:24 1520501363
>>1520051
Вкатись c Linux Kernel Development
Аноним 14/11/19 Чтв 11:21:20 1520729364
Отец 14/11/19 Чтв 23:06:31 1521353365
я правильно понял, что interface{} - это не что иное как void ptr, только не ptr?
Отец 14/11/19 Чтв 23:13:52 1521356366
>>1521353
не не не, я имел interface как раз void*, только с метаданными
Отец 14/11/19 Чтв 23:15:53 1521357367
>>1521356
или не поинтер, а хуй его знает, посмотрю в спецификации короче
14/11/19 Чтв 23:22:53 1521359368
>>1521353
Интырфейс это говно!
Отец 14/11/19 Чтв 23:37:29 1521362369
image.png (7Кб, 244x148)
244x148
>>1521359
Ты походу прав, это говно внезапно может менять свой тип:
Вывод кода с закоментированной `sn = "pizda"`:
hui hui
pizda pizda

Вывод с раскоментированной строчкой:
Аноним 14/11/19 Чтв 23:38:35 1521364370
>>1521362
>Вывод с раскоментированной строчкой:
panic: interface conversion: interface {} is string, not *string
Аноним 14/11/19 Чтв 23:40:09 1521368371
>>1521362
Хотя мы тут явно создаем новый interface{} через присвоение sn нового значения, так что все норм
Аноним 14/11/19 Чтв 23:41:49 1521369372
Аноним 15/11/19 Птн 11:35:45 1521519373
>>1519437
Хуя себе! Т.е. gRPC можно уже и в браузерах использовать?
Аноним 15/11/19 Птн 11:36:31 1521520374
>>1519450
>Прямо на проде под нагрузкой
Аноним 15/11/19 Птн 11:44:50 1521531375
>>1521353
Любое интерфейсное значение - это структура из двух поинтеров - один к реальному значению, другой - к всякой метаинформации (рантайм тип)
Именно по этому к переменной с типом слайс интерфейсов нельзя присвоить слайс значений, которые имплементят этот интерфейс
Аноним 15/11/19 Птн 11:47:11 1521535376
>>1521364
Интерфейсное значение - это всегда поинтер к оригинальному значению. Если оригинальное значение уже поинтер - используем его, иначе - берем поинтер от оригинального значения.
Аноним 15/11/19 Птн 12:18:43 1521569377
Аноним 15/11/19 Птн 14:04:02 1521661378
Анон, почему выведется 3, а не 1? int тоже не измненяемый тип данных и скопируется, если ему присваивать?
https://play.golang.org/p/j2aTxgb-Epz
Аноним 15/11/19 Птн 14:20:09 1521669379
>>1521661
Могу тебе напиздеть, но как я это понимаю:
- В го переменные выглядят, как <имя>-<тип>-<адрес памяти, где лежат данные>;
- Соответственно, когда ты что-то передаёшь "по указателю", ты создаёшь новую перменную, указывающую на тот же адрес памяти, что и "старая";
- Таким образом, когда ты говоришь "i = &x" ты перетираешь значение "адреса" у локальной переменной и потом пишешь в новый адрес; Старый адрес остаётся нетронут.
Аноним 15/11/19 Птн 17:19:28 1521820380
Аноним 15/11/19 Птн 17:29:04 1521838381
>>1521820
Бля, в Си тоже такого нет, вот я фуфел.
Аноним 15/11/19 Птн 19:19:16 1521948382
>>1521661
>>1521838
В си тоже самое получится, хули не так то, ты же &x присваиваешь указателю (который сам по себе локальный, а адрес имеет в качестве значения), а не памяти на
который он указывает.
Аноним 18/11/19 Пнд 06:28:13 1523848383
>>1516916
Не рекомендую использовать эти биндинги - они глючат, когда начинаешь что-то более-менее сложное писать. Лучше бери нативные либы типа tcell.
Аноним 19/11/19 Втр 03:22:44 1524447384
Аноним 19/11/19 Втр 03:55:45 1524455385
>>1524447
>профессор
@
>разрабатывал на жабе 20 лет
@
>рандомный долбоёб в треде говна
@
>АРЯ ПРОФЕСАР))ЖАБАПИТОНАГАВНО А ВОТ ГОШЕЧКА НЯШНАЯ)))
19/11/19 Втр 07:15:30 1524472386
> статическая типизация
> нет дженериков
> res, err := doSomeShit()
> if err != nil ...
> нет лямбда выражений
> для итерации по массиву используем цикл (привет из 1962 года)
> нет классов и ооп
> нет нормальных фреймворков
> указатели
Аноним 19/11/19 Втр 09:43:08 1524502387
>>1524472
Съеби отсюда, школьник. Все эти вопросы обсасывались уже не раз.
Вернёшься, когда тебе хоть раз действительно понадобятся дженерики в продакшен-коде. И когда выучишь, что такое лямбды.
Остальное даже комментировать не буду.
Аноним 19/11/19 Втр 10:36:00 1524516388
Ёбаным голангиндусам, напоминаю разницу. Зоопарк вопросов:
- где вывод типов?
- где шаблоны?
- где оптимизация хвостовой рекурсии?
- где fold, map и хотя бы фильтры? Даже в ебаном шарпе есть LINQ
- где расширения методов класса?
- где перегрузка параметров функций?
- где нормальное потребление памяти приложением?
- где перегрузка операторов?
- где оптимизиции хвостовой рекурсии?
- где ленивость?
- где нормальная реализация модели акторов? Каждый разработчик вынужден с нуля лепить свою реализацию обмена сообщениями между горутинами
- где человеческая типизация с возможностью объявить канал сообщений нескольких типов?
- где человеческая инкапсуляция? Единая область видимости на весь пакет, охуенная идея
- где нормальная обработка ошибок?

Всего, чего нет в го, автоматически объявляется хуитой, как только это появляется в го, это автоматически становится нехуитой. При этом, требуется сделать вид, что хуитой это называл кто-то другой.
Аноним 19/11/19 Втр 11:37:17 1524544389
>>1524516
Ещё раз, съеби нахуй отсюда.

> где нормальная реализация модели акторов? Каждый разработчик вынужден с нуля лепить свою реализацию обмена сообщениями между горутинами
Никогда не перестану рофлить с долбоёбов
Аноним 19/11/19 Втр 14:53:14 1524645390
Анон, у меня вопрос скорее по архитектуре. Есть веб круд, есть числовое значение X, берущееся из конфига, надо перед созранением модели валидировать её поле больше/меньше оно этого X. Пока просто есть хелпер, который вызывается из модели, куда каждый раз передаётся X и проверяемое поле. Выглядит как-то не по-говнокодерски. Как бы сделать получше?
Аноним 19/11/19 Втр 15:20:03 1524650391
>>1524645
>созранением
>как-то по-говнокодерски
Го сделал меня дауном, извиняйте.
Аноним 19/11/19 Втр 15:45:39 1524654392
>>1524645
Если вкратце, то если эта модель - часть твоей предментной области, то и правила валидации - это тоже её часть. Опиши механизм валидации этой модели и вызывай его перед сохранением. Если хранишь оригиналы модели до изменения - то можешь смотреть дифф и валидировать только изменённые поля.
В качестве валидатора можешь присмотреться к go-validate или делать всё кастомно.
Если чуть посложнее, то по-хорошему нужно валидировать не модель перед сохранением, а данные до попадания в модель. Для этих данных можно описать отдельный механизм валидации и валидировать их перед (в начале) вызовом какого-то сценария.

>>1524650
Съеби нахуй.
Аноним 19/11/19 Втр 16:03:23 1524668393
chrome-capture.jpg (54Кб, 872x524)
872x524
Прохожу курс на coursera и не понял этого тестового задания, разве можно заимплементить интерфейс анонимной встроенной структурой? Она же блин анонимная, как я к ней методы привяжу...
Аноним 19/11/19 Втр 16:29:44 1524687394
>>1524668

type Doer interface {
Do()
}

type Foo struct {
Doer
}
Аноним 19/11/19 Втр 16:39:21 1524698395
>>1524654
У меня скорее еботня получается с передачей каких-то лишних контекстов во все возможные функции пакетов, попробую сделать как-то через service options что ли.
Это я же был >>1524650, если что.
Аноним 19/11/19 Втр 17:46:01 1524746396
>>1524698
> Это я же был
Тогда сорян, принял тебя за местного дауна

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

Но это если ты хочешь красиво и правильно сделать. Если надо быстро нахуярить говнокод - то ты и сам всё знаешь, делай, как рука размахнётся, да пальцы настучат.
Аноним 19/11/19 Втр 19:04:41 1524808397
>>1482493 (OP)
Потсоны, такое дело, я вообще не погромизд, но вынужден был писать некоторые сервисы для конторы на джанге. Успешно писал, в общем то.
Сейчас встала задача сделать еще один, который будет куда глобальнее прежних. И тут мой начальник, начитавшись интернетов, заявляет джанга мол твоя, легаси говно. Давай на го пиши. Говорю, не умею я в го, и учиться долго буду потому что я немного тугой. Он говорит ну тип похуй, отправим тебя на какие нибудь курсы хуе-мое.
Так вот, насколько я знаю го это кровавый энтерпрайс уровня жавы, нет?
Реально ли в одиночку там что то более менее внятное высирать? Или лучше на джанге продолжать говнячить?
Аноним 19/11/19 Втр 19:16:35 1524819398
>>1524687
Ты показал встроенный интерфейс, а там встроенная анонимная структура, ну я погуглил, походу они обосрались просто в тесте
Аноним 19/11/19 Втр 20:05:39 1524851399
>>1524808
Как раз го крайне прост, чтобы его изучить в одиночку, будучи не особенно скиллованным. И да, он будет производительнее дженги.
Единственно что, у дженги полюбому есть уже готовый генератор админок, формочек и тому подобного говна. Го же чисто бекендерская тема для производительной многопоточной обработки данных по сути. Так что делать апишки на го - заебись, а вот легконастраиваемой пользовательской визуальной обвязки и прочего нет, потому как и спроса на это нету.
Дальше сам решай.
Ну и спрашивай, если что, мы тебе тут ответим.
Аноним 19/11/19 Втр 21:49:58 1524919400
>>1482493 (OP)
Для чего этот язык используют?
Аноним 19/11/19 Втр 21:52:49 1524922401
>>1524919
Для тролинга джава макак
Аноним 19/11/19 Втр 21:53:29 1524924402
>>1524922
То есть для веба в бекенде?
Аноним 19/11/19 Втр 21:59:15 1524931403
>>1524924
Да + демоны и консольные утилиты
Аноним 19/11/19 Втр 22:04:30 1524934404
>>1513609
>netflix

99% софта на джаве
Аноним 20/11/19 Срд 03:34:09 1525043405
Аноним 20/11/19 Срд 08:08:14 1525093406
>>1524934
Было 100, стало 99. Норм.
Аноним 20/11/19 Срд 10:06:31 1525128407
>>1525043
>Для всего
Прям как javascript
Аноним 20/11/19 Срд 12:13:42 1525189408
Аноним 20/11/19 Срд 16:40:18 1525416409
Интересно гуголь свою игровую стриминговую платформу stadia на крестах пилят или на го
Аноним 22/11/19 Птн 06:14:32 1526405410
Что скажете про Akka? Go уделывает её в типичных задачах?
Аноним 22/11/19 Птн 13:04:56 1526645411
Анон, пишу микросервисы-демоны так: есть структура, которая инициализируется в main(), там лежит абсолютно всё: подключения к БД, логгер, конфиги и т.д. Далее прокидывается везде через декоратор или пишутся, к ней методы, которые делают абсолютно любую хуйню, где нужен контекст этой структуры. Не покидает ощущение, что я пишу хуйню. Есть "правильный" бойлерплейт для подобных сервисов? Или книга какая-то, только не абстрактная хуета на собачках и котиках.
Аноним 22/11/19 Птн 13:32:48 1526669412
>>1526645
Ты идешь в правильном направлении, но не дошёл до конца.

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

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

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

Ну и да, в го проблема с архитектурой из-за засилья сишников, которые привыкли кодить, как видят (буквально в одном файле всё держать), так что ты всегда услышишь, что "архитектура нинужна, пиши проще", таких людей можешь слать нахуй.
Аноним 22/11/19 Птн 14:43:53 1526729413
>>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 речи вообще нет. Как это всё делать правильно?
Аноним 22/11/19 Птн 16:12:26 1526812414
>>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
То есть, у тебя есть какой-то огромный божественный сервис-локатор. Это неправильно и не нужно. Просто инъекти зависимости через конструкторы и собирай набор сервисов под текущую команду (или тест, к примеру).
Аноним 22/11/19 Птн 22:16:48 1527130415
Я правильно понимаю, что если вкатиться в go, то можно будет навсегда забыть о фронте, вёрстке и прочем ui? Потому что из-за этого не хочу в другие бэкенд лезть: python, ruby, php, java - в вакансиях везде пишут html, css и тд Хочу просто писать api, сервисы, то есть заниматься данными и не думать о ui от слова совсем, а аналогов go получается и нет в этом плане, только кресты, но их редко юзают, как я понял в бэкенде
Аноним 23/11/19 Суб 16:08:01 1527663416
>>1526729
>имеется моя огромная структура type App struct {}, где вообще всё и где мне что-то нужно сделать
Это называется God object. Не надо так делать почти никогда (но иногда можно).
Аноним 23/11/19 Суб 16:13:56 1527671417
>>1527130
Да, фулстек с го сейчас редкость
Аноним 23/11/19 Суб 16:38:27 1527693418
>>1527663
Нет, God object про действия, а не данные. Это что-то про ближе к redux.
Аноним 23/11/19 Суб 17:02:38 1527713419
>>1527693
> God object is an object that knows too much or does too much
Аноним 23/11/19 Суб 21:26:29 1527972420
Аноним 24/11/19 Вск 00:24:57 1528088421
Pony убьёт golang?
Аноним 24/11/19 Вск 01:20:29 1528118422
>>1528088
То что мертво умереть не может.
А Pony попросту не взлетит.
Аноним 24/11/19 Вск 01:47:28 1528130423
15727330908680.jpg (39Кб, 368x604)
368x604
Аноним 24/11/19 Вск 11:40:20 1528271424
>>1528118
Ну эт толсто, даже в рахе уже мыло, авито, озон, тинькоф на го, а это довольно крупные компании
Аноним 24/11/19 Вск 13:38:15 1528323425
>>1528271
Тиобе говорит что govno почти вылетело из топ20 и продолжает падать.
Язык был рассчитан на нюбасов, которым тяжело вкатится даже на сверхпопулярных джаве и питоне.
Все что было за этим языком это хайп и куча маркетингового буллшита от гугла, но хайп ушёл, хайп на микросервис-парашу ушёл, нюбы поняли что вкатываться некуда. Некоторые крупные конторы, которые могут позволить экспериментировать немного вляпались в эту парашу, но это временно.
Аноним 24/11/19 Вск 13:52:16 1528334426
>>1528323
То, что тиобе - хреновый рейтинг, можно понять по тому, как резко там языки теряют и набирают популярность за месяц.

Вот, можно взять https://insights.stackoverflow.com/survey/2019#technology
Чтобы понять, что Go - 13ый по популярности, 9ый в списке самых любимых, 19ый в списке нелюбимых ,3ый в списке желаемых и 3ый по зарплате
Аноним 24/11/19 Вск 13:53:54 1528335427
>>1528323
Так тиобе же показывает популярные технологии с точки зрения вкатывальщиков, а не использования
Аноним 24/11/19 Вск 14:10:18 1528350428
>>1528323
>немного вляпались в эту парашу, но это временно.
На что переписывать будут?
Аноним 24/11/19 Вск 14:20:34 1528355429
>>1528323
Как объяснишь, что в основновных ру онлайн образовательных площадках за последний год появились курсы по go: нетология, отус, гикбрэйнс, на курсере mail два онлайн курса запустил, то есть интерес к языку только растёт
Аноним 24/11/19 Вск 16:11:41 1528451430
Вопрос:

Буду разрабатывать бекенд веб-сервиса на go, другой разработчик будет пилить фронт. Можно ли сделать так, чтобы фронтендеру не приходилось устанавливать к себе на комп go, и при этом он мог запускать локально сервер, чтобы пилить и тестровать фронт? (и очень желательно с отлеживаением измененных файлов, для перезагрузки сервера) Я новичок в разработке и буду рад за наводку на те инструменты которые мне помогут
Аноним 24/11/19 Вск 16:28:04 1528474431
>>1528451
Фронт тоже новичек?
Аноним 24/11/19 Вск 16:28:55 1528476432
d9cfae806280fe3[...].jpg (68Кб, 794x798)
794x798
>>1528451
>как запустить программу на яп, не устанавливая яп
Аноним 24/11/19 Вск 17:10:21 1528509433
>>1528451
Юзайте докер. Опишешь всё в docker-compose - файле и фронтендщик сможет сделать docker-compose up и получить себе полносью рабочий сервис без установки всего дерьма себе в систему.
Аноним 24/11/19 Вск 17:15:16 1528515434
>>1528509
>Я новичок в разработке
>Юзайте докер. Опишешь всё в docker-compose

kek
Аноним 24/11/19 Вск 17:23:52 1528531435
>>15>>1528476
Мне казалось сокмплированному мной файлу, уже не нужен установленный go на пк, чтобы его запустить
Аноним 24/11/19 Вск 17:24:24 1528532436
>>1528531
*скомпилированному
Аноним 24/11/19 Вск 17:28:56 1528537437
>>1528509
Я и думал об этом уже, но судя по всему тогда легче заставить человека golang установить, чем тот же docker

>>1528474
чисто фронтендер который всегда только на js пишет (нода установлена), и не очень лоялен чтобы использовать что-то не знакомое (придется ведь голанг ставить, да ещё возможно и переменные окружения настраивать на винде!)
Аноним 24/11/19 Вск 17:36:01 1528548438
>>1528537
А разве на голанге пишут что-то отличное от рест сервиса и тому подобноого? Нафейхоа ему устанавливать голанг? или у вас публик сервера нет?
Аноним 24/11/19 Вск 17:38:10 1528553439
>>1528531
Ну да, но тогда тебе придётся каждый раз присылать фронту новую версию
Аноним 24/11/19 Вск 17:59:37 1528586440
>>1528537
> Я и думал об этом уже, но судя по всему тогда легче заставить человека golang установить, чем тот же docker
Лолчто? Докер - это уже де-факто стандарт. И фронтендеру он нужен как раз для того, чтобы не ставить себе стороннее говно в систему, нуль лишних зависимостей - кроме самого докера.

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

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

>>1528531
А ещё база, миграции и прочая херня. Лучше сразу подумать о доставке, найти мануал и сделать всё нормально.
Аноним 24/11/19 Вск 18:17:20 1528605441
image.png (22Кб, 305x448)
305x448
>>1528323
Чтобы увидеть как го "умирает" достаточно посмотреть количество го-репозиториев на github больше чем с 5к звезд.
Аноним 24/11/19 Вск 18:21:52 1528610442
>>1528605
А если ещё рассматривать репозитории не старше 1 года, то го вообще в топ-3 вместе с Python и JavaScript
Аноним 24/11/19 Вск 18:59:01 1528647443
Аноним 24/11/19 Вск 19:05:27 1528654444
Без-имени-1.jpg (434Кб, 960x720)
960x720
Аноним 24/11/19 Вск 19:10:56 1528658445
Аноним 24/11/19 Вск 19:40:24 1528692446
>>1528647
знатно аффтар обоссал говно. найс
Аноним 24/11/19 Вск 19:44:40 1528699447
>>1528692
И зачем же он тебя обоссал?
Аноним 24/11/19 Вск 19:51:24 1528706448
>>1528647
Автор чсвшный мудак, которому лично мне захотелось ебало начистить, при том, что мне и haskell также нравится, но насколько же это тупое сравнение, go простой язык, но у него есть свои концепции и идиомы, а сишарпоблядок пытался сделать так, как привые и ожидаемо сел в лужу, начав говнить на язык, ну и очевидно, что работа с рекурсивными стуктурами на haskell будет удобнее делать. Тупо короче сравнивать языки на примере маленькой задачи.
Аноним 24/11/19 Вск 20:03:38 1528725449
>>1528706
Все сишарперы как то криво по земле ходят
Аноним 25/11/19 Пнд 13:40:08 1529112450
>>1503146
В Java 1.1 green threads являлись единственной потоковой моделью (моделью распараллеливания потоков), используемой в JVM[7], по крайней мере, в Solaris. Ввиду того, что green threads обладают ограничениями в сравнении с native threads, в последующих версиях Java основной упор сделан на native threads.

С вики.
Аноним 25/11/19 Пнд 14:52:03 1529160451
>>1529112
Вероятно, тогда их время ещё не пришло.
Аноним 25/11/19 Пнд 17:00:29 1529311452
>>1527130
Работаю на ноде, пишу только апишки. Все зависит от компании
Аноним 25/11/19 Пнд 18:38:09 1529405453
>>1502138
>Карочи, я к тому, что в плане удоства разработки конкаренси, JVM-based решения - хуйня и даже близко не стоят рядом с го
Scala
Аноним 27/11/19 Срд 19:11:37 1530993454
11
Аноним 27/11/19 Срд 19:27:15 1531004455
Бля, в Украине вообще есть работа на GO для не помидоров в 12-литним опытом на го?
Аноним 27/11/19 Срд 21:40:31 1531166456
>>1531004
Нет, придётся шлёпать формочки на жяваскрипте. Зато плотют хорошо!
Аноним 28/11/19 Чтв 11:41:06 1531406457
Аноним 29/11/19 Птн 16:51:33 1532485458
Аноним 29/11/19 Птн 17:33:40 1532516459
java or go for casual online game?
Аноним 29/11/19 Птн 18:06:41 1532546460
Аноним 29/11/19 Птн 19:06:06 1532603461
Сап, go-феры.
Я NodeJS/PHP макака, больше 5 лет на этом всем пишу.
Есть месяц, чтобы выучить GoLang + все, что нужно для среднего бэка на нем. Киньте списком того, что надо знать, пожалуйста
Аноним 30/11/19 Суб 22:52:58 1534051462
>>1532603
1) Работа с основными типами данных, в частности slice и map
2) Работа с указателями и nil
3) Горутины и каналы, мютексы
3) Как структурировать проект
4) Что умеют основные стандартные пакеты
5) Как писать тесты в го
6) Основные внешние библиотеки для работы с сетью, роутингом, базами данных

Вроде этого хватит
Аноним 30/11/19 Суб 22:55:59 1534052463
>>1534051
И в дополнение, необязательные, но полезные штуки
1) Внутреннее устройство слайсов, map, каналов
2) работа garbage collector
3) Работа с профилировщиком
4) context

Аноним 30/11/19 Суб 23:23:39 1534070464
>>1534052
Благодарю, анон, пометил себе
Аноним 01/12/19 Вск 02:32:18 1534152465
>>1532485
Обнаружена абстрактная фабрика ЖЖ Артемия Лебедева!
>>1532516
Java если игра сложнее 3 + 3. Иначе на говне охуеешь пилить всю логику, а профит от нормального конкарренси не почувствуешь, потому что у тебя нет конкарренси, а нет конкарренси потому что проект так и не написан.
Аноним 01/12/19 Вск 09:47:49 1534229466
>>1534152
>сложнее 3 + 3
планирую логическую игры,наподобие крестики нолики
Аноним 01/12/19 Вск 13:05:55 1534519467
>>1534229
Берешь язык, который знаешь лучше.
Если не знаешь оба, то бери го, он проще, и там нет всех этих абстрактных фабрик синглтонов
Аноним 01/12/19 Вск 15:46:30 1534786468
>>1534229
Пфф, тогда на чем угодно, хоть на JS. Я думал ты задаешь вопрос на чем писать онлайн игорь, которую надо поддерживать и развивать, а ты про петпроект. Вообще на чем угодно.
Аноним 01/12/19 Вск 16:50:34 1534861469
>>1534786
>Вообще на чем угодно
на руби было бы странно
Аноним 01/12/19 Вск 19:22:14 1535042470
>>1534070
Только вот:
> 3) Как структурировать проект
Сами гоферы часто структурируют его, как полные мудаки. По DDD вообще единицы.

> 2) работа garbage collector
> Планировщик
Очень мало практической информации.
Аноним 01/12/19 Вск 23:13:23 1535412471
>>1535042
Тут скорее знания для собеса
Аноним 11/12/19 Срд 01:23:25 1543265472
Аноним 11/12/19 Срд 08:58:51 1543327473
>>1528451
1. Голанш элементарно ставится. В разы проще, чем тулчейн у типичного фронтера
2. Как сказал этот анон >>1528509 юзайте докеры, если еще не начали. Хотя установить голанг проще, чем осваивать докер
3. Публикуй бинари на сетевой ресурс, а фронтер пусть тянет бинарь

> очень желательно с отлеживаением измененных файлов, для перезагрузки сервера
Ребилд сорсов с watch-ем - можно настроить, так же как и с любыми другими платформами
Но вы же вдвоем работаете? Ты хочешь, чтобы по изменениям сорса у тебя ребилдилось у него? Странная идея
Аноним 11/12/19 Срд 09:03:46 1543330474
Аноним 11/12/19 Срд 09:33:59 1543342475
>>1543327
> Хотя установить голанг проще, чем осваивать докер
Типичный сервис - это база, файлуха, кеш, какая-нибудь дополнительная херня, планировщик и только потом код.
Без докера всё это поднимать будет печально.
Аноним 11/12/19 Срд 10:29:28 1543374476
>>1543342
Все так
Но если хочется максимально light-weight dev cycle, то:
- git pull
- go run
ничего "легче" не придумывается.
Тем более что ОП хотел по изменениям файлов рестарты делать
Аноним 11/12/19 Срд 11:31:54 1543394477
>>1543374
Я думал, мы обсуждаем поднятие сервиса на рабочей машине фронтендщика. Ему точно не нужно переподнимать го по изменениям файлов, он гошные исходники и не трогает.
А если мы говорим про го-девелопера, то да, проще всё прямо в рабочей системе поднять.
Аноним 12/12/19 Чтв 06:46:56 1544017478
>>1505605
> Лол, а теперь посмотри на языки вроде хацкеля/окамла/раста/свифта

>Хацкель
Для фп-шизиков и математикошизиков, изредка для реально редких и крутых академиков
>Окамл
Никому не нужный ноунейм, в котором модель CSP неудобна
>Свифт
Для гейос шлёпателей.
>Раст
Вот наконец хоть один увожаемый язык назвал.
>Erlang
Вырвиглазгый, почти никому не нужен. Но всё же не ноунейм. И на нем базируется Эликсир, который в свою очередь крайне увожаемый.
Аноним 12/12/19 Чтв 08:53:07 1544029479
>>1524808
Учи и не еби мозги.
Радуйся, что начальник тебя в голанг пинает.
Голанг - не кровавый энтерпрайз, читай исходники стандартных либ и это поймешь.
Джанга - не умрет.
Аноним 12/12/19 Чтв 15:28:37 1544346480
Ребят, пишу на 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к, работаю удаленно. Но я жадный и хочу больше золота.
Аноним 12/12/19 Чтв 15:33:10 1544353481
>>1544346
Кстати, реквестирую курс OTUS по Golang'у. Вроде годнота, судя по программе курса. Там про микросервисы, про то как это всё состряпать в единую работающую хуету.
Есть у кого?
Аноним 12/12/19 Чтв 15:38:00 1544361482
>>1544346
Если цель стать синиор бэкендером в крупной компании, то конечно пхп+го, если востребованность в мелкосреднем сегменте, на удаленках и т.д., то фулстечить. Первое дает стабильность и деньги, но компаний выбор не так и велик, особенно если не в многомиллионнике вроде ДС или Лондона, а второе для мобильности удобнее, по деньгам можно примерно и так же выйти
Аноним 16/12/19 Пнд 02:48:11 1547873483
думаю над темой диплома, что такого я могу написать на пщ? сайт уж слишком стыдно
Аноним 16/12/19 Пнд 05:08:08 1547890484
>>1547873
Простой блокчейн. Для бакалавра потянет.
Аноним 16/12/19 Пнд 05:12:40 1547891485
>>1547890
>Простой блокчейн. Для бакалавра потянет
Куда копать?
Какие либы есть?
Аноним 16/12/19 Пнд 10:57:46 1548054486
>>1547890
збазиба, анон
>>1547891
ну я немного уже себе нашел в интернетах, вкатись в предметную область
Аноним 16/12/19 Пнд 11:39:00 1548073487
>>1548054
Есть же опенсорсные реализации уже + статьи на медиуме вида "простой блокчейн в два шага".
Да даже больше скажу, этот ваш блокчейн это по сути эвент соурсинг с подписью изменений, Линус Торвальдс ещё в 2005 году то же самое сделал, когда гит написал.
Аноним 16/12/19 Пнд 17:48:12 1548380488
>>1544353
Тоже хотелось бы увидеть этот курс
Аноним 16/12/19 Пнд 19:14:32 1548470489
Когда там Go 2 выйдет? Или неизвестно?
Аноним 16/12/19 Пнд 20:47:53 1548592490
Аноним 20/12/19 Птн 22:41:56 1552140491
maxresdefault.jpg (50Кб, 1280x720)
1280x720
Добрый день. Как в этом языке грамотно работать с математическими действиями? Вот делю я 25 на 7 (25/7) а выводится 3. Что читать?
Аноним 20/12/19 Птн 22:52:24 1552160492
>>1552140
Результат целый, потому что оба аргумента целые. Нужно, чтобы хотя бы один был вещественным. Делай либо 25.0/7, либо float64(25)/7
Аноним 21/12/19 Суб 00:58:57 1552240493
15747757370670.jpg (54Кб, 640x640)
640x640
>>1552140
>Добрый день. Как в этом языке грамотно работать с математическими действиями? Вот делю я 25 на 7 (25/7) а выводится 3. Что читать?

25.0 / 7.0
Аноним 21/12/19 Суб 09:52:12 1552416494
Аноним 23/12/19 Пнд 09:22:57 1554369495
Антон подскажи как быть. Сижу QA в команде, бек пилят на Go. Не хочу оставаться селениум-дауном и гонять регрессы. Какие есть шансы начать брать небольшие задачи на Go и перекатываться в dev? Олсо думаю параллельно проходить курс https://otus.ru/lessons/razrabotchik-golang/ Изучил пока только синтаксис, знаю python на уровне писания автотестов
Аноним 23/12/19 Пнд 09:34:23 1554374496
>>1554369
Шансы есть, конечно. Почему бы и нет?
Аноним 23/12/19 Пнд 16:06:29 1554728497
>>1554369
Не жалко 50к инфоцыганам заносить?
Аноним 23/12/19 Пнд 18:44:21 1554867498
>>1554369
- проходишь тур го на оф сайте
- конец
Аноним 23/12/19 Пнд 18:50:01 1554876499
>>1554369
Вот насчёт OTUSа сомнительно. Курсы у них, может, и нормальные (я хз) - но блог на хабре просто отвратительный. Какая-то абсолютно бесполезная вода, текст ради текста.
Иногда не замечаю, какой блог читаю, и догадываюсь на второй-третьей странице - когда я понимаю, что текст уже пролистал и всё ещё обладаю той же информацией, как во время чтения заголовка.
Аноним 24/12/19 Втр 11:30:44 1555372500
>>1554374
>Почему
слышал что в основном на Go перекатываются уже разработчики с опытом backend- разработки. И компании рассматривают разрабов, которые пишут на Го или готовы переучиваться.
Аноним 25/12/19 Срд 23:20:39 1557108501
надеюсь ваш го не здохнет в течении пары лет, потому что я только получил оффер и буду его учить
Аноним 26/12/19 Чтв 00:19:34 1557158502
>>1557108
Готовься к баттхёрту. Если ты учишь го потому что дядя так сказал надо, то пиздарики тебе. А вот если потому что самому интересно — то это божья благодать. Хотя это зависит от того, с каких языков ты пришёл. Если с жявы, то точно пиздарики.
Аноним 26/12/19 Чтв 13:16:27 1557490503
Рейт ми /пр
https://github.com/beneG/mad_test
Это тестовое задание в одну говноконтору, надо было сделать фриланс аукцион с корректным обращением с деньгами.

Это моя первая программа на го, и хз почему меня не взяли в эту говноконтору.
Аноним 26/12/19 Чтв 13:34:55 1557519504
>>1557490
Архитектура так себе (про DDD ты явно не слышал), слои логики перемешаны между собой, файловая структура самописная и так себе, гошная специфика тоже так себе. О доставке тоже не подумал, апи задекларировано так себе.
Максимум, взял бы тебя на джуна без обид, ты попросил - я оценил.
Аноним 26/12/19 Чтв 17:48:10 1557763505
>>1557519
Вооот. А на деле я оказался супер продвинутым программером, и сейчас работаю в одной известной конторе и делаю ИИ в авиасимуляторе на крестах.
Всё с вами goферами понятно, чисто формалистский подход и оценка.
Аноним 26/12/19 Чтв 17:53:10 1557764506
>>1557763
> на деле я оказался супер продвинутым программером
Что-то по коду не видно, говнокод, как он есть. Если ты считаешь себя супер-продвинутым, мне стоит тебя огорчить.

> одной известной конторе
Я видел говнокод от множества известных контор, включая Яндекс и Гугл. Ничего эти ярлыки не значат.
Аноним 26/12/19 Чтв 18:05:49 1557774507
>>1557764
>Что-то по коду не видно, говнокод, как он есть. Если ты считаешь себя супер-продвинутым, мне стоит тебя огорчить.
Это первая программа на голанге, после которой я руки мыл с мылом. Ладно ковыряйтесь в свойём goвне сами, а я пожалуй останусь на божественных крестах.

А ты, пидор, покажи свой конфетка-код прежде чем свой носик задирать.
Аноним 26/12/19 Чтв 18:41:10 1557802508
>>1557774
Сначала ты просишь оценить тебя, а потом строишь обиженку? Ну ок.
Свой лепет про первую программу можешь больше не писать, потому что если бы ты хотя бы слышал про азы разработки на бекенде, то попытался бы что-то такое изобразить. Твой код не не-идиоматичен, он просто плохой, потому что ты путаешь тёплое с мягким.
Да и в принципе опытные разработчики как правило сразу гуглят примеры кода и какие-нибудь example-проджекты на стеке X, чтобы понять, как вообще тут принято делать. Ты поленился сделать даже это.

Свой божественный код я бы с радостью тебе показал (ты бы ослеп от его красоты и проработанности), но у меня нет привычки программировать что-то серьёзное дома, рабочий код (понятно) принадлежит не мне, а садиться и лепить примеры чтобы что-то доказать очередному маня-долбоёбу, считающему себя "супер-продвинутым программером" лол я тем более не считаю нужным.
Аргументы я тебе привёл вот тут >>1557519 и они достаточно объективные, можешь каждый из них гуглить и разбираться, как делать правильно и как нет.
Аноним 26/12/19 Чтв 18:44:29 1557806509
>>1557490
>Всё с вами goферами понятно, чисто формалистский подход и оценка
>А ты, пидор, покажи свой конфетка-код прежде чем свой носик задирать.
>Это первая программа на голанге, после которой я руки мыл с мылом. Ладно ковыряйтесь в свойём goвне сами
>Aug 24, 2018
спустя полтора года чувстсовать себя солёным и обсирать виноград, которые тебе не достался, это сильно. правильно не взяли.
Аноним 26/12/19 Чтв 19:20:40 1557835510
>>1557806
Ну, тогда было обидно что не взяли. Сейчас дела сложились намного лучше и я думаю было бы херово если б взяли.
Я пришёл обсирать не виноград а яп который ебанут и имеет ебанутое коммунити.

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

И то что ты не отрицаешь что ты пидор говорит о том что пидоры - говно, так как множество пидоров содержит такого уебана как ты.
Аноним 26/12/19 Чтв 20:35:15 1557976511
>>1557763
Уж ли не для Ил2: Штурмовик ИИ пишешь? Судя по твоему гиту тебя туда взяли пару месяцев назад на джуна или трейни
Аноним 26/12/19 Чтв 20:48:53 1558018512
>>1557976
Посмотрел я его код, выше джуна не тянет. знал бы он плюсы так как выёбывается - был бы совсем другой разговор. в который раз убеждаюсь, что ЯПы бывают разные, а долбоёбы на них пишут одни и те же.
Аноним 27/12/19 Птн 03:23:41 1558444513
>>1557835
> Я пришёл обсирать не виноград а яп который ебанут и имеет ебанутое коммунити.
То есть наговнокодил ты, а виноват язык и комьюнити? Гениально.
Аноним 27/12/19 Птн 09:29:24 1558508514
>>1558444
Ему гоферы в штаны насрали
Аноним 27/12/19 Птн 12:22:41 1558596515
Спасибо, ребят что охладили моё чсв.
go ахуенный язык, вот тот чел который так и не показал свой конфека-код вообще красавчик. А то пол ./pr ослепло бы.
Да и ваще все вы молодцы. Отсасывайте друг у друга.
Аноним 27/12/19 Птн 16:17:29 1558884516
>>1558596

Странный ты чувак. Выше уважаемый ананас тебе все объяснил. Чего у тебя подгорает - не понятно.
Аноним 29/12/19 Вск 17:16:37 1560453517
>>1511423
Ты не писал на паскалевском синтаксисе. PL/SQL - паскаль. Го - си с корутинами и гц.
Аноним 02/01/20 Чтв 22:39:20 1563448518
Аноним 14/01/20 Втр 13:06:17 1572485519
Аноним 17/01/20 Птн 09:22:35 1575141520
>>1509601
У Elixir/Erlang тоже есть неоспоримые преимущества:
это разработанные не через жопу языки, в которых есть инструменты более продвинутые, чем палки-копалки из го.
Ну и рантайм получше, в основном за счет идеи каждому процессу свою память давать. Вот в BEAM VM асинхронность, да. А в этих ваших Golang / Python asyncio и прочем -- ебучее CSP, которое стало ебучим из-за того, что его пихают везде, даже туда, где оно, блджад, не работает.
Аноним 03/02/20 Пнд 04:36:56 1589983521
>>1484255
бамп годному вопросу
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов