Eldos
Boris
ну и как показатель, в вакансиях вообще не видел упоминания знания фреймворков
Boris
еще находил очень страшное видео, где мужик говорил, что orm is overkill so use just plain sql
Boris
Eldos
Eldos
:)
Boris
во во
Boris
я про это же
Eldos
а то я после джавы привык к хайбернейту
Eldos
:D
Boris
видел что-то про sql boiler
Patamen
Неужто чистый sql так сложно писать?)
Boris
ну я так понимаю, что это просто квери билдер какой-то
Boris
Boris
сначала сидишь в своем тихом оопшном мире, где это может привезти к, емае, как эта штука называется
Boris
очень функциональщики любят
Boris
аамм
Boris
непредвиденные последствия короче
Boris
))
Evgeny
сайд-эффектам
Boris
и схему сам ручками я последний раз писал года 2 назад
Boris
не объектно думать теперь сложно
Boris
Boris
кстати, а как вообще в энтерпрайзе
Boris
чистую процедрку чаще юзают?
Boris
ооп реально оверкил?
Boris
и, наскольно реален функциональный подход в рамках гоу?
Segmentation
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
Илья
ну буфер решает проблему получения, а не отправки
Grigory
Финалайзер не поможет, непонятно на что вешать и зависания функции тут вроде никак не полечить
Тут ответ в буфере
Grigory
Grigory
Та, которая пишет в канал
Илья
Grigory
Илья
кстати а гц трет не закрытые каналы?
Emin Zalaev
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
Segmentation
Mark
Mark
Это же только с Set-Cookie работает, который устанавливает Cookie
QRanked.com
Denis Pershin
Клиент вроде у себя в сторе должен его хранить и прикладывать к запросу
QRanked.com
а вс стор как его добавить?
Mark
Если какие-то API запросы, которые делаются из js, то можно и в хранилище
Mark
https://habr.com/ru/company/ruvds/blog/512866/
Null
🍸 Как построить масштабируемый API на Go с помощью Gin
Что такое Gin?
Gin — это самый популярный высокопроизводительный фреймворк для Go (Golang), с помощью которого можно создавать веб-приложения. Если вы знакомы с ExpressJS, то Gin очень на него похож, и работать вам с ним будет довольно удобно.
Что мы будем создавать?
Проект у нас будет стандартный. Мы создадим простой API для работы с книгами. Не волнуйтесь, хоть ваш проект и будет основан на масштабируемом подходе, сам API окажется довольно простым, и проблем с пониманием процесса не возникнет.
Что необходимо?
Вам потребуется базовое понимание Go. Лично я в качестве редактора кода использую Visual Studio Code, вы же вольны выбирать на свое усмотрение. Только имейте ввиду, что в статье вам встретится команда code . — это собственная команда VSCode, которая открывает в редакторе текущий каталог.
➡️ Читать
⚙️ Github
@Golang_google