Сохранен 574
https://2ch.hk/pr/res/2972146.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Go тред №25 /go/

 Аноним 22/12/23 Птн 02:13:35 #1 №2972146 
1024px-GoLogoBlue.svg.png
Go или Golang — компилируемый язык программирования от создателей таких шедевров, как UTF–8, язык С, UNIX, Plan9 и других. Go поддерживает типобезопасность, имеет богатую и универсальную стандартную библиотеку и инновационные семантики одновременности: все то, что мы в индустрии называем concurrency и parallelism. На сегодня язык Go является маяком стабильности, прагматичности, де-факто представляет из себя стандарт в мире бэкенд–микросервисов и серверного оркестрирования.

С чего начать:
- В обязательном порядке проходим Go Tour:
https://go.dev/tour/welcome/1
- Читаем документацию прямо по порядку (пункт "Learning Go"): https://go.dev/doc/
- Ознакамливаемся с общим roadmap по изучению языка и сопутствующих инструментов: https://github.com/Alikhll/golang-developer-roadmap (постоянно обновляется сообществом)

Литература:
- Донован, Керниган "Язык программирования Go"
- Также хорошие книги для начала: https://www.golang-book.com/ и https://www.practical-go-lessons.com/ (веб-версия - бесплатная и хорошо подходит для новичков в программировании)
- Книги из списка https://github.com/dariubs/GoBooks

Полезные ресурсы:
- Сборник паттернов и инфы по микросервисам: https://microservices.io/
- Обновляемый список с пакетами: https://github.com/avelino/awesome-go

Прошлый тред:
>>2900329 (OP)
Аноним 22/12/23 Птн 04:23:42 #2 №2972172 
>>2972146 (OP)
а мемы где? лучше не перекатить чем так перекатить. пацаны так не перекатывают
Аноним 22/12/23 Птн 07:57:31 #3 №2972239 
Стоит ли вначале учить РНР, а потом перекатываться на го?
Аноним 22/12/23 Птн 10:59:14 #4 №2972398 
15963857674751.jpg
15963857674752.jpg
16101433904101.png
16242214195690.png
>>2972172
У меня завалялось несколько старых мемесов, кекай на здоровье.
Аноним 22/12/23 Птн 11:53:24 #5 №2972467 
>>2972398
Есть перевод этих мемасов, а то не понятно?
Аноним 22/12/23 Птн 12:19:54 #6 №2972512 
>>2972398
Первая пикча охуенна, конечно.
Самый, так сказать, дзен.

На самом деле - в этом нет ничего плохого. Совершенно нормальный функциональный паттерн. Я подобное в перле делаю постоянно, хотя там есть и эксепшны, и стактрейсы, и прочий фарш.
Аноним 22/12/23 Птн 14:14:33 #7 №2972747 
>>2972239
А почему ты вообще хочешь писать на го?
Аноним 22/12/23 Птн 15:00:50 #8 №2972831 
>>2972747
Язык минималистичный, можно строить веб-приложения начиная с самых основ. Есть строгая типизация, а значит тип не будет перетекать из строки в число, всегда знаешь что у тебя в переменной. Не нужно учить всякие ОРМ, а сразу писать всё на SQL.
Но вот требования в вакансиях пугают. Ещё собесы на ютубе посмотрел и вообще теперь боюсь соваться в го.
Аноним 22/12/23 Птн 15:22:10 #9 №2972879 
>>2972831
>Язык минималистичный, можно строить веб-приложения начиная с самых основ.
Закон сохранения никто не отменял. Если язык минималистичный, и делать с самых основ - значит писать придётся много. И по ходу дела решать задачи, которые где-то в других средах уже решили.
Плохого в этом ничего нет, но, новичок может быстро устать.

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

Так что лучше - питон.
Те же веб-сервисы на Flask делаются ну очень минималистично. Ну и питон - один из лучших на сегодня вариантов чтобы просто научиться программировать. Насчёт работы - это второй вопрос. Но, вроде есть, и больше чем на Го, и без опыта тоже.
Также, на питоне можно писать разные небольшие практически полезные вещи, для чего угодно, буквально. Включая несколько вариантов десктопных GUI (рекомендую wxPython). Количество библиотек - огромно. И если чего-то нет, но, есть на Си(++) - то можно и самому подключить. Ни на одном другом языке такого разнообразия возможностей не будет.
И перекат с питона на го - это довольно распространенное явление, насколько я понимаю. Точнее, наверное, не перекат, а расширение зоны комфорта, лол.
Аноним 22/12/23 Птн 15:31:03 #10 №2972891 
>>2972879
А Java?
Аноним 22/12/23 Птн 15:34:57 #11 №2972895 
>>2972831
Добавлю ещё, что огромный плюс Го - это то, что в результате компиляции получается 1 бинарник, большой, но без зависимостей.
А с версии 1.16 в него можно также встраивать все нужные статические ресурсы - html, css, js, картинки и т.п.
Т.е. получается 1 файл, который можно ставить на голую систему (в голый контейнер), который быстро стартует и жрёт относительно мало памяти. Это очень хорошо для облачного деплоймента. И ради этого люди мучаются и терпят, лол. Т.е. мотивации не новичковые, а чисто взрослые и энтерпрайзные.
Аноним 22/12/23 Птн 15:38:15 #12 №2972898 
>>2972891
Нет, это не то. Это сейчас чистый сервер-сайд.
С довольно высоким порогом вхождения.
Т.е. чистый энтерпрайз.
Нельзя писать скрипты, мелкие утилиты и т.п.
Т.е., если ты учишься на джаве - вознаграждений по ходу дела ты почти не получаешь. На питоне же - постоянно положительная обратная связь.
Аноним 22/12/23 Птн 16:15:23 #13 №2972930 
Чем го лучше ноде.жс?
Аноним 22/12/23 Птн 20:01:16 #14 №2973146 
>>2972895
И в итоге всё равно во время деплоймента идёт сборка из репозитория :/
Аноним 22/12/23 Птн 20:02:43 #15 №2973148 
>>2972930
Ноде в 30 раз медленнее.
Аноним 22/12/23 Птн 20:46:31 #16 №2973164 
>>2972930
Ничем, продолжай работать на ноджс
Аноним 22/12/23 Птн 21:06:29 #17 №2973198 
>>2972879
Всё так. Пишу на питоне и некоторые части делаю на го.
Аноним 22/12/23 Птн 21:22:38 #18 №2973227 
>>2973198
Почему не перекатишься на Go?
Аноним 23/12/23 Суб 00:45:31 #19 №2973383 
>>2973227
На го долго писать
Аноним 23/12/23 Суб 04:41:27 #20 №2973448 
>>2972398
1. Так удобнее
2. Дженерики есть
3. У него в метаданных есть оригинальный тип, который ты не можешь поменять, но спокойной конвертировать в него получится
4. Дженерики опять же есть
Аноним 23/12/23 Суб 07:38:43 #21 №2973465 
465.jpg
Объясните
Аноним 23/12/23 Суб 10:38:31 #22 №2973500 
>>2973448
3. Да, вот только когда тебе приходит hui_mocha: interface{}, то как ты поймешь какой набор возможных типов там спрятано?
Любой статический язык без вменяемого ADT жрёт говно.
Аноним 23/12/23 Суб 12:51:56 #23 №2973593 
>>2973500
Ну в пыхе, жс и питоне как-то же понимают вот уже лет 30?
Это же программа, у неё есть какая-то логика, оно же всё не из воздуха берётся?

Если бы сразу (без дженериков) додумались как-то реализовать comparable и прочее подобное, то и дженерики делать бы не пришлось. Ибо полезность их в таком языке довольно сомнительна, тут я согласен с Робом Пайком. В Си вот нет дженериков, и как-то похуй.
Аноним 23/12/23 Суб 14:29:18 #24 №2973694 
>>2973593
>В Си вот нет дженериков, и как-то похуй
На самом деле не похуй, знаю кучу сишников которые таскают с собой самописные либы что бы большую часть говняка заново не реализовывать из проекта в проект. Но сишка древний язык со своим ограниченным скоупом применения и не пытается казаться средством для создания джесономешалок игнорирующие достижения других языков созданные за это время.
Аноним 23/12/23 Суб 15:02:55 #25 №2973720 
>>2973694
> джесономешалок
Ну, в этом деле хороший рефлекшн решает, а не дженерики.
А с этим в Го всё в порядке, насколько я понял.

Вообще, им бы вот эту вот конструкцию - "interface{}" - назвать бы как-то по-другому, например "any", и всё бы сразу стало выглядеть гораздо приличнее. Слова имеют значение.

Если что - у меня в ежедневной работе ехал дженерик через дженерик, т.к. джава и тс. И рефлексия через рефлексию, т.к. генераторы кода и сериализация. Так что предмет разговора мне понятен.
Аноним 23/12/23 Суб 15:21:55 #26 №2973728 
>>2973720
В го есть any. any - это алиас interface{}
Аноним 23/12/23 Суб 15:42:47 #27 №2973731 
В 1.17 - нету.
Видимо, добавили вместе с дженериками.
Аноним 23/12/23 Суб 15:45:06 #28 №2973732 
>>2973731
А, нет, таки есть.
У меня просто сейчас старый Го-плагин стоит в Идее, и он не понимает any, но, код компилируется и работает.
Аноним 23/12/23 Суб 22:33:03 #29 №2974293 
>>2973732
>в Идее
Чому не Goland?
Аноним 23/12/23 Суб 22:42:00 #30 №2974312 
>>2974293
Даун
Аноним 23/12/23 Суб 23:09:03 #31 №2974379 
15864354969890.jpg
>>2974312
> goland
> ide
Аноним 23/12/23 Суб 23:23:13 #32 №2974404 
>>2974312
Не ругайся, няша.
Аноним 24/12/23 Вск 01:00:23 #33 №2974573 
>>2973500
>Любой статический язык без вменяемого ADT жрёт говно.
Ну, что сделать, тогда все жрет говно.
Нормальные АДТ только в хаскеле и других языках с типовой системой Хиндли-Милнера, если еще всякие попытки типа std::variant в плюсах но это треш с отсутствием строгих гарантий и запредельная дрочка SFINAE, поэтому гошный any это не самое худшее что может быть.
Аноним 24/12/23 Вск 01:01:38 #34 №2974575 
>>2974293
>>2974312
Зачем кстати все эти голанды пайчармы пхпштормы и прочее если для идею буквальное любой плагин кроме с++ есть?
Аноним 24/12/23 Вск 01:42:52 #35 №2974636 
>>2974293
Потому, что я, в основном, пишу на java, ts, js.
И идея с плагином go == goland.

>>2974575
Я даже специально смотрел ответ на этот вопрос на сайте JB.
И там официально написано, что разницы нет вообще никакой.
Кроме того, что некоторым нравится меньше клаттера в интерфейсе ide, и им удобнее специализированный интерфейс под конкретный язык. Но, я старый полиглот, мне похуй абсолютно. И даже лучше, когда всё сразу под рукой.

>>2974379
Ой, блять, не начинай, клоун.
Вскод - ненужная хуйня.
Аноним 24/12/23 Вск 02:25:58 #36 №2974655 
>>2973731
>>2974636
А почему ты 1.17? В дебиане 1.19, в убунте лтс вроде 1.18, как можно умудрится встрять именно на 1.17?
Аноним 24/12/23 Вск 02:45:10 #37 №2974656 
>>2974636
>Вскод - ненужная хуйня
Ну ты же не пробовал в нем работать.

мимо
Аноним 24/12/23 Вск 03:02:58 #38 №2974660 
>>2974575
чтоб у ИДЕхочушпанов больше иконок на рабочем столе было. нахуя еще?
Аноним 24/12/23 Вск 03:44:08 #39 №2974686 
>>2974655
Потому, что плагин старый, и не поддерживает дженерики.
Которые мне прямо сейчас не нужны совершенно для текущего проекта.
А плагин старый, потому, что идея сейчас старая стоит. А почему идея старая - это долго рассказывать.
Аноним 24/12/23 Вск 03:46:32 #40 №2974689 
>>2974686
Как-то двусмысленно получилось.
Дженерики сейчас не нужны, да. Но, если использовать сдк с дженериками (1.18+) то плагин показывает ложные ошибки в некоторых местах кода. И при просмотре исходников стд либы тоже.
Аноним 24/12/23 Вск 03:46:55 #41 №2974690 
>>2974686
Как-то двусмысленно получилось.
Дженерики сейчас не нужны, да. Но, если использовать сдк с дженериками (1.18+) то плагин показывает ложные ошибки в некоторых местах кода. И при просмотре исходников стд либы тоже.
Аноним 24/12/23 Вск 06:25:28 #42 №2974730 
>>2974656
Он пробовал - не осилил.
Забавно видеть как кто-то в го готов тратить 60% времени на написание шаблонного кода, но не готов потратить минут 10 на настройку вскода.
Аноним 24/12/23 Вск 08:12:25 #43 №2974747 
>>2974730
А как мне проводить рефакторинг в вскоде? Он просто не умеет в него, ну в плане… совсем
А в голенде одну кнопочку нажму, и у меня сразу сигнатура функции поменяется, все само и все автоматизировано, оно мне даже строчки поменяет при моем хотении, или рефакторинг переоценен и его вообще не существует?
После голенда вообще не могу пользоваться вскодом, слишком мало функционала, который не расширяется ни одним плагином
Аноним 24/12/23 Вск 11:57:24 #44 №2974867 
vimide.jpg
>>2974747
VS Code - это текстовый редактор с плагинами.
Goland - это IDE. С большой буквы. Точнее - с трёх.
Что тут обсуждать вообще?

Хотя, кому-то и Vim - IDE.
Начинайте форсить, а то вскод - это как-то мелко.
Аноним 24/12/23 Вск 12:10:15 #45 №2974889 
>>2974867
Уверен, у кого-то возникнет вопрос: «Зачем в 2021-ом пользоваться -vim- neovim, когда есть замечательный Goland?». Я до какого-то времени сам пользовался только продуктами от JetBrains, но вот уже более 1.5 лет пишу исключительно в vim.

Основной причиной для моего перехода с Goland стала его прожорливость. Отдавать по 3-4 Гб программе, которая просто подсказывает мне названия методов, запускает тесты и реализует «Go to definition», очень расточительно. Вкупе с непонятной политикой индексации проекта, когда у тебя в момент взывают куллеры, а батарейка на глазах тает, привело меня к vim.


https://nikgalushko.com/post/vim_as_golang_ide/
Мастер-класс от Никиты Галушко
https://nikgalushko.com/about
Аноним 24/12/23 Вск 13:25:15 #46 №2975008 
Screen Shot 2023-12-24 at 13.22.09.png
Аноним 24/12/23 Вск 14:10:15 #47 №2975076 
>>2974747
Так бы и сказал что не осилил. Вскод это всё умеет.
Аноним 24/12/23 Вск 16:27:00 #48 №2975289 
Кроме бэкенда, что еще хорошо делать на Go?
Аноним 24/12/23 Вск 16:42:03 #49 №2975336 
>>2975289
Говно
Аноним 24/12/23 Вск 17:37:51 #50 №2975459 
>>2975289
Утилиты командной строки, например.
Аноним 24/12/23 Вск 18:24:48 #51 №2975546 
>>2975289
А что бы тебе хотелось?
Аноним 24/12/23 Вск 20:20:47 #52 №2975835 
Реально раздражает то, что это ваше Го создавалось безо всяких мыслей о больших проектах.
С инкапсуляцией - полная жопа.

Если у меня есть енум, то это, блять, не енум, а просто набор констант в неймспейсе пакета. Т.е., глобальных, по сути. Ну что это за хуйня, блять? Как такое можно было родить в 21 веке, это уму непостижимо.
Причём, сделать константу структурой (литералом) - нельзя, пиздец идиоты.
Это-то почему нельзя, с хуя ли это "не константа"?

И вот у меня есть три константы состояния записи - EntryAdded, EntryChanged, EntryDeleted, в пакете zalupa. И пиздец - создать в этом пакете функцию с таким именем я уже не могу. Это просто какой-то позор.
Аноним 24/12/23 Вск 21:30:32 #53 №2975950 
>>2975835
Ты что, это же го его использует гугол, как ты смеешь так говорить про него
Аноним 24/12/23 Вск 21:30:36 #54 №2975952 
>>2975835
>создавалось безо всяких мыслей о больших проектах.
Для них и не создавалось.
Аноним 24/12/23 Вск 21:50:13 #55 №2975994 
>>2975950 >>2975952
Ну, конкретно, про константы я немножко подумал, и понял, почему так сделано. Всё в угоду скорости компиляции и минимальному потреблению ресурсов в рантайме.
Вообще, большинство сомнительных решений в Го имеют вполне разумные объяснения.
Но, большие проекты делать на таком языке действительно не очень удобно. И самый правильный путь - инкапсуляция в мелкие вложенные пакеты. И да, это будет не совсем идеоматический Го.

Тут, опять же, есть 2 стула стиля - либо пишем без ide, либо - с хорошей ide, джава-стайл. Идеоматический Го (см. стандартную библиотеку) очевидно рассчитан на вариант без ide.
Но, писать большие проекты без ide - это мазохизм. А если с ide - то надо таки писать немножко в стиле джавы, в смысле разбиения кода на части. Нету классов - значит делать кучу мелких пакетов, и играться с public-private (экспорт-не экспорт). И с ide так будет гораздо удобнее и писать, и читать.
Аноним 24/12/23 Вск 22:38:58 #56 №2976084 
>>2975994
Сделать вещь и потом придумать для него объяснение - это и есть тот самый говей
Аноним 25/12/23 Пнд 00:06:35 #57 №2976261 
>>2976084
Ну, я это понимаю так, что сначала сделали простой, но эффективный (!= удобный) язык из говна и палок. А потом начали улучшать.
И это было ошибкой. Говно и палки-то никуда не денешь. Не надо было модули-шмодули, дженерики-хуерики и прочее добавлять. Не масштабируется - ну так и нехуй масштабировать.

Алсо, вот тут чел выдал такой длинный конкретный прогон про Го:
https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride
И, среди прочего, пишет какой ценой делается разработка больших проектов в крупных компаниях:
Go lets you whip something up quickly, but making the result "production-ready" is left as an exercise to the writer. Big companies that have adopted it have developed tons of tooling around it, use all available linters, do code generation, check the disassembly, and regularly pay the engineering cost of just using Go at all.
И, несмотря на это, всё равно делают хуйню.

Так что - простой бекенд и утилитки - это самое то.
Для всего остального есть джава.
Аноним 25/12/23 Пнд 02:41:37 #58 №2976469 
>>2976261
С другой стороны - вот сейчас надо одну утилиту сделать.
Которая тянет данные по одному протоколу из одного места, и потом заливает по другому протоколу в другое. Преобразуя и фильтруя по ходу дела.
У меня есть версия на перле, которой года 3, но, она не соответствует новым реалиям.
И можно или доработать перловую версию, или переписать на питоне, или написать с нуля на Го.

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

В итоге - посмотрев либы, сделав несколько примеров, и т.п. - решил делать на Го. И уже сделал изрядный кусок. Сам не ожидал.
И могу сказать, что несмотря на все обозначенные недостатки - язык довольно приятный. Особенно, при наличии хорошей ide, которая сильно ускоряет эксперименты.
Аноним 25/12/23 Пнд 05:49:26 #59 №2976500 
>>2976261
Нет не так. Го придумали буквально на коленке в попытках улучшить и оптимизировать гугол. В нём очень много странных и недоделанных решений.
Я вообще хз почему его начали распространять куда-то за пределы. Его максимум - микросервисы для систем наподобие гугла. Всё.

Десктопные гуи и прочие нейронки можно сделать и на го. Можно вообще это всё сделать на чистом ассемблере, так будет ещё быстрей работать. Это очень неудобный язык для разработки больших проектов, а уж сколько историй про то как в кубике вертятся стопитсот микросервисов, когда один наебнется - наебнутся и все остальные - просто не счесть. Почему микросервисы? Потому что их гугол использует, их нельзя обижать и вообще добейся.
Аноним 25/12/23 Пнд 13:51:42 #60 №2976866 
>>2976500
>историй про то как в кубике вертятся стопитсот микросервисов, когда один наебнется - наебнутся и все остальные - просто не счесть

Го - сложный язык, он для тех кто умеет программировать. И когда на нём начинает писать какая-нибудь вчерашняя пыхоблядь с физфака да, это Тузов, то получается то, что получается.
А микросервисы - пиздецки сложная тема. И когда их начинают пихать куда надо и куда не надо под предлогом "упрощения разработки" - это пиздец.
Короче - время дураков. Впереди нас ждёт ещё много интересного.
Аноним 25/12/23 Пнд 16:20:34 #61 №2977059 
>>2976866
Писать шаблонный код из раза в раз это не "уметь программировать", го не оправдать этим. На но может пимать даже джун, просто он тратит кучу времени на написание этих шаблонов, а мидл уже копипастит его из существующих проектов.
Аноним 25/12/23 Пнд 16:47:00 #62 №2977106 
>>2972879
>Пыха - это если надо быстро найти работу и чтобы было на что жить (хотя, высоких зарплат не жди). Но, и сам язык и практики программирования на нём - далеки от идеала. И быдло-коммьюнити тоже не добавляет оптимизма.

Чиво блять... на пыхе зарплат высоких тоже дохуя
Аноним 25/12/23 Пнд 16:47:56 #63 №2977110 
>>2977059
Я не про оправдания, а про то, что язык с кучей подводных камней.
Аноним 25/12/23 Пнд 16:49:12 #64 №2977114 
>>2977106
Я в курсе.
Но, речь шла про конкретного вкатуна.
Вряд-ли он мог бы рассчитывать сразу на высокую зарплату.
Аноним 25/12/23 Пнд 16:53:12 #65 №2977120 
>>2977114

А ну бля, это да. Вкатунам платят 20к, базару нет.
Аноним 25/12/23 Пнд 17:27:56 #66 №2977195 
>>2977120
Считай на РНР хотя бы 20к будешь получать, а на го вообще без денег сидеть в надежде, что кто-то сжалится и возьмёт на работу.
Аноним 25/12/23 Пнд 20:27:16 #67 №2977429 
В общем, пообщался с нужными людьми и понял, что вкатиться в го можно, но либо ты москвич и идёшь работать в офис, а если не москвич, то должен накручивать опыт. Сейчас оптимальной накруткой считается 2 года. Вопросы к собесам давно уже слиты и можно тупо вызубрить. Не получится ответить на первых собесах, к дцатому уже будет как от зубов отскакивать. Так что вкатиться в го возможно, не слушайте местных нытиков.
Аноним 26/12/23 Втр 02:22:56 #68 №2977788 
>>2976500
>а уж сколько историй про то как в кубике вертятся стопитсот микросервисов, когда один наебнется - наебнутся и все остальные
это просто неправильный коммунизм
Аноним 26/12/23 Втр 12:32:57 #69 №2978157 
func (h *Hui) Ololo [T ~string | ~int] Pizda(zalupa T){}

Почему в методах нельзя использовать дженерики блять?
Аноним 26/12/23 Втр 17:12:10 #70 №2978846 
>>2978157
Ахах, ебать
Аноним 26/12/23 Втр 20:57:34 #71 №2979132 
>>2978157
Правильный вопрос - почему нельзя объявить новые переменные типа на уровне метода.
Ну, вообще "методы" в Го не такие, как в джаве. Дактайпинг и всё такое.
Скорее всего, это как-то связано с тем, как делается поиск метода. Говорят, что дженерики и так немножко тормозят. А с таким сильным колдунством тормозили бы не немножко.

Короче, не еби мозги, делай функции в таких случаях.
Оно и более осмыленно будет, т.к. тут появляется тип, не связанный с базовым типом (метода), и это, как бы, намекает нам, что эта операция - что-то отдельное.
Аноним 27/12/23 Срд 10:14:43 #72 №2979591 
>>2979132
Опять пользователи сами додумывают объяснение почему го такой.
Аноним 27/12/23 Срд 12:51:59 #73 №2979689 
>>2979591
Вот в данном случае, как раз, нет.
В Го _нет_ ООП.
Методы - это _не_те_ методы. Оно местами похоже, но не то.
И это не какое-то "недоделанное ООП", это вообще не ООП.

И есть куча постов в интернетах, где люди пытаются (в силу инерции мышления) делать какие-то вещи методами, и не могут, по причине "ограничений языка". При этом функциями это решается легко и просто.
Аноним 27/12/23 Срд 13:50:38 #74 №2979734 
>>2979689
Не перестаёт удивлять, как гошники записывают отсутствие чего бы то ни было в достоинства языка, а нежелание строчить бессмысленные бойлерплейты в инерцию мышления.
Аноним 27/12/23 Срд 14:13:06 #75 №2979755 
>>2979734
Ты, похоже, пишешь на каком-то чудесном языке, совершенно лишённом недостатков.
Не секрет на каком?
Аноним 27/12/23 Срд 15:00:06 #76 №2979820 
В ассемблере вон вообще ничего лишнего нет, а работает быстрее чем го.
Аноним 27/12/23 Срд 20:03:10 #77 №2980333 
Кто нибудь перекатывался из жабы на го? СтОит того, нет? Есть работа на голанге? Заебала она знатно, но как то сыкотно.
Аноним 27/12/23 Срд 22:48:06 #78 №2980508 
>>2980333
Чем именно заебала?
А то может получиться так, что го заебёт тебя по-настоящему.
Аноним 27/12/23 Срд 23:48:18 #79 №2980582 
>>2980508
А куда обычно перекатываются из Go?
Аноним 27/12/23 Срд 23:49:49 #80 №2980583 
>>2980582
На завод
Аноним 27/12/23 Срд 23:51:12 #81 №2980585 
>>2980583
В 🍊 или 🥗 что ли? Почему именно туда?
Аноним 27/12/23 Срд 23:55:10 #82 №2980587 
>>2980585
В джаву и си🥗 имелось в виду
Аноним 27/12/23 Срд 23:55:58 #83 №2980588 
>>2980587
Мда. Кто эту автозамену придумал.
Аноним 28/12/23 Чтв 01:26:47 #84 №2980723 
>>2980508
Я не знаю.
Некоторые, особо утомлённые - в 🎁.
🎁 - это такой анти-го. Причём, в плохом смысле.
Аноним 28/12/23 Чтв 01:28:23 #85 №2980726 
>>2980588
Кто-то, блять, поел несвежих мандаринок.

>>2980723
Имелся в виду r'u's't.
Аноним 28/12/23 Чтв 03:28:13 #86 №2980756 
Вот вам ребус
💩'''
Аноним 28/12/23 Чтв 03:44:47 #87 №2980760 
>>2980756
дж(ава)?
Аноним 28/12/23 Чтв 05:31:28 #88 №2980781 
>>2980508
Да просто не нравится и никогда не нравилась. Ооп это ебанутое, какие то аннотации блять, скрытое поведение, аспекты, нихуя не понятно. Спринг этот вонючий повсюду.
В голанге пусть и многословно, но всё понятно, как книжку читаешь.
Мне ещё нравится питон, они с голангом как будто из одного мира) Но страшно уйти на миску риса и похлопывание по плечу.
Аноним 28/12/23 Чтв 05:36:49 #89 №2980786 
>>2980781
Тут ещё такой момент - я всех наебал и вкатился в ит, почти три года делаю вид что умею кодить. А по факту просто макака быдлоБелый Медведь с курсов. Возможно мне просто кажется что в другой тарелке хрючево вкуснее.
Аноним 28/12/23 Чтв 09:23:50 #90 №2980848 
Где можно почитать про структуру проектов в плане папочек? Типа там всякие Entity, Repository, Service и т.п.
Аноним 28/12/23 Чтв 09:40:31 #91 №2980853 
Что вообще делают интересного на Новогодняя ночье кроме перекладывания данных из запроса в бд и из бд в ответ?
Я понимаю что что-то делают, но ничего в голову не идёт.
Аноним 28/12/23 Чтв 09:44:48 #92 №2980859 
>>2980853
Что-то для чего мне был бы акшули нужен Новогодняя ночь сложнее серверных функций некста.
Аноним 28/12/23 Чтв 09:57:06 #93 №2980868 
>>2980848
https://github.com/golang-standards/project-layout
Аноним 28/12/23 Чтв 10:12:39 #94 №2980887 
>>2980853
Переписывают сайты с РНР на го, чтобы РНР быстрей умер
Аноним 28/12/23 Чтв 10:15:15 #95 №2980888 
>>2980887
А могли бы на некстжс.
Аноним 28/12/23 Чтв 10:16:07 #96 №2980890 
>>2980888
Некстжс такой же кал как и РНР
Аноним 28/12/23 Чтв 10:23:51 #97 №2980903 
>>2980890
Да, но я его уже знаю. Хочу в го вкатиться с чем-нибудь чего некст не делает.
Аноним 28/12/23 Чтв 14:57:54 #98 №2981223 
>>2980781
>Ооп это ебанутое, какие то аннотации блять, скрытое поведение, аспекты, нихуя не понятно. Спринг этот вонючий повсюду.
То, что ты перечислил - не имеет никакого отношения к ООП.
Спринг, АОП, DI - это рак, который убивает д'жаву.
Когда-то всё это было прогрессивно. Но, затем дураки (как всегда) не смогли вовремя остановиться. Чудовищные нагромождения аннотаций, за которыми не видно мысли - это пиздец.

Пи'тон - да, хорош. Но, в нём сейчас происходят примерно те же процессы. И по тем же причинам - дураки оЗаяц-белякевают.
Голанг - тоже хорош, и да, чувствуется идеологическая общность с пи'тоном, но, язык своеобразный, мягко говоря.

>почти три года делаю вид что умею кодить.
Погугли "синдром самозванца".

Вообще, если ты хочешь стать более лучшим Белый Медведьом - не надо учить голанг. Посмотри в сторону Scala и FP. Это тебе поможет подняться над собой.
Есть прекрасная книга Functional Programming in Scala. Это не столько про скалу, сколько про фп вообще.
Можно первое издание, второе - под новую скалу, не факт, что это нужно. Есть также Functional Programming in Ja'va - тоже весьма духоподъёмно. Но, на скале код короче и выразительнее, плюс - есть специальные фп-конструкции.
Аноним 28/12/23 Чтв 15:00:58 #99 №2981225 
Что за долбоёб уродует посты?
Это зачем? Чтобы тут в новый год народу было поменьше или что?
Аноним 28/12/23 Чтв 15:13:13 #100 №2981232 
>>2980848
https://eli.thegreenplace.net/2019/simple-go-project-layout-with-modules/
Там же ссылка на Новогодний Выпуск и плейграунд.

Основные идеи:
- экзешники в /cmd
- то, что не должно импортироваться снаружи - в /internal

Ещё могу добавить, что то, что _должно_ импортироваться снаружи - принято помещать в /pkg

Внутри папок cmd, internal, pkg - папки пакетов. Или просто файлы, если не хочешь выделять доп. пакеты. Тогда имя пакета в этих файлах будет именем основного пакета (модуля). Или main - для экзешников в cmd.
Если у тебя свой проект, и им никто со стороны пользоваться не будет - internal и pkg не нужны.

Вообще - можешь делать такую структуру, как хочешь.
Главное - другой пакет = другая папка. При этом родительская папка значения не имеет.
Т.е. package zalupa может быть в папке myproect/foobar/zalupa.

Ещё можешь посмотреть вот это:
https://go.dev/doc/modules/layout

А то, что тебе посоветовали выше (>>2980868) - это немножко перебор.
Аноним 28/12/23 Чтв 15:13:26 #101 №2981233 
>>2981223
>чувствуется идеологическая общность с пи'тоном
Где ты эту общность усмотрел, если не секрет? У меня пока прямо противоположное ощущение, что Го забивает большого толстого хуя на какую-либо общность с современными технологиями и вообще на весь немалый прогресс в области языков за последние 20 лет.
Аноним 28/12/23 Чтв 15:25:11 #102 №2981242 
Стикер
>>2973448
>1. Так удобнее
Аноним 28/12/23 Чтв 15:32:48 #103 №2981263 
>>2972895
>Добавлю ещё, что огромный плюс Го - это то, что в результате компиляции получается 1 бинарник, большой, но без зависимостей.
>А с версии 1.16 в него можно также встраивать все нужные статические ресурсы - 🕛, 🕛, 🥂, картинки и т.п.
>Т.е. получается 1 файл, который можно ставить на голую систему (в голый контейнер), который быстро стартует и жрёт относительно мало памяти.
Да всем ПОХУЙ на количество файлов. Ты во время сборки все упаковал в образ и все. Время старта тоже такой себе параметр, если у тебя не амазон лямбды, где тебя ебут долларом за каждую секунду старта - то тоже похуй. А все сэкономленные центы ты отдашь в виде зарплаты Белый Медведьам, которые будут по много раз переписывать один и тот же шаблонный код.
Аноним 28/12/23 Чтв 15:33:45 #104 №2981266 
Требования к специалисту в Go-Белый Медведьотке:

junior
- умение писать скрипты;
- Белый Медведьотка приложений на основе шаблонов проектирования;
- знание 🍊, 🕛, 🕛, Linux;
- опыт работы с веб-сервисами REST, микросервисами;
- знание Git;
- опыт в DevOps.

middle
- Go (желательно с различными фреймворками);
- 🥂 (со знанием одного из Хоровод-фреймворков: Vue, Angular или React);
- 🕛5 и 🕛;
- Опыт работы с базами данных SQL и NoSQL, такими как PostgreSQL, Redis, MongoDB, RabbitMQ, Kafka;
- Понимание принципов контейнеризации, опыт работы с Docker и Kubernetes;
- Опыт интеграции с API сторонних Web-сервисов;
- Умение писать тесты;
- Знание REST, HTTP, 🥂ON;
- Опыт участия в highload-проектах, создания масштабируемых решений;
- Знание микросервисных архитектур;
- Опыт Белый Медведьотки с использованием таких языков, как 🍾, 🎄, Perl, Typescript, Node.🥂 и т. д

senior
- 5+ лет профессионального опыта работы со сложными серверными веб-сервисами;
- 5+ лет опыта Белый Медведьотки программного обеспечения;
- 2+ года опыта в Белый Медведьотке программного обеспечения на Golang;
- Опыт Белый Медведьотки API (GraphQL / gRPC / REST);
- Опыт Белый Медведьотки сервисно-ориентированных решений;
- Опыт построения высоконагруженных систем.
Аноним 28/12/23 Чтв 15:34:23 #105 №2981269 
16451947005130.png
>>2980853
Да много чего, навскидку: компилятор языка для описания множеств с лексером, парсером и AST-деревом, разные число/лого-дробилки и большие ин-мемори хранилища для одновременного отслеживания состояний 10kk+ сущностей. И все написано на go, и по сути является такой же прослойкой меду базой и http-реквестами, только в боди POST-запроса будет лежать код твоего языка или параметры для конфигурирования файла лицензии.
По опыту скажу, го в плане написания сложных велосипедов не сильно отличается от других языков, все инструменты для этого есть.
Аноним 28/12/23 Чтв 15:44:02 #106 №2981289 
16097540784620.jpg
>>2981266
>junior/middle
>умение, знание, кучи технологий
>senior
>ОПЫТ 2+ года, ОПЫТ 5 лет, стаж 10 лет ОПЫТ ПОПЫТ ААААА
Ну как бы все понятно, с сеньки требуют только трудовую книжку, на остальные знания всем насрать. А Зайчишку/Эльфа прогонят по всем паттернам, так еще знания ноды и реакта в добавок спросят. ЗАЧЕМ?
Аноним 28/12/23 Чтв 16:12:06 #107 №2981331 
>>2981233
>забивает большого толстого хуя на какую-либо общность с современными технологиями и вообще на весь немалый прогресс в области языков за последние 20 лет.
Так ведь и п'итон...
Аноним 28/12/23 Чтв 16:19:57 #108 №2981340 
>>2981269
>все инструменты для этого есть.
Интересен один инструмент, каким образом происходит отладка коммуникации между микросервисами, что есть для мониторинга коммуникации? И вообще микросервисная Белый Медведьотка, в деталях? Вот пишу я сервис, которому надо дёрнуть данные из других сервисов, нужно убедиться что код работает, мне на локальной машине поднимать в дев-среде контейнеры с кучей сервисов? А если там что-то не то, как посмотреть что внутри другого сервиса, лезть в запущенный контейнер, ставить там точку останова?
Аноним 28/12/23 Чтв 16:54:54 #109 №2981396 
>>2981223
Спасибо анончик, буду изучать.
Я вообще подозреваю что мои пиздострадания от недостаточного погружения в тему. Все языки говно и просто перекладывают биты, а я ищу какой то чудо-инструмент который позволит быдлокодить не изучая матчасть(
Аноним 28/12/23 Чтв 16:59:04 #110 №2981399 
>>2981225
Каждый новый год такая хуйня, Новогоднее Настроение.
хуй, пизда, двач, тред, кун, тян
Аноним 28/12/23 Чтв 17:49:11 #111 №2981460 
>>2981396
>Все языки говно и просто перекладывают биты
Чем более производительный и низкоуровневый язык тем в нём больше бестолковой хуйни, просто снизь планку и откроешь целый пласт скриптовых языков, которые по своей сути приближены к обычному человеческому и сфокусированы на решении бизнес-проблем, а не на конфигурации вычислительной машины ради дрочки наносекунд.
Аноним 28/12/23 Чтв 18:22:35 #112 №2981509 
>>2981460
Если не получится с го, то пойду на РНР
Аноним 28/12/23 Чтв 18:29:33 #113 №2981528 
>>2981340
Возьми хорошую книжку по микросервисам (и вообще, и на го) - и почитай. Их есть.
Отладка коммуникаций - через хттп дебаг прокси.
Ошибки и прочее - в лог - в файлы или в лог-сервис.
Можно и в контейнер залезть, и точку останова поставить.
И это всё не специфично именно для микросервисов.
Аноним 28/12/23 Чтв 18:45:27 #114 №2981570 
Какой каркас вы используете для го?
Аноним 28/12/23 Чтв 20:12:36 #115 №2981720 
>>2981340
Ёпта у тебя микросервисы работают по какому принципу? Событийно-ориентированные с event bus'ом в роли кафки? Если так, то можно просто повесить слушателя на все события. А внутри там просто будет логгер. Это самый простейший способ.
Аноним 28/12/23 Чтв 20:14:11 #116 №2981723 
>>2981340
Либо можно у кафки просто включить трейсер, режим дебага
Аноним 28/12/23 Чтв 20:38:13 #117 №2981768 
>>2981570
деревянный
Аноним 28/12/23 Чтв 22:29:17 #118 №2981916 
Вот сейчас мне кусок кода из 5 совершенно невинных строк стабильно выдаёт "panic while printing panic value". На ровном месте вообще. Причём, код (сетевой запрос по протоколу X) работает, и делает, что должен. Это какая-то ложная паника.
В трейсе - только вызовы рантайма.

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

Думаю, что я эту утилиту, всё таки, на пи'тоне напишу.
Да и по отношению к работодателю так будет честнее, лол.
Аноним 28/12/23 Чтв 22:48:44 #119 №2981943 
>>2975994
>Всё в угоду скорости компиляции и минимальному потреблению ресурсов в рантайме.
Если бы их так заботила скорость компиляции, то не делали бы forward declarations и разбивки пэкеджа на файлы. Про рантайм вообще смешно, в том же ❄️ енумы спокойно компилируются в инты и никакого оверхеда. Да что там ❄️, в древнейшем Паскале уже освоили такую технику.
Аноним 29/12/23 Птн 00:57:15 #120 №2982036 
>>2981916
Держу в курсе - нашёл причину.
"panic while printing panic value" - это было просто.
А вот самую мякотку увидел только в дебаггере.
В смысле - печать в консоль не помогала понять, что именно происходило.
Код после if err != nil печатал <nil>. Охуенно, да?

В общем, типичная г'ошная хуйня.
Пытливый читатель может сам посмотреть вот здесь изолированный пример:
https://go.dev/play/p/oFxSY952-YB

Там без паники, правда, просто проверка на nil не работает так, как ждёт наивный чукотский юноша.
И без рефлексии это никак не обойти.
Потому, что пидарасы, вот почему.

А сколько такой красоты в реальном продакшн-коде ждёт своего часа?
Страшно подумать.

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

А у меня - наоборот, принято ошибки обрабатывать.
Поэтому - нахуй такое счастье, извините.
Пишите на нём сами, лол.
Аноним 29/12/23 Птн 01:16:31 #121 №2982048 
>>2982036
Добавлю ещё, что это не просто кака-то "особенность" языка, которую надо просто "знать", и всё. Это фундаментальный просчёт в дизайне. Который ведёт к порочным кругам, и к тому, что люди вынуждены нарушать их же собственные best practices. Например, возвращать интерфейс error вместо структуры CustomError, хотя явно рекомендовано принимать интерфейсы, а возвращать структуры. Да и насчёт "принимать интерфейсы" - тоже, как видим, немножко не складывается, лол.

И этот косяк, на мой взгляд, делает невозможным сколь-нибудь серьёзное программирование на этом языке.
И да, теперь я начал гораздо лучше понимать всю ту критику г'о, которую я читал раньше.
Аноним 29/12/23 Птн 02:05:01 #122 №2982064 
>>2982048
Да похуй, на самом деле. Всё серьёзные программы уже написаны.
Аноним 29/12/23 Птн 03:20:06 #123 №2982082 
Пеши исчо
Аноним 29/12/23 Птн 03:21:29 #124 №2982083 
>>2982048
это просто просчёт в дизайне. надо просто "знать", и всё. хз че ты "свою борьбу" высасываешь
Аноним 29/12/23 Птн 04:00:17 #125 №2982087 
>>2982083
Да ладно, это моя первая попытка написать что-то полезное на Г'о.
И я реально охуеваю, как в первый раз.
В принципе, цель make programming fun again достигнута, лол.

Алсо, я тут просветился на эту тему.
Про это много написано весьма противоречивого.
И пришёл к выводу, что это опять не баг, а фича.
Вот только могли бы проверку интерфейса на nil сделать попроще, просто какой-то builtin функцией, чтобы рефлект не подтягивать.
Аноним 29/12/23 Птн 10:06:48 #126 №2982195 
>>2981768
Я имею ввиду фреймвёрк
Аноним 29/12/23 Птн 10:11:19 #127 №2982196 
>>2982195
Использование фреймворков - это не говей.
Аноним 29/12/23 Птн 10:12:47 #128 №2982197 
>>2982196
Как тогда маршрутизировать что-нибудь типа /foo/bar/{id}?
Аноним 29/12/23 Птн 10:15:22 #129 №2982199 
>>2981460
> скриптовых языков
> сфокусированы на решении бизнес-проблем
Что забавно, жабу я использую исключительно потому, что её использует работодатель.
Все околорабочие задачи (распарсить, прочитать и проанализировать, побегать по директориям и т.д.) я решаю на питоне, потому что реальные задачи в нём сделать проще: три высокоуровневых строчки -> запустить -> глянуть результат.
Задачи по фану тоже решаю на нём. Отсюда же интерес к сабжу.
Аноним 29/12/23 Птн 10:17:44 #130 №2982200 
>>2982197
Пиши свой микрофреймворк. Во всех гоуленговых компаниях сделан индивидуальный велосипед. Таков путь.
Аноним 29/12/23 Птн 10:22:03 #131 №2982204 
>>2982200
Мне на ум пока приходит только портянка из кучи if ... else или switch. Потому что тут надо сразу и URL проверять и по какому методу прилетело (GET, POST и т.п.), а может и ещё какую-нибудь фигню проверить в загловке.
Аноним 29/12/23 Птн 10:29:33 #132 №2982207 
>>2982204
Мапу сделай с кейсами. Подними контексты, нет, маршрутизацию. Обычно берут фреймворк спринг и начинают переписывать на гоу. Как настоится, переходим к бизнес логике.
Аноним 29/12/23 Птн 10:30:49 #133 №2982208 
>>2982207
А бины в xml конфигурировать? В го аннотаций же нет
Аноним 29/12/23 Птн 10:34:36 #134 №2982211 
>>2982208
Использование аннотаций - это не говей
Аноним 29/12/23 Птн 12:24:53 #135 №2982299 
>>2982208
>А бины в xml конфигурировать?
Говнокодом разумеется. Говей это писать много кода, на каждый чих.

func init() {
_, _ = di.RegisterBean("weatherService", reflect.TypeOf((services.WeatherService)(nil)))
_, _ = di.RegisterBean("weatherController", reflect.TypeOf((
controllers.WeatherController)(nil)))
_ = di.InitializeContainer()
}
Аноним 29/12/23 Птн 13:36:52 #136 №2982352 
>>2982197
Энвоем перекладываешь в нормальный протобуф и работаешь только с протобуфами.
Вообще для быстрого вката есть echo, а вопросы типа такого принято сначала смотреть на awesome-go
Аноним 29/12/23 Птн 14:39:35 #137 №2982449 
>>2982199
Жду когда питон заменит баш скрипты и будет в убунте изкаробки со всеми скоростными либами по типу aiohttp
Аноним 29/12/23 Птн 14:42:26 #138 №2982454 
Да го норм язык если делать на нём небольшие микросервисы. Я хз почему некоторые пишут на нём большие проекты, а потом страдают от количества шаблонного кода.
Он даже для сервисов не подходит, только микро. И при этом не весь проект, а отдельные части связанные через grpc.

inb4 зато быстрей, ну пиши тогда на ассемблере, он ещё быстрей
Аноним 29/12/23 Птн 14:47:05 #139 №2982463 
>>2982454
>пиши тогда на ассемблере
Мало кто может писать на ассемблере быстрые программы. Современные оптимизирующие компиляторы уделывают кожанных мешков в этом плане. Сейчас уже скриптовые языки вроде РНР обзавелись JIT-компиляторами и работают на уровне компилируемых языков, там буквально накладные расходы только на чтение и разбор скрипта, а выполнение уже в машинном коде идёт.
Аноним 29/12/23 Птн 14:58:22 #140 №2982469 
Лично мне в гошке не хватает поддержки десктопных приложений. Было бы прикольно писать один раз код, а потом просто компилировать под все платформы программки.
Аноним 29/12/23 Птн 15:00:41 #141 №2982474 
>>2982299
> init
Почему в мэйн не пихаешь это?
Аноним 29/12/23 Птн 15:23:18 #142 №2982518 
>>2982449
Питон не заменит баш. Даже перл не не заменил, куда уж там питону. Я все три знаю и использую, если что.

>>2982454
Если можно делать большие программы на си, то на го - можно аж с разбегу. Вообще не сравнимые вещи.
Аноним 29/12/23 Птн 15:31:51 #143 №2982534 
>>2982036 >>2982083 >>2982087
Я ещё почитал про это. Как говорят знающие люди - это единственный настоящий косяк в языке.
И абсолютно все на это натыкаются, поначалу.
Один дед даже багрепорт им по этому поводу им заебенил, и устроил срач, лол.

Но, я, по зрелому размышлению, даже косяком это не считаю.
Го - это другой язык. И null в нём понимается совершенно иначе, чем в си или джаве.
Но, книги и руководства не акцентируют на этом внимание.
Также, и тема интерфейсов разъясняется недостаточно, т.е. акцент обычно делают не на том. А надо подчёркивать, что интерфейс - это не "тип", не "контракт" (как все привыкли), а просто значение. Которое, иногда, инициализируется довольно необычным способом.

И да, им надо было сделать встроенную функцию для проверки интерфейсов на nil.
Аноним 29/12/23 Птн 15:33:59 #144 №2982538 
>>2982534
У Донована и Кернигана это подробно разбирается. Даже таблица нарисована, что в интерфейсе хранится 2 значения, а сравнивается только одно.
Аноним 29/12/23 Птн 15:47:46 #145 №2982548 
>>2982352
>перекладываешь в нормальный протобуф и работаешь только с протобуфами.
Язык протобаф, язык ерр не нил.
Аноним 29/12/23 Птн 15:55:30 #146 №2982558 
17038471390310.png
>>2982454
Аноним 29/12/23 Птн 16:04:21 #147 №2982563 
>>2982454
С чего ты Прочитал что ассемблер быстрее? какой-нить gcc/g++ намного лучше тебя оптимизирует асм
Аноним 29/12/23 Птн 16:18:10 #148 №2982583 
>>2982474
Так в примере было.
Аноним 29/12/23 Птн 16:31:15 #149 №2982595 
>>2982534
>И да, им надо было сделать встроенную функцию для проверки интерфейсов на nil.
Во первых им надо было слать нахер Пайка. А во вторых нормально реализовывать интерфейсы.

Нигде больше такой хуйни нет, а тут есть. Вначале НИНУЖНО, а потом БЛЯЯЯЯ, А КАК ТЕПЕРЬ СДЕЛАТЬ?. И вот такой факап дривен девелопмент от версии к версии. Вначале пустой error в котором кроме текста нихера нет, а потом давай наворачивать Unwrap и прочий is/as.
Аноним 29/12/23 Птн 16:35:44 #150 №2982602 
>>2982548
Напомню, что go - это c для plan9 и в C обработка ошибок выглядит примерно так:
if res < 0 {
fprintf(stderr, "%s: %s\n", s, strerror(errno));
exit(1);
}
Аноним 29/12/23 Птн 16:55:45 #151 №2982618 
>>2982595
И не говори.
А ещё есть контекст, который на самом деле не контекст, и использовать его именно как контекст - не рекомендуется, разве что в крайнем случае, и осторожно, лол.
Говно и палки, как и было сказано.

Я уже на питоне начал эту свою утилиту писать.
Не то, чтобы не осилил, там, скорее, задача ближе к скрипту, чем к самодостаточной утилите. Надо, чтобы и админ мог поковырять, в случае чего. На го пришлось бы толстый слой конфига намазывать, а нету ни времени, ни сил, ни желания.
Аноним 29/12/23 Птн 17:16:36 #152 №2982666 
>>2982602
>и в C обработка ошибок выглядит примерно так
Вот только С это язык для написание низкоуровнего кода под все платформы включая эмбед вообще без ОС и 64к памяти.

А с другой стороны Говноланг с жирнючим рантаймом, бинарниками в десятки мегабайт, сборщиком мусора, ебанной политикой аллокации данных. ВНЕЗАПНО стал переживать, что эксепшены это оказывается накладно с т.з. перформанса.
Аноним 29/12/23 Птн 17:35:42 #153 №2982706 
>>2982595
>А во вторых нормально реализовывать интерфейсы
Зачем нам ещё один 🎁?
Аноним 29/12/23 Птн 17:35:49 #154 №2982707 
>>2982518
А ты сравни количество проектов на си и го с питоновскими. Писать большие программы можно на чём угодно, тут вопрос - как быстро и удобно
Аноним 29/12/23 Птн 17:38:13 #155 №2982711 
>>2982706
Потому что иначе 🎁 превратится в 💩
Аноним 29/12/23 Птн 21:54:53 #156 №2983050 
>>2982666
да эксепшны просто хуета по сравнению с ошибками-значениями. а с учетом перформанса так вообще нахуй
Аноним 30/12/23 Суб 00:04:25 #157 №2983251 
>range-over-func
Как думаете, взлетит?
Эксперемент запилили, в 1.22rc уже можно попробовать
Аноним 30/12/23 Суб 15:24:42 #158 №2983669 
>>2983251
Им бы то, что есть, до ума довести сначала.
А то вот люди пишут:
Over and over, Go is a victim of its own mantra - "simplicity".
It constantly takes power away from its users, reserving it for itself.
It constantly lies about how complicated real-world systems are, and optimize for the 90% case, ignoring correctness.
It is a minefield of subtle gotchas that have very real implications - everything looks simple on the surface, but nothing is.

https://fasterthanli.me/articles/i-want-off-mr-🍾🍾🍾s-wild-ride

Это примерно то же, что я сам почувствовал буквально сразу же после первого знакомства с го.
И вот будет ещё одна (весьма непростая) фишка, реализованная с таким вот подходом.
Аноним 30/12/23 Суб 15:26:37 #159 №2983670 
Бля, надо сваливать отсюда.
Пидоры уже и ссылки портить начали, пиздец, дегенераты.
Там слово g'o'l'a'n'g замазано говном, если что.
Аноним 30/12/23 Суб 15:35:13 #160 №2983673 
>>2983251
>Как думаете, взлетит?
Как обычно высрут недоделанную хуету.

Почему range только от 0 до n-1? Нельзя сделать как в нормальных языках для произвольного диапазона? Нахуя высирать yield с непонятной семантикой? Вам всего-то нужен простой интерфейс с двумя функциями HasNext() Next() или даже вообще с одной.
Аноним 30/12/23 Суб 17:44:59 #161 №2983841 
>>2983673
> Нахуя высирать yield с непонятной семантикой?
Как в 🐍е и 🥂 же, только там это ключевое слово, а тут явный вызов колДети в костюмах снежинока. Единственное что непонятно как с ошибками быть, разве что в структуру сохранять, а итератор методом делать

> Вам всего-то нужен простой интерфейс с двумя функциями HasNext() Next() или даже вообще с одной.
Так логику итератора сложнее писать/читать
Аноним 30/12/23 Суб 17:46:03 #162 №2983842 
пи то не и жыесе
Аноним 30/12/23 Суб 17:53:20 #163 №2983858 
>>2983670
Там тупо str_replace() стоит и заменяет символы
Аноним 30/12/23 Суб 17:57:29 #164 №2983861 
>>2981340
>Вот пишу я сервис, которому надо дёрнуть данные из других сервисов, нужно убедиться что код работает, мне на локальной машине поднимать в дев-среде контейнеры с кучей сервисов

У нас для этого развернуто тестовое окружение. И есть интеграционные тесты, которые в тего стучатся. Вроде никаких секретов нет. Локально все сервисы не разворачиваем, так как это охуеть как сколько телодвижений нужно сделать, да и к тому же много сервисов, куда ходим мы, или откуда ходят к нам, написаны не нашей командой и не нашим отделом вообще. Поэтому тут только интеграционные тесты спасают.
Аноним 30/12/23 Суб 18:00:59 #165 №2983868 
>>2980853
В яндексе свой S3 написан практически полностью на го.
Ну и вообще всякие инфра инструменты вроде самописной графаны у них тоже на го/❄️ написаны.
Аноним 30/12/23 Суб 18:14:25 #166 №2983888 
>>2983868
А бизнес-логика на питухоне, у них весь код недавно утёк, можно скачать с торрента, посмотреть.
Аноним 30/12/23 Суб 18:25:30 #167 №2983902 
>>2983888
Ну бизнес логику на питухоне самое то писать
Аноним 30/12/23 Суб 19:09:18 #168 №2984020 
image.png
>>2983841
>Так логику итератора сложнее писать/читать
Вот эта нечитаемая eбaла: func на func, через func понятнее? Это г0вн0 нечитаемое! Понятнее в пит0не, где компилятор делает всю магию, но сам код и правда очень простой и читаемый.

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

>Today, range makes the decision of how to iterate based only on the underlying type of the range variable, not its methods. In fact, no syntax in Go ever makes use of specific methods. The closest exception is the predefined error interface, but even that never has its Error method called by any Go syntax. People often ask for operator methods, and we have avoided doing that for the same reason: we don't want to privilege specific methods. It is of course possible to create a language structured around such methods (🐍 is one example), but Go is not designed that way. Nothing in the Go language invokes specific method names.

В результате вместо
for i, x := range myTree {
придется писать
for i, x := range myTree.DFS() {
Оxуеть какое удобство.

А еще функция итератора может проигнорировать то, что возвращает yield и тогда, у тебя перестанут работать break и прочее. Но это пока конечно, а потом-то они обязательно
>we will make sure the check happens, with a panic on misuse, without noticeably hurting performance.
with a panic и without noticeably hurting performance звучит очень многообещающе.


В общем как обычно замутят какое-то половинчатое решение, которое будет работать через Тулуп. Таков путь.
Аноним 30/12/23 Суб 19:19:11 #169 №2984041 
Как выучить гошку, чтобы пройти через круги ада Стишок на табуреткеов с душными Волшебниками, которые будут гонять по кишочкам с усмешками, а потом на лайв-кодинге и вовсе унижать ебанутыми задачками с нечёткой постановкой? https://youtu.be/GD0iHLucYdU
Вот взять видрил, чел уже реально работает сенькой много лет, постоянно пишет на го, а его по сути опустили на Стишок на табуреткее, как Зайчишку. А как тогда "с улицы" туда попадать?
Мне кажется, единственный вариант — это как-то перескочить с 🎄и внутри компании.
Аноним 30/12/23 Суб 19:35:54 #170 №2984082 
Обьясните плз что такое бизнес логика и чем он отличается от кода. Тип просто сценарий обработки? Получить данные, сделать 1, потом 2 потом 3 и закончить, это бизнес логика?
Аноним 30/12/23 Суб 20:03:17 #171 №2984133 
>>2984020
> Вот эта нечитаемая eбaла: func на func, через func понятнее? Это г0вн0 нечитаемое!
Если введут, то будет встроенный/в стандартной либе типы, можно будет их использовать и не вникать каждый раз
type Seq[V any] func(yield func(V) bool)
type Seq2[K, V any] func(yield func(K, V) bool)
Главное саму суть понимать - yield-нуть значение - значит вызвать тело цикла с этим значением.

>То что они предлагают, это засунуть forEach() внутрь цикла.
Не всё что коллДети в костюмах снежинок принимает это форич. Оно мощнее, можно генерировать любую последовательность, не только обходить коллекции. Можно генерировать последовательности из других последовательностей, можно писать потоковый код на много проще теперь.
Вон в том же 🐍е на генераторах делают ленивые вычисления и можно результат запроса в дб вычитывать только при рендеренге шаблона и отправке его в соединение, т.е. обрабатывая только одну строку за раз
Аноним 30/12/23 Суб 20:12:11 #172 №2984150 
>>2984082
Это как "бизнес-процесс", в отличие от системного процесса.
Т.е. какая-то логика, имеющая дело не с системными или инфраструктурными объектами, а с объектами предметной области.
И это обычный программный код, как правило.
Аноним 30/12/23 Суб 20:15:41 #173 №2984157 
>>2984041
О, обратно Тузов даёт в туза!

Чувак, не смотри это. Это просто инфоцыганская хуйня.
Эти люди шлюхи, а не Белый Медведьы.
Иначе бы они писали программы, а не торговали еблом в ютупе.
Одно с другим довольно плохо сочетается.
Аноним 30/12/23 Суб 20:32:36 #174 №2984179 
>>2984157
А в чем цыганство? Типа чел раскручивает свои платные курсы? Вроде бы нет. Да и челы, представленные в Голубой Огонёк РАБотают на реальных РАБотах и пишут коды.
Аноним 30/12/23 Суб 20:36:47 #175 №2984181 
>>2984041
Этот "Главэльф много лет" не знает что такое тип-сумма.
Аноним 30/12/23 Суб 20:39:42 #176 №2984187 
>>2984133
Речь шла о том, что yield в Г0вн0 реализции, это нечитаемое г0вн0. Обычный итератор проще, там семантика каждой функции ясна тупо из названия функции. И даже использование его в foreach не вызывает особых вопросов, тупо переписаный for
for iter := collection.Iter(); iter.HasNext(); {
value := iter.Next()
}
Всё! Никакой магии, предельно ясно что будет если: break, continue, break label, panic, return, goto. А то что предлагают авторы г0вна это магия которую будет генерировать компилятор. Для примера расскажи как будет работать возврат значения из функции, учитывая что ты уже внутри двух вложенных функций.


>Не всё что коллДети в костюмах снежинок принимает это форич.
У тебя память как у рыбки, не помнишь вообще о чем идет речь просто триггеришься на слова без контекста. Мы тут обсуждаем охуенную иннициативу улучшения foreach. К0лДети в костюмах снежиноки пока, слава богу, никто не предлагает улучшать.
Аноним 30/12/23 Суб 21:03:55 #177 №2984230 
>>2984179
Ты не видел их на работе.
И не видел, что они пишут. И в каких объёмах.

А чел раскручивает себя и свой к'анал.
Торгует еблом, в самом буквальном смысле.
Видимо, это приносит больше денег, чем то про'граммирование, которое он умеет.
Аноним 30/12/23 Суб 21:04:35 #178 №2984231 
>>2984181
Я тоже не знаю.
Это ты union так обозвал, или что?
Аноним 31/12/23 Вск 02:48:35 #179 №2984456 
>>2981340
>мне на локальной машине поднимать в дев-среде контейнеры с кучей сервисов
У нас для этого развернуто тестовое окружение. При локальном запуске твой сервис роутится автоматом на зависимости в тестовом окружении. Все урлыпорты автоматом прописываются утилитой в генерируемый конфиг. Той же утилитой разворачиваются локальный миникуб и личные зависимости сервиса - очереди/БД. Запускать сервис можно хоть go run/IDE и соответственно дебажить стандартно, всё подтягивается из конфига. Конечно не всегда это катит и мб придется дебажить на проде через логи/метрики, но это редкие случаи.
Аноним 31/12/23 Вск 02:51:07 #180 №2984457 
>>2983861
А если у вас что-то в тестинге упадёт/сломается? Во всех зависимых сервисах пайплайны перестанут проходить и вы не сможете катить правки?
Аноним 31/12/23 Вск 05:35:26 #181 №2984485 
>>2984457
Таков говей
Аноним 31/12/23 Вск 07:38:49 #182 №2984508 
>>2984485
Гове́ть — значит предписать своему телу воздержаться, очиститься и ограничиться в пище.
Аноним 31/12/23 Вск 12:43:01 #183 №2984575 
>>2984230
В чем проблема параллельно работать и раскручивать свой канал? Так многие делают, называется самопиар, может помочь потом с поиском работы или сотрудников.
Аноним 31/12/23 Вск 15:11:53 #184 №2984624 
>>2984575
В данном конкретном Голубой Огонёк (>>2984041) "Стишок на табуреткеедуемый" очень профессионально тычется лицом в микрофон. И вообще, ведёт себя как шоумен. Человек, просто пришедший на Стишок на табуреткеедование, будет вести себя совершенно иначе. Я думаю, это постановка.
Такое же ощущение у меня было и от предыдущего Голубой Огонёк, ссылку постили в предыдущем треде.

Это просто шоу на тему около-программирования.
Вопросы - детские, ответы - детские.
Чтобы неискушенному зрителю (уровня стажёра максимум) было понятно.
Иначе массовая аудитория не будет смотреть.
Аноним 31/12/23 Вск 15:38:32 #185 №2984633 
Пиздец, чтоб просто устроиться на работу Белый Медведьом надо стать известным ютубером и с петпроектами на пару сотен тысяч пользователей.
Аноним 31/12/23 Вск 16:57:03 #186 №2984684 
>>2984633
Не надо в такие места соваться.
Это живо напомнило мне, как в 90-е уборщиц нанимали с высшим образованием. Совчиной всё это попахивает, просто поверх ещё одеколоном побрызгали.
sage[mailto:sage] Аноним 01/01/24 Пнд 08:46:52 #187 №2985193 
>>2984624
> Вопросы - детские, ответы - детские.
> Чтобы неискушенному зрителю (уровня стажёра максимум) было понятно.
Так мне нихуя не понятно было, ЗАВСТАВИЛО ЗАДУМАТЬСЯ, как говорится, а я уже далеко не стажёр, поэтому и спрашиваю, что надо делать/читать, чтобы это детским казалось.
Аноним 01/01/24 Пнд 11:28:25 #188 №2985211 
Извиняюсь, опять вставлю линк с канала Тузова, смотреть не агитирую, сам не смотрел, но кекнул с комментов.
https://www.youtube.com/watch?v=aWP6JIime8w

А вы бы хотели РАБотать с ублюдочным зумером с зелёными волосами?
Аноним 01/01/24 Пнд 12:52:49 #189 №2985230 
>>2984457
>А если у вас что-то в тестинге упадёт/сломается
У нас такое регулярно происходит. А еще регулярно падает тестинг сервисов, куда мы ходим. В итоге большая часть интеграционных тестов просто помечены как необязательные в CI. На них нужно смотреть только если вносишь изменения в код, которые в теории проверяются интеграционными тестами.
Аноним 01/01/24 Пнд 15:07:30 #190 №2985274 
>>2985193
>что надо делать/читать, чтобы это детским казалось.
Надо больше читать. По-английски.
А движущиеся картинки смотреть, в основном, с голыми тётками.
Аноним 01/01/24 Пнд 15:17:53 #191 №2985279 
>>2985211
Зумер похож на жырную девочку. И дёрганый какой-то. Наверное, от недоёба. У девочек такое бывает. А может месячные, хз.

Комменты - да. А потом поебалися.
Аноним 01/01/24 Пнд 15:21:19 #192 №2985283 
>>2985211
Добавлю, что у меня от такого кина совершенно пропадает стояк желание писать на Го. Видимо, подсознательное нежелание становиться таким же, как эти актёры.
Аноним 02/01/24 Втр 08:56:00 #193 №2985917 
В какой слое лучше размещать логику валидации: entity или repository?
Аноним 02/01/24 Втр 10:08:03 #194 №2985933 
>>2985917
./pkg/validator
Аноним 02/01/24 Втр 15:03:59 #195 №2986137 
>>2985917
Валидацию надо делать в том месте, где ты получаешь данные.
И слать их на хуй, если не валидируются. Чтобы тот кто их послал, сразу понял, что его послали.
В репозитории, например, это делать уже как-то поздновато.
Там можно просто делать проверку каких-то инвариантов. Но, это, скорее, про гарантии целостности данных, а не про валидацию.
Аноним 02/01/24 Втр 15:58:59 #196 №2986209 
>>2985917
Ентити конечно.
Аноним 02/01/24 Втр 16:27:32 #197 №2986240 
>>2985917
Смотря что ты валидируешь. Что валидируешь - там и должен лежать вплидатор а не где-то в жопе проекта в отдельной папочке validators
Аноним 02/01/24 Втр 17:44:24 #198 №2986286 
>>2985283
У меня вообще даже изначального желания нет писать на го, я на него смотрю уже лет семь-восемь, всё никак не могу начать, но сейчас уже такое чувство, что если с пыхи не соскочить в ближайшее время то ВСЁ. Но мотивируют только большие зепки гошников, а на сам язык как-то похуй, наоборот, гуглозависимость отвращает.
Аноним 02/01/24 Втр 17:54:00 #199 №2986302 
>>2986286
Почему бы тебе не соскочить с пыхи на джаву, например?
Или на питон (хз как там с работой).

Го - весьма специфический нишевый язык. И он сложный, с кучей подводных камней на каждом шагу (как написал один умный чел - fake simplicity). После пыхи будет Весело на утреннике.

А гугол - да, та ещё хуйня. Они не умеют в юзабилити, о чём бы ни шла речь - системы, программы, библиотеки, языки. Хуй знает, как вообще можно быть настолько последовательными в этом деле.
Аноним 02/01/24 Втр 17:57:40 #200 №2986311 
>>2986302
Го сейчас идёт как бы приложением к пыхе, если ты не в курсе. На него переписываются всякие критичные к производительности сервисы. Джава - хз, в принципе, я думаю что смогу осилить, но хуй знает, с чего начинать. Да и уныло это, опять будет кровавый энтерпрайз с дрочерами на абстракции абстракций и дядюшку Боба. Про фейк симплисити в курсе. Петон - хз, думаю что осилю в два счёта, но там с работой похоже туго, либо надо какую-то нишу искать.
Аноним 02/01/24 Втр 18:03:28 #201 №2986322 
>>2986286
Пыха никуда не денется ещё лет 50, а вот как раз судьба го под вопросом
Аноним 02/01/24 Втр 18:08:54 #202 №2986326 
>>2986311
> Го сейчас идёт как бы приложением к пыхе, если ты не в курсе.
У тебя сложилось такое мнение потому что ты сам пыхер
Аноним 02/01/24 Втр 18:13:47 #203 №2986335 
>>2986326
Ну да, и что? В чём ошибка?
Аноним 02/01/24 Втр 20:15:22 #204 №2986470 
>>2986335
В том, что есть кубы и блокчейн :) сиди дальше синки и круды дрочи.
Аноним 02/01/24 Втр 20:17:33 #205 №2986473 
>>2986302
Экспертно мнение птушника:) очень вкусно, продолжай! Смеемся всей галерой.
Аноним 02/01/24 Втр 20:26:14 #206 №2986490 
>>2986473
И тут ты сейчас взял, и написал в чем он не прав
Аноним 02/01/24 Втр 20:37:05 #207 №2986513 
>>2986470
>кубы
Это девопсы, и там непосредственно с го работы не очень много, на питоне и то больше придется писать скорее всего


>блокчейн
Мерзкая хайпожорская сфера, где базворды меняют друг друга каждый год, недавно там все на Раст усиленно переписывали потому что БеЗоПаСнОсЬ
Аноним 02/01/24 Втр 21:33:34 #208 №2986614 
>>2986513
>>кубы
https://github.com/search?q=operator&type=repositories уже бегу переписывать на питон. Есть конторы (биг Техи), которые делают собственные дистры кубов. Там дохуя работа для прогеров. офк нужно знать девопс и кубы.
>>блокчейн
Нахрюк крепкий! Делай дальше круды на пхп, унтерменш

Можно добавить еще задачи - логи, метрики и етц.
Какой смысл менять язык и делать то же самое.
Аноним 02/01/24 Втр 22:17:32 #209 №2986627 
>>2986470
Так я ж не спорю что они есть, я вообще изначально толкую про перекат в го из пыхи в рамках той же компании. Это и хорошо, что гошка востребована в хайповых отраслях типа блокчейна, можно будет наконец заработать ДЕНЕГ, а не выживать на ссаные 2.5 сотыги. Но сначала надо перекатиться, везде требуют каммерческий опыт. Хотя я и писал один простенький микросервис на гошке, всё равно сквозит НЕУВЕРЕННОСТЬ и тянет по низам ДАННИНГОМ-КРГЮГЕРОМ.
Аноним 02/01/24 Втр 22:32:33 #210 №2986641 
>>2986627
Расслабься и иди на собес в ноунейм контору. Тренировка и раскрепощение. Толку на дачах сидеть и разговаривать с вкатунами, если ты прошел пhп гойду.
Аноним 02/01/24 Втр 22:37:54 #211 №2986645 
>>2986627
>писал один простенький микросервис на гошке
А что делал твой микросервис?
И почему он был только один?
Аноним 02/01/24 Втр 22:52:46 #212 №2986653 
>>2986641
Я уже в "нейм" конторе, КОТВАСЯ. Да, надо сходить, но типа чтоб совсем не опозориться надо же что-то знать/уметь, да?

>>2986645
Клал данные в базу из джейсончика, потом отдавал + сваггер. Практически обычный круд, по сути. Один потому что это было как бы экспериментом, там основная часть людея на сисярпе писала, я на пыхе поддерживал сервис авторизации и еще один сервис с данными. Для эксперимента в рамках "перехода на го" написал вот ето.
Аноним 03/01/24 Срд 02:19:48 #213 №2986886 
>>2986641
С конца октября сходил на 20+ собесов (синьор питухон, хотел на го мидла), законно за щеку взял, нужны только С КАМЕРЧЕСКИМ ПАПЫТОМ.
Аноним 03/01/24 Срд 03:19:00 #214 №2986900 
>>2986886
Я же говорю - это _нишевый_ язык.
В РФ - это только крупные компании, типа авито-хуяндекс и банков, и они могут себе позволить повыёбываться.

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

Думаю, если поискать как следует, то найдётся есть некоторое к-во вариантов, но, зарплата там будет попроще. Что делает эту затею бессмыссленной, если ты не маньяк.

Поэтому, я на это дело пока смотрю как на хобби.
Аноним 03/01/24 Срд 06:39:53 #215 №2986933 
>>2986886
Я думаю, что если этим даунам объяснить, что ты законтрибутил в попенсорс проект, которым пользуются десятки тысяч или сделал свой работающий сервис с закрытым кодом, то они охуеют.
Аноним 03/01/24 Срд 06:46:43 #216 №2986934 
>>2986900
> проще взять ждуном школьника, который дрочит и отформовать его, чем бодаться с опытным человеком, который привык прогибать ситуацию под себя
Так это везде так. Кабанчик хочет быстро, качественно и бесплатно.
Вон, один клоун-бизнесмен хочет рабов на цепи держать, чтоб к восьми утра все в офисе были! https://t.me/bezsmuzi/4972
Аноним 03/01/24 Срд 10:04:21 #217 №2986981 
>>2981263
Если у тебя динамические стенды в кубе это плюс, жрет мало ресов, не надо тратится на доп ноды, также регистри не забивает быстро(да можно настроить чистку) ибо образ весит мало. Также старт сервиса быстрый по сравнению с той же джавой, которая по минуте поднимается...
Аноним 03/01/24 Срд 12:51:52 #218 №2987179 
>>2986934
"Русский IT бизнес", никак не меньше, сука. Не васин, не петин, а прямо вот национальный. Мамкин бизнесмен, офис он снял, ололо.
Аноним 03/01/24 Срд 18:14:36 #219 №2987665 
А в VSC можно как то гошные проги запускать по кнопке, как тот же петухон или жабу, а то заколебало постоянно в терминал мотаться
Аноним 03/01/24 Срд 18:30:39 #220 №2987690 
>>2987665
Всегда через терминал запускаю. Ну либо настрой кнопку на баш
Аноним 03/01/24 Срд 20:30:16 #221 №2987897 
>>2987665
можно.

но с нюансами (или я не разобрался как). смотри, у нас во всех сервисах главный бинарник компилируется из cmd/service/main.go. Я добавил глобальный конфиг для запуска в общий settings.json. Этого хватает в 90% случаев. Бинарники по другим путям запускаю через консольку. Если нужно подебажить, то добавляю конфиг для конкретного бинарника в локальный конфиг для проекта - для этого буквально нужно конфиг скопировать и поменять пути.

// settings.json
{
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "cmd/service",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}/cmd/service",
"cwd": "${workspaceFolder}",
}
],
},
// ...
}
Аноним 03/01/24 Срд 21:29:53 #222 №2987966 
>>2987665
То есть, в этой чудесной супер-ide для Го нельзя запускать гошные файлы по кнопке? Охуеть.
Goland поставь, там можно.

Хотя, в голанде я сам тоже обычно из терминала запускаю.
Кроме тех случаев, когда делаю отладку.
Дебаггера в чудесном вскоде тоже нет, как я понимаю?
Аноним 03/01/24 Срд 21:42:03 #223 №2987988 
>>2987966
У тебя N бинарей в проекте. Как ты поймешь какой бинарник запускать когда ты нажмешь кнопку в пакете, который во всех из них используется?
Очевидно, нужен какой-то отдельный дропдаун для выбора конкретной main.go. В вскоде его нет, там можно вручную указать путь. В этом и различие - указываешь путь вручную.

Дебаггер есть.
Аноним 03/01/24 Срд 21:44:31 #224 №2987996 
>>2987897
Крч как то через launch.json я разобрался как по F5 и ctrl+F5 делать debug/run, твой способ выглядит как то что похожее, но чет я не вкурил

>>2987966
Дебаг там имеется, насколько он пиздатый пока не проверял. Голанд есть, но я глянул сколько он ресурсов жрет ради программки вычисляющей условно 2+2 и чет грустно стало, пробовал VSC как что то легковесное и маложрущее, но чет подсказывает, что я останусь на жибрейне
Аноним 03/01/24 Срд 21:47:47 #225 №2987999 
>>2987996
> Крч как то через launch.json я разобрался как по F5 и ctrl+F5 делать debug/run, твой способ выглядит как то что похожее, но чет я не вкурил
ровно то же самое, просто глобальное для проектов https://code.visualstudio.com/docs/editor/debugging#_global-launch-configuration
Аноним 03/01/24 Срд 21:55:11 #226 №2988015 
>>2987988
>нужен какой-то отдельный дропдаун для выбора конкретной main.go.
В голенде так и есть. И даже более того, это можно группировать в папки. И выполнять можно что угодно, не только го (скрипты и прочее), и всё это будет в одном дропдауне.

>>2987996
>сколько он ресурсов жрет
Он их совсем не просто так жрёт, всё по делу.
И при увеличении размера программки ресурсов он будет жрать столько же.
Алсо, там какие-то вещи можно отключать, оптимизировать производительность, я никогда не заморачивался (за ненадобностью), но можешь погуглить. В том числе, можно оперативно отключать подсказки и т.п., это экономит.
Аноним 03/01/24 Срд 22:07:06 #227 №2988043 
>>2988015
ну технически в вскоде просто все пунктики дропдауна нужно написать самому в жсоне сначала
Аноним 03/01/24 Срд 22:23:11 #228 №2988082 
>>2988043
Ну, если так, то это не такая большая проблема.
Аноним 04/01/24 Чтв 05:43:58 #229 №2988289 
92C62696-84E7-4B17-838F-DD75792B4E89.png
Как вам идея писать код на Go не в Golang и не VS Code, а в Vim?

В нем кто-нибудь работает из известных Go-разрабов?
Аноним 04/01/24 Чтв 05:55:26 #230 №2988290 
CBCFC29B-C439-4AD4-A3DD-32B456903BDC.png
Как раз книжка недавно вышла
Аноним 04/01/24 Чтв 05:57:11 #231 №2988291 
https://nikgalushko.com/post/vim_as_golang_ide/

Уверен, у кого-то возникнет вопрос: «Зачем в 2021-ом пользоваться -vim- neovim, когда есть замечательный Goland?». Я до какого-то времени сам пользовался только продуктами от JetBrains, но вот уже более 1.5 лет пишу исключительно в vim.

Основной причиной для моего перехода с Goland стала его прожорливость. Отдавать по 3-4 Гб программе, которая просто подсказывает мне названия методов, запускает тесты и реализует «Go to definition», очень расточительно. Вкупе с непонятной политикой индексации проекта, когда у тебя в момент взывают куллеры, а батарейка на глазах тает, привело меня к vim.
Аноним 04/01/24 Чтв 07:01:47 #232 №2988297 
>>2972512
Ты сказал perl? Я думал он умер лет 15 назад.
Жаль, что он не умер. Он такой забавный - на нём очень просто писать, но через недеелю уже не понимаешь что твой код делает. А если код чужой, то всё, пиздец, приехали.
Аноним 04/01/24 Чтв 07:44:20 #233 №2988304 
>>2988291
> Отдавать по 3-4 Гб программе, которая просто подсказывает мне названия методов, запускает тесты и реализует «Go to definition», очень расточительно
Я уж думал, что не осталось программистов-бомжей, которые не могут себе позволить иметь 32/64 Гб RAM на своей рабочей машине.
Аноним 04/01/24 Чтв 08:16:56 #234 №2988312 
>>2988291
>Основной причиной для моего перехода с Goland стала его прожорливость. Отдавать по 3-4 Гб программе, которая просто подсказывает мне названия методов, запускает тесты и реализует «Go to definition», очень расточительно.
У него платное использование памяти что ли? Типа ГБ×час тариф?
Ну я понимаю, оно бы 10 ГБ жрало и на всё остальное бы не хватало, но 3-4 то почему жалко?
>Вкупе с непонятной политикой индексации проекта, когда у тебя в момент взывают куллеры, а батарейка на глазах тает, привело меня к vim.
Он не пробовал ноут к сети подключать? Ноут без сети это просто бесполезная хуйня.
Аноним 04/01/24 Чтв 08:18:32 #235 №2988313 
>>2988312
На некоторых компах всего 2 гига ОЗУ может быть и там хваленый голэнд от жидбрейнс просто не работает
Аноним 04/01/24 Чтв 08:23:59 #236 №2988315 
>>2988313
У меня на первом компе 32МБ было и винт на 1.66ГБ, я же не ною, что на нём вижуал студия не работает, поэтому я на кубейсике программы пишу.
2ГБ памяти это год 2006, наверное. Это просто гроб какой-то, а не ПК.
Аноним 04/01/24 Чтв 08:26:04 #237 №2988317 
>>2988315
В 2006 у меня было 512Мбайт, а в 2010 я купил новый комп 2 ядра 2 гига.
Аноним 04/01/24 Чтв 10:20:43 #238 №2988340 
>>2988317
Значит ты, дружище, нищееб. Два ядра два гига это как раз стандарт для 2006-2007
Аноним 04/01/24 Чтв 10:54:06 #239 №2988358 
>>2988304
У меня 32 гига на топовом ThinkPad. Но увы - железо принадлежит компании. А своего компа уже давно нет - хуй угонишься за современным железом.
Аноним 04/01/24 Чтв 11:01:31 #240 №2988360 
>>2988312
Серьёзно?
У меня валяется штук шесть старых ноутов и я тоже думал что без сети они бесполезны. Да они и были бесполезны, а затем на работе выдали божественный ThinkPad и мир перевернулся.

Впрочем, на нёи нет ни одной игры (нахуя, если плойка для игр лучше), весь софт исключительно лицензионный и, если надо загрузить чем-то действительно тяжёлым, то всегда под рукой putty и rdesktop - пусть сервера греются, а не прерасный "ящичек Пандоры".
Аноним 04/01/24 Чтв 11:36:37 #241 №2988383 
>>2988358
> А своего компа уже давно нет - хуй угонишься за современным железом.
Да ладно, а зачем за ним гнаться? Я как собрался на райзенах года 3-4 назад, так до сих пор всё актуально.
Аноним 04/01/24 Чтв 12:34:51 #242 №2988441 
Посоветуйте фреймвёрк для написания веб-приложений
Аноним 04/01/24 Чтв 13:32:18 #243 №2988496 
>>2988441
В го нет фреймворков, язык ближе всех к unix way, каждый раз клепаешь себе франкенштейна из разных либ которые заточены под одну задачу. Иногда можешь обойтись только стандартной библиотекой, иногда кастомный велосипед пишешь.
Аноним 04/01/24 Чтв 14:04:57 #244 №2988531 
А что у нас по зепкам?
С учётом годовой премии, у меня российской компании по текущему курсу вышло около 100к баксов за год заработка.
Это норм или не норм?
Прост сомнения, потому что гоферы как-то сложно нанимаются - многие просят непропорциональнр много относительно своего опыта. И тут всплывает в голове, а не недоплачивают ли мне.
Аноним 04/01/24 Чтв 14:09:18 #245 №2988534 
>>2988531
Что-то как-то маловато у тебя.
Вот 500 - уже более-менее нормально было бы.
Аноним 04/01/24 Чтв 14:16:38 #246 №2988538 
>>2988534
Половина миллиона долларов в год?
Аноним 04/01/24 Чтв 14:50:59 #247 №2988566 
>>2988538
А десятка в месяц в РФ тебя не смущает?
Аноним 04/01/24 Чтв 15:14:49 #248 №2988579 
Где размещать контроллеры? Рядом с main.go в cmd/app или тащить в internal/controllers?
Аноним 04/01/24 Чтв 15:55:12 #249 №2988616 
golangwithoutframeworks.png
>>2988496
Это здорово конечно, но как писать веб-приложения? Все говорят про это, но никто реальных примеров не скидывает.
Аноним 04/01/24 Чтв 16:01:42 #250 №2988622 
>>2988616
Какие именно веб-приложения? Они бывают очень разные.
Есть куча книг (англоязычных) с примерами.
А фреймворков действительно нет, они не нужны.
Потому, что то, что делает какой-нибудь flask уже есть в стандартной библиотеке и в gorilla mux. Т.е. сам язык создавался уже заточенным под это применение.
Аноним 04/01/24 Чтв 16:03:38 #251 №2988624 
>>2988291
Ахах. Тогда уж проще на бумажке код писать, прогонять в голове и уже потом переносить на пк. Зачем тратить заряд ноута лишний раз, правильно?
Аноним 04/01/24 Чтв 16:04:24 #252 №2988625 
>>2988579
Ваще насрать где, если твой проект кроме тебя никто смотреть не будет
Аноним 04/01/24 Чтв 16:06:27 #253 №2988627 
>>2988625
Я его буду размещать на гитхабе, а ссылку в резюме, чтобы при устройстве на работу все видели, что я крутой программист и сам написал веб-приложение.
Аноним 04/01/24 Чтв 16:13:31 #254 №2988637 
>>2988622
Мне надо веб-приложение, которое может отвечать жсонами и хтмл-страничками, чтобы там была авторизация и аутентификация с миддлварями, чтобы была защита от CSRF-атак и т.п.

Есть список этих книг? Почему их никто не переводит? Неужели только я один задумался о написании веб-приложений?

В самом языке ничего нет. Он пустой. В том же РНР всё заточено для работы с вебом, а тут буквально ничего нет.
Аноним 04/01/24 Чтв 16:14:35 #255 №2988638 
>>2988579
В /cmd размещают то, что будет компилироваться в исполняемый файл (команду).
В /internal - то, что _не_ должно импортироваться при импорте твоего модуля (библиотеки).

Т.е., в твоём случае - ни то, ни другое.
Или в /pkg или, лучше, просто в /controllers, если ты хочешь именно так структурировть код. Это не единственный способ. Можно группировать по функционалу, а не по типу кода. Какого-то одного правильного способа нет.
Аноним 04/01/24 Чтв 16:15:45 #256 №2988640 
>>2988627
Или просто скопировал готовую структуру проекта хз где, а вместе с ним и код. Все эти контроллеры и прочее - это с пхп пришло.

Лучше делай по своему. Потому что тебя в любом случае заставят делать так как у них принято.
Спросят почему так а не эдак - говоришь так мне удобно, а в го нет жестких правил касательно структуры проекта. Начинают доебываться - шлёшь нахуй этих душнил ебаных.
Аноним 04/01/24 Чтв 16:20:16 #257 №2988646 
>>2988640
Почему они не делятся кодом на этапе обучения, а ждут когда к ним придут челики, разработавшие свои методики?
Аноним 04/01/24 Чтв 16:22:11 #258 №2988648 
>>2988637
Почему язык пкстой и на нём нихера нет? Потому что это язык для микросервисов через grpc блядт, он даже на рест не тянет.
Гуглу до зарезу нужен был язык для кучи пхп макак, желательно чтоб они не зависели друг от друга. Вот и появился го. Для микросервисов там сделано моё почтение. А на всё остальное просто положили болт, потому что они им не пользуются.
Лучше сделай морду на реакте, рест на питоне, а какую-нибудь прокладку по типу чятиков на го.

Все охуеют и поймут что ты нормальный разработчик, а не дрочер на один язык и выясняющий в интернете кто из них круче.
Аноним 04/01/24 Чтв 16:22:15 #259 №2988649 
В ДС реально устроиться джуном на Го?
Аноним 04/01/24 Чтв 16:23:36 #260 №2988653 
>>2988649
Да, но только в офис
Аноним 04/01/24 Чтв 16:24:00 #261 №2988655 
>>2988646
Потому что некоторые конторы так и разрабатывают свои проекты. Заставляют делать тестовые, опрокидывают, а сами втихую пиздят код под свои нужды. Если код непонятен - нанимают на работу чтоб ты сам с ним разбирался.
Аноним 04/01/24 Чтв 16:24:44 #262 №2988656 
>>2988655
Вот же гады!
Аноним 04/01/24 Чтв 16:27:02 #263 №2988657 
>>2988637
Веб-приложения, отдающие html, не слишком популярны в го.
Потому, что в этом нет большого смысла, этот язык для другого.
Хотя, есть встроенные шаблоны, и их можно использовать.
Но, основная масса литературы - про rest api и микросервисы.

>Есть список этих книг?
Вот это посмотри:
https://scanlibs.com/full-stack-web-development-go/
https://scanlibs.com/pro-go-programming-efficient/
Потом попробую ещё чего-нибудь подобрать.

>Почему их никто не переводит?
Потому, что те, кому это интересно, умеют читать по-английски, как правило.

Алсо, ты такое вообще на чём-нибудь делал?
На питоне, например?
А то на го с нуля может быть сложновато.
Аноним 04/01/24 Чтв 16:28:16 #264 №2988660 
>>2988656
Ну а ты как думал, на хх вон сколько вакансий по сотни и тысячи откликов. Представь себе, тысячи бесплатных одноразовых программистов каждый день. Делишь проект на элементарные части, каждую раздаешь по 10-20 соискателями. Выбираешь из них лучшую и собираешь готовый рабочий код.
Аноним 04/01/24 Чтв 16:29:05 #265 №2988661 
>>2988653
Это хорошо. Почему-то кажется, что джуну так полезнее будет.
Аноним 04/01/24 Чтв 16:30:09 #266 №2988663 
>>2988637
>Почему их никто не переводит
Ты что английский не учишь, Снегур?
Аноним 04/01/24 Чтв 16:31:02 #267 №2988665 
>>2988660
А ещё можно заставить их обернуть всё это тестами. Это ж за неделю можно сделать проект который занимает полгода.
Аноним 04/01/24 Чтв 16:32:04 #268 №2988668 
>>2988657
На PHP Laravel писал свои проекты, а на работе только на Вордпрессе писал, но там нужны только плагины, само приложение уже готово.
Аноним 04/01/24 Чтв 16:37:43 #269 №2988673 
fastapibook.jpg
>>2988668
Тогда, стоило бы начать с питона - flask или fast api.
https://scanlibs.com/fastapi-modern-python-web-development/
Идеи все те же самые, только начинать проще, чтобы понять, что к чему.
Аноним 04/01/24 Чтв 16:38:46 #270 №2988675 
>>2988673
Мне ещё питон учить что ли?
Аноним 04/01/24 Чтв 16:39:46 #271 №2988677 
>>2988673
Чому не Django? Меньше похож на Go?
Аноним 04/01/24 Чтв 16:40:45 #272 №2988678 
>>2988675
Сначала английский
Аноним 04/01/24 Чтв 16:41:03 #273 №2988680 
>>2988675
Ну, если ты не знаешь го и не знаешь питон, то какая разница?
В итоге, по затратам времени сделать работающий проект на питоне - будет в разы быстрее, чем на го.
Аноним 04/01/24 Чтв 16:42:01 #274 №2988682 
>>2988677
Да. Философия другая.
Аноним 04/01/24 Чтв 16:43:36 #275 №2988684 
>>2988680
А может у него цель пет проект для резюме для вката голангером. Выучить питон, понаписать проектов по книгам и курсам, потом выучить го и переписать все на нем, но уже самостоятельно - норм идея?
Аноним 04/01/24 Чтв 16:44:02 #276 №2988685 
>>2988680
Я РНР неплохо знаю
Аноним 04/01/24 Чтв 16:46:19 #277 №2988691 
>>2988682
А то сейчас FastAPI хайпует. Вакансий нет, но интересно.
Аноним 04/01/24 Чтв 16:49:07 #278 №2988694 
>>2988657
>full-stack-web-development-go
Автор тянет на каждый чих библиотеку с гитхаба. У него реально кривосшитый франкенштейн. Стандартную библиотеку он не использует.

>pro-go-programming-efficient
Дотнетчик Адам Фриман написал мини ASP.NET на голанге с рефлексией и инверсией зависимостей. Так явно никто не пишет на го.
Аноним 04/01/24 Чтв 16:51:23 #279 №2988696 
>>2988694
Посоветуй другие книги тогда
Аноним 04/01/24 Чтв 16:51:45 #280 №2988699 
Что сретесь?
В гошке стандарт - чистая архитектура дяди боба. Так что с его книжки и можно начать. Если читали, но лень самому делать структуру, можно утащить от three dots или evrone.
Аноним 04/01/24 Чтв 16:51:59 #281 №2988700 
>>2988694
Ну, это то, что быстро нашлось на тему "классических" веб-приложений на го.
Аноним 04/01/24 Чтв 16:55:21 #282 №2988702 
>>2988685
Вот это посмотри:
https://habr.com/ru/articles/501722/

Там наоборот, чел мигрирует с пыхи на го.
Будет полезно для понимания, что к чему.
Аноним 04/01/24 Чтв 16:56:29 #283 №2988704 
>>2988699
>чистая архитектура дяди боба
Там на каком ЯП примеры? Ньюфагу не сложно будет читать?

Алсо "Чистая архитектура" и "Чистый код" подразумевают какой-то порядок чтения или они о разном?
Аноним 04/01/24 Чтв 17:00:19 #284 №2988706 
>>2988673
И как в го развешивать атрибуты с маршрутизацией по контроллерам?
Аноним 04/01/24 Чтв 17:00:45 #285 №2988707 
>>2988702
С го на пыху, конечно же, лол.
Аноним 04/01/24 Чтв 17:03:51 #286 №2988711 
>>2988706
См. ServeMux, gorilla/mux
Как аргумент функции передаётся.
Тут есть примеры:
https://github.com/gorilla/mux
Аноним 04/01/24 Чтв 17:08:03 #287 №2988712 
>>2988707
Походу и мне придётся идти с го на пыху. А жаль, язык хороший, но что-то конкретное написать сложно. Нет, был бы у меня вагон времени, то с удовольствием бы разработал свой фреймворк, но когда готовишься для работы, то времени столько нет.
Аноним 04/01/24 Чтв 17:22:54 #288 №2988728 
>>2988704

Не нужен никакой фреймворк, берёшь и пишешь что угодно.

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

Все что нужно уже есть в языке.

Если ты прям ньюфаг вообще в программировании, то бери туториал по grpc и пили свой сервис как написано в туториале.

Сходу ты вроде все тонкости архитектур не погрузиться.

А grpc + базки будут хорошим стартом для портфолио.
Аноним 04/01/24 Чтв 18:02:03 #289 №2988787 
>>2988728
>берёшь и пишешь что угодно
И в итоге спустя 5 лет получаешь абсолютно устаревший и неподдерживаемый кал во многих местах. Видел я такое однажды: в команде заморочились и сделали целый свой набор общих компонент и тулзов, чтобы в разных микросервисах использовать. Писались эти тулзы и микролибы одним челиком. А как он уволился - всю его работу просто взяли и выбросили нахуй, решили дать другому челику переписывать с нуля все заново. Ебало имаджинировали?
Аноним 04/01/24 Чтв 18:11:13 #290 №2988813 
>>2988787

Сказки джуна фрилансера, который "это невозможно поддерживать, давайте переписку, а? Позязя, у меня долг по комуналке".

Неподдерживаемый код на гошке бывает конечно, когда приходит пыхер/питонщик/джавмст/etc и пишет как привык, но получая по рукам он быстро становится нормальным.
Go на уровне языка подталкивает разработчика пользоваться стандартными кирпичиками, делать код максимально solid, бить его на микроскрвисы. Что делает ситуацию с переписать все невозможной, если, конечно, сильно не поменялись бизнес требования.
Аноним 04/01/24 Чтв 18:11:33 #291 №2988814 
>>2988787

Сказки джуна фрилансера, который "это невозможно поддерживать, давайте переписку, а? Позязя, у меня долг по комуналке".

Неподдерживаемый код на гошке бывает конечно, когда приходит пыхер/питонщик/джавмст/etc и пишет как привык, но получая по рукам он быстро становится нормальным.
Go на уровне языка подталкивает разработчика пользоваться стандартными кирпичиками, делать код максимально solid, бить его на микроскрвисы. Что делает ситуацию с переписать все невозможной, если, конечно, сильно не поменялись бизнес требования.
Аноним 04/01/24 Чтв 18:21:10 #292 №2988842 
>>2988813
>>2988814
Да причем тут сказки, просто в команде решили повыебываться и написать свой микрофреймворк. Автор микрофреймворка ушел, поэтому все его тулзы заново переписывать начали, а старые тулзы и микролибы выбросили. Сам код микросервисов особо не трогали, кроме как если нужно было сами тулзы по другому начать использовать, не более. Переписывал не я, меня лишь заставили переводить часть микросервисов на новые либы постепенно.

>>2988813
>бить его на микроскрвисы
Уже в другом проекте мы сознательно делали монолит. Ну, вернее, так лид захотел. Причина - не хочется ебаться с распределенными транзакциями и двухфазными коммитами. Поэтому сделал по старинке одну базу с гигантской центральной сущностью в 30 полей и монолит, который на 10 виртуалок в облаке деплоится.
Аноним 04/01/24 Чтв 18:27:44 #293 №2988867 
>>2988684
Ну, что-то такое я и имел в виду.
Это выгляди сложным, но, учиться вообще сложно.

Конечно, не надо год учить питон, потом год фласк или фаст-апи.
Смысл в том, чтобы быстро получить что-то работающее, поковырять его, и потом делать подобное на го, уже понимая куда копать. Сам питон при этом можно глубоко не учить, просто базу. Оно вообще не лишне - скрипты писать, прототипы и т.п.
Аноним 04/01/24 Чтв 18:44:59 #294 №2988893 
>>2988842
>с гигантской центральной сущностью в 30 полей
Вот чем вы там все занимаетесь, лол? Лайки считаете?
В бизнес-задачах 30 полей - это вообще ни о чём. Просто так, побаловаться. А тут - гигантская сучность, лол. Отсюда и микросервисы эти ваши дурацкие. В задачах реального сектора - склад, планирование, прозводство, crm - такая хуита просто не жизнеспособна. Да и не нужна.
Аноним 04/01/24 Чтв 18:53:20 #295 №2988918 
>>2988893
Ващето бабки считаем, ну да и похуй. Ну там не 30, а чуть больше полей, вроде 40, не считал на самом деле. Просто есть центральная сущность, которая нужна в абсолютно всех бизнес-процессах. Поэтому и приходится ее везде тянуть. А если монолит делать, да так, чтобы у каждого сервиса своя база была, то придется постоянно изо всех сервисов обращаться к тому, который обладает базой с таблицей, где эти сущности лежат.
Вот и хуй знает как тут на микросервисы монолит грамотно распилить...
Аноним 04/01/24 Чтв 19:00:11 #296 №2988931 
>>2988918
Кто сказал, что его надо обязательно пилить на микросервисы?
Вот тут эта тема неплохо рассмотрена:
https://blogs.newardassociates.com/blog/2023/you-want-modules-not-microservices.html

И, если кто не читал:
https://habr.com/ru/articles/779362/
оригинал:
https://renegadeotter.com/2023/09/10/death-by-a-thousand-microservices
Аноним 04/01/24 Чтв 19:27:52 #297 №2988969 
>>2988931

Эти статьи и комменты уровня яндекс дзена, к кому хабра и скатилась.


Ложная дизотомия, монолит vs микросервисы. Должна решать команда разработки, не поддаваться на желтые статьи, а исходя из требований и ограничений конкретного бизнеса.
Аноним 04/01/24 Чтв 19:39:10 #298 №2988990 
>>2988969
Микросервисы почти никогда и нигде не нужны.
Аноним 04/01/24 Чтв 19:50:26 #299 №2989010 
Делать рест на го очень плохая идея. Я вас предупреждал. Потом не жалуйтесь когда Тулуп начнёт гореть, но будет уже поздно
Аноним 04/01/24 Чтв 19:51:24 #300 №2989014 
>>2988969
> жирный монолит vs микросервис на каждую строчку кода
Максималисты добрались до ит.
Аноним 04/01/24 Чтв 19:52:15 #301 №2989015 
>>2988990

О, джун-двачер
Аноним 04/01/24 Чтв 19:55:57 #302 №2989026 
>>2988969
Ты точно прочитал, что там написано? Оба текста?
На хабре - это перевод. И хабр не "скатился", а всегда был говном.

Микросервисы (в большинстве случаев) - это способ искусственно увеличить сложность и стоимость разработки проекта, прикрываясь благими целями и умными словами. Инфоцыганство в чистом виде.
Хотя, часто это делают просто по глупости - все побежали - и я побежал.
Аноним 04/01/24 Чтв 19:57:33 #303 №2989033 
>>2989010
Аргументации, конечно же не будет?
Аноним 04/01/24 Чтв 20:00:01 #304 №2989038 
>>2989033

Я не он, но соглашусь. Раз нет реализации openapi3 за все годы, значит она нахер никому не упала из крупных компаний. Значит ресты никому не нужны.

Чем не угодил grpc? Он будет для внутреннего взаимодейсвия и мобилок, для веса можно на уровне гейтвея конвернуть в рест.
Аноним 04/01/24 Чтв 20:43:40 #305 №2989108 
>>2972146 (OP)
Всем привет. Хочу написать API-GateWay сервер на го. Использовал генерацию echo-сервера по спеке. Подскажите пожалуйста в чем ошибка?

моя структура пакетов:
main:
- main.go
- server.go

В обоих файликах прописан package main

в server.go лежит
type GatewayServer struct {
}
в main.go лежит
server := &GatewayServer{}

В VSCode go-to-definition работает, ошибок нет, но если пытаюсь запустить то получаю
./main.go:22:18: main.GatewayServer is not a type (exit status 1)

Чат гпт и гугл уже задрочил, не понимаю в чем проблема. Если перенести server.go в отдельную папку и поменять пакет то все работает нормально, но если main.go и server.go лежат вместе - то все пизда
Аноним 04/01/24 Чтв 20:45:08 #306 №2989112 
>>2988867
А вообще если брать бэкенд, то какие технологии ближе всего (аналогичны) Go по задачам и концепциям?

Вот например список языков. Что из этого близко к Go, а что совсем не близко?

Python + Flask + FastAPI
PHP + Laravel + Symfony
Node.js + Express + NestJS
Java
C#
Ruby + Ruby on Rails
Rust
C++
Аноним 04/01/24 Чтв 20:53:53 #307 №2989121 
>>2989112
Питон (до определённой степени).
Всё остально - это, скорее, анти-го.

Сами создатели позиционируют Го как "Си 21 века".
Т.е., это си со сборкой мусора, слайсами вместо массивов, интерфейсами, асинхронностью из коробки.
А питон многие определяют как "си с отступами" (в смысле - синтаксис на отступах).
И питон - прекрасный клей для сишных либ, интеграция очень простая.
Как-то так.

Алсо, в питоне то же лютое дрочево на стандарты кода (PEP-ы), диктаторские подходы (Гвидо - "милостивый диктатор") и прочий лол. Как и в го.
Аноним 04/01/24 Чтв 20:59:34 #308 №2989128 
>>2989108
>type GatewayServer struct {}
У тебя там, случайно, '=' не стоит?
type GatewayServer = struct {...}
Ну или ещё какая-то хуйня, которую вскод не распознаёт как ошибку. Внимательно посмотри.
Аноним 04/01/24 Чтв 23:01:27 #309 №2989276 
>>2986981
>Если у тебя динамические стенды в кубе это плюс, жрет мало ресов, не надо тратится на доп ноды, также регистри не забивает быстро(да можно настроить чистку) ибо образ весит мало.
Мало жрет сервис на сях, а реальный сервис на говноланг жрет ± на уровне джавы.

>Также старт сервиса быстрый по сравнению с той же джавой, которая по минуте поднимается...
Если у тебя каждую минуту стартует сервис, то у тебя проблемы с архитектурой или окружением. И решать их надо не ускорением старта сервиса, а исправлением основных проблем.
Аноним 04/01/24 Чтв 23:08:29 #310 №2989279 
>>2989276
То есть, го не нужен, так?
А мужики-то не знают.

Памяти он жрёт реально меньше. А цпу - больше. Время старта реально меньше. Об этом много написано.
Алсо, 1 самодостаточный бинарник ставится в голый
контейнер, в отличие от.
Аноним 04/01/24 Чтв 23:30:30 #311 №2989287 
>>2989279
Кого вообще парит время старта приложухи? Всё давно уже бесшовно деплоится, старый контейнер не отключается пока новый не стартанёт, так что это вообще не фактор, пусть хоть 10 минут стартует.

>1 самодостаточный бинарник ставится в голый контейнер
Опять же, какая разница, голый контейнер или не голый, его придумали чтобы набивать туда всё что нужно и не забивать себе голову - команда для запуска будет одна и та же.
Аноним 04/01/24 Чтв 23:30:55 #312 №2989288 
>>2989033
Аргументации? Ты потратишь кучу времени на изучение го, устроишься на работу, будешь делать какие-то костыльные рализации реста на языке который для этого в принципе не предназначен. Поймёшь что на других языках это делается в разы проще, гораздо легче разработка, поддержка. Но к тому времени осознаешь, что просто потратил время на узкоспециализированное говно и в итоге Тулуп будет в огне потому что надо будет переучиваться.
Аноним 04/01/24 Чтв 23:50:10 #313 №2989294 
>>2989288
>на языке который для этого в принципе не предназначен
Что значит, блять, "не предназначен"?
Там json встроен в язык.
Декларативная сериализация/десериализация из коробки.
Как ещё это должно быть "предназначено", по-твоему?

А насчёт grpc и protobuf есть разные мнения.
В том числе и такие, что это ненужное гугло-говно.
Аноним 05/01/24 Птн 00:51:34 #314 №2989369 
>>2989128
короче пока последовал вот этому совету и держу main.go в отдельном пакете а весь остальной код в другом
https://stackoverflow.com/questions/70024480/go-golang-does-not-see-other-go-files-inside-the-same-dir
Аноним 05/01/24 Птн 01:04:10 #315 №2989387 
>>2989108
вопрос номер 2
Я генерирую код сервера из опенапи спеки с помощью https://github.com/deepmap/oapi-codegen

Я получил такой интерфейс, который, как я понял, мне нужно имплементировать

type ServerInterface interface {
RegisterUser(ctx echo.Context) error
LoginUser(ctx echo.Context, params LoginUserParams) error
// остальные методы такие же
}

почему тут нет типизации никакой? я думал эта штука за меня напишет сериализацию/десереализацию тел ответов/запросов. А мне получается самому нужно это делать?
и еще у меня генерируются модели запросов, типа AddWordJSONRequestBody, но не генрируются модели ответов. Почему так нахуй?
Аноним 05/01/24 Птн 01:26:20 #316 №2989403 
>>2989369
Ну, вообще, это правильно.
Пакет main - только для запускающего кода.
Сама программа должна быть в другом пакете или в нескольких пакетах.
Аноним 05/01/24 Птн 01:27:37 #317 №2989408 
>>2989108
ты запускаешь через go run main.go? оно компилирует только main.go из пакета. зависимости оно подтягивает, другие файлы пакета не будет. запускай через go run .
Аноним 05/01/24 Птн 01:34:15 #318 №2989420 
>>2989287
>Кого вообще парит время старта приложухи? Всё давно уже бесшовно деплоится, старый контейнер не отключается пока новый не стартанёт, так что это вообще не фактор, пусть хоть 10 минут стартует.
вот я качу свои охуенные правки на прод и мне нужно следить не сломалось ли что.
10 минут непродуктивного тупняка в пайплайн это хуйня. либо отвлекаешься на другую таску, но тогда можешь вообще забыть, что тебе надо следить за метриками вообще-то. у нас и так пайплайн деплоя минут по 5-10. было бы 20, то вообще пиздец.
Аноним 05/01/24 Птн 01:37:53 #319 №2989424 
>>2989408
>go run main.go?
да, так и запускал. понял, спасибо
Аноним 05/01/24 Птн 01:48:40 #320 №2989430 
>>2989010
да рест вообще переусложненная хуита. делаешь просто POST запросы /set /get /update и норм.
Аноним 05/01/24 Птн 03:30:56 #321 №2989468 
>>2989294
Голанг это и есть гуглоговно которое почему-то пытаются тянуть в массы. Они сделали язык под свои задачи, а некоторые тут хотят на нём игры ещё делать.
Он существует уже больше десяти лет, а адекватных устоявшихся фреймворков до сих пор нет. Я уж молчу про всё остальное.

Он банально недоделан в качестве главного языка для проектов, его максимум - затычки для узких мест. Косяки стандартных библиотек превращают в фичи, которые создатели не хотят фиксить прикрываясь обратной совместимостью, раз уж комьюнити превратило это в фичу.
Аноним 05/01/24 Птн 03:33:30 #322 №2989469 
>>2989468
>говно которое почему-то пытаются тянуть в массы. Они сделали язык под свои задачи, а некоторые тут хотят на нём игры ещё делать.

Кто сказал Kotlin?
Аноним 05/01/24 Птн 04:23:17 #323 №2989488 
>>2989430
GET если данные не меняются: GET /UsersInGroup
POST если меняются: POST /AssignUserToGroup
Шиза со всякими PUT LIST DELETE нахуй не нужна.
Аноним 05/01/24 Птн 06:05:08 #324 №2989506 
>>2989488
А как же UWU запрос?
Аноним 05/01/24 Птн 06:27:59 #325 №2989513 
>>2981263
>Да всем ПОХУЙ на количество файлов. Ты во время сборки все упаковал в образ и все.
Поебись с докером, поебись с регистри и может быть ты запустишь свою cli. Нет, спасибо, мне как-то проще сервис и клиент для него на одном языке разрабатывать.
Аноним 05/01/24 Птн 07:38:44 #326 №2989536 
>>2988694
А хули ты хотел от издательства "Apress".
Аноним 05/01/24 Птн 09:17:55 #327 №2989583 
>>2988531
> , у меня российской компании по текущему курсу
30к вышло примерно, вместо премии дали хуй. Но это на пыхе.
Аноним 05/01/24 Птн 13:06:50 #328 №2989676 
>>2989488
Рест это не про тип http запроса, а про организацию роутинга и апи, чтобы шаблонные вещи оставались простыми и одинаковыми везде, а не приходил очередной Вася и лепил костыли UsersInGroup, AssignUserToGroup, в ресте это было бы GET /groups/:id/users и PUT /groups/:id/users, таким образом рест даёт стандартный интерфейс для доступа к большинству данных и любой веб-фреймворк сейчас генерирует эти ресты одной командой, только Гошники в очередной раз изобретают колесо зачем-то, еще спорите какая форма лучше, круглая или квадратная.
Аноним 05/01/24 Птн 13:29:48 #329 №2989713 
>>2988289
https://youtube.com/watch?v=ZA93qgdLUzM
Аноним 05/01/24 Птн 13:36:07 #330 №2989724 
>>2989279
>Памяти он жрёт реально меньше. А цпу - больше. Время старта реально меньше. Об этом много написано.
Если сравнивать хелопорлд на голом Го и на Спринге может быть. А если реальные приложения, то разница будет в пределах погрешности. Кривая архитектура, на любом языке, перебьет индивидуальные особенности языка.
Аноним 05/01/24 Птн 13:38:30 #331 №2989729 
>>2989420
>вот я качу свои охуенные правки на прод и мне нужно следить не сломалось ли что.
Потому что ваша говноконтора не умеет в девопс. А по нормальному - у тебя есть стейджинг и канари с мониторингом и пробами. А не так что Паджит сидит и мониторит глазками.
Аноним 05/01/24 Птн 13:43:38 #332 №2989740 
>>2989513
>Поебись с докером, поебись с регистри и может быть ты запустишь свою cli. Нет, спасибо, мне как-то проще сервис и клиент для него на одном языке разрабатывать.
У тебя каша вместо мозгов, как вообще связан докер и то на каком язык разаработки клиента?
Аноним 05/01/24 Птн 14:22:49 #333 №2989796 
Прошёл го тур и встал вопрос практики. Как думаете этот проект подойдёт для начинающего?
https://www.youtube.com/watch?v=k_V5VvYSlS4

Книги читать не хочу просто потому что зачем тратить время на чтение 500 страниц когда можно посмотреть видео за 2 часа. По видео как по мне обучаешься в разы быстрее.
Аноним 05/01/24 Птн 15:15:55 #334 №2989906 
>>2989276
>Мало жрет сервис на сях, а реальный сервис на говноланг жрет ± на уровне джавы.
Сразу видно человека не в теме... У меня в проде джава(спринг) была, жрало как не в себя, потом переписывали на гошку, сами образы меньше стали, сборка моментальная, и по ресам ест фигню...
Аноним 05/01/24 Птн 15:16:36 #335 №2989908 
>>2989740
Они привыкли просто переписывать всё на го. Зачем? Потому что так делает гугл, а гугл это цель жизни для зумеров-кодеров
Аноним 05/01/24 Птн 15:34:23 #336 №2989936 
>>2989908
Нет, просто микросервисы это го. Пихать туда джаву, си шарп это полный бред.
Аноним 05/01/24 Птн 15:37:35 #337 №2989945 
>>2989936
>Нет, просто микросервисы это nodejs + typescript. Пихать туда джаву, си шарп или го это полный бред.
Аноним 05/01/24 Птн 16:20:55 #338 №2990042 
>>2989796
>Книги читать не хочу просто потому что зачем тратить время на чтение 500 страниц когда можно посмотреть видео за 2 часа
Заблуждение. По книгам учиться гораздо эффективнее.
Аноним 05/01/24 Птн 16:23:36 #339 №2990048 
Я правильно понял, что мьютекс блочит вообще все корутины, кроме той, которая его лочит?
Аноним 05/01/24 Птн 16:26:54 #340 №2990049 
>>2990042
Для людей без образования.
Людям с образованием достаточно документации и пара статей
Аноним 05/01/24 Птн 16:42:37 #341 №2990079 
>>2990049
>людям с образованием
>достаточно пара статей
:)
Аноним 05/01/24 Птн 17:21:29 #342 №2990149 
>>2990048
Да, весь код который между lock и unlock может за раз пройти только одна горутина
Аноним 05/01/24 Птн 17:37:51 #343 №2990171 
>>2989796
Погугли, что такое tutorial hell
Аноним 05/01/24 Птн 17:41:34 #344 №2990177 
>>2990049
Дружок, это как в том анекдоте про еблю:
- Да долго ли умеючи!
- Вот умеючи как раз и долго.
Аноним 05/01/24 Птн 17:42:37 #345 №2990179 
>>2990171
Это то, на чём инфоцыгане делают деньги.
Аноним 05/01/24 Птн 18:11:44 #346 №2990229 
>>2990079
>>2990177
С образованием. А не тем кто учился ради корочки
Аноним 05/01/24 Птн 18:20:20 #347 №2990241 
>>2989906
>У меня в проде джава(спринг) была, жрало как не в себя, потом переписывали на гошку, сами образы меньше стали, сборка моментальная, и по ресам ест фигню...
Ты не отдупляешь суть. Главное это
>переписывали
а не
>на
Аноним 05/01/24 Птн 18:21:47 #348 №2990244 
>>2990229
Но ты не из таких, если собрался учиться по видосикам
Аноним 05/01/24 Птн 18:30:45 #349 №2990260 
>>2990244
Не знаю, не учусь по видосикам
Аноним 05/01/24 Птн 18:50:36 #350 №2990292 
>>2990241
Не надо грязи.
Сделать рабочий вариант, а потом, по результатам тестирования, оптимизировать - это нормально. Прототип на питоне был бы ещё проще, но, людям привыкшему писать на типизированном языке питон не катит (от тайп-хинтов там толку мало, это не то).

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

А так-то, если по запросам в секунду смотреть, то оно всё примерно одинаково - что джава, что го, что питон.
Аноним 05/01/24 Птн 18:54:42 #351 №2990300 
>>2990241 >>2990292
Вот цитатка с реддита, про fastapi vs go:
https://www.reddit.com/r/golang/comments/u5squc/golang_vs_fastapi/
Generally, slower languages use Request Per Second to determine speed and show good numbers, which is super irrelevant for basically any real workload. Fast API is definitely fast in responding thanks to Uvloop and the underlying system calls, but in a real world application it will never be as fast a Go.

I've written a significant web API in both Go and Python using FastAPI and I consistently hit bottle necks inside python with the serialization and validation of data, which I've never had in Go.
Аноним 05/01/24 Птн 19:00:19 #352 №2990306 
Мы перепишем все на го
И будет бизнес огого!
Товары разом все уйдут
Как на страницу попадут.
Ведь важна скорость языка,
И польза тредов высока.
Аноним 05/01/24 Птн 19:06:53 #353 №2990313 
>>2989468
> адекватных устоявшихся фреймворков до сих пор нет
Детектор неосилятора-пхпшника, все знают что ИДНЫЙ ФРЕЙМВОРК это не говей. А пыхари/питонисты жрут симфони/джанго и просят ЕЩЁ.
Аноним 05/01/24 Птн 19:08:39 #354 №2990317 
>>2990313
*ЕДИНЫЙ
Аноним 05/01/24 Птн 19:12:27 #355 №2990326 
>>2990306
>Товары разом все уйдут
>Как на страницу попадут.

Ну точно пыхоблядок же.
Товары все уйдут на Озоне.
А ты пойдёшь торговать пирожками на вокзале.
Аноним 05/01/24 Птн 19:18:33 #356 №2990336 
>>2990326
Так вы даже не магазины на гохе пишите, а бизнес круды которые одна бабасрака в день будет ворочить?
Аноним 05/01/24 Птн 19:21:14 #357 №2990343 
>>2990336
Ты заебал уже, на го пишут
М И К Р О С Е Р В И С Ы
И
К
Р
О
С
Е
Р
В
И
С
Ы

Сервис рекомендаций, сервис рейтинга, сервис матрасчётов
Где много данных и нужно быстрое время обработки
Ваши магазины ссаные уже все давно написаны на пэхапэ
Аноним 05/01/24 Птн 19:22:56 #358 №2990344 
>>2990343
Миркосервисы и на пыхе пишут
Аноним 05/01/24 Птн 19:24:38 #359 №2990346 
>>2990344
И на брейнфаке
Аноним 05/01/24 Птн 19:24:57 #360 №2990349 
>>2990300
И еще половина постов о том, что оп сравнивает тёплое с мягким, и ты всё равно высрал это сюда, черрипикнув какую-то бессмысленную хуету.
Аноним 05/01/24 Птн 19:41:17 #361 №2990375 
>>2990349
Про тёплое с мягким там пишут твои братья по разуму.
Остальные прекрасно поняли, о чём речь.

Фастапи в питоне делает то, что в Го уже встроено из коробки.
А остальное - как сделаешь, что тут, что там.
Поэтому, такое сравнение "фреймворк vs язык" более чем правомерно.
Аноним 05/01/24 Птн 20:13:08 #362 №2990407 
>>2990313
Пока ты с горе пополам сделаешь один проект, остальные сделают три
Аноним 05/01/24 Птн 20:17:54 #363 №2990415 
>>2990375
Нахуя ты сравниваешь тормознутый фреймворк на тормознутом интерпретируемом языке с стандартной библиотекой на компилируемом языке? Да даже если так, для таких дуболомов, как ты, там внизу написано про blacksheep и litestar (а про granian не написали), которые под капотом используют не тормознутый pydantic, а msgspec. Ой, а ещё можно заменить uvicorn на nginx unit или написать свою реализацию asgi-сервера. Да, это всё ещё будет медленнее такой же дефолтной веб-дрисни даже на fiber или gin по бенчмаркам, но про ботлнек сервиса, которым пользуется даже 200 тёть срак из твоего бэк-офиса, смешно слышать.
Аноним 05/01/24 Птн 20:21:20 #364 №2990419 
>>2990415
> тормознутый
Я не думаю что на подтираче есть люди которые держат сервер на 100к запросов/с
Аноним 05/01/24 Птн 20:26:24 #365 №2990423 
>>2990419
Зато есть умники, которые рассуждают не исходя из своего практического опыта и собственных замеров, а на основе тредов на реддите. И вправду ботлнек головного мозга.
Аноним 05/01/24 Птн 20:31:18 #366 №2990430 
>>2990407
Какие такие задачи за тебя решает фреймворк, которые уже не решены стандартной библиотекой go и golang.org/x/...?
Аноним 05/01/24 Птн 20:43:39 #367 №2990448 
Посмотрел тут книжку Облачный Go и что-то офигел от сложности. Это реально всё надо знать что ли? Или можно написать простой сайт на го и устраиваться на работу?
Аноним 05/01/24 Птн 20:52:51 #368 №2990467 
>>2990448
А что там сложного? Ты хотя бы на английском смотрел? Может дело в переводе.
Аноним 05/01/24 Птн 20:54:33 #369 №2990470 
>>2990467
Ну всякие дроссельные заслонки надо учить и потом прям сложные примеры он даёт. Я практически ничего не понял. Это блин реально надо быть на уровне сеньора, чтобы вкатиться в го. Новичку тут просто не освоить.
Аноним 05/01/24 Птн 20:57:46 #370 №2990474 
>>2990470
Так по Го десятки, если не сотни книг. Почему ты взял именно эту?
Аноним 05/01/24 Птн 20:58:14 #371 №2990475 
>>2990430
Проблема не в том что го решает или не решает.
Проблема в том как быстрее и удобнее вести разработку
Аноним 05/01/24 Птн 20:59:15 #372 №2990477 
>>2990474
Я хотел сразу оценить, что нужно знать по го в плане микросерсивом и офигел от сложности. Толку читать ещё одну книгу го для чайников, она не приблизит к трудоустройству.
Аноним 05/01/24 Птн 21:00:41 #373 №2990479 
>>2990477
Сколько месяцев пишешь на Го?
Аноним 05/01/24 Птн 21:01:15 #374 №2990481 
>>2989740
Разница в том что если твой софт запускать будешь не ты у себя локально, то чем проще запуск и чем меньше требований к окружению - тем лучше.
Статическая сборка бинарей из коробки - это очень мощный бонус go, наравне с электроном для js.
Контейнеры - это хороший способ доставить приложение из дева в прод, и очень хуёвый способ дистрибуции софта клиентам.

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

Если не стрессуешь с провалов, на собеседования можно ходить в любое время - только не ходи на вакансии мидла когда ты не уверен что даже джуна потянешь.
Аноним 05/01/24 Птн 21:01:39 #375 №2990482 
>>2990479
Где-то в сентябре начал учить
Аноним 05/01/24 Птн 21:03:46 #376 №2990483 
>>2990481
>не ходи на вакансии мидла
Я не в Москве живу, а за тысячу км от неё. Так что только удаленка, а туда требуют мидлов. На джуна 0 вакансий.
Аноним 05/01/24 Птн 21:04:42 #377 №2990485 
>>2990482
По каким материалам учил? Если по ютубу, то для начала реально простые книжки стоит почитать.
Аноним 05/01/24 Птн 21:09:42 #378 №2990486 
>>2990485
Я учил по книжке Адама Фримана. Первая часть вполне годная в плане изучения языка, до проекта реального веб-приложения. Я пытался разобраться в его веб-приложении, но там всё на рефлексии и она нужна просто для красоты, чтобы было похоже на ASP.NET.
Потом ещё нашёл в интернете статьи чувака по разработке более идеоматичные: https://golangify.com/go/web-app-go
Но он не до конца написал.
Пробовал читать Цукалоса, но он слишком коряво пишет. Одновременно пытается объяснить основы языка и какие-то сложные моменты. В итоге - каша.
Аноним 05/01/24 Птн 21:17:47 #379 №2990490 
>>2990448
У книжек от O'Reilly обычно в начале написано для кого они предназначены.

>This book is directed at intermediate-to-advanced developers, particularly web application engineers and DevOps specialists/site reliability engineers

Хороших книг по Go навалом, но они на английском. Хороши издательства O'Reilly, Manning, No Starch, иногда Packt и Apress, с этими двумя надо внимательнее быть.
Аноним 05/01/24 Птн 21:20:25 #380 №2990496 
>>2990490
И что мне теперь ещё английский учить? Я планировал в марте уже искать работу. Считай 2 месяца осталось на подготовку, а у меня - не у шубы рукав как говорится.
Аноним 05/01/24 Птн 21:25:06 #381 №2990505 
>>2990475
Ну что за абстрактный вопрос? Быстрее всего вести разработку в copilot в привычном для себя стеке.
У нас веб-приложения даже на плюсах пилят, потому что все инструменты для этого готовы и рядом в монорепе куча примеров (https://userver.tech), но если ты дома с нуля попробуешь, то сольёшь кучу времени в хэлло-ворлд.

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

>>2990483
Тогда могу только порекомендовать стажировку с проживанием и последующую релокацию, но это вариант для молодых и шутливых. На удалёнку все опасаются брать ждунов.

>>2990496
Английский в любом случае учить.
Аноним 05/01/24 Птн 21:29:23 #382 №2990517 
>>2990496
Его очень полезно знать. Тем более, для чтения не так уж сложно выучить. А так на русском тоже что-то есть, хотя и негусто. Head First Go, Донован и Керниган, Боднер, Харшани. Еще можешь какие-то курсы на рутрекере и nnmclub поискать.

Но вообще учи английский, если есть свободное время. Ты же как-то помимо работы/учебы/вката чиллишь, сериалы, игры, ютуб. Перейди на чисто англоязычный контент и за месяц уже будешь понимать более-менее. Алсо пройди A Tour of Go с гугл переводчиком хотя бы.
Аноним 05/01/24 Птн 21:33:32 #383 №2990527 
>>2990448
>Облачный Go
Лол, они перевели Cloud Native Go. Да ещё так быстро.
Оригинал - отличная книга, но, это ни разу не учебник по Го.

Перевод я не видел, но, хороших переводов комп. литературы вообще мало. а этот сделали очень быстро - оригинал издан в апреле 2021, а перевод - уже в сентябре. Хотя, ДМК, вроде, раньше делал норм. переводы, когда я ещё читал такие вещи на русском (лет 20 назад).

Но, вот эти вот "дроссельные заслонки" немного настораживают.
В оригинале, конечно же, было throttle. Кстати, как они там debounce перевели? Короче - не читайте до обеда советских газет, лол.

>>2990496
Но, если ты "ничего не понял" в книге, где рассказывают, что такое микросервисы, то что ты собрался делать на работе?
Я бы тебе посоветовал просто учить Го, и делать что-то по книжкам с пошаговыми примерами. Их есть на scanlibs.com (на английском). Причём, упор не на "микро" а прост на REST API. Переводить можно гуглом. А потом честно пытаться устроиться стажёром за еду. Это единственный реальный вариант.

А ещё лучше - то же самое, но на питоне. Ибо го - сложный язык + сама тема микросервсов/облаков тебе совершенно не знакома, как видим.
https://scanlibs.com/building-rest-apis-flask-services-mysql/
https://scanlibs.com/fastapi-modern-python-web-development/
https://scanlibs.com/building-python-microservices-fastapi/
https://scanlibs.com/python-microservices-development-2nd/
https://scanlibs.com/architecture-patterns-python-domain-driven-microservices/
Rob Pike - What We Got Right, What We Got Wrong Аноним 05/01/24 Птн 21:43:35 #384 №2990543 
https://www.youtube.com/watch?v=yE5Tpp2BSGw
https://news.ycombinator.com/item?id=38872362
Выступление великого Пайка и еще более интересный тред с обсуждением на хакерньюс.
Аноним 05/01/24 Птн 21:50:12 #385 №2990547 
>>2990527
Короче, посмотрел перевод - на сайте ДМК есть оглавление и несколько отрывков. Хуета. Переводчик - Киселёв, известный персонаж. Из тех, кто переводит паттерн как "шаблон". И изобретает свои термины, вместо устоявшихся англоязычных. С терминологией, в итоге - пиздос. Учите английский, дети.
Аноним 05/01/24 Птн 22:24:27 #386 №2990567 
>>2990543
О, спасибо за подгон!
Аноним 06/01/24 Суб 00:09:56 #387 №2990621 
>>2989729
это всё есть. на стейдже все проблемы не отловишь. и проберы в канари на всё не настроишь. простой пример - накосячил в логике с условием и запросы в новую зависимость не идут. или наоборот задублировались. по графикам легко будет заметить, а проберы на такую хуиту никто не настраивает. или если другой сервис может начать стрелять (а он может), то ты будешь проберы на соседние сервисы тоже себе завозить? да или еще проще пример - порог на пробере может не заметить проблему, даже если с EWMA/производными/бейзлайнами наизвращаешься. так что вообще-то да, поглядывать на метрики при деплое помогает.
Аноним 06/01/24 Суб 12:26:20 #388 №2990966 
>>2990527
>debounce
Антидребезг
Аноним 06/01/24 Суб 12:45:37 #389 №2990982 
>>2990527
Проблема тут очевидно в завышенных требованиях в вакансиях. Как человек вообще может этому обучиться, если он в глаза не видел этих ваших хайлоадов!? У меня вот на учебном проекте ни каких хайлоадов нет, там один пользователь - я.
Мне кажется го сам себя загоняет в тупик такими завышенными требованиями к программистам и быстро схлопнется. Уже сейчас наблюдается снижение его уровня популярности.
Аноним 06/01/24 Суб 13:06:54 #390 №2991004 
>>2990982
>завышенных требованиях
Да не завышены требования, они как раз такие, какие требуются, го это инструмент для хайлоада и ты идёшь работать на хайлоад с микросервисной арихтектурой, которая хуёво отлаживается, хуёво мониторится, хуёво деплоится и мутная со всех сторон, зато быстрая и хорошо масштабируется, возьмешь новичка на такую работу - он тебе заминирует весь проект так, что на этих минах будут подрываться другие разрабы, плохой код и плохие архитектурные решения придётся переписывать, а издержки на переписывание кода в такой системе просто колоссальные. Го это не язык для вката, это не язык для обучения программированию, это язык который решает узкую техническую проблему для уже развившихся и устоявшихся систем, требования к которой известны и жестко зафиксированы, не надо себе иллюзий строить что вот сейчас прочтешь книгу по микросервисам и начнешь писать распределенные системы не имея опыта работы с другими архитектурами и подходами, это так не работает. Откуда у вас вообще возникла идея в голове, что можно вот так с нихуя посмотрев видосики на ютубе вкатиться в хайлоад? Далеко не все программисты с опытом-то дорастают до таких вещей.
Аноним 06/01/24 Суб 13:17:20 #391 №2991008 
>>2990966
Хозяйке на заметку:
Чтобы ваш микросервис не дребезжал, и не искрил, надо поджать контакты реле.
Аноним 06/01/24 Суб 13:24:18 #392 №2991009 
>>2990982
Всё так, конечно.
Но, хайлоады можно и симулировать:
https://github.com/grafana/k6
https://justin.palpant.us/simulating-user-traffic-with-chrome-and-golang/
https://blog.postman.com/postman-api-performance-testing/
Аноним 06/01/24 Суб 13:24:56 #393 №2991010 
>>2991004
Конкретно на рынке рф большинство вакансий го это обычные круды.
>хайлоад
Чисто российский термин, нигде вне снг не используется
Аноним 06/01/24 Суб 13:29:45 #394 №2991011 
>>2991004
И что теперь делать? Учить пхп что ли?
Аноним 06/01/24 Суб 13:34:26 #395 №2991012 
>>2991004
>Откуда у вас вообще возникла идея в голове, что можно вот так с нихуя посмотрев видосики на ютубе вкатиться в хайлоад?
Мне на ютубе сказали: https://www.youtube.com/live/mzULEOFgc98?si=zvPl-GKhNvKqgLLm&t=6705
Аноним 06/01/24 Суб 13:50:05 #396 №2991030 
>>2991010
Обычные круды делаются обычным инструментом, предназначенным для клепания крудов, десятки их, очень простых и удобных, в популярных веб-фреймворках уже встроен генератор крудов.

>Чисто российский термин
Термин может и местный, но проблема, которую он характеризует, понятна любому специалисту.
Аноним 06/01/24 Суб 14:13:31 #397 №2991045 
>>2991030
У белых людей это называется high performance.
Потому, что не важно, насколько ты устал, важно, что ты в итоге сделал. А у нас - "здесь мерилом работы считают усталость".
Аноним 06/01/24 Суб 14:13:38 #398 №2991046 
Я правильно понимаю, что если проекты с пхп переводят на го, то пыха уже не нужна и нет смысла её учить?
Аноним 06/01/24 Суб 14:32:46 #399 №2991053 
>>2991045
Ты еблан? Хайлоад == high performance, это литералли одно и тоже. Плюс термин не российский а постсоветский
Аноним 06/01/24 Суб 14:56:21 #400 №2991066 
>>2991053
Сынок, еблан - это твой папа.
И посмотри в словаре, что значит слово literally.
Потом подумай.

Термин "high load" не отражает вообще ничего.
Большая нагрузка - и что?
Вот если тебе дать штангу 200 кг - это будет "хайлоад".
И под этим хайлоадом ты просто обосрёшься, и всё.
А вот хай перфоманс - это когда серьёзный перец подошёл, и эту штангу поднял.
Понимаешь разницу?
Аноним 06/01/24 Суб 15:17:27 #401 №2991079 
>>2991046
Пока что на го нет ничего уровня Ларавеля
Аноним 06/01/24 Суб 15:18:53 #402 №2991080 
>>2991012
Забавно, что бывшие пхпешники сильнее всего засирают пхп
Аноним 06/01/24 Суб 15:26:09 #403 №2991085 
>>2991004
>хуёво отлаживается, хуёво мониторится
Так бывает у дебилов, которые вместо саги срут ивентами в кафку, а потом с горящей жопой бегают по 100500 логам и пытаются понять, куда пропала транзакция ебаная. Микросервисы - это литерали про "наймем кучу дешевых мартышек и пусть они пердолятся".
Аноним 06/01/24 Суб 15:31:29 #404 №2991090 
>>2991012
Менторы из яндекса, лол.
Слушай больше, они тебе расскажут.

Клоун справа даже не понимает, что при разговоре демонстрирует полный набор маркеров лжеца, раз за разом. Зато, наверное, не прочь порассуждать про "софт-скилы". Ебаный стыд, короче.
Аноним 06/01/24 Суб 15:33:33 #405 №2991093 
>>2991079
А зачем?
Го - это анти-ларавель. И анти-пхп, если угодно.
И да, пыха никуда не денется в ближайшие лет триста. Го тут вообще не при делах.
Аноним 06/01/24 Суб 16:57:52 #406 №2991178 
>>2991066
Ой да иди нахуй душнила ебаный.
Аноним 06/01/24 Суб 17:37:09 #407 №2991213 
>>2991178
На хуй твоя Тулуп хороша мальчик.
Если ты тупой - сиди тихо и не отсвечивай.
Сойдёшь за умного.
Аноним 06/01/24 Суб 17:45:10 #408 №2991221 
>>2990343
>сервис рейтинга
Зачем для рейтинга делать отдельный сервис?
Аноним 06/01/24 Суб 17:49:59 #409 №2991228 
>>2991213
Какая разница как называть это говно вообще. Хайлоад, хуйлоад хай перформанс. Ваще насрать, это одна и та же проблема, а вместо того чтоб сосредоточиться над проблемой люди спорят как её правильно называть.
Филологи комнатные блядь
Аноним 06/01/24 Суб 17:55:29 #410 №2991233 
>>2991010
>на рынке рф большинство вакансий го это обычные круды
Двачую.
Голанг тащат в те места, где более чем достаточно связки python+flask+pydantic

>>2990505
>на работе всё равно придётся использовать локальный стэк
Ну это только в Я по большей части. Помню как работал там, такого говна поел, особенно по части деплоя в няню.
Аноним 06/01/24 Суб 17:55:33 #411 №2991234 
>>2991228
Это было сказано мимоходом, для лулзов, неужели не понятно?
Алсо, разница в названиях прекрасно иллюстрирует разницу менталитетов - понты и пафос против реальных результатов. Это как подросток vs взрослый.
Аноним 06/01/24 Суб 18:00:54 #412 №2991241 
>>2991221
Ну, ты бы просветился сначала, зачем их вообще отдельными делают. Т.е. зачем вообще микросервисы.
Сферическая идея в вакууме такова, что можно масштабироваться под нагрузкой, автоматически запуская параллельно нужное число контейнеров с отдельными инстансами сервиса. Каждый сервис делает свой маленький кусочек, но делает очень быстро и т.д. и т.п.

На самом деле, в 90% случаев это всё нахуй не нужно, и нормальный монолит будет в разы быстрее и дешевле.
Аноним 06/01/24 Суб 18:02:35 #413 №2991243 
>>2991066
Весело на утреннике тебе жить :) Сколько девушек за ручку держал?(кроме мамы, если она есть)

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

мимо - другой анон.
Аноним 06/01/24 Суб 18:09:59 #414 №2991255 
>>2990481
>Контейнеры - это хороший способ доставить приложение из дева в прод, и очень хуёвый способ дистрибуции софта клиентам.
У клиента должен быть браузер или аппка на мобилке, никакого другого софта ему дистрибутить не надо.
Аноним 06/01/24 Суб 18:11:27 #415 №2991259 
>>2990292
>Например, я недавно узнал, что генерация случайных чисел на го в несколько раз быстрее, чем на джаве
Ну ахует теперь!
Аноним 06/01/24 Суб 18:25:49 #416 №2991278 
>>2990621
>на стейдже все проблемы не отловишь. и проберы в канари на всё не настроишь
И что ты предлагаешь? После каждого релиза каждый разраб должен пыриться на прод метрики, логи, вручную тестировать свою фичу? Ты понимаешь, что такой подход абсолютно не продуктивен и подвержен ошибкам?
Аноним 06/01/24 Суб 18:34:26 #417 №2991284 
>>2991234
Хайлоад это состояние системы.
Хай перформанс - качество.
Причём тут менталитет вообще...
Аноним 06/01/24 Суб 19:07:47 #418 №2991332 
>>2991243
Мальчик, сосни-ка хуйца.
А когда проглотишь - попытайся научиться понимать прочитанное.
Можно несколько раз читать, если с первого не доходит.

>>2991284
Чувак, видишь ли, в чём проблема - термин high load - англоязычный. Но, англоязычная аудитория таким термином не пользуется в принципе. Вообще никогда, понимаешь? Там думают по-другому. Вопрос - зачем этот карго-культ? Почему не использовать русскоязычный термин? Если это не понты и пафос, то что это?
Аноним 06/01/24 Суб 19:10:07 #419 №2991338 
>>2991332
Скуфик - спок. на вопрос ответь сначала, а потом рыгай из себя желочь. Ты обязательно сможешь! Я в в тебя, обруганная тупая блядь.
Аноним 06/01/24 Суб 19:18:59 #420 №2991355 
>>2991338
Этот битард порвался, несите другого, лол.
Аноним 06/01/24 Суб 19:51:14 #421 №2991380 
>>2991332
Среди англоязычной аудитории программиостов 80% это китайцы с индусами.
Почему они пользуются английским?
Аноним 06/01/24 Суб 19:51:22 #422 №2991381 
>>2991332
>термин high load - англоязычный
>Если это не понты и пафос, то что это?
Не понты и не пафос, просто калька с конференции HighLoad++, на которой уже 20 лет ежегодно обсуждают проблемы высоких нагрузок, так что твои наезды к устоявшимся терминам в глазах опытных анонов выглядят как тупость залётного вкатунишки и никак иначе.
Аноним 06/01/24 Суб 19:56:25 #423 №2991389 
Книга с кабанчиком это про тот самый хайлоуд?
Аноним 06/01/24 Суб 19:59:55 #424 №2991391 
> вы не имеете права пользоваться английским
Аноним 06/01/24 Суб 20:51:22 #425 №2991422 
>>2991381
> в глазах опытных анонов выглядят
Дружок, я здесь не для того, чтобы соответствовать твоим ожиданиям.
Аноним 06/01/24 Суб 21:04:27 #426 №2991429 
По итогу вчерашних или позавчерашних обсуждений спрошу.

Если я в универе немного учил Питон и сейчас повторю основы, а потом возьмусь за бэкенд на Flask или FastAPI, то через пару месяцев практики норм будет взяться уже за Golang? Или лучше не ходить окольными путями?
Аноним 06/01/24 Суб 21:29:00 #427 №2991454 
>>2991429
Мне кажется - лучше ходить.
Можешь смотреть на это не как на "окольный путь", а как на создание прототипа.
Ты Го вообще знаешь? Можешь что-то написать?
Аноним 06/01/24 Суб 21:53:33 #428 №2991486 
>>2991454
>Ты Го вообще знаешь?
Нет, я сейчас прохожу A Tour of Go, потом хотел какие-то книги с упором на практику почитать. Не переписывать код, а так: пару часов читаю, потом пару часов делаю сам.

Из языков программирования знаю JS и Python. В универе изучал Python для работы с данными, еще на нем же немного изучал алгоритмы. JS когда-то знал неплохо, на React кое-что делал, но потом понял, что фронтенд не вариант для вката. Не только из-за конкуренции, но и в целом перспектив развития как разработчика.

Хочу какой-то оптимальный путь обучения выбрать, чтобы летом можно было по собесам начать ходить. Мне в целом импонирует идея знания многих языков программирования, если они применяются для схожих задач. Встречал, что многие себя так и идентифицируют "Python/Go разработчик" или вакансии так называются. Но вроде в Go повыше вероятность вката, чем в Python, так что вопрос в конвертации знаний, полученных на примере Flask/FastAPI, в Go.
Аноним 06/01/24 Суб 22:27:25 #429 №2991507 
>>2991486
Ну, если ты никогда не делал веб-сервисы, то питон - самый простой способ это начать.
Насчёт "конвертации" знаний - я думаю, так не совсем правильно говорить. Ты получишь знания о том, как вообще делаются веб-сервисы. Независимо от языка.

Насчёт книжек по Го - выше упоминалась Cloud Native Go (и её перевод).
Там всё не так сложно. Первая часть - просто введение в тему, совсем короткая. Во второй части дано введение в Го и рассмотрен пример простейшего сервиса, который пишет transaction log. В третьей - разговор про паттерны и про то, почему и зачем делают так или иначе. Третья часть может быть сложновата, т.к. без опыта может быть непонятно, зачем это всё.

Могу также посоветовать Distributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems (очень годная книга с хорошими отзывами на амазоне).
Там в течение всей книги делается несложный сервис распределённого лога, который по ходу дела обрастает разными фишками. Но, всё с самого начала делается на gRPC, а на на REST.
https://scanlibs.com/distributed-services-go-reliable/

Ещё могу сказать, что книги микросервисам и т.п. на Го содержат массу интересных подробностей, которых нет в книгах по этим же темам на джаве, например. Потому, что в Го принято делать всё без фреймворков (и делается это, в целом, несложно).
Аноним 07/01/24 Вск 01:40:17 #430 №2991588 
>>2991278
не, предлагаю обмазать весь проект проберами на каждый чих и обтекать с отваливающимися от колебаний воздуха деплоями. а чатик с алертами замютить чтобы постоянные флапы не мозолили глаза. или еще лучше идея - хуяк хуяк и в продакшн.
Аноним 07/01/24 Вск 02:26:43 #431 №2991592 
>>2991278
от разраба нужно не кода больше высрать, а фичи сделать и деньги не потерять. то, что деплой мониторит 1 (один) человек это не непродуктивно. и лучший человек для этого это сам разраб, который знает, что он релизит.
>После каждого релиза каждый разраб должен пыриться на прод метрики, логи, вручную тестировать свою фичу
тестить до релиза надо. после релиза - по ситуации. в зависимости от сложности/рисков выбирается как фичу тестить и мониторить.
юнит-тесты нужно писать однозначно.
малорисковые штуки уровня цвет кнопки/либу обновить - можно не следить и не тестить вручную.
что-то посложнее хорошо бы хеппи патх на стейдже протестить и деплой проконтролировать. это значит в идеале пару раз в графану заглянуть как канари себя ведет, даже если проберы не стреляют.
более рисковое уже в зависимости от масштабов - qa подключать/делать внутренний тест на компанию/пыриться в метрики и логи/добавлять проберы/дохуя всего
>подвержен ошибкам
нихуя не понял. мониторишь/не мониторишь, ошибки все равно будут. если мониторить, то есть шанс про них раньше узнать и меньше разбирать потом.
Аноним 07/01/24 Вск 03:31:03 #432 №2991609 
>>2991429
это тупо развитие кругозора. есть шанс, что поможет, но когда - тут не угадаешь.

предвижу, что в петоне будет много сахара, который скрывает то, что в го надо будет научиться писать самому. из фласка ты в итоге перенесешь тупа общие знания как писать бэкенд, а всё остальное будешь учить заново. да и даже общие знания о бэке это нихуя без работы с реальными системами. imo на петоне надо уметь писать, но учить лучше сразу гошку.
Аноним 07/01/24 Вск 03:33:52 #433 №2991614 
>>2991429
> пара месяцев практики
Этого даже на проект не хватит, нужен опыт.
Потому что на го очень неприятно делать рефакторинг. Чтоб за него браться, надо набить руку сразу делать проект на хорошем уровне. Для этого нужен опыт.

Поэтому на го не берут джунов. Они сами перегорают от сроков одного и того же проекта, так ещё и потом за него гавно чистить надо когда он свалит и поймёт что это не его.
Аноним 07/01/24 Вск 04:44:08 #434 №2991624 
>>2991241
Микросервисы это не архитектура, это стиль управления. Они нужны, чтобы нанимать хохлов из епама за тарелку мивины. Когда у тебя мусорный стартап и ты не можешь год искать синьоров, а хохлы вот они, за забором хрюкают. Опыта у них ноль, мозгов еще меньше, но их много, они дешевые и могут начать работать прям завтра. Разделение на микропенисы придумали, чтобы эти долбоебы не утонули в бесконечных мерджах пул реквестов и хоть как-то работали. К масштабируемости микропенисы никакого отношения не имеют, ведь тормозит не говнокод, а база, которую хуй отмасштабируешь. Можно до усрачки поднимать контейнеры, но когда они все ходят в одну базу, будет пиздец с блокировками, это классика, это знать надо.
Аноним 07/01/24 Вск 05:56:39 #435 №2991633 
>>2991624
Это паста или что?
Аноним 07/01/24 Вск 06:16:31 #436 №2991635 
FPRLZP1XIBAtN5I.jpeg
>>2991241
>>2991633
>Сферическая идея в вакууме такова, что можно масштабироваться под нагрузкой
Микросервисы решают задачу менеджмента а не масштабирования. Чтобы компанию можно было поделить на группки и дать каждой группе по одному микросервису. И они могли независимо от других разрабатывать, тестировать, деплоить.

Это удобно, если у тебя 100 программистов, ты можешь сделать 10-20 микросервисов. Микросервис приёма заказов например. Над ним может работать менеджер по продажам, два программиста и дизайнер.

Монолиты прекрасно масштабируются. С помощью кеширования + лоад балансинга.
Микросервисы можно более ТОНКО отмасштабировать. То есть дать какому-то сервису чуть больше ресурсов, другому чуть меньше.
Но общей сути это не меняет.

мимо
Аноним 07/01/24 Вск 06:41:48 #437 №2991638 
>>2991635
>Это удобно, если у тебя 100 программистов, ты можешь сделать 10-20 микросервисов. Микросервис приёма заказов например. Над ним может работать менеджер по продажам, два программиста и дизайнер.

И кто мешает делать то же самое с модульным монолитом?
Возможно, несколько усложнится деплоймент, и то не факт.
Аноним 07/01/24 Вск 06:45:19 #438 №2991640 
>>2991638
При том факте, что на микросервисных проектах модно делать монорепы. Это сильно "помогает" разгрузить мержи реквестов...
Аноним 07/01/24 Вск 06:51:20 #439 №2991642 
>>2991640
А потом версионный ад начинается, когда всё по репам разбито.
Аноним 07/01/24 Вск 07:26:06 #440 №2991648 
>>2991638
Ничего! Но монолит как ты его не модуляризируй как не выноси в плагины, остаётся монолитом. Какая хуй разница, ну окей, у тебя есть интернет-магазин. Ты его написал на java/c#/go/rust. Вынес checkout, cart, заказы в отдельную библиотеку. Этот проект всё равно будет компилироваться полдня, от того что ты вынес в библиотеки, это особой погоды не сделало. Посмотри сколько условный файрфокс компилируется. Потом ещё полдня будет тестироваться. Ну и плюс, это всё сидит в монорепе.

Я не привязан к одному языку программирования в микросервисах. Захотел в одном месте питон использую, в другом go, в третьем rust. У меня только один сервис на которым я работаю. Он быстро компилится, быстро тестируется и быстро деплоится.

Чаще всего под модульным монолитом имеют ввиду 3-х слойную архитектуру. Ну типа фронтэнд, бекенд, данные. Но это не совсем то. Что скажем маленькая команда программист + дизайнер + менеджер по продажам, работающая над микросервисом.
Аноним 07/01/24 Вск 07:50:02 #441 №2991650 
>>2991638
Из твоих 100 программистов 95 - это вкатунцы после курсов, синьоры уровня епам и мастера софт-скиллов 80 уровня. То есть, стадо долбоебов. Когда они все начинают комитить в одну репу, наступает хаос. Уволить этих мартышек тоже нельзя, ведь когда ты начальник 5 человек - ты тимлид Вася, а когда 100 - ты руководитель направления разработки Василий Петрович, понимаешь ли. Поэтому мартышек делят на команды по 5-10 голов и там они кидаются джейсоном в кафку, а толковых ребят выделяют в отдельную команду инфраструктуры и кластер крутится, код мутится. Потом падает какой-то из 500 микросервисов и вся система встает раком. Архитектура жи есть.
Аноним 07/01/24 Вск 07:50:58 #442 №2991651 
>>2991648
>Чаще всего под модульным монолитом имеют ввиду 3-х слойную архитектуру. Ну типа фронтэнд, бекенд, данные.
Нет.
Ты описал горизонтальные слои.
А модули - вертикальные блоки.
В каждом модуле - свои три слоя.
То же самое, что микросервисы, но, связь не по сети, а средствами языка - просто вызовами функций или очередь сообщений и т.п.
Аноним 07/01/24 Вск 07:54:40 #443 №2991652 
>>2991648
>Что скажем маленькая команда программист + дизайнер + менеджер по продажам, работающая над микросервисом.
И я тебе даже больше скажу - вот это вот, что ты описал - это модуль, а не микросервис. Возможно - реализованный через Тулуп, но модуль. Потому, что в микросервисе дизайнер не нужен.
Вообще, завязывай учить, и начинай учиться.
https://blogs.newardassociates.com/blog/2023/you-want-modules-not-microservices.html
Аноним 07/01/24 Вск 08:09:30 #444 №2991654 
>>2991652
>читать высеры от инфоциган
Ты лучше посмотри на ютубе выступления с конференций хайлоад, где люди делятся реальными кейсами, а не влажными фантазиями. Сначала микросервисы, теперь модули, завтра очередной джон хуй высрет очередной фанфик про разработку и все будут обсуждать какие-нибудь юниты, блять.
Аноним 07/01/24 Вск 13:38:00 #445 №2991910 
>>2972146 (OP)
Ищу работу на Гошке.
Связался с компанией, они пилят мобильные игори на айос, при этом у них бек на го.
Никогда не имел дело с такой специфической штукой как мультиплеер игори. Расскажите вообще че это. Как я понял, это дохуя сокетов, которые получают какие-то изменения мира и возвращают актуальное состояние карты/персонажа/мира/прочей фигни.
Аноним 07/01/24 Вск 14:05:12 #446 №2991960 
>>2990543
>Выступление великого Пайка
Хуета. Все got wrong ограничивается в документации было мало примеров, с комьюнити неправильно работали, int надо было сделать безразмерным, syslog плохо написан. На критику Го как языка он никак не ответил.
Аноним 07/01/24 Вск 14:12:25 #447 №2991974 
>>2990543
Ого какой там в треде жесткий блэкпилл и дизмораль в сторону гошки
Аноним 07/01/24 Вск 14:49:51 #448 №2992040 
>>2991638
ну представим что все микросервисы стали модулями. каждый модуль может общаться с другими модулями только по API, который валидируется и всегда валиден, как сейчас. и все модули в отдельных репах, как сейчас. и каждый модуль может ходить только в личную БД, как сейчас. и, конечно, вся сборка монолита абстрагирована от разработчиков - пайплайн пуллит модули и собирает монолит.

что ты получил? усложнение сборки монолита, невозможность поскейлить отдельные модули - можно скейлить только монолит целиком.
и непонятные деплои - у тебя очередь из деплоев на каждый апдейт одного модуля или можно катить правки в N модулях одновременно?
как делать канари деплои? роутинг на уровне кода разруливать и держать старый код рядом? хотя ладно, окей, теоретически можно роутить на разные версии модулей одновременно из кода монолита и в пайплайне пуллить пару последних тегов. это конечно еще доп. сложность для сборки.
но вот ещё некоторые модули делают довольно долгие запросы к своей БД, им норм 5 секунд ждать инфу, бизнес-требования расслабленные. уверен, что у тебя ФД не кончатся?

а если пролезла паника/сегфолт (а некоторые фичи могут быть завязаны на CGO)? у тебя падает сразу абсолютно всё, ок?
Аноним 07/01/24 Вск 15:36:20 #449 №2992082 
>>2992040
>тебя падает сразу абсолютно всё, ок?
Система останавливается целиком, абсолютно благоприятный сценарий в отличии от микросервсиов, где всё пошло в разнос и при этом продолжает функционировать непредсказуемым образом.
Аноним 07/01/24 Вск 16:34:07 #450 №2992166 
Почему-то люди думают, раз кому-то микросервисы помогли, значит они и всем помогут. При этом не вдаваясь в подробности и кейс проблемы.

Почему все забыли про сервисную архитектуру? Либо монолит, либо микро. Будто ничего другого нетю
Аноним 07/01/24 Вск 16:43:12 #451 №2992181 
>>2992166
Идея микросервисов хорошо ложится на кубер хуюбер+ если большая компания и много команд, каждая может на своем текущем стеке пилить, а не переучиваться.
Аноним 07/01/24 Вск 17:05:15 #452 №2992212 
>>2991588
>>2991592
Я тебя понял. Го очень подходит для говнокодеров, потому что они не могут в тестирование, а деплоймент происходит быстро и можно быстро сломать проверить на проде.
Аноним 07/01/24 Вск 17:14:47 #453 №2992225 
>>2992040
Я имел в виду джаву. Надо было уточнить.
На Го такого опыта у меня нет, я написал всего пару cli-утилит, хотя и достаточно сложных.
И, я думаю, что в случае Го такой подход не очень подходит, просто потому, что это нативный код в одном толстом бинарнике. И делать .so тоже не вариант, как мне кажется.
Более того - при таком подходе Го становится просто не нужен, скорее всего.
Аноним 07/01/24 Вск 17:16:57 #454 №2992229 
>>2992181
Без микросервисов кубер просто не нужен.
Вообще, очень надеюсь, что когда-нибудь все уже поумнеют, и сольют всё это раздутое говно в унитаз.
Потому, что заменить один bloat другим - это так себе прогресс.
Аноним 07/01/24 Вск 17:32:30 #455 №2992250 
Микросервисы это, что называется: рыночек порешал. Для кабана топ тема.
Аноним 07/01/24 Вск 17:35:43 #456 №2992261 
>>2992082
>Система останавливается целиком, абсолютно благоприятный сценарий
нихуя не благоприятный, когда у тебя весь сайт тупо сдох. это сразу потери в деньгах и новости в СМИ.
вот у нас есть несколько источников дохода. если один отваливается, то продолжает работать.
с большой вероятностью отваливается сценарий, который пока меньше дохода приносит - он новый и не такой стабильный ещё. но если он будет класть весь сайт, то это хуевая архитектура. непредсказуемое поведение это тоже хуевая архитектура, но его легко избежать тупо правильными практиками и грейсфул деградейшном.
Аноним 07/01/24 Вск 17:38:00 #457 №2992263 
>>2992261
Платить клиентам компенсации на потерянную транзакцию типа ок?
Аноним 07/01/24 Вск 17:38:55 #458 №2992267 
>>2992250
Я уже писал тут - это инфоцыганский развод заказчика на бабки.
Реально пилят на микросервисах то, что в других местах прекрасно работало и работает на java EE. Работает в разы лучше, чем весь этот ёбаный хаос. Дебилы, блять. Воистину - время дураков.
Аноним 07/01/24 Вск 17:40:44 #459 №2992269 
>>2992261
Ты правда не понимаешь, что то, что ты описываешь (и вот здесь >>2992040 тоже) - это просто хаос? Нерабочая хуйня? Процесс ради процесса?
Аноним 07/01/24 Вск 17:48:39 #460 №2992282 
>>2992263
если прошла оплата, то деньги для начала просто захолдированы и их можно бесплатно вернуть.
чтобы они не списались, если нихуя в реальности не произошло, то надо просто нормально делать и нормально будет. пусть даже падает весь биллинг, но не сам сайт.
есть редкие кейсы когда всё пиздец неудачно - в них платить компенсацию норм.
а падение отдельных сервисов не должно к этим кейсам приводить.
Аноним 07/01/24 Вск 17:50:12 #461 №2992284 
>>2992269
я готов послушать. объясни
Аноним 07/01/24 Вск 18:22:54 #462 №2992330 
>>2992082
>Система останавливается целиком, абсолютно благоприятный сценарий
И не поднимается назад пока не починят модуль. Абсолютно хуёвый сценарий для бизнеса с задекларованным SLA. И теперь девопс должен уметь не только разбираться как что-то поднять и замониторить, но и как правильно отключать модули приложения руками в проде чтобы приложение не крешилось сразу после старта.

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

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

>>2991638
Охуеть как усложнится CI твоего монолита. Задача решаемая, но обычно ты не в гугле и разрабатываешь не хром, обычно вся история заканчивается тем что перед очередными празниками из-за изменений в куче сервисов сборка ломается в нескольких местах, и её не могут починить неделю.
Аноним 07/01/24 Вск 18:31:35 #463 №2992352 
>>2992330
>компенсировать, откатывать транзакции и проводить сверку транзакций ты тоже должен уметь
У нас сделали биллинг монолитом, чтобы не ебаться с транзакциями.
Аноним 07/01/24 Вск 18:39:57 #464 №2992366 
>>2992330
>И не поднимается назад пока не починят модуль.
Поднимается в последнее стабильное состояние, еще 10 лет назад деплой автоматом всё это делал, программа падает и всё встаёт на уши сразу же, а разбор полётов и ремонт уже в дев-среде, за чашечкой кофе, другое дело когда ты задеплоил, потом у тебя через час выстрелил алерт, за этот час система гоняла транзакии по сломанному пайплайну и тебе приходится подключать бухгалтерию чтобы всё это разгрести.
Аноним 07/01/24 Вск 18:40:47 #465 №2992368 
>>2992284
Я обычно объясняю такие вещи за $100 в час, для друзей - за 50.
Аноним 07/01/24 Вск 18:52:46 #466 №2992389 
Микросервисы - охуенная технология.
Правда, транзакций нет. И работает через Тулуп. Зато прогрессивно.
И люди постоянно заняты.

Ебанаты слили в унитаз все наработки последних лет 50 примерно.
И теперь делают велосипеды с квадратными колёсами из говна и палок.
Из каких-то маргинальных кейсов сделали систему. С которой кормятся тысячи паразитов. Пидарасы, просто слов нет.
Аноним 07/01/24 Вск 19:06:47 #467 №2992414 
>>2992366
разбор полетов за чашечкой кофе когда заблочены деплои для всей компании ))
Аноним 07/01/24 Вск 19:12:57 #468 №2992425 
>>2992352
вы там сбербанк и тиньк в монолит поглотили? уважаю если так
Аноним 07/01/24 Вск 19:13:32 #469 №2992426 
>>2992389
Ещё один долбаёб порвался. Отношение к монолита/микросервисам отлично даёт представление о человеке. Яростно против микросервисов топят или вкатуны после курсов где их такому не научили, или сорокалетние сисядмины с атрофированным мозгом. Столь же яростно против монолитов топят уже-не-вкатуны которые успешно вкатились на работку, и сидят пердят над микросервисами, никогда грамотных монолитов не нюхали. А разгадка как всегда где-то посередине, здоровый человек понимает что это просто инструменты со своими применениями
Аноним 07/01/24 Вск 19:15:46 #470 №2992429 
>>2992426
Ну вот как быть с транзакциями, расскажешь мне, джуну?
У нас на работе именно из-за них не хотят монолит распиливать. Распределенные транзакции с сагами или двухфазным коммитом очень Весело на утреннике в рабочем состоянии поддерживать.
А без транзакций нам никак - нужно чтобы бд всегда консистентной была.
Аноним 07/01/24 Вск 19:19:37 #471 №2992440 
>>2992429
не может у вас БД быть консистентной с банком блять, ну принципиально
Аноним 07/01/24 Вск 19:21:31 #472 №2992443 
>>2991507
>Ну, если ты никогда не делал веб-сервисы, то питон - самый простой способ это начать.
Нет, не делал. Поэтому подумываю попробовать в уже знакомом Python.

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

За книги спасибо, я сейчас скачал довольно много литературы по Go, почти все из изданного в 2020-2023 на английском. По содержанию надо посмотреть и выстроить оптимальный порядок чтения.

В network programming бэкендеру стоит вкатываться или только первые главы с теорией посмотреть? Нашел книжку Network Programmability and Automation, что-то она мне понравилась по содержанию, там и Python, и Go, и Linux, и много чего еще затрагивается.
Аноним 07/01/24 Вск 19:23:49 #473 №2992448 
>>2992429
Он бы рассказал тебе, если бы знал.
Судя по тому, что он тут выдаёт - ему такими вещами лучше вообще не заниматься. И без него хватает специалистов в тулупах, ололо.
Аноним 07/01/24 Вск 19:25:21 #474 №2992449 
>>2992429
Мышление надо менять. Вам не база нужна, а данные из нее. И не все, а если хорошо подумать, милипиздрическая часть, которая к бизнесу относится. Если заменить подход с тотального контпроля над целосностью на ивент дривен, то окажется что транзакции и нахуй не нужны не распределенные, ни какие другие. Если нужна статистика, то она точно также собирается в процесс обработки ивентов, а не анализом портянок скл выхлопа.

это типа троллинг
Аноним 07/01/24 Вск 19:25:59 #475 №2992451 
>>2991609
>из фласка ты в итоге перенесешь тупа общие знания как писать бэкенд
У меня нет опыта в бэкенде. Так что общие знания не помешали бы.

>imo на петоне надо уметь писать, но учить лучше сразу гошку
Просто Python уже немного знаю. Читал еще такое мнение, что Go обманчиво простой язык, легко разобраться в синтаксисе и запускать какие-то программы, но язык предназначен для решения сложных задач, а для этого нужно много знаний не самого Go, а вообще про разработку и особенно бэкенд-разработку.
Аноним 07/01/24 Вск 19:27:16 #476 №2992454 
>>2992443
Вот тут (>>2990543) ссылка на обсуждение выступления Роба Пайка.
И в этом обсуждении, помимо прочего, разные люди пишут, что Го - это как раз таки замена Питону в бэкенде. Оттуда, типа, в основном и перекатываются, когда нужна производительность и типизация.
Аноним 07/01/24 Вск 19:30:04 #477 №2992458 
>>2992451
Да, Го - обманчиво простой язык.

>нужно много знаний не самого Go
Нет. нет, именно самого Го.
Там подводный камень на камне, буквально. Особенно после пыхи, питона или жс. Да и вообще.
Аноним 07/01/24 Вск 19:34:42 #478 №2992462 
>>2992352
Поздравляю, но вам в любом случае надо уметь проводить платежи и ты вряд ли лезешь напрямую в АБС банка, а значит тебе надо уметь отслеживать статусы платежей до их полного проведения и уметь перепрогнать платёжку с некоторых состояний.

Проверь, не пиздят ли там случаем?

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

Смотри - у нас законодательство корректируется примерно 1-2 раза в год, в том числе с измнением форматов передачи данных и сроков их передачи.
Поэтому в своём биллинге вы должны были заранее заложить что откат на последнее стабильное состояние тупо невозможен, т.к. это состояние уже нахуй никому не сдалось. А также что на исправление проблемы у вас обычно есть около 4 рабочих дней.
И чем больше у тебя монолит, так больше модулей которые нет смысла откатывать, потому что внешняя система с которыми модуль работает же не сможет работать со старым модулем.

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

>>2992389
Во первых, примерно 30 из этих 50 лет индустрия решала задачи под мейнфреймы и на языках которые ты не слышал. Плавали, знаем. Во вторых, не слили, а проанализировали и поняли что эти наработки решали задачи 50/20/10-летней давности, а современные задачи они или решали плохо, или меняли их на груз своих проблем. А вот последние 10 лет индустрия как раз изобретает микросы и учится управлять получившимся флотом, что тоже нетривиальная задача.

> Правда, транзакций нет
Также как в монолитах - или у тебя используются двуфазные коммиты, или в любом случае решаешь проблемы на стыке трёх разных систем различными статус-сообщениями.
Аноним 07/01/24 Вск 19:35:28 #479 №2992464 
06e7c4f1705fc92759ca4373c3c364fc-g.jpg
>>2991614
Я правильно тебя понял, что надо делать Python-проект на хорошем уровне с рефакторингом и всем остальным, как полагается, тогда в Go будет легче? А сколько после такого займет перейти на Go, если, допустим, полгода на Python что-то делал?

Тут анон пикрил советовал, например. Опыт проработки таких книг облегчит разработку на Go?

Сейчас смотрел книги и не понял, почему актуальное издание Refactoring от Мартина Фаулера с примерами на JS... JS норм язык, но почему именно он.
Аноним 07/01/24 Вск 19:35:55 #480 №2992466 
>>2992440
Причем тут вообще банк?

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

Нужно сделать так, чтобы у юзера ни одной лишней копейки не исчезло, да и чтобы мы ни одной копейки не проебали по глупости. И вот сеньки наши говорят, что с микросервисами мы жидко пукнем с транзакциями в базе. У нас на целостность данных дрочат очень сильно, вплоть до того, что даже асинхронные действия (которые у нас через task queue сделаны) выполняются в той же транзакции, в которой мы условную фьючу этого действия создали. Для большей простоты - вот хотим мы обновить бабло на счету у юзера (предположим, что это тяжелая операция, которую нужно в асинхроне делать) - каждый раз для этого стартует асинхронная операция, которая ставится в очередь, и которую когда-нибудь воркер подхватит и выполнит. И вот когда мы эту операцию начинаем выполнять, то сразу же создаем транзакцию, в которой через хуй пойми сколько времени начнет сама бизнес-логика работать. Так мы в целом гаранитируем, что ничего не должно разъебаться между началом транзакции и ее окончанием после того, как таска в очереди отработает. Как такое с микросервисами и разными БД сделать я пока не очень понимаю.
Аноним 07/01/24 Вск 19:39:52 #481 №2992473 
>>2992451
ну я как раз к тому, что эти самые знания про разработку и бэкенд-разработку для сложных задач из круда на петоне ты не подцепишь, максимум основы. от круда на го ты хотя бы можешь в гошке поразбираться помимо основ.
не то, чтобы петон знать бесполезно, просто гарантированной ценности от дальнейшего изучения я бы не ждал.
Аноним 07/01/24 Вск 19:41:02 #482 №2992475 
>>2992454
Спасибо, посмотрю, почитаю. Если так пишут, то логично выглядит идея поделать бэкенд на Python и перейти на Go.
Аноним 07/01/24 Вск 19:42:22 #483 №2992477 
>>2992462
>Поздравляю, но вам в любом случае надо уметь проводить платежи и ты вряд ли лезешь напрямую в АБС банка, а значит тебе надо уметь отслеживать статусы платежей до их полного проведения и уметь перепрогнать платёжку с некоторых состояний

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

Вообще было бы интересно почитать статьи на тему того, как платежи должны быть сделаны, какие стейты должны быть, должна ли это вообще стейтмашина быть или что-то другое, итд... У нас они на похуй+отъебись делались несколько лет назад каким-то джуном, который уже уволился давно.
Аноним 07/01/24 Вск 19:44:10 #484 №2992481 
>>2992458
>Там подводный камень на камне
Это же в книгах нормально освещается? В Learning Go или Learn Concurrent Programming with Go, например.
Аноним 07/01/24 Вск 19:51:33 #485 №2992490 
>>2992473
Мне еще кажется полезной насмотренность в плане технологий, например, на собесах спрашивают, с какими технологиями работал и ты можешь рассказать про опыт работы с питоновскими фреймворками и пояснить, чем в конкретных случаях Go лучше и оптимальнее.

В целом опыт написания одного и того же с нуля на двух разных языках кажется не лишним.
Аноним 07/01/24 Вск 19:52:31 #486 №2992493 
>>2992462
>работать в контролируемо-сдеградировавшем состоянии и как писать сервис так чтобы состояние деградировалось контролируемо - вопрос для ваших архитекторов с бизнесами
В то время как монолит просто делает роллбек в стабильное состояние, у вас консилиум архитекторов разруливает деградацию системы, вот это го-вей, создать себе проблем и потом героически их решать.
Аноним 07/01/24 Вск 19:58:57 #487 №2992514 
>>2992466
>И вот когда мы эту операцию начинаем выполнять, то сразу же создаем транзакцию, в которой через хуй пойми сколько времени начнет сама бизнес-логика работать. Так мы в целом гаранитируем, что ничего не должно разъебаться между началом транзакции и ее окончанием после того, как таска в очереди отработает. Как такое с микросервисами и разными БД сделать я пока не очень понимаю.
да примерно так и работает. создаете в БД запись со статусом pending или вроде того. если банк ответил ОК, ставите джобу на обновление баланса кошелька и переводите в статус успеха. если не отработало/прошло больше N времени, то пишете что фейл. всё с ретраями. если ретраев не хватит, то по обращениям в саппорт фиксите отдельные кейсы.
Аноним 07/01/24 Вск 20:04:43 #488 №2992532 
>>2992481
Про такое лучше интернеты читать.
Гуглишь что-то типа go gotchas
Есть такой сайт "50 оттенков Go", лол.
Про садо и про мазо: http://golang50shad.es/

Есть ещё книжка 100 Go Mistakes:
http://golang50shad.es/
Аноним 07/01/24 Вск 20:06:29 #489 №2992536 
Я смотрю, к нам какой-то известный архитектор на гастроли приехал.
Вспомнился анекдот: теоретически у нас 3 миллиона доллларов, а фактически - две шлюхи и старый педик.
Аноним 07/01/24 Вск 20:24:12 #490 №2992569 
>>2992532
100 Go Mistakes:
https://scanlibs.com/go-mistakes-how-avoid-them/

50 оттенков на русском (старое, не обновлялось):
https://habr.com/en/companies/vk/articles/314804/
Аноним 07/01/24 Вск 23:09:56 #491 №2992778 
>>2992466
>Как такое с микросервисами и разными БД сделать я пока не очень понимаю.
Никак.
Такие вопросы обычно стыдливо обходятся микросервисными пропагандистами. Или идёт словоблудие и подмена понятий.
Или - есть ещё и такой вариант - всё будет, но очень-очень-очень медленно. И тогда становится непонятно - а нахуя вообще такое счастье?
Аноним 07/01/24 Вск 23:14:44 #492 №2992779 
кабанчик.jpg
>>2992466
Добавлю ещё, что для этого полезно почитать книжку с кабанчиком.
Она вот как раз именно про это.
Но, это совсем не лёгкое чтение.
Аноним 07/01/24 Вск 23:25:27 #493 №2992783 
>>2992429
Как делать распределенные транзакции придумали еще в Древнем Шумере за хуй знает сколько лет до нашей эры. Суть такова: резервирование. Когда тебе надо перекинуть деньги от Васи к Пете, которые находятся на разных серверах в разных базах, ты сначала делаешь Зарезервировать - уменьшить сумму в основной таблице и записать ее во вспомогательную таблицу, все в одной асид транзакции. У Пети делаешь так же - приход денег пишешь не в основную таблицу, а во вспомогательную. Потом, если все ок, делаешь Подтвердить и данные переносятся из вспомогательной таблицы в главную для Пети, а у Васи данные удаляются. Если ошибка - делаешь Отменить, реализация очевидна.
Аноним 07/01/24 Вск 23:28:42 #494 №2992787 
>>2992429
Так а зачем микросервисы вам если все так критично? Ты ножом есть пытаешься >>2992448
Это предположительно сорокалетний сисядмин пожаловал
Аноним 07/01/24 Вск 23:32:17 #495 №2992789 
>>2992493
Нет, дурачок, в это время падающие микросервисы роллбекаются в стабильное состояние а не весь проект
Аноним 07/01/24 Вск 23:36:58 #496 №2992792 
>>2992787
>сорокалетний сисядмин
Оба раза мимо, лол.

>>2992783
>придумали еще в Древнем Шумере
Вот на этих ваших микросервисах оно примерно как в древнем Шумере и работает. Так же быстро и так же надёжно.
Аноним 07/01/24 Вск 23:43:04 #497 №2992793 
>>2992514
Это называется сага.
Аноним 07/01/24 Вск 23:45:04 #498 №2992795 
>>2992792
>Вот на этих ваших микросервисах оно примерно как в древнем Шумере и работает. Так же быстро и так же надёжно.
CAP теорема жи есть. Или быстро, или надежно, или работает только на локалхосте.
Аноним 08/01/24 Пнд 00:09:38 #499 №2992815 
Да никто не говорит что микросервисы плохо.
Просто есть моменты когда их целесообразно использовать, а когда нет. Если у клиента сельский интернет магазин, то нет смысла ему такое делать. А проектировать типа " с заделом на будущее" это плохая затея потому что хер знает когда это будущее наступит и наступит ли вообще.
Аноним 08/01/24 Пнд 00:25:51 #500 №2992830 
>>2992815
>А проектировать типа " с заделом на будущее"
Это сразу два мема - преждевременная оптимизация (корень всех зол) и YAGNI.

Вообще, здравая рекомендация в таких случаях - пилить модульный монолит, который потом безболезненно делится на микросервисы, если это когда-то понадобится.
Но, это таки тоже преждевременная оптимизация. Т.к. модульный монолит сильно дороже обычного. Поэтому самая здравая рекомендация - minimum viable product. А там видно будет.
Аноним 08/01/24 Пнд 06:28:42 #501 №2992962 
>>2992815
Микропенисы - это очень плохо, и в жизни, и в архитектуре. Для создания масштабируемой надежной архитектуры достаточно монолита с шардированием (call-based architecture) и не надо поднимать кластер кафки. Но тогда не получится разводить заказчика на бабло и чарджить деньги за облака, поэтому проплаченые хуесосы кукарекают за микросервисы снова и снова. Вкатунцы без опыта и без образования думают, что раз у дядьки борода и раскрученый канал, то дядька дохуя эксперт, а он всего лишь виртуальная шлюха и работает ртом в интернетах за деньги.
Аноним 08/01/24 Пнд 07:06:31 #502 №2992968 
>>2992962
Я хоть и не люблю кубер, но масштабируемость и устойчивость это говно может обеспечить. Ценой ебических накладных расходов.

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

Только нихуя не пойму, с каких пор Go и "микро" употребляются вместе? Это когда ваша Goвнопрограмма статически линкуется с миллиардом библиотек и весит больше, чем весь объём жесткооо диска в 1993 году - это "микро"? Да идитн нахуй с такими "микро".

И самое смешное что эта многлмегабайтная програама АКА "микросервис" при ппреносе с одного линукса на другой не сттартует по причине разнвх версий либы для системных вызовов.

ПИ-ДА-РА-СЫ, нахуя вы налепили стольао говна в исполняемом файле, если он непереносим между разными версиями линуксов? Такой хуйни не помню со статически сл нкованными Си программами, которые весят в десятки раз меньше.

Бля, системные вызовы ядра Линукс не менялись со времён до появления Go. Какую хуя гниды не сумели встроить в Гошные либы прямые вызовы к ядру?

А ответ прост - они хуесосы. Вот и весь сказ.
Оэуенная задумка, кривейшая реализацию.
Аноним 08/01/24 Пнд 07:09:00 #503 №2992970 
>>2992962
>call-based architecture
Может быть cell-based?
Но, это же такой же облачный микросервисный понос, насколько я понял после беглого гуглинга? Баззворды заебали уже
Аноним 08/01/24 Пнд 07:14:51 #504 №2992972 
>>2992968
Лол, только сегодня проверил - набор скриптов на питоне + сам питон, упакованные в 1 экзешник, весят меньше, чем программа на го, которая делает примерно то же самое.
Аноним 08/01/24 Пнд 07:34:20 #505 №2992973 
image.png
>>2992815
Был такой случай — нашел типа подработку через телегу, чел русский, заказчик из Израиля. Платит в крипте. Делает типа свойстартап: SaaS букинг сервис. Этот русский чел ему делал год или больше сервис, причем работал один, и заказчик тоже один, то есть сам себе и менеджер и хуенеджер, причём с коммуникациями у него не очень было, только письменный ынглиш среднего уровня.
Говорят, осталось только платёжный шлюз сделать отдельным микросервисом. Захожу на проект — а он ему там нахуярил микросервисов ДЕСЯТЬ (пикрил), типа на каждый пук отдельный сервис, отдельный контейнер с ларкой, лол. Ну у меня на тот момент заказов было много, я не стал сильно погружаться, залутал немного бабок с него и на хуй послал.
Наверное, до сих пор доделывает свой стартап, лул.
Аноним 08/01/24 Пнд 07:48:25 #506 №2992977 
>>2992973
На картинке не 10, а почти 20.
Некоторые названия выглядят довольно смешно для микросервисов.
Заказчик - дурак.
Исполнитель - жулик (либо тоже дурак, не знаю).
А ты что там делал?
Аноним 08/01/24 Пнд 07:51:09 #507 №2992979 
>>2992970
Да, cell-based. По русски соты, но по словам "сотовая архитектура" выдает всякое про gsm сеть.
Это не микросервисы, это классический монолит, но с ограниченным количеством юзеров. Логика простая: если наш сервер держит лям юзеров, а два ляма нет, то поставим два монолита и все будет ок. На входе, еще на уровне ngnix, вытаскиваем из jwt токена userid и сразу роутим на нужный сервер. Если один сервер отвалится, приложение будет недоступно только части юзеров, а не как в микросервисах хуяк и все лежит. Деплоймент простой. Долгая сборка, да, но тебе один хуй надо прогнать 100500 тестов перед выкаткой на прод, лишние пару часов роли не сыграют. Дорогая и сложная кафка не нужна, все транзакции крутятся в одной бд, репликации быстрее. Сплошной профит, но не получится раздуть команду на порядок, как с микросервисами.
Аноним 08/01/24 Пнд 07:57:18 #508 №2992985 
>>2992977
Я же написал, залутал пару тыщ долларов за парочку крудов и съебал.
Да, все дураки кроме тебя, зато у них деньги есть. Исполнитель заряжает сейчас $40-50/hour, типа не ебаться архитектор и фуллстек разраб. Тот еврей я думаю тоже не бедствует, разжился где-то криптой и мутит свой стартап.
Аноним 08/01/24 Пнд 08:03:28 #509 №2992989 
>>2992977
На картинке скрин из постмана, там не всё сервисы. По факту их было одиннадцать:
account
slot
activity
role
employee
customer
company
book
dispatcher
mail
sms
И я должен был ещё один впилить - billing, который должен был включать тарифные планы и их оплату. ТЗ чёткого не было, всё на коленке и "по ходу дела".
Аноним 08/01/24 Пнд 08:49:13 #510 №2993006 
>>2982563
>С чего ты Прочитал что ассемблер быстрее? какой-нить gcc/g++ намного лучше тебя оптимизирует асм

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

Оптимизировать маленькую функцию лучше компилятора я смогу в виду того, что компилятор ограничен ABI, а я нет.

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

Собственно сочетание хорошего компилятора и ручной оптимизации исходного кода и есть способ выжать из железа максимум возможностей. Но я к чему - если не говорить о всём проекте, а лишь о некоторых функциях, то опытный программист всё же умнее компилятора и способен захуячить код лучше. Потратив при этом кучу времени, сил и энергии.
Аноним 08/01/24 Пнд 08:53:47 #511 №2993010 
>>2982449
А я наоборот жду безпитонный линукс, чтобы от этого тормозного говна избавиться в реальных системах.
Аноним 08/01/24 Пнд 09:37:10 #512 №2993028 
>>2992989
Но, зачем же делать это отдельными микросервисами?
Какова цель? Разработчик - один. Нагрузок каких-либо в принципе не предполагалось, это очевидно. Обычный небольшой монолит на чём угодно решил бы проблему легко. Зачем вся эта ёбань? Год (как минимум) труда? Зачем?
Аноним 08/01/24 Пнд 09:39:22 #513 №2993030 
>>2993006
>сочетание хорошего компилятора и ручной оптимизации исходного кода и есть способ выжать из железа максимум возможностей
Осталось ещё понять зачем - и всё будет заебись.
Аноним 08/01/24 Пнд 10:01:33 #514 №2993041 
>>2993010
Не мог бы ты привести конкретный пример того, чем тебе мешает питон в дистрибутиве линукса? Он каким-то образом мешает тебе писать скоростное говно на си7
Аноним 08/01/24 Пнд 10:32:57 #515 №2993073 
>>2993030
>Осталось ещё понять зачем

https://youtu.be/zyFzpBAZICc
Аноним 08/01/24 Пнд 11:03:51 #516 №2993091 
>>2993028
Ну у того чела в резюме появилась строчка "Full MicroService Architect (MSA) with separated DB and API logic on the backend (aggregation, MSA-transaction)" , кек. И денег он выжал немало. А на остальное - насрать. Ну видимо он налечил спонсору проекта что проект будет держать миллиарды запросов от юзеров со всего мира. Вот открытие для него будет, когда он поймёт что надо было делать MVP, а все бабки вливать в рекламу.
Аноним 08/01/24 Пнд 11:06:48 #517 №2993094 
>>2993041
Мне просто он идеологически неприятен и не нужен в системе, как, например, джаваскрипт или руби. Вот перепишут портаж на го и тогда...
Аноним 08/01/24 Пнд 11:21:03 #518 №2993116 
>>2992968
>>2992972
Дегенеративный хуесос, ну почему ты решил, что "микро" это про то чтобы занимать мало мегабайт? И вообще бинари на го должны крутится в докере, и вот тебе совместимость между всем подряд
Аноним 08/01/24 Пнд 11:34:01 #519 №2993124 
>>2993116
Это вообще-то 2 разных человека написали.
И я (>>2992972) не "дегенаративный хуесос", я это просто для смеха написал. Потому, что в обоих случаях у меня получилось ~7.5 мегабайта. И мне это показалось забавным.

Но, при этом, размер бинарников в Го я вообще проблемой не считаю, хотя, знаю, что многим не нравится. И вообще, сборку в толстый независимый бинарник я считаю одной из главных фишек го.
Аноним 08/01/24 Пнд 11:37:09 #520 №2993125 
>>2993091
>надо было делать MVP, а все бабки вливать в рекламу.
Золотые слова.
Аноним 08/01/24 Пнд 11:40:58 #521 №2993127 
>>2993116
Сдохни в муках, быдло. Чем медленнее, тем лучше.

>>2993124
>независимый
С хуя ли он независимый? Он между линуксами не совместимый.
Я поебался и собрал себе k9s из исходников, правда давненько. И при копировании с одного дистрибутива другой он оказался нерабочим. Уносите своё говно.
Аноним 08/01/24 Пнд 11:49:31 #522 №2993132 
>>2992979
а если у тя какая-то чатсь монолита не будет вывозить нагрузку, допустим по авторизации полдьзователей, ты будешь этот жирный монолит скалировать? а если потом еще-что притупится? получаеся тебе придется поднимать реплики тех же монолитов, токо теперь это будет жирно делать. По поводу микросервисов, типа если отпадет то все попало.. Это ни так, тупо делаешь несколько реплик и все. Также плюс у микросервисов это скорость релизов и прогонка тестов. Т.е. ты меняешь условно какую то фичу в блоке авторизации и тебе не надо прогонять весь монолит... Ну минусы на счет кафки это да, есть точка отказа, но тут нужны хорошие девопсы чтобы поддерживать инфру.
Аноним 08/01/24 Пнд 11:57:04 #523 №2993134 
>>2993127
Там проблемы с системными вызовами из-за сборки мусора, как я понял. Вот тут эту тему затрагивают:
https://news.ycombinator.com/item?id=38872362
В смысле - является ли Го языком для системного программирования (скорее нет, чем да) и почему.
Вообще там охуенный тред, я прямо с удовольствием почитал.
Аноним 08/01/24 Пнд 13:25:41 #524 №2993208 
>>2993132
Авторизация делается просто: ты отправляешь реквест всем своим серверам и ждешь, пока кто-то ответит ок или отвалится по таймауту. Таймауты настраиваются в одном месте, тебе не надо бегвть по всем микросервисам и настраивать каскадные таймауты в каждой микропиське. Для скаллирования используются виртуальные шарды. Скорость релиза одного микросервиса - это хуйня, релиз делается по бизнес фичам, которые затрагивают несколько сервисов и для которых надо прогнать все тесты. Про тайм ту маркет придумали инфоцыгане, пользователю лучше получить стабильную версию раз в неделю, чем каждый день видеть, как сайт сломался то тут, то там.
Аноним 08/01/24 Пнд 13:59:32 #525 №2993250 
>>2992454
>разные люди пишут, что Го - это как раз таки замена Питону в бэкенде.
Надо только уточнить, что замена в Гугле. Раньше стандартным языком SRE был Питон, теперь Го.
Аноним 08/01/24 Пнд 14:57:09 #526 №2993300 
А есть кто в крипте работает?
Ещё не поздно выкатываться?
Поделитесь хорошими курсами/книжками.
- по крипте в целом, что такое и как работает биток я понимаю, а вот что за новомодные стейкинги/свопы/лайтнинги, как несколько крипт живут на одном блокчейне, как исполняется код, и прочее - вообще хз. Биток был прост.
- что обычно разрабатывают под блокчейн на горшке? Вот курсы об этом
- по разработке на солидите или что там можно
- если знаете, то бизнесовым материалам тоже буду благодарен, в смысле назера все это
Аноним 08/01/24 Пнд 16:31:35 #527 №2993397 
>>2993208
ага. только теперь если ломается сайт, то он или ломается полностью или аналогично кусками, если вы правильно пишете код. но зато фиксы в прод теперь за 10 минут не раскатить.
монолит тебя от багов не избавит, равно как и релиз раз в неделю автоматом стабильность не даст. можно и микросервисы разрешить только в определенное окно (пятницу вечер) деплоить. получишь собственно нихуя.
Аноним 08/01/24 Пнд 17:15:15 #528 №2993490 
Скоро появятся нано сервес аркичектур. И это будет трендом.
Аноним 08/01/24 Пнд 17:27:55 #529 №2993508 
>>2993490
Каждый файл в отдельном сервисе, потом каждая строчка кода отдельно... Это же aws lambda и прочая serverless залупа, не? Кстати, почему она не стрельнула?
Аноним 08/01/24 Пнд 17:40:50 #530 №2993538 
>>2993508
>почему она не стрельнула?
Я думаю, потому, что это была чисто маркетинговая залупа.
Попытались впарить народу что-то типа налога на воздух - сколько раз вдохнул - столько и заплатил. Ещё и воздух не слишком свежий. Народ не оценил.
Аноним 08/01/24 Пнд 19:29:22 #531 №2993669 
>>2992783
И вот ты сделал Подтвердить, а потом у Васи данные перенеслись, а у Пети - нет. И что?
Я вообще не понимаю, зачем ты это написал. Потому, что по сути дела ты ничего не сказал вообще.
Зато асид транзакции приплёл для красного словца, лол.
Аноним 08/01/24 Пнд 19:40:46 #532 №2993682 
>>2993490
В чем суть?
Аноним 08/01/24 Пнд 20:09:11 #533 №2993743 
>>2993508
>Кстати, почему она не стрельнула?
На больших нагрузках это становится пиздец как дорого. Но есть юзкейсы когда она вполне оправдана и я знаю компании которые используют.
Аноним 08/01/24 Пнд 20:40:47 #534 №2993787 
>>2993743
Можно выставить в продажу любую совершенно нелепую хуйню, по совершенно несуразной цене, и всегда найдутся те, кто это купит.
Аноним 08/01/24 Пнд 22:39:05 #535 №2993979 
Пацаны, чо сча со вкатом? Тостер 7 с хуем лет, пишу тосты на бэк уже несколько лет на петухевене, всякие кафки, постгри, grpc, графкл. Надоело автоматить и не хочу в менеджмент. Думаю покатиться в суровый бэк, ибо в принципе и так большинство всего умею из современной разработки. Думаю над языком. Рассматриваю гоху. Миддлы нужны сейчас, что с рыночком вообще?
Аноним 08/01/24 Пнд 23:27:56 #536 №2994045 
Перекочуйте
Аноним 09/01/24 Втр 00:14:22 #537 №2994101 
Нет
Аноним 09/01/24 Втр 01:57:25 #538 №2994232 
>>2993669
>Я вообще не понимаю
Фронтенд разработку обсуждают в соседнем треде, тебе туда.
Аноним 09/01/24 Втр 02:00:35 #539 №2994238 
>>2993682
Пишешь книжку, продаешь, лутаешь бабло, ездишь по семинарам, торгуешь ебалом. За кодинг платят мало и это бабло ненадежно и немасштабируемо.
Аноним 09/01/24 Втр 02:17:40 #540 №2994248 
>>2993127
> Сдохни в муках, быдло. Чем медленнее, тем лучше.
Иди нахуй
> С хуя ли он независимый? Он между линуксами не совместимый.
> Я поебался и собрал себе k9s из исходников, правда давненько. И при копировании с одного дистрибутива другой он оказался нерабочим. Уносите своё говно.
Ну и схуяли это вообще проблема? Ты собрал бинарник для роботы в одном рантайме, ожидаемо что в другом он может не заработать. Парирую наперед твой ожидаемый тупорылый тейк о том что "ну бинари же больше по размеру, значит там очевидно собран весь рантайм мира", а ты почитай 10 минут о процессе компиляции в го и что вообще находится в бинарнике, может перестанешь выставлять себя дебилом на анонимном интернет форуме
Аноним 09/01/24 Втр 03:35:14 #541 №2994262 
Анонсы, сложно на вас перекатываться после питона? Работаю с ним относительно плотно, знаю несколько паттернов из ооп, ну и всякие там солиды, киссы и драи.
Аноним 09/01/24 Втр 04:00:53 #542 №2994268 
>>2994262
Будет стойкое ощущение что возвращаешься обратно в каменный век
Аноним 09/01/24 Втр 04:02:16 #543 №2994270 
>>2994262
Перекатиться несложно, сложно найти работу. Где-то в треде писал анон синьор питон, он пытался устроиться на го мидла. Везде отказали, потому что нужен прувен экспириенс именно на говяшке и похуй, что ты уже десять лет пишешь под клауды на другом языке.
Аноним 09/01/24 Втр 04:09:42 #544 №2994272 
>>2994268
Лол да. Я после сишарпа знатно прихуел. Го более 10 лет, а в стандартной библиотеке нет нихуя. Зато я понял, зачем на собесах спрашивают алгоритмы, тебе реально придется на го самому все писать. Бонусом идет ебанутая система модулей и ебанутый ооп, которого нет, но он есть.
Аноним 09/01/24 Втр 10:54:18 #545 №2994417 
>>2994272
Вернули 2007
Аноним 09/01/24 Втр 14:15:05 #546 №2994722 
>>2993787
>Можно выставить в продажу любую совершенно нелепую хуйню, по совершенно несуразной цене, и всегда найдутся те, кто это купит.
Несуразная хуйня получилась у твоей мамки. Лямбды полезны для обработки редких сообщений, это выходит дешевле, чем постоянно держать включенный инстанс. А если их ещё и пачкой присылать, то экономия будет ещё больше.
Аноним 09/01/24 Втр 15:36:59 #547 №2994785 
>>2994232
Какой фронтенд, вася? Ты читать умеешь?
Речь о транзакциях в микросервисах.
Откуда вы, блядь, лезете?
Аноним 09/01/24 Втр 16:16:18 #548 №2994809 
>>2994272
Ты просто не умеешь программировать.
Как и большинство шарпоёбов или питоно-блядей.
Аноним 09/01/24 Втр 16:43:20 #549 №2994838 
>>2994722
>микросервисы на сообщениях
А ты особенный.
Аноним 09/01/24 Втр 17:07:22 #550 №2994879 
>>2994809
> не написал ос на ассемблере - не программист
Аноним 09/01/24 Втр 17:29:05 #551 №2994899 
>>2994879
Такие как ты скоро станут не нужны, их заменит чат-гопота.
Аноним 09/01/24 Втр 17:53:25 #552 №2994934 
>>2994899
А такие как ты стали не нужны ещё лет 30 назад
Аноним 09/01/24 Втр 18:11:35 #553 №2994959 
>>2994934
Да ты совсем дурачок.
Поди лучше bubble sort научись делать.
Аноним 09/01/24 Втр 18:30:00 #554 №2994974 
>>2994959
Зачем мне делать бабл сорт? Я лучше проект сделаю которые будет приносить деньги.
Аноним 09/01/24 Втр 18:39:44 #555 №2994986 
>>2994974
>Я лучше проект сделаю которые будет приносить деньги.

Приходи когда сделаешь. Пиздеть - не мешки ворочать.
Аноним 09/01/24 Втр 18:42:55 #556 №2994993 
>>2994986
Так уже, и не один
Аноним 09/01/24 Втр 21:22:26 #557 №2995210 
>>2994270
Ну с этим у меня в принципе нет проблем, у меня начальству похуй, на каком стеке я пишу, т.к. босс не технарь команда разработки внутри не-разработческого отдела, техдиру вообще поебать, главное, чтобы не сломали ничего.
Я думал взять го в качестве запасного аэродрома, если вдруг с питоном что-то пойдет по пизде.
Аноним 09/01/24 Втр 23:18:57 #558 №2995423 
>>2994838
>А ты особенный.
Да! В отличии от среднестатистического Го-разраба - у меня есть мозги.
Аноним 10/01/24 Срд 12:51:23 #559 №2995875 
Скиньте реальный проект на го, чтобы не пустая болванка, а прям с реальным содержимым.
Аноним 10/01/24 Срд 13:41:06 #560 №2995932 
>>2995875
Докер, кубернетс
Аноним 10/01/24 Срд 15:11:05 #561 №2996012 
>>2995932
Это штучные приложения, а надо что-то более типовое, связанное с реальными задачами на работе
Аноним 10/01/24 Срд 16:21:49 #562 №2996105 
Где ознакомиться с лучшими практиками, сформированными сообществом разработчиков?
Аноним 10/01/24 Срд 16:42:51 #563 №2996144 
>>2995875
https://github.com/golang/pkgsite
оно конечно отличается от реальных микросервисов в компаниях, но пример хороший.
Аноним 10/01/24 Срд 16:46:35 #564 №2996146 
>>2995932
>Докер
И эта поебень тоже на Go нвписана? Ну охуеть теперь!
А пацаны-то думали что только Kuber-мать-его-netes.

Сначала Майкрософть двигала электронную промышленность, выпуская overblow систему и софт, а нынче эстафету перехватил Гугол.

А по сути, во всём виновать Линус-мать-его-Торвальдся, введя неймспейсы в ядро. И понеслось-поехало. Затем подключилась Красная Шляпа, наплевав на Unix way и пересадив полмира линуксоидов на systemd. Только Патрик Фолькердинг стойко держался, послав ну могучие хуи systemd. Затем какие-то арабы и еврей, все французского гражданства, придумали Docker на основе всей этой беды в ядре. Шоб им пусто было.

Тем временем Гугол пилил свою систему оркестрации Borg. И тут им подвернулся Docker. И начался пиздетс. Появились новые профессии, новые языки и возможность любому Васяну из подвортни, прочтив пару статей и HowTo развернуть собственный кластер. И потекло говно по трубам по проводАм. И настал новый безумный безумный безумный мир.
Аноним 10/01/24 Срд 17:35:53 #565 №2996233 
>>2996146
>а нынче эстафету перехватил Гугол.
Ты недавно из анабиоза вышел, что ли?
Этому всему уже сто лет в обед.
Аноним 10/01/24 Срд 17:43:35 #566 №2996246 
>>2996146
Меня удивляет, с какой скоростью тупое мудачьё бросилось делать свои маленкие гуголы. С микросервисами и кубернетисами. Нахуй не нужные при их реальных нагрузках.

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

В индустрии чувствуется острая нехватка людей с мозгами. Которые могли бы находить новые пути, а не громоздить тонны говна для решения простейших проблем. Отрасли нужны герои, а пизда рожает айтишников.
Аноним 10/01/24 Срд 17:47:01 #567 №2996252 
>>2996146
>во всём виновать Линус-мать-его-Торвальдс
Нет, виноваты пидары, огородившие BSD анальными лицензиями. И в результате мы теперь имеем вот это вот говно вместо юникса.
Аноним 10/01/24 Срд 19:21:11 #568 №2996493 
>>2996146
>Тем временем Гугол пилил свою систему оркестрации Borg.
И до сих пор пилит. Но это сугубо внутренний продукт, его опенсорсить смысла нет.
Аноним 10/01/24 Срд 22:19:57 #569 №2996832 
>>2996493
Го тоже был внутренним продуктом. Но программисты в гугле же получают много, а значит надо изучать их инструменты чтоб в конце попасть туда.
Вот и нехитрая причина почему го пихают везде.
Аноним 10/01/24 Срд 22:38:35 #570 №2996858 
>>2996832
так всё и было. нищие пыхеры с завода проникли в штаб-квартиру гугла и шантажом заставили пайка его открыть го публике
Аноним 11/01/24 Чтв 00:05:56 #571 №2996927 
>>2996832
Borg не функционален без инфраструктуры. Докер он изолирован, в нем можно запустить любое приложение. А в Borg можно запустить только приложение которое для него собрано. Borg-у нужен логгер, балансер, мониторинг, архитектура датацентров, система прод конфигов.
Аноним 11/01/24 Чтв 01:12:16 #572 №2996959 
>>2996927
Докер - это надстройка над стандартным функционалом ядра, всего навсего.
Аноним 11/01/24 Чтв 01:30:20 #573 №2996968 
Перекат
>>2996967 (OP)
Аноним 17/01/24 Срд 18:34:21 #574 №3007175 
Почему на го так мало вакансий?
comments powered by Disqus

Отзывы и предложения