Size: a a a

2017 April 27

RS

Roman Sharkov in Qt
Denis Kormalev
я короче возвращаюсь к настойчивому совету юзать строки
ну а я напоминаю, что строки нейтрального типа, и придётся перед каждым их использованием их проверять на валидность, нахрена если можно строго типизировать (подход C++ а не JavaScript)?

делаем несколько типов, абстрактный идентификатор и конкретные идентификаторы которые от него наследуют, таким образом мы всегда убеджены что идентификатор не изменён, не тронут, всегда валиден и всегда репрезентирует именно тот обьект который требуется
источник

AK

Alexander Koldaev 🇷🇺 in Qt
ну в вариание в том числе можно и вариантМап возвращать
источник

DK

Denis Kormalev in Qt
тогда остается только страдать
источник

DK

Denis Kormalev in Qt
ну правда
источник

RS

Roman Sharkov in Qt
энкапсуляция данных, как-бы хороший дизайн, все дела))
источник

DK

Denis Kormalev in Qt
(добавлю я пожалуй к своему списку вопросов на собеседованиях "приходило ли вам когда-нибудь в голову хранить строковые идентификаторы в иерархии классов для их строгой типизации")
источник

AK

Alexander Koldaev 🇷🇺 in Qt
Roman Sharkov
ну а я напоминаю, что строки нейтрального типа, и придётся перед каждым их использованием их проверять на валидность, нахрена если можно строго типизировать (подход C++ а не JavaScript)?

делаем несколько типов, абстрактный идентификатор и конкретные идентификаторы которые от него наследуют, таким образом мы всегда убеджены что идентификатор не изменён, не тронут, всегда валиден и всегда репрезентирует именно тот обьект который требуется
Если мы имеем криворукого программиста, то он берет и наследуется от AbstractId и внутри яерез одно место реализовывает какой-то свой кастомный Id, который время от времени ломает свою целостность/что-то еще...
как с этим быть?
источник

RS

Roman Sharkov in Qt
Alexander Koldaev 🇷🇺
Если мы имеем криворукого программиста, то он берет и наследуется от AbstractId и внутри яерез одно место реализовывает какой-то свой кастомный Id, который время от времени ломает свою целостность/что-то еще...
как с этим быть?
это совсем другая проблема, я решаю проблему строгой типизации идентификаторов.. если кто создаст свой тип идентификатора то пускай, главное что другой код работает и строго типизирован
источник

DK

Denis Kormalev in Qt
источник

AK

Alexander Koldaev 🇷🇺 in Qt
источник

AK

Alexander Koldaev 🇷🇺 in Qt
Roman Sharkov
это совсем другая проблема, я решаю проблему строгой типизации идентификаторов.. если кто создаст свой тип идентификатора то пускай, главное что другой код работает и строго типизирован
это ровно такая же проблема, что и meta.id()->deleteLater()
источник

RS

Roman Sharkov in Qt
ну ё-моё, сколько можно обьяснять смысл строгой типизации... это же для C++ разработчиков должно быть очевидно, если представлять идентификаторы в качестве QString или QUuid то мы теряем типизацию и превращаем всё это в JavaScript
источник

DK

Denis Kormalev in Qt
видимо я хуевый C++ разраб, простити
источник

AK

Alexander Koldaev 🇷🇺 in Qt
Зачем тебе строгая типизация в qml?
источник

DK

Denis Kormalev in Qt
пойду во фронтенд
источник

RS

Roman Sharkov in Qt
Alexander Koldaev 🇷🇺
Зачем тебе строгая типизация в qml?
классы используются со стороны C++ но представляются так-же и в QML
источник

AK

Alexander Koldaev 🇷🇺 in Qt
кроме строки, сгенериной quuid эти идентификаторы яем-то отличаются? (кроме названия класса)
источник

ШВ

Шаурма Вкод in Qt
а если серьезно, почему не юзать q_gadget?
источник

RS

Roman Sharkov in Qt
типом... все идентификаторы внутри используют QUuid в качестве уникального id, но представляют они разные вещи... по сути как указатели, все они 8 байтные массивы, но представляют разные типы
источник

D

Daniil in Qt
Roman Sharkov
классы используются со стороны C++ но представляются так-же и в QML
Да наверни ты уже класс наследующейся от строки который при создании проверяет валидность данных
источник