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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Тред про лучший в мире язык GO №12 /go/ 1743955 В конец треда | Веб
Тред про лучший в мире язык GO №12 /go/
GO (а также Golang, Пщ или просто Го) — язык с зелеными потоками на уровне синтаксиса и приемлимой стандартной библиотекой. Так как делать пакеджи не очень сложно, гитхаб полон пакеджами для абсолютно всего и разного качества.

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

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

Сремся за отсутствие дженериков и ООП, смеемся с реализации дженериков в go2, спорим о том, какими скобочки должны быть на самом деле, пробрасываем ошибки, пытаемся понять почему код с каналами и многопоточностью работает медленнее, чем однопоточный код, находим по каждому крупному багу и косяку в языке пост в блоге го, который объясняет, что это фича, ищем обоснование, зачем дженерики не нужны, смеемся над оопэшниками, которые не могут жить без ексепшенов и DDD, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков

Прошлый тред успешно утонул в колее времени
Screenshot from 2020-07-08 00-21-09.png257 Кб, 1075x595
sage 2 1744488
наркоман ебучий
3 1744519
>>744488
У меня 11й тред почему-то здох нахуй и 404 возвращал. Шо поделать. Забей хуй, пусть утонет этот
4 1744521
>>743955 (OP)
Если смысл теперь в го, когда есть велеколепный раст?
5 1744532
>>744521
Зачем они оба, когда есть современный C++?
6 1744542
>>744532

>современный C++


Скажи в С++ до сих пор надо заголовочный файл создавать и в нем прототипы писать?
7 1744548
>>744542
В C++20 завезли модули, в популярных компиляторах уже реализовано.
А чем тебе хедеры не угодили? Разделение интерфейса и реализации практикуется много где.
8 1744549
>>744521
По расту вакансий раз в 10 меньше, да и язык сам по себе всратый. Го поприятнее будет.

>>744532
Отчасти двощую, как минимум плюсы лучше раста. С го думаю сравнивать не совсем корректно, немного разные области применения.
9 1744568
>>744542
но ведь прототипы документируют код лучше документации (которую никто не пишет)

Вот есть у меня огромный класс из какой-то либы на С++, открываю заголовок и вижу какие у него методы и члены. И какие аргументы нужны для методов и т.д.

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

Да, конечно есть всякое говно типа интерфейсов (но весь же код ими не обмажешь), диаграммы классов (а это лишние телодвижения), сворачивания блоков (которые еще надо свернуть).. Но это все не то
10 1744692
>>744568

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



> сворачивания блоков (которые еще надо свернуть)


Любое IDE позволяет свернуть/развернуть всю реализацию одним сочетанием клавиш.

>типа интерфейсов (но весь же код ими не обмажешь)


Так на интерфейсах всё и пишется. Правда их обычно в отдельный файл всё равно не выносят.
photo2020-07-0810-25-29.jpg101 Кб, 1196x1112
11 1744747
Goвно. Goвно никогда не меняется.
12 1744994
>>744549
>>744568
Ясно, понятно. Да, современный, ага ;)
13 1745008
>>744548
>>744568
В том и дело что пишут все на интерфейсах, как и сказали код сворачивается легко, но на самом деле в любой IDE есть навигатор, где все удобнее.

И да, документацию все равно надо писать, хедеры придумали не для документации, такой идиотский дизайн линковки там.
14 1745022
Я думаю, если решил вкатиться в 2020 на уровень С++, реально раст будет круче. Но если ты уже знаешь С++ то, конечно, нефиг вылизать из своего опыта.

Про го вообще можно не говорить, какое-то недоразумение.
15 1745037
>>745022
Кресты лучше раста хотя бы тем, что у них более развитая инфраструктура. Это если говорить не о недостатках самих языков как таковых, а о реальной разработке.
16 1745071
>>745037
Нашел чем мериться, сколько С++ существует, сколько раст, да еще в период перенасыщенности ЯП.

Дай такое же комьюнити расту, будет еще больше кода.
17 1745083
>>745071
Это, имхо, более объективная мера, чем сравнение сомнительных преимуществ самих языков. Каким бы хорошим язык ни был, без либ толку от него мало.
18 1745091
>>745083
Ну мы же живем в реальном мире. Нет такой физической возможности чтобы появился язык сразу со всем необходимым. Это даже глупо такое предъявлять конечно кроме прокси языков типа тайпскрипт, котлин, с++ совместимого в свое время с сями
19 1745365
>>745022
Сравниваешь тёплое с мягким
Каким бы говном говно ни было внутри самого себя, как язык это всё еще компилируемость + гц + пакет менежер + отличный конкуррент
15336363098303.mp4634 Кб, mp4,
1280x720, 0:04
20 1745405
Сап програмач. Я в го недавно, подскажите пожалуйста как лучше в го валидировать входящие json данные. Я посмотрел пакеты, которые доступны, самый популярный пакет, который я нашел - https://github.com/go-playground/validator он валидирует структуры , jsonschem'ы как я увидел не пользуются популярностью. В nodejs божественным @hapi/joi пользовался
21 1745611
>>744692

>Любое IDE позволяет свернуть/развернуть всю реализацию одним сочетанием клавиш.


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

>>744692

>Так на интерфейсах всё и пишется


Заебешься все обмазывать интерфейсами, особенно там где оно не надо и никакого наследования в принципе быть не может и не должно.
22 1745612
>>745008

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


это лишние телодвижения.

>>745008

>хедеры придумали не для документации


но юзают их для отделения определение от объявления. Поэтому программисты в сях придумали новый тип файла - .inc - когда определение не получается засунуть в c/cpp(особенно для шаблонов)
23 1745830
>>745612

>это лишние телодвижения.


А переключаться между заголовками и имплантацией - это не лишнее телодвижение?
24 1746453
Как кодить на го и не стать пидором? Я серьезно сейчас.
25 1746489
>>746453
Не надо его в попку совать, противный :)
26 1746524
>>745830

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


А между классом и его интерфейсом?

Заголовок пишется один раз и надолго
27 1746576
>>743955 (OP)
Аутисты, зачем вам 2 треда?
28 1746577
>>746576
Хорошего яп должно быть много.
29 1746817
>>746576
Один для тех кто использует interface{}, другой для тех кто использует кодогенерацию.
30 1747016
>>746817
И в обоих в основном постят те, у кого в языках есть дженерики или динамическая типизация.
31 1747135
>>747016
Чисто потыкать палкой, на этом всегда и жили треды по го.
32 1747597
Почему в язык не зашили такие базовые вещи, как pop/insert для срезов? Каждый раз писать append(list[:1], list[2:]...) малец хуево.
33 1747615
>>747597
append и delete - магические функции, нельзя написать их аналоги средствами самого го, с попами и инсертами наверное решили эту магию дальше не плодить.
34 1747641
>>747615
И еще вопросик. По ссылке передавая слайс и изменяя его будет примерно так
append((list)[:1], (list)[2:]...)
Не упрощается? Т.е. пробегал глазами по го туру и вроде было, что (*list) можно на просто list заменить, но ошибка
35 1747642
>>747641
Там звездочка перед list
image.png39 Кб, 676x323
36 1747800
Аноны, мне нужно создать windows service моего говнокода на golang, поискав, я увидел что все кончают от этой репы:
https://github.com/kardianos/service

Но я нихуя не вижу как именно нужно устанавливать go бинарь, через sc.exe?
image.png25 Кб, 739x431
37 1747879
Зачем нужны функции возвращающие функции?
Это все только для того чтобы переменную засейвить между вызовами?
Почему просто не сделать статическую переменную?
38 1747921
>>747879

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


Код модуля засрется.
39 1747978
>>747879

> Зачем нужны функции возвращающие функции


Чтобы вернуть функцию из функции, дебил.
40 1748119
>>747921

> Код модуля засрется.


Ага, поэтому лучше сделать глобальную переменную.
41 1748249
Насколько же в говне охуенный конкурент пиздец просто
Как будто пишу на скресте самого лучшего из жса с хаскелем
42 1749113
Поясните за стек технологий, я за пару месяцев освоил гошечку до уровня "переписал всю фласкоалхемопарашу", ноль фреймворков, горутинами жонглирую, ну думаю, всё, я у мамы микропинусный специалист, пошёл смотреть вакансии и охерел, в каждой требуется знать по три сервиса для логов, по три сервиса для мониторинга, по три брокера сообщений, по три носкл-базы, причём в каждой вакансии новый набор, и каждая первая требует десятилетнего синьорства, как вообще в эту область вкатываться?
43 1749267
>>749113
Выслеживаешь го-сеньора, убиваешь его, переодеваешься в его одежду, ходишь вместо него на работу.
44 1749529
>>748249
Попробуй элексир
45 1750087
>>749113
На самом деле там не требуется по три всего и ты можешь спокойно идти на собеседование. Подобные требования сделаны для отсеивания совсем долбаебов (видимо ты входишь в их число, раз тебя это тормознуло).

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

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

В голэнге намного сложнее джуна брать, ибо его обучать придется год. А, напирмер, пхп или питониста можно за пару месяцев подготовить, соответственно и требования почти нулевые (опять же не нужно смотреть что в резюме требуют тысячу технологий).
46 1750146
>>747879

> Зачем нужны функции возвращающие функции?



Потому что добавь в функцию, возвращающую функцию, два-три параметра и представь себе комбинаторный взрыв если у тебя вместо генератора придется писать функцию на каждую комбинацию этих параметров.
47 1753401
Суп гач. Дочитываю "Язык программирования Го". Встретился на охуенную функцию, которой мне дико не хватает после возможностей питона залезть своими руками в любой класс, даже в "__приватные" поля.

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

Функция выводит все содержимое любого типа любой вложенности даже приватных полей (пиркил 2).

Спасибо
48 1753600
>>750087
Почему такая разница между вкатом в питон и го? Или он уже не такой простой?
49 1753614
>>753401
То, что функцию нельзя вызвать извне, не просто так сделано, наверное? И инкапсуляцию, наверное, не просто так придумали?
Вообще, инструмент такой есть. Называется Ctrl-C Ctrl-V
.

http://www.alangpierce.com/blog/2016/03/17/adventures-in-go-accessing-unexported-functions/
50 1753977
>>753600
Не помню, чтобы кто-то говорил про простоту вката в го. Речь обычно идет про простоту самого языка для того, чтобы начать на нем писать что-то внятное - это все еще правда.
51 1754133
>>753614
Ну через рефлексию в любом случае устанавливать эти значения нельзя, но для понимания общей картины, контекста происходящего, особенно если код не библиотечный, почему бы и не посмотреть. Как минимум дебаггер такую возможность предоставляет.

Просто думал может есть какие-нибудь удобные готовые инструменты.
52 1755234
Привет, где можно посмотреть/почтитать как поэтапно пишут 4/10 сложности веб-приложение в актуальном виде? Можно на английском.
53 1755239
>>755234
Можно и сложнее, но шоб разжевали.
Мне надо откуда-то брать пркладную инфу, и потихоньку ее тащить в свою задумку.
54 1755342
>>755234

можешь на ютубе глянуть gopher school - там чел пишет простую веб-прилу. я с некоторыми вещами не очень согласен (например, работа с бд), но объясняется там неплохо + чел сразу тесты пишет
55 1755426
>>755234
Какие веб-приложения могут быть?
Рестик, докфайл и в продакшон
>>755342

>некоторыми вещами не очень согласен (например, работа с бд),


Работает следовательно правильно!
56 1757968
>>755426
>>755342
Пасиба, заценю.
57 1759284
>>749529
elixir те ещё аутисты. никто за него крупная компания не стоит, соответственно пустая трата времени. ты либо тролишь или отсеиваешь конкурентов.
58 1760890
>>743955 (OP)
Сап, ребята. Помогите определиться плиз. Я сейчас пишу на питоне веб приложения типичные, стек django. Есть вариант вкатиться в fastapi/sqlalchemy и т.п., либо вкатиться в го. Как думаете, лучше потратить сейчас время на полное изучение одного языка с его либами, всей, так скажем, "экосистемой", или сейчас параллельно учить го? Потому что складывается ощущение, что писать бэк на питоне несерьезно что-ли...
59 1761005
>>760890
Я тебе так скажу. Тебе нужно определится по поводу языка. Выбрав другой язык, твои программы не станут лучше, ценного опыта не наберешь, и денег не заработаешь. Коль выбрал питон, и полностью его освоил дойдя до fasapi (ведь так? Или ты просто бэнчмарков наелся и реши что просто так начнешь API на нем клепать ?), означает что можешь работать. Как будет опыт мидла, сможешь трезво оценить ситуацию и если понадобится перейти на другой язык. Так что мой тебе совет, не мотайся от языка к языку, освой достаточно один, а там двигайся в любую сторону.
60 1761030
>>761005
Я в принципе эти и слова хотел услышать. Большое спасибо, что написал.
61 1761073
>>744747
Надеюсь, что хотя бы в одном варианте будет паника.
62 1762707
Анон, что за прекол? В этом репе реализовано так мало паттернов, откуда у него 13к звезд? https://github.com/tmrts/go-patterns
63 1764719
>>761030
Тебе вообще ничего не нужно. Лучше по мусорным бакам ходи.
64 1766278
Здравствуйте любители го. Вопрос такой. Играюсь с горутинами и возникло некоторое недопонимание...
Есть функция, отправка Post запроса на сайт (Больше ничего). Если я делаю цикл в мейн функции с запуском 100 горутин, то fmt.Println(runtime.NumGoroutine()) показывает, что горутин многократно больше. Если эту функцию заменить на обычный вывод текста, то все нормально, горутин столько же, сколько запускается. Кто нибудь подскажет почему так? Больше спасибо
65 1766783
>>766278
Можно предположить, что функция, которой ты делаешь POST, под капотом создаёт другие горутины.
66 1766791
>>746489
А что, на языке без трайкэтч можно писать как то иначе?
67 1766863
>>766791
нахуя тебе трайкэтч?
68 1766903
>>766783
Да, есть такой момент. На некоторые сайты горутин столько же сколько ожидается, а если гугл пинговать - многократно больше (И с некоторыми сайтами тоже)
69 1768219
как dep на винду установить? чет не выходит, дока не помогает
70 1768231
>>768219
Понятно.
71 1768243
>>768231
Че понятно?
Sage 72 1768447
Какие сейчас требования на миддла по Go? Что спрашивают?
73 1768641
Почему код с каналами и многопоточностью работает медленнее, чем однопоточный код?
74 1768710
>>768641
Из-за каналов и многопоточности.
75 1768718
>>768641
Смотря какой код
76 1770909
Где взять упражнения для Донована
77 1773118
>>743955 (OP)
А почему лучший в мире? Для жнетрпрайзм все еще Ява и С++, для ндроеда Котлин, для айОС свифт.
78 1773135
>>773118

>Для жнетрпрайзм все еще Ява


Go заменяет ноду и джаву в некоторых местах.
79 1773139
>>773135
А в некоторых не знаменит.
80 1773153
>>773135
Не вижу Го в ентерпрайзе.
81 1773336
>>773153
А я не вижу плюсов в энтерпрайзе. Ты сейчас в 1995-м?
Го — это суслик, он есть, но ты его не видишь.
82 1773338
>>773153
А он есть.
83 1774332
>>773336
>>773338

>он есть


Мантры сектантов.
84 1774347
if err != nil {
return nil, err
}
if err != nil {
return nil, err
}
if err != nil {
return nil, err
}
image.png8 Кб, 411x204
85 1774481
Сап, двач. Как в Golang подключить файл login.txt из папки src к файлу login.go в папке tests? Всё работает отлично, если оба файла находятся в одной папке, но их будет дохуя, и нужно как-то разделить.
86 1774498
>>774347
Выглядит как рапчик.
87 1775434
>>774481

Узнал. Спасибо, двач.
88 1776415
Эй, гофры, а ну-ка придумайте мне идею для проекта, чтоб пофлексить перед работодателями
89 1776450
Хочу написать программу сталкинга за Инстой ЕОТ 24/7, чтобы разв минуту рефрешилсоь и сохраняло на диск ей офлайн/онлайн статус в тектсовый файл, а так же скачивал новые фото и сториз в минуту их постинга

С ЧЕГО НАЧАТЬ? Краткий курс го прошёл
90 1776452
>>776450
С изучения APi инсты.
91 1776571
>>776415
Блокчейн
92 1776846
По туториалу http://www.golang-book.com/guides/machine_setup#windows-finished пытаюсь запустить Тетрис через Git Bash, но он не запускается и вот что пишется:
goroutine 1 [running]:
main.main()
C:/Users/User-1/src/github.com/k0kubun/tetris/tetris.go:124 +0x179
93 1777159
>>776846
Переустанови виндовс
94 1777269
95 1778989
>>743955 (OP)

> 3 пик



Кодогенерация для слабаков...
96 1779074
>>778989

>Кодогенерация


Антипаттерн
97 1779076
Антипаттерн-тред.
98 1782231
Реально ли найти работу на джуна гошечки без коммерческого опыта, но с доморощенным бэкграундом других языков?
99 1782244
1
100 1782272
>>782231
Реально, я вообще на мидла перекатился из nodejs
101 1782500
>>782272
Но ты описываешь свой опыт, который не похож на мою ситуацию. Как можно с недоджуна перекатиться на миддла?
Стоит ли тогда сначала на поработать на стэке с большим числом вакансий, чтобы получить хоть какой-то опыт, а потом пойти в голанг? Или сразу учить его и долго ходить собеситься?
У меня в основном все айти - это хобби энтузиазм и ковыряние своих "пет проектов" дома, официально работать прогером не приходилось.
102 1783520
>>782500

>официально работать прогером не приходилось


Ну тогда учи го и вкатывайся в стажёры или джуны, вон в вайдбнрис и вроде ламоде берут, в авито, в озоне тоже (но хз насчёт джунов в озоне)
103 1784218
pojo
104 1784655
>>782500
На го нет джунских вак. Бери нормальный устоявшийся язык - жабу или шарпы. 2 года с ними поработай, стань милом и двигай в свое го, если оно к тому времени не скурвится, как в свое время RoR.
105 1785054
Привет, пишу апи на го.
Как сделать кастомный тип ID,чтобы без большого труда можно было бы его заменить с int64 на string?

Сделала type ID int64, было бы отличненько, если бы не необходимость сканировать из постгреса массив. А его нужно оборачивать в pq.Array, который не может тип []ID кастануть к []int64.

Ну, функцию pq.Array можно переписать и расширить, но я все равно не особо представляю как []ID приводить к []int64 =(
106 1785058
>>785054
Еще вариант придумала, звучит как плохая идея, но все равно поделюсь

сделать type ID int64 и type IDs []int64 с пометочкой в комментариях "МЕНЯТЬ ВМЕСТЕ!11!!!1!"
107 1785061
>>785054
Ладно, не буду изощряться, сделаю просто через цикл https://play.golang.org/p/QoOElrrvzog
108 1785176
>>779074
Вот мой тимфюрер тоже так думает, по этому я, вместо того, чтобы генерить сервер и клиент из OpenApi спецификации - копипащу структуры между 6 микросервисами и обмазываю это болейрплейтом в рукопашную.
109 1785186
>>785061
Если ты знаешь финальный размер слайса - эфективнее будет сразу алоцировать слайс нужной длины (или вместимости, если удобее через аппенд)
https://play.golang.org/p/EuSozdMlme0
110 1785196
>>785058
Ты можешь еще сделать
type ID int64
и
type IDs []ID
111 1785280
>>784655

>нормальный устоявшийся язык - жабу или шарпы


>2 года с ними поработай


Не ломай человек жизнь
112 1785306
>>785176
Скажи ему спасибо, что позволяет тебе получать деньги за работу, которую бесплатно делает кодогенератор.
113 1785315
>>785186
Знаю размер слайса, но как-то затупила и не воспользовалась этим =( Спасибо за наводку!

>>785196
Я писала про []int64, потому что он каститься будет без проблем)
А вообще мне не очень нравится идея существования таких оберток для оберток, лично мне гораздо удобнее явно видеть слайс или мапку
114 1786236
В го все так же руками надо каждый модуль ставить?
Или уже пофиксили?
115 1786347
>>785315

Почему уже 4 пост от тебя а сисек нет?
116 1786399
>>786347
Успокойся, я просто бабой прикинулся чтобы мне быстрее ответили, всем спасибо все свободны.
117 1786436
>>786347
Ты опять все спутал, анон. Это тред по го, а не по скидыванию сисек в четвертом посте
118 1787058
>>786236
go modules
119 1788695
Вы нахрена создали новый тред, когда еще старый жив?
ПЕРЕКАТ
>>1736180 (OP)
>>1736180 (OP)
>>1736180 (OP)
>>1736180 (OP)
>>1736180 (OP)
ПЕРЕКАТ
120 1794106
Анонасы, подскажите, насколько реально вкатиться в GO и таки найти работу именно GO-разрабом не имея большого опыта на других языках?
121 1794112
>>794106
Реально, но лучше перекатываться.
122 1794118
>>794112
Да, перекатываться сюда: >>1736180 (OP)
123 1794153
>>794112
У меня есть небольшой опыт PHP, а конкретно кастомизации компонентов под битру и их написание, много верстал, занимался сеошкой, рекламой(очень типичная вакансия в мухосранске). Чекаю инфу на метаните и golangs.org - просто, а самое главное интересно, в отличии от тех же фреймов пыхи(хз почему, но не зашел ларавель). Собственно с соображалкой проблем нет, инфу, опять же, если интересно, усваиваю\понимаю\принимаю лучше других(ориентируюсь на дногруппников). Анон, если не сложно, подскажи конкретнее. Со знаниями курса с метанита и сайта выше, плюс, например, чат-бот для телеги, плюс, например, интеграция каких-либо сервисов с сайтом(для мини-портфолио и в первую очередь собственного знания), каковы шансы устроиться таки в ДС2?
Вопрос конечно ебанутый, все индивидуально и тд и тп, к тому же понимаю, что лучше задрочить фреймворк php, но блять не интересны они почему то
124 1803181
>>794153
я думаю что шансы более чем, особенно если учесть, что бывают вакансии Perl/Go, PHP/Go, Python/Go, намекающие, с чего на что надо переписать
125 1806208
читнул первую книжку вдумчиво, с разбором примеров, сейчас читаю web development. Но чёт посмотрел, совсем нет вакансий. Вообще реально работу найти?
126 1807118
>>806208
Хз ,я из Новосибирска, нескольколет назад штук пять было, получил оффер. Потом решил уволиться и переехать, за месяц собесов (подался штук 10 компаний) получил несколько офферов в Москву и Питер, некоторые даже удалённо.
Это не php, конечно, в каждом втором подавале на го не пишут, зато вакансии в большинстве нормальные и рейты не самые плохие.
127 1807717
if err != nil {
return nil, err
}
128 1807726
>>807717
func DoStuffInt(value int) int { ... }
// Ctrl-C Ctrl-V
func DoStuffString(value string) string { ... }
// Ctrl-C Ctrl-V
func DoStuffNebo(value Nebo) Nebo { ... }
// Ctrl-C Ctrl-V
func DoStuffAllah(value Allah) Allah { ... }
// заебался
func DoStuff(value interface{}) interface{} { ... }
129 1808374
Ха-ха, обоссаны гоферы ебаные, даже ответить нечего.
130 1808417
>>808374
Они все в прошлом треде сидят, потом сюда перекатятся.
131 1808418
>>808417
Ха-ха, перекатятся, а их тут уже обоссали.
133 1809385
>>807726

>не умеет в go generate

134 1809387
>>809385

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

135 1809429
Бля, сколько лет вы еще будете обсуждать одно и тоже?
136 1809451
>>809429
Когда исправят очевидные дефекты в языке, тогда и перестанем.
137 1809541
в 2021 когда сделают женерики все посты будут про err != nil
138 1809572
>>809541
Завозить нужно будет ещё много чего, кроме дженериков и эксепшенов.
- нормальные структуры данных (ring, list, heap - это даже не смешно)
- полиморфизм
- аннотации
- заменить ошибку на варнинг при неиспользуемых импортах или переменных
- система пакетов - это вообще пиздец, один прибитый гвоздями Git чего стоит.
139 1809923
>>809572

>эксепшенов


нахуя нужны?

>полиморфизм


не понимаю, почему полиморфизм выделен в отдельный от дженериков пункт. в языке есть интерфейсы. какой еще полиморфизм нужен? дженерики? либо я просто не понимаю, что такое полиморфизм, объясни, пожалуйста

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


что плохого в том, что компилятор бьет тебя по рукам за хуевое оформление кода?
140 1809926
>>809923

>дженерики?


сорян, лишний раз продублировал
141 1809936
>>809923

> нахуя нужны?


Чтобы сократить объём кода на 50%, и его стало легче читать.

> полиморфизм


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

> что плохого в том, что компилятор бьет тебя по рукам за хуевое оформление кода?


Если пишешь какой-то тестовый код, где всё время комментишь/раскомменчиваешь строки кода, которые юзают импорты или те переменные, приходится каждый раз прыгать по всему коду и все эти импорты и переменные тоже комментить, либо писать костыли наподобие fmt.Print(""), чтобы компилятор, считающий себя самым умным, перестал выёбываться.
142 1809941
>>809936

>Чтобы сократить объём кода на 50%, и его стало легче читать.


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

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


а IDE какую юзаешь? goland, например, автоматически убирает импорт, если в файле пакет не используется. думаю, для других редакторов таких плагинов тоже хватает. не думаю, что подобные проблемы следует решать изменениями в языке/компиляторе
143 1809946
>>809936

> Если пишешь какой-то тестовый код, где всё время комментишь/раскомменчиваешь строки кода



То может нужно голову включить а не тыкаться?
144 1809947
>>809941

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


Проброс ошибок тоже ничего не гарантирует. Часто уже на автомате пишут "return nil, err", даже не задумываясь, что это за ошибка, либо понимая, что на этом уровне её не обработать. Почти как checked exceptions в жабе.

> на уровне хттп-обработчика


> необработанная ошибка в го не приведет к остановке всего приложения, как в случае с необработанным эксепшеном


Я такое только в плюсах видел, чтобы эксепшен не ловился где-то на самом верхнем уровне и не обрабатывался, а приложение аварийно завершалось. Обычно везде есть минимальный дефолтный обработчик, который всё оборачивает в 500 Internal server error.

> а IDE какую юзаешь?


Я не пишу на го всерьёз, поэтому goland не видел. Но без редакторов с автоматическим удалением импортов писать на го очень больно.

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


Ну а я думаю, что проблемы стиля должны быть именно варнингами, код-то рабочий. И изменение не должно ничего сломать, это ведь разрешение того, что было запрещено, но не изменение поведения.
145 1809948
>>809946
С таким подходом можно до ассемблера докатиться.
146 1809988
>>809941

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


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

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

так в чем разница?

и с исключениями нужно сделать так, чтобы ошибки не проходили границы контекста и наружу полетит ожидаемое исключение а не черт знает что
а еще удобно разделять системные исключения и приложения. я хз почему это считается антипаттерном если это люто удобно. - все что пользовательское ловишь и реагируешь. Системные ожидать бесполезно. это в 999999% случаях баг и нужно просто не дать пройти границы контекста и сделать невалидный стейт
147 1810030
>>809936

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


Говно для даунов. Возвращайся в плюсы и жри там это неявное поведение. Разве нормальному человеку нужно, чтобы метод с одним и тем же именем имел разное поведение, в зависимости от типа аргумента?
148 1810034
>>810030

>Разве нормальному человеку нужно, чтобы метод с одним и тем же именем имел разное поведение, в зависимости от типа аргумента?


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

про паттерн visitor и деревья вообще можно не вспоминать )
149 1810037
>>810030

>Разве нормальному человеку нужно, чтобы метод с одним и тем же именем имел разное поведение, в зависимости от типа аргумента?



Нахуй нужен, конечно. Лучше вот так насрать:

https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glUniform.xhtml
150 1810041
>>810030
>>810034
Пардон, что так грубо, но эта фитча скорее не нужна, т.к. большинство людей - идиоты, и скорее всего будут злоупотреблять этой фитчей, и компилятор не сможет проверить, одинаковое ли поведение для, скажем, оверлоада с аргументом стринга, и для оверлада с аргуметом байтслайса.
>>810037
Да, но с овелоадом - все то же самое, только весь этот пиздец еще и называется одним именем
151 1810165
>>810041

>компилятор не сможет проверить, одинаковое ли поведение для, скажем, оверлоада с аргументом стринга, и для оверлада с аргуметом байтслайса.


Ага, ведь в других языках таких сложнейших фич нет.
152 1810441
>>810165
Я писал, что фитча не нужна, по тому что ей будут злоупотреблять, а не то, что ее нельзя реализовать. Дженериков и интерфейсов всем должно хватить.
153 1810469
>>810441
Да с чего ты взял что перегрузки должны делать одно и то же?
Нет такого ожидания
154 1810834
>>810469

>Да с чего ты взял что перегрузки должны делать одно и то же?


С того, что это один и тот же метод, с тем же именем
155 1810837
>>810834

>С того, что это один и тот же метод, с тем же именем


и что с того?

ты в функциях if к параметрам используешь? если да то у тебя функция значит делает разное в зависимости от переданных значений
хотя имя то одно.
156 1810854
>>810837
В плюсовой, например, реализации - это выглядит как несколько блоков, несколько методов с одним именем, которые могут вообще не иметь общего кода, в отличии от метода с if/switch по параметрам, которые, скорее всего будут иметь общий код до и/или после ветвления.
157 1810855
>>810834
попробуй в общем реализовать паттерн visitor без перегрузок
потом расскажешь
158 1810856
А вот оверлоад операторов - это заебись. Почти всегда - нахуй никому не уперлось, но зато элегантно.
159 1810860
>>810855
Говно для нарушения SOLID
160 1810876
>>810860
А ну расскажи мне как обойти дерево с нодами разных типов без visitor
if и его аналоги не предлагать - за это бьют розгами
161 1810992
>>810876
Лолкек, как ты в го сделаешь дерево с нодами разных типов?
Через интерфейсы, через интерфейсы же и обходить будешь.
162 1810993
>>810992
дык во всех языках ноды приведены к чему то базовому
и паттерн визитор как раз и делает связывание вместо if
163 1811015

>эти попытки сделать из го плюсно, чтобы потом начать ругаться на гц вместо raii


лол бл
164 1811022
>>811015
Да, а что не так? Шажочек за шажочком дойдём до убийцы C++. Людям не нужно всякое говно типа раста или го, им нужны безопасные кресты.
165 1811370
>>811022

>людям не нужен раст


>им нужны безопасные кресты


????????????
166 1811654
>>811370
Неужели ты считаешь, что ущербный раст сейчас способен заменить Великие Плюсы?
167 1811939
>>811022
Людям вообще погромирование не нужно, оно для педиков

Людям нужен продукт
168 1811961
>>811939
Продукт нужен быдлу, а людям нужна духовность, которую можно найти в том числе и в программировании, осмотрено в сложных языках наподобие Плюсов.
image.png966 Кб, 787x787
169 1812059
170 1812097
>>811961
ПодДвачну этому борщехлебу
171 1813147
Я чет нихуя не пойму, почему бинарник на выходе имеет таблицу экспорта, в которой все функции содержатся. Это надо при статической линковке? Или ее можно удалить нах? У меня же не dll файл, через hхd меняю название функций, и все работает, то нах оно нужно в принципе, в ехе файле?
image.png50 Кб, 436x115
172 1813248
173 1813301
>>813248
нехуй что ответить - пошел нахуй псина
174 1813520
блядь да какого хуя ты не удаляешь названия функций, как в gcc передаешь -strip и все заебись, а тут пизда хуйня ебаная, передаешь -s он чет удаляет, но все до пизды
175 1813841
А что дают гокит/гомикро/etc относительно собственноручно написанного микросервиса?
176 1814039
>>813841

> что дают


дохуя фич, которые тебе могут быть не нужны
177 1814054
gccgo для винды есть?
178 1814056

>gccgo для винды есть?


помню там еще лет 8 назад хотели пилить gccgo под винду, но воз и ныне там?
179 1814290
Хай гайс, есть короче дилемма. Пишу тестовый проект для email подписки на изменение цен вэб объявлений авито. Хочу сделать это отдельным сервисом, внутри которого есть некоторая структура которая хранит данные вида ("ID товара", "Актуальная цена", емайлы подписанных юзеров). И всё не могу понять к какому виду это привезти. Очень хочу юзать map для хранения всего этого.

Сначала пришел к виду map[string][]string , где как ключ хранится сама ссылка на объявление, а значение - список подписанных юзеров. Вопрос, как можно к этой структуре корректно привинтить ещё одно значение цены?
Я могу не хранить цену в структуре, но тогда каждый раз мне придётся ходить в БД и доставать её, для сверки на предмет актуальности.
180 1814304
>>814290
map[string]stuct{price int, emails []string}

а вообще хз, насколько хорошая идея - хранить это все в приложении, если будет много данных>>814290
181 1814312
>>814056
Но зачем? Г++ запили и оно никому не нужно кроме пары пердоликов.
182 1814321
>>814304
Я крч подумал и решил что лучше хранить это в двух разных мапах. В одной map[string][]string - список подписанных емэйлов, а в другой map[string]string - актуальную цену. Так наверное лучше будет.
Можно какой нибудь рэдис использовать для хранения ). Просто если учесть что будет много отслеживаемых товаров и каждый раз для сверки цены приложуха будет ходить в БД - это наверное ужас.
183 1814326
>>814321
да на самом деле от кол-ва запросов и данных зависит. при низкой нагруженности ты издержек от хождения в БД не ощутишь особо, имхо. а при высокой лучше действительно редис заюзать
184 1814327
>>814312
мне нужна сборка мусора, и горутины, этот язык попроще ++ будет, и получше. С коробки почти все есть, что надо.
185 1814389
>>814327
Я тебя спрашиваю зачем тебе порт gcc, а не нормальные тулчейны.
186 1814413
>>814389
потому что много отладочной информации содержит бинарник, попросту - не нужной для обычного юзверя, и сильно помогающий реверсеру
187 1814499
Очевидно, что создателей Go не ебёт, что кто-то пытается его юзать как замену C++, а кто-то другой реверсит поделку первого. Go не создавался как убийца крестов, это серверный язык, как всякие жабы и питоны, и на сервере всем похуй, что всё легко декомпилится. Удивляться, что Go не делает то, для чего он и так не предназначен, как минимум странно.
Да, убийцы C++ действительно не хватает. Но это ещё не повод брать Go.
188 1814513
>>814499
Убийца плюсов, как по мне, это потихоньку набирающий популярность Rust, хотя есть ещё и D Language.
189 1814540
>>814499
на сервере не надо ничего защищать?

>Но это ещё не повод брать Go.


а что тогда брать? Компилируемое, не borland
В го много чего доступно из коробки, чем подкупает, и компилируется в натив, ну и сборка мусора как доп. фишка. Где еще такое есть?

>>814513
слышал, что на расте еще больше бинарник весит, чем на го, это так?
190 1814546
>>814321

>Так наверное лучше будет.


через неделю появляются еще 3 поля которые нужно хранить
191 1814551
>>814499
Убийца плюсов уже есть ведь, это раст. Двачую то, что сравнивать го с плюсами это какой-то бред, вообще из разных опер языки
192 1814561
>>814540

> на сервере не надо ничего защищать?


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

> а что тогда брать?


Не знаю, но точно не Go. Я тут пытался заставить Go работать с dll-ками и с либами без исходников, там всё очень плохо, причём это не недоработка, а принципиальная идеология языка.
У раста, говорят, инфраструктура хреновая, но с другими компилируемыми в нейтив языками всё намного хуже. Да и вдруг у раста тоже нельзя сделать strip.
193 1814601
>>814540

>слышал, что на расте еще больше бинарник весит, чем на го, это так?



Честно говоря, не проверял, но разница там не особо большая.
194 1814605
>>814540

>на сервере не надо ничего защищать?


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

>слышал, что на расте еще больше бинарник весит, чем на го, это так?


Они там жирные, но не настолько, на сколько в го. Если критичен вес - используй strip
195 1814677
>>814605
В го жирные бинарники? Лол
196 1814776
>>814513
>>814551
Но ведь раст разве что Мозилу убить сможет. Он ещё не готов к продакшену, гора зависимостей в альфа/бета версиях, все либы тухлые, документация пилится энтузиастами, дебагера нет, многие фичи языка пердольные - та же асинхронность. Ну и скорость не впечатляет по сравнению с Zig или хотя бы V. Волна популярности раста прошла и после неё оказалось что лишь единицы пердоликов готовы кодить на этом говне. А свежие проекты, где важна производительность, всё так же пишут на си/крестах + асм-вставки.
197 1814778
>>814561

> Я тут пытался заставить Go работать с dll-ками и с либами без исходников, там всё очень плохо


Что у тебя плохо там? В Go встроена сишка и полная совместимость со всеми сишными либами, просто инклюдишь хэдеры и указываешь компилятору где либы брать. С крестами естественно не будет работать, нужен С-интерфейс в либе.
198 1814803
>>814778
Я хотел именно на Go, а не через FFI. Но это уже неважно.
199 1815376
>>814776

>Ну и скорость не впечатляет по сравнению с Zig или хотя бы V


Ты серьезно zig или v рассматриваешь? Это вообще ноунеймы, нет смысла даже думать о них. V вообще какое-то васянское поделие, кривой копипаст го. Но про скорость интересно, есть пруфы?

>Волна популярности раста прошла и после неё оказалось что лишь единицы пердоликов готовы кодить на этом говне.


Это уже толсто. Пруфов не будет, я уверен.

>А свежие проекты, где важна производительность, всё так же пишут на си/крестах + асм-вставки.


Чаще всего да, но есть и на расте свежие проекты.
sage 200 1815637
>>809387
Кодогенерация лучше дженериков, потому что код получается проще. Дженерики вообще не нужны. Их отсутствие в го - достоинство языка.
201 1815707
>>815637
Это жабу напоминает уже, где кодить без ide невозможно
202 1815725
>>815637

> Их отсутствие в го - достоинство


А я всё думал, почему котлин у меня так сильно ассоциируется с goвном. А всё из-за уебанского отношения к кодерам вместо того, чтобы дать им выбор. В котлин-треде тоже недавно писали, что какой-то там тип специально сделан ущербным, чтобы его не юзали. Пиздец.
203 1815728
>>815637
Да зачем вам эти дженерики вообще?
За все время моего программирования на го, дженерики были нужны только для каких-то небольших util функций, которые несложно и скопировать в случае чего.
>>809387

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


Кодогенерация появилась не для замены дженериков
204 1815785
>>813147

Потому что проприетарные мудаки, которые хотят спрятать свой код и защититься от хакеров которые мешают получать недополученную прибыль - не нужны.
205 1815786
>>815785
А ещё книги, фильмы и игры должны быть бесплатными, да и вообще коммунизм.
206 1815789
>>815725

>А всё из-за уебанского отношения к кодерам



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

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

> в перерывах в курилках



Чего блядь, в каких курилках, какие назхуй переывы, никаких перерывов, только спецально одобренная корпоративная ржомба в специальных корпоративных чатиках в телеге.
208 1815860
>>815728
Я и говорю, не нужны
>>815707
Генератор может быть вызван из консоли, описание для него написано в твоём любимом редакторе
>>815725
Язык должен был простым в смысле количества сущностей и правил для них. Иначе получится С++ и никто не захочет его использовать.
209 1815865
>>815860
Примитивный язык != простой.
210 1815866
>>815865
В том смысле, который я обозначил, это именно синонимы
211 1815871
>>814677
Какой размер должен быть у хелоуворолда, чтобы он считался жирным?
212 1816120
>>815871
А какой должен, чтобы не считаться жирным?
213 1816334
Книги для вката из шапки все еще актуальны?
214 1816769
>>816120
Как в сишечке - меньше килобайта.
215 1816801
Вот читаю я на дваче про "жирные" бинарники, а потом смотрю на джавовский ear-ник на работе в полгигабайта и задумываюсь.
216 1816827
>>816801
Ясное дело, что все это - писькомерство, но в некоторых особых случаях это может быть важно
217 1816884
>>816827
Так гошечка и не позиционирует себя как средство для микроконтроллеров, где размер бинарника важен
218 1816896
>>816884
Так и есть. Претензии к размеру бинарника какие-то надуманные, это вам не сишечка. Но вообще есть такое решение: https://github.com/tinygo-org/tinygo

Мимокрок
219 1816897
>>816896

>go for command line tools


Если это не нужно для каких-то тяжелых вещей, то за это убивать нужно
220 1817034
>>816897
За что убивать? За написание cli tools на го? Да ты же поехавший, на го как раз особенно часто их пишут, и не удивительно, он для этой цели отлично подходит.
221 1817042
>>817034
У меня просто жопные боли были, когда наш девопс настроил деплой через бинарники на го и на каждый пук необходимо к нему было обращаться, так как исходники он не давал
222 1817095
>>817042

Письмо ему напиши, в копию его манагера.

Весь код должен быть в корпоративных репах.
223 1817141
>>817042
Зачем тебе исходники?
224 1817143
>>816897
намного лучше более популярных альтернатив вроде петона - закинул себе в патх и пользуешься, не ебешь мозги никакими плагинами. лучше только посикс или баш с корутилзами.
225 1817149
>>817141
А вот и тот девопс пожаловал.
226 1817493
>>817149
Ну реально, зачем тебе? Тебе же тулза нужна чтобы в ней запускать команды
227 1817967
>>815376

> Но про скорость интересно, есть пруфы?


Естественно. На TechEmpower либа jsonа быстрее на v, чем на сишке. Zig вообще в любых бенчах рвёт сишку, посмотри у них на сайте, но пока на нем ничего не пишут серьезного из-за breaking changes, которые в один список не влезают.

> Это уже толсто. Пруфов не будет, я уверен.


Последний год звёзды быстрее v набирает, чем раст. Куча либ на расте были на хайпе в 2018 написаны и до сих пор тухнут. Сам язык замер без изменений, а фиксить там ещё много чего.
228 1818204
>>817967
Про либу jsona на techempower:
У раста may-minihttp1,593,722
У V pico.v 1,617,611
Разница очень маленькая, а ты говоришь раст по сравнению с V не впечатляет
229 1818642
Го это писька, чтобы за 5 минут написал серверную залупу, которая работает быстро из коробки, без ебли и оптимизаций, с маленьким бюджетом.

Зачем вообще сранивать с монстрами, типо явы, где пилятся гиганские бабки, с гигансткими командами, с гигансткими бюджеты, с гигансткими сроками.

Если ты начинаешь молодой стартап с небольшим бюджетом, или MVP, то гошечка после идеальна.
Начненать на яве или С++, это уже автоматом выстрелить в ногу.
230 1818655
>>818642

>Зачем вообще сранивать с монстрами, типо явы, где пилятся гиганские бабки, с гигансткими командами, с гигансткими бюджеты, с гигансткими сроками.



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

> пилятся гиганские бабки



И именно по этой причине даже под дохлый и никомку в 2K2D не нужный бекенд на ноде есть куча маняорм-фрейморков и прочих тру-энтерпрайз клонов Spring вроде NestJS.
231 1818800
>>818642

> Зачем вообще сранивать с монстрами, типо явы


Сравнивают потому что на го можно быстрее и эффективнее делать то, что можно через боль и страдания делать на жяве
232 1818806
>>818655

>NestJS


>клон Spring


Скорее подражатель
233 1818807
>>818642

Даже на питухоне пишут кровавый энтерпрайз, мань.

https://github.com/odoo/odoo
234 1819161
>>818807

> писать бекенд на питоне


Lol
235 1819725
>>818807
По описанию похоже на цмс/цмф с бузнес спецификой
236 1820661
Поясните, пожалуйста, когда и как пользоваться sync.Cond'ом?
237 1821086
>>819725

Не, там 1C УПП/SAP на минималках.
238 1821094
>>819725
>>821086
Пиздец, я будто в пхп- или vba-тред зашёл. Go теперь тоже pochini printer tier?
239 1821142
>>821094
Ебало завали
240 1821404
>>821094
Нет, го это микросервисный йоба-хайлоад
241 1821571
>>818807
https://github.com/odoo/odoo/blob/14.0/odoo/service/model.py

Как с таким говном еще кто-то считает питон стильным модным молодежным классным языком? Это же какая-то процедурная параша уровня как раз вышеупомянутых цмс на пхп
image.png49 Кб, 881x555
242 1821577
Питон идеален, когда надо по-быстрому наклепать мелкотулзу, скрипт для автоматизации чего-либо или модель какой-нибудь простой нейросетки. Но ведь, сука, пишут огромные проекты, которые на каждое второе действие стектрейсят и стектрейсят, что тип неправильный, или какого-то метода нет. И не надо про юнит-тесты - это костыль, чтобы компенсировать отсутствие статической типизации.
243 1821581
>>821577
У нас на работе обязателен type hinting через mypy и проверку кода на стиль и синтаксические ошибки через black перед коммитом.
На пике рач у которого breaking changes вообще норма
244 1821590
>>821581
Рач тут не при чём, такое и на винде с подобной либой может возникнуть.
245 1821592
>>821590

>breking changes не читай


>Версию обновляй

246 1821594
>>821592
Поэтому надо сидеть на Python 2.
247 1821596
>>821594
Слишком утрированно, на любом ЯПе сразу обновляться не следует
248 1821811
Кто-то юзает goconvey или ginkgo для бдд тестов?
У меня в проекте овер9000 тестиков, мне вот интересно, как мне уменьшить дублирование кода в них.
В тех же ПХП, на котором в компании есть легаси код, я заметил люди пишут бдд тесты просто текстом.
типа, "Given user" = func() { user := User{} }
Given User
When bla bla
Then this one

Хотелось бы так же, чтобы я описал тесты в виде текста, а условия были маленькими функциями
249 1821845
>>821811
Этот язык называется Gherkin
https://cucumber.io/docs/gherkin/
У него даже есть специфицикация.
Придуман для менеджеров.

https://www.google.com/search?q=gherkin+golang&oq=gherkin+golang&aqs=chrome..69i57j0l2.7673j1j7&sourceid=chrome&ie=UTF-8
250 1821848
>>821811

Я писал BDD для golang, только на ruby\cucumber
251 1821883
>>821845
Пиздос. Это вообще зачем?
252 1822086
>>821883
Чтобы менеджеры сами писали тесты
253 1822106
>>822086
Помнится, про SQL тоже кто-то так говорил.
254 1822212
>>821592
ты серьезно? тут не просто новости рача или петона читать нужно, тут нужно сканировать код для всего петоноговна, которое у тебя установлено, чтобы узнать, ломает ли новый кейворд петона какой-то пакет. делать это вручную или как ты написал "читать" это брейнлет-тир, эту задачу должен решать не пользователь.
Ленивый Пельмешек 255 1822263
Товарищи, а как можно импортить сишные .h в .go? Вопрос странный, но где-то видел подобную фигню. Поясните, плез.
256 1822276
>>822263

-> google -> cgpo tutorial
257 1822279
Подскажите, есть ли какие serverless фреймворки на го?
Что бы был кли и возможность деплоить функции на разных провайдеров?
258 1822297
>>821845
Спасибо, погляжу.

>>821848
Я не только е2е хочу, но и юнит тесты делать в бдд

>>821883
Посмотри что-нибудь типа TDD vs BDD
259 1822299
>>822263
Очень тупо:
package main
// # include <stdio.h>
// прочий сишный код
import "C"
func main() {
C.puts("Hello, world!")
}

И тупо скомпилировать как обычный исходник на Go.
Имей в виду, что сборщик мусора Go не будет за тебя вызывать free() в сишном коде, тебе придётся это делать самому, иначе утечка памяти.
260 1822301
>>822299

> C.puts("Hello, world!")


Да, не всё так просто, надо ещё C.CString делать.
image.png164 Кб, 355x834
261 1822305
262 1822311
image.png30 Кб, 1009x185
263 1822336
>>822212

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



А вот в ГО совсем не так!
https://kn100.me/making-breaking-changes-in-go/
264 1822363
>>822305
Кто-то до сих пор не может запомнить, что эта ебанистика создает копии, а не обращается по адресу ?
265 1823834
>>744568

>диаграммы классов (а это лишние телодвижения), сворачивания блоков (которые еще надо свернуть).. Но это все не то


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

>Поэтому программисты в сях придумали новый тип файла - .inc - когда определение не получается засунуть в c/cpp(особенно для шаблонов)


Стокгольмский синдром по-крестоблядски: ебаная в жопу крестоблядь после всего времени насилования своего мозгообразного органа крестами просто не может осознать, что можно и не выносить декларации в отдельный файл, она даже когда крестокомпилятор запрещает ей это, все равно обходные пути так делать - и, сука, находит.
267 1824497
>>824495
*находит обходные пути
конечно же
268 1825417
Меня тут спросили

> как заапендить слайс через передачу в аргумент


а я аж растерялся.
Действительно, как?
269 1825429
>>825417
Толсто.
270 1825493
Аноны, кто использовал rabbitmq в связке с protobuf?
Есть одна проблема. Сериализую сообщения, отправляю о очередь. На другом конце принимаю и пытаюсь десериализовать, но получается десериализовать почему-то не все. Не понимаю, как это возможно.
Кто может глянуть:
https://github.com/hageshtrem/go-rabbitmq-protobuf-issue
271 1825584
>>825493
я не спец, но сообщения в реббите это строки, а ты в них байты пихаешь
272 1825695
Вопрос общий, но поскольку я пиша на Го, задам его тут.
Аноны, как научиться в абстракции? Пишу уже 7 год, но до сих пор хуёво с этим. Понятно, что все эти годы я говнокодил по большому счёту, но в моём коде хотя бы можно было разобраться, он линеен. Не так давно осознал, зачем вообще делать интерфейсы, лел. Раньше думал раз тестов пока нет, мокать нечего, ну и нахуй они нужны, если реализация всё равно одна?
Вот сейчас пришёл на новую работу, так тут понаписано пиздец, хуй что где разберёшь. Какие-то финализаторы, фасады, ресурс контейнеры, охуеть вообще. Вообще легально так писать на Го? Попахивает тырпрайз жава парашей.
Нужно как минимум понять, что и зачем здесь так написано. Я смотрю на всё это и не понимаю, как блядь человек в состоянии это всё написать? Это врождённый навык или можно начитаться книжек по паттернам и писать так же? Советуйте в общем, что делать.
273 1825699
>>825695
Первое время тебе этот код будет казаться сложным, потом привыкнешь и будешь восхвалять тех, кто это написал до тебя.
По моему мнению, если изначально думать о тестировании кода, то абстракции будут пониматься отлично. Потому что легкое тестирование = легкая заменяемость в коде.
Да и ты же не хочешь в своём коде тестировать имплементацию библиотек сторонних (для этого у них есть свои тесты)
274 1825701
>>825695

>Вообще легально так писать на Го? Попахивает тырпрайз жава парашей.


Так го тоже предназначен для тырпрайза. Посмотри исходники k8s, например.
275 1825707
>>825699
>>825701
Ок, а есть какой-то разбор типовых ситуаций, для которых мне нужно воспользоваться определённой абстракцией? Где про это читать? Все книги, которые я листал по паттернам, имеют очень синтетические примеры.
276 1825719
>>825707
ну если читать книги типа банды четырёх - то там вроде нормальные примеры.
А вообще я обычно руководствуюсь тем, что мне нужно покрыть полностью код тестами и если не получается - значит что-то делаю не так.
У меня нет такого типа, о тут надо фасад сделать или ещё что-то - оно просто в голове уже лежит как сделать лучше и всё.

Ну и SOLID принципы конечно же.
277 1825840
>>825695

>Нужно как минимум понять, что и зачем здесь так написано


жависты наверное переучивались. они ебанутые, не смотри на них.

>Это врождённый навык или можно начитаться книжек по паттернам и писать так же?


мне кажется обычно это врожденное, но иногда люди такими становятся из-за каких-то событий в жизни
278 1825848
>>825840
Двачу этого гофера, всему нужно знать меру.
279 1826162
>>825695
Ну просто берешь какой-нибудь паттерновый монстрофреймворк типа спринга или симфони и изучаешь исходники.
280 1827359
>>826162
А как вообще реализация патернов другого языка поможет на go, наг голнаге же везде СВОЙ ПУТЬ
281 1830537
Приветствую всех гоферов в этом треде. Около года назад начал свой вкат в погромирование, изначально выбрал фронт т.к в него влегче вктатиться (что и сделал за 3-4 месяца - на реакт/редакс макаку), но во время вката понял что именно пограмирование мне более интересно (когда задрачивал js на кодварсе), нежели верстка/дизайн и всё что около фронта. Выбирая что освоить для бэка решил не идти по протоптанному пути ноды/ts, а освоить другой ЯП, дабы взглянуть на мир шире.
В настоящий момент имею опыт работы фронтом 8 месяцев (Реакт/редакс), плюс 2-3 месяца дроча гошки (из пет-проектов есть примитивный rest-api плюс cli, которая конкурентно дергает апишку и выводит текущую стоимость криптовалют, сохраняет историю их цены в csv).
В теории понимаю БД и докер (что и зачем нужно, какие виды бд есть, их типовые сферы применения, зачем нужны индексы, что такое шардинг), подтянул часть с сетями (tcp/ip стэк, udp/tcp, отличия версий http, могу на пальцах объяснить что происходит после ввода адреса сайта). С линуксом знаком (4 года manjaro/fedora на десктопе).
Хотел бы узнать насчет типовых тестовых заданий на гофера в компании ДС-а дабы задрочить эти типовые проекты и выложить их для портфолию (а-ля мувисерчер на фронтендера).
Список теоретических вопросов по го из прошлого треда видел, и могу на них ответить, но практики с БД/докером нет вовсе, плюс сейчас дрочусь с литкодом для практики алгоритмов/структур данных. Также хотелось бы получить советы тех, кто прошел схожий путь из фронтов в бэки (на чем лучше сосредоточить внимание, до какого уровня дрочить литкод, насколько глубоко копать в БД и их оптимизацию и докер и тд.)
282 1830625
>>830537
Сделай на го интернет-магазин с админкой для добавления новых товаров и личным кабинетом юзера с корзиной, засунь в докер. Все сразу поймешь. Но это тупо для крудознаний, надо еще разобраться с кафкой и/или рэббитом и тоже их куда-то воткнуть
283 1830804
>>830537

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


Пару лет работал фронтеденром, одновременно бекенды на ноде делал на фрилансе время от времени. Фронт надоел. Я менял место работы каждый год, и в разгар короны нашел компанию где нужен был фуллстек со знанием фронта, ноды, и го. На го всякие SSR сервисы, почти всё остальное на го, на нём и пишу в основном теперь. На литкоде никогда не сидел, в бд и их оптимизацию слишком глубоко не копал. Докер нормально копал ещё когда фронтом был. Теорию мало изучал, просто писал много кода, так и научился. На го микросервисы шлёпать много ума не надо, мне даже теперь фронт сложнее кажется, поэтому проиграл с того, что ты противопоставил фронт и программирование. Охуенное на го программирование, байтики гоняешь туда-сюда, жисончики, протобафчики, читаешь это говно из консумера реббита или кафки и обратно.
284 1831340
Пацантрэ, кто-нибудь использует кодогенерацию API-клиентов/серверов из спецификацииswagger ? Или шляпа?
285 1831364
>>831340
Я пытался добавить на работе в nodejs проектах. На мой вкус - удобно, а коллегам не зашло
286 1831365
>>831364
А в Go проектах не использовал?
287 1831524
>>831340
Шляпа, конечно. Используй protobuf, из него генерируй и swagger для фронтов, и они себе код заебашут на нём тоже на изи.
Ещё в сторону gRPC посмотри, совсем от счастья задохнёшься.
288 1831591
>>831365
Нет, но по сути - разницы в этом плне практически нет. Разве что в го это немного удобнее за счет // go: generate
289 1831674
>>831340
Мы наоборот генерировали сварггер из го кода.
В итоге меня заебало как он иногда хуйню делал и сделали вручную.
Насчёт протобафа звучит как план, но это не апи доки всё равно.
290 1831752
>>831340
В последнее время такой тренд, что всё пишется в протобафе, сервисы общаются по grpc, а для фронтенда поднимается grpc gateway который автоматически маппит json->protobuf. Он же и генерирует сваггер из твоих прото файлов.

>>831364
Или они долбоёбы или ты делал что-то не то. Апи без схемы - это пиздец.
291 1832437
>>831752

> Или они долбоёбы или ты делал что-то не то. Апи без схемы - это пиздец.


Спецификацию мы то генерим, просто в микросервисах, которые используют АПИ первого мы руками пишем к нему клиент, вместо того, чтобы генерить из спецификации.
293 1833569
>>832437
Ну то есть долбоёбы. Генерация клиента по схеме позволяет автоматически исключить человеческий фактор, поскольку в случае, если у тебя везде используется апи-метод ->foo, а в новой схеме его убрали, то после перегенерации клиента у тебя IDE сразу же покажет ошибку. То же самое с новыми полями, ошибками типов (когда вы массив вместо числа будете посылать) и всё такое прочее.
Вы просто взяли и просрали гарантии, которые даёт вам схема.
Я конечно знал, что jsеры долбоёбы, но чтоб настолько..
294 1835051
>>831340
>>831364
>>831524
>>831674
>>831752
Спасибо. Написал клиент руками, хоть аккуратнее чем свэгер
295 1835386
>>835051
Помянем
1603395408.png160 Кб, 1320x796
296 1837285
Ананасы, подскажите, можно ли как то игнорировать паники? На пике конкретный юзкейс: в горутине в цикле скачиваются треды, и время от времени сосач отдает хуйню вместо html, уж хз с чем это связано. Соответственно распарсить не получается, и html.Render падает с sigsegv, и тянет за собой всё. Пока решаю автоматическим перезапуском докер контейнера, но это костыли. Хочу хотя бы чтоб падала только горутина, а в идеале только конкретный элемент цикла, что то типа try - catch в жабе. Как можно это реализовать, и можно ли вообще?
297 1837449
>>837285
Ну так заместо выкидывания паники, обрабатывай прям там - например, можешь добавить в логи ошибку эту.
В го не принято при проверке ошибки кидать паники.
Ещё конечно вариант ловить панику с помощью recover. Но рековер должен быть объявлен внутри горутины, иначе положишь всю программу.
298 1837592
>>837449
Вощем хз, с обработкой ошибки падает точно так же, а как пользоваться recovery в моем случае я так и не врубился, если все обернуть в defer то просто ничего не запускается, код тупо не выполняется.
299 1837618
>>837592
Во-первых, ты зачем пустую строку вместе ошибки err выбрасываешь?
Во-вторых, ты сам понимаешь как должна обрабатываться ошибка? Её игнорирование это тоже обработка.
Что за хуету я вижу на втором скрине? Почитай офиц курс про паники/рекавери и дефер.
По-моему ты прогал на каком-то говне (питоне) и теперь идёшь к нам говнокодить?
300 1837672
>>837618
Пустую строку выкидываю потому что если распарсить не получилось то смысл мне дальше пытаться что то делать? Идет возврат, а там как раз проверка на пустую строку.
Игнорирование ошибки или нет, разницы не имеет если все падает с паникой. А на втором скрине ты видешь хуиту как раз из офф курса. Но нахуя для рекавери нужен defer я так и не врубился.
301 1837728
Джунов без опыта берут на работу или все чахло очень?
302 1837830
>>837728
Да везде берут, просто вакансий по сравнению с жавой не так много, поэтому для новичка выгоднее брать тот язык, который даёт больше возможностей для трудоустройства.
303 1837833
>>837830
ВКАТЫВАЕШЬСЯ В ЖАБУ С ПЕРСПЕКТИВОЙ ПЕРЕКАТА В GO
@
>>825695
>>825840
304 1837844
>>837833
Это другой вопрос, понятно, что навыки жависта не на 100% маппятся в навыки гошника.
А ещё на свете есть целая куча (на глаз процентов 90%) долбоёбов которые пишут такую херню, что волосы встают в жилах, не важно, джависты они или нет.
Просто делай нормально и нормально будет.
305 1837861
>>837672
Если у тебя функция должна выйти досрочно при ошибке, то правильно возвращать nil.
Насчёт defer это добавление выражения в стек вызовов.
То есть объявив это в функции А, как только функция А завершится, вызовется твой defer. То есть ты бы мог например defer с recover, а в самой функции код с паникой, но в го на этом поведении обработка исключений/ошибок не строится. Нужно лишь, чтобы предотвращать падение программы.
В твоем случае дефер нихуя не работает, потому что само тело функции внутри дефера.
306 1838234
Ваш язык - говно, а мой - лучший. Можете закрывать тред.
307 1838429
Как джуну получить работу на го? Дрочу около 3 месяцев, до этого в вузе был c/cpp, везде требуют год+ коммерческой разработки, что делать, анон?
308 1838473
>>837861
А, тогда врубился. Был уверен что программа падает в тот момент когда вызывается panic, не важно есть что то в дефере или нет.
309 1838493
>>838429
Разработай свой коммерческий продукт, разбогатей, а потом рассылай им резюме с дикпиками
310 1838745
Почему я не могу объявить переменную "с" внутри функции "plus" в строке 8?

https://pastebin.com/J0UfcsvN
311 1838795
>>838745
Потому что ты уже её объявил.
var c int // объявил в первый раз
var c = a + b // во второй раз
312 1839010
>>838493
То есть у меня нихуя не получится и нужно оставить мечту прикоснуться к прекрасному?
313 1839034
>>838429
Да как везде, сделай свой пет-проект и приходи с ним. Говори "да, у меня меньше опыта, зато я не долбоёб, я подготовился и всё изучил, у меня есть пет проект и дохуя мотивации". Если реально хорошо пройдёшь собес - возьмут.
314 1839881
Анончики, как склы мигрируете?
315 1839883
>>839881
гормигрейтом
316 1839884
>>839881
Гусь
317 1842075
объясните плиз почему в функцию zero надо указатель на int а не на xPtr передавать?

https://play.golang.org/p/xDkGWyGqRSN

func zero(xPtr int) {
xPtr = 0
}
func main() {
x := 5
zero(&x)
fmt.Println(x)
}
318 1842081
>>842075
Потому что указатель на int и указатель на указатель на int - это разные вещи.
319 1842102
>>842075

1) в main объявили и инициализировали переменную х со значением 5 (x:=5 т.к. тип не указывался, go присваивает тип автоматически и в данном случае это int)
2) в функцию zero передали адрес в котором хранится значение переменной x ( &x будет равен 0x765....09 )
3) функция zero принимает один аргумент и указание звёздочки у типа int означает что в функцию передается именно адрес переменной и именно с типом int? Т.к. просто по адресу переменной не понятно какой у неё тип.
4) звездочка xPtr = 0 означает что переменной значение которой находиться по адресу Xptr присвоили значение 0

подскажите плиз всё ли правильно? особенно пункт номер три интересует.
я ньюфаг еси чо, не злитесь сильно.
320 1842103
>>842081

указатель и указатель на указатель - вот тут я спотыкаюсь.

вот тут >>842102 расписал как я понимаю это
верно или совсем лажа?
321 1842106
>>842103
Да, всё правильно.
322 1842108
>>842106
добра и сотни нефти!
323 1842130
>>743955 (OP)
Гимн не забудьте: https://youtu.be/SLIHfaNkvh4
324 1842136
Кто проходил собес в Озон? Поделитесь ощущениямиl как там,и про что спрашивают?
325 1842140
>>842136
Вот этот гимн требуют знать >>842130
Снимок экрана 2020-10-28 в 18.11.14.png53 Кб, 908x637
326 1842197
Я тут решил для общего развития поучить этот ваш го, сам пишу на похапе.
Открыл между делом реализацию метода из стандартной либы, и чет немного удивился подходу к именованию переменных и комментариям. Почти везде переменные называются одной буквой.
327 1842553
Компилятор делает екзешник с таблицей экпорта, где все функции видны, и имена переменных, что вообще очень легко реверсится и ломается кракерами. Может кто подскажет хороший обфускатор, и протектор, чтобы он как минимум - удалял таблицу экспорта (или переименовывал в функции а1,а2,а3... и тд.), глобальные переменные, и вообще усложнял реверсинг бинарника, скомпилированного стандартным компилятором го?
328 1842554
Может есть чет подобное с control flow, чтобы запутывал поток выполнения ? Было бы очень здорово
329 1842560
>>842553
>>842554
Опять ты. Думаешь, за месяц что-то изменилось, и появилось решение?
330 1842752
>>842553
Пиши в одном файле в одной функции всё
331 1843124
>>842560
а что нет?

>>842752
точно, чет не додумался до такого.
332 1843135
А кто-то разбирал бинарник го? Может есть что почитать?
333 1843188
>>843124
Нет, Go по прежнему не убийца C++.
334 1843195
>>843188
но тут писали обратное
335 1843200
>>843195
Тут много чего странного писали.
image.png98 Кб, 1710x442
336 1843389
кто как делает батч-инсерты в бд? у меня сейчас примерно такое решение, но имхо это хуйня какая-то, на ум ничего лучше не пришло
337 1843390
>>843389
пс. в коде есть небольшая опечатка, но в целом подход думаю понятен
338 1845614
Есть пара каталогов
cat1
|->proga1.go
cat2
|->proga2.go
Можно как-то подключить пространство имён proga1 в proga2?
я пытаюсь импортить типа "./proga1", но он что-то меня шлёт нахун. При этом я могу допустим на гитхаб залить, указать путь github.com/name/project/proga1 и он заимпортит, или в gopath залить проект, но не юзая эти методы можно как-то импортировать модули в таком виде?
339 1845816
>>845614
Читай про go mod.
340 1845867
>>845614
cd project -> go mod project

В proga2 пишешь import "project/cat1"
341 1845871
>>845867
*go mod init project
342 1846557
>>837833
А я собственно год назад перекатился из жабы в го, охуенно себя чувствую. Жаба теперь кажется монструозной хуетой.
343 1846565
>>842197
одной буквой обычно ресиверы метода, естественно в циклах и r - reader, w - writer, b - byte buffer
344 1846882
>>843389
Ты бы резал по тысяче штук что ли. Не знаю, что у тебя за СУБД, но в любом случае у неё есть предел батча
345 1847027
>>843389
Обычно используют конструкторы запросов вида squirrel для подобных вещей. Но по-моему, кстати, далеко не все инструменты (и даже тот же squirrel) поддерживают именно вставку нескольких строк за раз, благо, нечастая операция.

>>846557
Ну хз, мне кажется, истина где-то посередине должна быть. Котлин? Го2? Zig? Rust? Я хз, но у го тоже есть свои косяки и минимализм и ебанутые разработчики часто приводит к тому, что код представляет из себя лапшу из кучи вызовов системных и бизнес-функций, обработки ошибок, каналов и всего прочего, смотреть больно. Не говоря уже про то, на какие хаки в го приходится идти, чтобы обеспечить надежность (тм). Например, те же енумы.
346 1847028
>>846882
в моем случае маловероятно, что придется добавлять более 1к записей одновременно. по 4-5 максимум
347 1847131
>>847027
Ну так и есть. Го не замена джаве ни разу. Но джаве местами нахуй не нужно тащить за собой даже спринг бут с нетти. Тут легковесность го с его главными фичами с горутинами и каналами и самой главной фичей if err != nil {} заходит хорошо. Опять же, к примеру, реализация стека IoT железок (OPC-UA) на го есть в виде жалкого поделия студентоты, на Java же полная реализация и поддержка. И таких примеров конечно дохуя. Котлин кроме андройда вообще нахуй не нужен. Там та же ебанина кококорутины и структы. Ради этого всю джаву не обязательно тащить.
348 1847140
В Go-треде обсуждают джаву, в джава-треде обсуждают Go. Ебануться.
349 1847146
>>847140
В принципе го и котлин довольно популярные у джавистов, по крайней мере на последних 2х местах работы. Как, кстати и JS-ники и в частности нодеры лютые ненавистники энтерпрайза, вполне себе на Go и на Ко, смотрели норм и сами вызывались часть сервисов написать на них.
350 1847161
>>847131

> Котлин кроме андройда вообще нахуй не нужен.


Это ты зря, котлин - это не только корутины (да нахуй их на самом деле), это ещё и тонна удобного синтаксического сахара, решающего кучу проблем джавы без лишней боли, ту же нуллабилити, при этом без лишнего оверхеда (там логично прозрачный интероп, хотя вроде и с совсем небольшим оверхедом для гц).
Учитывая, что можно писать на котлине и на джаве одновременно в одном проекте - я не вижу причин его не использовать.
Смотри на это, как на java 20+. Шарпы сильно ушли вперед по фичам, а джава стагнировала - поэтому вместо оракла пришёл jetbrains и навернул поверх старой джаву свою новую, совместимую и содержащую все современные фичаи.
351 1847196
Перепост из общего треда:
Сижу на Энтерпрайзе-джаве, миддл. Собрал несколько офферов, по сути все кроме одного практически одинаковые по деньгам и условиям - джава, ~150к денег. Но есть один на го, причём го я практически не знаю, контора крупная, поэтому берут с рынка разрабов с других языков и учат на го. Как думаете, перекатываться? По деньгам просадка не сильная, процентов на 10 меньше остальных офферов.
Особенно интересно мнение, если вы успели на джаве поработать в энтерпрайзе, но и просто гошников хочу послушать
352 1847312
>>847196
Хз, мне кажется, что джава пока что перспективнее из-за того, что вакансий больше и работу если что найти легче.
А го, хоть и простой, до сеньора ты пару лет всё равно будешь расти, потому что специфика планировщика, гц, экосистема и прочее быстро в голову не ложатся.
Поэтому лично я бы тебе порекомендовал сначала досеньорится на джаве до 300к/сек хотя бы, а уже потом брать второй язык, просто как инструмент для каких-то конкретных задач. Тот же го для узких мест, js для фронтенда и так далее.
Иначе есть риск остаться вечным миддлом, знающим много инструментов, но ни один не на 100% и из-за этого упереться в миддловый потолок а часики то тикают
353 1847390
>>847196
Я бы не перекатывался с просадкой. Я сам вкатился на го с джавы с маленьким почти символическим повышением(+20к). Меня просто схантили бывшие коллеги.
354 1847397
>>847390
7 лет джавы, год на го сейчас. Алсо я почти 8 месяцев на прошлом месте работы допиливал проекты за такую же ставку за час, как на го здесь. Потом как пошли премии за го проекты. Отказался от старой работы. Из-за ебанутых хотелок и самодурства продактов. В общем-то я поэтому и свалил.
355 1847416
>>847161
Ну да, да. Я написал 1 сервис на котлине с джавой. Согласен, что это нормальное развитие. Это не скала блять. Но мне не зашло, в то же время го удачно зашел. Кстати как раз джава сервис в разработке сейчас, ебану-ка я котлин
356 1847525
>>845816
>>845867
Спасибо!
357 1849039
>>847390
да нет, я сейчас собесы прохожу - насобирал офферов на около 150к, по сравнению с моей нынешней это х2, так что даже если я оффер на го возьму - улечу на х2 от текущих
358 1850390
>>743955 (OP)

Сап, гайз. Скажите, а есть какие-нибудь достойные курсы по golang? Делайте скидку на то, что я тупой QA. Заранее спасибо.
359 1850411
>>850390
А разве есть такие? Я вот лично не ебу о таких курсах, я бы подождал и подал заявку на Ozon Go School
360 1850421
>>850390
Сначала проходишь go tour на оф сайте (либо локально, если удобнее), затем https://stepik.org/course/54403/, парралельно пытайся написать какую-нибуть прогру с паралельностью, например - web crawler.
361 1850940
>>850421
спасибо, сейчас пойду проходить готур.
мимо левый анон
362 1851981
>>747800

ты не очень умный, правда?

https://github.com/golang/sys/tree/master/windows/svc/example
Снимок экрана 2020-11-10 в 15.24.36.png78 Кб, 859x593
363 1852649
подскажите, пожалуйста, можно ли так делать: у меня есть структура Processor, у которой есть набор методов (см скрин)

ProcessNews() - это воркер, который слушает канал Processor.tasks и что-то делает с тасками из него (при старте приложения запускаются N таких воркеров). Process() вызывает приватный метод processWebsites(), в котором достаются записи из бд и по определенной логике закидываются в канал Processor.tasks. У меня есть сомнения насчет того, можно ли закрывать этот канал внутри метода Process(), так как этот метод не является непосредственным писателем, а лишь вызывает писателя. Однако в этой реализации (поправьте, если я не прав) не может произойти такого, что processWebsites() будет писать в закрытый канал => паник быть не должно (только в том случае, если я буду вызывать processWebsites() еще раз отдельно от Process())
Имеет ли место быть такое решение или следует зарефакторить этот момент?
364 1852860
>>852649

>метод не является непосредственным писателем


Это не важно, важно что эта горутина являеться писателем в этот канал, и никто больше.
А насчет зарефакторить - лучше сразу выкинуть канал пустых структур в пользу контекста.
365 1852956
>>852860
спасибо. А имеет смысл через какой-нибудь sync.Once гарантировать то, что только одна горутина будет писать в этот канал?
366 1853024
>>852956
Ну, для начала - sync.Once нужен скорее для ленивой инициализации какой-нибуть херни, зачастую довольно дорогой. Например, если ты создаешь какой-то дополнительный конфиг, до которого исполнение может и не дойти, и парсишь конфиг-файл не сразу же, а только когда внешнему коду нужно будет одно из полей конфига. sync.Once гарантирует, что коллбек будет вызван всего один раз, и в этом случае он точно не подходит.

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


Зависит от твоей логики, возможно тебе нужна только одна пишущая и одна читающая горутина, а возможно - несколько.
Тут важно помнить, что канал - это не ресурс, который обязательно нужно закрыть. Если тебе нужен механизм для graceful shutdown - используй контекст.
А мьютексом защищать запись в канал точно не стоит, т.к. аналогичный механизм уже зашит в структуру канала.
367 1853194
>>852649
>>852956
Чтобы обеспечить запись или чтение в канал только одному или определённому числу воркеров одновременно, советую использовать семафоры.
Вот как пример мой говнокод https://goplay.space/#c5DRpaV1vSf
Вместо канала stop, советую юзать контекст.
368 1853205
>>853194
Не изобретайте велосипеды.
https://www.godoc.org/golang.org/x/sync/semaphore
369 1853336
>>853024
Спасибо за подробный ответ еще раз!

>>853194
Да семафоры - это все здорово, но в данном случае мне нужно ограничить не одновременное число воркеров, а в целом число горутин, которые будут писать в канал. Семафор в этом случае мне мало полезен, т.к речь идет про горутину, которая пишет в канал и закрывает его
370 1853897
А как работать с ошибками?
С одной стороны, линтер требует, чтобы я не создавал ошибки, а использовал статические.
С другой, хочется пробрасывать наверх какой-то контекст ошибки.
Третья проблема, что текст ошибок попадает на самый верх и хочется их локализовать.
Советы/ссылки?
371 1853906
>>853897
У нас есть свой тип ошибки, с конструктором Wrap, который включает текст предыдущей ошибки и какой-то текст.
В итоге наверху получается ошибка вида "отъебнула запись: ошибка доступа к бд: сломана сеть"
372 1857385
>>853906

> ошибка вида "отъебнула запись: ошибка доступа к бд: сломана сеть"


Спешите видеть, гоферы изобрели стектрейсы эксепшены нинужна пок пок! хочу обрабатывать ошибки сразу куд кудах!
373 1857546
>>857385
Что тебе не нравится? Да, по сути это стектрейс, а эксепшены и правда не нужны
374 1857548
>>857546

> Что тебе не нравится?


Мне всё нравится. Потому что я пишу на языке программирования, а не на го
375 1857550
>>857546

> эксепшены и правда не нужны


Про дженерики так же говорили. Пока главный обезьян не сказал, что таки нужны
376 1857553
>>857550
Я не знаю, кто такой главный обезьян, но он неправ. Дженерики тоже не нужны и мне не нравится, что их добавят в го.
377 1857559
Почему в Говне такая уебищная конвенция начинать функции с большой буквы?
378 1857560
>>857559
Это единственное что тебя смутило в Говне, правильно понимаю?
379 1857648
>>857548

>Потому что я пишу на языке программирования, а не на го



а че тогда переживаешь? в твоей конторе решили перейти на го и тебя вот-вот выгонят на мороз?
380 1857652
>>857648
Как раз говноедов куда легче выгнать на мороз, т.к. понабрать с улицы дибилов, которые смогут на нем наговнякать вообще не проблема
381 1857656
>>857559
Это не конвенция, а public с большой буквы и private с маленькой. Видать, сильные вещества были.
382 1858082
Пришел пореветь.
Сука каждый go-проект - индивидальность и набор костылей и бывших коллег. Заебало ппц нахуй
383 1858083
>>858082
Но зачем ты продолжаешь на нём писать?
Ладно есть странные челики которым го нравится, типа этого >>857553 , но если есть понимание что технология - отстой, зачем продолжать её пользоваться?
384 1861495
Сап, анончики, к вам пришел hyяr. Короче, предлагаю вакансию на гошника-мидла в достаточно крупную компанию в Москве :D Если есть интерес пообщаться, ну и вообще поговорить с хлебом, ищущим людей на дваче, пишите на email zhuc2!$hkovatmkANUSgmai4!VlPUNCTUMco|~.m, там подробнее расскажу о компании, все такое. Спасибо, если прочитали :3
385 1863104
>>861495
джунов берите уууу, блять, где работать, потратил на эту залупу полгода
386 1863112
>>861495
Мооооод, тут насрано!!!!1111

пиздуй блять на профильные ресурсы, еще тут мне ебаных херок не хватало, аааа, сука, как же вы меня заебали, жопа горит
387 1863115
>>863104
Ты бы ещё питон учил. Сотню раз уже писали, что пщ для тех, кто перекатывается из других языков, а не для джунов.
388 1863132
>>863112

Абизьян, ты тут че, филиал линкедина устроил чтоли?

this:
https://2ch.hk/pr/res/1743955.html#1861495 (М)
https://2ch.hk/pr/res/1824044.html#1861498 (М)
https://2ch.hk/wrk/res/2131367.html#2135945 (М)

И да, это по ходу еще и тян https://psycheforum.ru/profile/168499-zhuchkovatmk замужем правда

Щас я пойду твою почту в соц запощу, отбивайся потом со своей реальной почтой от полчищ спермотоксикозных уже-не-школьников.
389 1863331
>>863132
бля, обожаю сосач: минуту назад читал тред по гошке и вот уже изучаю интимную жизнь какой-то херочки
390 1863439
>>863132

> zhuchkovatmk


> zhuchkovatmk


> по ходу еще и тян


Да ну нахуй, никогда не поверю. Скажи еще, что ты можешь назвать ее/его фамилию.
391 1863543
>>863439
Жучкова!
392 1865563
>>857656
а мне нравится. прочитал название и сразу видимость понятна. я тут переписывал сишарт и заебался отдельно на кейворды смотреть перед функцией.
sage 393 1866685
>>861495

> :D :3



сажа
394 1866882
>>866685
Токсичный душнила --_-- X_X
395 1867026
>>847390
бля, ты не из озона случайно лол?
396 1867040
Анончики что-то я дико туплю
golangci-lint умеет хайлайтить?
397 1867104
>>867040
Хуйня какая-то короче, сел на ванилу
398 1867176
>>863439
А может это молдаванин, Жучковат М.К.
399 1867196
>>867104

Лох-пидор

Умеет
0.jpeg25 Кб, 1536x768
400 1867204
Не знаю туда ли я зашел, но может че скажите про Avito как работодателя. Как вообще там?
401 1867206
>>867204
получи оффер туда сначала
402 1867208
>>867196
Кого оно там что умеет?
Линтеробандлер на который нужно вручную наваливать хуки билда с тестами, всё равно имея шанс отваливания при цеплянии нового файла, охуеть просто
Поставил стандартный чейн линтер-статикчек-пачкачекеровизкоропки, за мгновение подсвечивает вообще всё, что только можно
403 1867217
>>867206
Че ты бомбишь-то на ровном месте? ) Есть у меня оффер
404 1867245
>>867208

звучит как какие-то редакторо проблемы у меня в ale в виме норм работал

просто на всякий случай спрошу, а ту ли проблему ты этим линтером решаешь, не gopls ли тебе часом нужен?

>>867204

смотря в какую команду и с кем сравнивать, в среднем васьки вроде >>867206 дрочат на авито https://habr.com/ru/post/529928
405 1867246
>>867245

>смотря в какую команду


Блэд, как всегда, проблема больших контор.
406 1867248
>>867245
>>867246
А может ты за вертикали можешь пояснить?
408 1867266
>>867245
Да там какое-то неведомое говно конкретно с этим чудом
https://github.com/dense-analysis/ale/issues/2339
https://github.com/dense-analysis/ale/pull/3074
https://github.com/syl20bnr/spacemacs/issues/13580

Вроде по гуглам выдаётся на первых местах, а на деле такая невнятная шляпа
409 1867269
1. Что интересного есть в плане работы на Го? Понятно что язык максимум уёбищный, но, может, у вас какие-то интересны задачи/предметные области есть? Или как и все колбасите обосраные CRUD'ы, только на говноязыке?

2. IDEA пользуетесь? Как она в плане глючности/тормознутости для Го?
410 1867274
>>867269

> Что интересного есть в плане работы на Го?


Девопс, операторы к куберу, хайлоад бекенд, WS сервера

> IDEA пользуетесь?


Больше половины гоферов сидят на golandе, остальные на go pls + вим/вскод/атом/етц. Первый вариант такой же по глючности как и остальные жетбейн иде, почти с таким же функционалом
411 1867277
>>867274

> такой же по глючности как и остальные жетбейн иде


Они таки отличаются. Для джавы работает вообще чотко, дерзко, быстро. А скала плагин глючит так, что мне иногда кажется будто они его специально портят чтобы скалисты переходили на их котлин
412 1867281
>>867277
Да нет, просто в плагин скалы не влили и десятой части того бабла, который влили в основной парсер жавы. А ещё есть прямая корреляция между сложностью языка и сложностью написания IDE к нему (посмотри на любую топовую иде для плюсов, кекус).
413 1867287
>>867217
и у меня есть. чо делать будем?
414 1867295
>>867269

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


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

>Или как и все колбасите обосраные CRUD'ы, только на говноязыке?


Тащемта, я бы не сказал что бэк вообще сильно различается даже между стеками.

>2. IDEA пользуетесь?


Кто работает на станционарниках — пользуются, кто любит ноутбуки — нет. Язык убер простой, и ничего кроме простого автокомплита и go to definition не нужно, поэтому хоть в nano можешь код ебашить.

>>867274

>Девопс, операторы к куберу,


Вот-вот, я про то же.

>хайлоад бекенд


Вот это в 95% хуйня кстати, на го уже даже всякое круд-ориентированное говно вроде црм пишут, это новый пхп.

>WS сервера


Ого, аж вебсокет сервера? Вот это экзотика.
Орнул.
415 1867296
>>867269
1. Если ты всю жизнь писал круды пересев на го вряд ли что-то поменяется
2. Ну я щас прямо тащусь от флайчекерных хайлайтов. DAшный компелятор конечно чувствуется
416 1867302
>>867246
Да это проблема вообще любой конторы, где проектов больше одного или один просто уже достаточно большой. Бывают компании и меньше сотни человек, где в одном отделе ахуенно работать в а соседнем тимлид — старый и токсичный пидорас, стек из 80-х и воняет гавной в их части офиса, лул.

В любом случае для такого есть испытательный срок, и уйти можно чуть ли не одним днём если договорится.
417 1867313
Привет
В го все так же нет смысла вкатываться, как в первый язык?
Не программист и не разработчик, для себя свифт изучал, но облизываюсь на работу коллег погромистов (не го,бэк)

Сейчас работаю в гейропе и надеюсь, что ситуация для вкатывальщиков получше (хуй там)

Спасибо
418 1867447
Анончи, а с чем конкурирует Го? Не в сугубо техническом смысле с сишкой надо понимать, а в рыночно-техническом.
15215752130990s.jpg6 Кб, 200x200
419 1867474
>>867447
С другими ориентироваными на веб бэкенд языками и либами, вроде PHP, node.js и питоновской джанги. Плюсы и джаву с двадцатилетним легаси он точно не выбьет из банков и прочего кровавого эетерпрайза, а вот распилить на модные микросервисы какой-нибудь разросшийся монолит относительно молодого стартапа всегда берутся с радостью. Язык простой, с нормальной системой типов, компилируемый в нормальные бинарники который тут же кладется в еще более модные докеры с кубами, шустрый и с крутыми потоками из коробки. Чего еще нужно для языка 21 века? ну кроме дженериков и эксепшенов, азаза
Продать такое инвестору или выступить на докладе с кучей хайповых терминов очень легко, поэтому язык на хайпе, зарплаты в топе, и прямо сейчас на нем пишется огромное количество легаси, которое можно будет поддерживать ближайшие 20 лет, гоняя чаи на пенсии сеньором-помидором за 300ксек. Те же озоны сейчас набирают перспективный молодняк в свои онлайн-школы, чтобы выпустить больше рабочих лошадок, другие думаю тоже скоро подтянутся. Надо вкатываться, пока поезд не ушел и спрос на гошника намного выше предложения. Я к слову вкатился этим летом и очень доволен, остальным анонам удачи!
picturesfunny11.jpg53 Кб, 520x390
420 1867480
>>743955 (OP)
Анон, около 9 месяцев работаю голенг джуном, в мухосране за 30к, до этого работал эникеем, в конторе сталкивался с задачами связанные с докером, кибаной, графоной, реббитом, кликхаусом, монго, постгресс, ссдб, аэроспайк, карочи крудо дроч, еще периодически правлю баги в юайке реакта(но не особо глубоко лазил под копот). Карочи суть в чем, заебало работать за 30к, я уже здоровый лоб, и это пиздец стыдно за 400баксов батрачить. На какую зп я могу расчитатывать при переезде в ДС, или искать удаленку?
421 1867481
>>867313
В го есть достаточно строгий стандарт кода и организации проекта, которые могут и стать плюсом, научив вкатывальщика делоть проекты на го, так и минусом, конфликтуя с практиками других языков (на одном го далеко не уедешь, параллельно нужно будет учить как минимум html, css, javascript)
С гошными концепциями ещё сложнее: даже имеющие десятки лет опыта программисты гадают, есть ли в го ооп... Если ты до этого не был знаком с основами какого-нибудь процедурного языка и основами какого-нибудь ооп (хотя бы номинального а-ля реализация в скриптовых языках) - с 99% не поймёшь "как", "что" и "к чему было" навелоспидено, с чем сопостоявляется и какие приемущиства противопоставляет другим реализациям, особенно традиционным
422 1867482
>>867480
Заебись ты вкатился. Я в го вступил за 180 не зная го нихуя. Правда 6 лет java
423 1867484
>>867274

>Больше половины гоферов сидят на golandе


Двачую. JetBrains практически безальтернативная. vscode - и прочие извращения - это для тех, у кого го сервисы как пет проекты или неважная хуйня.
424 1867485
>>867295

>Разве что всё го-коммьюнити помешано на микросервисах



Поэтому go-micro прекратили развивать, потому что перерос. (привет ява) Но таки-да. у меня 15 го-сервисов из ни 6 го микро.
425 1867491
Бамп
426 1867629
>>867485
И как же твоя библиотечка вообще относится к микросервисам в целом, ммм?
427 1867688
>>867474

>С другими ориентироваными на веб бэкенд языками и либами, вроде PHP, node.js и питоновской джанги


Да ебать, вы серьезно что-ли? Каким образом гошка может с ними конкурировать? Там архитектура и абстракции, тут алгоритмы и низкоуровневщина.
428 1867704
>>867688

>низкоуровневщина


>GC

429 1867705
>>863115
и питон учил, пока не понял что вак ансий нет. Не хочу в джаву блять, не хочу в пыху, в вузе были C/C++, которые дают на уровне старшей школы нормальной. Неужели реально нужно идти в джаву?
430 1867715
>>867705

>питон


>вак ансий нет


Ты ебу дал? Я имею в виду действительно ебу дал?
431 1867745
>>867715
А что не так? Я вот когда вкатывался полтора года назад, тоже думал, что в питон вкатиться просто, а затем, когда реально начал искать вакансии, находил только с требованиями опыта от 2 лет и знанием небес аллаха, или опыт не требовался, но судя по вакансии, ты реально будешь чаще заполнять бумажки и чинить принтеры, чем писать хоть строчку на питоне. Действительно нормальных вакансий для джунов (без всяких "быть выпускником топ-5 вузов", например) было очень мало. Плюнул, вкатился в жабу, подтянув за пару месяцев нужное, сижу в энтерпрайзе, программирую на XML.
432 1867753
>>867745
А ну без опыта может быть. И то, в любом языке потребность джунов будет одинаковой и при этом они всегда на каком-нибудь проекте да нужны.
433 1867790
>>867688
Ты или не написал ни одного проекта на го или нихуя не понял и долбаёб
434 1867792
>>867790
Долбоеба пусть тебе жизнь простит.
А я тебе скажу, что скорее всего ты никогда не писал на тех языках, а если и писал, то был кодером, в которого тимлид задачи кидал. И кроме как кодить, вряд ли что-то можешь.
435 1867796
>>867480
100-200к
436 1867824
>>867792
Я твой язык не оскорблял это во-первых
В отличии от тебя на работе не работаю это во-вторых
Какие ты там абстракции не нашёл в го это в-третьих
437 1867852
>>867715

Ну открываю хх, вакансий 50, на гошечке 250. Летом было
439 1867884
У го есть потанцевал для переката забугор? По пистоновскому резюме пишут иногда в линкедин, а тут как будет?
440 1867944
>>867857
Он видимо так и пишет "питон" в строке поиска, кек.
441 1867948
>>867884
Почти никак не зависит от стека если он хоть как-то востребован (за исключением 1С, лол).
442 1868006
>>867948
Не сказал бы что не зависит, найти вакансии того же джависта за бугром гораздо проще.
443 1868026
>>868006
И в чём же эта простота выражается?

Как я уже сказал — драматическая разница была бы если бы ты был 1с-ником, а так это будет просто флуктуация и твоё личное восприятие, которое может зависить банально от того, в каком месяце ты искал работу там и там, лол.
444 1868031
>>868026
Больше вакансии значит больше фирм и выбор условий в виде зарплатой вилки, стека на проекте, условий переезда и отношения к тебе начальству и значит больше шансов найти подходящую тебе компанию
445 1868037
>>868026
Жава сейчас один из самых ин-деменд языков благодаря
искусственному пропихиванию c# , особенно среди новых кадров
446 1868088
>>867948
Лолчто, давай-ка зайдём на relocate.me и посмотрим, каких вакансий вообще и для релокации в твою любимую страну больше.
Обоссал бы тебя за то, что новичков обманываешь

>>867884
Чем язык популярнее, тем легче. Плюс, некоторые сферы более склонны к мобильности, чем другие. Субъективно, самый мобильный и распространённый - это веб. Та же удалёнка у мобилок обычно развита слабее, потому что тебе для тестов потребуются разные девайсы и если разработчик в другой стране, то ему сложно будет найти себе 10 разных телефонов для проверки всякой фигни на них.
Короч, для релокейта наиболее удачны java, js/ts (особенно фулстеки с нодой), php. C# там где-то рядом, но он более корпоративный и как будто бы менее стартаперский, так что возможностей именно для релокейта поменьше.
Конкретно для го релокейт возможен, но будет значительно сложнее, в том числе и из-за того, что го часто идёт вторым языком и поэтому ты будешь должен знать ещё что-то (обычно жаву либо пыху).
447 1868133
>>868031
Это условия рынка в целом, а не какие-то мифические лучшие "условия для релокейта", которые ты сам себе придумал.

>>868037
Опять верно по отношению к рынку в целом, но не коррелирует с релокейтом никак.

>>868088

>Лолчто, давай-ка зайдём на relocate.me и посмотрим


Давай, открыл и вбил java и golang — 105 к 16.
Потом открыл хх и повторил — 3080 к 376.
Отличий между рынками не замечено.

Потом идём и смотрим отношение спроса к предложению (единственный адекватный способ — статистика по зарплатам).
Вилки буржуев — https://insights.stackoverflow.com/survey/2020#work-salary-and-experience-by-language
Вилки в постсовке — https://habr.com/ru/article/511700/ (прямо сейчас хабр лежит, но там графики почти 1 в 1).
И по ним мы видим одинаковую статистику — на программистов на говне спрос удовлетворён значительно слабее.

>Обоссал бы тебя за то, что новичков обманываешь


^ тебе пора мыться, воняет.

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


А сейчас я тебя уже буду обоссывать за то, что дуришь нюфага: с вот таким набором знаний шансов на релокейт просто нет.
448 1868143
>>868133
Идеал это перекатываться бекендером с другим основным языком и го вторым. Сам так планирую сделать, бекендер на ноде (ts)
449 1868147
>>868143
О, поясни плиз, зачем тебе го? Ты же на ноде в шоколаде, неужели гошка прибавляет значительно ценности для релокейта?
Да и мне представить сложно, зачем он вторым языком, если только не переписывание.
450 1868148
>>868143
Идеал это когда ты синьйор-помидор с релевантным опытом в любой более-менее релевантной технологии, и в целом тебе похуй на язык, не испытываешь проблем с пойти и выучить, но зачастую самое важное — это опыта в предметной области.

Из 4-х мест работы я на 2 пришёл не зная основной технологии и изучив её на месте (проходил именно по общим знаниям + опыте в предметной области).
451 1868151
>>868147
Я не он, но могу рассказать по секрету (пару раз собеседовал сам), что если ты придёшь на любой собес и скажешь что пишешь на одном языке — то сразу просто пиздец как опустишь себя в глазах собеседующих, если ты не джун.
452 1868152
>>868151
Я не знаю в каком вы мире живете. Это хуйня полная.
453 1868160
>>868152
Ну, может и в другом — с джавой и прочим энтерпрайзом не связан никак, может там это и ок.
В моём мире вообще везде — и в бэке, и в фронте, и в мобилках — везде такая конъюнктура.
454 1868171
Кому не западло показать типичную ручку, которую пишете на работе?
Оч хочется представить себе типичный рабочий день.
456 1868220
>>868147
Для релокейта гошка мало ценности прибавляет, вакансий не очень много. Но знание го, как мне кажется, повышает мою ценность на рыночке. Нас жсеров как говна ведь. И мне го просто нравится, в узких местах для перформанса или других профитов можно делать отдельные сервисы на нём. В одном месте, где я работал, у нас был весь бекенд на го, а на ноде был только сервер для рендеринга реакт-приложения.
Я сам по себе очень ленивый, для бекенда мне нужен был второй дополнительный язык посерьёзнее. Джаву и сишарп было лень учить, они казались какими-то раздутыми и перегруженными, хотя полсе тайпскрипта мне дотнет думаю хорошо подошёл бы. В итоге взял гошку и не пожалел.

>>868148
Согласен, но вот я часто испытываю некоторые проблемы с пойти и выучить. Работать хочется как можно меньше. В свободное время мог что-то учить только когда зелёным джуном, а за счёт работодателя иногда может быть и можно.
457 1868401
>>867484
Ну, на самом деле vscode + gopls покрывают 95% юзкейсов - рефакторинг, го-ту-дефинишин, автокомплит они умеют. Все остальное я в повседневной работе практически не использую, по этому вполне могу работать и вскода, который, к тому же, на много легче для железа.
458 1869015
>>868401
Эта хуйня даже умеет сама ресолвить и вставлять импорты Ебанумба
459 1869018
>>869015

> imagge.jpg


Что, тоже заебался вручную переименовывать картинки в image?
460 1869028
>>869018
Устал разгребать мелкоскрипты
461 1869084
ГО
462 1869232
Мне никто так толком и не ответил, с кем конкурирует гошка в экономико-техническом плане.

Перефразирую, если в проекте где подходит гошка используем не гошку, то что тогда?
463 1869246
>>869232
Ну тебе ответили
Весь скриптовый зоопарк Python Ruby JS PHP
Проперженный тырпрайз JVM C#
Если скорее технически - какой-нибудь эликсир

Ты можешь взять и написать любой сервис с типами, идиом ооп, латенси-гц перформансом и мультитредом, поддерживаемым комунитей код стилем, тонной изкоропочных либ на все случаи жизни и в среднем это всё будет собираться в ~30мб бинарник из которых 10 рантайм
464 1869250
Есть курсы какие-то на udemy или что-то похожее?
465 1869277
>>869246
Короче конкурент всему и сразу, такой вывод можно сделать?
466 1869279
>>869277
Джава пхп не конкурент, а гошка конкурент и пхп и джаве?
467 1869292
>>869277
Нельзя.
468 1869300
>>869277
Сейчас буквально каждый язык позиционирует себя как генерал пурпос, из которого можно слепить что угодно
Го тоже, но со своими тех характеристиками значительно выделяется на фоне остальных
>>869279
два труъ ооп языка vs оопшное имплисит лего
житовские вм и сги vs натив
конкуррент танцы с бубном vs гугловский эвент луп и зеленые потоки
отдельный штат девопсов vs 5 строчек на мультистейж докере
пердолинг пакет менежера vs импорт ссылки на гитхаб прямо к код )

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

>Эта хуйня даже умеет сама ресолвить и вставлять импорты Ебанумба


Так это и го туллинг умеет, вроде go fmt тоже это делает. Другой вопрос в том, что руками его запускать может задалбывать, на много удобнее когда тебе это ИДЕ при сохранении вызывает.
470 1869742
Привет, Goвнюки.

Что с работой на го?
И сколько нужно потратить на вкат, если уже давно
умеешь программировать на си, джаве, питоне, жс/тс, чтобы получать не меньше, чем на той же джаве?
471 1869847
>>869742

нет пути для формошлёпа в божественный мир хайлоада на го
472 1870158
>>869847
Нет такого слова "highload".
Можешь хоть в гугле поискать - хуй найдёшь.
Это рунглиш. У белых людей это называется "high performance".

И что там с работой, реально?
473 1870253
>>869742
Есть инфа от знающего человека, что у нас в языке скоро ожидаются реальные изменения. После того, как стабилизируют ситуацию женериками, уничтожат !=nil (запрещенный во всех языках эррор хендлинг), добавят оверлап интерфейсов. Тогда и сформируется окончательный альянс С и Java в одном флаконе. Спрос поднимется и будет держаться, тырпрайз ничего не сможет сделать. Сейчас главное не бухтеть.

>/pr
>Что с работой
474 1870281
>>870253

> тырпрайз ничего не сможет сделать


Тогда тырпрайз начнёт писать проекты на Go, в чём проблема. Вот только эксепшонов и дженериков для этого не достаточно, пока РЯЯ ПИШЕМ МАКСИМАЛЬНО EXPLICIT ЦИКЛИЧЕСКИЕ ЗАВИСИМОСТИ НЕ НУЖНЫ ПАКЕТЫ ЧЕРЕЗ ГИТХАБ А ЗАЧЕМ ВАМ ДЕБАГГЕР ФРЕЙМВОРКИ И ИНФРАСТРУКТУРА.
475 1870340
>>870281
Что сказать хотел?
476 1870359
>>870340
Что?
477 1870376
Поясните, пожалуйста, что нужно курить, чтобы понимать unsafe код? Вот, как пример - нашел в исходниках протобафа однострочную функцию, где i - это поинтер на интерфейс.

>(*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]

479 1870397
>>867480
лол бля
с таким опытом 150+
я работал те же 9 месяцев джавистом - дай бог половину их твоего списка потрогал, в основном сидел кишки jvm и спринга изучал, и то охуел
перекатился на го, зп у людей с моим опытом и навыками в диапазоне 120-180к
480 1870398
кто-нибудь знает о golangcourse.ru, стоит оно 45к на 3 месяца? это те же курсы, что и на курьере, но с живым код-ревью от директора из мейла и обещают помочь в трудоустройстве отличившимся
481 1870417
>>870398

>45к на 3 месяца


Цыгане совсем уже охуели.
Никакие интернет-курсы столько стоить не могут.
А особенно по go.
482 1870434
>>870398
Я как-то пару раз прошёл готур (с перерывами между ними, ибо на первый раз нехуя не понял) и поговнокаживаю себе проектики
Честно говоря, не очень представляю, как можно отличиться, пися на гошке если не в худшую сторону
483 1870487
>>870376

что непонятного-то, привели интерфейс к пойнтеру, его привели к указателю на массив из двух пойнтеров и взяли второй элемент, тот в котором значение хранится (в первом тип)

>>870384

cgo тут не при чем

читай исходники го, единственное, что в данном случае можно посоветовать
484 1870502
>>870487

>что непонятного-то


в_самом_деле.jpg

Ребята, вы на такой хуйне энтерпрайз писать собрались?
Мечтатели, блядь.
image.png71 Кб, 483x885
485 1870505
>>870502
Не осилил 11 слайд гайда для чайников
@
Ребята, вы на такой хуйне энтерпрайз писать собрались?
486 1870508
>>870505
Чувак, это ты не осилил понять, что я имел в виду.

Подобная путаная и двусмысленная хуита не подходит на замену джаве.
Которая хороша именно своей простотой и недвусмысленностью.
Поэтому на ней пишут энтерпрайз, понимаешь?
487 1870509
>>870384
Окей, похоже по диагонали документацию читать было плохой идеей.
>>870487

>что непонятного-то


Для меня не очевидно, что можно кастануть структуру с двумя поинтерами в арей поинтеров. Вообще что во что можно кастануть, чтобы это не упало и чтобы имело смысл.
image.png17 Кб, 546x91
488 1870536
>>870508
Ты прикалываешься или что-то?
489 1870594
>>870158
Работа есть, мой тимлид проводит собеседования почти каждый день, и рассказывает такое, что волосы стынут в жилах.
490 1870605
>>870594

> рассказывает такое, что волосы стынут в жилах.


В смысле?
Тупые ебанаты приходят, или наоборот?
491 1870611
>>870594
И да, какого рода проекты вы делаете на go?
492 1870669
>>870502
>>870508

Васёк, иди обратно в свой загончик для ынтырпрайзных 1С

>>870509

> Для меня не очевидно



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

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

>>870605

Васьки вроде >>870502 приходят и начинают рассказывать, о своей охуенности, а как начинаешь спрашивать конкретику, то пук-среньк и мы вам перезвоним

>>870611

интырпрайзные, блять, посмотри на отечественный фаанг - все себе уже го притащили (плюсом к существующему стеку и переписывают легасню)
493 1870679
>>870605
Пиздец тупые, просто блять фантастика. Это видимо они рассказывают в МВП треде, что пять лет назад вкатились бы, а сейчас требования не те
>>870611
На го делают только один тип проектов - микросервисную клауднейтив высоконагруженную джейсономешалку. Можешь ещё маркетинговых терминов насыпать
image.png125 Кб, 630x630
494 1870687
Хочу вкатится в ГО из-за того, что у него милый маскот и мне нравится светло-голубой цвет.
Пожалуйста, отговорите меня ну или просто обоссыте
image.png59 Кб, 1280x1439
495 1870705
>>870687
Мерзкий маскот, у меня ассоциируется с ленивцем из мультика про ледниковый период. Лучше в нормальный язык вкатывайся (пикрил).
496 1870709
>>870687
Можно разочароваться в парадигмах, подходах, идее языка, виду работ на котором его используют.

Но можно ли разочароваться в милом маскоте, с которым с каждым годом будет больше контента?
Ты самый просветленный в треде.
497 1870771
>>870679

>На го делают только один тип проектов


Я имел в виду предметную область.
498 1870795
>>870687
Этот маскот похож на кузьмича с усами из советских фильмов.
499 1870846
>>870705
А в плюсах кто маскот?
Дерьмодемон?
image.jpg1,1 Мб, 2160x1440
500 1870854
>>870846
Кресты выше всяких маскотов. Крестами серьёзные люди занимаются.
501 1870866
>>870854
Байтослесаря на приборостроительном заводе?
502 1870874
>>870866
Ещё в НИИ.
503 1870982
>>870866

>Байтослесаря


Лол, а типа в го не байты переставляют
504 1871220
>>870771
Ну например Авито работает на го, как минимум частично.
505 1871316
>>870982
Ну ты же не гоняешь их по всяким RS-485 интерфейсам между коробочками, в которых всю эту хуйню нужно засунуть в пару килобайт, где половина кода работа с памятью, а половина гоняемых данных это контрольные суммы. А вот есть байтослесаря на заводах за 30000 в месяц занимаются подобной хуйней с паяльником в руках.
506 1871425
>>870854
>>870705
Писать о крестах в тред языка за авторством одного из главных крестовых отрицал, одной из мотивациий которого при создании тредязыка было поссать на кресты, лул
507 1871476
>>871425
На кресты уже поссали горячей тугой струёй четверть века назад.
Когда создали джаву.
508 1871482
>>871476
А потом решили поссать на них обоих и создали шарп.
509 1871484
>>871482

>сярп


По итогу захлебнулись в своём же говне и моче
510 1871486
>>870669

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


А на собеседовании могут такое спросить?
511 1871604
>>871486

чтобы что?
sage 512 1872031
>>867629
Хуево.
513 1872048
Лучше го могут быть только говна, которых еще не жрал
514 1872050
>>872048

Ты уже подкрепился?
515 1872067
>>872050

>err != nil

516 1872493
Что означает ns/op в бенчмарках? Может наносекунд на операцию?
517 1872613
>>872493
Национал-социализм - орийский порядок
518 1872829
Какой же охуенный язык
Дописываю свой первый минипроектик и точно буду использовать в будущем
519 1873347
>>872829
Для ряда задач Го действительно удобнее всего, что было до него. А в чем суть твоего проекта?
520 1873600
Вот почему в вашем говне пишут типы постфиксом и без разделителя?
Не читается же нихуя, говно ёбаное, ну.
Чего стоило там двоеточие поставить, как у всех нормальных людей?
521 1873603
>>873600
Чего стоило сделать как в нормальных языках, где префиксом и без уебанских паскалевских двоеточий?
522 1873647
>>873600
Привыкаешь примерно за день, и читается нормально. Но если паралельно пишешь на языке в котором типы - префиксы, тогда да, адово неудобно.
523 1873718
>>873647
А типы с маленькой буквы, но методы - с большой?
Это кем, блядь, надо быть вообще, чтобы такое придумать?
524 1873719
>>873718
Так типы как и методы - если с большой буквы - экспортятся, если нет - значит нет.
525 1873736
>>873718

> типы с маленькой буквы


Типы тоже с большой, когда экспортируются.
526 1873786
>>873719
>>873736
Ну, если так, то ладно, пусть будет.
Это, хотя-бы, имеет смысл, в отличие от шарпо-ебанины, например.

Взял сейчас каноничную книжку "The Go Programming Language", до этих вещей пока не дошёл, но, некоторые мотивации, стоящие за дизайном Go стали понятнее.
527 1873815
>>873786

> Шарпо-ебанины


Вкусовщина же. Мне вот snake_case больше нравится.
528 1873843
>>873347
Проект как раз уныленькое утилитное говно, но прощупать го и обкончаться от предельной практичности успел
529 1873866
Как сахарку и гибкости после пистона не хватает пиздец
530 1873870
>>873866
Ну, сахарок и гибкость - стоят нехуёвых ресурсов, как правило.
Закон сохранения никто не отменял.

А вот постфиксные типы без разделителей - это пидарство, конечно.
531 1873872
>>873866
Каких например
532 1873875
>>873872
Декораторов, итераторов, контекстных менеджеров, реализации всего и вся через протоколы, которые достаточно реализовать в своем классе и оно будет работать. Только познакомился с синтаксисом и базовыми структурами и пилю бложик для практики. Ощущение, как будто от сишки, когда в универе лабы писал. Хотя может ещё не привык.
533 1873876
>>873866
Гибкости скриптоты при всём желании в статике никак не сделать. На то она и статика.
534 1873883
>>873843
А что утилитка делает? И какой опыт на других языках?
535 1873886
>>873875

>Декораторов


Никто тебе не запрещает обернуть одну функцию в другую. В го функции это тоже значения, как и в питоне.

>итераторов


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

>контекстных менеджеров


defer решает 99% задач контекстного менеджера.

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


Через интерфейсы это реализовывать на много круче, т.к. все явное.

Спрашивай свои ответы, если что.
536 1873892
>>873886

> Никто тебе не запрещает обернуть одну функцию в другую


Так ведь весь прикол в синтаксисе @decorator, который в Go в лучшем случае через кодогенерацию, которая зло.

мимо
537 1873895
>>873886

>Никто тебе не запрещает обернуть одну функцию в другую. В го функции это тоже значения, как и в питоне.


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

>Реализуется при помощи дополнительной горутины и канала, тоже изи.


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

>defer решает 99% задач контекстного менеджера.


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

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


И это превращается с еблю с типами, что без темплейтов вызывает боль
538 1873897
>>873895

>без темплейтов


Да, типы без дженериков - это мазохизм.
539 1873903
>>873875
Ну там своя атмосфера

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

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

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

Использовать вебсервер с какой-то логикой и тем более базу данных принципиально нельзя (супер простой вс сервер я всё-таки всунул в утилиту, но нужно, чтобы всё могло работать и без него)

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

Короче страдаю хуйнёй но нравится
540 1873904
>>873892
Так это только сахар, а сам паттерн все равно же реализуем.
image.jpg42 Кб, 640x480
541 1873924
Промахнулся >>873903 >>873883
>>873875
Зачем тебе итераторы когда вопрос прохода по массивам в языке давно решен через улучшение циклов for при помощи range?
Остальные слова не понял
542 1873932
>>873924

>Зачем тебе итераторы когда вопрос прохода по массивам


Итератор это не только массивы, это еще и питоновские генераторы
543 1873959
>>873932
Генераторы в питоне - это скрытые потоки, магия.
А го специально сделан максимально простым.

>>873875
Всего этого там нет специально, как я понял из вводной главы The Go Programming Language. И дженериков тоже.

Т.е. simplicity = высшая добродетель.
Звучит заманчиво, а как оно на самом деле - посмотрим.
544 1873961
>>873959

>Т.е. simplicity = высшая добродетель.


Есть сишка
545 1873966
>>873959

> магия


Абстракция.
546 1873976
>>873966
Абстракция - это другое.
А магия - это когда у тебя потоки _неявно_ создаются.
547 1873981
>>873976
В каком плане неявно? Есть реализация интерфейса, все через него работает и все описано
548 1873983
Чем протокол от интерфейса отличается и зачем он это делает??
549 1873999
>>873961
Ну, как бы, там же написано, что го - это такая новая сишка.
Лучше прежней.

>>873932
А разве из горутины и канала нельзя сделать что-то типа генератора?
550 1874120
>>873999

> А разве из горутины и канала нельзя сделать что-то типа генератора?



оно не очень честно будет, честнее сделать явно что-то вроде

for val, err := fn(); err != nil { ... }

но питонисты, обмазанные сахаром, не знают как работает их сахар
551 1874215
>>874120
Мне кажется, что это немножко не совсем генератор.
552 1874274
>>874215

А почему?
553 1874298
>>874274
Генератор выдаёт значение тогда, когда его попросят.
Почему я и написал про горутину + канал.
554 1874312
>>874298

Я то уж было надеялся, что ты про запоминаемое между вызовами состояние скажешь, а ты вообще фигню какую-то ляпнул не подумав
555 1874465
>>874312
Нет, это ты сейчас ляпнул фигню.
А то, что я написал - это определяющее свойство, остальное - вторично.
556 1874520
>>874465

аргументация уровня "нет ты", так и победим

окропил твой рот тугой струей урины
557 1874533
>>874520
Странные у тебя фантазии.
Кого тут только не встретишь.
Это не ты рядом в мвп-треде копротивляешься, зелёный?
558 1874697
>>873932

>генераторы



Специально для питоноблядков:
https://www.reddit.com/r/golang/comments/c1ylk3/is_there_any_way_to_replicate_pythons_yield_in/

>>874520
И ты тоже почитай, когда закончишь уринировать на своё отражение в зеркале.
559 1874711
>>874697
>>874533

а вы правда чтоли не понимаете, ни что такое генераторы? ни своего мнения нет?

ну как сполоснетесь, приходите маняврировать чем это не генератор https://play.golang.org/p/GeOiqNiZH5M
560 1874729
>>874711
Чувачок, оба коммента, на которые ты сослался - мои.
Генератор - это yield, вот что такое генератор.
В одной функции может быть много yield.
А то, что у тебя - это хуита.
561 1874738
>>874729

Возвращайся с формальным определением и кейсами использования

А пока моя сахарная елда попользует твой рот
562 1874743
>>874738
Проснись, ты обосрался дружок.

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

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

>Генератор - это yield, вот что такое генератор.


>В одной функции может быть много yield.


Перетолстил
564 1874758
Что почитать про архитектуру проекта (сервера)? В частности всяких веб серверов. Никак не могу справиться с ростом проекта, в какой-то момент становится вообще нихуя непонятно что где и почему. Понимаю что вопрос скорее всего более обширный и не относится в частности к языку. В какой-то степени осознаю что это от неопытности, но где же взять этот блять опыт.
565 1874859
>>874758

как раскладывать файлики по папочкам можешь тут посмотреть https://github.com/golang-standards/project-layout

в остальном - читай книжки, как объектно-ориентированное программирование работает, потом читай опен-сорсные исходники, потом пиши сам и двигаясь так по кругу накопишь этот самый опыт
566 1874863
>>874743

https://docs.python.org/3/library/exceptions.html#StopIteration

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

ультимативно обоссан
567 1874971
Почему нет конструктора недоклассов? Даже дефолт Посмотрел SO, везде предлагают делать отдельную функцию для создания объекта, даже для указания дефолтных переменных.
sage 568 1874994
>>874971
Потому что у создателя говноланга единственное правильное мнение на любой вопрос.
569 1875043
>>874863
Ладно, согласен, про ошибку было лишнее.
Сам так делаю иногда, лол.
Например, на джаве, с CompletableFuture.


Но, тем не менее, то, что у тебя - это не генератор.
Это - похоже на генератор.

Генераторы - это потоки.
yield - это передача управления другому потоку.
Поэтому, генераторы - это горутины + каналы.

Я с го познакомился буквально пару дней назад.
Но, мне кажется, что такой подход даже интереснее, чем питоновские генераторы.
570 1875084
>>875043

> Генераторы - это потоки.



ты с питоном-то не разобрался, как это работает, куда уж тебе до горутин с каналами, болезный
571 1875092
>>874971
Потому, что explicit is better, than implicit.
Питоноёбы поймут.
572 1875094
>>875084
Чувак, ты надоел, иди уже на хуй, пожалуйста, не сри в тред.
573 1875096
>>875092
У них есть конструкторы
574 1875097
>>875096
explicit is better, than implicit - одна из питоновских мантр.

Я имел в виду, что создатели го постарались минимизировать неявную работу с памятью.
Вот что пишут в книжке GOPL:
Go encourages an awareness of contemporary computer system design, particularly the importance of locality. Its built-in data types and most library data structures are crafted to work naturally without explicit initialization or implicit constructors, so relatively few memory allocations and memory writes are hidden in the code.
575 1875127
>>875094

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

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

Чувааак, тебя вот тут https://2ch.hk/wrk/res/2149646.html (М) братишки заждались, а здесь не надо демонстрировать глубину своей тупости, в это ни весело и никакой ценности не несет
576 1875143
>>875127
Генераторы - это сопрограммы. Концептуально это можно назвать потоками. Горутины - тоже не потоки, в конце концов.
577 1875145
>>875127

>я по полгода себе никого в команду найти не могу


Потому, что ты токсичный закомплексованный уебан?
578 1875191
>>875097
Явности нужно в меру, иначе это заставляет разработчика писать кучу лишнего кода. Создатели сами поняли как обосрались и решили завезти темплейты в 2.0, как пример.
Те же конструкторы это тоже просто функция, которую можно было бы и в методы структуры добавить, вообще ничего не изменится, кроме уродского способа создать класс с дефолтными параметрами.
579 1875197
>>875143

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

>>875145

твоей мамке вроде нравлюсь, завтра попрошу ее сократить твое время за компьютером, то зрение еще испортишь
580 1875198
>>875097
Explicit = boilerplate.
image.png411 Кб, 512x361
581 1875206
>>875191
>>875198
Господи б-ж, какие же нехорошие создатели го, насильно заставляют бедных анончиков писать на своем ужасном и неудобном языке, ай-яй-яй, что же это в мире творится
582 1875219
>>875206
Ты сейчас с попыток нормального объяснения просто оскорблениями начал кидаться. Авторы уже сами поняли какое ГОвно высрали. Надеюсь, что вторая версия все исправит.
583 1875231
>>875219
Керниган в GOPL пишет:
But it has comparatively few features and is unlikely to add more. For instance, it has no implicit numeric conversions, no constructors or destructors, no operator overloading, no default parameter values, no inheritance, no generics, no exceptions, no macros, no function annotations, and no thread-local storage. The language is mature and stable, and guarantees backwards compatibility: older Go programs can be compiled and run with newer versions of compilers and standard libraries.
584 1875235
>>875219
не будет второй версии
585 1875237
>>875231
Забыл добавить - и это охуенно.

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

>нет дженериков в типизированном языке


>охуенно


Пиздец как радовались плюсовики, когда узнали, что функцию на каждый тип копировать нужно
587 1875255
588 1875261
>>875243
Generics are convenient but they come at a cost in complexity in the type system and run-time. We haven't yet found a design that gives value proportionate to the complexity, although we continue to think about it. Meanwhile, Go's built-in maps and slices, plus the ability to use the empty interface to construct containers (with explicit unboxing) mean in many cases it is possible to write code that does what generics would enable, if less smoothly.
https://golang.org/doc/faq#generics

Они сделали приоритетными скорость работы и простоту.
Т.к. закон сохранения никто не отменял, это означает несколько больший объём (кода).

Также, например, можешь поинтересоваться, почему го генерит такие большие бинарники.
589 1875263
>>875237

плюсую, но вот это печалит

> И язык теперь будет под них подстраиваться



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

>>875255

не, с дженериками ребята прогнулись и в каком-то виде их затащат, в этом ли или другом - одному Пайку известно
590 1875271
>>875263

>гошка из простой и понятной


Примитивной
591 1875386
>>875191

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


Так если нет разницы, зачем это реализовывать и использовать? Просто по тому что в том языке, к которому ты привык - так сделано? А смысл тогда новый язык создавать, а не дополнять существующий?
592 1875407
Я правильно понял, что я могу объявить пустой интерфейс и прокидывать в функции вообще все что угодно?
593 1875456
>>875407
Да, что угодно реализует интерфейс без методов
594 1875489
>>875407
Да, но иногда удобнее принимать unsafe.Pointer или reflect.Value, которые так же можно получить из значения любого типа
595 1875558
>>875456
>>875489
Странное ощущение, вроде как тут говорили про отсутствие дженериков, они формально есть, но по принципу "все или ничего". Да и вообще, в начале тура водят по типам и вообще, вроде как язык типизирован, а потом вылезает это.
596 1875564
>>875558
В Си тоже есть void*, это не противоречие
597 1875570
>>875564
А интерфейс указывает, что принимать можно только указатели? С ними еще понятно, потому что это просто ссылка в памяти, но не объекты же. Спокойно же можно создать array с разными типами через это.
598 1875579
>>875570
Нет, пустой интерфейс может скрывать любой тип, не только указательный.
599 1875581
>>875579
Я к тому, что в сишке при указании войда ты можешь работать только с указателями. В го можно засунуть любой тип, это и странно, учитывая, что оно тут используется везде и неизвестно, ожидает на прием функция. Type safety проебывается.
600 1875611
>>874859
Спасибо за ссылку
601 1875621
>>875570

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


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

>>875581

> Type safety проебывается.


Так это и есть назначение пустого интерфейса.
602 1875673
Скажите пожалуйста нахуя мне женерики
603 1875679
>>875581

> Type safety проебывается.


Type safety в том, что без явного преобразования к реальному типу ты ничего с пустым интерфейсом не сделаешь.
604 1875687
Кто-нибуть пытался из error стринги собрать псевдо-стектрейс? По идее если раз'split'ить сообщение по ":", то для каждого куска скорее всего найдеться всего несколько совпадений по проекту, а если еще и отбрасывать на кажом последующем этапе все остальные бранчи, куда исполнение из текущей позиции не может дойти - почти гарантированно получаем единственный путь, по которому прошла ошибка. Мне кажеться странным, что это еще никто не реализовал подобную утилиту, с учетом того, что практически каждый гофер постоянно делает все это вручную.
605 1875712
>>875687
Тут один анон писал, что у него на работе что-то такое навелосипедили.
606 1875717
>>875679
Это прям как утинная типизация из скриптодрисни
607 1875727
>>875717
Она и есть. Поэтому в пщ и набежали толпы восторженных петухонщиков и жопаскриптеров.
608 1875823
>>875727
Я как то не особо верю, что такая вещь работает быстрее, чем потенциальные дженерики
609 1875873
>>875687
чем обычная errors.Is/As не нравится? ну и можешь выкидывать свой тип ошибки в котором стактрейс уже лежит.

>для каждого куска скорее всего найдеться всего несколько совпадений по проекту


где-то я читал что рекомендуется каждую ошибку делать с уникальным сообщением как раз для этого

>утилиту


консольную утилиту или какую-то либу которая делает то что в принципе можно сделать без нее и довольно удобно? не понял короче.
610 1875928
>>875727
Я сам из питона набежал, но разочарован этим, на прошлом проекте почувствовал, что нужно обмазаться типами и статикой. А тут то же самое в глотку засовывают
611 1876029
>>875673

Конечным разработчикам они и не нужны

но с ними может навелосипедят что-нить типо джавового hibernate или аля питонячий "functional-go" и прочего
612 1876049
>>876029

>питонячий


>functional


Как можно всерьёз говорить о ФП в языке, где лямбды могут быть только однострочные, лол?
Это даже не смешно.
613 1876051
>>876049
Выходит, и хачкиль не функциональный, ведь там любые функции/лямбды должны быть в одно выражение.
614 1876199
>>875712
Ты не знаешь, может в опенсорс выкладывали?

>>875873

>чем обычная errors.Is/As не нравится? ну и можешь выкидывать свой тип ошибки в котором стактрейс уже лежит.


У меня немного другое видение этого.

>консольную утилиту или какую-то либу которая делает то что в принципе можно сделать без нее и довольно удобно? не понял короче.


errors.Is/As решает другую проблему - обработку ошибок в рантайме. Я же хочу сделать статический анализатор, которому буду скармливать строку ошибки, которую я достал из логов, и исходники. На выходе я хочу получить строки, на которых эта ошибка дополнялась через fmt.Errorf("bla-bla: %w") (или другими способами), чтобы на выходе получить нечто, похожее на стектрейс.

> где-то я читал что рекомендуется каждую ошибку делать с уникальным сообщением как раз для этого


Это разумная рекомендация, но я не уверен, что ее придерживаться в 100% случаев, по этому думаю как можно хендлить более неприятную ситуацию. По крайней мере я сам пару дней назад видел на работе 3 ошибки с одинаковой стрингой, но они все в разные бинари по итогу попадают.
615 1876232
>>876199

>Я же хочу сделать ...


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

Кстати, если такое писать, то лучше делать это на перле.
616 1876241
Задача такая, преобразовать строку так, что если после буквы стоит цифра, то сама буква повторялась указанное число раз. Наговнякал это, но кажется, что можно изящнее
https://play.golang.org/p/mMas2Sldlju
617 1876245
>>876241
Не сильно изящнее, но сильно производительнее будет через strings.Builder
618 1876247
>>876245
https://play.golang.org/p/h1qwq9e5Qrm
Это в любой книжке по пщ есть? А то в туре этого не увидел.
619 1876250
>>876241
Хуячь сразу в слайс байтов исходную строку (у тебя же там не юникод?)
Вместо выходной строки - тоже слайс байтов.

При желании - можно захуярить в 2 прохода - на первом посчитать длину резульата, создать массив байтов, на 2-м - заполнить его.
Найденные на 1-м проходе токены (буква+число или набор букв) можно сохранить в массиве слайсов исходного массива, чтобы не искать заново.
620 1876272
>>876241
Вот, с байтовыми слайсами:
https://play.golang.org/p/V3_PFfxNk7L

>>876250
Я думал, там число в условии, а там 1 цифра, т.е. всё гораздо проще.
sage 621 1876296
>>876272
А чтобы со строками (unicode) работало - надо просто заменить слово byte на rune.
622 1876406
Перекаты нинужны?
623 1876408
>>876406
Больше перекатов на будет, это последний тред про Go.
624 1876419
>>876408
Не последний, а крайний ультимативный.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 24 апреля 2021 года.

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

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