Sergey
чтобы понтяь что 20 чел, тебе нужна эта инфа
Shub
вот так
не парсится
Hog
конечно, нет. За передачу авто бесправнику тоже карают, плюс я рискую ещё неполученными правами
Автодром? Я машину купил до того, как получил права. Меня друг возил на автодром и я там катался.
Sergey
без этой инфы ты можешь толькко количественнно посмотреть и забить ибо мусор в контексте безправнников
Анна
Автодром? Я машину купил до того, как получил права. Меня друг возил на автодром и я там катался.
В Минске по-моему уже закрыли последний общедоступный автодром. И вряд ли езда на автодроме поможет с городом как-то 🤷‍♀️
Hog
В Минске по-моему уже закрыли последний общедоступный автодром. И вряд ли езда на автодроме поможет с городом как-то 🤷‍♀️
У нас был с разметкой и знаками точно. Вот, светофоров не помню :) там ещё хлеще - особенно когда там много таких как ты :)))
Sergey
ты по ходу ни одну из ссылок таки не открыл
ты походу так и не вкурил что стата эта ничего не говорит в контексте беседы ладно забей я заново не хочу объяснять
Mikhαil
Саратова
Наверное да. Давно уже дело было
Shub
у тебя видимо какая-то своя секретная статистика
Sergey
да да забей по 5 разу не буду объяснять
Hog
Наверное да. Давно уже дело было
Хуже, чем в Самаре, водят только в НЙЦ наверное:)
Shub
да да забей по 5 разу не буду объяснять
так ты и одного раза не объяснил, откуда 5?
Sergey
объяснил
Sergey
хватит успокойся
Shub
вот тебе пример госстата, там даже схема аварии указана
Крылатый
ПДД через DDD
Sergey
шел день 15 шуб всё еще думал что правильно парсит стату и пытался доказать это
Sergey
да ок ок
Анна
Shub
module ResponseContract = let handleNullString (s : string) = match s with | null -> "null" | "" -> "null" | _ -> s type Phone = { phone_type : string phone_number : string } with static member Zero = { phone_type = "null" phone_number = "null" } type Email = { email_type : string address : string } with static member Create t a = { email_type = handleNullString t address = handleNullString a } static member Zero = { email_type = "null" address = "null" }
Ilya
Интересные номера телефонов.
Shub
это еще не все. вот например клиентский код
Shub
let maskPhone (p: string) = if p = "null" then p else "XXXXXX" + if p.Length > 4 then p.Substring(p.Length-4) else p
Vasily
Хня какая-то
Shub
ну это для тебя и для меня. а для сектантов это "в нашем коде нет null"
Shub
что это блять такое
код от свидетелей Святой Стрелки
Shub
|> Array.map (fun mo -> match mo with | Some m -> trySplitName customerName m.recipient.name | None -> ("null", "null"))
Ayrat
йобаная кочерыжка
Shub
|> Array.map (fun mo -> match mo with Some m -> { phone_type = "null"; phone_number = (maskPhone (handleNullString m.recipient.phoneNumber))} | None -> Phone.Zero)
Shub
есть строки по 180 символов длиной
Hog
🤣🤣🤣
Shub
в смысле, код простирается до границы 180 символов
Ilya
А как же Влашин с его Making illegal states unrepresentable?
Shub
а это он и есть
Ilya
Эээээ...
Hog
Shub
Врап принудительный тебя спасёт
меня спасет внутренняя эмиграция
Shub
еще у нас очевидные симптомы новой пошести
Shub
ResponseContract.CCPAResponse.Create ResponseContract.PersonalIdentifier.Zero
Shub
стало модно не пользоваться open, а писать полные пути
Ilya
Да, так читабельнее.
Vasily
Ну в некоторых случаях RequireQualifiedAccess нужен
Ayrat
Да, так читабельнее.
Сразу отражает внутренний мир автора
Ilya
А ещё лучше писать System.Int32.
Shub
module ApiContracts = [<JsonConverter(typeof<FsCodec.NewtonsoftJson.TypeSafeEnumConverter>)>] type ErrorResponseCode = | NoAssociatedMerchantOrderIds type ErrorResponseDto = { code : ErrorResponseCode message : string }
Shub
кОнТрАкТ
Hog
Ну в некоторых случаях RequireQualifiedAccess нужен
А он не для модулей? Неймспейс-то всё равно можно открыть
Hog
У нас нет нуллов, поэтому мы их изобретем обратно.
«Ошибка на хуиллиард долларов»
Doge
«Ошибка на хуиллиард долларов»
Ага, а потом авторы этого кода будут бегать по интернету и говорить, что статическая типизация не нужна, от нуллов не спасает, повсюду строки, все дела.
Roman
Нечитабельно.
но с каких пор нечитабельно это хорошо лол?
Ilya
Так я про "". А на "null" взглянул, и сразу всё понятно об авторе кода.
Roman
мне это сильно напоминает предыдущий проект, конечно
Roman
где кидать исключения, например, запрещалось, надо везде было руками писать стектрейс в резалте, но при этом использовались конструкции в духе someResult |> Result.toOption |> Option.get
Roman
Резалт самописный, конечно же. Чтобы можно было использовать в паре с FsharpPlus
Ayrat
Резалт самописный, конечно же. Чтобы можно было использовать в паре с FsharpPlus
А фшарп+ же вроде умеет со стоковым резалтом работать
Roman
А фшарп+ же вроде умеет со стоковым резалтом работать
во-первых это не важно, во-вторых што ты мне сделаеш в третьих стоковый резалт имеет критический недостаток: в нем нет статического мембера .Map, чтобы можно было использовать с инлайн оператором |>>. И, как ты понимаешь, как только ты видишь в коде Result.map вместо |>>, код сразу становится нечитаемым
Vladislav
Крылатый
|> Array.map (fun mo -> match mo with Some m -> { phone_type = "null"; phone_number = (maskPhone (handleNullString m.recipient.phoneNumber))} | None -> Phone.Zero)
Наконец найдет способ сделать облачко сообщения нормальной шириной
Shub
Ага, а потом авторы этого кода будут бегать по интернету и говорить, что статическая типизация не нужна, от нуллов не спасает, повсюду строки, все дела.
авторы этого кода нигде бегать не будут. авторы этого кода - маленькие тиранчики in the making, а в интернете их может сожрать тиранчик покрупнее
Shub
а ведь по сути проблема не стоит выеденного яйца: напиши кастомный сериализатор для этого поля и просто реджекти сообщения, которые не парсятся
Shub
но нет, это ж надо читать документацию, зачем нам читать документацию?
Ayrat
но нет, это ж надо читать документацию, зачем нам читать документацию?
Зато к вам в команду надо ЕЩЁ собес проходить!т1
Ayrat
Илитная илита Джета
Крылатый
В райсобес?
Shub
Зато к вам в команду надо ЕЩЁ собес проходить!т1
система идентификации "свой-чужой". сбоит приблизительно в 50% случаев
Shub
то есть, функционально неотличима от fair coin toss
Крылатый
toss a coin to your jet...
Doge
а ведь по сути проблема не стоит выеденного яйца: напиши кастомный сериализатор для этого поля и просто реджекти сообщения, которые не парсятся
Я понимаю, что это философский вопрос, а в чём проблема была взять в качестве типа: type Phone = Option<PhoneData> Если уж хотелось бегать с пустыми данными?
Shub
проблема в том, что злой дядька Рубен отключил возможность писать всеми любимые FromJson\ToJson, а вместо этого заставил юзать NewtonsoftJson