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

Ответить в тред Ответить в тред
Тред про лучший в мире язык GO №12 /go/ Аноним 07/07/20 Втр 14:57:28 17439551
image.png 6Кб, 240x210
240x210
image.png 1857Кб, 1200x1200
1200x1200
image.png 327Кб, 599x443
599x443
Тред про лучший в мире язык 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, дженериков и размазанной бизнес-логики, ждем, когда нам подвезут аналоги эксепшенов и дженериков

Прошлый тред успешно утонул в колее времени
08/07/20 Срд 00:21:30 17444882
Screenshot from[...].png 257Кб, 1075x595
1075x595
наркоман ебучий
Аноним 08/07/20 Срд 01:14:17 17445193
>>1744488
У меня 11й тред почему-то здох нахуй и 404 возвращал. Шо поделать. Забей хуй, пусть утонет этот
Аноним 08/07/20 Срд 01:16:00 17445214
>>1743955 (OP)
Если смысл теперь в го, когда есть велеколепный раст?
Аноним 08/07/20 Срд 01:23:48 17445325
>>1744521
Зачем они оба, когда есть современный C++?
Аноним 08/07/20 Срд 02:14:19 17445426
>>1744532
>современный C++
Скажи в С++ до сих пор надо заголовочный файл создавать и в нем прототипы писать?
Аноним 08/07/20 Срд 02:37:01 17445487
>>1744542
В C++20 завезли модули, в популярных компиляторах уже реализовано.
А чем тебе хедеры не угодили? Разделение интерфейса и реализации практикуется много где.
Аноним 08/07/20 Срд 02:38:56 17445498

>>1744521
По расту вакансий раз в 10 меньше, да и язык сам по себе всратый. Го поприятнее будет.


>>1744532
Отчасти двощую, как минимум плюсы лучше раста. С го думаю сравнивать не совсем корректно, немного разные области применения.
Аноним 08/07/20 Срд 05:23:28 17445689
>>1744542
но ведь прототипы документируют код лучше документации (которую никто не пишет)

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

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

Да, конечно есть всякое говно типа интерфейсов (но весь же код ими не обмажешь), диаграммы классов (а это лишние телодвижения), сворачивания блоков (которые еще надо свернуть).. Но это все не то
Аноним 08/07/20 Срд 09:16:28 174469210
>>1744568
>Вот в других языках такого дико не хватает. Там все вечно в говне, в одну кучу свалено, задалбливаешься листать тела каждого метода

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

>типа интерфейсов (но весь же код ими не обмажешь)
Так на интерфейсах всё и пишется. Правда их обычно в отдельный файл всё равно не выносят.
Аноним 08/07/20 Срд 10:26:01 174474711
photo2020-07-08[...].jpg 101Кб, 1196x1112
1196x1112
Goвно. Goвно никогда не меняется.
Аноним 08/07/20 Срд 14:33:02 174499412
Аноним 08/07/20 Срд 14:43:15 174500813
>>1744548
>>1744568
В том и дело что пишут все на интерфейсах, как и сказали код сворачивается легко, но на самом деле в любой IDE есть навигатор, где все удобнее.

И да, документацию все равно надо писать, хедеры придумали не для документации, такой идиотский дизайн линковки там.
Аноним 08/07/20 Срд 14:56:02 174502214
Я думаю, если решил вкатиться в 2020 на уровень С++, реально раст будет круче. Но если ты уже знаешь С++ то, конечно, нефиг вылизать из своего опыта.

Про го вообще можно не говорить, какое-то недоразумение.
Аноним 08/07/20 Срд 15:07:31 174503715
>>1745022
Кресты лучше раста хотя бы тем, что у них более развитая инфраструктура. Это если говорить не о недостатках самих языков как таковых, а о реальной разработке.
Аноним 08/07/20 Срд 15:28:41 174507116
>>1745037
Нашел чем мериться, сколько С++ существует, сколько раст, да еще в период перенасыщенности ЯП.

Дай такое же комьюнити расту, будет еще больше кода.
Аноним 08/07/20 Срд 15:34:54 174508317
>>1745071
Это, имхо, более объективная мера, чем сравнение сомнительных преимуществ самих языков. Каким бы хорошим язык ни был, без либ толку от него мало.
Аноним 08/07/20 Срд 15:40:57 174509118
>>1745083
Ну мы же живем в реальном мире. Нет такой физической возможности чтобы появился язык сразу со всем необходимым. Это даже глупо такое предъявлять конечно кроме прокси языков типа тайпскрипт, котлин, с++ совместимого в свое время с сями
Аноним 08/07/20 Срд 21:37:51 174536519
>>1745022
Сравниваешь тёплое с мягким
Каким бы говном говно ни было внутри самого себя, как язык это всё еще компилируемость + гц + пакет менежер + отличный конкуррент
Аноним 08/07/20 Срд 22:29:55 174540520
15336363098303.mp4 634Кб, 1280x720, 00:00:04
1280x720
Сап програмач. Я в го недавно, подскажите пожалуйста как лучше в го валидировать входящие json данные. Я посмотрел пакеты, которые доступны, самый популярный пакет, который я нашел - https://github.com/go-playground/validator он валидирует структуры , jsonschem'ы как я увидел не пользуются популярностью. В nodejs божественным @hapi/joi пользовался
Аноним 09/07/20 Чтв 05:35:31 174561121
>>1744692
>Любое IDE позволяет свернуть/развернуть всю реализацию одним сочетанием клавиш.
Код смотрится не только в IDE, например код смотрится в браузере на том же гитхабе.
Я хочу открыть файл и сразу увидеть интерфейс, а не нажимать кнопочки (которые я не помню)

>>1744692
>Так на интерфейсах всё и пишется
Заебешься все обмазывать интерфейсами, особенно там где оно не надо и никакого наследования в принципе быть не может и не должно.
Аноним 09/07/20 Чтв 05:38:36 174561222
>>1745008
>В том и дело что пишут все на интерфейсах, как и сказали код сворачивается легко, но на самом деле в любой IDE есть навигатор, где все удобнее.
это лишние телодвижения.

>>1745008
>хедеры придумали не для документации
но юзают их для отделения определение от объявления. Поэтому программисты в сях придумали новый тип файла - .inc - когда определение не получается засунуть в c/cpp(особенно для шаблонов)
Аноним 09/07/20 Чтв 13:37:03 174583023
>>1745612
>это лишние телодвижения.
А переключаться между заголовками и имплантацией - это не лишнее телодвижение?
Аноним 09/07/20 Чтв 23:28:28 174645324
Как кодить на го и не стать пидором? Я серьезно сейчас.
Аноним 10/07/20 Птн 00:18:01 174648925
>>1746453
Не надо его в попку совать, противный :)
Аноним 10/07/20 Птн 01:54:08 174652426
>>1745830
>А переключаться между заголовками и имплантацией - это не лишнее телодвижение?
А между классом и его интерфейсом?

Заголовок пишется один раз и надолго
Аноним 10/07/20 Птн 08:37:47 174657627
Аноним 10/07/20 Птн 08:43:13 174657728
>>1746576
Хорошего яп должно быть много.
Аноним 10/07/20 Птн 13:32:08 174681729
>>1746576
Один для тех кто использует interface{}, другой для тех кто использует кодогенерацию.
Аноним 10/07/20 Птн 15:36:03 174701630
>>1746817
И в обоих в основном постят те, у кого в языках есть дженерики или динамическая типизация.
Аноним 10/07/20 Птн 16:54:42 174713531
>>1747016
Чисто потыкать палкой, на этом всегда и жили треды по го.
Аноним 11/07/20 Суб 00:39:30 174759732
Почему в язык не зашили такие базовые вещи, как pop/insert для срезов? Каждый раз писать append(list[:1], list[2:]...) малец хуево.
Аноним 11/07/20 Суб 00:51:27 174761533
>>1747597
append и delete - магические функции, нельзя написать их аналоги средствами самого го, с попами и инсертами наверное решили эту магию дальше не плодить.
Аноним 11/07/20 Суб 01:16:16 174764134
>>1747615
И еще вопросик. По ссылке передавая слайс и изменяя его будет примерно так
append((list)[:1], (list)[2:]...)
Не упрощается? Т.е. пробегал глазами по го туру и вроде было, что (*list) можно на просто list заменить, но ошибка
Аноним 11/07/20 Суб 01:16:41 174764235
>>1747641
Там звездочка перед list
Аноним 11/07/20 Суб 11:13:17 174780036
image.png 39Кб, 676x323
676x323
Аноны, мне нужно создать windows service моего говнокода на golang, поискав, я увидел что все кончают от этой репы:
https://github.com/kardianos/service

Но я нихуя не вижу как именно нужно устанавливать go бинарь, через sc.exe?

Аноним 11/07/20 Суб 12:33:38 174787937
image.png 25Кб, 739x431
739x431
Зачем нужны функции возвращающие функции?
Это все только для того чтобы переменную засейвить между вызовами?
Почему просто не сделать статическую переменную?
Аноним 11/07/20 Суб 12:58:12 174792138
>>1747879
>просто не сделать статическую переменную
Код модуля засрется.
Аноним 11/07/20 Суб 13:38:58 174797839
>>1747879
> Зачем нужны функции возвращающие функции
Чтобы вернуть функцию из функции, дебил.
Аноним 11/07/20 Суб 15:52:40 174811940
>>1747921
> Код модуля засрется.
Ага, поэтому лучше сделать глобальную переменную.
Аноним 11/07/20 Суб 16:58:47 174824941
Насколько же в говне охуенный конкурент пиздец просто
Как будто пишу на скресте самого лучшего из жса с хаскелем
Аноним 12/07/20 Вск 14:23:59 174911342
Поясните за стек технологий, я за пару месяцев освоил гошечку до уровня "переписал всю фласкоалхемопарашу", ноль фреймворков, горутинами жонглирую, ну думаю, всё, я у мамы микропинусный специалист, пошёл смотреть вакансии и охерел, в каждой требуется знать по три сервиса для логов, по три сервиса для мониторинга, по три брокера сообщений, по три носкл-базы, причём в каждой вакансии новый набор, и каждая первая требует десятилетнего синьорства, как вообще в эту область вкатываться?
Аноним 12/07/20 Вск 15:39:22 174926743
>>1749113
Выслеживаешь го-сеньора, убиваешь его, переодеваешься в его одежду, ходишь вместо него на работу.
Аноним 12/07/20 Вск 18:54:55 174952944
Аноним 13/07/20 Пнд 12:43:56 175008745
>>1749113
На самом деле там не требуется по три всего и ты можешь спокойно идти на собеседование. Подобные требования сделаны для отсеивания совсем долбаебов (видимо ты входишь в их число, раз тебя это тормознуло).

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

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

В голэнге намного сложнее джуна брать, ибо его обучать придется год. А, напирмер, пхп или питониста можно за пару месяцев подготовить, соответственно и требования почти нулевые (опять же не нужно смотреть что в резюме требуют тысячу технологий).
Аноним 13/07/20 Пнд 13:55:32 175014646
>>1747879

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

Потому что добавь в функцию, возвращающую функцию, два-три параметра и представь себе комбинаторный взрыв если у тебя вместо генератора придется писать функцию на каждую комбинацию этих параметров.
Аноним 17/07/20 Птн 00:38:04 175340147
Screenshot20200[...].jpeg 132Кб, 717x1043
717x1043
Screenshot20200[...].jpeg 51Кб, 586x299
586x299
Суп гач. Дочитываю "Язык программирования Го". Встретился на охуенную функцию, которой мне дико не хватает после возможностей питона залезть своими руками в любой класс, даже в "__приватные" поля.

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

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

Спасибо
Аноним 17/07/20 Птн 10:24:18 175360048
>>1750087
Почему такая разница между вкатом в питон и го? Или он уже не такой простой?
Аноним 17/07/20 Птн 10:59:28 175361449
Аноним 17/07/20 Птн 16:50:10 175397750
>>1753600
Не помню, чтобы кто-то говорил про простоту вката в го. Речь обычно идет про простоту самого языка для того, чтобы начать на нем писать что-то внятное - это все еще правда.
Аноним 17/07/20 Птн 20:31:46 175413351
>>1753614
Ну через рефлексию в любом случае устанавливать эти значения нельзя, но для понимания общей картины, контекста происходящего, особенно если код не библиотечный, почему бы и не посмотреть. Как минимум дебаггер такую возможность предоставляет.

Просто думал может есть какие-нибудь удобные готовые инструменты.
Аноним 19/07/20 Вск 07:31:54 175523452
Привет, где можно посмотреть/почтитать как поэтапно пишут 4/10 сложности веб-приложение в актуальном виде? Можно на английском.
Аноним 19/07/20 Вск 07:45:01 175523953
>>1755234
Можно и сложнее, но шоб разжевали.
Мне надо откуда-то брать пркладную инфу, и потихоньку ее тащить в свою задумку.
Аноним 19/07/20 Вск 13:55:09 175534254
>>1755234

можешь на ютубе глянуть gopher school - там чел пишет простую веб-прилу. я с некоторыми вещами не очень согласен (например, работа с бд), но объясняется там неплохо + чел сразу тесты пишет
Аноним 19/07/20 Вск 17:03:59 175542655
>>1755234
Какие веб-приложения могут быть?
Рестик, докфайл и в продакшон
>>1755342
>некоторыми вещами не очень согласен (например, работа с бд),
Работает следовательно правильно!
Аноним 22/07/20 Срд 20:41:06 175796856
Аноним 24/07/20 Птн 16:19:23 175928457
>>1749529
elixir те ещё аутисты. никто за него крупная компания не стоит, соответственно пустая трата времени. ты либо тролишь или отсеиваешь конкурентов.
Аноним 26/07/20 Вск 17:49:02 176089058
>>1743955 (OP)
Сап, ребята. Помогите определиться плиз. Я сейчас пишу на питоне веб приложения типичные, стек django. Есть вариант вкатиться в fastapi/sqlalchemy и т.п., либо вкатиться в го. Как думаете, лучше потратить сейчас время на полное изучение одного языка с его либами, всей, так скажем, "экосистемой", или сейчас параллельно учить го? Потому что складывается ощущение, что писать бэк на питоне несерьезно что-ли...
Аноним 26/07/20 Вск 20:57:50 176100559
>>1760890
Я тебе так скажу. Тебе нужно определится по поводу языка. Выбрав другой язык, твои программы не станут лучше, ценного опыта не наберешь, и денег не заработаешь. Коль выбрал питон, и полностью его освоил дойдя до fasapi (ведь так? Или ты просто бэнчмарков наелся и реши что просто так начнешь API на нем клепать ?), означает что можешь работать. Как будет опыт мидла, сможешь трезво оценить ситуацию и если понадобится перейти на другой язык. Так что мой тебе совет, не мотайся от языка к языку, освой достаточно один, а там двигайся в любую сторону.
Аноним 26/07/20 Вск 21:47:58 176103060
>>1761005
Я в принципе эти и слова хотел услышать. Большое спасибо, что написал.
Аноним 26/07/20 Вск 22:36:53 176107361
>>1744747
Надеюсь, что хотя бы в одном варианте будет паника.
Аноним 28/07/20 Втр 23:47:51 176270762
Анон, что за прекол? В этом репе реализовано так мало паттернов, откуда у него 13к звезд? https://github.com/tmrts/go-patterns
Аноним 31/07/20 Птн 06:25:11 176471963
>>1761030
Тебе вообще ничего не нужно. Лучше по мусорным бакам ходи.
Аноним 02/08/20 Вск 15:33:46 176627864
Здравствуйте любители го. Вопрос такой. Играюсь с горутинами и возникло некоторое недопонимание...
Есть функция, отправка Post запроса на сайт (Больше ничего). Если я делаю цикл в мейн функции с запуском 100 горутин, то fmt.Println(runtime.NumGoroutine()) показывает, что горутин многократно больше. Если эту функцию заменить на обычный вывод текста, то все нормально, горутин столько же, сколько запускается. Кто нибудь подскажет почему так? Больше спасибо
Аноним 03/08/20 Пнд 02:37:11 176678365
>>1766278
Можно предположить, что функция, которой ты делаешь POST, под капотом создаёт другие горутины.
Аноним 03/08/20 Пнд 03:08:23 176679166
>>1746489
А что, на языке без трайкэтч можно писать как то иначе?
Аноним 03/08/20 Пнд 09:11:10 176686367
>>1766791
нахуя тебе трайкэтч?
Аноним 03/08/20 Пнд 09:57:09 176690368
>>1766783
Да, есть такой момент. На некоторые сайты горутин столько же сколько ожидается, а если гугл пинговать - многократно больше (И с некоторыми сайтами тоже)
Аноним 04/08/20 Втр 14:45:18 176821969
как dep на винду установить? чет не выходит, дока не помогает
Аноним 04/08/20 Втр 15:06:13 176823170
Аноним 04/08/20 Втр 15:17:38 176824371
04/08/20 Втр 18:36:47 176844772
Какие сейчас требования на миддла по Go? Что спрашивают?
Аноним 05/08/20 Срд 04:24:12 176864173
Почему код с каналами и многопоточностью работает медленнее, чем однопоточный код?
Аноним 05/08/20 Срд 10:11:35 176871074
>>1768641
Из-за каналов и многопоточности.
Аноним 05/08/20 Срд 10:34:27 176871875
Аноним 07/08/20 Птн 14:23:20 177090976
Где взять упражнения для Донована
Аноним 10/08/20 Пнд 08:12:25 177311877
>>1743955 (OP)
А почему лучший в мире? Для жнетрпрайзм все еще Ява и С++, для ндроеда Котлин, для айОС свифт.
Аноним 10/08/20 Пнд 09:25:28 177313578
>>1773118
>Для жнетрпрайзм все еще Ява
Go заменяет ноду и джаву в некоторых местах.
Аноним 10/08/20 Пнд 09:42:45 177313979
>>1773135
А в некоторых не знаменит.
Аноним 10/08/20 Пнд 10:10:36 177315380
>>1773135
Не вижу Го в ентерпрайзе.
Аноним 10/08/20 Пнд 14:38:11 177333681
>>1773153
А я не вижу плюсов в энтерпрайзе. Ты сейчас в 1995-м?
Го — это суслик, он есть, но ты его не видишь.
Аноним 10/08/20 Пнд 14:41:52 177333882
Аноним 11/08/20 Втр 15:40:59 177433283
Аноним 11/08/20 Втр 15:47:48 177434784
if err != nil {
return nil, err
}
if err != nil {
return nil, err
}
if err != nil {
return nil, err
}
Аноним 11/08/20 Втр 17:06:37 177448185
image.png 8Кб, 411x204
411x204
Сап, двач. Как в Golang подключить файл login.txt из папки src к файлу login.go в папке tests? Всё работает отлично, если оба файла находятся в одной папке, но их будет дохуя, и нужно как-то разделить.
Аноним 11/08/20 Втр 17:31:41 177449886
>>1774347
Выглядит как рапчик.
Аноним 12/08/20 Срд 19:31:11 177543487
>>1774481

Узнал. Спасибо, двач.
Аноним 13/08/20 Чтв 18:31:53 177641588
Эй, гофры, а ну-ка придумайте мне идею для проекта, чтоб пофлексить перед работодателями
Аноним 13/08/20 Чтв 19:18:17 177645089
Хочу написать программу сталкинга за Инстой ЕОТ 24/7, чтобы разв минуту рефрешилсоь и сохраняло на диск ей офлайн/онлайн статус в тектсовый файл, а так же скачивал новые фото и сториз в минуту их постинга

С ЧЕГО НАЧАТЬ? Краткий курс го прошёл
Аноним 13/08/20 Чтв 19:22:03 177645290
>>1776450
С изучения APi инсты.
Аноним 13/08/20 Чтв 21:56:11 177657191
Аноним 14/08/20 Птн 09:42:29 177684692
По туториалу 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

Аноним 14/08/20 Птн 13:56:24 177715993
>>1776846
Переустанови виндовс
Аноним 14/08/20 Птн 15:04:27 177726994
Аноним 16/08/20 Вск 21:32:06 177898995
>>1743955 (OP)

> 3 пик

Кодогенерация для слабаков...
Аноним 16/08/20 Вск 23:55:25 177907496
>>1778989
>Кодогенерация
Антипаттерн
Аноним 16/08/20 Вск 23:58:56 177907697
Антипаттерн-тред.
Аноним 20/08/20 Чтв 00:03:40 178223198
Реально ли найти работу на джуна гошечки без коммерческого опыта, но с доморощенным бэкграундом других языков?
Аноним 20/08/20 Чтв 01:02:07 178224499
1
Аноним 20/08/20 Чтв 03:32:57 1782272100
>>1782231
Реально, я вообще на мидла перекатился из nodejs
Аноним 20/08/20 Чтв 11:31:02 1782500101
>>1782272
Но ты описываешь свой опыт, который не похож на мою ситуацию. Как можно с недоджуна перекатиться на миддла?
Стоит ли тогда сначала на поработать на стэке с большим числом вакансий, чтобы получить хоть какой-то опыт, а потом пойти в голанг? Или сразу учить его и долго ходить собеситься?
У меня в основном все айти - это хобби энтузиазм и ковыряние своих "пет проектов" дома, официально работать прогером не приходилось.
Аноним 21/08/20 Птн 06:55:51 1783520102
>>1782500
>официально работать прогером не приходилось
Ну тогда учи го и вкатывайся в стажёры или джуны, вон в вайдбнрис и вроде ламоде берут, в авито, в озоне тоже (но хз насчёт джунов в озоне)
Аноним 21/08/20 Птн 16:54:57 1784218103
pojo
Аноним 22/08/20 Суб 08:05:32 1784655104
>>1782500
На го нет джунских вак. Бери нормальный устоявшийся язык - жабу или шарпы. 2 года с ними поработай, стань милом и двигай в свое го, если оно к тому времени не скурвится, как в свое время RoR.
Аноним 22/08/20 Суб 20:15:38 1785054105
Привет, пишу апи на го.
Как сделать кастомный тип ID,чтобы без большого труда можно было бы его заменить с int64 на string?

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

Ну, функцию pq.Array можно переписать и расширить, но я все равно не особо представляю как []ID приводить к []int64 =(
Аноним 22/08/20 Суб 20:23:23 1785058106
>>1785054
Еще вариант придумала, звучит как плохая идея, но все равно поделюсь

сделать type ID int64 и type IDs []int64 с пометочкой в комментариях "МЕНЯТЬ ВМЕСТЕ!11!!!1!"
Аноним 22/08/20 Суб 20:32:11 1785061107
Аноним 23/08/20 Вск 00:38:10 1785176108
>>1779074
Вот мой тимфюрер тоже так думает, по этому я, вместо того, чтобы генерить сервер и клиент из OpenApi спецификации - копипащу структуры между 6 микросервисами и обмазываю это болейрплейтом в рукопашную.
Аноним 23/08/20 Вск 00:44:48 1785186109
>>1785061
Если ты знаешь финальный размер слайса - эфективнее будет сразу алоцировать слайс нужной длины (или вместимости, если удобее через аппенд)
https://play.golang.org/p/EuSozdMlme0
Аноним 23/08/20 Вск 00:59:18 1785196110
>>1785058
Ты можешь еще сделать
type ID int64
и
type IDs []ID
Аноним 23/08/20 Вск 06:44:07 1785280111
>>1784655
>нормальный устоявшийся язык - жабу или шарпы
>2 года с ними поработай
Не ломай человек жизнь
Аноним 23/08/20 Вск 09:25:33 1785306112
>>1785176
Скажи ему спасибо, что позволяет тебе получать деньги за работу, которую бесплатно делает кодогенератор.
Аноним 23/08/20 Вск 10:23:47 1785315113
>>1785186
Знаю размер слайса, но как-то затупила и не воспользовалась этим =( Спасибо за наводку!

>>1785196
Я писала про []int64, потому что он каститься будет без проблем)
А вообще мне не очень нравится идея существования таких оберток для оберток, лично мне гораздо удобнее явно видеть слайс или мапку
Аноним 24/08/20 Пнд 13:05:46 1786236114
В го все так же руками надо каждый модуль ставить?
Или уже пофиксили?
Аноним 24/08/20 Пнд 14:13:38 1786347115
>>1785315

Почему уже 4 пост от тебя а сисек нет?
Аноним 24/08/20 Пнд 14:39:36 1786399116
>>1786347
Успокойся, я просто бабой прикинулся чтобы мне быстрее ответили, всем спасибо все свободны.
Аноним 24/08/20 Пнд 15:20:38 1786436117
>>1786347
Ты опять все спутал, анон. Это тред по го, а не по скидыванию сисек в четвертом посте
Аноним 24/08/20 Пнд 22:51:32 1787058118
Аноним 26/08/20 Срд 14:31:41 1788695119
Аноним 31/08/20 Пнд 20:38:12 1794106120
Анонасы, подскажите, насколько реально вкатиться в GO и таки найти работу именно GO-разрабом не имея большого опыта на других языках?
Аноним 31/08/20 Пнд 20:51:33 1794112121
>>1794106
Реально, но лучше перекатываться.
Аноним 31/08/20 Пнд 20:57:58 1794118122
Аноним 31/08/20 Пнд 21:33:20 1794153123
>>1794112
У меня есть небольшой опыт PHP, а конкретно кастомизации компонентов под битру и их написание, много верстал, занимался сеошкой, рекламой(очень типичная вакансия в мухосранске). Чекаю инфу на метаните и golangs.org - просто, а самое главное интересно, в отличии от тех же фреймов пыхи(хз почему, но не зашел ларавель). Собственно с соображалкой проблем нет, инфу, опять же, если интересно, усваиваю\понимаю\принимаю лучше других(ориентируюсь на дногруппников). Анон, если не сложно, подскажи конкретнее. Со знаниями курса с метанита и сайта выше, плюс, например, чат-бот для телеги, плюс, например, интеграция каких-либо сервисов с сайтом(для мини-портфолио и в первую очередь собственного знания), каковы шансы устроиться таки в ДС2?
Вопрос конечно ебанутый, все индивидуально и тд и тп, к тому же понимаю, что лучше задрочить фреймворк php, но блять не интересны они почему то
Аноним 10/09/20 Чтв 23:58:10 1803181124
>>1794153
я думаю что шансы более чем, особенно если учесть, что бывают вакансии Perl/Go, PHP/Go, Python/Go, намекающие, с чего на что надо переписать
Аноним 14/09/20 Пнд 15:34:32 1806208125
читнул первую книжку вдумчиво, с разбором примеров, сейчас читаю web development. Но чёт посмотрел, совсем нет вакансий. Вообще реально работу найти?
Аноним 15/09/20 Втр 12:19:41 1807118126
>>1806208
Хз ,я из Новосибирска, нескольколет назад штук пять было, получил оффер. Потом решил уволиться и переехать, за месяц собесов (подался штук 10 компаний) получил несколько офферов в Москву и Питер, некоторые даже удалённо.
Это не php, конечно, в каждом втором подавале на го не пишут, зато вакансии в большинстве нормальные и рейты не самые плохие.
Аноним 15/09/20 Втр 23:42:39 1807717127
if err != nil {
  return nil, err
}
Аноним 16/09/20 Срд 00:03:07 1807726128
>>1807717
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{} { ... }
Аноним 16/09/20 Срд 18:33:53 1808374129
Ха-ха, обоссаны гоферы ебаные, даже ответить нечего.
Аноним 16/09/20 Срд 19:09:15 1808417130
>>1808374
Они все в прошлом треде сидят, потом сюда перекатятся.
Аноним 16/09/20 Срд 19:14:44 1808418131
>>1808417
Ха-ха, перекатятся, а их тут уже обоссали.
Аноним 17/09/20 Чтв 15:08:22 1809021132
Аноним 17/09/20 Чтв 21:15:33 1809385133
Аноним 17/09/20 Чтв 21:18:42 1809387134
>>1809385
> думает, что кодогенерация появилась от хорошей жизни
Аноним 17/09/20 Чтв 22:05:55 1809429135
Бля, сколько лет вы еще будете обсуждать одно и тоже?
Аноним 17/09/20 Чтв 22:20:02 1809451136
>>1809429
Когда исправят очевидные дефекты в языке, тогда и перестанем.
Аноним 17/09/20 Чтв 23:14:58 1809541137
в 2021 когда сделают женерики все посты будут про err != nil
Аноним 17/09/20 Чтв 23:30:29 1809572138
>>1809541
Завозить нужно будет ещё много чего, кроме дженериков и эксепшенов.
- нормальные структуры данных (ring, list, heap - это даже не смешно)
- полиморфизм
- аннотации
- заменить ошибку на варнинг при неиспользуемых импортах или переменных
- система пакетов - это вообще пиздец, один прибитый гвоздями Git чего стоит.
Аноним 18/09/20 Птн 14:00:48 1809923139
>>1809572
>эксепшенов
нахуя нужны?
>полиморфизм
не понимаю, почему полиморфизм выделен в отдельный от дженериков пункт. в языке есть интерфейсы. какой еще полиморфизм нужен? дженерики? либо я просто не понимаю, что такое полиморфизм, объясни, пожалуйста
>заменить ошибку на варнинг при неиспользуемых импортах или переменных
что плохого в том, что компилятор бьет тебя по рукам за хуевое оформление кода?
Аноним 18/09/20 Птн 14:04:43 1809926140
>>1809923
>дженерики?
сорян, лишний раз продублировал
Аноним 18/09/20 Птн 14:13:08 1809936141
>>1809923
> нахуя нужны?
Чтобы сократить объём кода на 50%, и его стало легче читать.
> полиморфизм
Я проебался, имел в виду перегрузку методов, чтобы можно было несколько одноимённых методов с разными сигнатурами.
> что плохого в том, что компилятор бьет тебя по рукам за хуевое оформление кода?
Если пишешь какой-то тестовый код, где всё время комментишь/раскомменчиваешь строки кода, которые юзают импорты или те переменные, приходится каждый раз прыгать по всему коду и все эти импорты и переменные тоже комментить, либо писать костыли наподобие fmt.Print(""), чтобы компилятор, считающий себя самым умным, перестал выёбываться.
Аноним 18/09/20 Птн 14:23:49 1809941142
>>1809936
>Чтобы сократить объём кода на 50%, и его стало легче читать.
это, конечно, правда, но, имхо, подход с передачей ошибок между слоями приложения более правильный, чем выброс исключения в никуда. например, выбросил ты исключение из доменного слоя, а обрабатывает его кто-то (и вообще, обрабатывает ли?) на уровне хттп-обработчика. понятно, что все зависит от уровня развития макаки, которая работает с твоим кодом и исключением, но гарантий того, что ошибка будет обработана корректно, больше в случае с гошным подходом. + необработанная ошибка в го не приведет к остановке всего приложения, как в случае с необработанным эксепшеном, а это зачастую важно
>приходится каждый раз прыгать по всему коду и все эти импорты и переменные тоже комментить
а IDE какую юзаешь? goland, например, автоматически убирает импорт, если в файле пакет не используется. думаю, для других редакторов таких плагинов тоже хватает. не думаю, что подобные проблемы следует решать изменениями в языке/компиляторе
Аноним 18/09/20 Птн 14:34:55 1809946143
>>1809936

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

То может нужно голову включить а не тыкаться?
Аноним 18/09/20 Птн 14:41:16 1809947144
>>1809941
> подход с передачей ошибок между слоями приложения более правильный, чем выброс исключения в никуда. например, выбросил ты исключение из доменного слоя, а обрабатывает его кто-то
Проброс ошибок тоже ничего не гарантирует. Часто уже на автомате пишут "return nil, err", даже не задумываясь, что это за ошибка, либо понимая, что на этом уровне её не обработать. Почти как checked exceptions в жабе.
> на уровне хттп-обработчика
> необработанная ошибка в го не приведет к остановке всего приложения, как в случае с необработанным эксепшеном
Я такое только в плюсах видел, чтобы эксепшен не ловился где-то на самом верхнем уровне и не обрабатывался, а приложение аварийно завершалось. Обычно везде есть минимальный дефолтный обработчик, который всё оборачивает в 500 Internal server error.
> а IDE какую юзаешь?
Я не пишу на го всерьёз, поэтому goland не видел. Но без редакторов с автоматическим удалением импортов писать на го очень больно.
> не думаю, что подобные проблемы следует решать изменениями в языке/компиляторе
Ну а я думаю, что проблемы стиля должны быть именно варнингами, код-то рабочий. И изменение не должно ничего сломать, это ведь разрешение того, что было запрещено, но не изменение поведения.
Аноним 18/09/20 Птн 14:42:35 1809948145
>>1809946
С таким подходом можно до ассемблера докатиться.
Аноним 18/09/20 Птн 15:53:31 1809988146
>>1809941
>необработанная ошибка в го не приведет к остановке всего приложения, как в случае с необработанным эксепшеном, а это зачастую важно
ага. только вот если что то идет не так, то в итоге получается не то. и работать потом с невалидным стейтом такое себе.

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

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

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





Аноним 18/09/20 Птн 16:38:52 1810030147
>>1809936
>Я проебался, имел в виду перегрузку методов, чтобы можно было несколько одноимённых методов с разными сигнатурами.
Говно для даунов. Возвращайся в плюсы и жри там это неявное поведение. Разве нормальному человеку нужно, чтобы метод с одним и тем же именем имел разное поведение, в зависимости от типа аргумента?
Аноним 18/09/20 Птн 16:44:33 1810034148
>>1810030
>Разве нормальному человеку нужно, чтобы метод с одним и тем же именем имел разное поведение, в зависимости от типа аргумента?
нормальному человеку нужно чтобы метод мог в себя принять разное то что у тебя с собой есть, а не заставлять тебя искать "а как привести все к тому виду как ему надо" или гадать "а вот у меня с собой это и как бля называется нужный метод"

про паттерн visitor и деревья вообще можно не вспоминать )
Аноним 18/09/20 Птн 16:46:57 1810037149
Аноним 18/09/20 Птн 16:49:59 1810041150
>>1810030
>>1810034
Пардон, что так грубо, но эта фитча скорее не нужна, т.к. большинство людей - идиоты, и скорее всего будут злоупотреблять этой фитчей, и компилятор не сможет проверить, одинаковое ли поведение для, скажем, оверлоада с аргументом стринга, и для оверлада с аргуметом байтслайса.
>>1810037
Да, но с овелоадом - все то же самое, только весь этот пиздец еще и называется одним именем
Аноним 18/09/20 Птн 18:16:45 1810165151
>>1810041
>компилятор не сможет проверить, одинаковое ли поведение для, скажем, оверлоада с аргументом стринга, и для оверлада с аргуметом байтслайса.
Ага, ведь в других языках таких сложнейших фич нет.
Аноним 19/09/20 Суб 02:06:23 1810441152
>>1810165
Я писал, что фитча не нужна, по тому что ей будут злоупотреблять, а не то, что ее нельзя реализовать. Дженериков и интерфейсов всем должно хватить.
Аноним 19/09/20 Суб 03:35:08 1810469153
>>1810441
Да с чего ты взял что перегрузки должны делать одно и то же?
Нет такого ожидания
Аноним 19/09/20 Суб 15:25:11 1810834154
>>1810469
>Да с чего ты взял что перегрузки должны делать одно и то же?
С того, что это один и тот же метод, с тем же именем
Аноним 19/09/20 Суб 15:36:34 1810837155
>>1810834
>С того, что это один и тот же метод, с тем же именем
и что с того?

ты в функциях if к параметрам используешь? если да то у тебя функция значит делает разное в зависимости от переданных значений
хотя имя то одно.


Аноним 19/09/20 Суб 15:53:14 1810854156
>>1810837
В плюсовой, например, реализации - это выглядит как несколько блоков, несколько методов с одним именем, которые могут вообще не иметь общего кода, в отличии от метода с if/switch по параметрам, которые, скорее всего будут иметь общий код до и/или после ветвления.
Аноним 19/09/20 Суб 15:56:30 1810855157
>>1810834
попробуй в общем реализовать паттерн visitor без перегрузок
потом расскажешь
Аноним 19/09/20 Суб 16:00:52 1810856158
А вот оверлоад операторов - это заебись. Почти всегда - нахуй никому не уперлось, но зато элегантно.
Аноним 19/09/20 Суб 16:05:04 1810860159
>>1810855
Говно для нарушения SOLID
Аноним 19/09/20 Суб 16:16:59 1810876160
>>1810860
А ну расскажи мне как обойти дерево с нодами разных типов без visitor
if и его аналоги не предлагать - за это бьют розгами
Аноним 19/09/20 Суб 18:33:35 1810992161
>>1810876
Лолкек, как ты в го сделаешь дерево с нодами разных типов?
Через интерфейсы, через интерфейсы же и обходить будешь.
Аноним 19/09/20 Суб 18:35:26 1810993162
>>1810992
дык во всех языках ноды приведены к чему то базовому
и паттерн визитор как раз и делает связывание вместо if
Аноним 19/09/20 Суб 19:09:26 1811015163
>эти попытки сделать из го плюсно, чтобы потом начать ругаться на гц вместо raii
лол бл
Аноним 19/09/20 Суб 19:15:20 1811022164
>>1811015
Да, а что не так? Шажочек за шажочком дойдём до убийцы C++. Людям не нужно всякое говно типа раста или го, им нужны безопасные кресты.
Аноним 20/09/20 Вск 10:21:43 1811370165
>>1811022
>людям не нужен раст
>им нужны безопасные кресты
????????????
Аноним 20/09/20 Вск 17:21:47 1811654166
>>1811370
Неужели ты считаешь, что ущербный раст сейчас способен заменить Великие Плюсы?
Аноним 20/09/20 Вск 21:35:02 1811939167
>>1811022
Людям вообще погромирование не нужно, оно для педиков

Людям нужен продукт
Аноним 20/09/20 Вск 21:50:16 1811961168
>>1811939
Продукт нужен быдлу, а людям нужна духовность, которую можно найти в том числе и в программировании, осмотрено в сложных языках наподобие Плюсов.
Аноним 20/09/20 Вск 23:15:20 1812059169
image.png 966Кб, 787x787
787x787
Аноним 21/09/20 Пнд 00:04:42 1812097170
>>1811961
ПодДвачну этому борщехлебу
Аноним 22/09/20 Втр 12:33:39 1813147171
Я чет нихуя не пойму, почему бинарник на выходе имеет таблицу экспорта, в которой все функции содержатся. Это надо при статической линковке? Или ее можно удалить нах? У меня же не dll файл, через hхd меняю название функций, и все работает, то нах оно нужно в принципе, в ехе файле?
Аноним 22/09/20 Втр 14:07:50 1813248172
image.png 50Кб, 436x115
436x115
Аноним 22/09/20 Втр 15:43:13 1813301173
>>1813248
нехуй что ответить - пошел нахуй псина
Аноним 22/09/20 Втр 20:05:22 1813520174
блядь да какого хуя ты не удаляешь названия функций, как в gcc передаешь -strip и все заебись, а тут пизда хуйня ебаная, передаешь -s он чет удаляет, но все до пизды
Аноним 23/09/20 Срд 09:20:47 1813841175
А что дают гокит/гомикро/etc относительно собственноручно написанного микросервиса?
Аноним 23/09/20 Срд 12:27:34 1814039176
>>1813841
> что дают
дохуя фич, которые тебе могут быть не нужны
Аноним 23/09/20 Срд 13:01:01 1814054177
gccgo для винды есть?
Аноним 23/09/20 Срд 13:02:41 1814056178
>gccgo для винды есть?
помню там еще лет 8 назад хотели пилить gccgo под винду, но воз и ныне там?
Аноним 23/09/20 Срд 16:22:00 1814290179
Хай гайс, есть короче дилемма. Пишу тестовый проект для email подписки на изменение цен вэб объявлений авито. Хочу сделать это отдельным сервисом, внутри которого есть некоторая структура которая хранит данные вида ("ID товара", "Актуальная цена", емайлы подписанных юзеров). И всё не могу понять к какому виду это привезти. Очень хочу юзать map для хранения всего этого.

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

Аноним 23/09/20 Срд 16:33:48 1814304180
>>1814290
map[string]stuct{price int, emails []string}

а вообще хз, насколько хорошая идея - хранить это все в приложении, если будет много данных>>1814290
Аноним 23/09/20 Срд 16:43:22 1814312181
>>1814056
Но зачем? Г++ запили и оно никому не нужно кроме пары пердоликов.
Аноним 23/09/20 Срд 16:51:17 1814321182
>>1814304
Я крч подумал и решил что лучше хранить это в двух разных мапах. В одной map[string][]string - список подписанных емэйлов, а в другой map[string]string - актуальную цену. Так наверное лучше будет.
Можно какой нибудь рэдис использовать для хранения ). Просто если учесть что будет много отслеживаемых товаров и каждый раз для сверки цены приложуха будет ходить в БД - это наверное ужас.
Аноним 23/09/20 Срд 16:56:21 1814326183
>>1814321
да на самом деле от кол-ва запросов и данных зависит. при низкой нагруженности ты издержек от хождения в БД не ощутишь особо, имхо. а при высокой лучше действительно редис заюзать
Аноним 23/09/20 Срд 16:56:24 1814327184
>>1814312
мне нужна сборка мусора, и горутины, этот язык попроще ++ будет, и получше. С коробки почти все есть, что надо.
Аноним 23/09/20 Срд 17:40:24 1814389185
>>1814327
Я тебя спрашиваю зачем тебе порт gcc, а не нормальные тулчейны.
Аноним 23/09/20 Срд 18:01:31 1814413186
>>1814389
потому что много отладочной информации содержит бинарник, попросту - не нужной для обычного юзверя, и сильно помогающий реверсеру
Аноним 23/09/20 Срд 20:14:14 1814499187
Очевидно, что создателей Go не ебёт, что кто-то пытается его юзать как замену C++, а кто-то другой реверсит поделку первого. Go не создавался как убийца крестов, это серверный язык, как всякие жабы и питоны, и на сервере всем похуй, что всё легко декомпилится. Удивляться, что Go не делает то, для чего он и так не предназначен, как минимум странно.
Да, убийцы C++ действительно не хватает. Но это ещё не повод брать Go.
Аноним 23/09/20 Срд 20:46:39 1814513188
>>1814499
Убийца плюсов, как по мне, это потихоньку набирающий популярность Rust, хотя есть ещё и D Language.
Аноним 23/09/20 Срд 21:37:53 1814540189
>>1814499
на сервере не надо ничего защищать?

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

>>1814513
слышал, что на расте еще больше бинарник весит, чем на го, это так?
Аноним 23/09/20 Срд 21:47:14 1814546190
>>1814321
>Так наверное лучше будет.
через неделю появляются еще 3 поля которые нужно хранить
Аноним 23/09/20 Срд 21:50:09 1814551191
>>1814499
Убийца плюсов уже есть ведь, это раст. Двачую то, что сравнивать го с плюсами это какой-то бред, вообще из разных опер языки
Аноним 23/09/20 Срд 22:00:48 1814561192
>>1814540
> на сервере не надо ничего защищать?
Надо, доступ к самому серверу. А если доступ защищён, то на самом сервере пускай хоть вообще всё открытым текстом лежит, юзеры всё равно не могут это прочитать.

> а что тогда брать?
Не знаю, но точно не Go. Я тут пытался заставить Go работать с dll-ками и с либами без исходников, там всё очень плохо, причём это не недоработка, а принципиальная идеология языка.
У раста, говорят, инфраструктура хреновая, но с другими компилируемыми в нейтив языками всё намного хуже. Да и вдруг у раста тоже нельзя сделать strip.
Аноним 23/09/20 Срд 22:43:20 1814601193
>>1814540
>слышал, что на расте еще больше бинарник весит, чем на го, это так?

Честно говоря, не проверял, но разница там не особо большая.
Аноним 23/09/20 Срд 22:48:17 1814605194
>>1814540
>на сервере не надо ничего защищать?
Надо, но удалением отладочной информации ты ничего не защитишь, а только усложнишь исправления проблем.
>слышал, что на расте еще больше бинарник весит, чем на го, это так?
Они там жирные, но не настолько, на сколько в го. Если критичен вес - используй strip
Аноним 24/09/20 Чтв 01:02:31 1814677195
>>1814605
В го жирные бинарники? Лол
Аноним 24/09/20 Чтв 07:30:29 1814776196
>>1814513
>>1814551
Но ведь раст разве что Мозилу убить сможет. Он ещё не готов к продакшену, гора зависимостей в альфа/бета версиях, все либы тухлые, документация пилится энтузиастами, дебагера нет, многие фичи языка пердольные - та же асинхронность. Ну и скорость не впечатляет по сравнению с Zig или хотя бы V. Волна популярности раста прошла и после неё оказалось что лишь единицы пердоликов готовы кодить на этом говне. А свежие проекты, где важна производительность, всё так же пишут на си/крестах + асм-вставки.
Аноним 24/09/20 Чтв 07:39:53 1814778197
>>1814561
> Я тут пытался заставить Go работать с dll-ками и с либами без исходников, там всё очень плохо
Что у тебя плохо там? В Go встроена сишка и полная совместимость со всеми сишными либами, просто инклюдишь хэдеры и указываешь компилятору где либы брать. С крестами естественно не будет работать, нужен С-интерфейс в либе.
Аноним 24/09/20 Чтв 08:56:38 1814803198
>>1814778
Я хотел именно на Go, а не через FFI. Но это уже неважно.
Аноним 24/09/20 Чтв 20:04:18 1815376199
>>1814776
>Ну и скорость не впечатляет по сравнению с Zig или хотя бы V
Ты серьезно zig или v рассматриваешь? Это вообще ноунеймы, нет смысла даже думать о них. V вообще какое-то васянское поделие, кривой копипаст го. Но про скорость интересно, есть пруфы?
>Волна популярности раста прошла и после неё оказалось что лишь единицы пердоликов готовы кодить на этом говне.
Это уже толсто. Пруфов не будет, я уверен.
>А свежие проекты, где важна производительность, всё так же пишут на си/крестах + асм-вставки.
Чаще всего да, но есть и на расте свежие проекты.
25/09/20 Птн 08:11:53 1815637200
>>1809387
Кодогенерация лучше дженериков, потому что код получается проще. Дженерики вообще не нужны. Их отсутствие в го - достоинство языка.
Аноним 25/09/20 Птн 10:21:44 1815707201
>>1815637
Это жабу напоминает уже, где кодить без ide невозможно
Аноним 25/09/20 Птн 10:52:13 1815725202
>>1815637
> Их отсутствие в го - достоинство
А я всё думал, почему котлин у меня так сильно ассоциируется с goвном. А всё из-за уебанского отношения к кодерам вместо того, чтобы дать им выбор. В котлин-треде тоже недавно писали, что какой-то там тип специально сделан ущербным, чтобы его не юзали. Пиздец.
Аноним 25/09/20 Птн 10:56:37 1815728203
>>1815637
Да зачем вам эти дженерики вообще?
За все время моего программирования на го, дженерики были нужны только для каких-то небольших util функций, которые несложно и скопировать в случае чего.
>>1809387
>> думает, что кодогенерация появилась от хорошей жизни
Кодогенерация появилась не для замены дженериков

Аноним 25/09/20 Птн 12:49:38 1815785204
>>1813147

Потому что проприетарные мудаки, которые хотят спрятать свой код и защититься от хакеров которые мешают получать недополученную прибыль - не нужны.
Аноним 25/09/20 Птн 12:52:33 1815786205
>>1815785
А ещё книги, фильмы и игры должны быть бесплатными, да и вообще коммунизм.
Аноним 25/09/20 Птн 12:53:10 1815789206
>>1815725
>А всё из-за уебанского отношения к кодерам

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

Поэтому все кодерки должны думать одинаково - их нужно дрессировать быть рабами чтоб бы они при этом со счастьем на лице обмазывали ебло малафьей и самостоятельно траллили тех своих коллег, кто рабами быть не хочет и обзывали быдлокодерами, показывали пальцем и смеялись, в перерывах в курилках обсуждая новые модные кандалы.
Аноним 25/09/20 Птн 12:58:21 1815794207
>>1815789

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

Чего блядь, в каких курилках, какие назхуй переывы, никаких перерывов, только спецально одобренная корпоративная ржомба в специальных корпоративных чатиках в телеге.
Аноним 25/09/20 Птн 14:49:18 1815860208
>>1815728
Я и говорю, не нужны
>>1815707
Генератор может быть вызван из консоли, описание для него написано в твоём любимом редакторе
>>1815725
Язык должен был простым в смысле количества сущностей и правил для них. Иначе получится С++ и никто не захочет его использовать.
Аноним 25/09/20 Птн 15:03:57 1815865209
>>1815860
Примитивный язык != простой.
Аноним 25/09/20 Птн 15:07:08 1815866210
>>1815865
В том смысле, который я обозначил, это именно синонимы
Аноним 25/09/20 Птн 15:14:46 1815871211
>>1814677
Какой размер должен быть у хелоуворолда, чтобы он считался жирным?
Аноним 25/09/20 Птн 17:55:50 1816120212
>>1815871
А какой должен, чтобы не считаться жирным?
Аноним 25/09/20 Птн 22:15:07 1816334213
Книги для вката из шапки все еще актуальны?
Аноним 26/09/20 Суб 15:35:19 1816769214
>>1816120
Как в сишечке - меньше килобайта.
Аноним 26/09/20 Суб 16:01:18 1816801215
Вот читаю я на дваче про "жирные" бинарники, а потом смотрю на джавовский ear-ник на работе в полгигабайта и задумываюсь.
Аноним 26/09/20 Суб 16:24:21 1816827216
>>1816801
Ясное дело, что все это - писькомерство, но в некоторых особых случаях это может быть важно
Аноним 26/09/20 Суб 17:27:38 1816884217
>>1816827
Так гошечка и не позиционирует себя как средство для микроконтроллеров, где размер бинарника важен
Аноним 26/09/20 Суб 17:41:04 1816896218
>>1816884
Так и есть. Претензии к размеру бинарника какие-то надуманные, это вам не сишечка. Но вообще есть такое решение: https://github.com/tinygo-org/tinygo

Мимокрок
Аноним 26/09/20 Суб 17:45:41 1816897219
>>1816896
>go for command line tools
Если это не нужно для каких-то тяжелых вещей, то за это убивать нужно
Аноним 26/09/20 Суб 22:01:47 1817034220
>>1816897
За что убивать? За написание cli tools на го? Да ты же поехавший, на го как раз особенно часто их пишут, и не удивительно, он для этой цели отлично подходит.
Аноним 26/09/20 Суб 22:45:32 1817042221
>>1817034
У меня просто жопные боли были, когда наш девопс настроил деплой через бинарники на го и на каждый пук необходимо к нему было обращаться, так как исходники он не давал
Аноним 27/09/20 Вск 00:48:25 1817095222
>>1817042

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

Весь код должен быть в корпоративных репах.
Аноним 27/09/20 Вск 04:32:49 1817141223
>>1817042
Зачем тебе исходники?
Аноним 27/09/20 Вск 04:43:41 1817143224
>>1816897
намного лучше более популярных альтернатив вроде петона - закинул себе в патх и пользуешься, не ебешь мозги никакими плагинами. лучше только посикс или баш с корутилзами.
Аноним 27/09/20 Вск 05:19:08 1817149225
>>1817141
А вот и тот девопс пожаловал.
Аноним 27/09/20 Вск 16:13:13 1817493226
>>1817149
Ну реально, зачем тебе? Тебе же тулза нужна чтобы в ней запускать команды
Аноним 28/09/20 Пнд 10:57:43 1817967227
>>1815376
> Но про скорость интересно, есть пруфы?
Естественно. На TechEmpower либа jsonа быстрее на v, чем на сишке. Zig вообще в любых бенчах рвёт сишку, посмотри у них на сайте, но пока на нем ничего не пишут серьезного из-за breaking changes, которые в один список не влезают.
> Это уже толсто. Пруфов не будет, я уверен.
Последний год звёзды быстрее v набирает, чем раст. Куча либ на расте были на хайпе в 2018 написаны и до сих пор тухнут. Сам язык замер без изменений, а фиксить там ещё много чего.
Аноним 28/09/20 Пнд 16:13:33 1818204228
>>1817967
Про либу jsona на techempower:
У раста may-minihttp 1,593,722
У V pico.v 1,617,611
Разница очень маленькая, а ты говоришь раст по сравнению с V не впечатляет
Аноним 29/09/20 Втр 09:45:20 1818642229
Го это писька, чтобы за 5 минут написал серверную залупу, которая работает быстро из коробки, без ебли и оптимизаций, с маленьким бюджетом.

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

Если ты начинаешь молодой стартап с небольшим бюджетом, или MVP, то гошечка после идеальна.
Начненать на яве или С++, это уже автоматом выстрелить в ногу.
Аноним 29/09/20 Втр 10:02:25 1818655230
>>1818642


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

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

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

И именно по этой причине даже под дохлый и никомку в 2K2D не нужный бекенд на ноде есть куча маняорм-фрейморков и прочих тру-энтерпрайз клонов Spring вроде NestJS.
Аноним 29/09/20 Втр 13:48:39 1818800231
>>1818642
> Зачем вообще сранивать с монстрами, типо явы
Сравнивают потому что на го можно быстрее и эффективнее делать то, что можно через боль и страдания делать на жяве
Аноним 29/09/20 Втр 14:07:15 1818806232
>>1818655
>NestJS
>клон Spring
Скорее подражатель
Аноним 29/09/20 Втр 14:08:30 1818807233
Аноним 29/09/20 Втр 21:30:34 1819161234
>>1818807
> писать бекенд на питоне
Lol
Аноним 30/09/20 Срд 14:48:27 1819725235
>>1818807
По описанию похоже на цмс/цмф с бузнес спецификой
Аноним 01/10/20 Чтв 19:28:55 1820661236
Поясните, пожалуйста, когда и как пользоваться sync.Cond'ом?
Аноним 02/10/20 Птн 11:08:07 1821086237
>>1819725

Не, там 1C УПП/SAP на минималках.
Аноним 02/10/20 Птн 11:15:44 1821094238
>>1819725
>>1821086
Пиздец, я будто в пхп- или vba-тред зашёл. Go теперь тоже pochini printer tier?
Аноним 02/10/20 Птн 12:32:28 1821142239
Аноним 02/10/20 Птн 18:04:28 1821404240
>>1821094
Нет, го это микросервисный йоба-хайлоад
Аноним 02/10/20 Птн 21:43:34 1821571241
>>1818807
https://github.com/odoo/odoo/blob/14.0/odoo/service/model.py

Как с таким говном еще кто-то считает питон стильным модным молодежным классным языком? Это же какая-то процедурная параша уровня как раз вышеупомянутых цмс на пхп
Аноним 02/10/20 Птн 22:03:16 1821577242
image.png 49Кб, 881x555
881x555
Питон идеален, когда надо по-быстрому наклепать мелкотулзу, скрипт для автоматизации чего-либо или модель какой-нибудь простой нейросетки. Но ведь, сука, пишут огромные проекты, которые на каждое второе действие стектрейсят и стектрейсят, что тип неправильный, или какого-то метода нет. И не надо про юнит-тесты - это костыль, чтобы компенсировать отсутствие статической типизации.
Аноним 02/10/20 Птн 22:22:32 1821581243
>>1821577
У нас на работе обязателен type hinting через mypy и проверку кода на стиль и синтаксические ошибки через black перед коммитом.
На пике рач у которого breaking changes вообще норма
Аноним 02/10/20 Птн 22:41:08 1821590244
>>1821581
Рач тут не при чём, такое и на винде с подобной либой может возникнуть.
Аноним 02/10/20 Птн 22:45:46 1821592245
>>1821590
>breking changes не читай
>Версию обновляй
Аноним 02/10/20 Птн 22:48:38 1821594246
>>1821592
Поэтому надо сидеть на Python 2.
Аноним 02/10/20 Птн 22:52:19 1821596247
>>1821594
Слишком утрированно, на любом ЯПе сразу обновляться не следует
Аноним 03/10/20 Суб 06:45:00 1821811248
Кто-то юзает goconvey или ginkgo для бдд тестов?
У меня в проекте овер9000 тестиков, мне вот интересно, как мне уменьшить дублирование кода в них.
В тех же ПХП, на котором в компании есть легаси код, я заметил люди пишут бдд тесты просто текстом.
типа, "Given user" = func() { user := User{} }
Given User
When bla bla
Then this one

Хотелось бы так же, чтобы я описал тесты в виде текста, а условия были маленькими функциями
Аноним 03/10/20 Суб 10:33:40 1821845249
Аноним 03/10/20 Суб 10:34:59 1821848250
>>1821811

Я писал BDD для golang, только на ruby\cucumber
Аноним 03/10/20 Суб 12:17:16 1821883251
>>1821845
Пиздос. Это вообще зачем?
Аноним 03/10/20 Суб 16:56:55 1822086252
>>1821883
Чтобы менеджеры сами писали тесты
Аноним 03/10/20 Суб 17:19:03 1822106253
>>1822086
Помнится, про SQL тоже кто-то так говорил.
Аноним 03/10/20 Суб 19:13:32 1822212254
>>1821592
ты серьезно? тут не просто новости рача или петона читать нужно, тут нужно сканировать код для всего петоноговна, которое у тебя установлено, чтобы узнать, ломает ли новый кейворд петона какой-то пакет. делать это вручную или как ты написал "читать" это брейнлет-тир, эту задачу должен решать не пользователь.
Ленивый Пельмешек 03/10/20 Суб 19:58:20 1822263255
Товарищи, а как можно импортить сишные .h в .go? Вопрос странный, но где-то видел подобную фигню. Поясните, плез.
Аноним 03/10/20 Суб 20:07:14 1822276256
Аноним 03/10/20 Суб 20:08:21 1822279257
Подскажите, есть ли какие serverless фреймворки на го?
Что бы был кли и возможность деплоить функции на разных провайдеров?
Аноним 03/10/20 Суб 20:27:17 1822297258
>>1821845
Спасибо, погляжу.

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

>>1821883
Посмотри что-нибудь типа TDD vs BDD
Аноним 03/10/20 Суб 20:29:34 1822299259
>>1822263
Очень тупо:
package main
// # include <stdio.h>
// прочий сишный код
import "C"
func main() {
C.puts("Hello, world!")
}

И тупо скомпилировать как обычный исходник на Go.
Имей в виду, что сборщик мусора Go не будет за тебя вызывать free() в сишном коде, тебе придётся это делать самому, иначе утечка памяти.
Аноним 03/10/20 Суб 20:30:44 1822301260
>>1822299
> C.puts("Hello, world!")
Да, не всё так просто, надо ещё C.CString делать.
Аноним 03/10/20 Суб 20:31:40 1822305261
image.png 164Кб, 355x834
355x834
Аноним 03/10/20 Суб 20:35:39 1822311262
Аноним 03/10/20 Суб 21:10:32 1822336263
image.png 30Кб, 1009x185
1009x185
>>1822212
>тут не просто новости рача или петона читать нужно, тут нужно сканировать код для всего петоноговна, которое у тебя установлено, чтобы узнать, ломает ли новый кейворд петона какой-то пакет. делать это вручную или как ты написал "читать" это брейнлет-тир, эту задачу должен решать не пользователь.

А вот в ГО совсем не так!
https://kn100.me/making-breaking-changes-in-go/
Аноним 03/10/20 Суб 21:40:07 1822363264
>>1822305
Кто-то до сих пор не может запомнить, что эта ебанистика создает копии, а не обращается по адресу ?
Аноним 05/10/20 Пнд 18:22:25 1823834265
>>1744568
>диаграммы классов (а это лишние телодвижения), сворачивания блоков (которые еще надо свернуть).. Но это все не то
лишние телодвижения это переключаться между файликами и править сигнатуры в двух местах. за компуктер не нужно делать работу, которую он может делать сам. вручную дублировать код для компуктера это вообще бловс май майнд
Аноним 06/10/20 Втр 16:47:50 1824495266
>>1745612
>Поэтому программисты в сях придумали новый тип файла - .inc - когда определение не получается засунуть в c/cpp(особенно для шаблонов)
Стокгольмский синдром по-крестоблядски: ебаная в жопу крестоблядь после всего времени насилования своего мозгообразного органа крестами просто не может осознать, что можно и не выносить декларации в отдельный файл, она даже когда крестокомпилятор запрещает ей это, все равно обходные пути так делать - и, сука, находит.
Аноним 06/10/20 Втр 16:49:05 1824497267
>>1824495
*находит обходные пути
конечно же
Аноним 07/10/20 Срд 20:20:05 1825417268
Меня тут спросили
> как заапендить слайс через передачу в аргумент
а я аж растерялся.
Действительно, как?
Аноним 07/10/20 Срд 20:41:47 1825429269
Аноним 07/10/20 Срд 22:20:32 1825493270
Аноны, кто использовал rabbitmq в связке с protobuf?
Есть одна проблема. Сериализую сообщения, отправляю о очередь. На другом конце принимаю и пытаюсь десериализовать, но получается десериализовать почему-то не все. Не понимаю, как это возможно.
Кто может глянуть:
https://github.com/hageshtrem/go-rabbitmq-protobuf-issue
Аноним 08/10/20 Чтв 03:52:16 1825584271
>>1825493
я не спец, но сообщения в реббите это строки, а ты в них байты пихаешь
Аноним 08/10/20 Чтв 10:40:23 1825695272
Вопрос общий, но поскольку я пиша на Го, задам его тут.
Аноны, как научиться в абстракции? Пишу уже 7 год, но до сих пор хуёво с этим. Понятно, что все эти годы я говнокодил по большому счёту, но в моём коде хотя бы можно было разобраться, он линеен. Не так давно осознал, зачем вообще делать интерфейсы, лел. Раньше думал раз тестов пока нет, мокать нечего, ну и нахуй они нужны, если реализация всё равно одна?
Вот сейчас пришёл на новую работу, так тут понаписано пиздец, хуй что где разберёшь. Какие-то финализаторы, фасады, ресурс контейнеры, охуеть вообще. Вообще легально так писать на Го? Попахивает тырпрайз жава парашей.
Нужно как минимум понять, что и зачем здесь так написано. Я смотрю на всё это и не понимаю, как блядь человек в состоянии это всё написать? Это врождённый навык или можно начитаться книжек по паттернам и писать так же? Советуйте в общем, что делать.
Аноним 08/10/20 Чтв 10:56:50 1825699273
>>1825695
Первое время тебе этот код будет казаться сложным, потом привыкнешь и будешь восхвалять тех, кто это написал до тебя.
По моему мнению, если изначально думать о тестировании кода, то абстракции будут пониматься отлично. Потому что легкое тестирование = легкая заменяемость в коде.
Да и ты же не хочешь в своём коде тестировать имплементацию библиотек сторонних (для этого у них есть свои тесты)
Аноним 08/10/20 Чтв 10:58:05 1825701274
>>1825695
>Вообще легально так писать на Го? Попахивает тырпрайз жава парашей.
Так го тоже предназначен для тырпрайза. Посмотри исходники k8s, например.
Аноним 08/10/20 Чтв 11:10:49 1825707275
>>1825699
>>1825701
Ок, а есть какой-то разбор типовых ситуаций, для которых мне нужно воспользоваться определённой абстракцией? Где про это читать? Все книги, которые я листал по паттернам, имеют очень синтетические примеры.
Аноним 08/10/20 Чтв 11:17:40 1825719276
>>1825707
ну если читать книги типа банды четырёх - то там вроде нормальные примеры.
А вообще я обычно руководствуюсь тем, что мне нужно покрыть полностью код тестами и если не получается - значит что-то делаю не так.
У меня нет такого типа, о тут надо фасад сделать или ещё что-то - оно просто в голове уже лежит как сделать лучше и всё.

Ну и SOLID принципы конечно же.
Аноним 08/10/20 Чтв 13:18:52 1825840277
>>1825695
>Нужно как минимум понять, что и зачем здесь так написано
жависты наверное переучивались. они ебанутые, не смотри на них.
>Это врождённый навык или можно начитаться книжек по паттернам и писать так же?
мне кажется обычно это врожденное, но иногда люди такими становятся из-за каких-то событий в жизни
Аноним 08/10/20 Чтв 13:33:12 1825848278
>>1825840
Двачу этого гофера, всему нужно знать меру.
Аноним 08/10/20 Чтв 20:44:13 1826162279
>>1825695
Ну просто берешь какой-нибудь паттерновый монстрофреймворк типа спринга или симфони и изучаешь исходники.
Аноним 10/10/20 Суб 15:39:46 1827359280
>>1826162
А как вообще реализация патернов другого языка поможет на go, наг голнаге же везде СВОЙ ПУТЬ
Аноним 14/10/20 Срд 20:11:21 1830537281
Приветствую всех гоферов в этом треде. Около года назад начал свой вкат в погромирование, изначально выбрал фронт т.к в него влегче вктатиться (что и сделал за 3-4 месяца - на реакт/редакс макаку), но во время вката понял что именно пограмирование мне более интересно (когда задрачивал js на кодварсе), нежели верстка/дизайн и всё что около фронта. Выбирая что освоить для бэка решил не идти по протоптанному пути ноды/ts, а освоить другой ЯП, дабы взглянуть на мир шире.
В настоящий момент имею опыт работы фронтом 8 месяцев (Реакт/редакс), плюс 2-3 месяца дроча гошки (из пет-проектов есть примитивный rest-api плюс cli, которая конкурентно дергает апишку и выводит текущую стоимость криптовалют, сохраняет историю их цены в csv).
В теории понимаю БД и докер (что и зачем нужно, какие виды бд есть, их типовые сферы применения, зачем нужны индексы, что такое шардинг), подтянул часть с сетями (tcp/ip стэк, udp/tcp, отличия версий http, могу на пальцах объяснить что происходит после ввода адреса сайта). С линуксом знаком (4 года manjaro/fedora на десктопе).
Хотел бы узнать насчет типовых тестовых заданий на гофера в компании ДС-а дабы задрочить эти типовые проекты и выложить их для портфолию (а-ля мувисерчер на фронтендера).
Список теоретических вопросов по го из прошлого треда видел, и могу на них ответить, но практики с БД/докером нет вовсе, плюс сейчас дрочусь с литкодом для практики алгоритмов/структур данных. Также хотелось бы получить советы тех, кто прошел схожий путь из фронтов в бэки (на чем лучше сосредоточить внимание, до какого уровня дрочить литкод, насколько глубоко копать в БД и их оптимизацию и докер и тд.)
Аноним 14/10/20 Срд 21:13:56 1830625282
>>1830537
Сделай на го интернет-магазин с админкой для добавления новых товаров и личным кабинетом юзера с корзиной, засунь в докер. Все сразу поймешь. Но это тупо для крудознаний, надо еще разобраться с кафкой и/или рэббитом и тоже их куда-то воткнуть
Аноним 15/10/20 Чтв 04:07:02 1830804283
>>1830537
> Также хотелось бы получить советы тех, кто прошел схожий путь из фронтов в бэки (на чем лучше сосредоточить внимание, до какого уровня дрочить литкод, насколько глубоко копать в БД и их оптимизацию и докер и тд.)
Пару лет работал фронтеденром, одновременно бекенды на ноде делал на фрилансе время от времени. Фронт надоел. Я менял место работы каждый год, и в разгар короны нашел компанию где нужен был фуллстек со знанием фронта, ноды, и го. На го всякие SSR сервисы, почти всё остальное на го, на нём и пишу в основном теперь. На литкоде никогда не сидел, в бд и их оптимизацию слишком глубоко не копал. Докер нормально копал ещё когда фронтом был. Теорию мало изучал, просто писал много кода, так и научился. На го микросервисы шлёпать много ума не надо, мне даже теперь фронт сложнее кажется, поэтому проиграл с того, что ты противопоставил фронт и программирование. Охуенное на го программирование, байтики гоняешь туда-сюда, жисончики, протобафчики, читаешь это говно из консумера реббита или кафки и обратно.
Аноним 15/10/20 Чтв 16:57:12 1831340284
Пацантрэ, кто-нибудь использует кодогенерацию API-клиентов/серверов из спецификацииswagger ? Или шляпа?
Аноним 15/10/20 Чтв 17:31:23 1831364285
>>1831340
Я пытался добавить на работе в nodejs проектах. На мой вкус - удобно, а коллегам не зашло
Аноним 15/10/20 Чтв 17:32:47 1831365286
>>1831364
А в Go проектах не использовал?
Аноним 15/10/20 Чтв 20:57:28 1831524287
>>1831340
Шляпа, конечно. Используй protobuf, из него генерируй и swagger для фронтов, и они себе код заебашут на нём тоже на изи.
Ещё в сторону gRPC посмотри, совсем от счастья задохнёшься.
Аноним 15/10/20 Чтв 23:36:27 1831591288
>>1831365
Нет, но по сути - разницы в этом плне практически нет. Разве что в го это немного удобнее за счет // go: generate
Аноним 16/10/20 Птн 04:59:26 1831674289
>>1831340
Мы наоборот генерировали сварггер из го кода.
В итоге меня заебало как он иногда хуйню делал и сделали вручную.
Насчёт протобафа звучит как план, но это не апи доки всё равно.
Аноним 16/10/20 Птн 11:20:48 1831752290
>>1831340
В последнее время такой тренд, что всё пишется в протобафе, сервисы общаются по grpc, а для фронтенда поднимается grpc gateway который автоматически маппит json->protobuf. Он же и генерирует сваггер из твоих прото файлов.

>>1831364
Или они долбоёбы или ты делал что-то не то. Апи без схемы - это пиздец.
Аноним 17/10/20 Суб 01:36:00 1832437291
>>1831752
> Или они долбоёбы или ты делал что-то не то. Апи без схемы - это пиздец.
Спецификацию мы то генерим, просто в микросервисах, которые используют АПИ первого мы руками пишем к нему клиент, вместо того, чтобы генерить из спецификации.
Аноним 17/10/20 Суб 12:37:22 1832565292
Аноним 18/10/20 Вск 16:27:39 1833569293
>>1832437
Ну то есть долбоёбы. Генерация клиента по схеме позволяет автоматически исключить человеческий фактор, поскольку в случае, если у тебя везде используется апи-метод ->foo, а в новой схеме его убрали, то после перегенерации клиента у тебя IDE сразу же покажет ошибку. То же самое с новыми полями, ошибками типов (когда вы массив вместо числа будете посылать) и всё такое прочее.
Вы просто взяли и просрали гарантии, которые даёт вам схема.
Я конечно знал, что jsеры долбоёбы, но чтоб настолько..
Аноним 20/10/20 Втр 02:18:53 1835051294
Аноним 20/10/20 Втр 15:33:55 1835386295
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов