🏁Александр
или вы его зарезали
🏁Александр
@koziavka +
🏁Александр
походу зарезали 🙁
Yaroslav
Elena
#москва #вакансия #job #golang Всем привет! Город и адрес офиса: Москва, м.Курская Формат работы: офис, гибкий график работы Занятость: полная Зарплата: от 150 000 до 180 000 на руки Описание вакансии: Мы ищем коллегу, который сможет влиться в нашу команду и вместе с нами развивать web-backend нашей платформы и сопутствующие сервисы. Мы предлагаем: Неформальную обстановку (нам не так важно, как вы выглядите и выражаетесь, важно, как вы работаете), Гибкий график (можно периодически работать из дома и выезжать в офис, когда общественный транспорт не забит битком; участвовать в планёрках можно по Hangouts/Skype), Оформление по ТК РФ, Развитую корпоративную культуру: клубы по интересам, снэки, йогурты по утрам, пицца-дэй по средам. Интересные задачи, профессиональное развитие Требования: Опыт серверной web-разработки не менее 1,5 лет Опыт коммерческой backend-разработки на Go, пониманиe принципов конкурентного программирования Уверенное знание сетевых протоколов и HTTP транспорта Понимание принципов построения высоконагруженных систем Умение разбираться в чужом коде и быстро с ним работать Умение и желание учиться новому Навыки работы на nix-системах Знание английского языка (на уровне чтения документации) Название компании: LifeStream (life-stream.tv/ru/), проект "Смотрешка" Контакты: @elena_safrina, elena.safrina@gmail.com
Zver
аля GetString
Так GetString наоброт в строку же.
🏁Александр
ну во первых ВСЕГДА в строку
🏁Александр
даже если у тебя скормлен int он попытается кастануть
🏁Александр
во вторых я для примера дал
Foxcool
getInt религия не позволяет юзануть? (:
🏁Александр
ну я тебе потом покажу почему
🏁Александр
(я завернул viper в оберточку)
Foxcool
Noooooooooooooooooooo!!!!
🏁Александр
О да!
David
Подскажите пожалуйста, при помощи чего можно написать отличный api gateway? Чтобы поддержка http2 была и удобно было писать эндпоинты
Daniel
grpc
Daniel
вроде бы - именно он с http/2
David
Да, но я о коммуникации клиентской части с Api Gateway
David
Заинтересовался в https://github.com/hellofresh/janus, но вот вопрос: может есть еще что получше?
David
я свой писал, эндпоинты описывал в виде yaml файликов
Очень интересно. В открытом доступе?
Nikita
Очень интересно. В открытом доступе?
нет, конечно) Но написал я его за один день
Foxcool
КракенД?
Foxcool
Или он не годится?
David
Или он не годится?
Вроде janus выглядит получше. Или нет?
Borys
Всем привет. Подскажите, а swagger нормально на API пользовать?
Borys
Нужно доку писать для апишки, советуют CRUD в swaggere описывать.
Borys
Не пойму правда зачем он нужен и не будет ли это переусложнением.
Artem
мб оффтоп, но тут исходники аэрофлота выложили на гитхаб
Artem
с позволения админов ток
Andrew
https://github.com/aeroflotsrc/webapp
Artem
ну вот ^
Andrew
это ж не исходники в чистом виде а слепки AuFS (или что там щас в докере юзается)?
Artem
там питон внутри, а значит и все исходники
Andrew
там питон внутри, а значит и все исходники
сори, не понял логическую цепочку, можешь развернуть?
Andrew
я не говорю что там исходников нет, просто не понял как наличие питона говорит о наличии исходников, если что
Artem
сори, не понял логическую цепочку, можешь развернуть?
там выгрузка из всех контейнеров, в контейнерах сервисы на питоне, питон не компилируется и поэтому для работы сервисов всю кодовую базу кладут в контейнер
Roman
Не пинайте сильно - в тупике.
Roman
quote := fmt.Sprintf(` SELECT (SELECT COUNT(moexQuotes.stock_id) as moex FROM moexQuotes where moexQuotes.period_date LIKE('%s')) - (SELECT COUNT(stocks.id) as stocks FROM stocks WHERE stocks.name NOT LIKE('RUR%')) AS DIFF; `, date)
Roman
как заэкранировать %
Daniel
Не пойму правда зачем он нужен и не будет ли это переусложнением.
1. описываете свой протокол на swagger-языке 2. генерите из него серверный код, клиентский код и документацию 3. на сервере и на клиенте добавляете хендлеры соответствующие 4. profit любое другое использование сваггера будет переусложнением
Roman
ругается SELECT (SELECT COUNT(moexQuotes.stock_id) as moex FROM moexQuotes where moexQuotes.period_date LIKE('2018-09-21')) - (SELECT COUNT(stocks.id) as stocks FROM stocks WHERE stocks.name NOT LIKE('RUR\\%!'(MISSING))) AS DIFF;
Daniel
это на go?
Roman
видимо Sprintf ожидает что это не просто % а подстановка
Roman
да на го
Daniel
а по-моему - нет
Daniel
но можно сделать на go
Daniel
возьмите squirrel
Daniel
делать динамические запросы sprintf-ом - плохая идея in general
Roman
зачем мне еще одна абстракция? безопасность от SQL-иньекций? не тот проект - там SQlite домашнего проекта
Daniel
другого совета у меня для вас нет
Roman
Ок. За совет все-равно спасибо.
Daniel
ну и это
Daniel
% можно из строки формата изъять, поставив на его место %s, и соответствующий параметр добавить
Daniel
а можно использовать %% - он в % превратится
Andrei 🦉
зачем мне еще одна абстракция? безопасность от SQL-иньекций? не тот проект - там SQlite домашнего проекта
ну просто это разработка уровня «делаем запросы в базу из html темплейтов» на пыхе
Roman
Действиетльно %%. Спасибо.
Daniel
но, как мы понимаем, это стало еще дальше от читабельного
Илья
hft на sqlite :) бессмысленный и беспощадный
Roman
hft на sqlite :) бессмысленный и беспощадный
Хорошая шутка, но нет...это ИИС там данные раз в сутки
Илья
Хорошая шутка, но нет...это ИИС там данные раз в сутки
тогда можно сделать 2 запроса count и увеличить читаемость кода на порядок :)
Aleksandr
он не кодирует неимпортируемые поля, а неимпортируемые поля начинаются с маленькой буквы. То есть вы что-то путаете
Aleksandr
если у вас Error в json, то и в структуре Error
Aleksandr
а, имеется в виду декодирование
Aleksandr
интересный кейс
Aleksandr
https://play.golang.org/p/mmKgGj1DclI
Илья
// To unmarshal JSON into a struct, Unmarshal matches incoming object // keys to the keys used by Marshal (either the struct field name or its tag), // preferring an exact match but also accepting a case-insensitive match. By // default, object keys which don't have a corresponding struct field are // ignored (see Decoder.DisallowUnknownFields for an alternative).
Илья
в доке про это есть, так что known behaviour, но не самое очевидное
Алексей
Настало время, господа
Алексей
настало время набросить на вентилятор
Алексей
https://habr.com/post/424649/
Roman
https://habr.com/post/424649/
ещё один недобенчмарк)))
Алексей
ещё один недобенчмарк)))
и чтоже там "недо"?
Roman
и чтоже там "недо"?
читай комментарии
Алексей
ну там написали фактически, что стандартные http и json либы так себе