Dmitriy
Если любите js и падающий софт обязательно попробуйте 😁
это про fiber? Из личного опыта? Причем тут js?
Alex
это про fiber? Из личного опыта? Причем тут js?
Да, про fiber. Нет, не личный, он нерепрезентативен. На нём большими буквами написано что он в духе экспресса.
Nikita
а падения?
Пробегитесь по ишакам на гите. Там частенько что-то в панику просто так выпадает
Alex
а падения?
Много раз на разных ресурсах видел жалобы от разных (скорее всего) людей.
Andrew
Добрый день,используют ли в коммерческих проектах nethttpp или только gin?
Использовали. Брали OpenAPI спеку, генерили код, код подсовывали net/http. А с gin/echo надо возиться, самому ручки прописывать, параметры запроса выдергивать, валидацию проводить
Anonymous
#вакансия #Golangdeveloper #удаленно #idpb #fulltime 💻 Golang-developer ✅ Наш продукт: Интерактивно-обучающий игровой стриминговый сервис. ✅ Компания: "Интеграция Дистрибуция Проекты" ✅ Локация: Россия 🇷🇺 ✅ Формат работы: удаленно РФ ✅ Вилка 350k-450 nett Основные требования: 📌 Опыт разработки на Go от 3-лет; 📌 Знание принципов ООП и паттернов проектирования; 📌 Опыт работы с базами данных, такими как MySQL, PostgreSQL или MongoDB; 📌 Знание основ HTML, CSS и JavaScript; 📌 Опыт работы с REST API и микросервисной архитектурой; 📌 Навыки написания тестов и документации; Желательные навыки: 📌 Опыт работы с Docker и Kubernetes; 📌 Знание других языков программирования, таких как Python или Java; 📌 Опыт работы с NoSQL базами данных (Redis, Couchbase, Cassandra); 📌 Навыки работы с RabbitMQ или другими системами обмена сообщениями; Контакт: @intentions_agency
KonVoi
Пробегитесь по ишакам на гите. Там частенько что-то в панику просто так выпадает
Ну не знаю, на версии v2 уже проектов 10+ есть, и rest и graphql, подключены и базы и kv stores и s3, брокеры очередей, wss. Таки работает.
диммма
устроиться без опыта сейчас вообще возможно?
Марина
устроиться без опыта сейчас вообще возможно?
Я на стажировку месячную прошла и сразу после трудоустроилась в компанию,поэтому возможно )
диммма
понял, спасибо
Владимир
вообще можно тупо выучить синтаксис Го и выучить. долбаный. SQL.
Владимир
как задолбало, что люди не могут join написать, не представляете
Alexander
можно ли узнать, что такое нормальный SQL?
Timur
вообще можно тупо выучить синтаксис Го и выучить. долбаный. SQL.
SQL далеко не всегда нужен. Последний 3 года все проекты без использования SQL у меня
Timur
Еще годик и вообще его забуду
Alexander
предполагается, что в рамках sql оно отработает быстрее?
Alexander
как вариант тогда уж pl/sql
Егор
Опять таже шарманка, всё это ведь уже написал этот же чел на 1000 сообщений
Егор
Только выше нужно посмотреть
Егор
Как будто своя воронка , 1000 сообщений на тему релокации(приплетая политику ), sql, собесы . На каждое по 1000 сообщений и по кругу
Егор
Хочешь сказать, что ты тут не спорил про sql?
Егор
Я просто сказал, что было в этом канале
Егор
Тогда тут развёлся срач невиданных масштабов. И периодически повторяется
Aleks
вообще можно тупо выучить синтаксис Го и выучить. долбаный. SQL.
Go столь коварен что на местах его использования, синтаксиса знать недостаточно. :) C sql не все так одназначно, раз все серьезно и нужно очень быстро, DBA там напишет процедур, а гошник будет их просто вызывать.
Рома
Уважаемые, а что можете посоветовать по изучению PostgreSQL? Чтобы быстро и по делу понять основы . Нужно для решения задания на стажировке (Основы Sql слегка знаю)
eugene
но там супер кишки, но поможет в понимании моментами
Рома
Timur
А с чем
NoSql базы
Aleksandr
dev1 достаточно?
честно - это тебе самому лучше знать, чего будет достаточно)
Aleks
NoSql базы
У nosql баз часто теперь язык запросов sql подобный.
Timur
У nosql баз часто теперь язык запросов sql подобный.
Да. У oracle nosql. у casandra и прочего. Но у нас bolt, mongo, tarantool
Игорь
Алексей, а вы в какой компании работаете, если не секрет?
Sergey
Уважаемые, а что можете посоветовать по изучению PostgreSQL? Чтобы быстро и по делу понять основы . Нужно для решения задания на стажировке (Основы Sql слегка знаю)
sql-ex, сразу заходи в упражнения на селект и алга. На каком упражнении завалишься - переходи по ссылкам на статьи и читай.
Игорь
Новый офис хочешь?)
Не пересекаться :)
KonVoi
типа create or replace function entity.orders(user_id_ uuid, input_ jsonb) returns jsonb language plpgsql as $$ DECLARE output_ jsonb; limit_ integer := (input_->>'limit')::integer; offset_ integer := (input_->>'offset')::integer; BEGIN — всякие проверки, логика, условия select array_to_json(array_agg(row_to_json(rec))) into output_ from (— итоговый запрос с поздапросами ) rec; if output_ is null then return '[]'::jsonb; return output_; END; $$;
Sergey
и логику в скуль, так ее
Sergey
а го программист будет грпц адаптер к скулю писать
KonVoi
а в го тупо нужную структуру скармливаем если надо или плюемся тем что бд отдала
KonVoi
Банальный пример реализации обработки api endpoints
Efim
Хороший пример
Efim
Только вместо прямого обращения к БД лучше слой стораджа использовать
Anonymous
Привет ребята) Могу скинуть курсы по Искусственному Интеллекту, совершенно бесплатно, они мне уже не нужны. Пишите в личку скину, или поставьте "+" скину вам ))
KonVoi
Только вместо прямого обращения к БД лучше слой стораджа использовать
так pgdb это и есть внутренний пакет куда все что надо завернуто
KonVoi
мутации MutationPerson в мастер летят, QueryPublic || QueryPerson в реплику(и), там внутрях еще права доступа на вызов запроса проверяются
KonVoi
и логику в скуль, так ее
Кстати а по чему бы и нет, если где-то есть условные операторы типа if then … else … end; case when … then … when … then … else … end; примитивные проверки чего-то перед основным запросом это частая практика
Sergey
Кстати а по чему бы и нет, если где-то есть условные операторы типа if then … else … end; case when … then … when … then … else … end; примитивные проверки чего-то перед основным запросом это частая практика
честно говоря я не вижу смысла дискутировать, вы апологет предложенного подхода и скорее всего я не заставлю вас изменить точку зрения
KonVoi
Особенно если эти проверки тоже в таблицах выполнять
KonVoi
Это просто один из возможных вариантов, все говорят что в sql логику невозможно сделать, так вот согласно документации это неверный ответ
Sergey
скажу так, с точки зрения cqrs для рид запросов имеет право на жизнь. если рассматривать команды с кучей сложных бизнес-валидаций, то скуль не лучшее место для их реализации, потому что по сравнению с популярными яп он многословен, в нем меньше инструментария для структурирования кода и он требует жесткой дисциплины и высокого уровня от программиста. И таких sql-программистов найти сложнее, чем условного шарписта/джависта, который выразит те же идеи в коде и будет если не дешевле скульщика, то гораздо быстрее найдется по крайней мере.
Aleks
Обычно решает насколько быстро меняются требования бизнеса по логике, и схема данных.
Sergey
Это конечно мое имхо, но я видел sql монолиты и имел опыт распила/переноса в микросервисы хранимок в тысячи и емнип даже 10к+ строк. Это очень сложная задача, особенно если хранимка является частью бизнес транзакции генерящей бабки. Рано или поздно она превращается в чудовище, которое каждый след. прогер боится менять, чтобы ничего не сломать.
Sergey
боюсь за такое столько не платят 😂
Sergey
Есть негласные рекомендации не вылазить за 200 строк между begin … end; но чистый скюль уменьшает кодовую базу на языках в несколько раз
в целом с доводом согласен, но я пришел из мира шарпа, где одна из популярнейших микро-орм позволяет фигачить запрос почти в виде plainsql, так что все сокращения можно закодить в той же кодовой базе, что и сам сервис
KonVoi
В sql очень сильно как и в яп от структуры зависит к примеру или все по дефолту в public закинули или аккуратно по схемкам растаскали и функции так же, как сущности между собой соотносятся, в некоторых местах в чужую схему избегаешь reference прокидывать ага индекса достаточно по uuid
KonVoi
в последнем проекте даже по uuid как по bigserial order by могли делать, ulid функцию запилили 😆, и архивировать двухлетние партиции таблиц теперь удобней будет 😊
Alexey
Нет правильного, это всё вкусовщина. Но я бы честно предпочла нанимать людей, которые умеют решать реальные практические проблемы, а гошный рантайм почитывают так, для души) Но возможно, озон сейчас пишет свой язык го, раз их эйчарам чуть ли не энциклопедические знания исходников нужны)
а что-то от вас ни одной вакансии в этом чатике не было )) куда собесите? я бы хотел знать, какие есть места, где от кандидатов на собесах хотят в первую очередь узнать, как они нацелены на решение проблем/бизнес-задач, а не насколько глубоко они влезали в рантайм ))
Null
@ozon_tech приглашает Go-разработчиков (Middle и Senior) на One Day Offer! Что мы хотим: усилить команды направления Ozon Travel и многократно увеличить количество заказов. Что мы предлагаем: – экспертизу в Go и крутые продукты; – достойную заработную плату; – удалёнку, гибрид или офис (Россия, Казахстан); – систему обучения; – ДМС (+стоматология); – скидки на спорт и английский; – корпоративные клубы (киберспорт, кино, рисование, настолки, спорт). Подать заявку на One Day Offer
Max
Банальный пример реализации обработки api endpoints
Банальный пример с потенциальной паникой👀
KonVoi
Банальный пример с потенциальной паникой👀
Почему? Или точнее в какой строке?
Max
Почему? Или точнее в какой строке?
Да сразу в первой строке) Type assertion any к типу
Антон
Банальный пример реализации обработки api endpoints
У вас апи к базе сразу или апи к репозиторию обращается? Без сервисного слоя и перепаковки в модели не очень выглядит
KonVoi
а что там не так? если в предыдущей функции обработки запроса что-то шмякнулось, то до сюда вызов и не дойдет
Антон
а что там не так? если в предыдущей функции обработки запроса что-то шмякнулось, то до сюда вызов и не дойдет
Все правильно вам говорят, там может быть битый пейлоад в данных притекших. У вас же обработчик апи это изолированная система, мало ли кто к ней и какой запрос послал, а вы верите каждому запросу, получается.
KonVoi
KonVoi
вторая функция выполнится строго после всех проверок в первой, нет смысла размазывать одну и ту же логику
Max
Почему? Или точнее в какой строке?
Как минимум должно быть identData, _ := минимальная защита от дурака же должна закладываться)
KonVoi
это все в api.CheckToken
KonVoi
нет строгое разделение ответственности в коде это и есть гарантия стабильности системы
KonVoi
есть пакет и все обработка в его функциях
Антон
это все в api.CheckToken
Тут просто тогда формат не совсем ясен, на каждый хендлер свой валидейшн как миддлварь? Никогда такого не видел, но свою работу сделает
Max
Вам указали место на панику, а дальше ваше дело принимать или нет) По опыту лишь скажу, что не надо быть столь уверенным, особенно с контекстом, где данные легко могут быть мутированы или переданы не того типа и все фенита ля комедия
KonVoi
там же c. *fiber.Ctx в глубь передается