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

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

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

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

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

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

Прошлый >>1603114 (OP)
2 1635788
Какой-то язык для ГОлубых.
3 1635790
В шапку можно добавить https://quii.gitbook.io/learn-go-with-tests
Введение одновременно в go и TDD.
4 1635791
5 1635793
Поясните за реализацию паттерна шаблонный метод:
https://golangbyexample.com/template-method-design-pattern-golang/

Здесь промежуточные шаги в разных реализациях сделаны намеренно разными, чтобы не возникало лишних вопросов, но что если какая-то часть алгоритма для всех реализаций общая? В традиционном ооп-языке это было бы заключено в метод абстрактного класса, от которого бы наследовались конкретные реализации. В го, я так понимаю, надо просто объявить непривязанную функцию в пределах пекеджа, но так как реализации должны выполнять контракт интерфейса, такой метод должен быть и у них, и заключаться он будет в единственном вызове той функции. Коряво как-то.
6 1635798
>>635788
Для ГОсударей.
7 1635903
Есть список книг по Го как по Пайтону? https://yadi.sk/d/HQhhsBsq3TVRUq
8 1635943
>>635903
Нормальные книги по го написали только Брайан Керниган и Билл Кеннеди, остальные - какие-то дикие индусы от издательства Packt.
9 1636000
Каково это быть dsl для php?
10 1636002
>>636000
Только для php ли?
11 1636072
>>636000

>go это dsl для php


Как ты пришел к такому умозаключению?
12 1636129
>>636072
Я шизик.
13 1636183
А на Го вообще есть вакансии в РФ? А в США кроме Гугла?
14 1636195
>>636183
есть конечно
15 1636202
Учу Go.
Поясните, должен ли я любой свой проект создавать в $GOPATH/src?
16 1636207
>>636183
Ты думаешь к двачеров есть свой особенный hh.ru?
17 1636213
>>636202
Нет. С новой версией проекты в $GOPATH/src считаются устаревшими. https://blog.golang.org/go1.14

Используй модули https://blog.golang.org/using-go-modules
18 1636215
>>636213
Спасибо.
19 1636222
>>636213
А в джаве ввели модули, а их никто юзать не хочет.
20 1636226
>>636207
В основном это крупные конторы. Rambler, например, активно использует Go, проводят по нему митапы. Но есть еще куча криптовалютных стартапов, которые думают что у них хайлоад и по этому избегает динамикодрысни
21 1636236
>>636226

> Rambler, например, активно использует Go


Я думал там деды совковые сидят, судя по недавней ситуацией с нгинксом.
22 1636374
>>636236
Я думаю там дохера людей, которые получают на много выше рынка, и плюс к этому они еще за счет того что работают в крупной конторе имеют СТАБИЛЬНОСТЬ, которая мне, например, мелкогалерному ( <30 душ) рабу и не снилась. Так что не думаю что из-за этой истории от туда массово поперли работники
23 1636567
>>636183

>А на Го вообще есть вакансии в РФ?



Есть, но не для начинающих программистскую карьеру с Go. И только в паре городов на всю страну. Без опыта кодинга на каком-нибудь легаси-шлаке не возьмут.
24 1636586
>>636567
И зачем учить го, если уже можешь получать деньги на другом стеке?
25 1636599
>>636586
Учат пщ в основном те, кому он реально нравится. Это не промышленные языки типа Java, JS или php, которые учат ради вакансий.
26 1636606
>>636183
ну в дс должны быть. я ж устроился на го с нулевым опытом какой-либо работы.
27 1636648
>>636599
ПЩ это как раз промышленное бизнес-говно.
28 1636661
>>636648
Легаси пока маловато.
29 1636668
>>636661
Почему его маловато за 10 лет?
30 1636708
>>636668
я не он но мне кажется легаси за 10 лет накапливается меньше, чем за большее количество лет (за 15 или 20, например). ну это без учета географии. насколько там распространен был го в россии десять лет назад? у нас еще не весь сишарт на него переписали.
31 1636711
>>636606
Го был первым языком?
32 1636713
Почему в Котлин-треде Го называют шипами в заднице? https://2ch.hk/pr/res/1615299.html#1636068 (М)
33 1636719
>>636708

>насколько там распространен был го в россии десять лет назад?


Кстати, периодически слышу о компаниях, которые начали использовать пщ в проде до релиза 1.0. Как можно быть такими мудаками? Им на столько насрать на свои проекты? Там же API и стандартная либа пиздецки поменялась, при том почти все - ломающие изменения. Тогда еще паник не было, были тупо креши, нахуй так жить? Я в своей сраной конторе не могу убедить людей писать на пщ всякие микросервисы для потоковой обработки всякого (стримы в js-е имеют сверх уебищный API), а тут люди как-то начали на нем писать как на основном языке
34 1636722
>>636713
Не обращай внимания на идиотов.
35 1636776
>>636719
Какая тебе разница, пусть хоть на D пишут. Куда не плюнь, везде вахтеры сидят.
36 1636838
>>636776
Это просто зависть слегка, что я не нашел на Go зп как у себя на ноде. Вот и проиходиться жрать что дают
37 1636905
>>636711
нет, с петоном и плюсами знаком, ну там sql еще. типичный набор выпускника инженерной специальности и несколько проектов без звездочек уровня "консольная программа" (ну как в вакансиях пишут) на гитхабе. я вообще хоть какую-нибудь вакансию по плюсам искал.
38 1636910
>>636776
Это просто зависть слегка, что я не нашел на Go зп как у себя на ноде. Вот и проиходиться жрать что дают
39 1636928
>>636905
И что на го делаешь? Очередную беткоинг-биржу?
40 1636948
>>636567
дс вкатился с нуля, первый язык(работа), и я даун, то потому что был готов грести - прижился
41 1636990
>>636905
консольные проги с tui-интерфейсом сложнее делать, чем gui-формошлёпство
42 1637003
>>636948
ну-ну, так тебе и поверили... видимо, ты что-то недоговариваешь
43 1637008
>>636990

>консольные проги с tui-интерфейсом


в этом итт треде
44 1637062
>>637003
причем вкатился в 26, до этого ни разу не работал, прошел курсы на курсере от майлсру и все)
45 1637073
>>637062
дз все с курса сделал? А то они там хардовые, не гладко пока идет
46 1637079
>>636948
в дс любой дурак вкатится
47 1637113
>>637079
нет, не вкатится, чел явно что-то недоговаривает
48 1637137
>>636928
магазин вроде озона. я пока на испытательном сроке, не жуниор даже
49 1637138
>>637073
да только первый курс, второй курс даже не успел начать, нашлась работа
>>637113
ты сам кем рботаешь? сколько тебе лет? меня заставляли даже собеседовать людей нахуя непонятно, порофлить на до мной или посмотреть на что я способен, как по мне то и так видно что я даун социофобный, и приходили люди которые даже не знали что будет если в json.Marshal передать структуру где поле с маленькой буквы названо, при этом утверждали что на предыдущей работе получали 70к
50 1637145
>>637137
какое тебе первое задание дали? штат большой гошников?
51 1637150
>>637073
Курс там как-то с места в карьер начинает, но в пдф-ках много полезных ссылок на почитать.
52 1637152
>>637145

>какое тебе первое задание дали?


брать жсоны по ссылке, запихивать их в БД, сделать фронт с отображением данных табличек БД, поиском и сохранением. ну и запихнуть все это в кубер

>штат большой гошников


ну, больше 50 точно
53 1637157
>>637152

> ну, больше 50 точно


бля, случаем не вайлбериз?) когда челиков собеседовал, половина резюме от туда была, говорят там ад хотя и я по 10 часов сижу, да еще и по субботам иногда
54 1637164
Кто-нибудь писал на го логику для фронтенда (gopherjs или там комипиляция в webassembly)? Как оно на вкус?
55 1637167
>>637157
бинго. про ад не могу ни опровергнуть, ни подтвердить. я жду когда мне нормальную работу будут давать. в команде про особые напряги не слышал.
56 1637189
>>637167
У вас сайт как говно сделан. Зашел по коду по смс и нет в профиле настройки "создать пароль". Мне каждый раз по смс заходить?
57 1637203
>>637167
а зп какая?
58 1637226
>>637203
Cтажеры 35, после испытательного 55+.
59 1637229
>>637226
у меня также было
60 1637236
>>637226
Чот не густо. А у мидлов и помидоров?
61 1637242
>>637236
на моей галере 100 / 150-200
но их мало, потому что в основном приходят джуны, год сидят и уходят, хотя к тому времени зп у них 60-70
62 1637245
>>637242
ну, это вроде норм по рынку?
63 1637260
>>637245
хуй знает, я же даун
знакомый в ламоду мидлом на 120 устроился на изичах вроде как
64 1637283
>>637260
Это в ДС?
65 1637297
>>637164
Присоединяюсь к вопросу только интересует не столько логика - с ней все понятно, сколько взаимодействие с DOM-ом
66 1637340
>>637260
На изичах можно устроить в jetbrains если соответствуешь требованиям. Ой, как и в любую другую компанию в мире.
67 1637355
>>637260
С нуля?
68 1637568
На го нет гуя!
69 1637580
>>637568
Да на нём ничего нет, даже MVC-фреймворка нормального, которые, конечно же, нинужны.

https://github.com/avelino/awesome-go#gui
70 1637727
>>637568
Третьего дня, по совету проверенного индуса попробовал https://github.com/veandco/go-sdl2. Ощущения — АТАС.
71 1637774
>>637727
Ну в чем прикол толстых бинарников, если все равно придется тащить следом тысячу зависимостей.
72 1637795
>>637774
Ты всегда можешь C зависимости статично прилинковать, с большей или меньшей еблей.
73 1637808
>>637774

> Ну в чем прикол толстых бинарников


Действительно, в чём? В пщ ведь есть единственное правильное мнение на этот счёт, выбора-то и нет. Так что это никакой не "прикол", а тупо поставили перед фактом.
74 1637925
>>637355
был сисадмином до этого, на го скриптики для себя писал
75 1638115
Почему Go? Читаем https://github.com/golang/go/wiki/WhyGo
изображение.png65 Кб, 716x638
76 1638153
>>638115

>From Java to Go 2017-01-15


Придурки, новый свитч в 14 джаве не дождались.
И свитч условие без скобок написали, уже совсем мозги гошкой отбили.
77 1638192
Кстати, как в Go в свитче сделать несколько кейсов с одинаковым телом? https://play.golang.org/p/T6cF-2gSOvn - не работает
78 1638195
79 1638448
>>638195
Хорошо, что в C++ можно так же: https://ideone.com/Pk7bWd
нет
80 1638559
>>637925

>го скриптики


чо
81 1638569
>>638559
О, это ты? >>1574106 →
82 1638890
>>637157

>я по 10 часов сижу, да еще и по субботам иногда


8 часов работаешь как обычный человек, потом останешься на пару часов, чтобы писать if err!= nil, а по субботам пишешь с нуля ассерты к тестам?
image.png30 Кб, 778x157
83 1638993
Неужели они стали понимать это?
84 1639025
>>638890

> ассерты к тестам


> к тестам


> тест


на моей галере нет времени писать тесты тесты пишет тот кто мало работает - слова тимлида
image.png25 Кб, 696x562
85 1639040
>>639025
Го умеет в сортировку?
86 1639045
>>639040

>arrayListoOf


Лол, статик выкинули, зато глобальных методов наделали, так лутше!
87 1639047
>>639040
ето котлин?
88 1639051
>>639040
Соревнование по всратости синтаксиса?
89 1639071
>>639045

> глобальных методов


Это называется функции. И есть они везде, кроме жабы и решётки.
90 1639075
>>639071
А процедура тогда что?
91 1639097
>>639075
Процедура - это когда языкоделы въебали упорина и решили для функций без возвращаемого значения ввести отдельный термин.
92 1639162
>>639097
Ну или всякие монадоёбы иногда так функции, возвращающие IO, называют
93 1639286
>>639045
Лол, ты впервые увидел функции?
95 1639292
>>639287

>koans

96 1639312
>>639287

>ето котлин?


>Нет


>kotlinlang.org


Ясно.
97 1639314
>>639286
Нет, в паскале еще видел такое.
98 1639320
>>639045
>>639047
>>639051
Лол, зачем гоферов пугаешь, вот котлин
https://pl.kotl.in/WZVa7tts6
99 1639467
>>639162
Вообще, я натыкался на мнение, что с семантической точки зрения функции предназначены для того, чтобы что-нибудь посчитать/сконвертировать/etc, основываясь на параметрах, и вернуть результат, а процедуры выполняют какие-то действия, изменяющие состояние (глобальное или у параметров). Под это определение могут попадать и борщехлёбские IO (), и сишные void.
100 1639493
101 1639502
>>639493
Ого, оказывается, даже термин есть. Двач познавательный.
102 1639542
https://github.com/golang/go/wiki/GoUsers#russia
Маловато у Go пользователей в России. В чём причина?
103 1639543
>>639542
Да в рашке и IT относительно мало.
104 1639560
>>639542
Потому что вы селюки.
мимоукраинец
105 1639695
>>638153

>2020-03-02


>Our team already had plenty of prior experience with comparable projects in a similar environment using JVM languages like Java or Kotlin. This time, however, we chose Go. and here is why.


читать далее https://tech.trivago.com/2020/03/02/why-we-chose-go/
106 1639699
>>638115
блин, тока щас узнал, что TJ Holowaychuk теперь гофер https://medium.com/code-adventures/farewell-node-js-4ba9e7f3e52b
107 1640007
Суп гоч. Учу го попутно пишу бота для телеги. Сейчас пытаюсь управиться с GORM.

Вот хочу узнать когда мне нужно модели с базой синхронизировать? До этого писал на пистоне (Django ORM), там с этим строго и понятно. Тут пока не могу в workflow вьехать.

Можешь пояснить по хардкору?
108 1640034
>>640007

> го


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


> GORM


> Django


Комбо. Этот набор уже пора добавлять в шапку.
109 1640038
>>640034
Не выёбывайся, плез. Я пишу бота не для того, чтобы написать бота, а чтобы познакомиться с конкретными технологиями.
110 1640058
>>640038
горм в го лишний
111 1640061
>>640058
А что тогда вместо него? Чистый SQL?
20к звезд на гитхабе, ну хз
112 1640064
>>640061
ну да, берешь какой-нибудь sqlx или squerrel и вперед, так у нас делаем и в майлру также челики делают.
113 1640068
Алсо, у меня подбамбливает с тулзов пиздец. В каком редакторе вообще на пщ пишут? Почему gopls не видит структуры из пэкэджей в соседней папке, так блядь ещё и ругается, что нужно либо напрямую с гитхаба импортить пэкедж либо добавлять в GOPATH.

>>640064
А если мне внезапно понадобится переехать с одной БД на другую?
Я, конечно уже успел прочитать мнение что в GO предпочитают писать чистый SQL, но наравне и мнение что желательно всегда использовать ORM для чистоты кода и переносимости к смене БД.
114 1640072
>>640068

> А если мне внезапно понадобится переехать с одной БД на другую?


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

> Почему gopls не видит структуры из пэкэджей в соседней папке


тоже эта параша бесила, сидел на vs code год и потом плюнул и сижу на goland'e, сбрасывая себе триал переодически
115 1640076
>>640068

>А если мне внезапно понадобится переехать с одной БД на другую?


То ты сядешь и пререпишешь разово весь sql код путем автозамены или статической трансляции с одного диалекта на другой. Немогёшь?
116 1640078
>>640068
сижу на вскоде. захожу в проект, делаю го гет пакет. и пакет становится виден. ну разве что иногда перезагрузить ленгичсервер нужно.
117 1640097
>>640068

> А если мне внезапно понадобится переехать с одной БД на другую?


На практике такое бывает крайне редко такого не бывает никогда.
И следует помнить, что раз ОРМ призваны поддерживать любые СУБД сразу, то в результате получается пересечение их возможностей, то есть где-то на уровне ниже SQLite.
Screenshot20200322193541.png12 Кб, 280x191
118 1640101
>>640072

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


Да, это пиздос. Я от несовершенства этого мира страдаю пиздец. Хотел одновременно изучить emacs (нравится, что можно делать абсолютно всё без мыши) прпуиер с ищучением го, но вот уже как месяц (а то и больше) пытаюсь изучить го, так я 95% времени пердолился с его тулзами, и жалкими потугами запустить эти тулзы в emacs'e. Бляяяя так бесполезно время я ещё не проебывал. Даже если бы в игори играл там я хотя бы удовольствие получал бы.

Думал VSCode будет лучше (а по скорости настройки нового языка он действительно лучше), но все тулзы языка используются прежние. Собственно сменилась только обертка, а кривой инструментарий остался.

Блядь я всей душой хочу слезть с JetBrains (швабода, членукс, вот это всё), но мне стоит только один раз запустить IDE, как сразу приходит гнетущее меня осознание, что все эти "бесплатные", "свободные" редакторы кода это ебучий notepad по сравнению с полноценными IDE, и что для развития проекта одной "свободой", "открытостью" и "сообществом" сыт нихуя не будешь, и проприетарщина этому миру просто необходима.

Пиздец, похоже нужно забивать на все эти члениксы и дроч на СПО, возвращаться на винду, и учить какой-нибудь сисярп или жабу.

>>640076
Я вообще с SQL на "Вы". Да, я понимаю, что его надо бы учить в первую очередь, но сейчас я хочу Go и бота по-быстрому

>>640078
Вот у меня пакет users. Как мне сделать так, чтобы gopls увидел что в нём есть или хотя бы просто перестал срать, что я не нахожусь в GOPATH?

>>640097
Я с тобой согласен. Но в вакансиях вроде видел, что иногда требуется опыт работы с gorm. К тому же вот такой интересный документ нашел
https://github.com/Alikhll/golang-developer-roadmap
GORM там тоже не на последнем месте. В общем лишним не будет.
119 1640106
>>640101
Лишним не будет, да.
ORM обычно берут не чтобы поддерживать все СУБД разом, а чтобы легко отображать объектную модель в реляционную и не писать все запросы руками. Более того, в больших проектах часть запросов может делаться через ORM, а часть может быть нативными.
120 1640109
>>640106
Согласен. Как по мне еще профит в читаемости кода, чтобы не засорять исходники программ raw sql. А расширяют чистым SQL в том случае, когда гибкости ОРМ не хватает для хорошего решения конкретных задач. Собственно, нужно знание и чистого SQL и ORM языка на котором работаешь, в идеале.
121 1640114
>>640101

>Вот у меня пакет users. Как мне сделать так, чтобы gopls увидел что в нём есть или хотя бы просто перестал срать, что я не нахожусь в GOPATH?


а ты go mod init вообще сделал??????
122 1640125
>>640114
Вот этой хуйни я не понимаю. Мне типа надо для моего проекта govno-test-project сразу заводить реп на гитхабе и ассоциировать с ним пакет? Код работает и без этого. В goland линтер не показывает никаких ошибок, а вот gopls, как сказано в одном issue, "пока не поддерживает такой функциональности" (я так понимаю это называется "модулями")
123 1640130
>>640125
если ты не пользуешься гопатхом, ты делаешь модуль. ты первый день на го что ли? назвать свою залупу можешь как угодно, никто тебя не заставляет репу создавать.
124 1640134
>>640125
Не гитхаб, а гит. Можно завести локальную репу с произвольным адресом и никуда не пушить.
Ну и политика у гугла - заставить всег гошников юзать гит и семвер, я в ахуе просто.
125 1640136
Хороший язык, жаль работы вне ДС /ДС2 нет совершенно
126 1640137
>>640134
Я вообще с этого хуею. Думаю, скоро привыкну к специфике.
>>640130
В основном туториале про пэкеджи нихуя не сказано. На данный момент я прошел только его, и как написал выше 95% времени пердолился с тулингом и с дохлыми language server's чтобы все это говно работало в emacs. Оказалось, достаточно было поставить goland, и никаких go ьщв init он мне писать почему-то не говорит.
127 1640285
129 1640612
Серьезно, как большие дяди работают с sql в go?
В питоне, например, если проект на джанго, то там своя орм, иначе sqlalchemy. Для энтузиастов есть всякие peewee и ponyorm. Итого учишь 2-3 фреймворка. В го же куча каких-то репозиториев на гитхабе, хуй проссыш.
изображение.png685 Кб, 669x445
130 1640629
>>640612

>большие дяди


>в go

131 1640655
>>640612
авторитетно заявляю что все действия с бд должны происходить через хранимки, а все запросы из языка должны быть простыми силектами и инсертами и никак иначе.
132 1640660
>>640655
Может, мне еще КУРСОР создавать?
133 1640675
>>640655

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



Ну так го бацк ту ДВУХЗВЕНОЧКА ДЕВЯНОСТЫЕ ЕЛЬЦИН ДЕФЛТ тогда:

https://github.com/PostgREST/postgrest

И бекэндеры нинужны - достатчно одного дида-DBA от короны соответствующими мероприятиями спасать.
134 1640679
>>640675

>https://github.com/PostgREST/postgrest


Немного проиграл. А нельзя rest поднять на sqlite, тогда вообще будет удобно, бросил один файл в дропбокс, вот тебе и микросервис.
135 1640685
>>640679

С соевыми смузитехнологиями возможно всё.

https://github.com/olsonpm/sqlite-to-rest
136 1640775
Сап, двачек. Мимо фуллкек с 1.5 годами опыта на самом слабо типизированном языке в мире. Чё там у вас за пизда? Вкатываться? Камни какие?
137 1640813
>>640655
А в чем профит? Деплоить-то неудобно
138 1640819
>>640813
Почему неудобно? Скрипты миграции запустить везде легко.
139 1640820
Дан массив ['мама', 'мыла', 'раму', '']. Преобразуйте массив в строку 'мама+мыла+раму'.

Как написать такое на го?
https://pl.kotl.in/JAUGtlBt1
140 1640832
>>640775

>Чё там у вас за пизда?


Пизда и пизда.

>Вкатываться?


Как хочешь, зависит от задачи. Для большенста хуяк-хуяк-и-в-продакшен проектов тебе будет достаточно обмазаться TypeScript'ом
Лично я понял, что мне не хватает ноды, когда появилась куча задач с потоковой обработкой. Вроде как уже давно везде async-await, благодать, но как только речь заходит за работу со стримами - снова хотнический пиздец из переплетенных, словно щупальцы, калбеков

>Камни какие?


отсутсвие дженериков и if err != nil { return nil, err }
141 1640846
>>640832

> Для большенста хуяк-хуяк-и-в-продакшен проектов тебе будет достаточно обмазаться TypeScript



Так я обмазываюсь. На галере просто больше популярен ванильный жосэ. Такая хуйня.

> но как только речь заходит за работу со стримами



.then параша?

> отсутсвие дженериков



А шо, так нужны?

> if err != nil { return nil, err }



А это хуже чем
try { whore.vagina } catch(hiv) { die }?
142 1640863
>>640820
Опять выходишь на связь?
https://play.golang.org/p/3TPtLO4ayS1

Кстати, до 1.х в Go были .filter и .map, но их выпили, т.к. не нужно, к тому же без дженериков - теряеться безопастность типов.
Ну и самое главное - вызов функции - слишком дорогая операция, чтобы при обработке больших массивов делать это на каждый элемент (по этому компиляторы стараються заинлайнить все вызовы, которые возможно)
image.png2 Кб, 448x46
143 1640877
>>640863

>>компиляторы стараються заинлайнить все вызовы


В котлине это инлайн функция (пикча)

>Опять выходишь на связь?


Мне кажется вариант с циклом был бы даже читабельнее. хотя вам может так привычнее, я не сразу прочитал этот код
144 1640886
>>640101

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



у go с русскоязычной литературой для начинающих туго, то ли дело у раста https://doc.rust-lang.ru/book/title-page.html где всё легко и просто
Screen Shot 2020-03-23 at 17.16.24.png463 Кб, 1454x1446
145 1640890
>>640846

>.then параша?


Нет, там .on('eventName', cb) параша

>А шо, так нужны?


Нужны, никто же не спорит. Не просто же так https://github.com/cheekybits/genny запили и используют. Сейчас в core-тиме идет активная разработка. Видел статью, но не могу найти, где описывалось как скачать бета-версию компилятора с поддержкой контрактов, но API может еще быть изменен, да и IDE или go-pls скорее всего еще не будут поддерживать новый синтаксис

>А это хуже чем


>try { whore.vagina } catch(hiv) { die }?



Зависит от ситуации: с одной стороны в js-е (с async-await) ты можешь взять в try-catch вызов на самом верхнем уровне (например, в случае веб-сервера - http handler), и больше нигде внутри не обрабатывать ошибку, и писать только логику в случае успеха, а потом все обработать.
С другой стороны - если тебе нужно отлавливать в коде определенные ошибки - тогда как раз и начинаеться

>try { } catch(e) { if (e instanceof MyErr) { handle(e) } else {throw e}}, которые выглядят просто ужасно, если их становиться больше 1-й



А вот в го у тебя просто все, что может вызвать ошибку - оно ее возвращает как обычное значение, и тебе нужно ее либо проигнорировать, либо обработать, либо вернуть вызывающему. В результате код на половину состоит из проверки ошибки на nil и возврат, если не равно.
146 1641088
Почему у меня пщ так сильно ассоциируется с JS? И почему все переходят на него не с JS, а именно с питона???
147 1641089
>>641088

>Почему у меня пщ так сильно ассоциируется с JS?


А кто тебя знает? Чужая душа – потёмки
148 1641090
>>641088

>Почему у меня пщ так сильно ассоциируется с JS?


Потому что и то и другое - параша.
149 1641092
>>641089
Моя душа открыта, к функции на заглавные буквы.

>>641090
Во как, ясно.
150 1641095
>>641088

>почему все переходят на него не с JS, а именно с питона


Потому что писали на питоне бекенд и в итоге охуели, потому на питоне легко писать, но никто не пишет так, чтобы потом легко читалось. Встречаешь в чужом коде def foo(param) и кто его знает, что за тип у этого параметра, потому что всем западло использовать typing, вот и сидишь читаешь простыни кода, чтобы увидеть, что в это foo передается, и не факт, что сразу правильно увидишь из-за утиной типизации. В го тебе иде мимоходом все это подскажет за секунду.
А бэкендеры на жс - хтонические безбожные существа, им для запуска хеллоуворлда нужно 200 метров библиотек, они уже не могут жить вне этой скверны и над перекатом на языки для людей не задумываются.
151 1641118
>>641095
Питонщикам лень юзать typing, но не лень учить новый язык? Странно получается.

JS - это полный пиздец, конечно. Я тут недавно искал плагин для одной либы, и вместо простого скрипта мне предложили поднять бабель, вебпак, коммонжс, ноду и хуй пойми что ещё. Забил, выдернул фрагмент из исходника плагина и подстроил под либу, сразу заработало, и вся эта хуйня на десяток зависимостей нахуй не нужна оказалась.
152 1641140
>>641095

>goвно


>язык для людей


Вот это ты не удержался и в конце стал толстить.
153 1641341
>>640890

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



Щас будет анпопулар апинион, но код с проверкой на эрроркод пижже чем трайкеч
154 1641429
>>641341
Справедливо заметить, что у них разные назначения.
Невалидные данные от юзера, с последующим ответом 422 статусом - вполне ожидаемая ситуация и её есть смысл хендлить как ошибку. Невозможность сохранить что-то в базу, потому что она внезапно отъехала - не ожидаемая ситуация и тут нужен експешн, который на нужном уровне будет пойман и обработан как ответ с 500 или 503 статусом.
155 1641450
>>641429
Тут еще проблема в том, что на уровне, где случилась ошибка - совершенно не понятно, на сколько она критична для вызывающего. Даже взять твой пример,

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


Может быть как критичным, так и нет, если у нас есть врапер над драйвером базы данных, в котором мы хитрожопым образом в случае падения базы перенаправляем запрос на реплику/новый мастер
156 1641466
>>641341
Так же ексепшены часто использовались как ROP для бедных. Такое себе отделение happy path от обработки всякого говна. И часто это был misuse, учитывая, что исключения нужны, внезапно, для обработки исключительных ситуаций, а не всего подряд.

Не так давно индусня сделала фундаментальное открытие, что для ROP исключения вообще-то не обязательны. Например, уже более 20 лет известен отличный обобщённый вариант через Either + Kleisli composition в стиле type `TwoTrack a b = Either [a] (b,[a])`. В принципе, в любом мало-мальски прогрессивном языке есть его специализированные вариации. К сожалению, в убогих парашах, где ничего нет, приходится пилить свои низкоуровные реализации, пердолить тормозные развесистые try catch блоки, или вообще как диды в 80х руками обрабатывать все ошибки по месту.
157 1641472
>>641466
Забыл приклеить, чтобы было понятно что за ROP.
158 1641475
>>641450

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


Которые тоже могут закончиться.

Олсо,

>хитрожопым образом


В обработчике исключения, очевидно!
159 1641477
>>641429
в чём суть? делать два синтаксически разных типа ошибок, чтобы обозначить какая ситуация ожидаемая, а какая - нет? для этого нужен точный критерий, какие ситуация ожидаемы, а какие - нет. а то получится так, что будут ожидаемые ситуации с ексепшнами. зачем? что если отъезд базы это ожидаемая ситуация?

> не ожидаемая ситуация и тут нужен експешн


мне кажется тут пропущено много предложений, в которых выводится и обосновывается связь между необходимостью эсепшена и категорией ситуации
160 1641479
>>641477
Всё очень просто - исключения нужны там, где происходит то, что не должно происходить при нормальной работе приложения.
161 1641482
>>641479
Так же есть такой вариант: нужны там, где дальше продолжать работу (по какой-то цепочке) невозможно.
162 1641487
>>641479
В том-то и дело, что когда ты пишешь либу ты понятия не имеешь, что для вызывющего кода будет нормальной ситуацией, а что - нет. Например - OOM: для кода в юзерспейсе это редким исключением - неожиданная ситуация и кроме как упасть - нельзя ничего сделать.
С другой стороны во всяких драйверах такая ситуация вполне себе обычная и ожидаемая, и с ней нужно как-то работать.
163 1641488
>>641482
т.е. плохой юзер инпут, из-за которого мы прерываем цепочку обработки юзер инпута.
>>641479
т.е. сегфолты. если у нас несколько баз и одна отвалилась. где-то должна быть настройка не кидать эксепшены из-за баз?
164 1641506
>>641488
Если ты ещё можешь как-то рыпаться, например, как в примере про переключение соединения базы, то это не исключение, потому что ты продолжаешь работу. Если переключаться тебе некуда - продолжать работу бессмысленно и это исключение.

Насчёт инпата, те кто делают на эксепшенах ROP, сказали бы что да. Является ли это исключительной ситуацией? Зависит от домена. Если твой клиент - это уникальный источник данных, который внезапно поменял формат, что тут можно сдеать? Можно только кинуть исключение. Если это корявый юзер инпат, который предположительно может быть корявым, это ещё не конец - тебе надо сформаровать правильное сообщение об ошибке, отдать его в нужном формате и ответить. Т.е. по существу цепочка обработки никак не отличается от обработки валидных данных. В таком случае, ошибка - это данные и это не исключение.
165 1641539
>>641487
Зависит от либы.
При попытке сохранения записи с неправильными типами данных в таблицу я бы предпочёл получать эксепшен, потому что нет смысла это хендлить, да и хендлить нечего.
Но в большинстве случаев ексепшены в библиотечных функциях - зло (но иногда никак).
166 1641632
>>641539

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


А я предпочел бы получить ошибку компиляции
167 1641957
Вся разница в том, что другие языки не ограничивают программиста и не заставляют его юзать эксепшены с дженериками, а в пщ мнения рабов не спрашивали.
168 1642012
>>641957

>в пщ мнения рабов не спрашивали.


Ты так говоришь, словно кого-то заставляют использовать Go, и люди от этого страдают
169 1642014
Да, в го есть недостатки, но для меня преимущества го их перевешивают, особенно в сравнении с остальными языками, которые я знаю (python, js, c++)
170 1642018
>>641957
просто го это авторский язык, авангард.
171 1642040
>>642014
Не ври, никто не знает с++.
172 1642060
>>642040
Не ври. Все знают С++, это один из наиболее известных языков.
173 1642067
>>642060
О, это что, шутка про я знаю X = я слышал слово X != я умею писать на X)))))))))))
image.png229 Кб, 700x700
174 1642125
>>642067
Как ты догадался? А над ней милионный репост "акчуали дажа струспуп не знает ц++", узнаешь?))
175 1642146
>>642125
Хуй знает, я про акучали узнал на двоще пару недель назад где-то
image.png74 Кб, 991x559
176 1642268
Расскажи, как работает defer?

>Go's defer statement schedules a function call (the deferred function) to be run immediately before the function executing the defer returns


Если выполняется перед return, то почему здесь
https://play.golang.org/p/klPxLsZ7KqF
он подменяет возвращаемое значение?

Или вот на пике код из стандартной библиотеки. Если файл закроется перед ретурном, должна же быть ошибка? Так в какой момент выполняется отложенный вызов?
177 1642270
>>642268
Все, разобрался.
178 1642525
Аноны есть какая нибудь простенькая книженция или дока, по базовым вещам типа http, порты, tcp и всему вот этому ?
179 1642746
>>642525

> простенькая


Есть, называется Википедия.
180 1642836
>>642525
"Компьютерные сети - нисходящий подход"
182 1642919
>>642746
>>642836
>>642866

>Есть, называется Википедия.


Плохо, садись в угол.

>"Компьютерные сети - нисходящий подход"


Отлично.

>http://encyclopedia.kids.net.au/page/tc/TCP-IP


Хорошо.
183 1642997
Слушьте, а у вас вообще дебаггинг на макоси работает как-то?
184 1643014
>>642997
У тебя же есть принты
185 1643039
>>643014
У него же огромный монолит на 500к строк, который долго пересобирать после добавления каждого принта.
186 1643041
>>643039

>огромный монолит на 500к строк


>огромный


>500к


Студентик, спок.
187 1643042
>>643039
Сегодня вам дебагер, а завтра исключения и джинерики попросите? Нет уж.
И вообще го очень быстро компилиться, отлаживай принтами
188 1643045
>>643042

>отлаживай принтами


Как что-то плохое.
Всегда пишу свою отладочную обертку со стектрейсами и логами не на ГОвне, конечно же
189 1643110
>>642997
В Goland'е из коробки работает, под капотом - https://github.com/go-delve/delve
190 1643114
>>643110
Голанд денег стоит((
191 1643149
>>643114
Есть много способов получить его на халяву, либо просто пройди по ссылке в проект дебагера, который опенсорсный
192 1643180
>>643149
я с ним весь день ебусь, он не работает на маке
Screen Shot 2020-03-26 at 15.21.04.png87 Кб, 1680x286
193 1643199
>>643180
У меня - работает
194 1643208
>>643041
Разве пол милиона строк - это не огромный проект?
195 1643238
go vs java
196 1643246
>>643199
А как устанавливал его? какая версия го, длв, макоси?
197 1643267
>>643208

Не слушай даунов. 500loc это достаточно крупеный монолит. Если у вас проект значительно больше, ну там 2-3 млн loc, и это монолит - то вы пишете говнокод
198 1643281
Бтв, монолиты еще не сдохли в современном мире и в современных проектах?
Все же давно уже перешли на микросервисы, которые легко поддерживать, скейлить и заменять в случае чего?
199 1643290
>>643281
Не сдохли и не сдохнут никогда.
Микросервисы не решают всех проблем и в ряде случаев они не применимы вообще.
Аноним 200 1643291
>>643246

>А как устанавливал его?


https://github.com/go-delve/delve/blob/master/Documentation/installation/osx/install.md

>какая версия го


go version go1.12.1 darwin/amd64, из docker desktop

>длв


То что в мастере

>макоси


10.14.1 (18B75)
201 1643292
за сагу извени
202 1643294
>>643291
А, у меня 10.15, может в этом проблема
а бэкенд какой, нэйтив или дефолт?
203 1643314
>>643294
Дефолтный бекенд

>А, у меня 10.15, может в этом проблема


Вполне возможно, в go.mod go 1.11 прописан
204 1643319
>>643314
Не, я имел в виду версия макоси 10.15
У дефолтного бэкенда проблема в том, что он на всех обращениях к nil pointer падает, даже если они потом где-то обработаны, пишут что это какой-то баг в lldb которому лет 5 уже
205 1643339
>>643281
Ты отстаёшь от хайпа. Все уже пожрали микросервисов и поняли, что это просто другой компромисс
206 1643453
>>643339
Да я вообще не программист, так что мне все равно
207 1643514
>>643453
А кто ты и что ты забыл в нашем уютном загоне?
208 1643517
209 1643526
>>643517
А оно умеет в дебагер из коробки? И чем оно лучше vscode c плагином на пщ?
210 1643600
>>643526
По ссылке же написаны фичи (в т.ч. и про дебаг).
211 1643607
>>643514
Пентестер я. Смотрю что программисты нахерачили и где они понаделали ошибок, если таковые есть
Попутно пишу всякую всячину на го для себя
212 1643608
Здравствуйте.
Я дико извиняюсь за флейм. Ответ на свой вопрос искал в гугле-но там все както слишком лаконично.

А какие перспективы и востребованность Go в Европе?
Через 3 месяца еду туда работать, не прогером, и хочется через n месяцев/лет сменить деятельность.
Один коллега писал на Go, после чего лампово свалил в другую компанию за 250к, он и очень лестно отзывался о Go.

В РФ я понимаю "ГО в дополнение, чистый не нужен нахой иди впизду" и 1.5 вакансии
213 1643610
>>643517
А какая разница, оно же использует тот же delve, который у меня не работает ни в vscode, ни из терминала
214 1643696
>>643608
Молодой язык, со временем будет больше легаси, больше вакансий.
Если гугл его не убьет, просто потому что может.
215 1643711
>>643696

>Молодой язык


Го уже 10 лет, вы там совсем хипстеры с ума по сходили?
216 1643715
>>643711

> пщ: 10 лет


> жаба: 25 лет


Ну да, ровесники прям.
217 1643728
>>643711
Как для корпоративной разработки, да, молодой.
218 1643730
>>643608
плохо понимаешь
219 1643732
>>643730
Я утрирую фразы с прошлых тредов и вообще, что пишут пор Пщ в pr
Ну знаю, что можно делить на 2 пиздеж
220 1643823
>>643608

>1.5 вакансии


в ДС-ДС2 вакансии есть, это видно по хх, но всем нужны мидлы, ждуны нахуй никому не нужны, впрочем такая ситуация во всех языках, кроме пхп лол.
221 1644160
>>643823
Под ненужны, офк имеется в виду, что все реально, но нужно напрячь булки.
222 1644448
>>643715
>>643728
Эти детские маневры, 10 лет для айти индустрии это очень много, просто го не выстрелил и поэтому кажется что он молод и набирает какие-то обороты.
223 1644474
А как вы локально разрабатываете микросервисы?

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

Но вот разрабатывать таким Макаром не круто.
Что-то изменил - пересобери образ - перещапусти контейнер. Дебажить и так можно (закинуть в докер дела), но не сильно удобно.

А можно как-то вытащить доменные имена трафика наружу, на хостовую систему? Что бы запустил все, оно работает, и по запуску приложения на хосте оно могло ходить куда угодно?
224 1644475
>>644448
Человечек, ты путаешь корпоративный сектор и айти в целом. Стартап можно писать на чем угодно, он или умрет, или его зальют деньгами и его можно будет переписать. Корпорации не будут использовать то, что через 10 лет возможно умрет. Го за 10 лет не умер, сейчас он наконец вскарабкался в топ-10 tiobe, у разработчиков есть роадмап и поддержка гугла. Его будут использовать, хотя джаву он конечно не вытеснит.
225 1644570
>>644475
Дарт и перл там тоже жив.
Поддержка гугла на фоне закрывающихся проектов тоже ничего не стоит

>tiobe


Лол, деревенщина.

>есть роадмап


О, ну все, теперь точно выстрелит.

>хотя джаву он конечно не вытеснит.


То есть, он останется на обочине ненужных языков?
226 1644578
>>644474
Minikube?
227 1644642
>>644475

>Корпорации не будут использовать то, что через 10 лет возможно умрет



Да сплошь и рядом.
(1) одни копрорации покупают других копрораций; сливают АйТи отделы, конвертируют говно в мочу (или обратно)
(2) переходят к другому вендору (пушто дешевле на пять копеек; и/или новый вендор подсуетился и занёс кому надо) ; опять конверсия г в м (или обратно)
228 1644701
>>644475
tiobe вообще классный показатель. По нему получается, что корпорациям правильнее писать на бейсике, чем пщ, раз он выше.
Где треб про бейсик? Даже про 1С тред есть, а про бейсик нету. Но в тиобе он есть и даже выше c#, js и php.
229 1644709
>>644701
1C тред есть потому что у нас есть 1С. А янки пойдет устраиваться на vb.net скорее всего
230 1644717
>>644709
То есть вб.нет востребован в штатах, но больше нигде? Лол.
231 1644733
>>644717
Ойти почти нет нигде кроме штатов. Вот это лол.
232 1644734
только хуй ту устрошься забугром го погромистом
233 1644738
>>644733
>>644734
Какие интересные вещи тут рассказывают, обожаю этот тред.
234 1644757
>>644733
В Индии и Украине все хорошо с IT
235 1644768
>>644757
А на чукотке яблоки продают. Только яблонь нет.
236 1644778
>>644738
я в чем-то не прав?
ну, не траллю, но рынок и описания вакансий вроде на это намекают
237 1644902
Что ж вы сретесь о языках, до чего тупо.
Нормальные программисты знают и используют разные языки.
Сейчас Гошка - лучшее, что есть на рынке под высоконагруженные вебсервисы.
Скоро люди распробуют Раст и перекачуют туда.

Джавы/шарпы - тырпрайзное говно.
Плюсы - ад.
Скриптовые языки давно не тянут.
Есть только го и Раст.
238 1644950
>>644902
И только сишка охуенна во всём <3
239 1644965
>>644902

>Нормальные программисты


>2ch.hk/pr


лол кек
240 1644968
>>644902
Для нормальных программистов это может и работает
Но сейчас же конкуренция и количество джунов для каждых яп на порядок выше
Го не так популярен - отсюда можно решить, что шанс устроиться джуном выше
sage 241 1644970
>>644902

>govno


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


)))
242 1644971
>>644902

>тырпрайзное говно


Аргументный аргумент
243 1644973
>>644970
А что ты можешь предложить как альтернативу? Жабу с ее жирнющим рантаймом и стартом в несколько секунд (привет aws lambda)?
244 1645009
Тем временем московский офис Gett работает из дома, 4-дневная рабочая неделя с сохранением 85% заработной платы. У компании ПРОСАДКА ПО КОЛИЧЕСТВУ ТРАНЗАКЦИЙ

мимо ваш инсайдер
245 1645012
>>644973

> стартом в несколько секунд


Минут, ты хотел сказать? И есть мнение, что похуй, сколько она стартует, всё равно на проде её запустят только один раз, и будет она там работать дохуялион лет до следующего обновления сервера.

мимо
246 1645550
247 1645561
>>645012

>Минут, ты хотел сказать?


На сколько я знаю - там не на столько все плохо. Я хотел сказать - десятки секунд.

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


Лет 10 назад - я бы согласился. Но сегодня, в эпоху кубера и всяких облачных сервисов с еще большим уровнем абстракции - везде происходит постоянный up- и downscaling, и время запуска - это вполне себе релевантный показатель на сегодня.
248 1645567
>>645561
У нас на работе один жирный монолит, и да, он запускается минуты. С микросервисами были бы десятки секунд на каждый, тоже небыстро.
249 1645579
>>645567
А что там так долго запускаеться? Вы профилировали это?

Для меня это просто очень дико звучит, у нас проект на ноде (правда он не особо крупный, но тоже монолит) стартует 1.5 секунды, при этом почти все это время сжирает соединения с облачными базами, ну и совсем немного времени на занятие порта
250 1645588
>>645567
GraalVM
251 1645592
>>645579
В жабе это повседневность, профилировать нечего. Даже хеллоуворлд на спринг буте стартует секунд 5-10. А у нас тут дохуя компонентов, каждый инициализируется, настраивается. Всего понемножку, в сумме дохуя.
252 1646024
Гоферы, поделитесь интересными бложиками о го, которые вы читаете. Предлагаю составить топ блогов и прикрепить к шапке в дальнейшем . Начну с себя, очевидный https://www.ardanlabs.com/blog/ - много интересный статей от небезызвестного Вилльяма Кеннеди. Сейчас еще читаю https://www.pixelstech.net/article.php?sortby=time&type=0&tag=4626&page=1
253 1646028
>>646024
golang weekly
254 1646063
255 1646136
так ну ладно, уговорили
буду вкатываться к вам
уж больно хочется получать 90к бачей
256 1646769
Что гуглить чтобы написать скрипт для автматической проверки и скачки сториз из инстаграмма на мой ноут? пока я в отлучке, он должен чекать их каждые скажем 15 минут и скачитваь новые
257 1646867
>>646769
обертку над апишкой если не хочешь переизобретать велосипед.
258 1646955
>>646867
У тесты кажись до сих пор нет апишки
259 1647090
>>646955
И не будет. Нахуя им с кем-то ею делится?

Вэлком в еблю с симуляцией под бровсер и парсинг хтмл-говен.
260 1647095
>>647090
Хотя нет, пизжу, есть у них апишка. Причём простая рест апишка депрекейтед и закроется к июлю, а эти хипсторы уже графкуэля навернули.
изображение.png218 Кб, 500x427
261 1647185
>>646769

>Что гуглить чтобы написать скрипт для автматической проверки и скачки сториз из инстаграмма на мой ноут?


'python instagram api'
262 1647209
>>647185
Двачу, внезапно годный совет
263 1647237
>>647209

from pypi import solution

solution.make_magick()
264 1647495
>>647237

go get -u github.com/sdelat/pizdato
265 1647580
>>647237
Практически никогда так не бывает ни в каком языке. Скорее нужно будет пару часов продираться сквозь срачи на стэковерфлоу.
sage 266 1647667
>>635774 (OP)

> не могут жить без ексепшенов


Пиздец. Язык в котором нет экспешенов. Такой существует? Даже в жс, даже в Прологе есть экспепшены. Как можно жить без выкидывающихся ошибок? If'ы на каждый вызов функций вешать, проверяя ERROR_CODE?

А варнингов там тоже нет? Ну хотя бы лямбды есть? Если есть типы, но нет дженериков, то как вы вообще делаете полиморфные функции?
267 1647741
>>647667
эксепшены блевота, у тебя неприязнь от сдвига парадигмы. КАК ЖА ЕКСЕПШОНЫ ВСЕГДА ЖИЛИ С НИМИ ВОН ВЕЗДЕ ЕСЬ. пройдет.

>А варнингов там тоже нет? Ну хотя бы лямбды есть? Если есть типы, но нет дженериков, то как вы вообще делаете полиморфные функции?


хотя бы тур пройди. нахуя что-то рассказывать человеку, которому даже это лень сделать?
sage 268 1647744
>>647741

> эксепшены блевота


Чем?

Я серьезно не понимаю, как ERROR_CODE времен 20 века может быть удобней эксепшенов.
269 1647747
>>647667

> Язык в котором нет экспешенов. Такой существует?


Сишка. Но в ней есть longjmp для упоротых.
В расте, вроде, тоже зачем-то пытаются победить эксепшены.
image.png334 Кб, 702x395
270 1647778
>>647744
нельзя написать ексепшон ансейф код если нет ексепшнов
sage 271 1647790
>>647778
Лучше упасть крича об ошибке, чем упасть тихо и незаметно. В коде ошибка - сразу эксепшен.
272 1647796
>>647790
незаметность в количестве строк в логах при падении выражается? так можно и без ексепшнов стактрейс в сотню строчек вывести. эксепшоны не заставляют твой код падать заметнее. это всё хуйня. в коде ошибка - сразу жалоба компилятора, вот это я понимаю.
273 1647822
>>647667

>Если есть типы, но нет дженериков, то как вы вообще делаете полиморфные функции?


Интерфесы, иногда - пустые, иногда - нет, кодогенерация.
Что ты такое лицо скорчил? Сказано же, контракты будут ближе к Go2
274 1647826
>>647667
Я пару раз зашел в этот тред в прошлом году и вот сейчас, и каждый раз встречаю здесь тебя. Ты очень преданный хейтер, нужно отдать тебе должное.
275 1648030
>>647826
А по-моему люди указывают на одни и те же проблемы, которые не фисятся годами. Хотя странно что-то ожидать от just use for loops языка, где даже хуитка типа питонячих генераторов - недоступное удовольствие.
276 1648032
>>648030

>хуитка типа питонячих генераторов


Здесь вообще улыбка истории. У питонист GIL и поэтому они пытаются в асинхронность через генераторы. У гошников ПРОСТОТА и поэтому они делают свои генераторы на горутинах.
277 1648034
>>648030

>одни и те же проблемы, которые не фисятся годами


Семантическое версионирование же, ожидайте го2 1.15 теперь неизвестно когда зарелизят.
278 1648363
в отличие от пистона в го2 не будут ломать совместимость https://golang.org/doc/go1compat
279 1648404
>>648363
Я как минимум читал Чейни или Пайка и они говорили, что могут выбросить new.
280 1648411
>>648404
А как они это рационализировали? У меня, например, довольно много строчек вида _ GovnoInterface = new(MochaStruct), просто для того, чтобы голенд мне сгенирил методы интерфеса, да и для наглядности
281 1648412
>>648411

Я не помню, использовал ли я хоть раз new.
282 1648428
Грустно от того что го всё захватит наподобие пхп, несмотря на то что разрабы с айкью чуть больше дверной ручки будут страдать от слабости абстракций. Бизнесу важнее урезать стоимость, в том числе обучения нового мяса.
283 1648443
>>648428
Простота Go - на самом деле просто маркетинговый ход. Да, простой синтаксис, минимальный необходимый набор возможностей языка. Но когда речь заходит о поддержке реального когда - оказываеться, что нужно довольно серьезно понимать как работают OS, память, процессор, межпроцессорное взаимодействие, примитивы синхронизации, вот это все. В большей степени, чем для всяких js, питона и php.
284 1648446
>>648443
Простота всяких js, питона и php - на самом деле просто маркетинговый ход. Да, простой синтаксис, минимальный необходимый набор возможностей языка. Но когда речь заходит о поддержке реального когда - оказываеться, что нужно довольно серьезно понимать как работают OS, память, процессор, межпроцессорное взаимодействие, примитивы синхронизации, вот это все.
285 1648482
>>648446
Да, охуенно. Как много мьютексов в твоем типичном js или Python коде? Как много атомиков?
286 1648488
>>648482

>Как много мьютексов в твоем типичном js


Это тот js, в котором 20 лет был callback hell, потом добавили промисы и сразу же получили promise hell, который, в свою очередь, заменили async/await hell'ом. Ну да, куда уж го до всего этого.
В питоне же асинхронность сейчас пилят с оглядкой на го, а до этого параллельное выполнение там было не сказать что простым.
287 1648494
>>648488

> заменили async/await hell'ом.


Не слышал о таком. В чем там проблема-то может быть? Ну, кроме https://habr.com/ru/post/466337/
288 1648501
>>648412
Я не помню, нуждался ли я хоть раз в дженериках. Ставлю на то, что после их введения 99% гоферов не будет ими пользоваться.
289 1648513
>>648501
Я пару раз нуждался. И оба раза - при реализации хелпер-метода работы со структурами данных, вроде мапы или слайса. Решал каждый раз через https://github.com/cheekybits/genny, в целом - доволен, единственное - он никак не анализирует код, и если попросить его сгенерить некомпелируемый код (например, если передать в качестве типа слайс в метод, который сравнивает дженерик-аргументы) - он просто сгенерит его и все, вместо какого-либо ворнинга или ошибки. С контрактами такой херни не будет, на сколько я могу судить по черновикам.
290 1648515
Т.е. я думаю, что ими будут пользоваться все, но далеко не в основной логике, а во всяких util- методах
291 1648517
>>648501
ну знаешь, мне вот хотелось написать вспомогательную функцию чтобы вставить элемент в слайс или удалить из него.
292 1648518
>>648517
Ну так взял и написал бы.
293 1648519
>>648517
Хотелось, но потом ты просто писал одну-две для конкретных интерфейсов/типов и все было хорошо.
294 1648524
>>648518
на пятый раз для пятого типа писать её уже грустно
295 1648526
>>648519
Хорошо, если у тебя в laba1.go пара типов (int и string, да?). А вот в большом проекте бывает очень много типов слайсов
296 1648570
как же хочется метапрограммирование....
297 1648583
>>648570
В статически типизированном языке? Получится что-то в духе крестов или раста.
image.png380 Кб, 1280x676
298 1648599
изображение.png197 Кб, 500x335
299 1648604
Идешь по улице, в спину прилетает харчок
Ты оборачиваешься, видишь пикрил. Твои действия?
300 1648607
>>648604
смотря ему в глаза монотонным голосом цитирую заученное наизусть ""The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software."
301 1648638
>>648583
К О Д О Г Е Н Е Р А Ц И Я
О
Д
О
Г
Е
Н
Е
Р
А
Ц
И
Я
302 1648664
>>648638
Хорошая вещь, можно написать кодогенератор, который будет из крестов делать исходник на go.
15788554573040.png1,2 Мб, 800x1093
303 1648666
304 1648705
>>648570
метапрог?
305 1648710
>>648705
Только этого здесь не хватало.
306 1648759
>>648607

>learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language



То есть Пайк считает, что эти языки под категорию "brilliant language" никак не подпадают.
307 1648767
>>648759
Ну так он сказал learned, а не understood.
308 1648770
>>648759
Конечно. Это наименее спорная и заслуживающая внимания часть его высказывания. Вся суть создания Go заключалась в том, что языки вроде плюсов, петона, жавы, хуевые по какой-то причине.
309 1648788
Kiss
Хорош наворачивать абстракции. Го снова сделал программирование простым, каким оно было для меня два десятка лет назад
Нахую я вертел ваши фабрики, создающие фабрики, магию и прочую хрень.
Забудьте, как страшный сон
Просто программируйте. Просто, понятно, многопоточно.
310 1648804
>>648788

> простым


Примитивным. Кому-то процедурная лапша на сях, го или паскале может быть в кайф, но это точно не может быть нормой.
311 1648808
>>648804

У кого-то тырпрайз головного мозга, или, того хуже, лямбдавирус.
Съеби.
312 1648811
>>648808
Ну так го и есть тырпрайз, но это не чувствуется, т. к. на нём пока маловато легаси.
313 1648843
>>648804
если go такой примитивный, то почему до сих пор нет транспайлера go в твой_любымый_язычок? гошные библиотеки пригодились бы
314 1648858
>>648843

> гошные библиотеки пригодились бы


Зачем эти сырые недолибы, если есть нормальные нативные?
315 1648924
>>648858

>Зачем



тогда не удивляйся, что в твой недоязычок с go не перекатываются
316 1648939
>>648924
Было бы кому перекатываться ещё.
sage 317 1649054
>>648788
А как там с DRY?
318 1649067
>>648788

>фабрики, создающие фабрики


Таким же только в джаве и шарпе страдают. На том же питончике можешь вообще без классов писать.
319 1649212
>>649067
Судя по формулировке

> многопоточно


, его не устроят языки с GIL (питон, руби) или с убогой асинхронщиной (жс, пхп). Понятно, что потоки =/= параллелизм, но всё же.
греча.png1,8 Мб, 1023x959
320 1649433
321 1649668
>>648770
И по этому он навелосипедил свой язык, который хуевый по какой-то причине?
322 1649670
>>648843
А какой юзкейс у такого решения? gopherjs можно запускать в браузере, тут - да. А транспайлить в другие языки какой профит?
323 1649673
>>649668
Да, поэтому он сделал язык который ему нравится больше других языков.
324 1649693
>>649670
Никакого профита нет. Хомячки увидели, что куча языков транспайлится в js и решили, что это правильно и так должно быть со всеми языками. То, что это сделано не от хорошей жизни, и что это может понадобиться только в браузере, им в голову не приходит.
325 1649775
>>649693
Про что ты вообще несешь, ты даже не понял пост, на который ответил.
326 1649989
>>649670

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


>>649693

>Никакого профита нет.



ууу... как всё запущено...
327 1650284
Кому интересно, в апреле pluralsight.com бесплатный, там есть курс по go.
328 1650286
Кому всё это нужно, когда есть кококотлин.
329 1650289
>>650286
Уходи в свой загон
330 1650291
>>650289
Они не могут уйти в свой загон, в закрытой среде оказывается, что они пишут на языке для тех, кто не осилил scala, а так они самоутверждаются в своей голове за счет го и им немножко легче жить.
331 1650307
>>650291

> в закрытой среде


В фантазиях самих скалистов? Ну раз на то пошло, на жабе пишут те, кто не осилил шарпик.
332 1650411
>>635774 (OP)
Я тут выбираю 3 язык для изучения, стоит ли учит Go?
Где он вообще используется, кроме написания всяких консольных штук?
333 1650412
>>650307

> > Ну раз на то пошло, на жабе пишут те, кто не осилил шарпик.


Почему?
мимо жабист
334 1650462
>>650411

Go это синоним высокопроизводительный вебоориентированных микросервисов.
+ Серверлес
+ да, теснит питон для консольных утилиток
335 1650464
>>650411

>Я тут выбираю 3 язык для изучения


Зачем, если не секрет?
336 1650474
>>650464
Полезно для расширения кругозора. Многие гуру рекомендуют учить один новый язык в год, желательно отличной парадигмы от твоего рабочего.
мимопроходил
337 1650479
>>650474
Они именно о языках програмирования или natural languages?
338 1650504
>>650479
Если ты программист, то языки программирования, если ты какой преводчик - то человеческие языки. Нельзя давать мозгам застаиваться.
339 1650506
>>650504

Go слишком утилитарный.
Для мозгов надо идти либо ближе к железу - асм.
Либо в абстракции - хаскель, эрланг, раст, пролог
340 1650581
>>650506
Ебать ты вахтер.
341 1651382
>>650506
раст тоже утилитарный
342 1651408
>>651382

Раст-то?
Моззиловцы тупо натащили туда баззвордов, тупо по приколу. Это суперсолянка концептов.
Неплохо ломает голову.
343 1651594
>>651408
Т.е. раст - это те же плюсы, только c чистого листа?
344 1651628
>>651594
Но другие
345 1651750
Хочу вкатить в го или котлин, что лучше выбрать?
346 1651754
>>651750

>котлин



тогда тебе придётся вначале жабу выучить, иначе без библиотек останешься
347 1651756
>>651750
Котлин, конечно.
348 1651760
>>651750
Какая разница, все равно будешь в этом треде сидеть.
349 1651835
>>650506
У го есть интересная работа с потоками, если всю жизнь сидишь на промисах - то полезно будет поработать по-другому.
350 1651904
>>651835

Так то да, именно csp достаточно редко встречается.
Но именно n:m конкурентность много где есть, но на акторах.
351 1651911
>>651835

> всю жизнь сидишь на промисах


Я понял, почему уровень треда такой. Потому что здесь все хоть и делают вид, что они перекатываются с питона, на самом деле они все латентные джаваскриптеры, лол.
352 1651932
>>651904

>много где, но на акторах


>акка и ерланг


>много где

353 1652310
Список жалоб на go https://github.com/ksimka/go-is-not-good
354 1652312
>>652310
Есть по разным языкам, но более кратко:
https://wiki.theory.org/index.php/YourLanguageSucks
355 1652313
>>652310

Все херня.

Кроме дженериков и перегрузки функций. И, подаоуй, надо работать над gc, отсутствие поколений и compaction - позор.

Хотите адового беспорядка, пиздуйте в плюсы или расты.
356 1652547
Каминг аут тайм
>>651911
Я, например, не латентный, а я вполне себе js-разработчик, просто все еще не нашело нормальную работу на Go. Но первый язык у меня таки Питон.
357 1652549
>>652310

>stuck in Unix thinking


Зачем ты это говно сюда принес?
358 1652557
>>652549
Потому что иначе ему пришлось бы кодить на котлине, а это гораздо хуже, чем срать на двачике.
359 1652606
>>652313

>дженериков и перегрузки функций.



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

>Хотите адового беспорядка, пиздуйте в плюсы или расты.



раст-то тут причём? язык молодой и продуманный, там нет этих исторических нелепых нагроможений
360 1652627
>>652606

>дженериков и перегрузки функций.


>


>это рельно нужно лишь 0.0001% гоферов



Вот реально, дженерики нужны были пару раз, когда дублировались всякие util функции
Перегрузки - вообще не помню, когда были нужны
361 1652641
>>652313

>надо работать над gc, отсутствие поколений и compaction - позор.



они выбрали mark-sweep gc из 70-х потому, что он создаёт минимальные задержки, а на большое потребление памяти им пофиг, ибо память дешёвая
362 1652644
Хорошо, что в Go принудительный опенсорс. Можно скопипастить исходник уже готовой функции и заменить тип на другой.
363 1652721
>>648788
Два чаю!

Достался проект на го, который писали экс-пхпшники. Долго думал зачем мне фасады и фикстуры, импорт пакетов и структуры дают все что надо.
364 1652736
>>652312

>Two implementations of random numbers, math/rand and crypto/rand.



О! А вот и гуглозонд проглядывать начал.
365 1652745
>>652641

Поколения как раз помогли бы перфомансу.
Незачем каждый раз тратить процессор на обход всех объектов.
366 1652747
>>652627

Чаще пары раз.
Кодогенерация конечно помогает, но хотелось бы что-то более интегрированное в язык.
367 1652948
>>651754
Говорят надо только коллекции вкурить, а синтаксис жабы не нужен
368 1653046
>>637226
Чёт копейки какие-то. Даже я, околоджун, получаю 90к в месяц. И это в условиях кризиса из-за короны-чан.
369 1653073
>>652606

>лучше бы размер бинарников привели в порядок


Ты это серьезно? Это же было осознанное решение - пожертвовать размером бинарей ради удобства эксплуатации и относительной независимости от окружения. Если очень надо - есть https://github.com/tinygo-org/tinygo
370 1653075
>>652644

> Хорошо, что в Go принудительный опенсорс.


Ты это о чем? Ты вполне можешь использовать приватные репозитории для своего кода
371 1653089
>>653075
Чтобы юзать либы, приходится тянуть их исходники. Binary-only пакеты давно задепрекейчены.
372 1653104
>>651911
Сюрприз, почти везде либо акторы, либо треды, либо промисы.
373 1653107
>>653046

У нас московские джуны получают +-100.
А вот провинциальные - до 50.
Поправка на уровень выживания.
374 1653225
>>652736
Про что ты несешь, исходники же открытые.
375 1653231
>>640136
Едь в Европу
Я щас сам перехожу с js на go; чтобы было меньше конкуренции намутить оффер в Германию
376 1653232
>>653107
Довольно высокая зп
Порог вхождения высокий? Не просто же знать синтаксис?
На го вообще возможно обрасти экспертизой, сидя дома? Как в мобилках или фронте
377 1653238
>>653232

Ничего запредельного. Для джунов задачи по алгоритмам и пара задач на многопоточность.

Можно и дома, запили борду на микросервисах, задеплой ее в кубер. запили что-нибудь на серверлес.
378 1653240
>>653238
Спасибо
Я так, мимо, но звучит, будто бы на это надо потратить не меньше полугода
379 1653241
>>653225

А кто-нибудь копал их имплементации, на их собственном сраном псевдоассемблере?
380 1653246
>>653241
Ну вот я сейчас глянул, crypro/rand в основном использует crypto/cipher. Все написано на го.
381 1653247
>>652736
Да, охуенно.
382 1653283
АППАРАТНЫЙ ЗОНД ОТ INTEL
383 1653315
>>636567
взяли стажером на go лол после 3 месячного курса.
384 1653327
>>653315
Не шутешь?
Первый язык или уже был опыт?
Бля я тоже хочю так)))
385 1653340
>>653283

>не сидеть на arm


>2020

386 1653352
>>653327

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

387 1653409
>>653340
Ты там совсем обкотлинился? Кроме андроид-смартфонов есть ЕВМ и других форматов и назначений.
388 1653443
>>635774 (OP)
Я думал, го - худший язык программирования, а оно вон оно че. Лучший! Давно он таким стал? Я думал, лучший это раст. Ты, кстати, перед тем как пост высрать, рейтинг на СО смотрел?
389 1653452
>>653409
Причем здесь андроид, я сижу на распбери пай.
390 1653454
>>653443
Но ведь "лучший" в заголовке пщ-тредов уже сто лет как...
391 1653462
>>653443
Рейтинг твоей мамки тоже не впечатляет, но мы же об этом не пишем. Проявляй больше увожения.
392 1653464
>>653240
Чтобы просто кодить хватит и пары дней, если у тебя есть опыт с другими языками. Для собеса можно поготовиться месяц, почитать, покодировать разные штуки.
А вот чтобы проникнуться общепринятыми подходами и в одиночку разрабатывать качественные сервисы, надо как обычно, потратить хотя бы год на коммерческую разработку в команде с уже сеньористыми сотрудниками.
Но таких мало, я сменил за последние 5 лет уже 3 компании, и везде сраные миддлоджуны. Заебали, я хочу научиться чему-то у скилловых чуваков, а не учить недомиддлов прописным истинам.
393 1653466
>>653352
Круто звучит
сам бы даже попробовал вкатиться, но работаю на маке и максимум могу работать в винде, а для линукса ебать какой тупой
394 1653489
>>653466

А хоть кто-то не на маке? о_О
395 1653512
>>653466
Лялех - серверная ОС. На десктопе его юзать боль.
396 1653633
>>653512
Больно только в первые разы. Я уже 3 года сижу на дуалбуте кубунта+винда, мне норм. Винда нужна только для игорей, для остального вполне хватает линупса.
397 1653651
>>653633
Нормальные линуксоиды играют в пердолинг.
398 1653684
Аноны для го нужно уметь в байтоебство ?
399 1653685
>>653489
мне мака не хватило (такой же паренек как я который пришел на пару недель пораньше, сидит на маке), так что я на убунте, слава столману
400 1653694
>>653684
Нет.
401 1653705
>>653684
Не обязательно, но если есть желание - можно обмазаться всякими unsafe вещами, но не советую.
402 1654601
Го-бояре, а есть ли какие-нибудь годные, углублённые материалы по escape-анализу? На просторах первой страницы гугла в основном базовая теория и некоторые узкие примеры, а хотелось бы что-то более конкретное, вроде описания оптимизации крупной кодовой базы или best practices работы с указателями. Или я латентный байтоёб и мне надо в другой язык?
403 1654698
>>654601
1) в 90% случаев тебе это не понадобится
2) там где всё таки понадобится -- всё придётся лезть профайлером и обмазываться флагами
3) помни, что эскейп -- не часть спеки языка, а деталь реализации, и когда выходит следующая версия компилятора всё может стать лучше или хуже
404 1655121
>>653705

Как необязательно?
Без unsafePtr можно писать только тормозное говно.
sage 405 1655128
>>655121

> unsafe


Ну тогда и пщ необязателен, ведь есть сишка.
406 1655439
>>654601

> Или я латентный байтоёб и мне надо в другой язык?


this

Пщ value-based язык, не выебывайся и не передавай дто по пойнтеру

И вообще покажи профиль, вангую, что оно тебе не надо
407 1655752
>>655121
Ты откуда такой вылез?
408 1655770
Когда там новая эра(го2)?
409 1655851
>>655439

> не выебывайся и не передавай дто по пойнтеру


А в чем профит-то?
410 1655874
>>654601
В го работа с указателями в большинстве случаев сводится к следующим случаям:
1) Надо менять структуру, а не создавать копию
2) Для экономия памяти при передаче аргументов
3) для того, чтобы значение было nullable

Вот доклад про указатели https://www.youtube.com/watch?v=yEiaCx0fR9k
411 1655893
>>655874
>>655851

Объясняю обоим, внимайте

эскейп-анализ именно для того и нужен, чтобы видеть и страдать, как все, от чего берется указатель улетает в кучу посмотрите еще как работают интерфейсы, че такое dynamic dispanching и минимизируйте плз использование сигнатур вида func(h *Handler) DoSmth(), посмотрите че по факту лежит в структуре Handler и если там одни пойнтеры на другие структуры, то копируйте ее блять!

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

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

поэтому пойнтеры нужно для
1) Надо менять структуру, а не создавать копию
3) для того, чтобы значение было nullable

да и то, иммутабельность рулит и педалит, а за нулабля надо пиздить по рукам чтобы нормально сигнатуры проектировали
412 1655946
>>655893
Роб Пайк, успокаивайся, этот тред не про кодинг в конце концов.
413 1656023
>>655946
Мне тоже кажется, что все забыли, что тред-то про илюшу.
images.png4 Кб, 225x225
414 1656033
415 1656170
>>655893

> иммутабельность рулит и педалит


и давит на GC
serveimage.jpg173 Кб, 600x614
416 1656258
417 1656728
Кто-нибудь десктоп писал на го? Что использовали в качестве гуи? Поделитесь опытом и мыслями.
418 1656747
>>656728
нахуй надо
419 1656826
>>656728

Python + qt
Или богомерзкий электрон
420 1656874
>>656826
Десктоп на го пишется на питоне и кюти. Ок.
421 1656897
>>656874
Десктоп на Go не пишется
422 1656911
>>656897
Пишется.
423 1656920
Всё просто:
- устанавливаешь го
- устанавливаешь питон
- пишешь десктоп на питоне
- профит
424 1657033
>>655893
Все что вы хотели знать о поинтерах, но стеснялись спросить. Спасибо
425 1657082
Правда, что с sql предпочтительнне работать без орм?
426 1657086
427 1657100
>>657086
То есть, если я например хочу записать строку в таблицу, я должен неиронично сначала написать insert запрос с плейсхолдерами, передать куски моей структурки как аргументы запроса, а потом еще дернуть lastinsertid и в эту структурку впихнуть?
428 1657106
>>657082
Да, чистый SQL лучше всего. Охуеный язык. Я вообще не пойму, зачем понапридумывали всяких ORM, мало того что ограничивающих разработчика, так ещё и тормозных. Толку от них 0, используемая СУБД всё равно никогда не меняется, а в выразительности нет равных SQL-ю. И сложные запросы намного понятнее, когда написаны на SQL, а не на очередной бестолковой поделке с синтаксисом для особенных. И проблем от них КУЧА, они вносят в проект столько неявной и неуправляемой магии, что через некоторое время вообще хуй проссышь, что к чему и куда. Нахуй. Лучше SQL для работы с данными ещё ничего не придумали.
429 1657129
>>657100
Примерно так. Можешь еще всякие sql-builder попробовать.

В гошных Ормах много неявной магии, поэтому лучше их не использовать
430 1657364
>>657129
А как принято миграции делать?
431 1657376
>>657364
Пока лучшее что видел - это https://github.com/pressly/goose.
Eго, кстати, в Авито используют, пруф - https://youtu.be/hKnWq4RmNKE
432 1657413
>>657364

Go migrate при запуске микросервисов.
433 1657511
>>657376
>>657413
Спасибо, господа, буду изучать.
15868489881370.jpg87 Кб, 537x800
434 1657607
435 1657629
>>655874
Это трап?
436 1657794
Анон, где можно почитать простым языком о том, что такое интерфейсы и как они работают?
А то у меня от большинства объяснений как_нарисовать_сову.jpg
437 1657859
>>657794
Попробуй сначала вживую руками с ними по-работай

Потом попробуй обсудить с кем-то кто понимает что это и зачем

А потом можно попробовать снова почитать статьи/книжки
438 1657862
>>657794

> как_нарисовать_сову.jpg


Закономерно, учитывая, что интерфейсы - абстракция, не имеющая аналога в реальном мире.
439 1658638
Расскажите, а вы в своих апи используете контексты или ну их?
440 1658644
Суп гач. Че посоветуешь, сначала написать бота для телеги или прочитать "Язык программирования Go".

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

Или забить на это всё, гуглить по ходу и пилить своего бота?
441 1658655
>>658644
Ладно, задам немного другой вопрос. Сейчас меня больше всего интересует организация и управление состоянием БД.

Вопрос: есть ли какие-либо общепринятые инструменты в GO для управления состоянием БД? Т.е. вот я пишу бота, мне надо создать схему БД. Мне её тупо SQL'ем писать?

Стоит ли сразу использовать ORM?
442 1658664
>>658655

>Мне её тупо SQL'ем писать?


Да, потом накатываешь инструментом миграции. goose чисто гошный, flyway просто популярный.

>Стоит ли сразу использовать ORM?


Почитал разные мнения, тру-гоферы пишут запросы вручную, в крайнем случае кодогенерация. В популярном горме пустые интерфейсы => теряются преимущества статических анализаторов => можно было не укатываться с питона.
А когда начнешь писать вручную, начнешь стрелять себе в ноги с транзакциями, prepared statements, context.Cancel(), но за такие шрамы тебя будут уважать другие гошники.
443 1658697
>>658664
Спасибо. Приходится по крупицам собирать информацию "как надо" и "как принято". Не хочется стрелять себе в ноги, но без этого конечно никуда.

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

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

Хотя читать книгу гораздо проще чем писать код, поэтому даже тут проеб.
444 1658898
Антон привет
Короче есть вопрос
Я пишу что-то типа поисковика, логика которого крутится на серваке, написанном на ГО
Я нахуячил (запрототипировал) логику поиска на питоне - с токинезацией, графами и тд
ВОПРОС
а как мне это в го воткнуть? реализовать именно на нем или запускать процесс питоновский? во втором случае не проебу производительность?
445 1658904
>>658697
Читай Кернигана, чтение небыстрое, но он действительно хорошо объясняет.
А потом читаешь
https://github.com/Alikhll/golang-developer-roadmap
и понимаешь, что все тлен.
446 1658906
>>658898
Микросервисы.
447 1658934
Анон, а что как предпочтительнее хранить данные, в слайсе из струтур, или в аналогичной по структуре мапе?
448 1658997
>>658906
не сильно в скорости проиграю?
449 1659102
>>658898
ты наркоман, зачем так сложно-то?

у тебя есть несколько стульев:

синхронная коммуникация по сети/юникс-сокету (делаешь в своем питухоне веб сервер и ходишь в него из го)

асинхронная коммуникация по сети (мессаджброкеры/очереди на бд и прочее)

шаред-мемори между процессами

треш вида os.Exec() питоновского кода из го

На какой стул сам сядешь, куда мать посадишь?

>>658934
в анусе но зависит от кейсов
450 1659115
>>659102
блять тьсука сам ты наркоман
А так вообще спасибо, ответ топ)
451 1659120
>>658997
Просто проиграешь. С микросервисов никто не начинает. Все сначала делают монолит, а когда он станет слишком большим его итерационненько переделывают.
452 1659201
>>659120

Нормальные пацаны сразу делают на микросервисы.

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

Уже всё готово и разложено по полочкам.
453 1659226
>>659120
>>659201

Кто-нибудь, быстрее, человеку плохо, вставьте сюда скорее пасту про НЕПОНИМАЕШЬ СУТЬ переписанную на микросервисы
454 1659274
>>658904
Таки начал, и с первых страниц уже некоторые нужные и непонятные ранее вопросы прояснились. Я так подумал, а куда вообще спешить.
Роадмап тоже находил, очень годно. Думаю после книги все пойдет как надо. 400+ страниц все-таки не труда по 1.5к, если постараться за пару недель осилю с конспектами в md, майндмапах и примерами
455 1659347
А го вообще подходит на адекватной обработки текста? ну типа похожесть определить, или косинусное расстояние?
456 1659381
>>659347
по сравнению с DSLами для обработки текста?

>ну типа похожесть определить, или косинусное расстояние


нет, в го такого нет. на уровне компилятора запрещено. из-под земли вылезет гофер, а в гофере роб пайк, который набросится и загрызет тебя.
457 1659437
>>659347

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

В остальных случаях, бери питон
458 1659440
>>659226

Ну правда, уже все на автомате.
Берешь gokit, быстро пилишь микросервисы. Когда требуются транзакции, берешь airflow.
Закидываешь в managed cloud.
Ты прекрасен.
459 1659513
>>659440

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

но интерисующимся по-рекомендую почитать, в инете этой инфы хватает, не как "правильно" делать микросервисы, а какую проблему их придумали решать
460 1659516
>>659347

Любой тьюринг-полный язык подходит для этой задачи, рекомендую sed, попробуй, базарю, ещё захочешь!

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

> sed


PowerPoint тоже подойдёт, но в конвейер его не поставить.
462 1660007
Гач поясни что не так с этим вашим go?
Я то и дело натыкаюсь на популярные инструменты с мертвыми репами, которые тупо бросили разрабатывать то в 12, то в 15 году.
Что не так с тулзами языка? Почему гугловский gopls не поддерживаем модули? Это же какой-то пиздец! Этим языком же не 3.5 Васяна пользуются. Как так вышло-то вообще?
463 1660117
>>635774 (OP)
Джун-джанго спрошу: блять, почему ТАК мало позиций для джунов в европе?
Извиняюсь за ВЫСЕР бесполезный, но блять, живу в Гермашке, за 2 неделе 15-20 сообщений от рекрутеров по джанге и 0 по пщ
Питон заебал, думал сменить
464 1660144
>>653651
Какой пердолинг? Приведи пример?
Пересобирают ядро каждые 5 минут? Ставят haskell-notebook на AIX?
465 1660258
>>653633

Купи сонсоль и забудь о сраной венде. Мне помогло.
466 1660535
Кто может пояснить, в чем разница между csp и акторами?
Вроде все тоже... Управляемые легковесные потоки и коммуникация между ними...
467 1660580
>>660007

> Почему гугловский gopls не поддерживаем модули


гугловский гоплс отличается от обычного гоплс? обычный вроде поддерживает.
Аноним 468 1660826
>>660117

>джун-джанго


>питон заебал



ты из этих челов, которые за месяц работы выгорают, что ли?
469 1660970
>>635774 (OP)
Вброшу платину, я тут залётный. Остался без хлебушка как и многие, решил вкатиться в го, за месяц-два самоизоляции его можно задрочить чтобы взяли на работу стажёром за еду?
470 1660979
>>660970
Нет
Уже много раз писали, что вакансий по пщ очень мало и чаще идет в дополнении к дргому языку.
Анон выше писал, что они долго ищут джунов, но это скорее исключение.
Лучше вкатывайся в js - работы дохуя, что по фронту, что по ноде, тем более последняя давно опережает пщ
471 1660991
>>660979
Благодарю.
472 1661068
>>660991

Ориентируйся на город.
В мск можно найти работу на любой экзотике.
Если ты не из дефолта, то лучше выбрать пыху.
473 1661093
>>661068
Это конечно так, но не без опыта.

Зависит конечно от хотелок. Если хочется сидеть в офисе со стабильной (хоть и меньшей) зп — пхп, иначе жс и удалёнка.
474 1661149
>>660970
посиди лучше месяцев 9-12 и заводи трактор
475 1661163
Порекомендуйте что-нибудь по микросервисам.
Книжки по архитектуре и курсов по практике написания.
476 1661165
>>660979

Наоборот, чем более популярна технология, тем больше конкуренция.

А вот взять что-то вмеру популярное, вроде го, раста, эрланга и вайтивайти, мне кажется будет легче.
477 1661167
>>661163

Ньюмен создание микросервисов
image.jpg27 Кб, 378x499
478 1661174
479 1661175
>>661174

Java 6
ee
glasfish

микросервисы
2020
Тред go
480 1661178
>>661165
я с тобой бы согласился, но про РФ это пока не так работает, по моим наблюдением: типа, опять же, только один анон, вроде писал, что ищут джунов чисот с пщ. А остальные вакансии - как 2й язык.
Про эрланг, ТОЛЬКО СЛЫШАЛ, что еще хуже-полторы вакансии
481 1661223
>>661178

>А остальные вакансии - как 2й язык.


Что там за вакасии для многостаночников? До обеда на питоне, после - на го, после работы остаешься виндоуз переустанавливать и картриджи заправлять.
482 1661231
стоит ли пробовать пщ, кто говорит говно, кто нет?
483 1661233
>>661223

Ещё мало компаний, где все на го.
Обычно есть монолит на джава/пыхе/питоне. И в вакансии требование на него, как основной язык.
И расстаскивание этого говно на микросервисы на go.
484 1661234
>>661165

> Наоборот, чем более популярна технология, тем больше конкуренция.


шок этот парень сводит экономику к линейным уравнениям первой степени бесплатно без смс
485 1661244
>>661231
Не попробуешь - не узнаешь.
Я вот попробовал. Выплюнул.
sage 486 1661245
>>635774 (OP)

Кто пишет на голенг типичные КРУДы - я вас нахуй не понимаю.

Язык для этого ну максимально уебанский.
Лапша и боль гарантированы.

А так как С с гц если то язык конечно достойный.
Нахуй тупые пидорасы-менегеры его пихают в круды- хуй знает.
487 1661292
>>660970
Я тебе больше скажу.
Сейчас в айти грядет жопа, так что чтобы ты не выучил за 2 месяца, тебя никуда не возьмут
488 1661302
>>661292
Айтишникам сравнительно повезло ещё.
https://www.kommersant.ru/doc/4315214
489 1661315
>>661302

Нам как раз не повезло. Пока страна отдыхает, мы продолжаем пахать(
490 1661316
>>661302
айти отрасль прикладная не будет заказывать бизнес, погромисты первые под мост пойдут.
условно ресторан может работать без сайта, а сайт без ресторана не может
491 1661318
>>661316
Да, логично. Нормально себя будут чувствовать только айтишники из других сфер не из списка.
492 1661330
>>661316

Без сайта - да

Без бухгалтерии, склада, еботы с партнерами, скидочками-карточками, интеграции с доставками - ниет

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

>>661245

Как понадобится 1к+ рпс с одного инстанса (и учитывай, что такой круд и метрики будет писать и ивенты кидать ну и бонусом, не обязательно дрочить один инстанс пг/мускуля/шины ивентов, а можно работать с несколькими нодами кластера) - приходи
493 1661340
>>661330
ты только что описал аутсорс и продуктовые галеры, аутсорс заглотит так, как даже котогейчик не глотает
494 1661342
>>661330
Все эти бухгалтерии, склады и тд у них уже есть. А вот денег на сайт или еще чего уже нет.
495 1661359
>>661316

> условно ресторан может работать без сайта, а сайт без ресторана не может


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

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

Айти конечно же не стоматология или сантехника, но чтобы айти рухнуло нужен прям капец в экономике.
496 1661361
>>661359
это был пример коней в вакууме, но принцип ты понял, бизнес не дает заказы, ойти собирает бутылки
497 1661363
>>661359
Сразу видно, что ты не в теме.

Работаю на галере сейчас: 20% проектов закрыли - всех, кто оказался без дела, сократили. Также поурезали всякие бонусы типа выплат за спорт, бонусы за рекомендацию и тд.
А проблема в том, что кризис начался в мире, и они экономят, в первую очередь на айти.
498 1661369
>>661363
хохланд?
499 1661371
>>661369
Беларусь

Хотя, думаю, в Украине ситуация подобная
500 1661372
>>661371
ну да там галеры аутсорсные сплошные
501 1661379
>>661363

На айти не экономят.
Во время кризиса срезают левые расходы, которые не жалко было в хорошие времена, но могут потопить в кризис.
Если вашей компании стало плохо, знайте, вы занимались хуйней.
502 1661380
>>661379

>На айти не экономят.


кулстори
503 1661381
>>661379
Ну ты тупой

Я тебе говорю реальную ситуацию: на айти начинают экономить в первую очередь, поэтому сейчас все аутсорс галеры начинают экономить и сокращать людей или зарплаты
504 1661385
>>661381
у меня продуктовая и то сказали болт вам а не премии, кабы не поперли
505 1661386
>>661381

У меня всё норм. Вообще ничего не поменялось. Нанимаем людей.
У моих знакомых плохо только у говноедов, тьфу, битриксоедов. Потому что накуй оно не нужно.
1.mp45,4 Мб, mp4,
640x360, 0:31
506 1661393
>>661379
В целом согласен, но есть компании где IT отдел - это как раз "левые" расходы. Помню читал пасту, где кабанчик расказывал, что завел IT отдел, по тому что это статусно
>>661381
В аутсорсе все скорее плохо, но аутсорс это не все IT. Да и аутсорс бывает очень разный, в том числе и компании, которые продают IT-продукты, над которыми не могут остановить разработу, и компани с большим горизотном планирования - которые понимают, что если они распустят команду - они потом потратят очень много времени на то, чтобы новые сотрудники вошли в курс дела и начали делать хоть что-то полезное, и есть компании, деятельность которых в современных условиях стали более востребованы чем обычно, и они сейчас гребут деньги лопатами
507 1661408
>>661393

>но аутсорс это не все IT


ты малость не понимаешь структуру рынка нашего ойти снгшного погреб я на галерах, даже выпало мне как то порулить одним небольшим проектом, проект я сдал и в рот ебал больше тимлидом работать но ща не об этом, и я видел некоторое дерьмо, так вот в украихе/белорахе аутсорс почти и есть все ойти, ибо внутренний рынок там баблом небогатый и делать продукты под него тупо нахуй не упало из-за открытого настежь рынка аутсорса в котором в жирные времена платили в разы больше да и заказов поболее, так внутренний рынок там или мертв или в зародышевом состоянии остался, в рахе ситуация обратная из-за общего протекционизма поток бабок за аутсорс был не такой обильный и это позволило внутреннему рынку выжить и потихоньку развиватся.
что же происходит когда все плохо в кризисные времена потом заказов падает, своих надо кормить, и галерки мелкие и средние получают финансовую пробоину и идут ко дну, выкидывая бомжевать погромистов, галерки крупные у кого есть бабос могут впасть в спячку перебиваясь заказами какие есть и попутно отлавливая бриллианты в море говна которое разлили галерки помельче, у галерок продуктовых, коих в рф много, обычно есть клиенская база, расти она врятли будет, да и оборот упадет, но так как она работает в основном на внутренний рынок падение внешнего спроса не бьёт по ним как кувалдой, так что как то так это работает.
508 1661420
>>658638
Обычно да, зачастую - для graceful shutdown'а
509 1661431
>>658638

Всегда. Контексты - классная штука.

Для дедлайна, для выключения, для проброса логгера.
510 1661435
>>661361
Бизнес будет давать заказы пока есть хоть в каких-то отраслях рост, если весь корабль тонет целиком, то ясеньхуй айтишная каюта пойдет ко дну с остальными. Но до этого надеюсь не дойдет.

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

А 20% это не 20% людей часом? Потому что даже в таком случае, просадка не такая сильная как в других областях. И при этом после кризиса айти будет расти еще быстрее остальных отраслей.
511 1661441
>>661431

>для проброса логгера.


Интересное решение, никогда не думал о таком использовани контекста. Я логгер получал либо из синглтона, либо - через dependency injection'а
512 1661442
>>661441

Нужно из контекста.
Что бы в логгере уже были полезные поля, вроде id запроса, идентификатора пользователя и подобных штук помогающих отладке.
513 1661485
>>661393

> В целом согласен, но есть компании где IT отдел - это как раз "левые" расходы.


Залетный ИТТ. Работаю как раз в такой конторе, пилим внутреннюю CRMку. В команде нет ни одного действительно опытного IT специалиста. У всех опыт не больше года-двух и тот опыт был получен в этой конторе. Считай все на своих ошибках. При чем эти ошибки везде: в бизнесе, в бизнес логике, в архитектуре, у менеджеров при построении задач бизнеса. Пиздос, в общем. Решил остаться на этой работе из-за широкой свободы действий.

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

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

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

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

Короче, не так и рушатся мечты, анон. Я же пошел в программирование за мечтой, и планировал её достичь к 30, в апреле собирался съебывать в коронавирусную за опытом и заработками.

Но случилось то, что случилось. И теперь потребуется несколько лет чтобы все хотя бы устаканилось, не то что вернулось на круги своя.
514 1661492
>>661485

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


на всяких гос услугах нагрузка хорошая
515 1661494
Ой, это что, скоро ПеРеКаТ ? ? ?
516 1661574
>>661485

>коронавирусную


Это у вас так Нерезиновая теперь называеться?
517 1661575
>>661494
Да, в другую профессию.
sage 518 1661729
>>661330

А как понадобится гибкий код и возможность быстро и дешево подстраиваться под новую бизнес-логику - съебывать в ужасе. Это понятно, ок.
sage 519 1661733
>>661330

Щас бы в 2к20 на вертикальное масштабирование дрочить.
Ясно-понятно.
520 1661778
>>661574

> Нерезиновая


Я так называю по очевидным причинам. Из контекста же понятно.
521 1661781
>>661733

Дело не в вертикальном масштабировании.
А в том, что сейчас век интернета и все больше проектов переползает в ранг хайлоада.
И заливать железом проблемы выливается в суммы с 4-5 нулями в месяц от Амазона.
Поэтому скриптовые языки и загибаются.
522 1661795
>>661733

Сними плз видео как девопсы будут тебя пиздить за 1000 кубовых подов с php-fpm/gunicorn и пара-тройка гиговым вендором

>>661729

Не клади много логики в ручки таких крудов - не надо будет переписывать используй ивенты, Люк
523 1661814
524 1662071
>>661485
переведу на язык биологии, вы жили в комфорте пилили какую то хуйню для кишков компании(которая особо и не нужны были), в итоге из-за кризисы новые вызовы, если ваш отдел сейчас не войдет в резкий поток изменений, если вы не выйдите из зоны комфорта и в стрессе не начнете хуячить что- то новое, то вы по всем законам рынка должны умереть.
525 1748362
>>640061
звезды на гите не повод для дрочки на технологию. Некоторые не стесняются подъебывать, выкладывая библиотеки-подъебки.
526 1750233
>>640068

> А если мне внезапно понадобится переехать с одной БД на другую?


Для того, чтобы у тебя код на go остался неизменным при смене базы, он у тебя должен быть ну очень абстрактным.
И то непонятно, иногда нужно написать запрос с группировками, with, оконной функцией и ещё парочкой очень специфичных вещей. Как ты это сделаешь через свою ORM? Скорее всего никак, и будешь делать 10 запросов из кода, а потом в коде же мерджить их результаты, что будет в разы неэффективнее.
В итоге мы приходим к такому выводу, что ORM подходят только для случаев, когда ты просто гоняешь json'чики между кодом и интернетами, причём самыми что ни на есть типовыми CRUDами.
А как только у тебя появляется сложность в работе с данными, ты резко начинаешь использовать функциональность и особенности базы на 100% и код запросов, во-первых, становится слишком сложным, чтобы его могла сгенерировать ORM'ка, а во вторых слишком специфичным, чтобы просто так взять и поменять базу.

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

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

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