Size: a a a

Генератор непрочитанных сообщений

2020 October 28

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
тут то меня и ловят киберкотлеты с 140+фпс
источник

RV

Roma Vandolyak in Генератор непрочитанных сообщений
Dmitriy Danilov
ну вот если бы стабильно 60 то ок
ну не оч стабильно конечно
источник

RV

Roma Vandolyak in Генератор непрочитанных сообщений
Dmitriy Danilov
тут то меня и ловят киберкотлеты с 140+фпс
ну я апгрейд сделал
перестал играть
теперь лучше
источник

С

Санжар in Генератор непрочитанных сообщений
Евгений Ромашкан
В идеале иметь что-то вроде
return $this->serialier->deserialize(TYPE::JSON, $response, WeatherData::class)
Это лего и просто сделать если в респонсе и DTO поля одинакого называются, но если нет, то надо как-то ухищряться указывать какое поле из Json на какое в dto нужно смаппить.

Поэтому можно как компромисс сделать
new WeatherData($decodedResponse['a'], $decodedResponse['b'])

Но шоб не обращаться к неизвестным полям, я люблю сделать ещё пару функций типа
/**
* @throws \Exception
*/
function getFieldAsInt(string $fieldName, array $data): int {
 if(!isset($data[$fieldName])) {
   throw new \Exception('...');
 }
 if(!is_int($data[$fieldName])) {
   throw new \Exception('...');
 }
 return $data[$fieldName];
}
Выглядит как костыль но кмк норм, и psalm на типы не ругается, и получается чёт типа
return new WeatherData(
   getFieldAsInt('temperature', $responseData),
   getFieldAsFloat('lat', $responseData),
   getFieldAsFloat('lng', $responseData),
   getFieldAsString('city', $responseData)
);

Дл nullable полей отдельные функции. По желанию, чтобы не делать asInt/asFloat/asString можно конеш замутить дженерики с псалмом, но им мало кто пользуется, увы
сек, щас почитаю-подумаю
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
Ну у меня игры это один из каналов связи с друзьями
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
у всех семья работа
источник

RV

Roma Vandolyak in Генератор непрочитанных сообщений
Dmitriy Danilov
Ну у меня игры это один из каналов связи с друзьями
также)
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
а так по вечерам чилим общаемся
источник

С

Санжар in Генератор непрочитанных сообщений
сука как перестать орать с этой хуйни
источник

RV

Roma Vandolyak in Генератор непрочитанных сообщений
Санжар
сука как перестать орать с этой хуйни
лол
ахаха
харош))
источник

BT

Bohdan Turchyk in Генератор непрочитанных сообщений
Dmitriy Danilov
Остальное все в порядке, вот и думаю отдать щас типа 500 баксов ради одной игры
подожди декабря, может и не надо будет
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
Bohdan Turchyk
подожди декабря, может и не надо будет
Та вот жду холодную войну
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
Непонятно что с ней будет
источник

BT

Bohdan Turchyk in Генератор непрочитанных сообщений
Dmitriy Danilov
Непонятно что с ней будет
игра на 500гб будет небось
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
Там же можно удалить часть теперь
источник

DD

Dmitriy Danilov in Генератор непрочитанных сообщений
Вроде докатили на пека
источник

BT

Bohdan Turchyk in Генератор непрочитанных сообщений
Dmitriy Danilov
Вроде докатили на пека
о, норм
надеюсь, там ставится не все сразу
источник

BT

Bohdan Turchyk in Генератор непрочитанных сообщений
надо попробовать
источник

С

Санжар in Генератор непрочитанных сообщений
Евгений Ромашкан
В идеале иметь что-то вроде
return $this->serialier->deserialize(TYPE::JSON, $response, WeatherData::class)
Это лего и просто сделать если в респонсе и DTO поля одинакого называются, но если нет, то надо как-то ухищряться указывать какое поле из Json на какое в dto нужно смаппить.

Поэтому можно как компромисс сделать
new WeatherData($decodedResponse['a'], $decodedResponse['b'])

Но шоб не обращаться к неизвестным полям, я люблю сделать ещё пару функций типа
/**
* @throws \Exception
*/
function getFieldAsInt(string $fieldName, array $data): int {
 if(!isset($data[$fieldName])) {
   throw new \Exception('...');
 }
 if(!is_int($data[$fieldName])) {
   throw new \Exception('...');
 }
 return $data[$fieldName];
}
Выглядит как костыль но кмк норм, и psalm на типы не ругается, и получается чёт типа
return new WeatherData(
   getFieldAsInt('temperature', $responseData),
   getFieldAsFloat('lat', $responseData),
   getFieldAsFloat('lng', $responseData),
   getFieldAsString('city', $responseData)
);

Дл nullable полей отдельные функции. По желанию, чтобы не делать asInt/asFloat/asString можно конеш замутить дженерики с псалмом, но им мало кто пользуется, увы
епть ну и костыль, хотя хз как иначе)
отдельные функции-чекеры в хелпер можно вынести, понятное дело.
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
почему костыль?
источник