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


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

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

Тред про лучший в мире язык 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ертификатов опционально
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов