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


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

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

Тред про лучший в мире язык GO №9 /go/ Аноним # OP 19/04/20 Вск 14:03:28 16618131
g1.jpg (52Кб, 654x625)
654x625
g2.jpg (214Кб, 600x437)
600x437
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, пробрасываем ошибки, смеемся над джавистами, которые не могут жить без ексепшенов, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков

Прошлый >>1635774 (OP)
Аноним 19/04/20 Вск 14:44:57 16618722
>>1661778 →
На всякий случай уточнил, по тому что у меня первая ассоциация была с Китаем.
Аноним 19/04/20 Вск 14:49:26 16618843
Аноним 19/04/20 Вск 16:03:26 16619464
>>1661884
>Нет просмотров 2 недели назад
Воу, годнота наверное.
Аноним 19/04/20 Вск 17:14:30 16620845
>>1661485 →
переведу на язык биологии, вы жили в комфорте пилили какую то хуйню для кишков компании(которая особо и не нужны были), в итоге из-за кризисы новые вызовы, если ваш отдел сейчас не войдет в резкий поток изменений, если вы не выйдите из зоны комфорта и в стрессе не начнете хуячить что- то новое, то вы по всем законам рынка должны умереть.
Аноним 19/04/20 Вск 17:25:56 16621106
>>1661781 →
А что, го настолько быстрее скриптов? Ну то есть бысрее конечно, но количество нулей в стоимости будет одинаковым.
Аноним 19/04/20 Вск 18:01:42 16621577
>>1662110
Намного быстрее и намного меньше жрет ресурсы. Но это в ряде случаев и если пишут люди с прямыми руками.
К примеру, просто отдавать данные из базы наружу скорее всего все стеки будут +- примерно одинаково (питон и руби чуть медленнее, пхп чуть быстрее, го и джава - очень быстро). А вот когда попрёт бизнес-логика и нужно будет провести 100500 побочных операций, сравнений и запросов в базу на один запрос извне - вот тогда и окажется, что го или джава на пару порядков быстрее.
Но опять же, всё будет зависеть от реализации, на питоне есть pypy и прочие преобразователи в C, в php скоро будет JIT и разница будет максимум в разы.
Для меня выглядит так, что обычно выбираются 2 языка, один для бизнес-логики (чтобы удобно описывать сложные правила), второй - для высоконагруженных системных сервисов (типа сервиса авторизации). Например, в баду для этого используют PHP + GO.
Но ещё нужно понимать, что это крупняк. В небольших и средних конторах можно брать вообще что угодно, там не бывает таких больших нагрузок, чтобы разница становилась действительно значимой.
Аноним 19/04/20 Вск 18:39:12 16621818
>>1662157

ты прав только от части, но основной профит не здесь закопан

таки основной профит закопан здесь:

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

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

как это будет выглядеть в го/ноде/питонячьем asyncio
одновременно кидаем по запросу в постгрю и монгу, получаем готовые данные за время самого долгого запроса из двух
мержим-преобразуем полученные данные
кидаем во внутреннюю очередь/канал сообщение, что надо статку записать (там тоже асинхронно запросы кидаем)
сразу же отдаем клиенту
асинхронно отвечаем промиковскому экспортеру

итого, синхронная реализация с точки зрения клиента будет ~4 раза медленнее

и давайте будем честны, тредами на жаве такое не делают, потому что скорее память кончится, а что с ивентлупами в жаве я не знаю, и что asyncio, что reactphp - маргинальные технологии
Аноним 19/04/20 Вск 18:41:25 16621839
>>1662084
Так и есть. Кишки может и нужны, но на разработку уходят деньги. И вроде бы эти кишки уже что-то умеют, а что не умеют можно например заменить написанием excel-ек. А тут кризис и необходимость сокращать расходы, и зарплаты надо платить тем людям кто действительно зарабатывает деньги компании (инженеры, монтажники, проектировщики, etc).

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

Ко всему этому я был готов, в принципе, просто я хотел играть "безопасно" прыгая с одного места работы на другое, и чтобы умные парни тратили на меня своё время отвечая на глупые вопросы там, где я не справляюсь самостоятельно. А быть тим лидом, принимать ответственные решения, определять архитектуру приложения... У меня для этого тупо не хватает знаний и опыта, а зарабатывать седые волосы будучи джуном мне нахуй не надо. Я всю жизнь топил не за большой заработок, а за комфорт.

Другое дело, конечно, что сейчас может и выбора не оказаться.
Аноним 19/04/20 Вск 18:47:28 166218910
Вам не лень такие простыни строчить?
Аноним 19/04/20 Вск 18:52:31 166220111
>>1662189

карантин же, делать нехуй
19/04/20 Вск 19:14:02 166223712
Сап гоферы, не подскажите что я делаю не так
https://play.golang.org/p/oIUkTqpDXxJ
Хочу проксировать запрос но чет не выходит.
Аноним 19/04/20 Вск 19:17:54 166224113
Аноним 19/04/20 Вск 19:55:31 166227614
>>1662181
Ну asyncio уже давно мейнстрим. Wargaming, Ростелеком, Yandex, Avito, Сбер используют aiohttp, который в свою очередь основан на asyncio. Но проблема питона в том, что большинство библиотек заточены под синхронный питон, под asyncio не так уж и много хороших инструментов (а это одно из немногих преимуществ питона), поэтому зачем мучаться с питоном, если можно взять golang, который изначально разрабатывался под асинхронность
Аноним 19/04/20 Вск 19:58:09 166227815
>>1662276
> asyncio не так уж и много хороших инструментов
Благодаря популярности пистона, думаю со временем сообщество наверстает отставание. Джанга 3 вон уже прикручивает асинхронность чуть-по-чуть.
Аноним 19/04/20 Вск 20:26:20 166230816
>>1662278

Поздно.
Джанга помрёт, оставшись диким легаси.
Им надо было начинать когда асинхронщину втащили в язык.
Аноним 19/04/20 Вск 20:31:35 166231917
>>1662308
Ну наконец-то, а то я заебался ждать, когда этот питоний вордпресс сдохнет.
19/04/20 Вск 20:38:10 166232518
>>1662319
Ну как сдохнет - будет еще 50 лет на поддержке в некоторых проектах
Аноним 19/04/20 Вск 20:44:39 166233319
>>1662278
>>1662319

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

>>1662278
ты в курсе, что asyncio уже лет пять наверно, мб больше не гуглил, сделайте это за меня; в пыхе например есть swoole, выглядит тоже как топчик, но что-то как-то нет
Аноним 20/04/20 Пнд 03:26:29 166253120
Парни, привет.
Начал курить го по совету товарища, который этим зарабатывает, но моя ленивая башка очень тяжело и прям со скрипом воспринимает новое. И так во всем почти. Прикол в том, что я работаю ночным сотрудником техпода и времени учиться - вагон.
Сори, что офтоп, но может, у кого была похожая хуйня? Как заинтересовать себя что ли?
Когда не на работе, пью пиво и смотрю видяшки в основном, как-то чмошно получается.
Аноним 20/04/20 Пнд 03:49:04 166254021
греча.png (1894Кб, 1023x959)
1023x959
Аноним 20/04/20 Пнд 08:21:15 166259522
>>1662531

А что ты делаешь в /pr/?
Ищи, что тебя интересует. Как только найлешь, будешь смотреть видео по теме, а не смешнявки.
Аноним 20/04/20 Пнд 08:43:47 166259823
>>1661813 (OP)
Первая пикча достаточно иронична, учитывая что
>verbose
>old fashioned
это свойства, которыми goвно обладало с самого рождения
Аноним 20/04/20 Пнд 08:51:13 166260024
>>1662598

По сравнению с Java go крайне лаконичный.
А вот, про old-fashioned, пожалуй да, С с горутинами и сборщиком мусора.
Аноним 20/04/20 Пнд 15:25:16 166294425
>>1661813 (OP)
Привет

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

Сам я долбаеб, который не умеет читать книжки и привычнее, когда есть ментор/наставник или еще кто. Короче, есть ли годные курсы по пщ? Гикбрейнс, скилбокс, нетология - вроде как полная параша.
Аноним 20/04/20 Пнд 16:11:23 166302326
Двощ, какая лучшая IDE для этого вашего GO VSCode, Atom и подобную парашу тоже будем считать за IDE?
Аноним 20/04/20 Пнд 16:18:37 166302927
>>1663023
Тут особо выбирать не из чего: VS Code или GoLand
Аноним 20/04/20 Пнд 16:27:21 166303628
>>1662944
Ultimate go на английском - покрывает язык практически полностью, рассматриваются некоторые низкоуровневые штуки, есть небольшой уклон в software engineering.

Разработчик Go от Otus - спорный курс, есть слабые лекторы. из плюсов:
- рассматривается устройство go
- больше прикладных знаний
--есть задания

Оба курса можно получить забесплатно (ну или почти) если хорошенько поискать

Аноним 20/04/20 Пнд 16:48:06 166306129
>>1663036
спасибо!
поищу последний
Аноним 20/04/20 Пнд 18:23:24 166313730
go.jpg (532Кб, 1764x2048)
1764x2048
>>1662944
Сейчас читаю Head First. Изучаем Go. Вроде ниче так.
Аноним 20/04/20 Пнд 18:26:09 166314131
>>1663023
нахуй тебе эти параши? возьми православные sublime или notepad++.
Аноним 20/04/20 Пнд 18:37:09 166314832
VIM
Аноним 20/04/20 Пнд 18:41:55 166315133
Аноним 20/04/20 Пнд 18:51:13 166315634
Аноним 20/04/20 Пнд 19:33:24 166319435
На всякий случай нужно сказать, что если вы хотите использовать текстовый редактор (vim, VSCode, Atom) как IDE - вам нужно обмазаться gopls
Аноним 20/04/20 Пнд 19:48:00 166321736
>>1663194
В последний раз, когда я его пробовал в вскоде, он не показывал автодополнение для еще неимпортированных пакетов.
Аноним 20/04/20 Пнд 21:12:39 166329937
>>1663217
Goland это умеет, но делает как-то со скрипом
Аноним 21/04/20 Втр 07:32:22 166350038
Аноним 21/04/20 Втр 09:56:36 166353139
Аноним 21/04/20 Втр 17:56:36 166382240
Здравствуйте. Очередной вкатывальщик ИТТ
Стараюсь изучить на курсере, пока все нравится, но...Можно ли набраться опыта/экспертизы, не меняя работу? Звучит максимально странно, но сейчас получаю довольно хорошую зп, и не вкатываться джуном.

Более реалистично звучит go + front, только пиздецки не хочется осваивать js.
Аналогично понятно, что можно набраться опыта в мобилках.

Фриланс не найти из-за того же отуствия опыта.
Аноним 21/04/20 Втр 18:10:28 166384141
>>1663822
Попробуй написать борду. В процессе ты будешь много гуглить вещей, которые действительно важно знать и уметь.
Аноним 21/04/20 Втр 20:48:40 166396842
>>1663137
анон, прошу тебя дай ссылку на Изучаем Go
Аноним 21/04/20 Втр 21:57:02 166403943
Какие есть ёба-пиратские сайты с книгами? На рутрекере по программированию две книги в месяц выкладывают.
Аноним 21/04/20 Втр 22:07:44 166404544
Аноним 22/04/20 Срд 00:42:26 166416145
Аноним 22/04/20 Срд 15:14:48 166447346
>>1664045
Комплюхтерных книжек там еще меньше, чем на рутрекере.
Аноним 22/04/20 Срд 15:23:03 166448347
>>1664039
Поиск в документах в вк.
Аноним 22/04/20 Срд 16:11:02 166455648
Расскажите про контекст.
Допустим, я делаю рест апи, каждый реквест содержит контекст, который я прокидываю из обработчика запроса по всей иерархии вызовов, где это возможно. Допустим, вся логика сводится к вызову функции, состоящей из последовательных затратных по времени операций, в ней контекст никуда не прикрутишь. В таком случае его просто принимать, но игнорировать?
Или можно ту функцию переписать, чтобы она возвращала результат через канал, написать к ней обертку, которая запустит основную функцию в горутине, а потом будет делать селект между каналом результата функции и каналом Done контекста. Тогда можно будет в случае чего быстро вернуться, но горутина с основной логике будет выполняться в никуда.
Или можно этим сраным селектом обернуть каждое выражение в функции и чекать из контекста отмену на каждом шаге алгоритма, но это будет ад.
Как принято делать?
Аноним 22/04/20 Срд 16:22:55 166457449
>>1664556
https://www.youtube.com/watch?v=me5iyiheOC8

>Или можно этим сраным селектом обернуть каждое выражение в функции и чекать из контекста отмену на каждом шаге алгоритма, но это будет ад.
select + ctx.Done нужно использовать в местах, где есть ожидание от других каналов, в остальных же местах достаточно использовать проверку ctx.Err() != nil
>контекста отмену на каждом шаге алгоритма
Если идет обработка какого-то говна в цикле - достаточно одной проверки в начале тела цикла, иначе - перед тяжелыми вызовами, т.е. в большинстве случаев достаточно перед IO операциями
Аноним 22/04/20 Срд 17:11:40 166466750
>>1664556
можно сделать грязный хак, типо

func DoSomethingWithCancel(ctx context.Context, params...) (val interface{}) {
funcThatDoSomething := func(params...) interface{} { ... }
internalCtx, cancel := context.WithCancel(ctx)
go func() {
val = funcThatDoSomething()
cancel()
}
<-ctx.Done()
return val
}
Аноним 22/04/20 Срд 17:13:02 166467451
>>1664667
только не <-ctx.Done(), а конечно же <-internalCtx.Done()
Аноним 22/04/20 Срд 18:17:37 166477852
Какие плюсы/минусы при перекате с плюсов? Плюсы заебали тем, что их можно учить бесконечно просто, каждый год узнаю что-то новое, что можно было сделать лучше.
Аноним 22/04/20 Срд 19:20:49 166485753
Аноним 22/04/20 Срд 19:21:09 166485854
Аноним 22/04/20 Срд 19:24:10 166486255
>>1664778
плюс: нельзя учить бесконечно
минус: нельзя учить бесконечно
Аноним 22/04/20 Срд 20:11:18 166490656
Аноним 22/04/20 Срд 20:24:18 166491957
>>1664574
У этого парня из Баду ноутбук в два раза шире, чем он.
Аноним 22/04/20 Срд 20:28:32 166492158
Посоны, а gopl не сильно устарела?
Аноним 22/04/20 Срд 20:30:48 166492259
image.jpeg (9Кб, 198x255)
198x255
Аноним 22/04/20 Срд 20:34:44 166492660
>>1664922
А что там сейчас самое модное? Я из жабазагона, если что. За тренда не слежу.
Аноним 22/04/20 Срд 20:36:30 166492861
Аноним 22/04/20 Срд 20:36:56 166492962
image.jpg (53Кб, 293x539)
293x539
Аноним 22/04/20 Срд 21:19:43 166495863
>>1664928
Это для маминых саентистов, а я обычный станочник.
>>1664929
Сложно.
Аноним 23/04/20 Чтв 03:17:19 166508964
>>1663023
Любая, в которой тебе будет удобно. Sublime Text, если созрел то может Vim/Neovim, Emacs. VSCode - это днище и вообще зашквар на электроне.
Аноним 23/04/20 Чтв 03:51:44 166509465
>>1663968
в телеге найди, там есть пиратский канал по книгам суслика. я там нашел.
Аноним 23/04/20 Чтв 03:54:50 166509566
26c82d68d4ab6ae[...].jpg (50Кб, 340x247)
340x247
>>1665089

>VSCode - это днище и вообще зашквар на электроне.

Джва чифирка эту господину! Более того у саблайма есть прекрасные сниппеты, макросы.
Аноним 23/04/20 Чтв 13:05:35 166529167
>>1662181
Ну так я об этом и говорил.
У тебя будет сервис, который умеет синхронно ходить в кучу сервисов, мерджит-преобразует и всё такое, на го.
Понадобились данные - один раз сходил в соседний под в этот сервис и получил их, а потом отдал. Пыха здесь чисто как прослойка нужна, чтобы бизнес-логику писать с использованием этих данных.
Аноним 23/04/20 Чтв 13:12:27 166530268
>>1665095
>VSCode - это днище и вообще зашквар
>саблайм
Аноним 23/04/20 Чтв 13:36:15 166534569
>>1665291

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

Но со временем втянулся. Ничего страшного, не так красиво и лаконично, но можно сделать что угодно.
Аноним 23/04/20 Чтв 14:19:48 166540270
>>1664667
А в чем профит-то? Это же явная утечка горутин.
Аноним 23/04/20 Чтв 19:08:01 166573571
>>1665402
в том, что ты осознанно отпустишь какую-то блокирующую часть кода и пойдешь дальше, например у тебя какая-то долгая операция и ты хочешь грейсфул завершить прилож за предсказуемое время, при этом на результат этой операции тебе впринципе пофиг

и, это конечно костыль, но реальная жизнь такова

>>1665291
акцент на асинхронную работу с ио, которого у тебя не было, а это дает наибольший вклад в итоговый перформанс
Аноним 23/04/20 Чтв 20:33:53 166583272
Посоветуйте какой-нибудь туториал по докеру и кубернетесам, чтобы даже дебил без лобных долей разобрался.
Аноним 23/04/20 Чтв 20:36:27 166583873
>>1665832
Видосики на ютубе на русском по запросу "docker".
Аноним 24/04/20 Птн 14:13:37 166637474
ГОвно))
Аноним 24/04/20 Птн 17:38:01 166655975
мертый тред as a service
Аноним 24/04/20 Птн 18:40:54 166662176
>>1666559
>мертый тред as a service
Что ты знаешь о смерти ? хочешь увидеть смерть, иди в хаскель тред.
Аноним 24/04/20 Птн 18:51:02 166663377
>>1666621
>увидеть смерть, иди в хаскель тред.
Что ты знаешь о смерти ? хочешь увидеть смерть, иди в жулиа тред.
Аноним 24/04/20 Птн 21:17:32 166673078
Гоферы, а расскажите, как вы обрабатываете ошибки?

И я здесь имею ввиду не только if err != nil { return err }, но и что дальше делать с этой err, что делать, если тебе никак нельзя тут получить err и тд?
Аноним 24/04/20 Птн 21:32:28 166674879
А Го специально так придумывали, чтобы синтаксис не такой как у всех был?
Аноним 24/04/20 Птн 21:42:08 166674980
image.png (132Кб, 1920x1080)
1920x1080
>>1666748
Ты не видишь этот маскот?
Аноним 24/04/20 Птн 21:53:37 166675481
>>1666730
>если тебе никак нельзя тут получить err
Мало ли что тебе нельзя.
Аноним 24/04/20 Птн 22:16:20 166677482
>>1666754

ваше мнение очень ценно для нас, пожалуйста оставайтесь на связи
Аноним 24/04/20 Птн 22:24:18 166678683
>>1666774
Если ошибка появилась там, где не должно быть ошибки, то одно из двух:
1. система плохо спроектирована
2. сдохло железо
Оба случая - без вариантов паника, тут уже не до ошибок.
24/04/20 Птн 22:26:17 166679084
кто как работает с миграциями? какой пакет для этого используете?
стоит ли запускать миграции из приложения при его запуске или лучше отдельно запускать команду?
Аноним 24/04/20 Птн 22:45:03 166679585
>>1666786

спасибо ты не очень умный
Аноним 24/04/20 Птн 22:45:23 166679686
>>1666795
Умные люди на го не пишут.
Аноним 24/04/20 Птн 22:49:19 166680187
>>1666790
> кто как работает с миграциями? какой пакет для этого используете?

почитай прошлый тред, там вроде goose рекоммендовали поддерживаю

> стоит ли запускать миграции из приложения при его запуске или лучше отдельно запускать команду?

во-первых, однозначно не нужно встраивать в запуск приложения инструмент миграции, во-вторых, запускать ли приложение через `sh -c "migrate-cmd && app-start-cmd"` сильно зависит от.
Аноним 24/04/20 Птн 22:50:37 166680388
>>1666796
зачем же ты тогда вышел за пределы своего php-треда, петушок?
Аноним 24/04/20 Птн 22:51:14 166680589
Аноним 25/04/20 Суб 00:48:04 166690990
>>1666790
Илья, в прошлом треде вопрос обсуждался, тред еще жив, смотрите там
Аноним 25/04/20 Суб 22:40:22 166763391
щас бы живой тред... эх...
Аноним 27/04/20 Пнд 00:46:43 166856892
Аноним 27/04/20 Пнд 11:56:53 166885493
Нужно ли ставить нужникс перед go API сервером? Или лучше добавить TLS к моему коду?
Аноним 27/04/20 Пнд 21:22:21 166955694
>>1668854
Нгинкс же не только реверс-прокси, но и балансировщик нагрузки.
ставь апач
Аноним 27/04/20 Пнд 22:34:36 166963495
>>1669556
>балансировщик нагрузки
Ну да, но в случае одной ноды - есть ли польза? Go код и так умеет утилизироваь все ядра. Я нашел только одну причину для этого - нужникс, наверное, будет проще в эксплуатации, его можно более гибко тюнить чем мой бинарь
>ставь апач
А это еще зачем? Я думал он нужен только для того, чтобы php/python/perl скрипты запускать, а нужникс - более производительный
Аноним 27/04/20 Пнд 22:59:23 166966196
Писал в прошлом треде, что после 3 месячного курса внутреннего компании, меня взяли джуном, работаю уже почти месяц, перевожу микросервисы с монги на постгресс, и иногда кажется что я пиздец тупой, могу долго сидеть тупить как работает логика сервиса, и приходят в голову мысли что может ну его нахуй, может это не мое, сижу дрочу код\тесты часов по 10 в день. Это норма?
Аноним 27/04/20 Пнд 23:02:51 166966597
>>1669661
>перевожу микросервисы с монги на постгресс
А что за такой массовый хейт и слив с монги? Чем она не устраивает?
Аноним 27/04/20 Пнд 23:04:32 166966698
>>1669661
>часов по 10 в день. Это норма?
По 10 не надо, сгоришь.
Аноним 27/04/20 Пнд 23:14:01 166967399
>>1669665
Не так много задач, где монга лучше постгресса
Аноним 27/04/20 Пнд 23:28:03 1669680100
Перекатываюсь в го из пыхи.
Курсы от ОТУСа норм?
И как определить, что я уже могу считаться джуном го? Какую приложуху надо написать как пет? в пыхе это круд со студентами
Аноним 27/04/20 Пнд 23:33:10 1669689101
>>1669673

оу, интересно, распишешь кейсы?

>>1669680
> Курсы от ОТУСа норм?

хуй знает

> Какую приложуху надо написать как пет?

напиши production-ready cloud-native круд со студентами
Аноним 27/04/20 Пнд 23:54:55 1669699102
>>1669680
у отуса вебинары, со всеми вытекающими. чмекающие, пукающие лекторы с уёбищными микрофонами, чсвшные уёбки вместо студентов, дерейлящие занятия нерелейтед вопросами, половина лекторов нихуя не флюент в пыще и тому подобное. сама программа норм конеш
Аноним 28/04/20 Втр 08:31:23 1669853103
>>1669699
У отуса странная тян, которой задают вопросы, она говорит "окей, отвечу в конце занятия", в конце занятия говорит "окей, давайте посмотрим в исходники го", ничего там не находит и прощается.
Аноним 28/04/20 Втр 10:15:16 1669909104
>>1669665
Она не нужна в большинстве случаев
Аноним 28/04/20 Втр 10:33:47 1669924105
>>1669689
>оу, интересно, распишешь кейсы?
Я знаю только два:
1) Тебе нужен high availability, у SQL баз с этим довольно плохо
2) Когда ты уперся в скорость записи в SQL базу
Для большинства проектов эти вещи вообще не актуальны
Аноним 28/04/20 Втр 10:59:50 1669954106
Объясните, зачем гугл вкладывает кучу бабла в раскрутку Go? Если бы только для своих внутренних корпоративных сервисов использовал - понятно, но зачем широкая-то раскрутка? В чём профит?
Аноним 28/04/20 Втр 11:53:43 1670022107
>>1669954
> В чём профит?
дохуя спецов новых которых можно взять на работу
Аноним 28/04/20 Втр 12:55:02 1670072108
>>1670022
Так к гуглу и без этого очереди желающих выстраиваются. К тому же Go после сиобразных языков выучивается быстро. Поэтому не вижу смысла тратить кучу бабла на широкую раскрутку языка из-за этого. Должны быть какие-то более весомые причины.
Аноним 28/04/20 Втр 12:57:25 1670076109
>>1669924
Кстати, а скорость записи - это актуально в принципе? Разве скорость чтения не гораздо важнее?
Аноним 28/04/20 Втр 12:58:13 1670077110
>>1670072
А можно примеры, что гугл вкладывает кучу бабла?
Аноним 28/04/20 Втр 13:00:39 1670082111
>>1670077
Если бы гугл не вкладывал бабло, то все сидели бы на котлине, а раз не все сидят на котлине, значит гугл вкладывает бабло, очевидно же.
Аноним 28/04/20 Втр 13:01:53 1670083112
>>1670082
Но гугл поддерживает котлин тоже
Аноним 28/04/20 Втр 13:09:28 1670086113
>>1669665
У кей-велью баз есть свои задачи конечно, просто в какой-то момент монга была под лютым хайпом и все вебдебилы бросились заменять нормальные реляционки на доступные своим имбецильным мозгам хеш-таблицы там где надо и не надо. В ответ на это пошла волна хейта, вот осадок до сих пор остался.
Вообще данные лучше держать в хорошо структурированном и нормализованном виде, пока это возможно и не создаёт проблем в поддержке. Такой подход сам по себе позволяет избежать множества ошибок связанных с данными и применить определенные оптимизации. Потом, если где-то упираешься, можно частично денормализовать критичные участки или вообще вынести их куда-то. Использование же безсхемной базы по дефолту подразумевает слабое структурирование, даже тех данных, что можно было бы структурировать гораздо строже. Это даёт возможность бездумно хуярить хуяк-хуяк в продакшн на старте, чем вебдибилы обычно активно пользуются, а потом насасываются на поддержке этого ебаного хаоса.
Нет смысла быстро-быстро писать данные как попало, если потом их надо обрабатывать, а ты ничего не можешь про них сказать, кроме того что это json с полем id. С таким же успехом можно и в /dev/null писать, это еще быстрее.
Аноним 28/04/20 Втр 13:17:40 1670099114
>>1670072
Почему это именно в гугл? Подсадить всех на свой язычок, чтобы, когда наберётся критическая масса кодеров на нём, продавливать своё видение того, как должно развиваться IT. Это как с хромом.
Аноним 28/04/20 Втр 14:31:14 1670227115
>>1670099
Сильно сомневаюсь, что один или даже несколько языков могут определить развитие IT
Аноним 28/04/20 Втр 14:41:42 1670242116
>>1670227
Си и фортран определили.
Аноним 28/04/20 Втр 15:01:03 1670269117
>>1670099
Хром монетизируется за счёт зондов и рекламы. К тому же в интересах тотальной слежки за своими гражданами и всем миром американское правительство готово выделить гуглу любые деньги. То есть даже без рекламы хромой выживет. Но Go для подобного плохо подходит, ибо примитивный. Для этого лучше подходит переусложнённый жирнючий язычок, чтобы во всех его потрохах никто не вздумал серьёзно копаться.
Аноним 28/04/20 Втр 15:08:06 1670282118
Аноним 28/04/20 Втр 15:24:46 1670295119
>>1670269
Гугл как таковой держится в основном за счёт рекламы. И работает он в первую очередь на себя, а не на американское правительство.

> Но Go для подобного плохо подходит, ибо примитивный.
Наоборот, язык должен быть максимально простой, чтобы как можно больше вкатывальщиков ринулось его изучать. Дело даже не в потенциальном наличии зондов в компиляторе пщ, а в самом факте, что на этом языке будут писать именно так, как хочет гугл.
Аноним 28/04/20 Втр 16:13:03 1670373120
>>1670295
>на этом языке будут писать именно так, как хочет гугл.

И как это у гугла окупится?
Аноним 28/04/20 Втр 16:26:42 1670388121
Аноним 28/04/20 Втр 19:41:37 1670665122
>>1665735
> акцент на асинхронную работу с ио, которого у тебя не было, а это дает наибольший вклад в итоговый перформанс

Не особенно корректно, nginx с достаточным размером пула обрабатывает конские потоки трафика, а асинхронная работа с ио нужна очень даже не всегда.
Как правило это выглядит, как: пришёл запрос, ты последовательно сходил в несколько сервисов, отдал ответ. Тут нечего распараллеливать, а последовательные вызовы чего угодно без сложных расчётов и загрузки процессора пыха будет делать достаточно быстро. Зато писать на ней всякие стратегии (то есть бизнес логику) ты будешь быстрее, чем на го.
Аноним 28/04/20 Втр 19:42:47 1670668123
>>1669680
Блог отуса на хабре - полная херня, как будто студенты пишут, 90% воды, 10% копипаста с helloworld'ов. Я бы не рекомендовал.
Аноним 28/04/20 Втр 19:48:33 1670676124
>>1670076
Пф, естественно актуально.
Очень часто данные можно обработать потом, а вот сохранить их для обработки ты должен сразу. Возьми, к примеру, чат - твоё сообщение может долететь к собеседникам не мгновенно, а через несколько секунд, но сохранить его ты должен моментально, чтобы потом прососать по всем системам доставки данных, кэшам, etc. Отсюда ты получаешь огромный поток данных на запись (куча людей что-то пишет).

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

Плюс же монги - это возможность удобно поднимать её в кластерном режиме, поднять так же просто какую-нибудь галеру или местер-мастер постгреса ты не сможешь.
Аноним 28/04/20 Втр 21:09:07 1670814125
>>1670668
Так я не про блог, а про видеокурсы
Аноним 28/04/20 Втр 21:29:54 1670855126
Аноним 29/04/20 Срд 16:11:56 1671503127
>>1664857
плохо ищу, не нашел нихуя.
можно ссыль? буду благодарен
Аноним 29/04/20 Срд 18:01:34 1671674128
>>1670814
Я понимаю, но про видеокурсы я ничего сказать не могу, а вот блог видел. Могу попытаться сделать вывод, что если их блог - полная херня, то и вероятно видеокурсы у них тоже не очень.
Аноним 29/04/20 Срд 18:12:44 1671680129
image.png (33Кб, 804x20)
804x20
Аноним 29/04/20 Срд 23:14:37 1671934130
>>1670076
Актуально, но немного на больших объемах трафика.
Чтение ты можешь сейлить практически до бесконечности даже с классическими SQL базами при помощи каскадной репликации. А с записью - все сложнее, ее практически невозможно масштабировать горизонтально, все что мы можем - это по немногу отказываться от триггеров, foreign key'ев или даже индексов
Аноним 02/05/20 Суб 06:17:40 1674130131
>>1671680
анон ты немножно ебнутый, в ответе был Head First Go с переводом на русиш, я именно его и ищу
Аноним 03/05/20 Вск 15:53:04 1675512132
>>1661813 (OP)
Бля. Мне одному заебывает это if err != nil ?
Аноним 03/05/20 Вск 17:52:08 1675623133
>>1675512
Покажи код проекта.
Аноним 03/05/20 Вск 18:30:38 1675643134
>>1675512
Нет, это заёбывает всех нормальных людей.
Аноним 03/05/20 Вск 19:21:56 1675687135
>>1675512

Через неделю привыкнешь.
Аноним 03/05/20 Вск 20:54:49 1675747136
>>1675512
ну иногда заебывает а вообще прикольна же. лучше чем уродливые try except с отступами
Аноним 03/05/20 Вск 22:06:30 1675811137
>>1675512
Временами заебывает, особенно если нормально обрабатывать (т.е. добавлять контекст к ошибке на каждом этапе)
Но ничего лучше не придумали, на самом деле, ведь try/catch очень неудобный в условиях кучи горутин, у которых еще очень разная иерархия/время жизни/важность может быть
Аноним 03/05/20 Вск 22:19:05 1675823138
>>1675747
В каком месте это лучше? Логика вперемешку с обработкой ошибок, из-за которой код потом становится нечитаемым, и приходится городить хуиту типа
func check(value interface{}, err error) interface{} {
if (err != nil) { log.Fatal(err) }
return value
}

a := check(foo()).(int)
b := check(bar()).(string)
Аноним 03/05/20 Вск 22:28:16 1675838139
>>1675823

Пздц, убей себя об стену.
Аноним 03/05/20 Вск 22:31:32 1675840140
>>1675823
Кто тебе виноват, что ты городишь хуиту. Взял зачем-то спрятал ошибку, теперь тот, кто будет читать твой код, должен будет держать эту функцию check в голове. А если еррор не фатальный? Вводить еще одну чекалку? Каша какая-то получится.
Аноним 04/05/20 Пнд 03:11:52 1675912141
Есть достойное сравнение go с плюсами?
Аноним 04/05/20 Пнд 03:22:39 1675916142
Аноним 04/05/20 Пнд 10:10:05 1675968143
>>1675916
Плюсовики уже четверть века не могут в своем синтаксисе разобраться. Только чуть-чуть поймут, как новый стандарт выходит.
Аноним 04/05/20 Пнд 11:24:45 1676006144
Насущный вопрос: есть метод, запрашивающий данные из бд и возвращающий объект + ошибку (ошибка возвращается в т.ч в случае, если запрос не вернул данных). Указатель на объект возвращать нет необходимости, т.к сам объект не очень большой и изменениям в дальнейшем не подвергнется.

Дело в том, что если запрос не нашел данные и err != nil, в случае возврата значения мне необходимо вернуть структуру с нулевыми значениями у полей + ошибку. В случае же с возвратом указателя я могу вернуть nil + ошибку, что является своего рода подстраховкой на случай, если кто-то не будет проверять наличие ошибки, вызывая мой метод.

Вопрос: как лучше поступить в этой ситуации и стоит ли использовать указатель исключительно ради возможности возврата nil?
Аноним 04/05/20 Пнд 11:33:11 1676013145
>>1676006
>стоит ли использовать указатель исключительно ради возможности возврата nil
Нет, не стоит.
Аноним 04/05/20 Пнд 16:22:59 1676328146
Че почитать по Go с точки зрения программиста, а не вкатывальщика? Пока что прочел только:
https://learnxinyminutes.com/docs/go/
Аноним 04/05/20 Пнд 16:26:43 1676334147
Аноним 04/05/20 Пнд 17:28:23 1676417148
>>1676334
Ок. А как узнать что из этого выкинут в go 2?
Аноним 04/05/20 Пнд 18:14:16 1676449149
>>1676417
Никак, лол. Го 2 где-то в прекрасном далёке, и, похоже, его довольно сильно переделают, и придётся учить заново.
Аноним 04/05/20 Пнд 19:06:58 1676502150
Аноним 04/05/20 Пнд 19:22:28 1676519151
>>1676502
Ещё сортировки зацени, ваше пиздец: https://gobyexample.com/sorting-by-functions

Живётся так же, как жилось в джаве до добавления дженериков. В джаве был Object, а тут есть interface{}. Кастить приходится руками, и типобезопасность идёт нахуй.
Аноним 04/05/20 Пнд 20:41:44 1676652152
>>1676006
>Вопрос: как лучше поступить в этой ситуации и стоит ли использовать указатель исключительно ради возможности возврата nil?
Как верно уже сказали - не стоит, конвенционально считаеться, что если ты вернул не нулевую ошибку - значит ты вернешь нулевые остальные результаты, если не укажешь обратное в документации (как с io.Writer)
Аноним 05/05/20 Втр 01:50:08 1676964153
>>1661813 (OP)
Интересно, что вообще делает Go в разделе Enterprise
Аноним 05/05/20 Втр 02:06:32 1676971154
>>1676652
Столько предположений/допущений для относительно молодого статически типизированного языка - это кекус, конечно. Result нинужен, будем четыре состояния нахуй таскать.
Аноним 05/05/20 Втр 08:23:10 1677055155
>>1676971
Ну да, гораздо лучше бросить эксепшон, который кто-нибудь проебет и он внезапно сломает более высокий уровень абстракции.
Аноним 05/05/20 Втр 08:35:39 1677059156
Тут и вправду кто-то получает деньги за говно?
Аноним 05/05/20 Втр 08:37:29 1677060157
Аноним 05/05/20 Втр 08:41:38 1677061158
>>1677060
Как оно выглядит в продакшоне реального мира?
Аноним 05/05/20 Втр 08:46:46 1677063159
>>1677061

Примерно так же, как и прод на любом другом языке - тонны легаси и лапшекода
Аноним 05/05/20 Втр 09:32:33 1677078160
>>1677063
Как и любой другой язык - легаси и макароны с гавном
Аноним 05/05/20 Втр 09:53:18 1677090161
>>1677078

я просто уточню, для остальных, чтобы понимали - дело не в инструменте(языке), дело в прослойке между клавиатурой и монитором
Аноним 05/05/20 Втр 10:57:31 1677106162
>>1676652

Вот в этом отчасти и заключался вопрос: разве является нормой то, что по сути контракт в этом случае держится на честном слове?
Аноним 05/05/20 Втр 12:21:05 1677219163
>>1666790

>стоит ли запускать миграции из приложения при его запуске или лучше отдельно запускать команду?

На нормальной галере прав на изменение схемы данных в продовой дб тебе никто не даст, поэтому миграции обычно накатываются при деплое в сиай сиди, но блять никак не при запуске.
Аноним 05/05/20 Втр 12:29:55 1677236164
>>1677106

Да, является. Любой линтер или нормальная иде тебя в это носом ткнет потом.
Аноним 05/05/20 Втр 12:52:10 1677251165
Turbopascal30co[...].jpg (19Кб, 252x393)
252x393
>расширение go для vscode не работает с go modules
>gopls работает с go modules, но не подсказывает для неимпортированных пекеджей
Аноним 05/05/20 Втр 12:56:36 1677253166
>>1677236

GoLand без расширений не ругнется на _ = doSomething()
Аноним 05/05/20 Втр 13:10:05 1677273167
Подходит ли этот язык для низкоуровневых вещей? Написание читов и вирусов. Понимаю, что звучит глупо, но все-таки хотелось бы услышать, что-то адекватное
Аноним 05/05/20 Втр 13:38:55 1677331168
>>1677106
Ну, интерфесы везде так работают - 3 строки сигнатуры и 30 строк комментария как правильно его имплементировать. Тут хотя бы компилятор типы проверяет, а в питоне каком-нибуть - вообще все взаимодействие с фреймворками на договоренностях держится

>>1677273
>Подходит ли этот язык для низкоуровневых вещей?
Да, относительно удобно с сисколами работать. Или можно заинкулдить c/c++ либу через CGO, но там свои нюансы
>Написание читов
Не эксперт по этой теме, но я думаю что какой-нибуть ArtMoney можно вообще на чем угодно написать. Любой адекватный язык имеет необходимые возможности и/или может подключить код на си, который это умеет.
>вирусов
Про это я еще меньше знаю, но думаю го может быть удобный в том, что у тебя на выходе может быть бинарь без каких-либо системных зависимостей, но с другой стороны - ты получаешь на выходе довольно жирный бинарь - порядка 2-х мегабайт на хелоуворлд.
Аноним 05/05/20 Втр 13:40:47 1677336169
>>1677331
Большое спасибо за адекватный ответ)
Аноним 05/05/20 Втр 14:05:10 1677393170
>>1677273
Чтобы использовать какую-то уязвимость, писать придется на языках, свойственных целевой платформе: файрфокс - жопаскрипт, реляционная бдшка - эскьюэл. Уязвимость вообще может проявляться как реакция на определенные данные, тогда тут вообще никакой язык.
Аноним 05/05/20 Втр 16:58:40 1677726171
Слайсы вместо векторов это такая особо форма извращения? Пиздос надо быть изобретательным для простых вещей: этому языку уже нужен boost.
Аноним 05/05/20 Втр 17:16:23 1677778172
>>1677726
Чем слайс не вектор? Кроме убогого синтаксиса и отсутствия нормальных итераторов.
Аноним 05/05/20 Втр 17:26:39 1677807173
>>1677253

Поэтому я про линтеры и написал, golang ci cli в полном фарше на все ругнется.
Аноним 05/05/20 Втр 17:32:34 1677825174
>>1677393
Ясное дело, что для того чтобы сделать условную [no]SQL-инекцию - тебе нужно писать [no]SQL запрос. Тут же вопрос в другом - можно ли использовать го чтобы отправлять эти запросы в квери-параметрах к какому-нибуть серверу. Я думаю можно, но вирус я бы писал на расте, наверное
Аноним 05/05/20 Втр 17:36:32 1677840175
А много тут сидит разрабов на зарплате, или студентота одна паршивая? Я в разделе первый раз, если чо.
Аноним 05/05/20 Втр 17:42:54 1677858176
>>1677778
к тому что обвязку надо писать всю самому, итератор вообще хуй знает как без арифметики указателей
Аноним 05/05/20 Втр 17:46:13 1677864177
>>1677825
> можно ли использовать го чтобы отправлять эти запросы в квери-параметрах к какому-нибуть серверу
Для этого не то что го - баша с курлом хватит.
Аноним 05/05/20 Втр 17:55:28 1677879178
Аноним 05/05/20 Втр 18:22:12 1677921179
>>1677879
Я не тот, кто задавал оригинальный вопрос, я просто поделился своими мыслями на тему того, подходит ли го под указаные задачи
Аноним 05/05/20 Втр 18:29:17 1677924180
Поясните, нужно сделать такого рода вещь: нужно отсортировать данные таблицы по регексу. Подвох в том, что регекс вводится в поле, а значит просто eval нельзя.
Аноним 05/05/20 Втр 18:37:28 1677931181
>>1677825
Да вроде ботов нормально на нем делать. У меня есть пара-тройка, прикидывал, как их примерно на нем переписать, можно. Но по идее вирусы могут работать на дырках в либах со стандартным соглашением о вызовах и традиционным подходом к памяти. В go это все отличается. А либ таких дохера, они везде. А вообще вся эта вредоносная хуета это очень это очень разные вещи могут быть. Длч чего-то подойдет, условно там сервис для винды я бы не стал на нем писать.
Аноним 05/05/20 Втр 18:39:27 1677933182
Суп гач. Я заебался и у меня люто горит пердак. Памахи! У меня несколько вопросов:

Где должны лежать исходники программы на го? в $gopath/src? Или похуй где?
Если моя программа размазана по нескольким файлам как мне делать импорты, если моя программа будет неходиться ВНЕ gopath?

Ебать, это такие банальные вопросы, но у меня уже столько времени рвет от них жопу! Я просто хочу узнать, как правильно сделать, и что б пацаны не засмеяли. Я нахуй всё, устал.
Аноним 05/05/20 Втр 18:41:47 1677935183
>>1677933
Алсо, что такое эти ваши гомодулес и какого хуя gopls до сих пор их не поддерживает?
Ладно, второе это риторический вопрос о наболевшем.
Аноним 05/05/20 Втр 18:50:46 1677946184
>>1677924
https://play.golang.org/p/2rK6cRbsq82, если я правильно понял тебя
>>1677933
Какую версию юзаешь?
>>1677935
> что такое эти ваши гомодулес
Это то, что тебе сейчас как раз нужно
>какого хуя gopls до сих пор их не поддерживает?
Поддерживает, при том давно. Ты go mod init делал?
Аноним 05/05/20 Втр 19:00:46 1677959185
>>1677946
> Поддерживает, при том давно. Ты go mod init делал?
Так это надо в каждой папке внутри моего проекта "hello-wrot" делать? GoLand просто не требует никаких дополнительных файлов.
> Какую версию юзаешь?
1.14
> Это то, что тебе сейчас как раз нужно
Ну и самый главный вопрос. Как мне тогда в пакете main получить доступ к функциям из вложенный "подпакетов"? Мне напрямую что ли импортировать надо
import "/home/$user/hello-wrot/nestedppackage"
и только потом nestedpackage.Func?

У меня просто горит от того, что о том как нужно делать нигде не сказано. Тут говорят надо ложить исходники в $GOPATH, там говорят пох юзайте гомодули, гомомодули не поддерживаются гугловским инструментарием, (один из разрабов писал что типа WIP эта фича в репах к VSCode'у).

Аноним 05/05/20 Втр 19:05:11 1677962186
>>1677959
>Так это надо в каждой папке внутри моего проекта "hello-wrot" делать?
Только в корне
>Ну и самый главный вопрос. Как мне тогда в пакете main получить доступ к функциям из вложенный "подпакетов"?
Путь к папке относительно go.mod файла
>Тут говорят надо ложить исходники в $GOPATH
Уже не нужно
>один из разрабов писал что типа WIP эта фича в репах к VSCode'у
Велком ту опенсорс
Аноним 05/05/20 Втр 19:25:59 1677993187
>>1677962
Спасибо за ответы. АТДУШИ!
> Велком ту опенсорс
Ну попенсорс попенсорсом, но гугл не самая маленькам компания на земле.
Аноним 05/05/20 Втр 19:48:40 1678023188
Аноним 05/05/20 Втр 19:51:07 1678027189
Screenshot20200[...].jpeg (72Кб, 959x343)
959x343
Алсо, уже некоторое время читаю книжку по go, прошел туториал, написал какие-то там эхо, хелловорлды, вот это всё, но по какой-то чудесной причине я так ни разу еще и не наткнулся на тему "управление версиями". Как будто её намеренно обходят стороной. А тут читаю статью на хабре про гомомодули, а там повествование ведется в таком тоне, будто раньше как бы и не было вообще никакой системы управления версий.

Неужели так раньше это всё и работало?
>>1678023
Спасибо, сейчас и это почитаю.
Аноним 05/05/20 Втр 20:04:28 1678053190
>>1677946
спасибо, просто не знал про такие возможности stdlib
Аноним 05/05/20 Втр 20:39:32 1678104191
Screenshot20200[...].jpeg (37Кб, 710x300)
710x300
Screenshot20200[...].jpeg (28Кб, 443x367)
443x367
Блядь, я чувствую себя дауном. Неужели я так многого прошу? Как, блядь, КАК мне разбить мой говнокод на несколько вложенных папок????????

Че в этот раз-то блядь не так????
Аноним 05/05/20 Втр 20:48:30 1678122192
Аноним 05/05/20 Втр 20:51:13 1678127193
Screenshot20200[...].jpeg (24Кб, 856x273)
856x273
Аноним 05/05/20 Втр 20:57:07 1678138194
>>1678127
In general import paths should either be in the standard library or should start with a domain name. In effect the go tool treats all paths starting with "mod" as being in the standard library, but none of those paths may be imported.
Аноним 05/05/20 Втр 21:00:51 1678146195
>>1678138
Я это читал, но это же какой-то сюр! Я не могу свое приложение по папкам раскидать? Мне для каждой папки надо реп заводить что ли?
Аноним 05/05/20 Втр 21:04:00 1678149196
>>1678146
Для корня проекта формально нужен репозиторий. Можешь написать какой-нибудь домен перед именем модуля, должно прокатить. Но проще сделать приватную репу на гитхабе, они сейчас все равно безлимитные.
Аноним 05/05/20 Втр 21:07:18 1678150197
>>1678149
Я даже хз как на это реагировать, если честно. Ну, типа язык, сам компилятор принуждает меня заводить реп хотя я еще даже ничего не начал писать.
Большое спасибо за ответы, конечно, но типа как вообще сообщество с этим справляется? Это норм практика и я один такой неандерталец с этого бомблю?
Или это тырпрайс сектор такой сурьёзный?
Аноним 05/05/20 Втр 21:10:06 1678155198
>>1678150
Ну да, гитхаб, семвер, ответственность перед сообществом.
Аноним 05/05/20 Втр 23:36:05 1678291199
>>1678027
>А тут читаю статью на хабре про гомомодули, а там повествование ведется в таком тоне, будто раньше как бы и не было вообще никакой системы управления версий.
Да, все так. Модули появились относительно недавно, стабильную версию модулей вообще только в 1.14 (текущая версия) ввели. До этого все держалось на соглашении о том, что если меняеться сигнатура/поведение - нужно менять import path, но это не работало и сначала появился вендоринг, а затем - модули.
>>1678053
Там довольно много всего - не как в питоне, конечно, но основное есть. Если бы я делал язык - я много чего туда бы не ложил из того что там есть.
Аноним 05/05/20 Втр 23:59:01 1678318200
>>1678150
> хз как на это реагировать, если честно
Это ощущение не исчезнет, в пщ всё сделано вот так вот. Здесь на все вещи Единственный Правильный Взгляд, с которым ты обязан согласиться, чтобы на этом язычке хоть что-то писать.
Аноним 06/05/20 Срд 00:05:41 1678330201
image.png (766Кб, 1170x702)
1170x702
Аноним 06/05/20 Срд 02:30:41 1678397202
>>1677726
>>1677778

А зачем нужен итератор? Чем простой for range не устраивает?
Аноним 06/05/20 Срд 08:25:27 1678447203
В го же можно слепить генератор из дополнительной горутины и канала.
Аноним 06/05/20 Срд 08:57:04 1678457204
>>1678150
Тебя же никто не заставляет создавать гитхаб репо и пушить туда код. Тебе достаточно просто написать туда гитхаб-лайк URL, относись к этому как указанию уникального названия репозитория
Аноним 06/05/20 Срд 10:13:57 1678483205
>>1678330
Не знаешь до чего доебаться? Доебись до орфографии нейминга
Аноним 06/05/20 Срд 11:17:35 1678504206
>>1678447
А ещё можно слепить дженерики из interface{}, эксепшены из хуй пойми чего, рекурсивные импорты из огромных пакетов и dependency injection из глобальных переменных. Просто произведение искусства какое-то, а не язык.
Аноним 06/05/20 Срд 12:58:06 1678609207
>>1678504
>А ещё можно слепить дженерики из interface{}
нельзя
>эксепшены из хуй пойми чего
нельзя
>рекурсивные импорты из огромных пакетов
не знаю
>dependency injection из глобальных переменных
Зачем?
Аноним 06/05/20 Срд 14:18:15 1678700208
Кто из вас wasm использует на Go? Как оно на практике, в продакшене?
Аноним 06/05/20 Срд 15:59:15 1678805209
Делаю rest-бекенд для сайта. Как идеологически правильно делать аутентификацию: с jwt или по старинке с сессией в куках?
Аноним 06/05/20 Срд 16:03:38 1678815210
>>1678805
Тут вопрос в том, хочешь ли ты хранить состояние авторизации на клиенте или на сервере
Аноним 06/05/20 Срд 16:15:33 1678827211
>>1678815
Оно же в любом случае на сервере:
1. Если с куками, то в куке лежит айдишник сессии на сервере. Сервер нашел сессию - пользователь авторизован.
2. Если с токенами, то токен клиент передает в хедере. Токен есть и правильно расшифровывается - пользователь авторизован.
Аноним 06/05/20 Срд 16:17:51 1678829212
>>1678827
Ну то есть аутентифицирован, а не авторизован.
Аноним 06/05/20 Срд 16:59:13 1678854213
>>1678827
В первом случае сервер хранит состояние, а во втором - вся нужная информация храниться на клиенте, и для получения информации о правах доступа или чем-то подобном не нужно ходить лишний раз ходить на диск за этим
Аноним 06/05/20 Срд 18:31:51 1678946214
Screenshot20200[...].jpeg (21Кб, 895x124)
895x124
>>1678318
Если так принято, то думаю я смогу смириться, хоть и больно. Человек ко всему привыкает.
>>1678457
Следует не с того места начать учить язык и порой нужно много боли пройти, чтобы какие-то прописные истины понять/выучить. Но судя по оф. доке они и сами не рады стремаются своего решения. Ах, если бы я начал читать эту статью два месяца назад, а не туториал/книгу/пердолинг с тулзами.
Аноним 06/05/20 Срд 19:13:32 1678997215
>>1678946
Начало изучения чего угодно - дело непростое в любом случае. А тут еще и молодой язык, который довольно активно развиваеться
Аноним 06/05/20 Срд 19:43:54 1679027216
>>1678805

rest => stateless => состояние на сервере не храним и используем токены
Аноним 06/05/20 Срд 19:47:36 1679036217
>>1679027
Stateless подразумевает отсутствие состояния на уровне протокола (например, у FTP и SSH состояние есть), с внутренним состоянием сервера это никак не связано.

мимо
Аноним 06/05/20 Срд 19:55:15 1679044218
>>1679036

причем тут внутреннее состояние сервера, если я говорю про хранение состояния клиента на сервере?
stateless подразумевает отсутствие инфы о состоянии клиента
Аноним 06/05/20 Срд 19:58:56 1679049219
Аноним 06/05/20 Срд 21:52:32 1679103220
>>1678997
>>1678946

тащем-то языку уже 10 лет и проектируют его далеко не самые глупые люди, поэтому " Единственный Правильный Взгляд" в какой-то мере присутсвует, но пока у тебя нет достаточного опыта и понимания того, что тебе действительно нужно хотя бы в какой-то временной перспективе, я бы с ним не спорил и принимал за best-practice и копил бы опыт

>>1678149

а то в жаве не так
Аноним 06/05/20 Срд 21:56:08 1679106221
>>1679044
Ок, даже в базе данных ничего теперь не буду хранить, а рест не кошерный получится.
Аноним 06/05/20 Срд 22:00:16 1679110222
>>1678700
Скорее всего хуёво, у го жирный рантайм и его весь надо затолкать в васм. Тот случай когда раст или сишечка лучше.
Аноним 06/05/20 Срд 22:05:47 1679111223
>>1679103
> а то в жаве не так
Не так. Репозиторий системы контроля версий там не нужен вообще, а не прибитый гвоздями к компилятору Git.
Аноним 06/05/20 Срд 22:20:43 1679128224
>>1679110
Двачую, 40 лет пишу сайты на си.
Аноним 06/05/20 Срд 22:36:39 1679133225
>>1679106
И в памяти тоже ничего не храни, по тому что тоже state
Аноним 06/05/20 Срд 22:45:48 1679138226
>>1679106
~2MB для современной SPA это много, но не критично. Вопрос только в том, какой профит в сравнении с js/ts ты получаешь и стоит ли оно того (я думаю - нет)
Аноним 06/05/20 Срд 23:31:19 1679160227
>>1679138
А как вам третий вариант - авторизацию вообще на балансер перенести?
Аноним 06/05/20 Срд 23:41:45 1679166228
Аноним 06/05/20 Срд 23:53:44 1679173229
Нахуй вам сервер, когда P2P?
Аноним 06/05/20 Срд 23:57:40 1679177230
>>1679173
Не взлетит, все равно нужен STUN/TURN Server
Аноним 06/05/20 Срд 23:59:39 1679179231
Заканчиваю голанг тур и немного в недоумении
Что еще почитать? И есть ли вообще то, о чем читать? Или это и есть весь язык, и я выучил го за пару вечеров?
Аноним 07/05/20 Чтв 00:07:31 1679184232
Аноним 07/05/20 Чтв 00:21:49 1679192233
>>1679166
>как это будет работать?
Техзадание написать? Ну вот просто мысль и все. А как это не будет работать в таком случае?

>>1679179
У тебя в голове атоматически происходит исследование, как все, что ты уже знаешь и делал, соотносится с новоизучаемым языком. Надо попробовать что-то свое уже имеющееся переписать на этом языке. А так вообще да, апология Go в том числе в его простоте.
Аноним 07/05/20 Чтв 02:22:00 1679229234
Получать длину и кап слайса процедурами это конечно сильно
Аноним 07/05/20 Чтв 02:30:31 1679231235
>>1679179
Effective go ещё почитай
Аноним 07/05/20 Чтв 02:32:26 1679233236
>>1679229
Ты ожидал чего-то другого от процедурного языка?
К этому можно относиться, как к sizeof - похоже на функцию, но на самом деле нет.
Аноним 07/05/20 Чтв 04:40:56 1679257237
>>1677090
Нет.
Дело в тех, кто код ревью не проводит или проводит сквозь пальцы.
Триллиарды долларов приносит не чистый код, а идея. Всем насрать на идеальный код, лишь бы это приносило много денег, имеем то, что имеем. Страдания 300к программистов никого не волнует
Аноним 07/05/20 Чтв 09:03:40 1679345238
>>1679233
Я не знаком с С (?), что там представляет из себя sizeof? Макрос?
Аноним 07/05/20 Чтв 10:32:37 1679373239
>>1679345
Нет, это отдельный кейворд, встроенный в сам язык. Как while или if.
Аноним 07/05/20 Чтв 11:20:48 1679420240
>>1679179

Проблемы начинаются, когда у тебя в апишке становится больше трех-четырех доменов, тебе надо это деплоить в разные поды на кубере, рефакторить всю лапшу в солид и чистую архитектуру, вот за это уже деньги платят, а не за то что ты умеешь реквест разбирать и в базу ходить.
Аноним 07/05/20 Чтв 11:41:02 1679446241
>>1679229
Ты видишь принципиальную разницу от того, как получать длину слайса?
Аноним 07/05/20 Чтв 11:48:12 1679453242
image.png (70Кб, 833x710)
833x710
>>1662278
>Джанга 3 вон уже прикручивает асинхронность чуть-по-чуть.
В смысле? Давно уже все прикручено.
https://channels.readthedocs.io/en/latest/introduction.html

>>1662157
>А вот когда попрёт бизнес-логика и нужно будет провести 100500 побочных операций, сравнений и запросов в базу на один запрос извне - вот тогда и окажется, что го или джава на пару порядков быстрее.
Ты че там куришь? Node.js в однопоточном режиме давно уже быстрее джавы.
07/05/20 Чтв 14:41:09 1679660243
>>1679453
>В смысле? Давно уже все прикручено.
Когда будут асинхронные вьюшки и запросы к бд, тогда и приходите.
Аноним 07/05/20 Чтв 15:17:27 1679722244
>>1679660
>Когда будут асинхронные вьюшки и запросы к бд, тогда и приходите.
Мне вообще пихуй, от пистона отказался 2 года назад.
Аноним 07/05/20 Чтв 16:38:00 1679849245
>>1679722
А чего тогда начал про питон писать?
Аноним 07/05/20 Чтв 19:30:09 1680063246
В продолжении питона. Есть какая-нибудь хуйня, чтоб для питонистов/перловиков/Сишников было? Либо просто быстрый экскурс, без этой хуйни, что "у нас пишется x int, а в сиподобных языках int x" или "float32 и float64 - не одно и тоже".
Аноним 07/05/20 Чтв 19:40:20 1680077247
>>1680063
Книга Кернигана
По-быстрому - tour of go

Что означает "для питонистов"? Типа питонисты или перловики такие ущербные, что им надо по-особому объяснять? Всегда было, что хочешь выучить язык - читаешь учебник и пишешь код. Врядли тебе надо выучить го прям на завтра, пару-тройку недель для ознакомления можно потратить.
Аноним 07/05/20 Чтв 19:57:06 1680096248
>>1680063
Тупо просматриваешь по абзацу за секунду и читаешь внимательно, если заметил что-то незнакомое. В отличие от вкатывальщиков, которым надо мало того что читать внимательно всегда, так ещё и сидеть и обдумывать прочитанное.
Аноним 07/05/20 Чтв 20:05:58 1680110249
>>1679453
> Ты че там куришь? Node.js в однопоточном режиме давно уже быстрее джавы.
Надо смотреть бенчмарки, полюбому как обычно на джаве наговнокодили или настроили вм неправильно.
Это невозможно хотя бы из-за особенностей jit'а на джаве и в ноде.
Аноним 07/05/20 Чтв 20:09:56 1680119250
Аноним 07/05/20 Чтв 20:47:48 1680164251
>>1680110
>>1680119
Синтетические бенчи вообще нихуя не значат. Остается только субъективно-эмперически выводить. И мой опыт говорит, что беку скорость исполнения как таковая вообще не критична. Будь все это важно не доминировали бы всякие питоны и пыхи на беке.
мимо-шел
Аноним 08/05/20 Птн 10:18:20 1680557252
Аноним 08/05/20 Птн 10:34:48 1680566253
>>1680164
Есть разные задачи и разные требования к производительности - например, кому-то нормально использовать по воркеру на соединение, а у кого-то есть задача держать 10к соединений на машину. При этом в этом случае ты упираешься не в скорость обработки (все равно бекенд значительную часть времени тупо ждет ответа от базы или другого сервиса), а в количество памяти, которое тебе нужно на обработку одного запроса
Аноним 08/05/20 Птн 11:28:14 1680596254
$ go get golang.org/x/tour
$ go tool
addr2line
asm
buildid
cgo
compile
cover
dist
doc
fix
link
nm
objdump
pack
pprof
test2json
trace
vet

Почему не видит? Хотя ls -a $GOPATH/bin показывает tour
Аноним 08/05/20 Птн 11:44:54 1680605255
>>1680596
Это просто бинарник, что он будет у тебя в go tool делать?
Аноним 08/05/20 Птн 12:33:52 1680654256
>>1680596
Тебе нужен либо ls $(go env GOPATH)/bin либо ls $(go env GOBIN)
Аноним 08/05/20 Птн 12:42:30 1680662257
>>1680605
>>1680654
Почему тогда пишут, ставьте так и запускайте go tool tour?
Аноним 08/05/20 Птн 12:53:00 1680669258
>>1680662
Просто добавь в $PATH и не еби мозгу
Аноним 08/05/20 Птн 13:00:41 1680675259
>>1680662
Где такое написано?
>https://tour.golang.org/welcome/3
>To run the tour locally, you'll need to first install Go and then run:
>go get golang.org/x/tour
>This will place a tour binary in your workspace's bin directory.
Там ничего не сказано про $(go env GOROOT)/pkg/tool/$(go env GOOS)_$(go env GOARCH)/
Аноним 08/05/20 Птн 13:19:43 1680697260
Снимок экрана 2[...].png (72Кб, 1368x414)
1368x414
Аноним 08/05/20 Птн 13:31:12 1680719261
>>1680697
Нашел какой-то говносайт.
Аноним 08/05/20 Птн 13:40:49 1680737262
Аноним 08/05/20 Птн 13:47:50 1680744263
посоветуйте, что бы почитать для понимания работы с http в го? перебираюсь из пыхи, где делаешь запрос и затем подключение отваливается вместе с отработавшим процессом и для меня в новизну штуки вроде переиспользования подключений, с которыми в го принято работать более явно
Аноним 08/05/20 Птн 14:26:47 1680805264
>>1680744
>штуки вроде переиспользования подключений
Это фишка не го, а http/2.
Аноним 08/05/20 Птн 14:32:02 1680814265
>>1680805
Даже на ipv6 всем не настолько похуй, насколько на http/2.
Аноним 08/05/20 Птн 14:49:31 1680827266
>>1680814
Привет, ты что охуел.
Аноним 08/05/20 Птн 15:48:10 1680878267
>>1680805
Keep-Alive что ли? Оно чуть ли не с HTTP 1.0 есть.
Аноним 08/05/20 Птн 20:17:30 1681424268
>>1680814
grpc, lul

>>1680878
1.1, пёс

А у всех gopls норм работает? Хочется на карантине экстрима, съезжаю с голанда на вим + ale, и впринципе gopls работает норм, но в какой-то момент просто перестает работать, те ни синтаксис, ни навигация по коду, ничего не работает, а сам процесс висит и в логах пусто, решается рестартом, но снова до какого-то момента.
Аноним 09/05/20 Суб 15:57:55 1682175269
Есть tcp сервер на го, с клиента ему отправляются строчки всякие, после чего клиент офается, а с ним и сервер с ошибкой:
wsarecv: An existing connection was forcibly closed by the remote host
exit status 1

Как сделать так, чтобы сервер не падал при дисконекте клиента и как правильно в таком случае дисконектиться клиенту?
Аноним 09/05/20 Суб 17:06:31 1682218270
Тут минималистичный скриптовый язык с гошным синтаксисом подогнали https://habr.com/ru/post/501002/
Альтернатива lua/wren.
Аноним 09/05/20 Суб 18:21:32 1682274271
>>1682218
> интерпретируемый
> статическая типизация
Любопытно, ни разу эти параметры не видел вместе.
Аноним 09/05/20 Суб 18:24:58 1682278272
>>1682256 (OP)
Когда прочитал Crafting Interpreters и побежал делать новый V
Аноним 09/05/20 Суб 18:26:51 1682280273
Аноним 09/05/20 Суб 18:40:04 1682288274
>>1682278
> Crafting Interpreters
Спасибо за годноту. Книгу дракона я не осилил, но рекурсивный спуск понял и пишу велосипеды в стол.

мимо
Аноним 10/05/20 Вск 19:21:28 1683444275
Гач подскажи, а го для консольных утилит хороший язык?
Вот мне сейчас нужно кое что написать чтобы тестовыми данными заполнить БД, и я думаю писать это на го или питоне.

Не, не так:

У меня прям какие-то предрассудки, что компилируемые языки не должны использоваться для мелких несерьезных задач. Отговори меня, двачик!
Аноним 10/05/20 Вск 19:23:20 1683445276
>>1683444
Спасибо гач. Пока тебе писал уже для себя решил, что в моей конкретной задаче лучше будет использовать go. Но если ты как-то это это прокомментируешь буду рад.
Аноним 10/05/20 Вск 19:38:34 1683466277
>>1683444
>>1683445
Если нужно набросать какой-нибудь одноразовый скрипт, а долго сидеть и вникать не охота, бери то, что лучше знаешь и на чём писать будет удобнее. Простые скрипты, как правило, пишутся быстрее, но вот допустим знаешь ты Go в совершенстве, а питона не знаешь вообще, тогда быстрее напишешь на Go, чем выучишь питон. И наоборот.
Аноним 10/05/20 Вск 19:56:09 1683485278
>>1683466
Спасибо анончик. Тоже так подумал.
Аноним 10/05/20 Вск 21:19:20 1683562279
>>1661813 (OP)
А чего это у меня тред как удаленый показывается?
Аноним 10/05/20 Вск 21:41:50 1683577280
>>1683562
Сборщик мусора сработал
Аноним 10/05/20 Вск 21:53:29 1683586281
>>1683562
Это баг двоща. И ладно бы треды просто были зачёркнутые, так они ещё и исчезают из избранного через время, блеать.
Аноним 10/05/20 Вск 21:59:08 1683588282
>>1683586
Какой-то ебанутый баг. В тред захожу, он ведет на 404 со страницей архива. Через другой браузер заходит. Вопрос выше написал через страницу со списком всех тредов.
Аноним 10/05/20 Вск 22:10:11 1683596283
>>1683588
Причём бывает, что и открытие в приватной вкладке не помогает, только другой браузер. Как будто на сервере прямо в коде указано, что при каких-то условиях нужно перенаправлять на архив именно для такого IP и именно для такого-то браузера.
Аноним 10/05/20 Вск 23:06:09 1683615284
Почему такая ебанутая работа с интерфейсами? На уровне объявления переменной даем знать, что нужно использовать интерфейс. У нас две структуры могут или не могут поддерживать методы интерфейса, в зависимости от того, как укажем. Нахуй так делать?
Аноним 10/05/20 Вск 23:14:19 1683618285
>>1683615
Уже обсуждали, и не раз. А разгадка проста: goвно
Аноним 10/05/20 Вск 23:34:41 1683628286
>>1683615
>могут или не могут поддерживать методы интерфейса, в зависимости от того, как укажем
Покажи пример
Аноним 10/05/20 Вск 23:40:56 1683634287
>>1683628
Как я понял, он хочет чтобы надо было явно указывать, типа
type User struct implements Marshaller {
}
Аноним 10/05/20 Вск 23:43:40 1683635288
mincl5.jpg (41Кб, 600x600)
600x600
>>1683615
до сих пор забавляют ребята, которые не разобрались и обвиняют в этом мир вокруг, компилятор же забагованный и тебя по-фану дрочит
Аноним 11/05/20 Пнд 22:31:45 1684421289
А что с тредом? Совсем умер? Все на раст перешли?
У меня тут вопрос по модулям.
Аноним 11/05/20 Пнд 22:57:57 1684464290
>>1684421
Во многих тредах сейчас затишье, а этот и так не был особо активным.
Пиши вопрос про модули, может кто-то ответит.
Аноним 11/05/20 Пнд 23:34:43 1684498291
>>1684464
Собственно, почитал о модулях. Вроде аж три варианта работы. И что теперь не нужно проект держать на диске ака github.org/huila/proekt
Только сама работа не совсем понятна. Ожидал как в питоне чтоб было, requirements содержит имя и номер версии. А вычитал какую-то мудоту. Меняешь мажорную версию - меняешь имя импорта. Да и вообще без тегов - никуда. И помещать теперь строго вне GOPATH. Пиздец какой-то.
Аноним 11/05/20 Пнд 23:35:47 1684499292
>>1684498
А вопрос-то. Как блять с этим работать нормально?
Аноним 11/05/20 Пнд 23:50:03 1684507293
>>1684499
Нормально -- go mod, остальное считай DEPRICATED
Аноним 12/05/20 Втр 00:00:33 1684513294
>>1684498
> github.org/huila/proekt
Внимание! Найден гитхаб Роба Пайка!
Аноним 12/05/20 Втр 00:25:00 1684521295
>>1684498
> содержит имя и номер версии
В go.mod так же. Почитай про модули в Go.

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

> без тегов - никуда.
Да, версионирование в Go привязано к тегам Git.

> И помещать теперь строго вне GOPATH.
Воспринимай это как питоний site-packages, то есть как некий общесистемный локальный репозиторий, о котором знать ничего не надо, а система управления зависимостями сам всё притащит. Хотя это больше на жабий Maven похоже.
Аноним 12/05/20 Втр 18:19:13 1685454296
15874918732800.png (1221Кб, 1200x880)
1200x880
Анончик, помоги советом. Последние полтора года работаю C++ в основном формошлепство с примесью алгоритмов на Qt и QML, получаю 80к на руки прогером, при этом в команде много бэкендеров, которые пишут микросервисы на голанге. По работе иногда приходилось смотреть их код, и в принципе ничего сверхъестественного и сложного не увидел. Конечно если копнуть глубже, то разумеется найду кучу подводных камней, хотя их должно быть на порядок меньше, чем в плюсах.
Так вот, переходя к делу. Планирую менять работу, и стою сейчас на распутье. Пока я молодой недомиддл с синдромом самозванца, и могу менять рабочий стек без особой потери в зарплате. И чем дальше я смотрю в сторону плюсов, тем меньше мне хочется истязать себя move-семантикой, template наркоманией, компайл-тайм вычислениями, UB, boost'ом и т.д. Хочется уйти в тихую гавань с достойной зарплатой и спокойно пилить микросервисы, ходить в базу и запихивать это все в докер.
Так вот, сам вопрос: стоит ли мне припиздеть в резюме о своем опыте бэка на Go, чтобы попытаться вкатиться к вам? И что нужно знать для успешной коммерческой разработки? Пока вижу такой стек для миддла: Postgre, gRPC, protobuf, линуксы с докерами; задрочить, чтобы от зубов отскакивало: SQL, HTTP, REST, горутины, каналы, базовые Go-пакеты, ну и умение вертеть деревья маркером на доске. Что-нибудь еще не забыл?
Аноним 12/05/20 Втр 18:25:41 1685461297
>>1685454
>Что-нибудь еще не забыл?
>SQL, HTTP, REST
Имплементация всего этого на Go, то есть драйвера, роутеры и тд
Еще дополнительно: тесты в go, go mod, golang project struct, dependency injection.

Для начала ты напиши хотя бы один небольшой проект на Go, чтобы понимать, как там все устроено
Аноним 12/05/20 Втр 20:08:23 1685704298
>>1685454
>стоит ли мне припиздеть в резюме о своем опыте бэка на Go
Ясен пень стоит. Никто не проверит. Я сам также писал на с++, потом перекотился в питюн. Для этого по вечерам его изучал.
>REST
Фи, это шо? GraphQL рулет.
Аноним 12/05/20 Втр 21:56:00 1685854299
Гоч можно платину?
Какие задачи для го вообще являются основными? Начал учить, потому что хочу в тырпрайс, но не хочу жабу (возможно зря), и быть немного ближе к железу после питона.
Я правильно сделал выбор?
Аноним 12/05/20 Втр 22:32:31 1685896300
>>1685854
>быть немного ближе к железу
неверно. Хоть Го и похож на Си, но для задач с железом применяется редко
>Какие задачи для го вообще являются основными?
Бэкенд для всяких вебсервисов
Аноним 13/05/20 Срд 17:30:12 1686884301
>>1685854
Лучше иди в жабу. На го микросервисошлёпство, на жяве сириус бизнес.
Аноним 13/05/20 Срд 18:06:52 1686930302
>>1686884
Будет клепать микросервисы на жабе.
Аноним 13/05/20 Срд 21:24:38 1687163303
Гошники, за что вы любите Go?
Аноним 13/05/20 Срд 21:35:05 1687169304
>>1687163
За неимением большого ума.
Аноним 13/05/20 Срд 22:30:00 1687223305
>>1687169
Я серьезно, мне интересно, почему он популярен
Аноним 13/05/20 Срд 22:36:19 1687233306
>>1687163
мне нравится, что не надо ебаться с установкой прокси и с модельками для парсинга ответов жсона(как в жабе)

мимо автомакака
Аноним 13/05/20 Срд 22:55:40 1687253307
>>1687233
В Джаве тоже есть рефлексия, и наверняка есть библиотеки для парсинга джсонов в объекты (не джавист).
Аноним 13/05/20 Срд 23:07:15 1687257308
>>1687253
есть либы для парсинга, но приходится создавать +100500 классов, если в ответе есть вложенности(даже учитывая, что есть конвертеры json2pojo, все равно мегауныло)
Аноним 13/05/20 Срд 23:42:28 1687275309
>>1687257
Никто не заставляет, можно спарсить в мапу. Но никакой валидации, да и неудобно.
Аноним 13/05/20 Срд 23:51:48 1687279310
>>1687163
Простой читаемый код, что проекта, что библиотек.
Хорошая конкурентная модель, без двуцветных функций асинка.
Аноним 14/05/20 Чтв 01:00:25 1687294311
>>1685896
Бусинес?
>>1686884
Да вот если честно продумываю. Жаба все таки уже очень долго живёт, сейчас ей вторую жизнь дали в лице котлина. Много бородатых книг для неё написано. А я сейчас репу чешу и думаю почему я вдруг решил го учить.

Что-то мне кажется жабистом легче на галере затеряться и вообще работу найти чём го разработчиком.

Видимо после окончания моего текущего проекта на го надо будет попробовать сделать что-то и на котлине.
Аноним 14/05/20 Чтв 01:17:23 1687296312
>>1687294
>надо будет попробовать сделать что-то и на котлине.
так котлин же сейчас только на андроиде? в тырпрайзе жаба+спринг
Аноним 14/05/20 Чтв 01:35:29 1687299313
>>1687296
Да говорят же что это те же яйца только в профиль. Ну в общем я всерьёз хотел с питона на го укатиться, но теперь задумался. Обычно такие думы затягиваются надолго.
Аноним 14/05/20 Чтв 12:48:36 1687571314
Аноним 14/05/20 Чтв 13:04:25 1687607315
>>1687571
Простейшая же задача.
Хотел написать решение, но задача просто элементарная, чтобы с такой помогать, сам решай
Аноним 15/05/20 Птн 16:47:31 1689197316
metaconf.png (354Кб, 1440x1271)
1440x1271
Аноним 15/05/20 Птн 19:39:28 1689435317
>>1687299
на го полторы вакании
не понимаю, зачем укатываться из пистона
Аноним 15/05/20 Птн 23:33:56 1689732318
>>1689197

Че-то ну совсем такое себе, посмотрите лучше на митап от Go Yola и Golang Kazan, который 30го будет
Аноним 16/05/20 Суб 00:51:35 1689826319
Аноним 16/05/20 Суб 03:04:02 1689886320
>>1689435
Хочу в тырпрайс затеряться на большой галере. С такими целями наверняка надо было учить жабу.

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

Вообще хочу поделиться. Я писал только не питоне и жс, и вот уже какое-то время начал писать на го, а более менее активно -- последнюю неделю.

Это прекрасное чувство, можно практически фейсроллить по клавиатуре, IDE сама подскажет где ошибки, после точки почти всегда знает Что следует даже с самой ебучей вложенностью. В питоне мне нужно тупо лезть в дебаггер, чтобы узнать че там в ебучую функцию приходит, а тут все известно. Ещё мне очень нравится дока. Классно зделоли!
Код запускается и работает без ошибок в разы чаще, чем на питоне.

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

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

Я не говорю, что питон плохой. Питон прекрасен и я его очень люблю. В сравнении теперь ощущается, почему его так назвали ИЗ-ЗА ГИБКОСТИ, ПОНЯЛИ))) ПИТОН!! , но писать со строгой типизацией это совсем другие ощущения.

Мне показалось, что написание кода на го отнимает меньше энергии чем написание не питоне. Хотя конечно я только начал.
Аноним 16/05/20 Суб 03:06:14 1689887321
>>1689886
Да, repl'a питоновского конечно не хватает.
Аноним 16/05/20 Суб 03:09:58 1689888322
Там ещё кстати ozon набирает народ на бесплатное обучение с вероятностью последующего трудоустройства. Но чтобы только попасть на обучение нужно пройти тест и собеседование по Скайпу (вроде).
Вообще хочу попробовать. Хули нет?
ладно, прекращаю семенствовать
Аноним 16/05/20 Суб 03:11:30 1689890323
>>1689888
Тоже записался на эту штуку
Задачки не особо сложные, похожи на задачи из бесплатного курса на степике. Только требования к оптимизации более жесткие
Аноним 16/05/20 Суб 09:08:48 1689963324
>>1689886
>Python
>JS
>Бот для телеги
>Хочу ставить точку и шобы IDE всё писала за меня
Полный набор
Аноним 16/05/20 Суб 10:45:38 1689981325
>>1689888
Ну бля
Только начал проходить курсы, и даже нет гитхаба, который нужно прицепить
Аноним 16/05/20 Суб 12:02:03 1690017326
>>1689888
А нет ли вообще какого-то дайджеста программ по go? начал изучать на курсере, но вот такие программы - как манна небесная
Аноним 16/05/20 Суб 13:22:33 1690052327
>>1689981
Там курс рассчитан на тех у кого уже есть опыт коммерческой разработки от года, насколько я знаю.
>>1690017
Не знаю, вообще такие дайджесты публикуются в тематических пабликах вк, каналах тг, но я за этой хуйнёй не слежу. Может быть зря, конечно.
Аноним 16/05/20 Суб 13:23:04 1690053328
>>1689963
Наверное только одному тебе смысл понятен.
Аноним 16/05/20 Суб 14:48:38 1690188329
>>1689732
>Go Yola и Golang Kazan
А будет Go Barnaul Altayskiy Krai?
Аноним 16/05/20 Суб 15:16:55 1690241330
Очень простая задача в одну строку на плюсах вылилась в велосипедостроение на го. Как найти разность множеств из объектов?
Аноним 16/05/20 Суб 15:21:36 1690251331
>>1690241
Берешь элемент первого множества и делаешь какой-нибудь reflect.DeepEqual этого элемента со всеми элементами второго множества, если не было ни одного равенства, то аппендишь его в разницу.
Аноним 16/05/20 Суб 15:36:05 1690272332
>>1689890
На каком языке решал? Быстро решил? Я че подвоха ищу.
Аноним 16/05/20 Суб 16:16:03 1690341333
Чет я проебал апдейты.
Проясните, что за новый пакет errors? Который умеет только Is и Unwrap?
Чо за хуйня? Где старый пакет (он же в стд был втащен, нет?) с функцией Wrap, который позволял добавить к ошибке метаинформацию?
Какого Х конфликтующее имя?
Как этим пользоваться?
Аноним 16/05/20 Суб 16:32:31 1690366334
Аноним 16/05/20 Суб 16:32:49 1690367335
>>1690251
Решение несложное. Другое дело что однострочником это не сделать и приходится пилить двойные циклы или использовать мапу, если объекты хэшируются.

>>1690341
Наверное путаешь стандартный `errors` с `github.com/pkg/errors`. Оттуда кое-какие фичи перетащили в стд.
Аноним 16/05/20 Суб 16:52:02 1690385336
>>1689963
Ого, ты пишешь все полностью сам, ты такой ПРОГРАММИСТ!
Аноним 16/05/20 Суб 16:54:58 1690388337
>>1690367
Ну так, гошники вербозность и ограниченность называют простотой, с добрым утром.
Аноним 16/05/20 Суб 17:05:43 1690400338
Привет
Позволю себе спросить. Я очередной вкатыш, но у меня не горит 1- МЕСЯЦА ВКАТИТЬСЯ. Сейчас работаю по другую сторону - пишу тз для погомистов, анализирую и все такое. С зп все заебись, и ооооочень не хочется вкатываться на зп джуна.
Я понимаю, что вообще охуели эти вкатыши, но есть ли возможность сидя дома, не меняя работу (на фриланс не надеюсь), дорасти до уровня миддила из дома?
Других языков море, вакансий больше, но не хочу с триллиардом народу конкурировать.

ps почему в США, Англии и прочих странах - go самый востребованный? Я так понимаю, что речь не про джунов, а про топовых помидоров и тимлидов?
Смотивировал анон выше, который писал, что джунов найти не могут в РФ
Аноним 16/05/20 Суб 17:10:49 1690406339
>>1690400
>Я понимаю, что вообще охуели эти вкатыши, но есть ли возможность сидя дома, не меняя работу (на фриланс не надеюсь), дорасти до уровня миддила из дома?
Нельзя. Миддл - это не уровень знания языка, а уровень умения решать задачи. Да никто не возьмет прогера без коммерческого опыта разработки на мидла. А при текущей экономической ситуации, даже на джунов не берут без опыта

>>1690400
>почему в США, Англии и прочих странах - go самый востребованный?
Не самый востребованный, а самый высокооплачиваемый. Скорее всего, потому что го хорошо подошел на роль языка для следующих целей:
1) Написания прототипов для стартапов
2) Переписывание легаси на php/python/java под микросервисы и тд.
Аноним 16/05/20 Суб 17:13:16 1690410340
>>1690272
>курс озона по голангу
>курс на степике по голангу
>тред по голангу

>На каком языке решал?
Ну даже не знаю, что тебе ответить...
Аноним 16/05/20 Суб 17:49:50 1690446341
>>1690406
Спасибо за ответ
Все выглядит, как кино "Вкатышам в го тут не место", да и вообще теперь нигде не место
Аноним 16/05/20 Суб 17:56:05 1690457342
>>1690446

Вкатыши нужны
- большим компаниям, у которых есть ресурсы, что бы научить пол себя и поездить на шее, пока не опомнится
- галерам. Можно платить мизер, а продавать как ммдлов.
- маленьким провинциальным компаниям. Потому что нет у них выбора, и приходится работать с теми, кто есть
Аноним 16/05/20 Суб 18:07:30 1690491343
>>1690457
>- маленьким провинциальным компаниям. Потому что нет у них выбора, и приходится работать с теми, кто есть
Спорный момент, кстати. В моей мухосрани каждый год выпускников около-айтишных шараг больше чем рабочих мест, и по этому даже с образованием многие идут катриджи заправлять. А вкатышей даже для этого не берут. Я так и не нашел работу и решил понаехать в ДС чтобы вкатиться
Аноним 16/05/20 Суб 18:15:43 1690510344
>>1690491

Выпускники вузов вообще никуя не знают.
Вкатыши после курсов хотя бы формошлепить умеют и с какой стороны гит держать.
Аноним 16/05/20 Суб 18:15:57 1690511345
>>1690457
Спасибо еще раз
Бля, просто крик души - не выбрал погромирование в юношестве, и теперь в 27 уже хуй сменишь, либо только на зп джуна (и нет, это не выебон и не высокое самонение)
Аноним 16/05/20 Суб 18:34:36 1690547346
>>1690510
Не буду настаивать, я и большинство моих знакомых - как раз таки из команды вкатышей
Аноним 16/05/20 Суб 18:40:35 1690563347
>>1690410
Да ладно, там же на любом можно. Просто поинтересовался.
Все задачи с первого раза решил? Я чёт так волнуюсь как будто бабу первый раз за руку взял. Чёт я нежный какой-то слишком.
Аноним 16/05/20 Суб 18:49:43 1690591348
>>1690563
У тебя есть гит с работами?
Аноним 16/05/20 Суб 19:01:20 1690625349
>>1690511
Ну так и есть.
Да и нахуя менять, если ты и так как бизнес-аналитик работаешь? Зарплата у тебя уже неплохая должна быть.

Если ты думаешь, что программирование - это супер классно и интересно - то это неправда.
Если ради денег - то оно того не стоит, нервы дороже.
Аноним 16/05/20 Суб 19:03:44 1690630350
>>1690625
с зп проблем нет - около 180, хотя я знаю, что для дс это ничто лол
я хочу завести трактор, если честно, а завести его, когда ты ба - это забей, нужно MBA и прочую шляпу
думал, мб go или ds (писал тз для обеих отделов)
ладно, спасибо, не хочу флудить в адекватном треде своими биопроблемами
Аноним 16/05/20 Суб 19:06:31 1690634351
>>1690630

Программирование - тупиковый путь.

Ну попрогал кто-то лет десять.
Потом надо либо в архитекторы,где ба больше программирования.
Либо в менеджеры.
Аноним 16/05/20 Суб 19:06:59 1690635352
>>1690630

В мск не все сеньеры 180 имеют.
Аноним 16/05/20 Суб 19:09:59 1690641353
>>1690630
Свободные тракторы для программистов уже давно прикрылись.
Для переката нужен практически топ корпоративный уровень, позаёбистее MBA.
Аноним 16/05/20 Суб 19:30:31 1690687354
>>1690641
шутка?
регулярно слышу истории успеха от коллег, которые имеют 2+ года опыта языкнейм и имеют офферы из европы
>>1690635
да, охуенно вам
Аноним 16/05/20 Суб 19:44:51 1690713355
>>1690687
2+ года без опыта в смежной сфере и вышки?
Кто-то порвал очко и выгрыз оффер.
Плюс Европа разная и для полноценного переката нужно продолжать хуярить N лет не перегорая.
Аноним 16/05/20 Суб 19:45:31 1690716356
>>1690591
Да и веб макакой полтора года отработал.
Аноним 16/05/20 Суб 19:52:37 1690735357
>>1690713
2+ года опыта разработки имею ввиду
Аноним 16/05/20 Суб 20:36:55 1690879358
>>1690630
Так уже уже 300кк/секунду, ты мифическое божество из легенд для всего контингента доски.
Аноним 16/05/20 Суб 22:12:01 1691048359
typical Go prog[...].webm (4467Кб, 842x440, 00:01:08)
842x440
Видео для следующего ОП-поста.
Аноним 16/05/20 Суб 22:22:16 1691059360
Аноним 16/05/20 Суб 22:47:20 1691088361
>>1691059
Палка для остановки сращивания вагины из отрезанных машонки и члена.
Аноним 16/05/20 Суб 22:56:12 1691102362
>>1691048
Хорошо, когда программирование приносит удовольствие.
Аноним 16/05/20 Суб 23:25:05 1691127363
Аноним 17/05/20 Вск 02:18:10 1691230364
>>1690591
Бля а я вот нихуя третье не могу 6й тест пройти.
Аноним 17/05/20 Вск 09:06:25 1691312365
>>1691127
Пиздец. Я бы сразу ушёл с этой конфы.
Аноним 17/05/20 Вск 09:43:49 1691323366
>>1691312
На других конфах котлин, так что лучше уж эта.
Аноним 17/05/20 Вск 12:35:35 1691430367
15380650650340.png (469Кб, 453x604)
453x604
Анончик, расскажи немного про архитектуру и прочие бест практисес. Вот я решил сделать простенький HTTP сервер, в будущем планирую добавить базу и код для дергания API с какого-нибудь известного сайта. Пока пришел к такому виду:

type httpServer struct {
config ✫ServerConfig
logger ✫logrus.Logger
router ✫mux.Router
}

func New(log ✫logrus.Logger, config ✫ServerConfig) ✫httpServer {
return &httpServer{
config: config,
logger: log,
router: mux.NewRouter(),
}
}

В main.go читаем конфиги из TOML, инициализируем логгер и затем для всех дочерних классов вроде httpServer прокидываем их в качестве параметров. Пока на бумаге выглядит хорошо, но что делать после, например, добавления базы в отдельной структуре Store? Как мне ходить в эту базу из того же httpServer? Передавать Store в качестве указателя, чтобы напрямую дергать ее методы для записи/чтения из HTTP-сервера? Или может запустить все методы дочерних классов в отдельных горутинах, чтобы обмениваться информацией через каналы? хотя через каналы методы не подергаешь, говно идея
Сам я по работе пишу на Qt, и там эта проблема решается через систему сигналов-слотов, которые можно объявить в main.cpp, и затем спокойно передавать информацию между своими инстансами через emit. moc обо всем позаботится, лишь бы QObject'ом был В Go существует подобная волшебная таблетка?
Аноним 17/05/20 Вск 12:36:38 1691435368
14923694982960.jpg (61Кб, 600x516)
600x516
Аноним 17/05/20 Вск 13:16:42 1691514369
>>1691430
>дочерних классов
Туда ли ты зашел!

>Как мне ходить в эту базу из того же httpServer?
А как база данных и хттп-сервер связаны? В базу ходят из хэндлеров и юзеры либы сами решают как они получают подключение к бд. Ты в своем сервере предоставляешь только инфу про запрос, респонс и, возможно, контекст.
Аноним 17/05/20 Вск 13:18:33 1691521370
>>1691435
Проорал от души, /б/рат, поднял мне сегодня на весь день настроение

>>1691430
Го это ЯП, Qt это фреймворк, поэтому если найдешь библиотечку, которая реализует тебе привычное поведение - welcome, ну или напиши сам.

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

Я бы порекоммендовал тебе посмотреть в сторону инверсии зависимостей и инъекции зависимостей гугл, кстати недавно сделали DI-фреймворк wire
Аноним 17/05/20 Вск 13:27:55 1691538371
>>1691230
Не могу решить задание E (два канала) падает на 1 же тесте c
Wrong Answer

>>1689890
Что за курс?
Аноним 17/05/20 Вск 13:44:02 1691554372
>>1691538

стремно, что сообщений об ошибках или наборов данных, на которых тест зафейлился, там никаких нет, непонятно, куда копать - локально-то все работает
Аноним 17/05/20 Вск 13:49:24 1691560373
>>1691538
А сколько в F этапов? С какого раза прошёл? Я уже 15 попыток сделал на 9 застрял.
Аноним 17/05/20 Вск 13:51:59 1691564374
>>1691560
>>1691554
Если ты один анон.
В F 9 этапов, у меня тоже много падало на 9 из за нехватки памяти.

Дай контакт какой-нибудь, скооперируемся. У меня на локальной машине тоже все работает (я про задание E), а отправка не проходит ни 1 теста.
Аноним 17/05/20 Вск 13:57:01 1691565375
>>1691564

Не один, но скооперироваться готов. tobiasbecs@yandex.ru.
Аноним 17/05/20 Вск 14:03:47 1691568376
15151715458620.jpg (32Кб, 557x604)
557x604
>>1691514
Захожу я с браузера например на "localhost:8080/info/id123", на что роутер вызывает соответствующий хэндлер, в котором я хочу выдать инфу (попутно подергав БД) о продукте 123 через io.WriteString.
>предоставляешь только инфу про запрос, респонс и, возможно, контекст
Снова перечитал и кажись понял, у этого хэндлера же нет в аргументах ни ни одной моей структуры, только внутренние данные о запросе-ответе.
>func(w http.ResponseWriter, r ✫http.Request)
Тогда сразу возникает другой вопрос. А как тогда роутер выводит те же коды 200/400? Ему же необходимо знать о состоянии сервера, внутренней логики и т.д. То есть хэндлеру все равно для этого нужно подергать методы у других структур приложения, о которых он (согласно сигнатуре) ничего не знает.
пойду дальше проводить ликбез
>>1691521
>инверсии зависимостей и инъекции зависимостей
То что нужно, спасибо!
Аноним 17/05/20 Вск 14:07:09 1691572377
>>1691564
Не один, но можно в телеге скооперироваться.
anonymous.delivery@ya.ru
Аноним 17/05/20 Вск 14:51:44 1691649378
>>1691568
>То есть хэндлеру все равно для этого нужно подергать методы у других структур приложения
Напрямую хттп-сервер не должен знать о каких-то базах данных и т.п., он спрятан за своим пакетом и делает свое маленькое дело. Т.е. хардкодить какой-то стор внутри структуры httpServer не вариант. Какие-то доп. структуры можно в контексте передавать, можно создать структуру с внедренными ссылками на внешние ресурсы и над ней хттп-хэндлеры пилить, можно вообще забить на первых порах и глобальный пулл соединений юзать.
Аноним 17/05/20 Вск 14:57:42 1691655379
>>1691435
Это Единственный Правильный Способ™© написания go кода, кстати
Аноним 17/05/20 Вск 15:00:33 1691657380
>>1689890
>Задачки не особо сложные, похожи на задачи из бесплатного курса на степике. Только требования к оптимизации более жесткие
Подожди, тебе уже задачи выдали? Я вчера зарегался, но пока на почте - пусто
Аноним 17/05/20 Вск 15:05:20 1691666381
откуда-вы-лезете.jpg (11Кб, 221x228)
221x228
>>1691649
> Какие-то доп. структуры можно в контексте передавать

Аноним 17/05/20 Вск 15:10:56 1691669382
>>1691666
Проиграл. А что, нельзя?
Аноним 17/05/20 Вск 15:26:49 1691685383
земля-тебе-пухом.jpg (6Кб, 224x225)
224x225
Аноним 17/05/20 Вск 15:45:56 1691711384
>>1691564
Хуй с ним, не кооперируйтесь со мной. Скажите хоть, чтобы память оптимизировать файл по частям читали или алгоритм настраивали? А то может я не в ту сторону иду
Аноним 17/05/20 Вск 15:51:33 1691721385
>>1691430
Создаешь три уровня: сервер, контроллер, база
Сервер - это хендлеры, там обрабатываешь инпут, проводишь валидацию.
Дальше вызываешь метод контроллера. В контроллере делаешь обработку данных, вызываешь методы из базы
В базе у тебя методы только для доступа в базу и ничего большего.
Связь между уровнями строишь через интерфейсы. То есть, у тебя должен быть интерфейс базы и его реализация. Твой контроллер будет зависеть от интерфейса базы.

А вообще погугли Clean architecture, Hexagonal architecture, DDD architecture
Аноним 17/05/20 Вск 16:06:24 1691744386
mad-capitan.jpg (157Кб, 821x500)
821x500
Аноним 17/05/20 Вск 16:08:10 1691749387
Аноним 17/05/20 Вск 16:59:11 1691816388
>>1691685
Гвидо ван Россум, ты не в тот трэд зашел.
Аноним 17/05/20 Вск 17:03:30 1691818389
Эй, гошники, какого хуя структуры не копируются? Неужели идиоматичным является написания метода Copy для любой поебени? Щас короче искал 15 минут баг из-за того что присвоил структуру..
Аноним 17/05/20 Вск 17:10:31 1691824390
>>1691818
Чёткие поцаны уже сгенерили DeepCopy, пока наливали себе кофе с печенькой
Аноним 17/05/20 Вск 17:36:27 1691869391
>>1691818
Че-где не копируется? По дефолту все копируется, если ты не любитель посидеть на бутылке
Аноним 17/05/20 Вск 17:49:12 1691900392
>>1691818
Ибо нехуй указатели хранить
Аноним 17/05/20 Вск 18:06:20 1691935393
>>1691818

Структуры копируются с помощью =.
Незуй указатели везде пихать.
Аноним 17/05/20 Вск 18:16:24 1691945394
Ну-ка, подскажите мне.
Я добавил поддержку модулей через go mod init run
Теперь создаю каталог qwe и там файл asd.go
Импортируется он через "run/qwe". Тут мне уже непонятно. Он все файлы в один неймспейс помещает что-ли? А если я хочу такое же имя методу дать, но не могу, т.к. redeclared in this package, как пофиксить?
Ок, дальше. На том же уровне, что и main.go создаю файл a.go
Отлично, метод в файле доступен без импорта сразу, но только после сборки и запуска бинарника. Но при запуске go run main.go - хуй.
Что за хуйня?
Аноним 17/05/20 Вск 18:22:34 1691953395
>>1691945

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


Одна "папка" = один пакет = один неймспейс (не считая "подпасок" подпакетов)


А откуда го догадается, из какого файла ты хочешь функцию?
Либо запускай go run *.go

Либо, как белые люди, придерживался правила, что точки входа должны лежать в ./cmd/имя программы/main.go и там может лежать исключительно этот один main.go.
Аноним 17/05/20 Вск 18:26:29 1691956396
>>1691953
>Одна "папка" = один пакет = один неймспейс (не считая "подпасок" подпакетов)
В нормальных языках "папка" - часть неймспейса.

>А откуда го догадается, из какого файла ты хочешь функцию
Почему я не могу указать путь, включая имя файла, откуда я хочу импортировать?
Аноним 17/05/20 Вск 18:43:18 1691985397
>>1691956

Ты чот не догоняешь.
Пакеты почти идентичны всяким джавам.

Не еби мозги, прочитай хотя бы одну книжку и тупые вопросы отпадут. Го на то и сделан простым, что бы не забивать голову.
Аноним 17/05/20 Вск 18:47:11 1691993398
Screen Shot 202[...].png (122Кб, 1374x982)
1374x982
Sup харкач.
Да, я охуел. Помоги решить задачу из контеста - с go не имел опыта, написал вроде рабочий вариант (локально обрабатывает 2 канала и возвращает результат обработки в 3 корректно). Но на тестах падает, может поможешь понять где ошибка. Никакого пояснения к падению нет, просто RuntimeError. Канал out пробовал и закрывать, и не трогать - результат не меняется.
Мой код прикреплен пикчей. Текст задачи:

Необходимо написать функцию func Merge2Channels(f func(int) int, in1 <-chan int, in2 <- chan int, out chan<- int, n int) в package main.
Описание ее работы:
n раз сделать следующее

прочитать по одному числу из каждого из двух каналов in1 и in2, назовем их x1 и x2.
вычислить f(x1) + f(x2)
записать полученное значение в out
Функция Merge2Channels должна быть неблокирующей, сразу возвращая управление.
Функция f может работать долгое время, ожидая чего-либо или производя вычисления.

Формат ввода
Количество итераций передается через аргумент n.
Целые числа подаются через аргументы-каналы in1 и in2.
Функция для обработки чисел перед сложением передается через аргумент f.
Формат вывода
Канал для вывода результатов передается через аргумент out.
Аноним 17/05/20 Вск 18:53:58 1692007399
>>1691993
Ну так свой тест напиши и проверь, где она может упасть

Аноним 17/05/20 Вск 18:57:05 1692012400
>>1692007
Неправильно выразился, цитирую условия

"Отправлять задачу необходимо под компилятором make. Решения, выдающие неверный ответ, могут по техническим причинам получать вердикт Runtime Error. Медленные решения получают вердикт Idleness Limit, стоит рассматривать это как превышение времени исполнения."

То есть РантаймЕррор может говорить о неправильном ответе, а не о падении во время выполнения.
Аноним 17/05/20 Вск 19:01:44 1692021401
>>1692012
А они результаты в том же порядке ожидают что и инпут? Может второй вызов функции f был быстрее первого, например.
Аноним 17/05/20 Вск 19:06:30 1692033402
>>1691993
Лучше скинь код на play.golang.org, а не скрины
Аноним 17/05/20 Вск 19:20:44 1692067403
Аноним 17/05/20 Вск 19:27:11 1692079404
Аноним 17/05/20 Вск 19:35:20 1692093405
>>1692079
Ну так у тебя функция случайное количество времени ждет, понятное дело что в output другой порядок будет, который зависит от времени исполнения f.
Аноним 17/05/20 Вск 19:36:50 1692095406
>>1692079
А, я понял, ты предлагаешь ответ помещать в какую-нибудь структуру с задержкой чтобы ответы по порядку были?
Аноним 17/05/20 Вск 19:49:34 1692111407
>>1692093
Из условия следует, что порядок не должен зависеть от времени f
>>1692095
Я думаю, что ответы должны быть по порядку, но это должно решаться не задержкой


Аноним 17/05/20 Вск 19:51:38 1692113408
Аноним 17/05/20 Вск 20:12:30 1692147409
>>1692113
Уже лучше, пишет WRONG ANSWER
Спасибо за идею, надо теперь добить. В чем дело хз
Аноним 17/05/20 Вск 20:41:00 1692200410
>>1692113
>>1692147
Слегка модернизировал твой код, все равно не проходит тесты.
Вынес в отдельную рутину процесс отправки из 2 новых каналов в конечный.
https://play.golang.org/p/sqAOWo7hfo7
Аноним 17/05/20 Вск 20:46:59 1692210411
Аноним 17/05/20 Вск 20:51:54 1692219412
>>1692200
Тут сам ошибку сделал, нихера не синхронизированно работает опять же.

>>1692113
В твоем варианте все хорошо, но получается все равно надо ждать пока выполняется "out <- <-f1 + <-f2" в конце каждого цикла.
Аноним 17/05/20 Вск 21:00:40 1692231413
В общем, лучший вариант, к которому я пришел, выглядит так.
https://play.golang.org/p/eeP4LRhcoiU

Все равно не проходит тест, в чем дело хз.
Аноним 17/05/20 Вск 21:43:10 1692268414
>>1692231
Попробуй каналы буферизированными сделать, размером n. Тогда у тебя следующее вычисление f(x1) не будет ожидать предыдущего вычисления f(x2).
Грубо говоря забиваешь каналы сразу как можешь, а 3-я просто ждет и суммирует.
Аноним 17/05/20 Вск 21:44:28 1692270415
>>1692231
Ты сам его пробовал запускать? Он же медленно работает
Аноним 17/05/20 Вск 21:53:28 1692276416
>>1692231
А про функцию f(int) что-нибудь известно? Может там числодробилка, которая только от своего аргумента зависит, например (n!), где n мб достаточно большое. Тогда ее можно было бы закэшировать, как вариант.
Аноним 17/05/20 Вск 22:02:50 1692289417
>>1692276
Нет, написано что она может ждать значение, либо долго производить вычисления

>>1692270
Там таймауты стоят

>>1692268
Щас попробую, спасибо
Аноним 17/05/20 Вск 22:23:53 1692311418
>>1692289
Дело не в таймаутах - можешь их даже убрать
Аноним 17/05/20 Вск 22:26:43 1692316419
Решил попробовать вкатиться в Go просто ради интереса и столкнулся с такой проблемой. Все учебники, которые я нарыл, делятся ровно на два типа. Первый - тебе пол часа объясняют как объявить переменную, глав полторы штуки и в них считай базовый синтаксис (golang-book). Второй - тебе вообще нихуя не объясняют и с первой же страницы начинают душить примерами кода по 20+ строк и веб серверами (Язык программирования Go Кернигана). А есть что-то для новичков?
Аноним 17/05/20 Вск 22:31:12 1692325420
>>1692316
Ну так ЭЯзык программирования Go" вполне для новичков, насколько я помню
Аноним 17/05/20 Вск 22:33:46 1692327421
>>1692316
> примерами кода по 20+ строк
Туда ли ты зашел.
После листинга кода идет его разбор как бы.
Аноним 17/05/20 Вск 22:33:56 1692328422
>>1692316
>>1692325
Открыл "Язык программирования Go"
Там действительно в первой главе накидали примеров - но уже со второй начинается учебник для новичков
Аноним 17/05/20 Вск 22:34:27 1692330423
>>1692316
Керниган норм. Ты хоть содержание глянь. Эти примеры по 20 строк кода чисто часть первой главы "Учебник" или что-то такое. Блиц курс так сказать. После неё он каждую сущность разжевывает.
Аноним 17/05/20 Вск 22:41:13 1692341424
>>1692328
>>1692330
Действительно, но я уже вот только что сам это понял. Ну окей, буду пытаться
Хотя 99% загнусь очень быстро, у меня очень неприятное сочетание дикого интереса к программированию и непроходимой тупизны вкупе с совершенно неподходящим гуманитарным мышлением когда ты смотришь на массивы/срезы и просто активно не понимаешь о чём тут, перечитываешь по три раза и всё равно не понимаешь. По крайней мере так с golang-book было, мб здесь получше станет
Аноним 17/05/20 Вск 22:45:40 1692345425
>>1692341
Это хуйня про гуманитарное мышление. С первого раза не поймешь. Нужно почитать, попрактиковать, поспать и это все постепенно начнет перевариваться.
Аноним 17/05/20 Вск 23:03:25 1692355426
>>1692316
>что-то для новичков
pure C? go скорее игрушка для динозавров, которые не приняли мир ООП
Аноним 17/05/20 Вск 23:04:06 1692357427
Аноним 17/05/20 Вск 23:04:25 1692359428
>>1692355
ООП скорее игрушка для динозавров, которые не приняли мир ФП
Аноним 17/05/20 Вск 23:07:40 1692361429
17/05/20 Вск 23:14:07 1692369430
Аноним 18/05/20 Пнд 09:52:30 1692601431
>>1692359
ФП скорее игрушка для динозавров, которые не приняли такие >>1691048 игрушки
Аноним 18/05/20 Пнд 09:58:58 1692607432
Есть ли какая-нибудь гошная они для постгри, которая похожа на mgo для использования постгри на носиквел манеру через jsonb?
Аноним 18/05/20 Пнд 10:37:01 1692633433
Аноним 18/05/20 Пнд 10:48:58 1692646434
> тред про максимально не функциональный язык
> обсуждение ФП
Аноним 18/05/20 Пнд 12:34:47 1692722435
>>1692646
ФП-сектанты придут и в тред асма
Аноним 19/05/20 Втр 00:31:14 1693390436
>>1691564
Еще одного возьмете?
Аноним 19/05/20 Втр 01:41:56 1693407437
>>1693390
да, конечно, пиши на почту - poshelNahui@pidor.blya
Аноним 19/05/20 Втр 09:09:37 1693476438
>>1664958
Для маминых саентистов это Haskell
Аноним 19/05/20 Втр 10:35:31 1693510439
Аноним 19/05/20 Втр 19:29:52 1694113440
Есть такой файл:
50 тыщ строк а
50 тыщ строк б
50 тыщ строк ц
50 тыщ строк д

надо его переделать в csv из 50000 строк из 4 столбцов: а б ц д. Какой самый экономный способ сделать это?
Аноним 19/05/20 Втр 19:34:49 1694125441
>>1694113
python
import pandas as pd ?
Зачем это делать на go ?
Аноним 19/05/20 Втр 20:00:59 1694157442
Аноним 19/05/20 Втр 20:26:58 1694187443
>>1694125
>>1694157
Два дебила, один хуйню посоветовал, второй обрадовался.
Один csv файл из разных можно хоть на питоне слепить, хоть на го, хоть на баше.
Аноним 19/05/20 Втр 20:36:53 1694202444
>>1694113
сделаю за минуту в виме
Аноним 19/05/20 Втр 21:11:00 1694227445
Аноним 19/05/20 Втр 21:14:51 1694231446
>>1694202
Я бы тоже в виме сделал. Да хоть в экселе. Но ему, возможно, надо это делать неоднократно и автоматизировать.

мимо
Аноним 19/05/20 Втр 21:55:29 1694266447
>>1694202
Входной файл:
a1
a2
a3
a4
b1
b2
b3
b4
c1
c2
c3
c4
d1
d2
d3
d4

Пиши, что надо ввести, чтобы получилось:
a1,b1,c1,d1
a2,b2,c2,d2
a3,b3,c3,d3
a4,b4,c4,d4
Аноним 19/05/20 Втр 22:11:59 1694275448
>>1694266
Выделить строки на "a", сохранить в a.txt
...
Выделить строки на "d", сохранить в d.txt

Создать новый файл
:.!paste {a,b,c,d}.txt -d ','

мимо
Аноним 20/05/20 Срд 08:55:58 1694580449
image.png (101Кб, 641x936)
641x936
Аноним 20/05/20 Срд 09:49:48 1694663450
А как подменять либы?
Вот есть приложение и библиотека.
Первое использует последнюю версию из мастера либы.
Нужно изменить либо и отладить эти изменения в приложении.
Как это сделать?
Если просто поменять код в вендоре или модулях, оно не собирается из-за проверки хэш сум(
Аноним 20/05/20 Срд 10:03:27 1694681451
>>1694663
Делаешь коммит библиотеки
Делаешь go get с указанием коммита
Аноним 20/05/20 Срд 10:40:13 1694735452
>>1694681

Так и делаю, но как-то оно кривым кажется.
Аноним 20/05/20 Срд 12:18:11 1694901453
image.png (46Кб, 594x654)
594x654
Аноним 21/05/20 Чтв 14:45:46 1696268454
>>1694735
если у тебя го модули - то делай go mod replace на локальную директорию и играйся
Аноним 21/05/20 Чтв 17:04:53 1696440455
15574493218870.jpg (44Кб, 720x479)
720x479
Когда я объявляю интерфейс в качестве параметра функции, то я могу передать в него указатель на объект вместо передачи по значению? Объект удовлетворяет интерфейсу, имеет все методы и т.д. Я сперва попытался объявить ссылку на интерфейс, но компилятор и стаковерфлоу запретили мне это делать.
Аноним 21/05/20 Чтв 17:14:09 1696459456
Аноним 21/05/20 Чтв 18:35:19 1696603457
работаю го джуном 2 месяца, переношу сервисы с монги на постгресс, и пилю интеграционные тесты, когда уже 300к\с? пока получаю только 35к(мухосранск)
Аноним 21/05/20 Чтв 19:27:52 1696664458
>>1696603
С таким стартом никогда
Аноним 21/05/20 Чтв 19:59:06 1696688459
>>1696664
>С таким стартом никогда
поч?
Аноним 21/05/20 Чтв 20:06:59 1696704460
>>1696688
в дс перекатывайся
мимо
Аноним 21/05/20 Чтв 20:15:02 1696727461
>>1696268

А если запуск только в миникубе и докер не хочет брать папку рядом?
Аноним 21/05/20 Чтв 20:38:21 1696744462
>>1696603
>>1696704

Двачую.

При переезде в мск, сразу сотня. Через пару лет 200.
Что бы 300, надо либо в удалёнку на запад.
Либо в лиды в России 300к неохотно платят, особенно в кризис.
Аноним 21/05/20 Чтв 20:43:10 1696752463
>>1696744
Эх, вот щас дочитаю книжку про го и вкачусь к вам. Хотя кого я обманываю, у меня уже давно синдром вечного студента, который всегда что-то учит(
Аноним 21/05/20 Чтв 20:48:24 1696766464
>>1696744
гоферы, пользуетесь ли вы какими-то репортерами для тестов? хочу что-то типа аллюра, чтоб генерился отчет и чтоб плагин к дженкнсу был))))
мимо автоматизатор на го
Аноним 21/05/20 Чтв 20:54:07 1696774465
добавлю к >>1696766
что нужно, для переката в го? бтв, курс от мейла на курсере норм? тем\знаний из него достаточно для джуна?
Аноним 21/05/20 Чтв 21:23:30 1696788466
>>1696774

В теории.

Го простой. Тут косяк, что к нему просят хорошее понимание многопоточности и микросервисную архитектуру.
Аноним 22/05/20 Птн 12:14:29 1697507467
1
Аноним 22/05/20 Птн 23:46:48 1698419468
Перекатываюсь из фронтенда. В бекенд на го. Какие подводные?
Аноним 23/05/20 Суб 00:12:24 1698436469
>>1661813 (OP)
Сап. Возникла идея наклеплепать небольшой говно сайт.Нагрузка небольшая - пишу для себя. Т.к. нагрузка небольшая, а похепе нинужно встал выбор между Пистоном и Go. Выбрал Говно за статическую типизацию. Вопрос бывалым сайтостроителям: какой фреймворк выбрать? Конечно у Goвна богатая стандартная либа, но писать всё руками с нулями нет желания. Gorila топ за свои деньги?
Может Go вообще не подходит для этой цели?
И небольшой оффтоп: можете что-ниудь посоветовать для веб мордыпосле HTML,CSS,PureJS'а, полному нулю в формошлёпстве?
Аноним 23/05/20 Суб 00:52:00 1698501470
>>1698436

Пиши на голом http. Самая популярная либа. На втором месте fasthttp. Про третье не уверен, но по звёздам на гитхабе, думаю, что gin.

На фронт, если не хочешь учить большую тройку, а надо что полегче, то svelte.
Аноним 23/05/20 Суб 10:41:53 1698703471
>>1698436
По поводу бека соглашусь с >>1698501, но можешь и горилу взять, если хочешь. Но важно понимать, что это все - узко специализированные библиотеки, и в го фреймворки не принято использовать (их и нет по факту). Если хочешь именно фреймворк - бери джангу, не прогадаешь.
Насчет фронтенда хочу дополнить, что если задача небольшая и не будет особо развиватся - можно попробовать остановиться на "html/template" + Bootstrap
Аноним 23/05/20 Суб 11:31:13 1698729472
>>1698501
>На фронт, если не хочешь учить большую тройку, а надо что полегче, то svelte.
90% реакта учится за пару дней (из которых первая половина первого дня - синтаксис es6, а вторая половина второго - понимание того, как теперь это все запустить). Потом по желанию всякие хуки-хуюки и тайпскрипт, но и без них уже все хорошо пишется.
Аноним 23/05/20 Суб 21:14:37 1699362473
ну шо пачаны, удалось ли хоть кому нибудь E 2 канала сделать? вангую у них тест кривой
Аноним 23/05/20 Суб 21:18:55 1699368474
Аноним 23/05/20 Суб 21:45:56 1699392475
>>1699368
Непривычный синтаксис без <угловых, скобок>.
Аноним 23/05/20 Суб 22:05:37 1699439476
>>1699392
Да, а самое интересное начинаеться для дженерик-методов с несколькими возвращаемыми значениями:

func (object Object) MethodName(type T) (arg []T) (result []string, err error) {...}
Аноним 23/05/20 Суб 22:21:58 1699484477
>>1699368
И в какой версии это ждать?
Аноним 23/05/20 Суб 22:26:16 1699493478
Аноним 23/05/20 Суб 22:28:51 1699499479
>>1699493
Разве дженерики сломают обратную совместимость? Это будет уже головная боль всяких мейнтейнеров пакетов, переписывать все заново и тянуть легаси.
Аноним 23/05/20 Суб 22:34:03 1699512480
>>1699499
Они ж не только дженерики добавляют, вдруг стандартную либу собираются переделать.
Будет, например, как в питоне 2.
Аноним 23/05/20 Суб 22:57:25 1699535481
>>1698436
У го такой подход, что нет фреймворков, есть библиотеки-пакеты, которые решают конкретную задачу: роутинг, построение sql-запросов, маппинг данных и т.п. и фреймворк ты собираешь себе сам.
Это хорошо тогда, когда ты понимаешь, что тебе нужно и вообще есть опыт выстраивания архитектуры проекта.
А для новичков, особенно беглецов с языков с фреймворками, конечно, боль.
Аноним 23/05/20 Суб 23:28:00 1699555482
>>1698436
Взял бы ноду с экспрессом да и всё, зачем тебе статическая типизация, если ты пишешь мелкий говносайт для себя?
Аноним 23/05/20 Суб 23:34:19 1699565483
>>1699555
Если пишешь для себя, почему бы не написать на том, что нравится, а не на том, что быстро решит задачу?
Аноним 24/05/20 Вск 01:20:27 1699609484
>>1696766
Пользуемся аллюром.