@proGO

Страница 1432 из 1674
Meow
10.05.2018
08:02:24
Мне нравятся строго типизированые языки

И компилируемые

Anton
10.05.2018
08:02:35
ясно, ок

Meow
10.05.2018
08:02:53
Либу для ботов для себя тоже написал: https://github.com/floodcode/tgbot

Google
Meow
10.05.2018
08:04:44
Ну что нельзя делать такое: var a = "Hello" a = 123

Anton
10.05.2018
08:06:16
это называется статически типизированные

FRD Official - Dmitriy
10.05.2018
08:06:23
и это несмотря на кучу сахара в руби?
Сахар в руби иногда заканчивается диабетом

Anton
10.05.2018
08:06:39
строго, это когда нельзя 1 + '1'

Meow
10.05.2018
08:07:17
это называется статически типизированные
https://en.wikipedia.org/wiki/Strong_and_weak_typing

Alexey
10.05.2018
08:07:25
Типизация бывает (строгая и слабая) и (статическая и динамическая)

Kirill
10.05.2018
08:07:53
Сахар в руби иногда заканчивается диабетом
Так туда за диабетом и уходили в свое время

Anton
10.05.2018
08:08:13
Alexey
10.05.2018
08:08:40
А у го какая?)
строгая статическая ж

Anton
10.05.2018
08:08:44
строгая (сильная) типизация не позволяет делать неявных преобразований типов

Google
Anton
10.05.2018
08:09:24
а статическая - типы известны и заданы на этапе компиляции

в го и то и то

Kirill
10.05.2018
08:09:59
Эмм... чет вроде это все про статическую

Anton
10.05.2018
08:10:01
но var a = "Hello" a = 123 это пример статической, а не строгой

FRD Official - Dmitriy
10.05.2018
08:10:17
https://play.golang.org/p/CWd-zO5RPDn

статическая и строгая децл о разных вещах

Anton
10.05.2018
08:10:51
так да

в руби например строгая динамическая

Alexey
10.05.2018
08:11:26
https://play.golang.org/p/CWd-zO5RPDn
ну это читерство) rune - это int32, поэтому складывается)

Meow
10.05.2018
08:11:50
Попробуй так же с string

FRD Official - Dmitriy
10.05.2018
08:12:01
не сработает

вообще статическая - это проверка на соответствие при сборке

Anton
10.05.2018
08:12:27
и строгая

Alexey
10.05.2018
08:12:29
В питоне, кстатти, строгая, но 5 * "abc" работает. Но это потому что там так задумано изначально

Dmitri
10.05.2018
08:12:50
Как-то не считал, но да на линухофорумах их больше
дык, киллер-фичей было то, что из доступных видимоплейеров нормально субтитры в свое время умел только MPlayer. А он линуксовый. И народ в погоне за халявным рисованным порно с русскими субтитрами РЕАЛЬНО бросал винду и переходил на линукс и фрибзд. "Как пропатчить KDE под FreeBSD" погугли... топовый запрос на анимушных форумах одно время был...

Anton
10.05.2018
08:13:17
В питоне, кстатти, строгая, но 5 * "abc" работает. Но это потому что там так задумано изначально
потому что строки это списки символов, а умножение для спиков определено

Meow
10.05.2018
08:14:50
Просто анимешники "НИТАКИЕ КАК ФСЕ"

Dmitri
10.05.2018
08:15:19
Я помню как эта хохма появилась. Но не думал, что на линух по такой причине переходили
я лично троих таких знаю, которые за анимой на линукс переходили. Двое из них сейчас админят/девопсят, один спился.

Google
Dmitri
10.05.2018
08:16:35
Я думал, это просто шутка...
в каждой шутке есть доля... Я реально помню приседания с русскими субтитрами в анимехах под виндой. На линухе работало "искаропки"

Dmitri
10.05.2018
08:17:30
Это же как давно то было
2001-2005й, ориентировочно

еще в 2007-м GNU/MPlayer пользовался достаточно мощным спросом под виндой.

Да и VLC примерно по той же причине сильно в гору в свое время пошел среди анимушников, точнее, больше из-за кодеков, но и за субтитры тоже

Daniel
10.05.2018
08:19:19
Коллеги, не увлекайтесь :)

Dmitri
10.05.2018
08:19:25
короче, жесть была... Зато веселая... Я цистерны 2 пива выпил за настройку отображения субтитров...

Ок, завязали)

Elter
10.05.2018
08:20:24
уже и забыл про этот "мем"

mstrVLT
10.05.2018
08:35:28
А может и моего бота посмотрите? https://gist.github.com/MstrVLT/834f03208c69f823bb99554c28aeca4e

Есть сервер сборок Jenkins - бот просто оповещает о новых сборках на которые подписался пользователь

Pawel
10.05.2018
08:43:17
практически для всех ААА игр есть бета тесты, но их код закрыт. вот же они странные то
о, у нас тут аказываица чат по тестированию игр, а пацаны и не знали

Artem
10.05.2018
08:55:38
А может и моего бота посмотрите? https://gist.github.com/MstrVLT/834f03208c69f823bb99554c28aeca4e
if err == nil { // какой-то код } обычно все же в блоке if err обрабатывают ситуацию с ошибкой, а не наоборот.

mstrVLT
10.05.2018
08:56:29
а можно по развернутее )

Artem
10.05.2018
08:56:35
а тут как минимум допольнительный уровень вложенности почти во всех функциях, зачем?

mstrVLT
10.05.2018
08:56:37
думаю было бы полезно узнать

Google
Алекс
10.05.2018
08:57:47
уважаемые, а никто не сталкивался со странными тормозами при использовании runtime.GOMAXPROCS(runtime.NumCPU())?

Alexey
10.05.2018
08:58:07
Artem
10.05.2018
08:58:25
а можно по развернутее )
Ну, можно написать как у вас, а можно что-то вроде: if err != nil { return nil, err // условно } // далее идет уже логика, которая отрабатывает если ошибки не было и все ок

этот вариант как правило как минимум читабельнее

mstrVLT
10.05.2018
08:59:52
в некоторых случаях я согласен да - но есть хитрые кейсы которые надо обрабатывать немного иначе - а времени подумать о красоте как всегда нетю (

Artem
10.05.2018
09:00:25
ну и в вашем случае получается, что обработка нормального повидения убрана на уровень вложенности ниже, а обработки ошибки вообще нет

Admin
ERROR: S client not available

Vladimir
10.05.2018
09:00:31
обычно код который полагается на штатную работу длинее чем обработка ошибки )

mstrVLT
10.05.2018
09:02:02
?согласен согласен

Dmitri
10.05.2018
09:02:48
думаю было бы полезно узнать
как правило, конструкции вида if err == nil {} не очень хорошо пахнут по 3 причинам, имхо: 1. обычно это способ проигнорировать обработку ошибки. Т.е. читать как "если ошибка не возникла, делаем вот этот правильный код, а если возникла - насрать" 2. если ошибку все же захочется обработать, появится else, а это уже -100500 к читабельности всей этой штуки, оно уже "спагетти"-запах приобретает 3. чаще всего принято делать так: в if err != nil совать обработку ошибки и возвращаться из функции. Как правило, "правильный флоу" у функции один, и в этом варианте все, что пошло "нестандартно" будет в отдельном уровне, а значит, будет проще понять, ЧТО на самом деле функция должна делать.

Alexandr
10.05.2018
09:50:14
Подскажите товарищи, как быть если при получении json я получаю пустое поле. В моей структуре куда я анмаршаллю - это поле имеет тип float64, а если в json есть данные, то анмаршаллится нормально, но если это поле приходит пустое, то появляется ошибка. panic: json: cannot unmarshal string into Go struct field OpenData.mydata type float64

Kirill
10.05.2018
09:51:07
сделай поле ссылкой на флоат?

Alexandr
10.05.2018
09:54:28
ща попробую.. я в структуре поле удалил вообще, а ошибка осталась. что за нафиг

а нет, заело видимо. Так сейчас попробую ссылкой

нет, не поменялось

The
10.05.2018
10:07:09
,string

хотя, если оно в JSON либо как число, либо как строка, то это не поможет.

Alexandr
10.05.2018
10:09:20
,string
json: invalid use of ,string struct tag, trying to unmarshal "" into float64

The
10.05.2018
10:11:44
тогда сделай его типом MyFuckingFloat64OrString от базового float64, и имплементируй json.Unmarshaler

Google
Alexandr
10.05.2018
10:12:18
Вот гемор... ща попробую.

The
10.05.2018
10:12:35
либо всю структуру имплементируй Unmarshaler

Alexandr
10.05.2018
10:14:26
либо всю структуру имплементируй Unmarshaler
вот только хотел спросить.. если проблема только с одним полем то лучше для поля или для всей структуры

Sam
10.05.2018
10:14:44
Возможно, но было такое.

The
10.05.2018
10:17:09
ну я думаю лучше для поля. но если у тебя это поле часто участвует во всяких арифметических операциях, или передеается в аргументы фукнции, тебе придется его туда-сюда конвертировать, т.к. твой MyFuckingFloat нельзя будет сложить с тем типом, на котором он построен, например float64.

Daniel
10.05.2018
10:17:38
а точно нельзя перестать передавать поле то как число то как строку?

Alexandr
10.05.2018
10:18:11
видимо, нельзя ?

Daniel
10.05.2018
10:19:05
тогда только кастомный анмаршалер для конкретного поля

(что означает кастомный тип, и соответственно, конвертацию его во float64 при каждом сипользовании)

The
10.05.2018
10:20:40
Можно для красоты ему метод сделать, Float64() float64, но от конвертаций это особо не спасет

Alexandr
10.05.2018
10:20:48
А для чего нужен кастомный тип? Разве я не могу в кастомном анмаршаллере сделать проверку - если поле пустое, то конвертировать его в нужный мне float64 сразу

Daniel
10.05.2018
10:21:10
кастомный анмаршалер можно приписать только к кастомному типу

Pawel
10.05.2018
10:22:23
а добавить `json:"mydata,omitempty"` ?

Daniel
10.05.2018
10:22:29
Можно для красоты ему метод сделать, Float64() float64, но от конвертаций это особо не спасет
насколько я помню - если типы идентичны на самом деле компилятор конвертацию оптимизирует в ноль

Pawel
10.05.2018
10:22:57
Dmitri
10.05.2018
10:23:12
Возможно, но было такое.
Тут концептуальная проблема еще есть. Смотри, чатик называется "pro.go", и посвящён он, предположительно, языку Go, проблематике, с ним связанной, и инструментарию вокруг, best-practices и всему вот этому. Именно по этой причине собравшихся тут интересует, по большей части не "конечный продукт", а "как это работает" и "как сделать лучше". Т.е. тут принято кодом делиться, обмениваться опытом (предположительно, по факту, конечно, нет, тут просто флудят). И тут ты предлагаешь потестить бота на Go, причем не показывая кода. Даже если предположить, что тут все готовы потрогать/потестить/заюзать что угодно, лишь бы оно на Go было... где гарантии, что именно твой бот на Go написан? А вдруг он на php, а ты - жестокий обманщик??? Это ведь получится, что я буду php-бота тестить!!!))) Поэтому у тебя и спросили код, чтобы был пруф того, что ты по адресу.

Alexandr
10.05.2018
10:23:14

Страница 1432 из 1674