Двач.hk не отвечает.
Вы видите копию треда, сохраненную 23 сентября 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред про лучший в мире язык GO №9 /go/ # OP 1661813 В конец треда | Веб
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)
2 1661872
>>1661778 →
На всякий случай уточнил, по тому что у меня первая ассоциация была с Китаем.
4 1661946
>>661884

>Нет просмотров 2 недели назад


Воу, годнота наверное.
5 1662084
>>1661485 →
переведу на язык биологии, вы жили в комфорте пилили какую то хуйню для кишков компании(которая особо и не нужны были), в итоге из-за кризисы новые вызовы, если ваш отдел сейчас не войдет в резкий поток изменений, если вы не выйдите из зоны комфорта и в стрессе не начнете хуячить что- то новое, то вы по всем законам рынка должны умереть.
6 1662110
>>1661781 →
А что, го настолько быстрее скриптов? Ну то есть бысрее конечно, но количество нулей в стоимости будет одинаковым.
7 1662157
>>662110
Намного быстрее и намного меньше жрет ресурсы. Но это в ряде случаев и если пишут люди с прямыми руками.
К примеру, просто отдавать данные из базы наружу скорее всего все стеки будут +- примерно одинаково (питон и руби чуть медленнее, пхп чуть быстрее, го и джава - очень быстро). А вот когда попрёт бизнес-логика и нужно будет провести 100500 побочных операций, сравнений и запросов в базу на один запрос извне - вот тогда и окажется, что го или джава на пару порядков быстрее.
Но опять же, всё будет зависеть от реализации, на питоне есть pypy и прочие преобразователи в C, в php скоро будет JIT и разница будет максимум в разы.
Для меня выглядит так, что обычно выбираются 2 языка, один для бизнес-логики (чтобы удобно описывать сложные правила), второй - для высоконагруженных системных сервисов (типа сервиса авторизации). Например, в баду для этого используют PHP + GO.
Но ещё нужно понимать, что это крупняк. В небольших и средних конторах можно брать вообще что угодно, там не бывает таких больших нагрузок, чтобы разница становилась действительно значимой.
8 1662181
>>662157

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

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

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

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

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

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

и давайте будем честны, тредами на жаве такое не делают, потому что скорее память кончится, а что с ивентлупами в жаве я не знаю, и что asyncio, что reactphp - маргинальные технологии
8 1662181
>>662157

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

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

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

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

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

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

и давайте будем честны, тредами на жаве такое не делают, потому что скорее память кончится, а что с ивентлупами в жаве я не знаю, и что asyncio, что reactphp - маргинальные технологии
9 1662183
>>662084
Так и есть. Кишки может и нужны, но на разработку уходят деньги. И вроде бы эти кишки уже что-то умеют, а что не умеют можно например заменить написанием excel-ек. А тут кризис и необходимость сокращать расходы, и зарплаты надо платить тем людям кто действительно зарабатывает деньги компании (инженеры, монтажники, проектировщики, etc).

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

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

Другое дело, конечно, что сейчас может и выбора не оказаться.
10 1662189
Вам не лень такие простыни строчить?
11 1662201
>>662189

карантин же, делать нехуй
sage 12 1662237
Сап гоферы, не подскажите что я делаю не так
https://play.golang.org/p/oIUkTqpDXxJ
Хочу проксировать запрос но чет не выходит.
13 1662241
>>662237
Пардон не так ссылка
https://play.golang.org/p/NrpsTY5FjlL
14 1662276
>>662181
Ну asyncio уже давно мейнстрим. Wargaming, Ростелеком, Yandex, Avito, Сбер используют aiohttp, который в свою очередь основан на asyncio. Но проблема питона в том, что большинство библиотек заточены под синхронный питон, под asyncio не так уж и много хороших инструментов (а это одно из немногих преимуществ питона), поэтому зачем мучаться с питоном, если можно взять golang, который изначально разрабатывался под асинхронность
15 1662278
>>662276

> asyncio не так уж и много хороших инструментов


Благодаря популярности пистона, думаю со временем сообщество наверстает отставание. Джанга 3 вон уже прикручивает асинхронность чуть-по-чуть.
16 1662308
>>662278

Поздно.
Джанга помрёт, оставшись диким легаси.
Им надо было начинать когда асинхронщину втащили в язык.
17 1662319
>>662308
Ну наконец-то, а то я заебался ждать, когда этот питоний вордпресс сдохнет.
Аноним 18 1662325
>>662319
Ну как сдохнет - будет еще 50 лет на поддержке в некоторых проектах
19 1662333
>>662278
>>662319

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

>>662278
ты в курсе, что asyncio уже лет пять наверно, мб больше не гуглил, сделайте это за меня; в пыхе например есть swoole, выглядит тоже как топчик, но что-то как-то нет
20 1662531
Парни, привет.
Начал курить го по совету товарища, который этим зарабатывает, но моя ленивая башка очень тяжело и прям со скрипом воспринимает новое. И так во всем почти. Прикол в том, что я работаю ночным сотрудником техпода и времени учиться - вагон.
Сори, что офтоп, но может, у кого была похожая хуйня? Как заинтересовать себя что ли?
Когда не на работе, пью пиво и смотрю видяшки в основном, как-то чмошно получается.
греча.png1,8 Мб, 1023x959
21 1662540
22 1662595
>>662531

А что ты делаешь в /pr/?
Ищи, что тебя интересует. Как только найлешь, будешь смотреть видео по теме, а не смешнявки.
23 1662598
>>661813 (OP)
Первая пикча достаточно иронична, учитывая что

>verbose


>old fashioned


это свойства, которыми goвно обладало с самого рождения
24 1662600
>>662598

По сравнению с Java go крайне лаконичный.
А вот, про old-fashioned, пожалуй да, С с горутинами и сборщиком мусора.
25 1662944
>>661813 (OP)
Привет

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

Сам я долбаеб, который не умеет читать книжки и привычнее, когда есть ментор/наставник или еще кто. Короче, есть ли годные курсы по пщ? Гикбрейнс, скилбокс, нетология - вроде как полная параша.
26 1663023
Двощ, какая лучшая IDE для этого вашего GO VSCode, Atom и подобную парашу тоже будем считать за IDE?
27 1663029
>>663023
Тут особо выбирать не из чего: VS Code или GoLand
28 1663036
>>662944
Ultimate go на английском - покрывает язык практически полностью, рассматриваются некоторые низкоуровневые штуки, есть небольшой уклон в software engineering.

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

Оба курса можно получить забесплатно (ну или почти) если хорошенько поискать
29 1663061
>>663036
спасибо!
поищу последний
go.jpg532 Кб, 1764x2048
30 1663137
>>662944
Сейчас читаю Head First. Изучаем Go. Вроде ниче так.
31 1663141
>>663023
нахуй тебе эти параши? возьми православные sublime или notepad++.
32 1663148
VIM
33 1663151
34 1663156
>>663148
Хуим
>>663151
Хуякс
35 1663194
На всякий случай нужно сказать, что если вы хотите использовать текстовый редактор (vim, VSCode, Atom) как IDE - вам нужно обмазаться gopls
36 1663217
>>663194
В последний раз, когда я его пробовал в вскоде, он не показывал автодополнение для еще неимпортированных пакетов.
37 1663299
>>663217
Goland это умеет, но делает как-то со скрипом
38 1663500
39 1663531
>>663023

svg не аттачится, так что ищи тут сам распределение по используемым IDE https://blog.golang.org/survey2019-results
40 1663822
Здравствуйте. Очередной вкатывальщик ИТТ
Стараюсь изучить на курсере, пока все нравится, но...Можно ли набраться опыта/экспертизы, не меняя работу? Звучит максимально странно, но сейчас получаю довольно хорошую зп, и не вкатываться джуном.

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

Фриланс не найти из-за того же отуствия опыта.
41 1663841
>>663822
Попробуй написать борду. В процессе ты будешь много гуглить вещей, которые действительно важно знать и уметь.
42 1663968
>>663137
анон, прошу тебя дай ссылку на Изучаем Go
43 1664039
Какие есть ёба-пиратские сайты с книгами? На рутрекере по программированию две книги в месяц выкладывают.
44 1664045
>>664039
Флибуста же..
45 1664161
>>664039
libgen.is
46 1664473
>>664045
Комплюхтерных книжек там еще меньше, чем на рутрекере.
47 1664483
>>664039
Поиск в документах в вк.
48 1664556
Расскажите про контекст.
Допустим, я делаю рест апи, каждый реквест содержит контекст, который я прокидываю из обработчика запроса по всей иерархии вызовов, где это возможно. Допустим, вся логика сводится к вызову функции, состоящей из последовательных затратных по времени операций, в ней контекст никуда не прикрутишь. В таком случае его просто принимать, но игнорировать?
Или можно ту функцию переписать, чтобы она возвращала результат через канал, написать к ней обертку, которая запустит основную функцию в горутине, а потом будет делать селект между каналом результата функции и каналом Done контекста. Тогда можно будет в случае чего быстро вернуться, но горутина с основной логике будет выполняться в никуда.
Или можно этим сраным селектом обернуть каждое выражение в функции и чекать из контекста отмену на каждом шаге алгоритма, но это будет ад.
Как принято делать?
49 1664574
>>664556
https://www.youtube.com/watch?v=me5iyiheOC8

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


select + ctx.Done нужно использовать в местах, где есть ожидание от других каналов, в остальных же местах достаточно использовать проверку ctx.Err() != nil

>контекста отмену на каждом шаге алгоритма


Если идет обработка какого-то говна в цикле - достаточно одной проверки в начале тела цикла, иначе - перед тяжелыми вызовами, т.е. в большинстве случаев достаточно перед IO операциями
50 1664667
>>664556
можно сделать грязный хак, типо

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
}
51 1664674
>>664667
только не <-ctx.Done(), а конечно же <-internalCtx.Done()
52 1664778
Какие плюсы/минусы при перекате с плюсов? Плюсы заебали тем, что их можно учить бесконечно просто, каждый год узнаю что-то новое, что можно было сделать лучше.
53 1664857
>>663137
на либгене поищи
54 1664858
55 1664862
>>664778
плюс: нельзя учить бесконечно
минус: нельзя учить бесконечно
56 1664906
>>664574
>>664667
Спасибо.
57 1664919
>>664574
У этого парня из Баду ноутбук в два раза шире, чем он.
58 1664921
Посоны, а gopl не сильно устарела?
image.jpeg9 Кб, 198x255
59 1664922
>>664921

>go


>не устарела

60 1664926
>>664922
А что там сейчас самое модное? Я из жабазагона, если что. За тренда не слежу.
61 1664928
image.jpg53 Кб, 293x539
62 1664929
63 1664958
>>664928
Это для маминых саентистов, а я обычный станочник.
>>664929
Сложно.
64 1665089
>>663023
Любая, в которой тебе будет удобно. Sublime Text, если созрел то может Vim/Neovim, Emacs. VSCode - это днище и вообще зашквар на электроне.
65 1665094
>>663968
в телеге найди, там есть пиратский канал по книгам суслика. я там нашел.
26c82d68d4ab6ae0eb5dcddf2ca6a8e7[1].jpg50 Кб, 340x247
66 1665095
>>665089

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



Джва чифирка эту господину! Более того у саблайма есть прекрасные сниппеты, макросы.
67 1665291
>>662181
Ну так я об этом и говорил.
У тебя будет сервис, который умеет синхронно ходить в кучу сервисов, мерджит-преобразует и всё такое, на го.
Понадобились данные - один раз сходил в соседний под в этот сервис и получил их, а потом отдал. Пыха здесь чисто как прослойка нужна, чтобы бизнес-логику писать с использованием этих данных.
68 1665302
>>665095

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


>саблайм

69 1665345
>>665291

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

Но со временем втянулся. Ничего страшного, не так красиво и лаконично, но можно сделать что угодно.
70 1665402
>>664667
А в чем профит-то? Это же явная утечка горутин.
71 1665735
>>665402
в том, что ты осознанно отпустишь какую-то блокирующую часть кода и пойдешь дальше, например у тебя какая-то долгая операция и ты хочешь грейсфул завершить прилож за предсказуемое время, при этом на результат этой операции тебе впринципе пофиг

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

>>665291
акцент на асинхронную работу с ио, которого у тебя не было, а это дает наибольший вклад в итоговый перформанс
72 1665832
Посоветуйте какой-нибудь туториал по докеру и кубернетесам, чтобы даже дебил без лобных долей разобрался.
73 1665838
>>665832
Видосики на ютубе на русском по запросу "docker".
74 1666374
ГОвно))
75 1666559
мертый тред as a service
76 1666621
>>666559

>мертый тред as a service


Что ты знаешь о смерти ? хочешь увидеть смерть, иди в хаскель тред.
77 1666633
>>666621

>увидеть смерть, иди в хаскель тред.


Что ты знаешь о смерти ? хочешь увидеть смерть, иди в жулиа тред.
78 1666730
Гоферы, а расскажите, как вы обрабатываете ошибки?

И я здесь имею ввиду не только if err != nil { return err }, но и что дальше делать с этой err, что делать, если тебе никак нельзя тут получить err и тд?
79 1666748
А Го специально так придумывали, чтобы синтаксис не такой как у всех был?
image.png132 Кб, 1920x1080
80 1666749
>>666748
Ты не видишь этот маскот?
81 1666754
>>666730

>если тебе никак нельзя тут получить err


Мало ли что тебе нельзя.
82 1666774
>>666754

ваше мнение очень ценно для нас, пожалуйста оставайтесь на связи
83 1666786
>>666774
Если ошибка появилась там, где не должно быть ошибки, то одно из двух:
1. система плохо спроектирована
2. сдохло железо
Оба случая - без вариантов паника, тут уже не до ошибок.
Аноним 84 1666790
кто как работает с миграциями? какой пакет для этого используете?
стоит ли запускать миграции из приложения при его запуске или лучше отдельно запускать команду?
85 1666795
>>666786

спасибо ты не очень умный
86 1666796
>>666795
Умные люди на го не пишут.
87 1666801
>>666790

> кто как работает с миграциями? какой пакет для этого используете?



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

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



во-первых, однозначно не нужно встраивать в запуск приложения инструмент миграции, во-вторых, запускать ли приложение через `sh -c "migrate-cmd && app-start-cmd"` сильно зависит от.
88 1666803
>>666796
зачем же ты тогда вышел за пределы своего php-треда, петушок?
89 1666805
>>666803
Посрать
90 1666909
>>666790
Илья, в прошлом треде вопрос обсуждался, тред еще жив, смотрите там
91 1667633
щас бы живой тред... эх...
93 1668854
Нужно ли ставить нужникс перед go API сервером? Или лучше добавить TLS к моему коду?
94 1669556
>>668854
Нгинкс же не только реверс-прокси, но и балансировщик нагрузки.
ставь апач
95 1669634
>>669556

>балансировщик нагрузки


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

>ставь апач


А это еще зачем? Я думал он нужен только для того, чтобы php/python/perl скрипты запускать, а нужникс - более производительный
96 1669661
Писал в прошлом треде, что после 3 месячного курса внутреннего компании, меня взяли джуном, работаю уже почти месяц, перевожу микросервисы с монги на постгресс, и иногда кажется что я пиздец тупой, могу долго сидеть тупить как работает логика сервиса, и приходят в голову мысли что может ну его нахуй, может это не мое, сижу дрочу код\тесты часов по 10 в день. Это норма?
97 1669665
>>669661

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


А что за такой массовый хейт и слив с монги? Чем она не устраивает?
98 1669666
>>669661

>часов по 10 в день. Это норма?


По 10 не надо, сгоришь.
99 1669673
>>669665
Не так много задач, где монга лучше постгресса
100 1669680
Перекатываюсь в го из пыхи.
Курсы от ОТУСа норм?
И как определить, что я уже могу считаться джуном го? Какую приложуху надо написать как пет? в пыхе это круд со студентами
101 1669689
>>669673

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

>>669680

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



хуй знает

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



напиши production-ready cloud-native круд со студентами
102 1669699
>>669680
у отуса вебинары, со всеми вытекающими. чмекающие, пукающие лекторы с уёбищными микрофонами, чсвшные уёбки вместо студентов, дерейлящие занятия нерелейтед вопросами, половина лекторов нихуя не флюент в пыще и тому подобное. сама программа норм конеш
103 1669853
>>669699
У отуса странная тян, которой задают вопросы, она говорит "окей, отвечу в конце занятия", в конце занятия говорит "окей, давайте посмотрим в исходники го", ничего там не находит и прощается.
104 1669909
>>669665
Она не нужна в большинстве случаев
105 1669924
>>669689

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


Я знаю только два:
1) Тебе нужен high availability, у SQL баз с этим довольно плохо
2) Когда ты уперся в скорость записи в SQL базу
Для большинства проектов эти вещи вообще не актуальны
106 1669954
Объясните, зачем гугл вкладывает кучу бабла в раскрутку Go? Если бы только для своих внутренних корпоративных сервисов использовал - понятно, но зачем широкая-то раскрутка? В чём профит?
107 1670022
>>669954

> В чём профит?


дохуя спецов новых которых можно взять на работу
108 1670072
>>670022
Так к гуглу и без этого очереди желающих выстраиваются. К тому же Go после сиобразных языков выучивается быстро. Поэтому не вижу смысла тратить кучу бабла на широкую раскрутку языка из-за этого. Должны быть какие-то более весомые причины.
109 1670076
>>669924
Кстати, а скорость записи - это актуально в принципе? Разве скорость чтения не гораздо важнее?
110 1670077
>>670072
А можно примеры, что гугл вкладывает кучу бабла?
111 1670082
>>670077
Если бы гугл не вкладывал бабло, то все сидели бы на котлине, а раз не все сидят на котлине, значит гугл вкладывает бабло, очевидно же.
112 1670083
>>670082
Но гугл поддерживает котлин тоже
113 1670086
>>669665
У кей-велью баз есть свои задачи конечно, просто в какой-то момент монга была под лютым хайпом и все вебдебилы бросились заменять нормальные реляционки на доступные своим имбецильным мозгам хеш-таблицы там где надо и не надо. В ответ на это пошла волна хейта, вот осадок до сих пор остался.
Вообще данные лучше держать в хорошо структурированном и нормализованном виде, пока это возможно и не создаёт проблем в поддержке. Такой подход сам по себе позволяет избежать множества ошибок связанных с данными и применить определенные оптимизации. Потом, если где-то упираешься, можно частично денормализовать критичные участки или вообще вынести их куда-то. Использование же безсхемной базы по дефолту подразумевает слабое структурирование, даже тех данных, что можно было бы структурировать гораздо строже. Это даёт возможность бездумно хуярить хуяк-хуяк в продакшн на старте, чем вебдибилы обычно активно пользуются, а потом насасываются на поддержке этого ебаного хаоса.
Нет смысла быстро-быстро писать данные как попало, если потом их надо обрабатывать, а ты ничего не можешь про них сказать, кроме того что это json с полем id. С таким же успехом можно и в /dev/null писать, это еще быстрее.
114 1670099
>>670072
Почему это именно в гугл? Подсадить всех на свой язычок, чтобы, когда наберётся критическая масса кодеров на нём, продавливать своё видение того, как должно развиваться IT. Это как с хромом.
115 1670227
>>670099
Сильно сомневаюсь, что один или даже несколько языков могут определить развитие IT
116 1670242
>>670227
Си и фортран определили.
117 1670269
>>670099
Хром монетизируется за счёт зондов и рекламы. К тому же в интересах тотальной слежки за своими гражданами и всем миром американское правительство готово выделить гуглу любые деньги. То есть даже без рекламы хромой выживет. Но Go для подобного плохо подходит, ибо примитивный. Для этого лучше подходит переусложнённый жирнючий язычок, чтобы во всех его потрохах никто не вздумал серьёзно копаться.
118 1670282
>>670269
Почему сразу раст?
119 1670295
>>670269
Гугл как таковой держится в основном за счёт рекламы. И работает он в первую очередь на себя, а не на американское правительство.

> Но Go для подобного плохо подходит, ибо примитивный.


Наоборот, язык должен быть максимально простой, чтобы как можно больше вкатывальщиков ринулось его изучать. Дело даже не в потенциальном наличии зондов в компиляторе пщ, а в самом факте, что на этом языке будут писать именно так, как хочет гугл.
120 1670373
>>670295

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



И как это у гугла окупится?
121 1670388
122 1670665
>>665735

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



Не особенно корректно, nginx с достаточным размером пула обрабатывает конские потоки трафика, а асинхронная работа с ио нужна очень даже не всегда.
Как правило это выглядит, как: пришёл запрос, ты последовательно сходил в несколько сервисов, отдал ответ. Тут нечего распараллеливать, а последовательные вызовы чего угодно без сложных расчётов и загрузки процессора пыха будет делать достаточно быстро. Зато писать на ней всякие стратегии (то есть бизнес логику) ты будешь быстрее, чем на го.
123 1670668
>>669680
Блог отуса на хабре - полная херня, как будто студенты пишут, 90% воды, 10% копипаста с helloworld'ов. Я бы не рекомендовал.
124 1670676
>>670076
Пф, естественно актуально.
Очень часто данные можно обработать потом, а вот сохранить их для обработки ты должен сразу. Возьми, к примеру, чат - твоё сообщение может долететь к собеседникам не мгновенно, а через несколько секунд, но сохранить его ты должен моментально, чтобы потом прососать по всем системам доставки данных, кэшам, etc. Отсюда ты получаешь огромный поток данных на запись (куча людей что-то пишет).

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

Плюс же монги - это возможность удобно поднимать её в кластерном режиме, поднять так же просто какую-нибудь галеру или местер-мастер постгреса ты не сможешь.
125 1670814
>>670668
Так я не про блог, а про видеокурсы
126 1670855
>>670676
Спасибо за ответ
127 1671503
>>664857
плохо ищу, не нашел нихуя.
можно ссыль? буду благодарен
128 1671674
>>670814
Я понимаю, но про видеокурсы я ничего сказать не могу, а вот блог видел. Могу попытаться сделать вывод, что если их блог - полная херня, то и вероятно видеокурсы у них тоже не очень.
image.png33 Кб, 804x20
129 1671680
130 1671934
>>670076
Актуально, но немного на больших объемах трафика.
Чтение ты можешь сейлить практически до бесконечности даже с классическими SQL базами при помощи каскадной репликации. А с записью - все сложнее, ее практически невозможно масштабировать горизонтально, все что мы можем - это по немногу отказываться от триггеров, foreign key'ев или даже индексов
131 1674130
>>671680
анон ты немножно ебнутый, в ответе был Head First Go с переводом на русиш, я именно его и ищу
132 1675512
>>661813 (OP)
Бля. Мне одному заебывает это if err != nil ?
133 1675623
>>675512
Покажи код проекта.
134 1675643
>>675512
Нет, это заёбывает всех нормальных людей.
135 1675687
>>675512

Через неделю привыкнешь.
136 1675747
>>675512
ну иногда заебывает а вообще прикольна же. лучше чем уродливые try except с отступами
137 1675811
>>675512
Временами заебывает, особенно если нормально обрабатывать (т.е. добавлять контекст к ошибке на каждом этапе)
Но ничего лучше не придумали, на самом деле, ведь try/catch очень неудобный в условиях кучи горутин, у которых еще очень разная иерархия/время жизни/важность может быть
138 1675823
>>675747
В каком месте это лучше? Логика вперемешку с обработкой ошибок, из-за которой код потом становится нечитаемым, и приходится городить хуиту типа
func check(value interface{}, err error) interface{} {
if (err != nil) { log.Fatal(err) }
return value
}

a := check(foo()).(int)
b := check(bar()).(string)
139 1675838
>>675823

Пздц, убей себя об стену.
140 1675840
>>675823
Кто тебе виноват, что ты городишь хуиту. Взял зачем-то спрятал ошибку, теперь тот, кто будет читать твой код, должен будет держать эту функцию check в голове. А если еррор не фатальный? Вводить еще одну чекалку? Каша какая-то получится.
141 1675912
Есть достойное сравнение go с плюсами?
142 1675916
>>675912
Есть. Плюсы > Go.
143 1675968
>>675916
Плюсовики уже четверть века не могут в своем синтаксисе разобраться. Только чуть-чуть поймут, как новый стандарт выходит.
144 1676006
Насущный вопрос: есть метод, запрашивающий данные из бд и возвращающий объект + ошибку (ошибка возвращается в т.ч в случае, если запрос не вернул данных). Указатель на объект возвращать нет необходимости, т.к сам объект не очень большой и изменениям в дальнейшем не подвергнется.

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

Вопрос: как лучше поступить в этой ситуации и стоит ли использовать указатель исключительно ради возможности возврата nil?
145 1676013
>>676006

>стоит ли использовать указатель исключительно ради возможности возврата nil


Нет, не стоит.
146 1676328
Че почитать по Go с точки зрения программиста, а не вкатывальщика? Пока что прочел только:
https://learnxinyminutes.com/docs/go/
147 1676334
>>676328
https://tour.golang.org/
А дальше короче сразу писать проект.
148 1676417
>>676334
Ок. А как узнать что из этого выкинут в go 2?
149 1676449
>>676417
Никак, лол. Го 2 где-то в прекрасном далёке, и, похоже, его довольно сильно переделают, и придётся учить заново.
150 1676502
Пиздос, как живется, без дженериков то?
https://gobyexample.com/collection-functions
151 1676519
>>676502
Ещё сортировки зацени, ваше пиздец: https://gobyexample.com/sorting-by-functions

Живётся так же, как жилось в джаве до добавления дженериков. В джаве был Object, а тут есть interface{}. Кастить приходится руками, и типобезопасность идёт нахуй.
152 1676652
>>676006

>Вопрос: как лучше поступить в этой ситуации и стоит ли использовать указатель исключительно ради возможности возврата nil?


Как верно уже сказали - не стоит, конвенционально считаеться, что если ты вернул не нулевую ошибку - значит ты вернешь нулевые остальные результаты, если не укажешь обратное в документации (как с io.Writer)
153 1676964
>>661813 (OP)
Интересно, что вообще делает Go в разделе Enterprise
154 1676971
>>676652
Столько предположений/допущений для относительно молодого статически типизированного языка - это кекус, конечно. Result нинужен, будем четыре состояния нахуй таскать.
155 1677055
>>676971
Ну да, гораздо лучше бросить эксепшон, который кто-нибудь проебет и он внезапно сломает более высокий уровень абстракции.
156 1677059
Тут и вправду кто-то получает деньги за говно?
157 1677060
>>677059

И даже неплохие
158 1677061
>>677060
Как оно выглядит в продакшоне реального мира?
159 1677063
>>677061

Примерно так же, как и прод на любом другом языке - тонны легаси и лапшекода
160 1677078
>>677063
Как и любой другой язык - легаси и макароны с гавном
161 1677090
>>677078

я просто уточню, для остальных, чтобы понимали - дело не в инструменте(языке), дело в прослойке между клавиатурой и монитором
162 1677106
>>676652

Вот в этом отчасти и заключался вопрос: разве является нормой то, что по сути контракт в этом случае держится на честном слове?
163 1677219
>>666790

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



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

Да, является. Любой линтер или нормальная иде тебя в это носом ткнет потом.
Turbopascal30cover.jpg19 Кб, 252x393
165 1677251

>расширение go для vscode не работает с go modules


>gopls работает с go modules, но не подсказывает для неимпортированных пекеджей

166 1677253
>>677236

GoLand без расширений не ругнется на _ = doSomething()
167 1677273
Подходит ли этот язык для низкоуровневых вещей? Написание читов и вирусов. Понимаю, что звучит глупо, но все-таки хотелось бы услышать, что-то адекватное
168 1677331
>>677106
Ну, интерфесы везде так работают - 3 строки сигнатуры и 30 строк комментария как правильно его имплементировать. Тут хотя бы компилятор типы проверяет, а в питоне каком-нибуть - вообще все взаимодействие с фреймворками на договоренностях держится

>>677273

>Подходит ли этот язык для низкоуровневых вещей?


Да, относительно удобно с сисколами работать. Или можно заинкулдить c/c++ либу через CGO, но там свои нюансы

>Написание читов


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

>вирусов


Про это я еще меньше знаю, но думаю го может быть удобный в том, что у тебя на выходе может быть бинарь без каких-либо системных зависимостей, но с другой стороны - ты получаешь на выходе довольно жирный бинарь - порядка 2-х мегабайт на хелоуворлд.
169 1677336
>>677331
Большое спасибо за адекватный ответ)
170 1677393
>>677273
Чтобы использовать какую-то уязвимость, писать придется на языках, свойственных целевой платформе: файрфокс - жопаскрипт, реляционная бдшка - эскьюэл. Уязвимость вообще может проявляться как реакция на определенные данные, тогда тут вообще никакой язык.
171 1677726
Слайсы вместо векторов это такая особо форма извращения? Пиздос надо быть изобретательным для простых вещей: этому языку уже нужен boost.
172 1677778
>>677726
Чем слайс не вектор? Кроме убогого синтаксиса и отсутствия нормальных итераторов.
173 1677807
>>677253

Поэтому я про линтеры и написал, golang ci cli в полном фарше на все ругнется.
174 1677825
>>677393
Ясное дело, что для того чтобы сделать условную [no]SQL-инекцию - тебе нужно писать [no]SQL запрос. Тут же вопрос в другом - можно ли использовать го чтобы отправлять эти запросы в квери-параметрах к какому-нибуть серверу. Я думаю можно, но вирус я бы писал на расте, наверное
175 1677840
А много тут сидит разрабов на зарплате, или студентота одна паршивая? Я в разделе первый раз, если чо.
176 1677858
>>677778
к тому что обвязку надо писать всю самому, итератор вообще хуй знает как без арифметики указателей
177 1677864
>>677825

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


Для этого не то что го - баша с курлом хватит.
178 1677879
>>677825
Заебал, долбоеб, сам не знаешь чего хочешь
читай блять https://evrone.com/rob-pike-interview
179 1677921
>>677879
Я не тот, кто задавал оригинальный вопрос, я просто поделился своими мыслями на тему того, подходит ли го под указаные задачи
180 1677924
Поясните, нужно сделать такого рода вещь: нужно отсортировать данные таблицы по регексу. Подвох в том, что регекс вводится в поле, а значит просто eval нельзя.
181 1677931
>>677825
Да вроде ботов нормально на нем делать. У меня есть пара-тройка, прикидывал, как их примерно на нем переписать, можно. Но по идее вирусы могут работать на дырках в либах со стандартным соглашением о вызовах и традиционным подходом к памяти. В go это все отличается. А либ таких дохера, они везде. А вообще вся эта вредоносная хуета это очень это очень разные вещи могут быть. Длч чего-то подойдет, условно там сервис для винды я бы не стал на нем писать.
182 1677933
Суп гач. Я заебался и у меня люто горит пердак. Памахи! У меня несколько вопросов:

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

Ебать, это такие банальные вопросы, но у меня уже столько времени рвет от них жопу! Я просто хочу узнать, как правильно сделать, и что б пацаны не засмеяли. Я нахуй всё, устал.
183 1677935
>>677933
Алсо, что такое эти ваши гомодулес и какого хуя gopls до сих пор их не поддерживает?
Ладно, второе это риторический вопрос о наболевшем.
184 1677946
>>677924
https://play.golang.org/p/2rK6cRbsq82, если я правильно понял тебя
>>677933
Какую версию юзаешь?
>>677935

> что такое эти ваши гомодулес


Это то, что тебе сейчас как раз нужно

>какого хуя gopls до сих пор их не поддерживает?


Поддерживает, при том давно. Ты go mod init делал?
185 1677959
>>677946

> Поддерживает, при том давно. Ты go mod init делал?


Так это надо в каждой папке внутри моего проекта "hello-wrot" делать? GoLand просто не требует никаких дополнительных файлов.

> Какую версию юзаешь?


1.14

> Это то, что тебе сейчас как раз нужно


Ну и самый главный вопрос. Как мне тогда в пакете main получить доступ к функциям из вложенный "подпакетов"? Мне напрямую что ли импортировать надо
import "/home/$user/hello-wrot/nestedppackage"
и только потом nestedpackage.Func?

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

>Так это надо в каждой папке внутри моего проекта "hello-wrot" делать?


Только в корне

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


Путь к папке относительно go.mod файла

>Тут говорят надо ложить исходники в $GOPATH


Уже не нужно

>один из разрабов писал что типа WIP эта фича в репах к VSCode'у


Велком ту опенсорс
187 1677993
>>677962
Спасибо за ответы. АТДУШИ!

> Велком ту опенсорс


Ну попенсорс попенсорсом, но гугл не самая маленькам компания на земле.
188 1678023
Screenshot20200505205055.jpeg72 Кб, 959x343
189 1678027
Алсо, уже некоторое время читаю книжку по go, прошел туториал, написал какие-то там эхо, хелловорлды, вот это всё, но по какой-то чудесной причине я так ни разу еще и не наткнулся на тему "управление версиями". Как будто её намеренно обходят стороной. А тут читаю статью на хабре про гомомодули, а там повествование ведется в таком тоне, будто раньше как бы и не было вообще никакой системы управления версий.

Неужели так раньше это всё и работало?
>>678023
Спасибо, сейчас и это почитаю.
190 1678053
>>677946
спасибо, просто не знал про такие возможности stdlib
191 1678104
Блядь, я чувствую себя дауном. Неужели я так многого прошу? Как, блядь, КАК мне разбить мой говнокод на несколько вложенных папок????????

Че в этот раз-то блядь не так????
192 1678122
>>678104
Покажи go.mod
Screenshot20200505215032.jpeg24 Кб, 856x273
193 1678127
194 1678138
>>678127
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.
195 1678146
>>678138
Я это читал, но это же какой-то сюр! Я не могу свое приложение по папкам раскидать? Мне для каждой папки надо реп заводить что ли?
196 1678149
>>678146
Для корня проекта формально нужен репозиторий. Можешь написать какой-нибудь домен перед именем модуля, должно прокатить. Но проще сделать приватную репу на гитхабе, они сейчас все равно безлимитные.
197 1678150
>>678149
Я даже хз как на это реагировать, если честно. Ну, типа язык, сам компилятор принуждает меня заводить реп хотя я еще даже ничего не начал писать.
Большое спасибо за ответы, конечно, но типа как вообще сообщество с этим справляется? Это норм практика и я один такой неандерталец с этого бомблю?
Или это тырпрайс сектор такой сурьёзный?
198 1678155
>>678150
Ну да, гитхаб, семвер, ответственность перед сообществом.
199 1678291
>>678027

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


Да, все так. Модули появились относительно недавно, стабильную версию модулей вообще только в 1.14 (текущая версия) ввели. До этого все держалось на соглашении о том, что если меняеться сигнатура/поведение - нужно менять import path, но это не работало и сначала появился вендоринг, а затем - модули.
>>678053
Там довольно много всего - не как в питоне, конечно, но основное есть. Если бы я делал язык - я много чего туда бы не ложил из того что там есть.
200 1678318
>>678150

> хз как на это реагировать, если честно


Это ощущение не исчезнет, в пщ всё сделано вот так вот. Здесь на все вещи Единственный Правильный Взгляд, с которым ты обязан согласиться, чтобы на этом язычке хоть что-то писать.
image.png766 Кб, 1170x702
201 1678330
202 1678397
>>677726
>>677778

А зачем нужен итератор? Чем простой for range не устраивает?
203 1678447
В го же можно слепить генератор из дополнительной горутины и канала.
204 1678457
>>678150
Тебя же никто не заставляет создавать гитхаб репо и пушить туда код. Тебе достаточно просто написать туда гитхаб-лайк URL, относись к этому как указанию уникального названия репозитория
205 1678483
>>678330
Не знаешь до чего доебаться? Доебись до орфографии нейминга
206 1678504
>>678447
А ещё можно слепить дженерики из interface{}, эксепшены из хуй пойми чего, рекурсивные импорты из огромных пакетов и dependency injection из глобальных переменных. Просто произведение искусства какое-то, а не язык.
207 1678609
>>678504

>А ещё можно слепить дженерики из interface{}


нельзя

>эксепшены из хуй пойми чего


нельзя

>рекурсивные импорты из огромных пакетов


не знаю

>dependency injection из глобальных переменных


Зачем?
208 1678700
Кто из вас wasm использует на Go? Как оно на практике, в продакшене?
209 1678805
Делаю rest-бекенд для сайта. Как идеологически правильно делать аутентификацию: с jwt или по старинке с сессией в куках?
210 1678815
>>678805
Тут вопрос в том, хочешь ли ты хранить состояние авторизации на клиенте или на сервере
211 1678827
>>678815
Оно же в любом случае на сервере:
1. Если с куками, то в куке лежит айдишник сессии на сервере. Сервер нашел сессию - пользователь авторизован.
2. Если с токенами, то токен клиент передает в хедере. Токен есть и правильно расшифровывается - пользователь авторизован.
212 1678829
>>678827
Ну то есть аутентифицирован, а не авторизован.
213 1678854
>>678827
В первом случае сервер хранит состояние, а во втором - вся нужная информация храниться на клиенте, и для получения информации о правах доступа или чем-то подобном не нужно ходить лишний раз ходить на диск за этим
Screenshot20200506193038.jpeg21 Кб, 895x124
214 1678946
>>678318
Если так принято, то думаю я смогу смириться, хоть и больно. Человек ко всему привыкает.
>>678457
Следует не с того места начать учить язык и порой нужно много боли пройти, чтобы какие-то прописные истины понять/выучить. Но судя по оф. доке они и сами не рады стремаются своего решения. Ах, если бы я начал читать эту статью два месяца назад, а не туториал/книгу/пердолинг с тулзами.
215 1678997
>>678946
Начало изучения чего угодно - дело непростое в любом случае. А тут еще и молодой язык, который довольно активно развиваеться
216 1679027
>>678805

rest => stateless => состояние на сервере не храним и используем токены
217 1679036
>>679027
Stateless подразумевает отсутствие состояния на уровне протокола (например, у FTP и SSH состояние есть), с внутренним состоянием сервера это никак не связано.

мимо
218 1679044
>>679036

причем тут внутреннее состояние сервера, если я говорю про хранение состояния клиента на сервере?
stateless подразумевает отсутствие инфы о состоянии клиента
219 1679049
220 1679103
>>678997
>>678946

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

>>678149

а то в жаве не так
221 1679106
>>679044
Ок, даже в базе данных ничего теперь не буду хранить, а рест не кошерный получится.
222 1679110
>>678700
Скорее всего хуёво, у го жирный рантайм и его весь надо затолкать в васм. Тот случай когда раст или сишечка лучше.
223 1679111
>>679103

> а то в жаве не так


Не так. Репозиторий системы контроля версий там не нужен вообще, а не прибитый гвоздями к компилятору Git.
224 1679128
>>679110
Двачую, 40 лет пишу сайты на си.
225 1679133
>>679106
И в памяти тоже ничего не храни, по тому что тоже state
226 1679138
>>679106
~2MB для современной SPA это много, но не критично. Вопрос только в том, какой профит в сравнении с js/ts ты получаешь и стоит ли оно того (я думаю - нет)
227 1679160
>>679138
А как вам третий вариант - авторизацию вообще на балансер перенести?
228 1679166
>>679106
жирно слишком

>>679160
как это будет работать?
229 1679173
Нахуй вам сервер, когда P2P?
230 1679177
>>679173
Не взлетит, все равно нужен STUN/TURN Server
231 1679179
Заканчиваю голанг тур и немного в недоумении
Что еще почитать? И есть ли вообще то, о чем читать? Или это и есть весь язык, и я выучил го за пару вечеров?
232 1679184
>>679179

>Или это и есть весь язык, и я выучил го за пару вечеров?


В целом - да. Можешь еще https://habr.com/ru/company/mailru/blog/314804/ прочитать и идти пилить проекты
233 1679192
>>679166

>как это будет работать?


Техзадание написать? Ну вот просто мысль и все. А как это не будет работать в таком случае?

>>679179
У тебя в голове атоматически происходит исследование, как все, что ты уже знаешь и делал, соотносится с новоизучаемым языком. Надо попробовать что-то свое уже имеющееся переписать на этом языке. А так вообще да, апология Go в том числе в его простоте.
234 1679229
Получать длину и кап слайса процедурами это конечно сильно
235 1679231
>>679179
Effective go ещё почитай
236 1679233
>>679229
Ты ожидал чего-то другого от процедурного языка?
К этому можно относиться, как к sizeof - похоже на функцию, но на самом деле нет.
237 1679257
>>677090
Нет.
Дело в тех, кто код ревью не проводит или проводит сквозь пальцы.
Триллиарды долларов приносит не чистый код, а идея. Всем насрать на идеальный код, лишь бы это приносило много денег, имеем то, что имеем. Страдания 300к программистов никого не волнует
238 1679345
>>679233
Я не знаком с С (?), что там представляет из себя sizeof? Макрос?
239 1679373
>>679345
Нет, это отдельный кейворд, встроенный в сам язык. Как while или if.
240 1679420
>>679179

Проблемы начинаются, когда у тебя в апишке становится больше трех-четырех доменов, тебе надо это деплоить в разные поды на кубере, рефакторить всю лапшу в солид и чистую архитектуру, вот за это уже деньги платят, а не за то что ты умеешь реквест разбирать и в базу ходить.
241 1679446
>>679229
Ты видишь принципиальную разницу от того, как получать длину слайса?
image.png70 Кб, 833x710
242 1679453
>>662278

>Джанга 3 вон уже прикручивает асинхронность чуть-по-чуть.


В смысле? Давно уже все прикручено.
https://channels.readthedocs.io/en/latest/introduction.html

>>662157

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


Ты че там куришь? Node.js в однопоточном режиме давно уже быстрее джавы.
sage 243 1679660
>>679453

>В смысле? Давно уже все прикручено.


Когда будут асинхронные вьюшки и запросы к бд, тогда и приходите.
244 1679722
>>679660

>Когда будут асинхронные вьюшки и запросы к бд, тогда и приходите.


Мне вообще пихуй, от пистона отказался 2 года назад.
245 1679849
>>679722
А чего тогда начал про питон писать?
246 1680063
В продолжении питона. Есть какая-нибудь хуйня, чтоб для питонистов/перловиков/Сишников было? Либо просто быстрый экскурс, без этой хуйни, что "у нас пишется x int, а в сиподобных языках int x" или "float32 и float64 - не одно и тоже".
247 1680077
>>680063
Книга Кернигана
По-быстрому - tour of go

Что означает "для питонистов"? Типа питонисты или перловики такие ущербные, что им надо по-особому объяснять? Всегда было, что хочешь выучить язык - читаешь учебник и пишешь код. Врядли тебе надо выучить го прям на завтра, пару-тройку недель для ознакомления можно потратить.
248 1680096
>>680063
Тупо просматриваешь по абзацу за секунду и читаешь внимательно, если заметил что-то незнакомое. В отличие от вкатывальщиков, которым надо мало того что читать внимательно всегда, так ещё и сидеть и обдумывать прочитанное.
249 1680110
>>679453

> Ты че там куришь? Node.js в однопоточном режиме давно уже быстрее джавы.


Надо смотреть бенчмарки, полюбому как обычно на джаве наговнокодили или настроили вм неправильно.
Это невозможно хотя бы из-за особенностей jit'а на джаве и в ноде.
250 1680119
>>680110

>Маняврирует

251 1680164
>>680110
>>680119
Синтетические бенчи вообще нихуя не значат. Остается только субъективно-эмперически выводить. И мой опыт говорит, что беку скорость исполнения как таковая вообще не критична. Будь все это важно не доминировали бы всякие питоны и пыхи на беке.
мимо-шел
252 1680557
253 1680566
>>680164
Есть разные задачи и разные требования к производительности - например, кому-то нормально использовать по воркеру на соединение, а у кого-то есть задача держать 10к соединений на машину. При этом в этом случае ты упираешься не в скорость обработки (все равно бекенд значительную часть времени тупо ждет ответа от базы или другого сервиса), а в количество памяти, которое тебе нужно на обработку одного запроса
254 1680596
$ 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
255 1680605
>>680596
Это просто бинарник, что он будет у тебя в go tool делать?
256 1680654
>>680596
Тебе нужен либо ls $(go env GOPATH)/bin либо ls $(go env GOBIN)
257 1680662
>>680605
>>680654
Почему тогда пишут, ставьте так и запускайте go tool tour?
258 1680669
>>680662
Просто добавь в $PATH и не еби мозгу
259 1680675
>>680662
Где такое написано?

>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)/
Снимок экрана 2020-05-08 в 13.19.03.png72 Кб, 1368x414
260 1680697
>>680675
Понятно.
261 1680719
>>680697
Нашел какой-то говносайт.
262 1680737
>>680719
https://tour.golang.org/welcome/2
Жми на русский и читай следующую страницу
263 1680744
посоветуйте, что бы почитать для понимания работы с http в го? перебираюсь из пыхи, где делаешь запрос и затем подключение отваливается вместе с отработавшим процессом и для меня в новизну штуки вроде переиспользования подключений, с которыми в го принято работать более явно
264 1680805
>>680744

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


Это фишка не го, а http/2.
265 1680814
>>680805
Даже на ipv6 всем не настолько похуй, насколько на http/2.
266 1680827
>>680814
Привет, ты что охуел.
267 1680878
>>680805
Keep-Alive что ли? Оно чуть ли не с HTTP 1.0 есть.
268 1681424
>>680814
grpc, lul

>>680878
1.1, пёс

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

Как сделать так, чтобы сервер не падал при дисконекте клиента и как правильно в таком случае дисконектиться клиенту?
270 1682218
Тут минималистичный скриптовый язык с гошным синтаксисом подогнали https://habr.com/ru/post/501002/
Альтернатива lua/wren.
271 1682274
>>682218

> интерпретируемый


> статическая типизация


Любопытно, ни разу эти параметры не видел вместе.
272 1682278
>>1682256 (OP)
Когда прочитал Crafting Interpreters и побежал делать новый V
273 1682280
>>682278

Промахнулся

>>682218
274 1682288
>>682278

> Crafting Interpreters


Спасибо за годноту. Книгу дракона я не осилил, но рекурсивный спуск понял и пишу велосипеды в стол.

мимо
275 1683444
Гач подскажи, а го для консольных утилит хороший язык?
Вот мне сейчас нужно кое что написать чтобы тестовыми данными заполнить БД, и я думаю писать это на го или питоне.

Не, не так:

У меня прям какие-то предрассудки, что компилируемые языки не должны использоваться для мелких несерьезных задач. Отговори меня, двачик!
276 1683445
>>683444
Спасибо гач. Пока тебе писал уже для себя решил, что в моей конкретной задаче лучше будет использовать go. Но если ты как-то это это прокомментируешь буду рад.
277 1683466
>>683444
>>683445
Если нужно набросать какой-нибудь одноразовый скрипт, а долго сидеть и вникать не охота, бери то, что лучше знаешь и на чём писать будет удобнее. Простые скрипты, как правило, пишутся быстрее, но вот допустим знаешь ты Go в совершенстве, а питона не знаешь вообще, тогда быстрее напишешь на Go, чем выучишь питон. И наоборот.
278 1683485
>>683466
Спасибо анончик. Тоже так подумал.
279 1683562
>>661813 (OP)
А чего это у меня тред как удаленый показывается?
280 1683577
>>683562
Сборщик мусора сработал
281 1683586
>>683562
Это баг двоща. И ладно бы треды просто были зачёркнутые, так они ещё и исчезают из избранного через время, блеать.
282 1683588
>>683586
Какой-то ебанутый баг. В тред захожу, он ведет на 404 со страницей архива. Через другой браузер заходит. Вопрос выше написал через страницу со списком всех тредов.
283 1683596
>>683588
Причём бывает, что и открытие в приватной вкладке не помогает, только другой браузер. Как будто на сервере прямо в коде указано, что при каких-то условиях нужно перенаправлять на архив именно для такого IP и именно для такого-то браузера.
284 1683615
Почему такая ебанутая работа с интерфейсами? На уровне объявления переменной даем знать, что нужно использовать интерфейс. У нас две структуры могут или не могут поддерживать методы интерфейса, в зависимости от того, как укажем. Нахуй так делать?
285 1683618
>>683615
Уже обсуждали, и не раз. А разгадка проста: goвно
286 1683628
>>683615

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


Покажи пример
287 1683634
>>683628
Как я понял, он хочет чтобы надо было явно указывать, типа
type User struct implements Marshaller {
}
mincl5.jpg41 Кб, 600x600
288 1683635
>>683615
до сих пор забавляют ребята, которые не разобрались и обвиняют в этом мир вокруг, компилятор же забагованный и тебя по-фану дрочит
289 1684421
А что с тредом? Совсем умер? Все на раст перешли?
У меня тут вопрос по модулям.
290 1684464
>>684421
Во многих тредах сейчас затишье, а этот и так не был особо активным.
Пиши вопрос про модули, может кто-то ответит.
291 1684498
>>684464
Собственно, почитал о модулях. Вроде аж три варианта работы. И что теперь не нужно проект держать на диске ака github.org/huila/proekt
Только сама работа не совсем понятна. Ожидал как в питоне чтоб было, requirements содержит имя и номер версии. А вычитал какую-то мудоту. Меняешь мажорную версию - меняешь имя импорта. Да и вообще без тегов - никуда. И помещать теперь строго вне GOPATH. Пиздец какой-то.
292 1684499
>>684498
А вопрос-то. Как блять с этим работать нормально?
293 1684507
>>684499
Нормально -- go mod, остальное считай DEPRICATED
294 1684513
>>684498

> github.org/huila/proekt


Внимание! Найден гитхаб Роба Пайка!
295 1684521
>>684498

> содержит имя и номер версии


В go.mod так же. Почитай про модули в Go.

> Меняешь мажорную версию - меняешь имя импорта.


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

> без тегов - никуда.


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

> И помещать теперь строго вне GOPATH.


Воспринимай это как питоний site-packages, то есть как некий общесистемный локальный репозиторий, о котором знать ничего не надо, а система управления зависимостями сам всё притащит. Хотя это больше на жабий Maven похоже.
15874918732800.png1,2 Мб, 1200x880
296 1685454
Анончик, помоги советом. Последние полтора года работаю C++ в основном формошлепство с примесью алгоритмов на Qt и QML, получаю 80к на руки прогером, при этом в команде много бэкендеров, которые пишут микросервисы на голанге. По работе иногда приходилось смотреть их код, и в принципе ничего сверхъестественного и сложного не увидел. Конечно если копнуть глубже, то разумеется найду кучу подводных камней, хотя их должно быть на порядок меньше, чем в плюсах.
Так вот, переходя к делу. Планирую менять работу, и стою сейчас на распутье. Пока я молодой недомиддл с синдромом самозванца, и могу менять рабочий стек без особой потери в зарплате. И чем дальше я смотрю в сторону плюсов, тем меньше мне хочется истязать себя move-семантикой, template наркоманией, компайл-тайм вычислениями, UB, boost'ом и т.д. Хочется уйти в тихую гавань с достойной зарплатой и спокойно пилить микросервисы, ходить в базу и запихивать это все в докер.
Так вот, сам вопрос: стоит ли мне припиздеть в резюме о своем опыте бэка на Go, чтобы попытаться вкатиться к вам? И что нужно знать для успешной коммерческой разработки? Пока вижу такой стек для миддла: Postgre, gRPC, protobuf, линуксы с докерами; задрочить, чтобы от зубов отскакивало: SQL, HTTP, REST, горутины, каналы, базовые Go-пакеты, ну и умение вертеть деревья маркером на доске. Что-нибудь еще не забыл?
297 1685461
>>685454

>Что-нибудь еще не забыл?


>SQL, HTTP, REST


Имплементация всего этого на Go, то есть драйвера, роутеры и тд
Еще дополнительно: тесты в go, go mod, golang project struct, dependency injection.

Для начала ты напиши хотя бы один небольшой проект на Go, чтобы понимать, как там все устроено
298 1685704
>>685454

>стоит ли мне припиздеть в резюме о своем опыте бэка на Go


Ясен пень стоит. Никто не проверит. Я сам также писал на с++, потом перекотился в питюн. Для этого по вечерам его изучал.

>REST


Фи, это шо? GraphQL рулет.
299 1685854
Гоч можно платину?
Какие задачи для го вообще являются основными? Начал учить, потому что хочу в тырпрайс, но не хочу жабу (возможно зря), и быть немного ближе к железу после питона.
Я правильно сделал выбор?
300 1685896
>>685854

>быть немного ближе к железу


неверно. Хоть Го и похож на Си, но для задач с железом применяется редко

>Какие задачи для го вообще являются основными?


Бэкенд для всяких вебсервисов
301 1686884
>>685854
Лучше иди в жабу. На го микросервисошлёпство, на жяве сириус бизнес.
302 1686930
>>686884
Будет клепать микросервисы на жабе.
303 1687163
Гошники, за что вы любите Go?
304 1687169
>>687163
За неимением большого ума.
305 1687223
>>687169
Я серьезно, мне интересно, почему он популярен
306 1687233
>>687163
мне нравится, что не надо ебаться с установкой прокси и с модельками для парсинга ответов жсона(как в жабе)

мимо автомакака
307 1687253
>>687233
В Джаве тоже есть рефлексия, и наверняка есть библиотеки для парсинга джсонов в объекты (не джавист).
308 1687257
>>687253
есть либы для парсинга, но приходится создавать +100500 классов, если в ответе есть вложенности(даже учитывая, что есть конвертеры json2pojo, все равно мегауныло)
309 1687275
>>687257
Никто не заставляет, можно спарсить в мапу. Но никакой валидации, да и неудобно.
310 1687279
>>687163
Простой читаемый код, что проекта, что библиотек.
Хорошая конкурентная модель, без двуцветных функций асинка.
311 1687294
>>685896
Бусинес?
>>686884
Да вот если честно продумываю. Жаба все таки уже очень долго живёт, сейчас ей вторую жизнь дали в лице котлина. Много бородатых книг для неё написано. А я сейчас репу чешу и думаю почему я вдруг решил го учить.

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

Видимо после окончания моего текущего проекта на го надо будет попробовать сделать что-то и на котлине.
312 1687296
>>687294

>надо будет попробовать сделать что-то и на котлине.


так котлин же сейчас только на андроиде? в тырпрайзе жаба+спринг
313 1687299
>>687296
Да говорят же что это те же яйца только в профиль. Ну в общем я всерьёз хотел с питона на го укатиться, но теперь задумался. Обычно такие думы затягиваются надолго.
314 1687571
315 1687607
>>687571
Простейшая же задача.
Хотел написать решение, но задача просто элементарная, чтобы с такой помогать, сам решай
metaconf.png354 Кб, 1440x1271
316 1689197
16 мая | ONLINE
Backend meetup
Ruby, GO, Rust, Node.js, Python, Elixir

https://metaconf.net/backend-meetup-2020
317 1689435
>>687299
на го полторы вакании
не понимаю, зачем укатываться из пистона
318 1689732
>>689197

Че-то ну совсем такое себе, посмотрите лучше на митап от Go Yola и Golang Kazan, который 30го будет
319 1689826
>>661813 (OP)

>2


Это Андрей Малахов на пикче?
320 1689886
>>689435
Хочу в тырпрайс затеряться на большой галере. С такими целями наверняка надо было учить жабу.

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

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

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

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

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

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

Мне показалось, что написание кода на го отнимает меньше энергии чем написание не питоне. Хотя конечно я только начал.
321 1689887
>>689886
Да, repl'a питоновского конечно не хватает.
322 1689888
Там ещё кстати ozon набирает народ на бесплатное обучение с вероятностью последующего трудоустройства. Но чтобы только попасть на обучение нужно пройти тест и собеседование по Скайпу (вроде).
Вообще хочу попробовать. Хули нет?
ладно, прекращаю семенствовать
323 1689890
>>689888
Тоже записался на эту штуку
Задачки не особо сложные, похожи на задачи из бесплатного курса на степике. Только требования к оптимизации более жесткие
324 1689963
>>689886

>Python


>JS


>Бот для телеги


>Хочу ставить точку и шобы IDE всё писала за меня


Полный набор
325 1689981
>>689888
Ну бля
Только начал проходить курсы, и даже нет гитхаба, который нужно прицепить
326 1690017
>>689888
А нет ли вообще какого-то дайджеста программ по go? начал изучать на курсере, но вот такие программы - как манна небесная
327 1690052
>>689981
Там курс рассчитан на тех у кого уже есть опыт коммерческой разработки от года, насколько я знаю.
>>690017
Не знаю, вообще такие дайджесты публикуются в тематических пабликах вк, каналах тг, но я за этой хуйнёй не слежу. Может быть зря, конечно.
328 1690053
>>689963
Наверное только одному тебе смысл понятен.
329 1690188
>>689732

>Go Yola и Golang Kazan


А будет Go Barnaul Altayskiy Krai?
330 1690241
Очень простая задача в одну строку на плюсах вылилась в велосипедостроение на го. Как найти разность множеств из объектов?
331 1690251
>>690241
Берешь элемент первого множества и делаешь какой-нибудь reflect.DeepEqual этого элемента со всеми элементами второго множества, если не было ни одного равенства, то аппендишь его в разницу.
332 1690272
>>689890
На каком языке решал? Быстро решил? Я че подвоха ищу.
333 1690341
Чет я проебал апдейты.
Проясните, что за новый пакет errors? Который умеет только Is и Unwrap?
Чо за хуйня? Где старый пакет (он же в стд был втащен, нет?) с функцией Wrap, который позволял добавить к ошибке метаинформацию?
Какого Х конфликтующее имя?
Как этим пользоваться?
335 1690367
>>690251
Решение несложное. Другое дело что однострочником это не сделать и приходится пилить двойные циклы или использовать мапу, если объекты хэшируются.

>>690341
Наверное путаешь стандартный `errors` с `github.com/pkg/errors`. Оттуда кое-какие фичи перетащили в стд.
336 1690385
>>689963
Ого, ты пишешь все полностью сам, ты такой ПРОГРАММИСТ!
337 1690388
>>690367
Ну так, гошники вербозность и ограниченность называют простотой, с добрым утром.
338 1690400
Привет
Позволю себе спросить. Я очередной вкатыш, но у меня не горит 1- МЕСЯЦА ВКАТИТЬСЯ. Сейчас работаю по другую сторону - пишу тз для погомистов, анализирую и все такое. С зп все заебись, и ооооочень не хочется вкатываться на зп джуна.
Я понимаю, что вообще охуели эти вкатыши, но есть ли возможность сидя дома, не меняя работу (на фриланс не надеюсь), дорасти до уровня миддила из дома?
Других языков море, вакансий больше, но не хочу с триллиардом народу конкурировать.

ps почему в США, Англии и прочих странах - go самый востребованный? Я так понимаю, что речь не про джунов, а про топовых помидоров и тимлидов?
Смотивировал анон выше, который писал, что джунов найти не могут в РФ
339 1690406
>>690400

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


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

>>690400

>почему в США, Англии и прочих странах - go самый востребованный?


Не самый востребованный, а самый высокооплачиваемый. Скорее всего, потому что го хорошо подошел на роль языка для следующих целей:
1) Написания прототипов для стартапов
2) Переписывание легаси на php/python/java под микросервисы и тд.
340 1690410
>>690272

>курс озона по голангу


>курс на степике по голангу


>тред по голангу



>На каком языке решал?


Ну даже не знаю, что тебе ответить...
341 1690446
>>690406
Спасибо за ответ
Все выглядит, как кино "Вкатышам в го тут не место", да и вообще теперь нигде не место
342 1690457
>>690446

Вкатыши нужны
- большим компаниям, у которых есть ресурсы, что бы научить пол себя и поездить на шее, пока не опомнится
- галерам. Можно платить мизер, а продавать как ммдлов.
- маленьким провинциальным компаниям. Потому что нет у них выбора, и приходится работать с теми, кто есть
343 1690491
>>690457

>- маленьким провинциальным компаниям. Потому что нет у них выбора, и приходится работать с теми, кто есть


Спорный момент, кстати. В моей мухосрани каждый год выпускников около-айтишных шараг больше чем рабочих мест, и по этому даже с образованием многие идут катриджи заправлять. А вкатышей даже для этого не берут. Я так и не нашел работу и решил понаехать в ДС чтобы вкатиться
344 1690510
>>690491

Выпускники вузов вообще никуя не знают.
Вкатыши после курсов хотя бы формошлепить умеют и с какой стороны гит держать.
345 1690511
>>690457
Спасибо еще раз
Бля, просто крик души - не выбрал погромирование в юношестве, и теперь в 27 уже хуй сменишь, либо только на зп джуна (и нет, это не выебон и не высокое самонение)
346 1690547
>>690510
Не буду настаивать, я и большинство моих знакомых - как раз таки из команды вкатышей
347 1690563
>>690410
Да ладно, там же на любом можно. Просто поинтересовался.
Все задачи с первого раза решил? Я чёт так волнуюсь как будто бабу первый раз за руку взял. Чёт я нежный какой-то слишком.
348 1690591
>>690563
У тебя есть гит с работами?
349 1690625
>>690511
Ну так и есть.
Да и нахуя менять, если ты и так как бизнес-аналитик работаешь? Зарплата у тебя уже неплохая должна быть.

Если ты думаешь, что программирование - это супер классно и интересно - то это неправда.
Если ради денег - то оно того не стоит, нервы дороже.
350 1690630
>>690625
с зп проблем нет - около 180, хотя я знаю, что для дс это ничто лол
я хочу завести трактор, если честно, а завести его, когда ты ба - это забей, нужно MBA и прочую шляпу
думал, мб go или ds (писал тз для обеих отделов)
ладно, спасибо, не хочу флудить в адекватном треде своими биопроблемами
351 1690634
>>690630

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

Ну попрогал кто-то лет десять.
Потом надо либо в архитекторы,где ба больше программирования.
Либо в менеджеры.
352 1690635
>>690630

В мск не все сеньеры 180 имеют.
353 1690641
>>690630
Свободные тракторы для программистов уже давно прикрылись.
Для переката нужен практически топ корпоративный уровень, позаёбистее MBA.
354 1690687
>>690641
шутка?
регулярно слышу истории успеха от коллег, которые имеют 2+ года опыта языкнейм и имеют офферы из европы
>>690635
да, охуенно вам
355 1690713
>>690687
2+ года без опыта в смежной сфере и вышки?
Кто-то порвал очко и выгрыз оффер.
Плюс Европа разная и для полноценного переката нужно продолжать хуярить N лет не перегорая.
356 1690716
>>690591
Да и веб макакой полтора года отработал.
357 1690735
>>690713
2+ года опыта разработки имею ввиду
358 1690879
>>690630
Так уже уже 300кк/секунду, ты мифическое божество из легенд для всего контингента доски.
typical Go programmer talks about Go techniques.webm4,4 Мб, webm,
842x440, 1:08
359 1691048
Видео для следующего ОП-поста.
360 1691059
>>691048
Что это за хуйня?
361 1691088
>>691059
Палка для остановки сращивания вагины из отрезанных машонки и члена.
362 1691102
>>691048
Хорошо, когда программирование приносит удовольствие.
364 1691230
>>690591
Бля а я вот нихуя третье не могу 6й тест пройти.
365 1691312
>>691127
Пиздец. Я бы сразу ушёл с этой конфы.
366 1691323
>>691312
На других конфах котлин, так что лучше уж эта.
15380650650340.png469 Кб, 453x604
367 1691430
Анончик, расскажи немного про архитектуру и прочие бест практисес. Вот я решил сделать простенький 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 существует подобная волшебная таблетка?
14923694982960.jpg61 Кб, 600x516
368 1691435
369 1691514
>>691430

>дочерних классов


Туда ли ты зашел!

>Как мне ходить в эту базу из того же httpServer?


А как база данных и хттп-сервер связаны? В базу ходят из хэндлеров и юзеры либы сами решают как они получают подключение к бд. Ты в своем сервере предоставляешь только инфу про запрос, респонс и, возможно, контекст.
370 1691521
>>691435
Проорал от души, /б/рат, поднял мне сегодня на весь день настроение

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

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

Я бы порекоммендовал тебе посмотреть в сторону инверсии зависимостей и инъекции зависимостей гугл, кстати недавно сделали DI-фреймворк wire
371 1691538
>>691230
Не могу решить задание E (два канала) падает на 1 же тесте c
Wrong Answer

>>689890
Что за курс?
372 1691554
>>691538

стремно, что сообщений об ошибках или наборов данных, на которых тест зафейлился, там никаких нет, непонятно, куда копать - локально-то все работает
373 1691560
>>691538
А сколько в F этапов? С какого раза прошёл? Я уже 15 попыток сделал на 9 застрял.
374 1691564
>>691560
>>691554
Если ты один анон.
В F 9 этапов, у меня тоже много падало на 9 из за нехватки памяти.

Дай контакт какой-нибудь, скооперируемся. У меня на локальной машине тоже все работает (я про задание E), а отправка не проходит ни 1 теста.
375 1691565
>>691564

Не один, но скооперироваться готов. tobi`I=asbecsANUSyande%KMxPUNCTUMrZ#tu.
15151715458620.jpg32 Кб, 557x604
376 1691568
>>691514
Захожу я с браузера например на "localhost:8080/info/id123", на что роутер вызывает соответствующий хэндлер, в котором я хочу выдать инфу (попутно подергав БД) о продукте 123 через io.WriteString.

>предоставляешь только инфу про запрос, респонс и, возможно, контекст


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

>func(w http.ResponseWriter, r ✫http.Request)


Тогда сразу возникает другой вопрос. А как тогда роутер выводит те же коды 200/400? Ему же необходимо знать о состоянии сервера, внутренней логики и т.д. То есть хэндлеру все равно для этого нужно подергать методы у других структур приложения, о которых он (согласно сигнатуре) ничего не знает.
пойду дальше проводить ликбез
>>691521

>инверсии зависимостей и инъекции зависимостей


То что нужно, спасибо!
377 1691572
>>691564
Не один, но можно в телеге скооперироваться.
anH:Konymous.deliveryANUSyX+7aPUNCTUMrj^|u
378 1691649
>>691568

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


Напрямую хттп-сервер не должен знать о каких-то базах данных и т.п., он спрятан за своим пакетом и делает свое маленькое дело. Т.е. хардкодить какой-то стор внутри структуры httpServer не вариант. Какие-то доп. структуры можно в контексте передавать, можно создать структуру с внедренными ссылками на внешние ресурсы и над ней хттп-хэндлеры пилить, можно вообще забить на первых порах и глобальный пулл соединений юзать.
379 1691655
>>691435
Это Единственный Правильный Способ™© написания go кода, кстати
380 1691657
>>689890

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


Подожди, тебе уже задачи выдали? Я вчера зарегался, но пока на почте - пусто
откуда-вы-лезете.jpg11 Кб, 221x228
381 1691666
>>691649

> Какие-то доп. структуры можно в контексте передавать

382 1691669
>>691666
Проиграл. А что, нельзя?
земля-тебе-пухом.jpg6 Кб, 224x225
383 1691685
>>691669

Explicit is better than implicit
384 1691711
>>691564
Хуй с ним, не кооперируйтесь со мной. Скажите хоть, чтобы память оптимизировать файл по частям читали или алгоритм настраивали? А то может я не в ту сторону иду
385 1691721
>>691430
Создаешь три уровня: сервер, контроллер, база
Сервер - это хендлеры, там обрабатываешь инпут, проводишь валидацию.
Дальше вызываешь метод контроллера. В контроллере делаешь обработку данных, вызываешь методы из базы
В базе у тебя методы только для доступа в базу и ничего большего.
Связь между уровнями строишь через интерфейсы. То есть, у тебя должен быть интерфейс базы и его реализация. Твой контроллер будет зависеть от интерфейса базы.

А вообще погугли Clean architecture, Hexagonal architecture, DDD architecture
mad-capitan.jpg157 Кб, 821x500
386 1691744
387 1691749
>>691711
написал на почту
388 1691816
>>691685
Гвидо ван Россум, ты не в тот трэд зашел.
389 1691818
Эй, гошники, какого хуя структуры не копируются? Неужели идиоматичным является написания метода Copy для любой поебени? Щас короче искал 15 минут баг из-за того что присвоил структуру..
390 1691824
>>691818
Чёткие поцаны уже сгенерили DeepCopy, пока наливали себе кофе с печенькой
391 1691869
>>691818
Че-где не копируется? По дефолту все копируется, если ты не любитель посидеть на бутылке
392 1691900
>>691818
Ибо нехуй указатели хранить
393 1691935
>>691818

Структуры копируются с помощью =.
Незуй указатели везде пихать.
394 1691945
Ну-ка, подскажите мне.
Я добавил поддержку модулей через go mod init run
Теперь создаю каталог qwe и там файл asd.go
Импортируется он через "run/qwe". Тут мне уже непонятно. Он все файлы в один неймспейс помещает что-ли? А если я хочу такое же имя методу дать, но не могу, т.к. redeclared in this package, как пофиксить?
Ок, дальше. На том же уровне, что и main.go создаю файл a.go
Отлично, метод в файле доступен без импорта сразу, но только после сборки и запуска бинарника. Но при запуске go run main.go - хуй.
Что за хуйня?
395 1691953
>>691945

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

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

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

Либо, как белые люди, придерживался правила, что точки входа должны лежать в ./cmd/имя программы/main.go и там может лежать исключительно этот один main.go.
396 1691956
>>691953

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


В нормальных языках "папка" - часть неймспейса.

>А откуда го догадается, из какого файла ты хочешь функцию


Почему я не могу указать путь, включая имя файла, откуда я хочу импортировать?
397 1691985
>>691956

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

Не еби мозги, прочитай хотя бы одну книжку и тупые вопросы отпадут. Го на то и сделан простым, что бы не забивать голову.
Screen Shot 2020-05-17 at 18.46.07.png122 Кб, 1374x982
398 1691993
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.
399 1692007
>>691993
Ну так свой тест напиши и проверь, где она может упасть
400 1692012
>>692007
Неправильно выразился, цитирую условия

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

То есть РантаймЕррор может говорить о неправильном ответе, а не о падении во время выполнения.
401 1692021
>>692012
А они результаты в том же порядке ожидают что и инпут? Может второй вызов функции f был быстрее первого, например.
402 1692033
>>691993
Лучше скинь код на play.golang.org, а не скрины
403 1692067
>>692033
https://play.golang.org/p/chA1NGpA2Pr

Тут с моим примером подачи входных данных, реализовать нужно только функцию Merge2Channels
404 1692079
>>692067
Вот практически твой вариант
https://play.golang.org/p/0XLobZL0g_8
В output верные значения, но в неверном порядке
405 1692093
>>692079
Ну так у тебя функция случайное количество времени ждет, понятное дело что в output другой порядок будет, который зависит от времени исполнения f.
406 1692095
>>692079
А, я понял, ты предлагаешь ответ помещать в какую-нибудь структуру с задержкой чтобы ответы по порядку были?
407 1692111
>>692093
Из условия следует, что порядок не должен зависеть от времени f
>>692095
Я думаю, что ответы должны быть по порядку, но это должно решаться не задержкой
408 1692113
>>692095
Возможно, такой вариант прокатит
https://play.golang.org/p/j4hzuhXz1Uv
409 1692147
>>692113
Уже лучше, пишет WRONG ANSWER
Спасибо за идею, надо теперь добить. В чем дело хз
410 1692200
>>692113
>>692147
Слегка модернизировал твой код, все равно не проходит тесты.
Вынес в отдельную рутину процесс отправки из 2 новых каналов в конечный.
https://play.golang.org/p/sqAOWo7hfo7
411 1692210
>>691993
Что за контест?
412 1692219
>>692200
Тут сам ошибку сделал, нихера не синхронизированно работает опять же.

>>692113
В твоем варианте все хорошо, но получается все равно надо ждать пока выполняется "out <- <-f1 + <-f2" в конце каждого цикла.
413 1692231
В общем, лучший вариант, к которому я пришел, выглядит так.
https://play.golang.org/p/eeP4LRhcoiU

Все равно не проходит тест, в чем дело хз.
414 1692268
>>692231
Попробуй каналы буферизированными сделать, размером n. Тогда у тебя следующее вычисление f(x1) не будет ожидать предыдущего вычисления f(x2).
Грубо говоря забиваешь каналы сразу как можешь, а 3-я просто ждет и суммирует.
415 1692270
>>692231
Ты сам его пробовал запускать? Он же медленно работает
416 1692276
>>692231
А про функцию f(int) что-нибудь известно? Может там числодробилка, которая только от своего аргумента зависит, например (n!), где n мб достаточно большое. Тогда ее можно было бы закэшировать, как вариант.
417 1692289
>>692276
Нет, написано что она может ждать значение, либо долго производить вычисления

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

>>692268
Щас попробую, спасибо
418 1692311
>>692289
Дело не в таймаутах - можешь их даже убрать
419 1692316
Решил попробовать вкатиться в Go просто ради интереса и столкнулся с такой проблемой. Все учебники, которые я нарыл, делятся ровно на два типа. Первый - тебе пол часа объясняют как объявить переменную, глав полторы штуки и в них считай базовый синтаксис (golang-book). Второй - тебе вообще нихуя не объясняют и с первой же страницы начинают душить примерами кода по 20+ строк и веб серверами (Язык программирования Go Кернигана). А есть что-то для новичков?
420 1692325
>>692316
Ну так ЭЯзык программирования Go" вполне для новичков, насколько я помню
421 1692327
>>692316

> примерами кода по 20+ строк


Туда ли ты зашел.
После листинга кода идет его разбор как бы.
422 1692328
>>692316
>>692325
Открыл "Язык программирования Go"
Там действительно в первой главе накидали примеров - но уже со второй начинается учебник для новичков
423 1692330
>>692316
Керниган норм. Ты хоть содержание глянь. Эти примеры по 20 строк кода чисто часть первой главы "Учебник" или что-то такое. Блиц курс так сказать. После неё он каждую сущность разжевывает.
424 1692341
>>692328
>>692330
Действительно, но я уже вот только что сам это понял. Ну окей, буду пытаться
Хотя 99% загнусь очень быстро, у меня очень неприятное сочетание дикого интереса к программированию и непроходимой тупизны вкупе с совершенно неподходящим гуманитарным мышлением когда ты смотришь на массивы/срезы и просто активно не понимаешь о чём тут, перечитываешь по три раза и всё равно не понимаешь. По крайней мере так с golang-book было, мб здесь получше станет
425 1692345
>>692341
Это хуйня про гуманитарное мышление. С первого раза не поймешь. Нужно почитать, попрактиковать, поспать и это все постепенно начнет перевариваться.
426 1692355
>>692316

>что-то для новичков


pure C? go скорее игрушка для динозавров, которые не приняли мир ООП
427 1692357
>>691900
>>691935
мы в плюсах так делаем и нормально все
428 1692359
>>692355
ООП скорее игрушка для динозавров, которые не приняли мир ФП
429 1692361
>>692359
ФП скорее игрушка
sage 430 1692369
>>692359
Уходи.
431 1692601
>>692359
ФП скорее игрушка для динозавров, которые не приняли такие >>691048 игрушки
432 1692607
Есть ли какая-нибудь гошная они для постгри, которая похожа на mgo для использования постгри на носиквел манеру через jsonb?
433 1692633
>>692601
Двачу
434 1692646

> тред про максимально не функциональный язык


> обсуждение ФП

435 1692722
>>692646
ФП-сектанты придут и в тред асма
436 1693390
>>691564
Еще одного возьмете?
437 1693407
>>693390
да, конечно, пиши на почту - poshel6JhNahuiANUSpidx=5orPUNCTUMblyGqDa
438 1693476
>>664958
Для маминых саентистов это Haskell
439 1693510
>>693407
Да, охуенно
440 1694113
Есть такой файл:
50 тыщ строк а
50 тыщ строк б
50 тыщ строк ц
50 тыщ строк д

надо его переделать в csv из 50000 строк из 4 столбцов: а б ц д. Какой самый экономный способ сделать это?
441 1694125
>>694113
python
import pandas as pd ?
Зачем это делать на go ?
442 1694157
>>694125
понятно, учу питон
443 1694187
>>694125
>>694157
Два дебила, один хуйню посоветовал, второй обрадовался.
Один csv файл из разных можно хоть на питоне слепить, хоть на го, хоть на баше.
444 1694202
>>694113
сделаю за минуту в виме
445 1694227
446 1694231
>>694202
Я бы тоже в виме сделал. Да хоть в экселе. Но ему, возможно, надо это делать неоднократно и автоматизировать.

мимо
447 1694266
>>694202
Входной файл:
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
448 1694275
>>694266
Выделить строки на "a", сохранить в a.txt
...
Выделить строки на "d", сохранить в d.txt

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

мимо
image.png101 Кб, 641x936
449 1694580
450 1694663
А как подменять либы?
Вот есть приложение и библиотека.
Первое использует последнюю версию из мастера либы.
Нужно изменить либо и отладить эти изменения в приложении.
Как это сделать?
Если просто поменять код в вендоре или модулях, оно не собирается из-за проверки хэш сум(
451 1694681
>>694663
Делаешь коммит библиотеки
Делаешь go get с указанием коммита
452 1694735
>>694681

Так и делаю, но как-то оно кривым кажется.
image.png46 Кб, 594x654
453 1694901
454 1696268
>>694735
если у тебя го модули - то делай go mod replace на локальную директорию и играйся
15574493218870.jpg44 Кб, 720x479
455 1696440
Когда я объявляю интерфейс в качестве параметра функции, то я могу передать в него указатель на объект вместо передачи по значению? Объект удовлетворяет интерфейсу, имеет все методы и т.д. Я сперва попытался объявить ссылку на интерфейс, но компилятор и стаковерфлоу запретили мне это делать.
456 1696459
457 1696603
работаю го джуном 2 месяца, переношу сервисы с монги на постгресс, и пилю интеграционные тесты, когда уже 300к\с? пока получаю только 35к(мухосранск)
458 1696664
>>696603
С таким стартом никогда
459 1696688
>>696664

>С таким стартом никогда


поч?
460 1696704
>>696688
в дс перекатывайся
мимо
461 1696727
>>696268

А если запуск только в миникубе и докер не хочет брать папку рядом?
462 1696744
>>696603
>>696704

Двачую.

При переезде в мск, сразу сотня. Через пару лет 200.
Что бы 300, надо либо в удалёнку на запад.
Либо в лиды в России 300к неохотно платят, особенно в кризис.
463 1696752
>>696744
Эх, вот щас дочитаю книжку про го и вкачусь к вам. Хотя кого я обманываю, у меня уже давно синдром вечного студента, который всегда что-то учит(
464 1696766
>>696744
гоферы, пользуетесь ли вы какими-то репортерами для тестов? хочу что-то типа аллюра, чтоб генерился отчет и чтоб плагин к дженкнсу был))))
мимо автоматизатор на го
465 1696774
добавлю к >>696766
что нужно, для переката в го? бтв, курс от мейла на курсере норм? тем\знаний из него достаточно для джуна?
466 1696788
>>696774

В теории.

Го простой. Тут косяк, что к нему просят хорошее понимание многопоточности и микросервисную архитектуру.
467 1697507
1
468 1698419
Перекатываюсь из фронтенда. В бекенд на го. Какие подводные?
469 1698436
>>661813 (OP)
Сап. Возникла идея наклеплепать небольшой говно сайт.Нагрузка небольшая - пишу для себя. Т.к. нагрузка небольшая, а похепе нинужно встал выбор между Пистоном и Go. Выбрал Говно за статическую типизацию. Вопрос бывалым сайтостроителям: какой фреймворк выбрать? Конечно у Goвна богатая стандартная либа, но писать всё руками с нулями нет желания. Gorila топ за свои деньги?
Может Go вообще не подходит для этой цели?
И небольшой оффтоп: можете что-ниудь посоветовать для веб мордыпосле HTML,CSS,PureJS'а, полному нулю в формошлёпстве?
470 1698501
>>698436

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

На фронт, если не хочешь учить большую тройку, а надо что полегче, то svelte.
471 1698703
>>698436
По поводу бека соглашусь с >>698501, но можешь и горилу взять, если хочешь. Но важно понимать, что это все - узко специализированные библиотеки, и в го фреймворки не принято использовать (их и нет по факту). Если хочешь именно фреймворк - бери джангу, не прогадаешь.
Насчет фронтенда хочу дополнить, что если задача небольшая и не будет особо развиватся - можно попробовать остановиться на "html/template" + Bootstrap
472 1698729
>>698501

>На фронт, если не хочешь учить большую тройку, а надо что полегче, то svelte.


90% реакта учится за пару дней (из которых первая половина первого дня - синтаксис es6, а вторая половина второго - понимание того, как теперь это все запустить). Потом по желанию всякие хуки-хуюки и тайпскрипт, но и без них уже все хорошо пишется.
473 1699362
ну шо пачаны, удалось ли хоть кому нибудь E 2 канала сделать? вангую у них тест кривой
475 1699392
>>699368
Непривычный синтаксис без <угловых, скобок>.
476 1699439
>>699392
Да, а самое интересное начинаеться для дженерик-методов с несколькими возвращаемыми значениями:

func (object Object) MethodName(type T) (arg []T) (result []string, err error) {...}
477 1699484
>>699368
И в какой версии это ждать?
478 1699493
>>699484
Во второй))0)0)))
479 1699499
>>699493
Разве дженерики сломают обратную совместимость? Это будет уже головная боль всяких мейнтейнеров пакетов, переписывать все заново и тянуть легаси.
480 1699512
>>699499
Они ж не только дженерики добавляют, вдруг стандартную либу собираются переделать.
Будет, например, как в питоне 2.
481 1699535
>>698436
У го такой подход, что нет фреймворков, есть библиотеки-пакеты, которые решают конкретную задачу: роутинг, построение sql-запросов, маппинг данных и т.п. и фреймворк ты собираешь себе сам.
Это хорошо тогда, когда ты понимаешь, что тебе нужно и вообще есть опыт выстраивания архитектуры проекта.
А для новичков, особенно беглецов с языков с фреймворками, конечно, боль.
482 1699555
>>698436
Взял бы ноду с экспрессом да и всё, зачем тебе статическая типизация, если ты пишешь мелкий говносайт для себя?
483 1699565
>>699555
Если пишешь для себя, почему бы не написать на том, что нравится, а не на том, что быстро решит задачу?
484 1699609
>>696766
Пользуемся аллюром.
485 1699616
>>699362
Судя по чатику в телеге - нет
486 1699622
>>699609
но аллюр же не поддерживает го официально? я нашел неофициальную библиотеку, но там 15 звезд всего, вы ей пользуетесь?
487 1699730
>>699484
Пока - неизвесно. Более того, возможно изменение дизайна и оно будет как-то по другому работать.
>>699512
Они постояннно говорят, что не хотят повторять истории с питоном и большинство нововведений v2 будут и в ветке v1
488 1699747
>>699730

>Они постояннно говорят, что не хотят повторять истории с питоном и большинство нововведений v2 будут и в ветке v1


Типа если добавить обратно не совместимые изменения в версию 1.5 а не 2.0 то у нас будет не как в питоне?
489 1699781
>>699747
Нет, речь о том, чтобы обратносовместимые фичи добавлять и в 1.x ветку и после выхода 2.x, а не просто багфиксы/секюрити апдейты
image.png100 Кб, 261x193
490 1699793
>>699781
И как это облегчит миграцию?
В случае с питон 2/3 там хоть было ясно зачем мигрировать - новые фичи только в ветке 3. А тут у тебя есть все новые фичи, кроме тех что обратно не совместимы и получится пикрилейтед.
491 1699849
>>699793
Тут нужно понимать, что этот язык создавался и развивается в первую очередь для нужд гугла. Исходя из этого, как я думаю, они хотят сделать поддержку легаси максимально комфортной.

>И как это облегчит миграцию?


В том-то и суть, что - никак. Наоборот, необходимость в ней отпадет. Старые сервисы так и будут на go1
492 1699852
>>699849

>В том-то и суть, что - никак. Наоборот, необходимость в ней отпадет. Старые сервисы так и будут на go1


Но это же судьба python2, которую не хотят повторять.
493 1699872
>>699852
Python2 задепрекейтили и выкинули в начале этого года. F, кстати. А go1.x, на сколько я понимаю, будут суппортить вечно
494 1699972
>>699793
ХЗ что в вашем го, в питоне была проблема, что часть ключевых вещей сначала сделали искусственно несовместимыми. То есть просто невозможно было писать код на питон-2, чтобы он заработал на питон-3, и наоборот. Из-за этого миграция была очень сложной и от попыток просто отказывались.

Самый яркий пример - юникод строки. В питон-2 надо было писать
u"строка" (с префиксом u), а в питон-3 все строки были юникод, а префикс u был запрещён. И всё, при всём желании не сделаешь совместимость из-за самой-самой базовой вещи.

Спустя 4-5 лет в питон-3 всё-таки добавили префикс, и можно строки указывать без префикса, а можно с u-префиксом для совместимости, без разницы. Но много лет было потеряно.
495 1700012
>>699616
Что за чатик?
496 1700049
>>699872

>Python2 задепрекейтили и выкинули в начале этого года


Только всякие гуглы с амазонами сказали что будут поддерживать все равно.
image.png98 Кб, 1314x709
497 1700085
Кто-нибудь смог решить задачку от Озона? Мне кажется у них что-то не то с условиями/проверкой, ибо я хз что не так (локально все отлично работает)
https://play.golang.org/p/ZI4zJceVenU

p.s. если кто хочет сам попробовать https://contest.yandex.ru/contest/17728
498 1700122
>>700085
this >>699616
какой смысл в твоем использовании waitGroup?
499 1700138
>>700122
одновременно считать из двух каналов и получить результаты из f. А что там не так?
500 1700153
>>700138
при чтении из in1 in2 совершенно излишне

var x1, x2 int
x1 = <-in1
x2 = <-in2

go func(index int) {
501 1700163
>>700153
тут согласен, быстрее не отработает, если x2 раньше x1 получит. Но контест все-равно WA выдает. Есть ссылка на чат в телеге?
502 1700181
>>700049
Да, у них индусы за десятки килобаксов в месяц будут это все поддерживать. Но в остальных конторах ты либо вообще не найдешь разраба, готового в 2-м питоне ковыряться в 2020 тысячелетии, либо он запросит столько денег, что тебе дешевле все это будет переписать таки на 3-й
503 1700193

>D. Сложение чисел


Валюсь на 5-м тесте. У кого такое было? Как это решить или какой тест написать, чтобы он аналогичным был?
504 1700199
>>699849

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


С гуглом понятно, они пишут на своих собственных тулах и либах и им похер, А простым то сметным что делать?
Ты вот хочешь писать на Go 2, юзать дженерики и все такой, но твоя либа поддерживает только Go 1.х и ты сосешь бибу.

>>699849

>Наоборот, необходимость в ней отпадет. Старые сервисы так и будут на go1


Ну так это и есть путь Питон 2 в чистом виде. Сапортить его будут, но вечно тянуть две ветки кода - слишком сложно. Думаю лет 5 побекпортят фичи, а потом еще 5-10 багфиксы.
Все как у питончика.
505 1700200
>>700193
Заведи переменную для "остатка" и читай посимвольно с конца, складывая
506 1700211
А разве не будет в go 2 обратной совместимости с go 1 ?
507 1700223
508 1700920
>>699622
Так тесты-то на питоне, лул. Те тесты, которые на го, они штатными гошными средствами запускаются и это полное говно, а не средства
Не понял твой вопрос сходу
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 23 сентября 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски