С чего начать:
- В обязательном порядке проходим 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
Прошлый тред:
>>3121242 (OP)
Обоссал гоферов с горы денег которые приносит мне написание крудов на жабе
Это поэтому у тебя все штаны обоссаны? Типа гора денег такая большая, что там дует порывистый ветер и вся твоя моча обратно на тебя попадает.
Фантазер, сейчас все джависты пытаются в го спрыгнуть. Ну кроме тех, кто догнивает в сбере на легаси с вкатышами из ковидных времен.
Пока jvmлахта сидит без работы, GOds выбирают цвет салона для своей новой ламбы.
Бля бухой тред перекатил, проебал тег и номер
Лол, но в го идут в основном лс-ы, для которых динамическая генерация в рантайме это "маааагия, хачу чтобы все было по прастому!!", да и пыхеры и прочее отребье.
Через лет пять менеджменту наконец донесут простую идею, что из-за выкрученного убогого гц, хуевой оптимизации кода генерируемого и прочих маркетинговых вещей ря, зато у нас все ПРОСТО говнянг сливает по пропусктной способности раза в два-три нормальным языкам, да и был придуман был и развивается в компаниях, чья немалая прибыль - это облачные решения прогрев гоев почти удался
Тогжа они наконец поймут, насколько же сильно их наебывали все эти годы, и что не надо иметь 1000 разных типов микросервисов на говнянге ради сраного сайта объявлений и прочего дерьма
Ну и последний гвоздь - ебанный пайк это сраный канадец, вы вообще когда в последний раз видели хорошую вещи из сраной канады? То-то и оно
>хуевой оптимизации кода генерируемого
Хуевую оптимизацию всегда можно исправить безболезненно. Спринги и ЖВМ сама по себе раньше тоже работали значительно хуже.
>да и был придуман был и развивается в компаниях, чья немалая прибыль - это облачные решения
И? Го бинарник в пике потребляет 30 метров ОХУ. Такой же сервис на жабе - 400мб со стартапом от 30сек до минуты.
Менеджмент увидет, что сэкономил на облаке и тут же перепишет весь свой жабалегаси на го.
Жвмскуфы уйдут на мороз, GOds полутают их зепку.
Все по Дарвину.
Ты платишь не за 30 мг памяти (на тачке будет все равно минимум гиг), а за ядра. Го сосет безбожно по костам
Перепись соевых лс-ов
"Ря мавен это сложна, у миня 401 вылизает(("
"Спринг эт слажно"
"Просто эта не джава ряя"
О чем и речь, пыхеры и прочее отребье, которое оказалось тупым даже для джавы
Зачем нужен сложный инструмент если с задачей справляется простой? Просто это ведь лучше, чем сложно
Потому что сложный инструмент дает тебе возможность выбора. Например, выбрать гц, если это важно
Путь дегенерата - выбрать одну конкретную реализацию и редуцировать другие варианты до нуля.
Например, гц в го - убогий cms с выкрученными параметрами частых маленьких сборок, из за чего отдельная гц пауза меньше, но throutput меньше раза в два-три, и это НЕЛЬЗЯ ПОМЕНЯТЬ иначе паузы станут как в джаве 10-х и гоферы о чем-то догадаются
Ну, зависит от проектов. Если это просто замена по типу пхп на говнянг - норм, и там и там ущербные убогие программистишки.
Я считаю, что ты зря недооцениваешь го/пхп программистов/проекты
>Такой же сервис на жабе - 400мб со стартапом от 30сек до минуты.
Чеблять? я делал пример на джавалине, 70 мб со стартапом в 150 мс
Так это тоже фреймворк, если писать как на го по минималке, там еще быстрее и еще меньше памяти будет.
Ну если у тебя всё и так работает хорошо, то да
Ох уж эти джава-перемоги пятью видами сборщиков мусора, лол. Если меня не устроит стандартный GC, то я всегда могу выбрать sync.Pool с обрезанным сборщиком или новенькие арены памяти, чтобы писать в С-style через старое-доброе RAII.
Вот это и есть настоящий выбор. Не выбирать из пяти стульев с jvm-хуями, а встать и пойти навстречу светлому компилируемому будущему.
>Если меня не устроит стандартный GC, то я всегда могу выбрать sync.Pool с обрезанным сборщиком или новенькие арены памяти, чтобы писать в С-style через старое-доброе RAII.
Маня, ты до этого коупила, что у тебя говнянг простой в отличии от проклятой jvm непонятно как работающей. ех-Пхп-макака с дерьмовым мозгом обосралась буквально за два поста, спешите видеть
Чел, ты нахуя так жидно серишь под себя? RAII придумали еще на заре существования плюсов в 80е годы прошлого века а скорее всего еще раньше, проще этого нет вообще ничего. Прикинь, в свое время люди писали вообще без GC, своими руками выделяя и освобождая память! И если меня не устроит работа сборщика, то в Go я могу его просто отключить, а не судорожно подбирать один из пяти jvm-стульев под свою жопу.
Клован, ты говорил, что говнянг простой, и в нем не надо ничего настраивать, все работает из коробки
Теперь, оказывается, что настраивать все же зачастую надо когда гоев уже прогрели, и мы переходим к пункту, что jvm по этому пункту разъебывает говнянг в хламину (начиная от разных гц и оффхипа и закансивая огромным разнообразием библиотек и подходов. Лол, ты даже можешь совсем разные JVM взять, потому что вендоров куча)
Твой следующий шаг понятен - рассказывать сказочки "вот в говнянге ручки настройки простые, а в джаве нипанятна(". Смирись, ты просто не инженер, у тебя хуевый мозг, скорее всего ты пыхер, который не может в инженерию и которому нужны простые решкния, принятые не им.
Лично я тебе ничего не говорил, мои посты с картинками можешь в треде сам пересчитать. Ну и лично я пришел в Go из плюсов, а не пыхи, поэтому и могу тебе ручным управлением памятью аки хуем по лбу постучать. И да, RAII имеет тонну своих недостатков, поэтому я и выбрал простой и эффективный инструмент в виде Go и его GC.
А по поводу настройки GC вот скажи, тебя при рождении на пол уронили или ты сам таким одаренным родился? Разницу слов настройка и отключение сможешь сам понять, или тебе помощь нужна? Если меня не устраивает сборщик, то я его просто не использую, ведь ручное управление памятью почти всегда эффективнее сборщика. Зачем мне тюнить GC для 1% критического по памяти кода, если я могу его оставить для остальных 99%, а где надо воспользоваться совершенно другим инструментом
>а встать и пойти навстречу светлому компилируемому будущему
это прошлое
что джава, что шарп могут компилироваться в бинарники
Только в гипотетическом манямирq.
На практике, типичный круд на спринге - не соберется в бинарник.
Зачем ты пишешь про RAII, когда в голанге нет ни конструкторов, ни автоматически вызываемых деструкторов?
Да это пхп макака, по верхам копиум с гугла собирает, чтобы ей не так обидно было. Высокоэффективный код она на говнянге без гц пишет, лол, одноглазый король с++ разработки в мире слепых говнеров.
типичный круд-то как раз соберется, спринг официально поддерживает, это нетипичный не соберется
но опять же, чтобы сравнивать яблоки с яблоками, если писать как на го, то есть колбасить сразу на точке входа логику, общаться через сокеты и хранить данные в массивах, то там вообще никаких проблем скомпилировать не будет
это еще не учитывая кучи других фреймворков, что еще больше заточены под натив имеджи
Согласен, это скорее моё плюсовое прошлое так арены интерпретировало на свой лад. Но если пытаться натянуть RAII на них, то в принципе для одного ручного объекта получится что-то вроде:
>ни конструкторов
mem := arena.NewArena()
>ни автоматически вызываемых деструкторов
defer mem.Free()
Ну а дальше внутри арены начинаем выделять себе структурки данных на свой вкус.
>>197587
Терпи, тебя уже нормально накормили говном в этом треде, а уж сидеть поддакивать в чужом разговоре должно быть просто стыдно.
malloc офк не считаю, а фабричные методы из Go более чем. Я же написал
>Ну а дальше внутри арены начинаем выделять себе структурки данных на свой вкус.
arena.MakeSlice и arena.New[int] вполне себе тянут на конструкторы.
Ну а деструкторы вызовутся автоматически после mem.Free(). Опять же повторюсь, это натягивание плюсовой совы на go-глобус, доебываться до определений в этом споре считаю излишним.
Понятно, стукнул ручным управление памяти сам себе хуем по лбу, запутавшись в своих же определениях (если вообще их знал раньше, а не судорожно гуглил)
А теперь еще скажи, чем этот подход фундаментально отличается от работы на оффхипе, если осилишь.
Глянул на этот твой оффхип, выглядит как типичный ин-мемори кэш с сериализацией, которые лежит вне GC джавы. Ну и в чем его преимущество, если для получения объекта из оффхипа его нужно сперва десериализовать? Если мне потребуется кэш с подобным поведением, я всегда тот же редис могу подключить, а для полноценного ин-мемори я заюзаю что-нибудь вроде FreeCache с нулевым GC-оверхэдом.
>mem := arena.NewArena()
>defer mem.Free()
ну вообще RAII это намного больше чем просто освобождение памяти, это автоматическая деинициализация в общем - освобождение коннектов, каких-то общих ресурсов и т.д.
и соответственно конструкторы - это больше чем просто выделение памяти
>я всегда тот же редис могу подключить, а для полноценного ин-мемори я заюзаю что-нибудь вроде FreeCache с нулевым GC-оверхэдом.
А ты не думал про оверхед на сетевой вызов, который затмит даже GC оверхед (которого нет при работе с офхипом)?
Так их неимоверно бесит, что такой хуевый в сравнении с их любимой джавой язык имеет такую незаслуженную популярность. Что большинство новых проектов со вкусными бюджетами стартуют на го, что везде засилье микросервисов с куберами и докерами, что на каждой конференции обязательно присутствует несколько традиционных докладов по распиливанию джава/пыхо-монолита на Go-сервисы, да и что гоферов так сильно любят и постоянно переманивают между конторами, кидая деньгами в лицо.
Ну и что часть их знакомых уже перекатилась на го, а они все ковыряют бесконечное банковское легаси времен джавы 8. А может быть даже сами пробовали свичнуться, не удосужившись пройти тот же тур по го, но их попустили на техсобесе самолично собесил таких кадров с 5+ годами опыта на джаве и столько же нарисованного на го, путающихся в базовых терминах языка вроде того же слайса/канала. Вот и приходится брызжа слюной с порванной жопой носиться по всему треду, доебываясь до людей с абсолютно дебильными вопросами уровня этого>>198193
Говнарь порвался, а по существу вопроса есть что сказать?
И да, зп-шки говнарей просели, а вакух больше не становится.
Вот это копиум, на уровне шарпомухи, а может даже выше
math.Pi (untyped float constant 3.14159) truncated to int compiler(TruncatedFloat)
Вот я и не понял, почему он запрещает такое сложение. Всегда приходится конвертировать что ли? А насколько это облегчает работу по сравнению с подходом, когда числа в операциях приводятся к одному типу?
Алсо что означает truncated в этом контексте?
что он выкидывает информацию о дробной части флоата
>Что большинство новых проектов со вкусными бюджетами стартуют на го, что везде засилье микросервисов с куберами и докерами, что на каждой конференции обязательно присутствует несколько традиционных докладов по распиливанию джава/пыхо-монолита на Go-сервисы, да и что гоферов так сильно любят и постоянно переманивают между конторами, кидая деньгами в лицо.
А что поделать если в России айтишный менеджмент это случайно вкатившееся быдло после шаурмечной ашота с 0 технических знаний которым можно навешать лапшы на уши? .NET современный ебет вообще все, что когда-либо было, есть или будет в мире goвна, но он же не хайповый, не получится пофлексить перед зумерами на конференциях и не записать модный подкаст!
Просто помните, что руби когда-то тоже был популярным решением всех проблем.
> А что поделать если в России айтишный менеджмент это случайно вкатившееся быдло после шаурмечной ашота с 0 технических знаний которым можно навешать лапшы на уши?
Во всем мире айтишный менеджмент поголовно идиоты, один ты такой ахуенный и в теме
> .NET современный ебет вообще все, что когда-либо было, есть или будет в мире goвна
Шарпомух)
Водкой...
>defer C.free(unsafe.Pointer(d))
Один вопрос: нахуй мне тогда го? Уж лучше на Си писать, там хотя бы можно два указателя сложить.
Мне кажется, тебе ни си, ни го не нужен. А ты хочешь просто доказать что джава лучше.
Да у джавы есть свои сильные стороны, например мавен на порядок круче go build. Но разводить срач я не планирую.
Просто считаю, что ручное управление памятью и в го, и в джаве, это очень редкое исключение, которое нужно в единичных случаях для системных библиотек. А если ты начинаешь основной код писать в Си-стиле, то и писать надо на Си.
Если вручную не проверить err - то будет же паника один хуй, не? зачем её вызывать вручную проверкой лол
Даже родительскую функцию не завершить из дочерней же
Макросы ещё не завезли в го?
>Если вручную не проверить err - то будет же паника один хуй, не? зачем её вызывать вручную проверкой лол
Это же го, пик бойлерплейта
> defer
До чего же тупая хуйня, буквально "у нас есть RAII дома", вам самим не смешно?
>До чего же тупая хуйня, буквально "у нас есть RAII дома", вам самим не смешно?
Ты реально такой тупой?
defer close()
это про освобождение ресурсов после RAII.
> освобождение ресурсов после RAII
Это самая тупая хуйня, которую я когда-либо слышал. Ты точно знаешь, что такое RAII?
Лично я считаю Го наследником старой-доброй сишки с нормальной системой сборки пакетов, стандартной библиотекой побогаче, GC и многопоточностью из коробки. И вспоминая, как в проектах на С освобождались ресурсы через goto FreeMem; с прыжком в конец функции, честно скажу, что деферы не так уж и плохи. Ну а то что Роб решил пропустить 30 лет развития ООП в джаве и плюсах, это уже на его совести пусть останется.
Кстати если продолжать эту логику, то в С и ошибки были часто запечатаны в сигнатуру вида int func(); где ты их из int-кодов доставал выше по стеку и проверял как if func() < 0 { printf("error") } Так что гошные err != nil вполне себе тянут на эволюцию этого метода, который сишники использовали чисто от безвыходности.
И сюда же дроч на структуры, которые особо не изменились с тех бородатых времен, разве что богомерзкий typedef struct user {int id;} user_t убрали и сахарка в виде методов подкинули.
Тупую хуйню, ты по утрам наблюдаешь в зеркале.
Все эти defer, with, using это реализация RAII в языках с автоматическим управлением памятью.
> Просто помните, что руби когда-то тоже был популярным решением всех проблем.
С Go такое не случится, потому что Go - язык корпорации Гугл. У майков - C#, у Apple - Swift. Вот и Гуглу не пристало быть без своего языка, так что они будут его поддерживать. Если разработчикам будут нужны новые функции в языке, или их будет что-то не устраивать - язык будут улучшать, менять, актуализировать, делать все, чтобы он жил и щекотал самолюбие руководства Гугла
У гугла еще дарт, котлин не совсем их, но они от него сильно зависят.
>Если разработчикам будут нужны новые функции в языке, или их будет что-то не устраивать - язык будут улучшать, менять, актуализироват
Ах если бы.
🔐 Безопасность: Включает исправление безопасности для net/http
🗣 Анонс: https://groups.google.com/g/golang-announce/c/gyb7aM1C9H4
слайсы+горутины это понятно, а ещё?
Обработкой ошибок, логгером, подвязкой к графане.
300к дают тока пхпшникам, которые готовы с ГОвном возиться
остальные либо нохайр, либо в стажеры за лоупрайс
А то у меня есть эта книжка на бумаге, думаю, полезно ли будет прочесть.
>нохайр
Так а причина? Я чисто из любопытства зачекал это поделие и не нашёл там ничего интереснее обёрток для семафоров и юниксовских пайпов. Почему нельзя сразу на сеньора вкатиться? Это какое-то соевое гейткиперство? Темка для своих?
Грузить байты >> грузить жсоны. К тому же эмбеддеры и с сетью работают тоже. Всё делают короче. Я блять парсер жсона делал на сях как-то.
нужно создавать/удалять. Понял я только, что это связано с k8s, но норм статеек так и не нашёл. Так что прошу накидать годноты мне по этой темке.
>Я блять парсер жсона делал на сях как-то.
Вот как раз это тут и не нужно, в 99.9999% это будет написано за тебя. А вот что предстоит так это стучаться в разные апи, через очереди и прочие калопроводы гонять json. Работать с базами данных на очень хорошем уровне, хотя ты скорее всего ты без гугла не скажешь чем постгрес и кликхаус различается. Высирать на клиент то что им надо, иногда это всякая ебанистика типа graphql, иногда нужно примерно понимать что на клиенте происходит все эти html, js и все дела. И самое главное это вникать в продукт, с чем обычно у байтоебов тяжело.
>На Go написаны Docker, Kubernetes и другие значимые проекты
Бля а как такое пишут? Я только json могу перекладывать. А как такое пишут? Прикиньте такое ТЗ получить, мол пишем завтра аналог докера. И что делать? Это ж пиздец. Я уволюсь нахуй роняя кал. Вся документация, все уроки - это циклы хуиклы, массивчики, а тут ось виртуально запускать. Бля холодок аж прошелся. Где этому учатся вообще?
>Просто помните, что руби когда-то тоже был популярным решением всех проблем.
Ты писал на руби? А я да, да ещё не только писал, но и поддерживал старый проект. Если что-то писать на нём просто няшно и заебись, в рельсах всё есть, для всякой хуйни нужно всего поставить чудо гем, да написать пару строчек и всё готово за полдня интернет магазин, ещё полдня и админка лол. Но как только тебе предстоит разбираться в том что написано тут начинается пиздец, почти вся ебучая магия это генерируемый в рантайме код, который хуй разберешь, ide это всё говно никак толком не подсвечивает, максимум сами рельсы и то потому что в жыдбрейнс это написали. Сахарный синтаксис позволяет делать такие ебейшие ошибки в неожиданных местах, например у нас было в одном классе который перенаследовался написано self << class и внутри методы, превращая это говно в полусинглтон-полухуй, это писалось до меня хуй знает кем, но это говно я очень долго искал почему у нас какая-то странная плавающая ошибка. И таких приколов там просто дохуя. Язык write only, для галер которые клепают сайты как пирожки наверное самый раз, но там пхп предлагает свои решения и ниша занятя, в итоге он стал никому не нужным кроме злых марсиан и мадленно загибается
Брать и разбираться как оно там устроено в системщине, превращаясь из хирурга в проктолога и ещё приглашать байтоеба сверху, тут у таких как раз звездный час.
Пока что звучит так, будто поднимается за неделю от и до.
Просто пришла эпоха микросервисов, все монолиты стали распиливать, а го для микросервисов подходит как никто другой
>укатывайся нахуй
А вот и нет, буду сюда отписывать каждый день по результатам: что я понял, что НЕ понял, что прошёл, а что - нет.
Начал с книги "Донован - Язык программирования GO", с шапки.
>Грузить байты >> грузить жсоны. К тому же эмбеддеры и с сетью работают тоже. Всё делают короче. Я блять парсер жсона делал на сях как-то
Как я уже сказал, это бесполезные навыки. В тврпрайзе иебе не надо ручками аллоцировать память, не надо писать свой парсер жсона и реализацию хттпэ стека. Тебе надо уметь взять готовые библиотеки и соединить это всё, в работающий калопровод. Попутно договорившись с соседней командой, чтобы они сделали входное отверстие для вашего калопровода.
Инбифо: я не говорю, что ты с этим не справишься, я говорю что твои скилы не релевантны задачам. Поэтому думать, что тебя сразу, без собеседования возьмут на 300к немного оптимистично.
Пиздец наркомания.
29-я страница. Кто советует такое новичкам. Я ничего не понимаю.
Ты профнепригоден
А бизнес-логику без ООП как писать?
Вот у тебя какие были задачи на GO на работе?
Как вообще выглядит готовая программа на GO, это exe файл который включает в себя сервер или интерпритируется как пхп-скрипт и в тот же опкод/jit конвертится?
Стоит ли в него вкатываться вообще? По первому впечатлению какой-то всратый синтаксис у него, еще флешбеки из паскаля ловлю
>100 rps, <200 ms
Серьезная штука этот ваш го, ни на какому другом языке такой производительности не добиться
Чтобы писать на Go
Это всё так, но платить за это будут меньше
>.NET современный ебет вообще все, что когда-либо было, есть или будет в мире goвна
Лучше и не скажешь?
Сап GOвнари, вчера решил заценить ваш язык, написал "Привет, мир!" скомпилировал на своей винде под линух и запустил его на соответствующем сервере. И у меня сразу же всплыл один простой вопрос, нахуя нужен в таком случае джава? То есть в 90% случаев все микросервисное говно на джабе работает по архитектуре:
контейнер -> jvm -> говно
Тогда как в го у тебя так:
контейнер -> говно
И нахуя тогда в ту кей твони фор этот старый кал с бинами и контекстом когда есть такой лаконичный язык который полностью покрывает потребность в разработке калопроводов разного уровня? НАХУЯ?!
Да вот ебал я этот ваш паскаль. Он мне школу ебаную напоминает со всем пиздецом, с душными компами без веселых обоев, душный 2008 год, на улице нихуя интересного, в интернете нихуя интересного. Делать нечего
Не нужно задавать лишних вопросов, чем больше ачивок в резюме тем больше денег.
>И нахуя тогда в ту кей твони фор этот старый кал с бинами и контекстом когда есть такой лаконичный язык который полностью покрывает потребность в разработке калопроводов разного уровня? НАХУЯ?!
1. Чтобы тебе не нужна была компиляция и исходники чтобы запустить на другой арзитектуре
2. Чтобы развернурть циклы, девиртуализировать вызовы и тому подобное
3. Чтобы использовать несравнимо большие наработки библиотек
>написал "Привет, мир!"
Собственно дальше ты не писал ни на жабе ни на го, а уже вопросы мироздания задаёшь
Тонны легаси может быть?
Внезапно, поэтому щас весь бигтех на го и переползает
>Ну а то что Роб решил пропустить 30 лет развития ООП в джаве и плюсах, это уже на его совести пусть останется.
Это наоборот заебись, на проекты с жабой без слёз не взглянешь все в каких-то паттернах такое чувство что им за количество классов платят
Я стажировку на жабе проходил через пару месяцев уволился и забыл как страшный сон, паттерны учил в своё время и даже частично помню их. Но они в 99% нахуй не нужны, особенно фабрики, которые используют чуть более чем везде, которые нихуя не делают кроме как создают экземпляр класса. Вот и появляются мемы типа AbstractSingletonProxyFactoryBean а хотя погодите-ка это не мем
Молодец затролил, иди маме расскажи какой ты молодец
ООП и нормальной обработки исключений не завезли.
Подобные программки я писал на пистоне, будучи учеником глубиннонародной школы.
Читал. Очень качественный материал, но там надо основы уже знать или походу много гуглить придётся.
что посоветуешь для более низкого уровня знаний?
А что не так? Профессиональный программист не знает как получить данные из аргументов?
Либо методы не удобные, либо поддержка тг апи старая, либо багов много.
Почему питонисты смогли сделать нормально, а гошники нет?
>на го написано много телеграм либ, но все они безумно сырые?
Сам напиши стабильные. Кто, я!?!?!?
>Либо методы не удобные
Сам напиши удобные.
>Почему питонисты смогли сделать нормально, а гошники нет?
Сделай нормально, тебя кто останавливает, не пойму?
Я не профессиональный программист, я только начинаю. К примеру, сейчас прошёл if-else, берусь за switch. Пока всё понятно по сайту "go tour". Ещё так-же, помимо него, прохожу курс от W3 по GO. Пока всё понятно - не так плохо, как это было в книге.
Ты само апи телеги когда-то видел? А я с ним работал. ничего сырее в этом мире нет. Прописью - new hoo ja.
мимопроходил
Тогда книга, всё же, не для тебя. Известно, что книги Кернигана нужны тем, кто уже умеет программировать и кому не нужно объяснять в чём смысл if else и зачем нужны массивы. Поищи книги именно для новичков
а насколько книга актуальна то вообще? 16 год издания всё таки, есть что-то поновее и такого же уровня?
боднера читай
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-node.html
Нода дает примерно сопоставимую производительность, большое коммьюнити, много готовых решений и пакетов.
Гошка это уже чисто для уровня озона, выцеживать проценты в производительности и писать статейки какие они крутые.
открой хоть одну вакансию вне рф, долбоеб
>большое коммьюнити
А какое качество этого комьюнити?
>много готовых решений и пакетов
Знаю, видел, работал, прослезился в своё время. Пока vite не появился там в том же реакте в зависимостях тянулось говно типа isOdd, вообще npm это чан с говном в деревенском сортире, какого говна там только нет и за каждой зависимостью нужно очень внимательно следить что оно делает
Только начал курить, вот нашел первый. Насколько адекватный? А то накурюсь говна, итак в башке пока что каша так как только начал, а еще и говна насмотрюсь то вообще шизиком стану.
https://github точка com/restuwahyu13/go-rest-api/tree/main
Заранее сяп
>Гайз
>покупирить
>начал курить
>А то накурюсь говна
Сука пидорас ебаный, тебе конституция запрещает нормальные слова использовать нахуй?!
>Насколько адекватный?
Настолько же адекватный как и твоя речь
Чо покурить вобще-то растаманы должны думать....
- Если метод объявлен с value-ресивером, то интерфейс-переменной можно присваивать что угодно (i := v; i := &v).
- А если метод объявлен с ptr-ресивером, то i-переменной можно присваивать только i := &v?
https://go.dev/play/p/aJrwJecYfo5
у чатгпт попроси, серьёзно
братик, тебе бы таблеточки какие попить от агрессии, с тобой люди в реальной жизни совсем плохо обошлись? Всё хорошо, тебя никто тут не оскорбляет и не обижает. Можешь нам не доказывать свою доминантную позицию в иерархии такими примитивными способами
Какое же убожество это недоООП и в целом весь язык. Неужели нельзя было просто сделать классы, вместо структур, чтобы нормально записывать методы, конструкторы и тд прямо в классе? Чтобы был обычный человеческий this. Зачем указывать тип переменной после ее названия? Паскальское гoвнo типа ":=" - это что вообще за xyйня? В очередной раз убеждаюсь, что C-подобный синтаксис - это лучшее, что придумали и более удобно уже сделать нельзя. Попытки упрощения синтаксиса в новаторских языках типа Go приводят к тому, что вообще непонятно, что хотел сказать автор. Невозможно это убожество читать
Нахуя это залупу расхайпили?
>при вызове метода на указателе го автоматически разыменовывает его
А в огороде бузина.
Мелкобуквенный, ты вообще читаешь посты на которые отвечаешь?
Алсо тошнит от этого зверька, который представляет из себя то ли логотип, то ли талисман, то ли хуй пойми что. Язык был создан для детей, чтобы привлечь их "милой" хуйней из мультика, а потом убить их нервы убогим синтаксисом
>братик
Какой я тебе "братик" дебил?
>с тобой люди в реальной жизни совсем плохо обошлись?
А что? Хочешь поддержку моральную оказать что-ли?
>Можешь нам не доказывать свою доминантную позицию в иерархии такими примитивными способами
У человека жопа сгорела от того что зумер не может в родной русский язык
>ЯРРРЯ ДАМИНАНСТНАСТЬ ДАКАЗЫВАИТ
Ты я так понимаю не далеко от него ушел да?
Анон, а можешь сами задачки написать?
Я вот вроде понимаю гошку, но хочется проверить смогу ли хоть одну реальную задачу решить.
Спасибо, анонче.
ААА, БЛЯТЬ ТАМ КТО-ТО ХОДИТ...
Но 2-я задача это дичь на мой субъективный взгляд. Типа она простая по смыслу, но легко просто ошибиться.
>ААА, БЛЯТЬ ТАМ КТО-ТО ХОДИТ...
Это я, не кричи.
Да, вторая задача каловая, но тут нужно просто перечитать гайд по слайсам из официальной документации по го.
Ко мне HR сама в лс с этой вакухой пришла.
Как я понял из требований по годам опыта - на миддла собесили
Потому что разрабатывал язык по принципу, мне это не нужно, значит никому не нужно.
Наверное потому что не только у меня возникает тряско от этого псевдоязыка. И у всех похожие претензии к этому ГОвну
>на котором сейчас большая часть новых бекенд проектов стартует.
Раст круче, по производительности.
Амазон свои сервисы на нем пишет.
>Амазон свои сервисы на нем пишет.
Может пару сервисов и написал, Амазон это bunch of pirate ships и там каждая команда очень автономна, в том какие технологии использовать.
Но главный язык у них Java. Амазоновская сборка OpenJDK стала самой популярной, они наняли топовых инженеров для развития своей OpenJDK.
>Потому что разрабатывал язык по принципу, мне это не нужно, значит никому не нужно.
И правильно делает. Программисты тупые. Программисты не знают что им нужно. Дай программистам волю у тебя получится ещё 1 сишарп, с сахаром на сахаре и 5 способами проверить не является ли переменная null.
От того язык и взлетел, ибо не прогибается под людей, которые не знают зачем он нужен и пытаются писать на го как на джаве
А нахуя ты тогда лезешь в эту залупу, мальчик? Что, денюжек захотелось или просто твоя джавистская жопа никому не нужна резко стала?
Где можно прочитать про то, как писать на го, чтобы это было go-way, а не джава?
солид для го вообще существует?
Он взлетел только потому что гугол.
>Может пару сервисов и написал
Amazon AWS.
Инфраструктурный проект, который синергетически повлияет и улучшит все что на AWS работает, положительно повлияет на всю группу компаний, т.к. они все равно считай на своих сервисах работают.
А какому-нибудь Озону, в отличии от ОмОзона, может особо Rust по многим причинам и не нужен, в момент когда стоял выбор стека технологий, т.к. один из важных аспектов это наличие комьюнити и кадров, а голанг хайпует и набирает обороты, так что Озон как оптимальный вариант выбрал ГОшку.
Но чтобы был условный
var a, b int;
Или как в этой хуйне пишут
Что поменялось, кроме того, что стало менее привычно?
Хотел попробовать. Думал, ведь так много говноедов не могут ошибаться.... Оказалось, что хуйня
>что тут поменяется
Видишь, в этом и проблема сишного стиля. Ты даже не заметил где ошибка
int★ a, b;
и
var a, b ★int; это две разные конструкции.
1 создаёт поинтер на a типа int, и переменную типа int, а
var a, b ★int; создаёт 2 поинтера на int.
Новый вариант просто лучше. Он лучше со стороны грамматики языка, со стороны компилятора, со стороны явности.
Новые языки не обязаны тащить всё из си, особенно плохие решения
То есть, чтобы исправить эту сишную "фичу" надо было, чтобы тип переменной был после имени?
Что мешало сделать, чтобы гошный компилятор обрабатывал это (int a, b) как 2 переменных типа int и все. Нахуя для этого менять местами тип данных и имя, добавлять ненужное ключевое слово var?
Зачем? Это тебе не даст никаких преимуществ. Это просто синдром утёнка. Ты привык к чему-то, даже если оно плохое.
А зачем было менять то, к чему все привыкли? Какие преимущества это дало?
Я ведь уже написал:
>сделать, чтобы гошный компилятор обрабатывал это (int★ a, b) как 2 переменных типа int★ и все
Без ебанутых перестановок...
>Какие преимущества это дало?
Это дало преимущество, что теперь нет проблемы, когда не понятно к чему относится поинтер и теперь компилятор работает быстрее
>Раст круче, по производительности.
Тут ассэмблер выигрывает очевидно, на него надо переходить
>что теперь нет проблемы, когда не понятно к чему относится поинтер и теперь компилятор работает быстрее
Это можно сказать про Rust, что у него нет проблем, и он потребляет памяти намного меньше даже сишки, и быстрая компиляция.
>Тут ассэмблер выигрывает очевидно, на него надо переходить
Нет, разные категории.
Пошто жирафу мультиварка? маразм бля несешь
>Пошто жирафу мультиварка? маразм бля несешь
Казалось бы блядь, причём тут язык для системного программирования раст с его токсичным синтаксисом
маразм бля несешь
Все еще не понятно
Можно предположить, что b имеет тип указателя на int, а a - просто int
Не изменилось абсолютно нихуя, кроме того стало очевидно хуже:
1. менее привычно, менее читабельно
2. дополнительный код в виде ключевого слова var
>предположить
Предполагай, только твои предположения с реальностью не имеют ничего общего. Это значительно более явно, чем в случае с сишным вариантом. Ты ведь сам, когда увидел этот вариант ошибся, вот тебе и привычный синтаксис.
>менее привычно
Так всегда с новым. Новое всегда менее привычно, но это не повод не менять плохое старое.
>var
Это не обязательно
>Это значительно более явно
Это НИКАК не явно
От того, что поменяли местами - нихуя не поменялось
Я бы и в случае с Го точно так же бы ошибся
>Это НИКАК не явно
Нет, ибо в случае го ты бы свой ошибочный вариант применил на этот код и оказался бы прав.
int★ a, b //c
a, b ★int // go
Посмотри на этот код опять и напиши где чем является переменная a и b
>int★ a, b //c
Может это просто сишники дебилы? вот схуяли бы тут два разных типа переменных должно быть по логике если объявление одно?
В си нет строгого ограничения на то, где должна звёздочка быть. По сути это можно показать как
int ★a, b
или если нужно 2 поинтера то
int ★a, ★b
> надо было, чтобы тип переменной был после имени?
Да, после. А не вокруг с обоих сторон.
https://c-faq.com/decl/spiral.anderson.html
Пайк решил что читать тип слева направо проще, чем справа налево. И он не первый кто к этому пришёл.
>>225236
> А зачем было менять то, к чему все привыкли? Какие преимущества это дало?
А никто и не привык, это уродство в С++ заменили на создание цепочки type-алиасов с помощью using.
В остальных языках убрали указатели и прибили порядок появления скобок в объявлении типа гвоздями. Ну или также тип пишется после имени переменной всегда.
https://appliedgo.com/blog/go-declaration-syntax
Вот мои разъяснения описанные более подробно.
Почему ты подгорел? Зачем самоутверждаться на тех, кто использует сленговые словечки, чтобы сделать речь более интересной?
>Инфраструктурный проект, который синергетически повлияет и улучшит все что на AWS работает, положительно повлияет на всю группу компаний, т.к. они все равно считай на своих сервисах работают.
А вот и инсайды пошли.
>Программисты тупые.
Не проецируй, ты конечно же тупой, но это твоя личная особенность.
>Программисты не знают что им нужно. Дай программистам волю у тебя получится ещё 1 сишарп, с сахаром на сахаре и 5 способами проверить не является ли переменная null.
Вот только потом авторый этого унтершпрахе все равно добавляют, все то что НИНИЖНО.
Ну например чтобы map, sync.Map и прочие типы коллекций были first class citizens. А не так, что у одной дженерики с самой первой версии, а у остальных хуй до сих пор.
Чтобы for работал для всех коллекций.
Чтобы мне наконец объяснили, КАК БЛЯДЬ Я ДОЛЖЕН НАЙТИ ТИП КОТОРЫЙ РЕАЛИЗУЕТ ИНТЕРФЕЙС??? КАК Я ДОЛЖЕН РЕФАКТОРИТЬ ЭТИ ЕБУЧИЕ ИНТЕРФЕЙСЫ, если компилятор нихуя не может сделать?
Нахуй нужен
> type B struct{ A }
? Вы же пиздите, что наследование не нужно?
Дарт и Котлин - языки для мобильной разработки. А им хотелось язык общего пользования
{ на своей строке
>это не наследование, а композиция
Ага, такая композиция что все методы и поля A становятся доступными в B.
https://go.dev/play/p/jocYLj6SbFl
> КАК Я ДОЛЖЕН РЕФАКТОРИТЬ ЭТИ ЕБУЧИЕ ИНТЕРФЕЙСЫ
Задача того кто пишет имплементацию добавить явную проверку
`var _ Iface = (★MyStruct)(nil)`
Если он не добавил, то забей хуй на него.
>>227177
> Вы же пиздите, что наследование не нужно?
Это не совсем наследование, хотя оно на него и похоже. И да, оно немного сломано, в частности ты закладываешь себе бомбу, когда используешь множественное "наследование".
Главное отличие в том, что у отнаследованных методов тип ресивера остаётся родительским.
https://go.dev/play/p/wkJgRLdOcrN
https://ideone.com/vwV7tb
>★
Проорал. У го-пидоров в треде даже нет нормального символа для указателей, чтобы юзать без форматирования
Дарю, долбаебы: ⚹
AWS на ранке существует дольше чем все обсуждаемые языки и сервисов в нём дохуилион. Rust гарантированно у них в Serverless стеке, но это не значит что у них вся новая разработка на rust, или что они всё переписывают на расте. Если даже полистать те же вакансии Lambda Computing, то там вполне себе и на Go пишут.
>>227881
Молодец, возьми себе пирожок.
Синкмап и не нужно использовать почти никогда
>Задача того кто пишет имплементацию добавить явную проверку
>`var _ Iface = (★MyStruct)(nil)`
Надеюсь ты понимаешь какой это пиздец?
>Если он не добавил, то забей хуй на него.
С удовольствием бы забил, но я вынужден писать на говноланге. Например https://github.com/golang/go/blob/master/src/strings/builder.go реализует интрефейс из-за чего WriteString имеет такую уебищьную сигнатуру
>It returns the length of s and a nil error.
Но никаких
>`var _ Iface = (★MyStruct)(nil)`
или хотя бы комментария об этом нет.
var _ Interfacename = (*structname)(nil)
Если можно написать тест. Как не пихать (или пихать) эту проверку везде?
>Зачем нужна проверка на существования интерфейса, к примеру
Это проверка, что тип реализует интерфейс. Рекомендуется effective go. Нужно чтобы у тебя сразу падала компиляция и можно было легко найти все реализации интерфейса.
Это я понял, а когда это использовать нужно? Если я реализовал своей структурой интерфейс то я каждый раз должен добавлять такую проверку?
>Если я реализовал своей структурой интерфейс то я каждый раз должен добавлять такую проверку?
Да, так рекомендуется делать. Так ты будешь уверен, что ты реализовал все методы. Если ты добавишь метод/изменишь сигнатуру тебе компилятор покажет ошибку. Можно легко найти все реализации.
Спасибо!
Тебе бы почитать, что такое наследование, и что такое композиция
А то так и будешь отказы на собесах ловить
>А то так и будешь отказы на собесах ловить
Херка плез, иди лучше про через пять лет спрашивай.
>Тебе бы почитать, что такое наследование, и что такое композиция
Это говно точно не тянет на композицию, даже сами авторы говноланга называют это embedding и заявляют как эрзац наследование
>Go does not provide the typical, type-driven notion of subclassing, but it does have the ability to “borrow” pieces of an implementation by embedding types within a struct or interface.
долбоеб, разберись сначала, что такое композиция и встраивание
пока что твой уровень это как раз вопросы про пять лет
https://boosty.to/itkrasavchik
С опытом в 23 года было бы удивительно, если бы у него не было всего этого
Я тебе мудаку, авторов говноланга процитировал. Там композиция не упоминается вообще. А знаешь почему? Потому что это нихуя не композиция.
А ты тут только срешь своим чсв, но ни одного аргумента не привёл.
>Открываешь любую книгу а там основы и НИХУЯ БОЛЬШЕ
Бля ты знаешь сколько в вебе всяких тонкостей? По rest api есть целая книжка в 900 страниц мелким шрифтом. Если ты каждую мелкую хрень будешь учить с нуля, вкат у тебя займёт лет 5-10. Этих протоколов, брокеров, паттернов, фреймворков, как собак нерезанных. Если мы щас начнём разбираться какие есть в вебе топологии, протоколы, сети - это займёт минимум часов 180.
Задача веб-разработчика - не познать идеал, нирвану, знать мельчайшие тонкости, а просто уметь сделать ёбанный сайт. Чтобы этот сайт открывался, быстро работал и приносил профит. Всё. И знать нужно ровно столько чтобы начать работу.
Если ты не знаешь "хуйнянейм" - ты делаешь так. Открываешь гугол и пишешь свой вопрос. Либо спрашиваешь друга/подглядываешь на гитхабе как другие разработчики пишут.
Позырь книжку Let's Go. Там как раз по сути гайд как написать веб-приложение без фреймворков и вообще с минимумом внешних зависимостей.
Потом можешь почитать её продолжение - Let's Go Further. Там про то, как рест АПИ запилить.
Этого, в принципе, уже достаточно, чтобы ебашить микросервисы.
>Hands-On RESTful Web Services with Go
Нирикамендую книги этого издательства (Packt). В 99% второсортная хуита написанная индусами.
O'Reilly, Manning, Addison–Wesley, NoStarch - вот эти почти никогда откровенного дерьма не выпускают, а Packt - это полный пиздец.
Я чет посмотрел и там все из коробки, тот же REST-приложение с роутингом, дергаешь библиотечку и все работает.
Как PHPшнику помнящий паскаль и писавший на С++ трудностей не вызывает понимаем кода. Там реально все так просто или ловушка?
Указатели как в С++ указатели? Нужно самим писать структуру данных для массива или vector есть какой-нибудь? Или как в PHP просто создал и используешь без ебли?
Но вот основной вопрос, пока еще не понимаю че на нем пилят:
Какие задачи вы решали на GO вообще, за которые деньги заплатили?
Если REST, то че с сервером? Или библиотечка уже включает себя сервер? А как же куча настроек как для того же Nginx? Всякие буферы, SSL, Редиректы да там куча всего вообще
Ну кейсы какие у микросервисов? Че они делают?
Допустим обработка файлов - видео, допустим файл 200мб или 5 гигов в 4к видео и нужно его скукожить в разные размеры можно вызывать cmd и через него вызывать ffmpeg и простой командой как в консольке пишем обрабатывать, а не писать скрипт обработки.
1. Куда файлы загружаются? Через API Gateway, или напрямую на сервис?
2. После обработки они дальше пересылаются в API Gateway или куда для раздачи, или прямо скачиваются от туда где обработались?
3. Откуда раздаются?
Это ты так говоришь и я так думаю. Но задроты собеседующие думают инача. Помню как-то собеседовался в 2017, один еблан меня функции в jquery спрашивал, мол что такое queue, что такое animate. В итоге оффер дали на 35круб, но я не взял
Надо чтобы что? Чтобы баги в легаси фиксить нужно знать архитектурные паттерны? Или чтобы джейсоны перекладывать, нужно знать протобаф?
Непонятный у тебя какой-то тезис.
пиздец я же как раз рест апи на 22 написал
Что за книга? Какой там про файлы?
> Ну кейсы какие у микросервисов? Че они делают?
У микросервиса в 2024 два кейса:
1. Разложить протобуф по полям в базе.
2. Составить пробобуф по полям в базе.
Какие файлы, какие раздачи, ты там в каком веке застрял?
Файлы, если и нужны, проксируются в s3.
"Test #{Data.data}, error #{Error.error}" и всё без Sprintf
Используй структурированное логирование и не выёбывайся.
Дибильные самоназвания блять! Пёрл джедай! Голанг ниндзя! Долбоёб а не ниндзя, ещё сказал бы тим лид самурай или архитектор терминатор. Может быть ещё робокоп?
Скуфы в пиздючестве бегали в видеосалоны, смотрели боевики про ниндзя. Это для тебя имя Хон Гиль Дон ничего не значит, а для них это яркий образ из детства. Яркий потому что среди постсоветской серости редкие боевики казались лучиком света из другого мира. Это вы напичканы с детства разнообрзным контентом, вам все кажется одинаково плоским.
такие офферы как он там выебывается конечно существуют.
но как устроиться гошником если парень не глупый, но нет опыта?
В общем как stdlib.so и прочий хлам перенаправить в пользовательскую директорию?
Почему не похуй что? Размер или местоположение?
>но как устроиться гошником если парень не глупый, но нет опыта
Есть стажировки в яндексе/авито/вк/озон/вайлдберис/yadro/pgpro
Но рынок айти как сдох в 2022 году, так до сих пор и не восстановился. Я не про запад говорю, а про нас, РФ.
Почти 2 года гребу на python/go легаси проекте в МЯСО, хочу сменить кабана. И работы как будто нет нихуя вообще. Даже на джава-стеке нихуя нет, одно сплошное помойное легаси.
Может пора действительно задуматься о пеерезде в легасистан вроде Сербии?
>Куда файлы загружаются
В s3.
>>230614
>Через API Gateway, или напрямую на сервис
Ну тут зависит от того, какая шиза у лида или архитектора, у нас файлы складываются в с3 через прокси перед ним. Гейтвея у нас вообще нет.
>>230614
>После обработки они дальше пересылаются в API Gateway или куда для раздачи, или прямо скачиваются от туда где обработались
После обработки файла они в с3 складываются, пользователю просто ссылка на файл в с3 за проксей предоставляется.
>У меня осталось 5+ месяцев доучиться до джуна и потом съебывать ДС учиться жить заново самостоятельно зарабатывая. Всю жизнь себе заруинил за пекой сычевая 6 лет на шее у мамки после шараги из-за дереала. Крыша течет от нахождения в моей мухосрани. Поскорее бы НГ к родственникам в Москву а потом битарду-омежке помогут снять там квартиру и придется крутиться очень сильно. Я очень не хочу проебаться по оставшемуся сроку. Помогите, пожалуйста
Ты уже начал собеседования проходить на стажировки? Если нет, то дело плохо, ты обосрешься. Поиск работы занимает от полугода до 1.5 лет, если ты не студент профильной айти спецухи. В общем не хочу тебя расстраивать, но лучше готовься заранее к тому, что придется курой поработать какое-то время.
Например, байтоёба на C или C++, прогавшим драйвера, микроконтроллеры и т.д. возьмут на Go?
Или на Go берут только если предыдущий опыт был на бэке, например на Java или PHP?
>легаси проекте в МЯСО
работа есть работа, не всегда может нравиться.
>>233660
>И работы как будто нет нихуя вообще.
да есть, getmatch чекни, там скиллованных ищут.
>>233660
>Может пора действительно задуматься
Я задумался о том, что не хочу за компиком сидеть 24/7.
Лучше бля домики строить буду, или еще что. Способов заработать на жизнь вагон, если не тупить по жизни.
>s3
Я рад за тебя и завидую что у тебя есть s3.
А в РФ как делают? Слышал еще что на go свой s3 пилят
Да бля не отвечай ему, этот шизик уже месяц спрашивает про микросервисы чё это такое. Игнорируй долбоёба. Он ещё будет год спрашивать. Пусть скачивает книги https://libgen.st/search.php?&req=microservices&phrase=1&view=simple&column=def&sort=pages&sortmode=DESC там 500 разных книг, пусть берёт любую из них и просвещается.
Я и так в России на российском проекте работаю. S3 это не только хранилище в AWS, сейчас практически любой мало-мальски облачный сервис предоставляет S3 с API очень похожим на то, что у амазона.
https://yandex.cloud/ru/services/storage
https://cloud.vk.com/storage/
https://cloud.ru/products/object-storage
Бери любое облако и будет тебе S3. А еще есть такая штука как MinIO, можешь в докере запустить локально и подергать руками:
https://github.com/minio/minio
>Слышал еще что на go свой s3 пилят
Язык тут не при чем, S3 - это просто хранилище файлов, вроде фоточек, музыки, видео, pdf и прочих. Это хранилище файлов на любом языке программирование можно написать, хоть на питоне, хоть на Go, хоть на чистом Си.
MinIO как раз на Go написан, S3 в яндекс клауде тоже на Go.
В РФ сейчас с этими сервисами работают?
Про minio гуглил, там с безопасностью кажется хуево было
>Язык тут не при чем
Это я тебе говорю, что слышал кейс, что в компании писали свой s3 на GO, для своих проектов
И что из этих сервисов предпочтительно учить? Что на рынке популярно?
>В РФ сейчас с этими сервисами работают?
Долбоёб всё везде работает. Хватит спрашивать. Aws прекрасно работает в России. Пишешь в гугле "сервис приёма смс для активации". Платишь 3 рубля за номер. Всё активировалось, пользуешься. Чё они будут паспорт спрашивать? Или нотариально заверенное удостоверение? Тупорылые вопросы какие-то.
Тебе ничего не учить, сиди дауном. За тебя всё сделают и получат твою ЗП.
апи у всех s3 совместимых библиотек одинаковый и спизжен с aws. Дешевле всего локально развернуть minio и попрактиковаться с ним
>И что из этих сервисов предпочтительно учить? Что на рынке популярно?
строительные технологии
хули голангеры злые токие?
> Это доска и тред посвящен вопросам
Не твоим вопросам. Более того, твой вопрос настолько же туп насколько и ты сам. Учить надо не актуальные сегодня технологии - учить надо актуальные завтра технологии. Хочешь знать что актуально завтра - смотришь записи какой-то хайповой конференции типа хайлоада и учишь не технологии, а принципы и подходы почему технологии работают именно так и чем руководствуются авторы когда делают выбор.
>>234873
Это вкатун перепутавший тред.
> а я даже напиздеть не могу ибо не понимаю что говорить.
молодой человек, рассмотрите стриотельную сферу, нахой вам этот ваш интернет, в компике 24/7 сидеть ахууешь.
> Сап, есть какие-нибудь хорошие источники (неважно книги допустим или видео) , где можно узнать про внутрянку именно коммерческой разработки?
https://www.oreilly.com/
Но опять же, внутрянка у всех разная
Можешь оставить свои контакты и спрашивать что хочешь у меня
почему может не работать кеш, который я аккуратно подсовываю ему в gitlab CI ?
можно ли это отладить?
объявляю две переменных
GOPATH: $CI_PROJECT_DIR/src/.go
GOLANGCI_LINT_CACHE: $CI_PROJECT_DIR/.golangci-lint
Все там хуярится, скачивает, дорабатывает до конца и подкладывает файлы в следующий раз, но потом все равно golangci-lint начинает выкачивание каждый раз .
Что он делает с файлами не такого?
Да мы ебем, в каком окружении для gitlab-runner-ов ты все это говнище крутишь, придурошный?
ну вообще-то должны.
ведь на сегодня единственное окружение это docker-образ golangci/golangci-lint:v1.57.2
Разве нет?
>единственное окружение
С хуя-ли банька наклонилась?
Ты хоть в busy box-е можешь свое дермоподелье крутить на ранере, просто доставив нужные пакеты, лол. Поэтому я и пишу, что мы в душе не ебем детали твоего ебучего зоопарка там
Заработало нормально, после того как раннер запустил на машине побольше.
Хуй поймешь что он с кешем делает. Доделают остальные этапы и сяду разбираться.
Всем спасибо за моральную поддержку!
Однако, хули так медленно все с этим gitlab?
Он сначала 20k файлов СЖЫМАЕТ и потом РАСЖЫМАЕТ
ебаные гигабайты туда-сюда гоняет.
Я ебал такое кеширование. 3 минуты на простейший билд!
Как вы делаете ? shell runner запускаете ?
>в душе не ебем детали твоего ебучего зоопарка там
нет зоопарка.
Братишка, это у тебя Т-Банке зоопарк воспринимается как данный свыше бардак.
Остальные могут сделать как проще и чтобы не удивлять коллег.
Поэтому образ с golang-lint один единственный и способ запуска один единственный.
Наймите для начала нормального девопса и все проблемы исчезнут, а не хуйней занимайтесь, изобретая велосипеды
Тогда уже девопс придет в этот тред спрашивать как оптимально кешировать пакеты.
Ведь девопс - это я.
В CI/CD пытаются по-максимуму избегать любого кеша даже при установке пакетов, а ты наоборот хочешь в ебучий линтер его засунуть, совсем долбаеб?
ты какую-то хуйню несешь, но дискутировать с тобой лень.
Подожду когда тебя свои же братья из банка обосрут.
Есть хорошие подробные материалы по работе с пакетами и модулями? Везде суют абстрактные примеры не затрагивая всего.
Например как использовать свой написанный пакет? Просто без всего с прямым адресом - ругается, говорит не в стд. Использую go mod вообще все по пизде идет. Ответы на SO света не пролили к сожалению
Да, сахарку бы, чтобы в 1 строчечку всё, условным сортбаем
> Например как использовать свой написанный пакет? Просто без всего с прямым адресом - ругается, говорит не в стд.
/myapp
- go.mod
- myapp.go
- /mypackage
- - go.mod
- - mypackage.go
В myapp импортишь "myapp/mypackage"
Пакет это просто папка. 1 папка 1 пакет. Думай про пакет как про 1 класс. Хочешь новый класс - делай новый пакет (папку)
Вот моя структура. Я в twodfigures сделал go mod init - пик 2, потом выполнил go mod init в threedshapes - пик 3. По итогу выдает ошибку (пик 4). И как это фиксить?
Что-то со скрипом заработало. Правильно понимаю, что локально с модулями работать тот еще пердолинг и проще их на гитхаб выгружать? Во всех примерах суют replace в go.mod, либо один гомод, если все в одном каталоге.
Сап, гоферы. Скажите, вы часто в рабочих проектах сталкиваетесь с DDD, clean architecture, CQRS, event sourcing? Какие вообще самые популярные архитектурные подходы в серьёзных гошных проектах? Как работаете с базами данных, ORM не в почёте?
>DDD
Закинуть все структурки доменной модели в папочку domain/model, в случае с гормом можно даже без DTO для репы обойтись.
>clean architecture
Запросики с гормом в папочку repo, grpc+rest запросы в transport, интерфейсы вынести в domain/model при желании, можно и рядом с реализацией положить
>CQRS
CREATE MATERIALIZED VIEW puk TO hruk AS ...;
>event sourcing
Пукнуть в кафку, авось кому и пригодится. Или забить на ивенты и настроить крон-джобы, чтобы выгребать весь стейт раз в час, если объектов мало.
>Какие вообще самые популярные архитектурные подходы в серьёзных гошных проектах
Микропенисы или модульные монолиты, если лень с зависимостями ебаться. И обязательно всё в кубер положить, даже если у тебя полтора пода на стенде используется.
>Как работаете с базами данных, ORM не в почёте?
Кто как, работал и с sqlbuilder, и с gorm, и руками запросики к pg писал, здесь всё зависит от хотелок техдира. Если попадется нормальный, то и нормальное DDD с чистой архитектурой будет вместо того пиздоса что я выше описал, лол.
Go -> SQL -> (Docker, k8s, Kafka, RabbitMQ) -> mock interviews
в стаковерфлоу нихера нет.
layout := "2006-01-02 15:04:05"
value := "2023-12-14 17:09:47"
date, _ := time.Parse(layout, value)
fmt.Printf("date: %v\n", date)
Возникает вопрос, почему тогда нельзя
date, _ := time.Parse(value, value)
или вообще
date, _ := time.Parse(value)
подразумевая строку одновременно шаблоном и обрабатываемым значением?
Упс, сегодня я также узнал, что
2006-01-02 15:04:05
это не случайная, а конкретная дата, только она подходит в качестве шаблона.
Пиздец, вопросов больше не имею.
https://apidock.com/rails/v5.2.3/String/to_datetime
>
>Почему за пределами main'а неиспользуемым переменным норм, а внутри нет?
может потому что ты совсем дебил переменная может использоваться в другом файле в том же пакете?
>переменная может использоваться в другом файле в том же пакете
Может, но не используется же. Но именно в main это считается не ок.
если ты реально не понимаешь, почему это работает вот так, то завязывай с программированием
Я ньюфаг. А ты просто плохо умеешь объяснять, вот и всё.
Не понял про same channel, если второй вызов был в мейн горутине и он сразу срёт в стдаут.
мимо говноходил
Ваще изи, раз ты базу знаешь как я понял, то читай след книгу
Let's Go Alex Edwards , там прям шаг за шагом строишь веб проект. После того как и прочтешь, читаего этоже автора вторую книгу по Rest API.
Надеюсь мне потом не придётся читать про 4 или про 5
>Если попадется нормальный, то и нормальное DDD с чистой архитектурой будет вместо того пиздоса что я выше описал, лол.
А что такое "нормальное DDD"? Я был в конторах, где чуваки все время рассуждали в терминологии DDD при разработке и постоянно оперировали паттернами и старались все писать как дядюшка Боб завещал, но это было невозможно читать и поддерживать из-за кол-ва абстракций. По совпадению все эти челы были бывшими джавистами/шарпистами/пыхарями.
Также был и на проектах, где буквально SQL-запросы были вперемешку с логикой. Даже не могу сказать, что из этого хуже.
не для вкатунов 100%, даже в описании написано что уже для работающих бывалых бэкендеров, а так норм
Правильно, зачем конфигурируемость нужна? Пусть задача под ЯП подстраивается))))
fmt.Print("%v %T %v", 42, 41.0, "govno")
Ну ты понял, в первый параметр это шаблон в который подставляются следующие в порядке в котором они переданы
потому что надо не в онлайн песочнице код писать
>Поэтому образ с golang-lint один единственный и способ запуска один единственный.
>тащит васянские контейнеры из интернета во внутренний контур
пиздец. просто пиздец
AddToA(p)
func AddToA (pointer int) {
res := pointer pointer
pointer = res
}
Почему здесь, в функцию AddToA мы передаём переменную типа int, что подразумевает что мы передаём уже распакованный указатель, а затем к этой же переменной применяем ещё раз *, что означает что мы 2 раза распаковываем этот указатель. Почему не передаём переменную типа pointer &int ?
Не понял что ты сюда запостил, видимо твой код должен выглядеть как на пикриле.
>в функцию AddToA мы передаём переменную типа int
Мы передаем указатель на тип int
> что подразумевает что мы передаём уже распакованный указатель
Не подразумевает
>а затем к этой же переменной применяем ещё раз *, что означает что мы 2 раза распаковываем этот указатель
Ты в функции получил указатель, разыменовал его, получив значение, вычислил новое значение и перезаписал pointer, опять разыменовав указатель
>★
Ну ты чудик, конечно
Go has pointers. A pointer holds the memory address of a value.
// это вроде понятно
The type ★T is a pointer to a T value. Its zero value is nil.
// а тут уже не понятно
var p ★int // что это значит вообще? для чего это?
Кстати о поинтерах - что делать с энтим вашим Heap Escape?!
Ведь даже линтеры по умолчанию с ним отключили все замечания чтоб не ебать народ, а народ их обратно включает и ебётся...
Когда стоит начинать передавать значения по ссылке вместо копирования чтоб кидание в кучу (передача по ссылке) было выгоднее по производительности? когда структура больше трёх попугаев размеров? 4? 5?
>Я хуею с вечных неосиляторов смысла поинтеров и их * и &...
Если это настолько понятно, что удивляет непонимание, то объясни, плиз.
https://go.dev/play/p/t336W8T7grS (вернее ожидается, что stop не должен выводиться)
Потому что & это оператор взятия адреса.
>>246799
>что делать с энтим вашим Heap Escape?!
Избегать долгоживущих динамических аллокаций. Если избегать не получается, то использовать пулы для таких объектов чтоб gc их не сожрал раньше времени, обмазываться линтерами, рефакторить код, страдать.
>когда
Не помню точную метрику по размеру структуры, которую рекомендовали создатели гошки. Вроде все что меньше мегабайта в целом по перфу особо не бьет но зависит от случая.
Так же используй когда надо менять состояние у объекта.
Еще поинтер ресиверы, там есть свои юзкейсы когда их стоит юзать(почти всегда)
>>246841
Что у тебя не работает? Позапускай от раза к разу, и увидишь что вывод будет отличаться. А потом почитай про синхронизацию горутин и рейс кондишн
Локально у меня выводится строка received stop
На плеграунде нет. Перезапускал десятки раз
Какие вообще есть советы по дебагу такого, когда локально всё работает одним образом, а на сервере другим?
На плейграунде окружение стерильное слишком.
Последовательность выводов в консоль разная, потому что отсутствует синхронизация горутин и происходит гонка. На плейграунде такое видимо не отлавливается потому что как уже сказали - платформа специфичная
>- Донован, Керниган "Язык программирования Go"
Кто вкатывался по этой книге? Расскажите про ваши впечатления и актуальность.
>Какие вообще есть советы по дебагу такого, когда локально всё работает одним образом, а на сервере другим?
Писать логи, изучать их. Отладка многопоточности всегда была болью и страданием.
>Когда стоит начинать передавать значения по ссылке вместо копирования чтоб кидание в кучу (передача по ссылке) было выгоднее по производительности?
Передача по указателю не всегда означает, что объект будет размещен на хипе. Возврат указателя из функции - да, потому что в этом случае объект живет дольше, чем фрейм функции, которая возвращает указатель на него.
Бамп
Вы наверняка тут все это читали. У меня в книжном магазине продается, но стоит 1500 рублей.
> А его и не было вроде
Просто удивило, что есть украинский, польский и даже каталонский, а русский куда то запропастился
Не перевели на русский, вот и все.
В 2021 году убрали много языков, можешь сравнить.
https://web.archive.org/web/20210227220537/https://tour.golang.org/welcome/2
https://web.archive.org/web/20211006121247/https://tour.golang.org/welcome/2
https://web.archive.org/web/20220315185336/https://go.dev/tour/welcome/2
Из языков, на которых было, а сейчас нету:
Arabic — العربية
Traditional Chinese — 中文(繁體)
French — Français
German — Deutsch
Hebrew — עִבְרִית
Italian — Italiano
Romanian — Română
Russian - Русский
Uzbek — Ўзбекча
Я правиль понимаю, что в go не вкатиться, судя по вакансиям на hh? имею чуть больше года опыта на PHP, но проект легаси, поэтому не могу сказать, что сильно поднялся за счёт его
в битрикс/1с
Не, я не шучу. Хочу узнать как обстоят дела. Я уже и так очень много лет вкатывался в IT, а перекатываться на другой язык хоть и хочется, но быть ждуном не хочется.
Go же вроде недавно обрёл популярность. Почему на ваках в основном 3-6 лет опыт просят.
>в битрикс/1с
Двачаю в 2020 когда вкатывался также сделал туда берут ваще с улицы, потом перекатился через полгода на другой язык. На собесе напиздел что меня звали на ларавель, но в итоге кроме битрикса нихуя не видел, сидел только формочки верстал в этих говношаблонах, тудым-сюдым и решил больше с пхп не связываться.
Главное в этом болоте надолго не засиживаться, а то пиздец. Благо там удалось всякие штуки от докера до гита вживую потрогать и в общем и целом нормальные студии стараются работать как настоящие разработчики со всеми инструментами насколько их можно на это говно натянуть
Скорее всего там есть те кто в контексте языка и своевременно могут обновлять документацию на своих языках. Да и в принципе там инглиш простой в этом туре, особо заумных слов нет и почти все слова из инглиша в русский переводятся также, можно не ебать мозги.
>Почему на ваках в основном 3-6 лет опыт просят.
Бро, языку уже 12 лет, и всё на спине 1й корпорации в мире по узнаваемости
12, но он же не сразу взлетел, последние лет 5 что уже много по айти меркам
>что значит напиздел
Ну что типа контора обещала лару, а занимался битриксом. На самом деле они там были увешены сертификатами
>а почему на ларку не взяли?
С 0 опытом мне говорили что пиздец как внимательно ознакомились с моим резюме, но к сожалению иди на хуй.
Но потом с 0,5 годами опыта стали отшивать меньше
На пикриле две программы.
В первом случае срез постепенно съёживается.
Во втором случае его сразу съеживают до пустого (s[:0], 0 элементов), а на следующем шаге он внезапно возвращается с элементами (s[:4], 4 элемента). Непонятен этот переход от пустого среза к непустому.
Когда ты обрезаешь ты не делаешь ничего с числами которые были до или после, они так же остаются в памяти. К примеру тут видно, что капасити не изменился
И меня за 3 часа заебло, что залупа ругалась на функции которые не использую, и удаляла импорты, которые ПОКА НЕ ИСПОЛЬЗУЮ.
Это можно как-то отключить-то, блядь? Потому что, ну хуй знает. Меня вот это триггерит. Особенно потому что - я как дебил из-за этого постоянно лезу эти импорты перепрописывать.
Короче. Объясните, как настроить сетап по человечески? Вот в том же родном шарпе у меня как. По дефолту - ток форматтирование. А уже перед коммитом - я клацаю: причесать, и вся такая вот залупонь тоже исчезает из финального кода. Но не на каждый же сейв файла это делается.
```
func isPalindrome(x int) bool {
str := strconv.Itoa(x)
if len(str) == 1 {
return true
}
//середина строки
middle := len(str) / 2
middleIndex := string(str[middle])
fmt.Println(string(middleIndex))
var rightInt rune
var leftInt rune
//нужно слева идти до середины попутно сравнивая каждое число слева и справа
for i, el := range str {
if i < middle {
leftInt = el
}
if i >= middle {
rightInt = el
fmt.Println("rightInt is", rightInt)
}
if leftInt == rightInt {
fmt.Println("t")
return true
}
}
return false
}
```
Путь к 300к
```
func isPalindrome(x int) bool {
str := strconv.Itoa(x)
if len(str) == 1 {
return true
}
//середина строки
middle := len(str) / 2
middleIndex := string(str[middle])
fmt.Println(string(middleIndex))
var rightInt rune
var leftInt rune
//нужно слева идти до середины попутно сравнивая каждое число слева и справа
for i, el := range str {
if i < middle {
leftInt = el
}
if i >= middle {
rightInt = el
fmt.Println("rightInt is", rightInt)
}
if leftInt == rightInt {
fmt.Println("t")
return true
}
}
return false
}
```
Путь к 300к
_ := твой_мусор, не благодари.
Кто объяснит почему так?
Задача вернуть тру, если в массиве есть дубликаты
https://leetcode.com/problems/contains-duplicate/
Одинаковые значение не добавляются, а заменяют старое. Ты где-то в другом месте проебался.
>имеет смысл прочитать
Нет. Это специфичная книга, которая актуальна только для джэвадебилов. Вся книга буквально посвящена 100500 особенностям JMM, которые нужно зазубрить как стихотворение, чтобы не обосраться при написании многопоточного кода
поступил в магу, так что есть возможность что-то выучить пока есть время, что делать?
интересует бекенд
ва банк?
0.55
у мня так
{
"explorer.confirmDelete": false,
"go.lintOnSave": "off",
"gopls": {
},
"[go]": {
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.organizeImports": "never"
},
},
"go.languageServerFlags": [
],
}
А нахуя ты импорты руками прописываешь, если у тебя они автоматически прописываются, когда ты используешь идентификаторы (переменные, функции, типы) из других пакетов? В чем проблема того, что у тебя нет импорта того, что ты не используешь? Когда ты напишешь код, использующий что-то из другого пакета, импорт сам подтянется.
Хз, наверняка проще можно. Если через хешмапу, то тебе ничего считать вообще не надо, достаточно проверять встречался ли такой номер раньше.
ой-ой-ой, вы потратили аж один байт (4 на самом деле т.к. memory padding) на bool в мапе вместо struct{}{}, мы вам не перезвоним!
Эээ... А как надо то?
package main
import (
"fmt"
)
func main() {
var inputLine string
operator := "5"
var operators = []string{"+", "-", "*", "/"}
fmt.Println("Введите выражение, римскими или арабскими числами, без пробелов.")
fmt.Println("В случае использования римских цифр - не использовать числа больше десяти!")
fmt.Scan(&inputLine)
for _, operator = range operators{
if strings.Contains(inputLine, operator) break
}
fmt.Println(inputLine)
}
Во-первых, VS Code почему-то подчеркивает строчку package main красным, хотя на компиляцию это никак не влияет. При этом, в остальном коде, можно печатать какие угодно синтаксические ошибки: никаких подчеркиваний красным не будет.
Во-вторых, самое главное, при запуске, код вылетает со следующим сообщением:
# command-line-arguments
.\main.go:15:44: syntax error: unexpected break, expected {
.\main.go:16:2: syntax error: unexpected }, expected expression
Что это такое и как это пофиксить?
package main
import (
"fmt"
)
func main() {
var inputLine string
operator := "5"
var operators = []string{"+", "-", "*", "/"}
fmt.Println("Введите выражение, римскими или арабскими числами, без пробелов.")
fmt.Println("В случае использования римских цифр - не использовать числа больше десяти!")
fmt.Scan(&inputLine)
for _, operator = range operators{
if strings.Contains(inputLine, operator) break
}
fmt.Println(inputLine)
}
Во-первых, VS Code почему-то подчеркивает строчку package main красным, хотя на компиляцию это никак не влияет. При этом, в остальном коде, можно печатать какие угодно синтаксические ошибки: никаких подчеркиваний красным не будет.
Во-вторых, самое главное, при запуске, код вылетает со следующим сообщением:
# command-line-arguments
.\main.go:15:44: syntax error: unexpected break, expected {
.\main.go:16:2: syntax error: unexpected }, expected expression
Что это такое и как это пофиксить?
> .\main.go:15:44: syntax error: unexpected break, expected {
> .\main.go:16:2: syntax error: unexpected }, expected expression
Вообще плохо с ангельским? Оберни break в {}
А, вот в чем дело? Просто привык к C и если не ошибаюсь, к Dart, где если одна строчка, можно обойтись и без фигурных скобок.
А как пофиксить подчеркивание красным строки package main?
Теперь можно писать
for range 100
for i := range 100
for k, v := range syncMap.Range
Ну хер его знает, надо поиграться, что там как, но реализация итераторов через func(func(...) bool) выглядит как говно. Правда говей говно.
>Теперь можно писать
>for range 100
Так и раньше можно же было, go play с 1.22 это подтверждает
+ точно видел в туториалах давно такое
На вопрос ответь.
Многие конторы перешли с пхп на го в свое время, да и в целом го сейчас самый модный молодежный бекенд язык
На кодране все работает нормально. Локально, если вводить через консоль, после ввода строки ожидает новую.
Петухон кал дерьма
Пхп кал дерьма
Джс кал дерьма.
Выбор адеквата такой:
1) Джавакотлин или шарп
2) Голенг
3) Раст или с++ богом становится
Понять эту базу можно только если попишешь на кале дерьма, а потом перейдешь на что-то нормально из списка ниже
Я так понял, выкатили официально, до этого была экспериментальная фича.
ты не туда зашёл. Но если речь про имедж с го, то меньше гига всё равно не ужмёшь
Что мультистэйдж сборка? Тип это два гига только с бинарями вышло?
>Какой сейчас актуальный стек
Стандартная библиотека, докер, кубер, кафка/кролик
>что примерно требуется от джуна
Тугая попка и знать своё место
звучишь как таксист
func createArr2(n []int) []int {
for _, el := range n {
if el == 3 {
el = 33
}
}
fmt.Println(n)
return n
}
А через обычный for меняет все 3 на 33. В примере выше я же обращаюсь к самому значению, а не к индекусу.
el у тебя не ссылка на элемент, а копия
https://habr.com/ru/companies/yandex_praktikum/articles/783504/
sps
Да оно понятно. Можно и ctrl+c хуйнуть. Интересно было почему оно в ожидание уходит, не должно же. В доках вроде такой же пример дается
https://leetcode.com/problems/find-closest-number-to-zero/submissions/1367562163
анон, путь к 300к
А ты уже работаешь?
Это без сортировки решается
бля просто случайно увидел, решил тоже попробовать порешать, да, на плюсах конечно, хз можно ли так в гошке сделать, если да, то зачем ты так много пишешь ради изи задачки
Вот как более оптимально на гошке, но я нихера не понял
https://leetcode.com/problems/find-closest-number-to-zero/solutions/1954163/go-golang-time-o-n-17-ms-100-space-o-1-6-6-mb-100
Неиронично стандартный с тех пор, как туда подвезли нормальный роутинг.
Это самый очевидный вариант, но автор явно не знает назначение switch-а так что хз про отпимальность лол
На пэхапэ всегда будут в битрикс пытаться садить, кроме сексшопов ничего не дадут делать
Про жс можешь у вуедебила спроситЬ, каждый день ноет что не пошел в бэкенд, а рядом нодовщик там же проклинает выбор стека
А про питон, ну зачем на нем писать, если есть божественный голенг? Ни рыба, ни мясо. Разве что если МЛ занимаешься
Круды на шарпе и джаве поудобнее будет клепать
>На пэхапэ всегда будут в битрикс пытаться садить, кроме сексшопов ничего не дадут делать
Ну пиздец, что же выбрать?
мимо выбираю между ГОвном с 0 джуновских вакансий и пыхой
>с 0 джуновских вакансий
Блять как же бамбит. Ну если нет джуновских вакансий, ищи обычную вакансию без приставок. Логично? Опять щас будешь говорить, ну там требуют опыт, как же устроиться. Легко нахуй и просто - подаёшь заявку и ходишь по собеседованиям. Приходишь, если они начинают начинают пиздеть, мол ну какже, мы хотим 1+ год опыта, а у вас ноль. Говоришь ОКЕЙ! Давайте я вам сделаю скидку 30%, у вас зп 100к, а я поработаю за 70к. Вас устроит такой вариант? Нет, я пойду дальше искать. Всё нахуй.
> мимо выбираю между ГОвном с 0 джуновских вакансий и пыхой
Пока ты учишь го до приемлемого уровня, как раз могут появится сочные вакансии для джунов.
Так что, учи то, что тебе больше нравится
Потому что похапэ - это язык без будущего. Ёпта, его не зальёшь прошивкой в дрон. На нём не напишешь автоматизацию. Он создан только для веба и ничего кроме веба не умеет. На нём не будут писать консольные приложения (если только полные отморозки). Голанг - это относительно новый язык. Он в два раза моложе похапэ. Он гораздо быстрее работает и потребляет меньше памяти. А значит, потенциальных областей использования больше. Петухон и так уже перенасыщен, туда пруться все кому не лень. Js - это чисто вебня. Я лично никогда питон не любил, он кажется чересчур скриптовым.
В каком-то из тредов советовали вкатиться в бэкенд на этих фреймворках Python, потом перейти на Go.
Без этого есть риск, что ты не доползешь в своем самообучении до того что есть в вебфреймворках из коробки. Просто пройдешь мимо или не осилишь делать из мелких деталей. Сляпаешь микрокруд без аутентификации и авторизации и пойдешь кринжевать лидов на собесах. Так что лучше б слепил сначала магаз на ларавеле, а потом уже свое го учил и переписывал на него. Но можешь конечно язык учить и литкоды, а потом накрутить резюме на мидла и мечтать, что псевдомидла станут обучать на работе всему чему надо.
А зачем переделывать то, что и так уже работает, и позволяет бизнесу функционировать? Зачем? Никак не могу этого понять.
откуда вы взяли хуйню что нет джуновских позиций на го?
и стажировки, и джуновские есть
я сам вкатун с 0 опыта, за 4,5 месяца нашел джуном работу на го
по го прошел курс на степике бесплатный + смотрел всякие видосы на ютубе от Николая Тузовая, Олега Козырева. Владимир Балун и тд
по sql sql academy курс + разные видосы на ютубе по отдельным темам
по сетям статьи в интернете + видосы на ютубе
отдельные технологии типа докера изучал на практике делая свои пет проекты
к собесам готовился по всяким статья типа 100 вопросов и ответов с собеседований Go + записи собеседований на ютубе
ну, а дальше дело техники: делаешь нормальное резюме, откликаешься везде с сопроводительными письмами, делаешь тестовые, добавляешь их на гитхаб, проходишь собесы, закрываешь слабые стороны постепенно
после пары собесов поймешь чего не хватает, закроешь эти темы и дальше уже должно быть несложно
ну вот у меня полтора года заняло вместе с поиском работы, даже года по идее хватит, если не ебланить и знать, что делать
а, забыл добавить, ещё решал задачи на литкоде, где-то 50 нарешал, из которых примерно 35 изи и 15 медиум
>ну, а дальше дело техники: делаешь нормальное резюме, откликаешься везде с сопроводительными письмами, делаешь тестовые, добавляешь их на гитхаб, проходишь собесы, закрываешь слабые стороны постепенно
Но на Go мало джуниорских вакансий. Или ты откликался на все вакансии, в том числе где требуется опыт?
Отликался даже там, где требуют опыт. Просто в сопроводительном писал мол вижу что у вас требуется опыт но я могу быть полезен тем-то тем-то
На хабре статья есть, где парень проспамил тыщу вакансий с сопроводиительным и без. По итогу на 0000001% разницы
Малаца!
> название вот "Программирование на Golang"
Что ж, пойду добивать
> по сетям статьи в интернете + видосы на ютубе
По сетям как сильно углублялся?
Какие нибудь книжки читал? Пиратские курсы смотрел?
Как у тебя с английским?
по сетям ну посмотрел половину курса Андрея Созыкина + смотрел видео по REST API, как работает HTTP, gRPC и прочее, ничего особенного, сильно не углублялся, Танненбаума не читал)
Книжки не читал, пиратские курсы смотрел, да. На рутрекере есть слитый курс от озона по го + у яндекса смотрел Школу бэкенд разработки за 2023, там по гошке
Англ у меня C1 IELTS, но всем похуй, никто ничего по этому поводу не спрашивал
Тем временем я с 300+ решенными, петами, но ни разу не откликавшийся, сижу и страдаю на нынешней работке
ну хотя бы она на удаленке тоже и почти на зп джуна
если ты не пиздишь и у тебя реально 300+ на литкоде, то подавайся на стажировку в Яндекс, легко решишь алгозадачи и устроишься
https://www.youtube.com/watch?v=yIyytROWQhk
Есть информация зачем в реальных бенчмарках сравнивается языки для системного программирования и хай левел язык для удобного перекладывания джейсонов?
ну и в догонку хочу второй язык выучить, думаю между пхп и js(потому что часто что-то с ноды и пыхи на го переписывается). Хочется что-то ООП-шное пожрать(хотя я охуевал редкостно когда пробовал питон и c++). Предложения тоже приветствуются.
На последнем среди каких языков?
Смысл осваивать джаву по мини-муму? Книжки читать? По микропенисам сейчас книг больше актуальных на голенге и питухоне. Гошникам хорошо. Язык для веба самодостаточный, можно время тратить на изучение технологий, а не других языков и платформ.
Чтобы не бояться, когда в классических книгах увидишь примеры на Джаве. По той же причине полезно уметь читать код на C и C++.
Ну не нравится, тогда читай книги, пока что не проверенные временем. Потом расскажешь, что годнота, а что нет.
Если мы об одном, то чел генерил сопроводительные в gpt, за что его в комментах попустили, т.к. такое видно за километр и hr-ы обычно скипают это
Да мне без разницы, нормальный или нет. Мне не нравится. Вроде понятно сформулировал вопрос, но ни одного нормального ответа. Такое чувство что вы все мой вопрос чисто использовали чтобы поговорить о том что вам интересно, а ответов не дали
Так а как это поможет моей цели? Я код не научусь писать круто и понятно если буду знать что там под капотом
В вопросе написано что ты незнаешь чего хотеть. А потом окажется что Тигра любит рыбий жир, который все ненавидят в Чудесном Лесу.
Пошла графомания. Что угодно вместо нормального ответа) Неужели так сложно просто помочь
Научишься писать работающий код на голенге и станешь тимлидом без жопной боли, будешь угорать с новоиспеченых пориджей, котрые пишут код не ведая, что творят.
Вот ты троллишь, а мне правда нужна помощь. Мне очень обидно
Не хочу вообще никогда занимать такие позиции, мой план - пока варит голова менять компании и в каждой быть мидлом, но чтобы уровень инженерной культуры был всё выше и выше
Это интернет, тут так устроено общение.
Ненене, Сатана, второй раз ты меня не обманешь. Лид - это самая конченая позиция во всем айти. Зп чуть выше сеньки, а ебут со всех сторон.
>Я коммерческий код писал на джяве нихуя ее не зная, а ты про читать
Да таких специалистов полный Бангалор.
И шо? Это же плюс жавы что на ней можно что-то написать без знания ее базы, даже полноценно в синтаксисе не разобравшись, главное знать куда. Любая макака с опытом за секунду нагуглит как лямбды пишутся и что такое single method interface. Не то что поставить чела перед проектом на расте.
Нет ты.
ну в этом контексте - да. Я бы сказал что на го именно классические паттерны не особо нужны/реализуемы/применимы
Так проблема отсутствия опыта в том, что дебил на hr нажмет кнопку "отсортировать от года опыта" и ты даже на рассмотрение не попадешь, не то что до собеседования. Для этого надо пиздеть, а чтобы пиздеть, надо иметь какой-то опыт. Замкнутый круг
480x360, 0:53
ляяя откуда такие вкатыши берутся.
Думает, если сможет написать пару сотен строк говнокода, то будет получать 300к/нс.
Иди терминал/баш/ос вначале изучи. Программа висит потому что ждёт ввод, а ctrl+d подаёт 0 в стдин = сигнал окончание ввода.
Только лишь в плане синтаксического минимализма. В остальном - это новая джава с синтаксисом паскаля.
>написать пару сотен строк говнокода, то будет получать 300к/нс
Сюрприз сюрприз сейчас это так и работает (к сожалению или к счастью)
подал тебе хуй за щеку, проверяй сигнал окончание
Что есть на рынке легкого, чтобы не тянуло за собой ничего, работало просто как компоненты и было кроссплатформенным? Пока из такого выцепил fyne, но мб еще что есть