Boris
ну и как показатель, в вакансиях вообще не видел упоминания знания фреймворков
Boris
еще находил очень страшное видео, где мужик говорил, что orm is overkill so use just plain sql
Eldos
ну и как показатель, в вакансиях вообще не видел упоминания знания фреймворков
Я вроде один раз слышал что на собесах по голэнгу фокус идет на знания самого гоу, его аспектов и прочего всего
Patamen
ну и как показатель, в вакансиях вообще не видел упоминания знания фреймворков
Зачастую особо и не требуют знания фреймворков Здесь не настолько всё узконаправленно, редко вообще кто-либо требует конкретные фреймворки
Boris
еще находил очень страшное видео, где мужик говорил, что orm is overkill so use just plain sql
мой разум после EF core и мииллиарда ормок для ноды немного ошалел в этот момент
Eldos
:)
Boris
во во
Boris
я про это же
Eldos
а то я после джавы привык к хайбернейту
Eldos
:D
Boris
видел что-то про sql boiler
Patamen
Неужто чистый sql так сложно писать?)
Boris
ну я так понимаю, что это просто квери билдер какой-то
Boris
Boris
сначала сидишь в своем тихом оопшном мире, где это может привезти к, емае, как эта штука называется
Boris
очень функциональщики любят
Boris
аамм
Boris
непредвиденные последствия короче
Boris
))
Evgeny
сайд-эффектам
Boris
и схему сам ручками я последний раз писал года 2 назад
Boris
не объектно думать теперь сложно
Patamen
не объектно думать теперь сложно
Никто не мешает думать объектно или около-объектно))))
Boris
кстати, а как вообще в энтерпрайзе
Boris
чистую процедрку чаще юзают?
Boris
ооп реально оверкил?
Boris
и, наскольно реален функциональный подход в рамках гоу?
Patamen
чистую процедрку чаще юзают?
Знакомый работает в mail.ru уже второй год Питон, Джава Говорит, почти любые задачи закрываются по требованию срочности чуть ли не в процедурном стиле, без классов и объектов в большинстве своих случаев
Patamen
Так что можно просто обойтись удобством работы микросервисов на Go и не париться))0))
Boris
у меня вопрос именно про процедурный го)
Boris
типа, пытаться строить что-то объектное — это не мовитон?
Boris
Но вообще, всем большое спасибо! помогли)
Null
↪️ Мой аналог The GO Playground Под данным катом описано как я создал свой аналог The GO Playground. Это было сделано исключительно по собственному желанию в образовательных целях. Ссылка на репозиторий. Кодовая база проекта традиционно состоит из фронта и бэка. В качестве языка бэка используется Go, на фронте JS + jQuery. В моей реализации реактивная отправка данных на фронт осуществляется с помощью протокола WS, а получение исходного кода по ссылке с помощью HTTP. Для роутинга в приложении я использовал httprouter. Изначально я использовал html/template и автообновление блоков HTML c помощью функции load(), но потом отошел от этой идеи ввиду некоторых сложностей реализации. На самом деле оригинальная платформа сделана очень хитрым образом с точки зрения использования ресурсов системы. Если в пользовательской программе используются конструкции задержки по типу time.Sleep, программа на самом деле не спит, а выполняет свой код непрерывно, минуя задержки. А на выходе генерируется последовательность байт с учетом задержки, которую фронт отрабатывает таким образом, что пользователь не видит разницы. Создается ощущение, что программа запущена локально. Для безопасной работы с сетью и файловой системой используются некоторые трюки, про все подробности, используемые в The GO Playground можно почитать по ссылке. Оригинальный код платформы по ссылке. Домашняя страница выглядит весьма минималистично, на выбор представлено пару тестовых программ. Блок ввода кода, блок результата выполнения программы. ➡️ Читать ⚙️ Github @Golang_google
Вова
Подскажите, у neovim перед vscode для go есть существенные недостатки ? Может у кого есть опыт в разработке на neovim поделитесь пожалуйста
Matvei
↪️ Мой аналог The GO Playground Под данным катом описано как я создал свой аналог The GO Playground. Это было сделано исключительно по собственному желанию в образовательных целях. Ссылка на репозиторий. Кодовая база проекта традиционно состоит из фронта и бэка. В качестве языка бэка используется Go, на фронте JS + jQuery. В моей реализации реактивная отправка данных на фронт осуществляется с помощью протокола WS, а получение исходного кода по ссылке с помощью HTTP. Для роутинга в приложении я использовал httprouter. Изначально я использовал html/template и автообновление блоков HTML c помощью функции load(), но потом отошел от этой идеи ввиду некоторых сложностей реализации. На самом деле оригинальная платформа сделана очень хитрым образом с точки зрения использования ресурсов системы. Если в пользовательской программе используются конструкции задержки по типу time.Sleep, программа на самом деле не спит, а выполняет свой код непрерывно, минуя задержки. А на выходе генерируется последовательность байт с учетом задержки, которую фронт отрабатывает таким образом, что пользователь не видит разницы. Создается ощущение, что программа запущена локально. Для безопасной работы с сетью и файловой системой используются некоторые трюки, про все подробности, используемые в The GO Playground можно почитать по ссылке. Оригинальный код платформы по ссылке. Домашняя страница выглядит весьма минималистично, на выбор представлено пару тестовых программ. Блок ввода кода, блок результата выполнения программы. ➡️ Читать ⚙️ Github @Golang_google
Круто! Было бы прикольно развить тему изолирования запускаемого кода, запускать го в васме или контейнере. Буду ждать второй части статьи, где эти темы будут раскрыты лучше ;-)
Viacheslav "Marpa3D"
↪️ Мой аналог The GO Playground Под данным катом описано как я создал свой аналог The GO Playground. Это было сделано исключительно по собственному желанию в образовательных целях. Ссылка на репозиторий. Кодовая база проекта традиционно состоит из фронта и бэка. В качестве языка бэка используется Go, на фронте JS + jQuery. В моей реализации реактивная отправка данных на фронт осуществляется с помощью протокола WS, а получение исходного кода по ссылке с помощью HTTP. Для роутинга в приложении я использовал httprouter. Изначально я использовал html/template и автообновление блоков HTML c помощью функции load(), но потом отошел от этой идеи ввиду некоторых сложностей реализации. На самом деле оригинальная платформа сделана очень хитрым образом с точки зрения использования ресурсов системы. Если в пользовательской программе используются конструкции задержки по типу time.Sleep, программа на самом деле не спит, а выполняет свой код непрерывно, минуя задержки. А на выходе генерируется последовательность байт с учетом задержки, которую фронт отрабатывает таким образом, что пользователь не видит разницы. Создается ощущение, что программа запущена локально. Для безопасной работы с сетью и файловой системой используются некоторые трюки, про все подробности, используемые в The GO Playground можно почитать по ссылке. Оригинальный код платформы по ссылке. Домашняя страница выглядит весьма минималистично, на выбор представлено пару тестовых программ. Блок ввода кода, блок результата выполнения программы. ➡️ Читать ⚙️ Github @Golang_google
Вы очень крутой Мастер! 👍🔥🔥🔥
Артем
Добрый день, подскажите, кто работает в монге, где вы сетапите индексы (unique итд) ? В скле это в миграциях, а в монго куда? Пока положил в метод после коннекта к базе. Буду рад, если поделитесь
Илья
https://github.com/golang-migrate/migrate/tree/master/database/mongodb/examples
Артем
благодарствую
Артем
не знал про монго миграции :)
vaishnavi
code for counting the repeated characters in a string
Дмитрий
Ребзя, привет! Есть вот такая задачка. Помогите, плес, с правильным ответом. Из всех вариантов кажется, что подходящим будет только 1. С функцией runtime.SetFinalizer ранее не был знаком и что-то лень проверять код. Но почему вообще там должна быть утечка? Если имеется ввиду, что findUserInDB может зависнуть, то как правило для функций где есть обращение в БД, обычно устанавливают таймауты.
Sergey
Если мы выходим в основной функции по Done контекста, то ch уже никогда не будет прочтен, что означает что горутина повиснет на запись. Если же у нас будет канал с буфером, то это позволит горутине достигнуть конца. Ну вроде так, если я не ошибаюсь
Дмитрий
Спасибо, похоже на правду
Emin Zalaev
Илья
по идее третий, но не default, а <-ctx.Done()
Emin Zalaev
по идее третий, но не default, а <-ctx.Done()
Буфер канал проблему не решит?
Илья
ну буфер решает проблему получения, а не отправки
Grigory
Финалайзер не поможет, непонятно на что вешать и зависания функции тут вроде никак не полечить Тут ответ в буфере
Илья
Финалайзер не поможет, непонятно на что вешать и зависания функции тут вроде никак не полечить Тут ответ в буфере
тут проблема не в блокировке при отправке результата , а его получении из бд. даже если канал будет буфферизированным, то мы все равно получим утечку
Grigory
тут проблема не в блокировке при отправке результата , а его получении из бд. даже если канал будет буфферизированным, то мы все равно получим утечку
Нет, тут проблема в том, что если контекст закроется раньше получения из бд - горутина залочится и утечёт
Grigory
Та, которая пишет в канал
Илья
кстати а гц трет не закрытые каналы?
Emin Zalaev
кстати а гц трет не закрытые каналы?
It's OK to leave a Go channel open forever and never close it. When the channel is no longer used, it will be garbage collected.
Emin Zalaev
A channel being open does not constitute a reference to the channel object, and so does not keep it from being garbage collected.
Bekbolat
это же задача из skill assessment линкедина. насколько я помню, я выбрал буферизированный канал. но не уверен в правильности ответа, там в конце теста не показывает правильные ответы
Ooups
Подскажите пожалуйста, вот https://go.dev/play/p/yPNlYgodRT_V есть такой пример небольшой, почему я не могу вызвать в методе run метод Test? Почему он недоступен, не очень понимаю. И как можно решить такой момент?
Ooups
Доперло. Надо указать в AvailableChild еще и интерфейс Test
QRanked.com
Всем привет, подскажите плиз что я делаю не так. пользователь на странице вводит логин и пароль, я проверяю его в keycloack, получаю токен и вроде возвращаю его пользователю в виде Header response. Но в браузере он не сохраняется и следующий запрос идёт без ключа Autorization в header. Что я не так делаю? http server на mux
Mark
Это же только с Set-Cookie работает, который устанавливает Cookie
QRanked.com
Это же только с Set-Cookie работает, который устанавливает Cookie
т.е. я в куки должен записать Autorization код ?
Denis Pershin
Клиент вроде у себя в сторе должен его хранить и прикладывать к запросу
QRanked.com
а вс стор как его добавить?
Mark
т.е. я в куки должен записать Autorization код ?
Если это обычные GET запросы при переходе по ссылке, например, то легче всего в куки, да
Mark
Если какие-то API запросы, которые делаются из js, то можно и в хранилище
Mark
https://habr.com/ru/company/ruvds/blog/512866/
Null
🔥 Полезная подборка каналов 🦫 Golang @golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков. @Golang_google - go для разработчиков @golangtests - тесты и задачи GO @golangl - чат Golang @GolangJobsit - вакансии и работа GO @golang_jobsgo - чат вакансий @golang_books - книги Golang @golang_speak - обсуждение задач Go 🦾 Machine learning @ai_machinelearning_big_data – все о машинном обучении @data_analysis_ml – все о анализе данных. @machinelearning_ru – машинное обучении на русском от новичка до профессионала. @machinelearning_interview – подготовка к собеседования Data Science @datascienceiot – бесплатные книги Machine learning @ArtificialIntelligencedl – канал о искусственном интеллекте @neural – все о нейронных сетях @machinee_learning – чат о машинном обучении @datascienceml_jobs - работа ds, ml 🐍 Python @pythonl – python для датасаентиста @pro_python_code – python на русском @python_job_interview – подготовка к Python собеседованию @python_testit тесты на python @pythonlbooks - книги Python @Django_pythonl django @python_djangojobs - работа Python 🐧 Linux @inux_kal - чат kali linux @inuxkalii - linux kali @linux_read - книги linux 👷‍♂️ IT работа @hr_itwork - ит-ваканнсии 🔋 SQL @sqlhub - базы данных @chat_sql - базы данных чат 🤡It memes @memes_prog - ит-мемы 💡 Javascript / front @javascriptv - javascript изучение @about_javascript - javascript продвинутый @JavaScript_testit -тесты JS @htmlcssjavas - web @hashdev - web разработка ⚙️ Rust @rust_code - язык программирования rust @rust_chats - чат rust #️⃣ c# c++ @csharp_ci - c# c++кодинг @csharp_cplus чат ☕️ Java @javatg - Java для програмистов @javachats Java чат @java_library - книги Java @android_its Android разработка @java_quizes - тесты Java @Java_workit - работа Java @progersit - шпаргалки ит
Null
🍸 Как построить масштабируемый API на Go с помощью Gin Что такое Gin? Gin  —  это самый популярный высокопроизводительный фреймворк для Go (Golang), с помощью которого можно создавать веб-приложения. Если вы знакомы с ExpressJS, то Gin очень на него похож, и работать вам с ним будет довольно удобно. Что мы будем создавать? Проект у нас будет стандартный. Мы создадим простой API для работы с книгами. Не волнуйтесь, хоть ваш проект и будет основан на масштабируемом подходе, сам API окажется довольно простым, и проблем с пониманием процесса не возникнет. Что необходимо? Вам потребуется базовое понимание Go. Лично я в качестве редактора кода использую Visual Studio Code, вы же вольны выбирать на свое усмотрение. Только имейте ввиду, что в статье вам встретится команда code .  —  это собственная команда VSCode, которая открывает в редакторе текущий каталог. ➡️ Читать ⚙️ Github @Golang_google