Перейти к публикации

GoldRobot

User
  • Сообщений

    19 651
  • Зарегистрирован

  • Посещение

  • Время онлайн

    333д 22ч 42м 32с

Все публикации пользователя GoldRobot

  1. GoldRobot

    Программирование[11]

    Чел. Это плата за безопасность. Ты сам себе злой буратино, который потом ебеться с тем что выше. Если нет контеншена, то атомик довольно быстро работает. Так же если классу НУЖНО разделяемое владение, что он ажно в себя вписывает, то он и должен быть, очевидно, обязательным. Если ты пишешь говно по которому даже не ясно за что оно ответственно, то ССЗБ. Не отработают методы, если не шаредптр сделан. Ну тоесть ты написал хуйню, объяснить которую даже не можешь. Ясно. Я удивлен что ты даже с gmock не знаком. Хотя казалось бы, не дуит, не дуит мы думали ты. Чел, ту хуйню которые ты написал и даешь нам как пример, согласно гугловским гайдлайнам нужно в печи нахуй сжечь.
  2. GoldRobot

    Программирование[11]

    Ты про свои гениальные тесты вида: MyClass::MyFunc() { member_variable_ = 1; } MyTest() { MyClass tested_class; tested_class.MyFunc(); assert(tested_class.member_variable_ == 1); } ? Да, очень полезные тесты. Согласен. Пишешь код в классе, а потом пишешь в тесте проверку, что все операции в функции действительно выполнились. Судя по коду я попал в точку, ты вообще не понимаешь о чем говоришь Флажки блять в классе. Ты ебанутый? Узри же, МАГИЮ https://google.github.io/googletest/gmock_cook_book.html#OrderedCalls Извне? AddRef чья обязанность позвать? Нету ThreadSafeRef/WeakThreadSafeRef? Если ты такое дерьмище адское поддерживаешь, и допиливаешь. Без тестов и не умея тесты писать, мое тебе уважение брат. Без рофлов, когда фундаментальные тулсы написаны вот так, представить боюсь что за паутина там у тебя накожена вообще. Расскажи. Нагрузочное тестирование не является проверкой на провисшие ссылки. Собственно как и проверки тредсейфа, о чем вы сами, вроде, доказали. Еще идеи?
  3. GoldRobot

    Программирование[11]

    Ты провисшие ссылки то как собрался тестить? Еще рофл конечно такую хуйню в конструкторе писать. Конечно придется код написать так что бы он тестировался, а ты как думал? Хотелось бы послушать как ты покрываешь тестами на протухсшие ссылки/указатели синхронный код. И в чем тут будет разница. БТВ Ты вообще какую-то аддовую хуйню написал. Если ты не передал туда владение, просто по this передал, то схуяли оно там должно декрементить и что-то удалять? Тоесть у тебя ThreadSafeRefcounted полагается что кто-то ИЗВНЕ зовет decrease_count или типа того? На момент вызова ThreadSafeRefcounted счетчик УЖЕ инкрементирован. Его конструктор уже отработал. unless ты отнаследующейся пометив public, и у тебя MakeRef ответственна за инкрементит. Тогда это уже нихуя не умный указатель. Не пишите такую хуету как грохуф, прошу вас и заклинаю, изайте шаред птры из стд.
  4. GoldRobot

    Программирование[11]

    Не совсем. Слипами и прочим ты тестируешь совокупность имплементации и кейсов которые ты не знаешь. А должен тестировать кейс которые ты знаешь. До ребяток никак не доходит, что предметом тестирования становится не имлпементация того как у тебя там джейсон перекладывается, а логика синхронизации. Логика работы с примитивами и собственно с тем что представляет из себя сущность полезного кода. От того и не понимания и перлы про "хахаха тестишь имплементацию". Для этого достаточно и нужно мокать и абстрагировать. Тебе нужно придумать логику работы, и проверить то что ты эту логику заимплементил как ожидалось. Это и является предметом теста. Тоесть в простейшем примере если у тебя есть метод exec_and_cache Тебе бы неплохо проверить что при вызове его происходит: connection.lock connection.exec connection.unlock cache.lock cache.save cache.unlock И ни один другой метод не вызывается. Ты ведь продумал логику свою, логику в код транслировал, вот ее и проверяй. Проверяй что два лока в дедлок не могут принципиально встать. Вдруг ты подумал, но накодил cache.lock->connection.unlock? Скорее проблема непонимания у дуита и ко в том, что они мокинг воспринимают исключительно как способ подсунуть классик без имплементации. Ну чтоб без коннекта в базе как-то запустился. О настоящем тесте асинхронку, таймеров, работы с сокетами, файловой системой, для того что бы проверить как работает то что ты накодил, они не слышали. Просто тестят что у них сокет читается, ну и ладно. Прописываю чтения документации о пусть будет gmock. Впрочем я их понимаю, нахуй надо. Это все слишком сложно получается в итоге. Чтож, видимо мышления дуита это твой предел. Невысокий оказался.
  5. GoldRobot

    Программирование[11]

    По факту есть что сказать? Дуит попытался, разьебался. Ты следующий.
  6. GoldRobot

    Общее обсуждение игр т.7

    вкатил колбаску тебе защеку
  7. GoldRobot

    Общее обсуждение игр т.7

    Пиздец у тебя устаревшие взгляды на жизнь. Ты к нам с какого года? Сейчас принято смотреть как другие люди смотрят как другие люди играю в игры, т.н. реакции. Да и давно уже популярен формат реакций на реакции на то как другие люди играют в игры. В общем обнови прошивку старик
  8. GoldRobot

    Общее обсуждение игр т.7

    Дсер катается вокруг дроеда, а ему нормально
  9. GoldRobot

    Fighting Games Compilation

    Ага читал и кекал и плакал за него Пиздец обидка-то на самом деле. Причем я не понимаю, я погуглил можно отключить зуб на плойке. Почему не отключат? Не первый же раз в туриках наебываются.
  10. GoldRobot

    Fighting Games Compilation

    так Лида еще не вышла. За Лео очень по кайфу, но пани Собеску 100% буду трогать. Ладно, я тоже...
  11. GoldRobot

    Fighting Games Compilation

    Клянешься? Смотри нам, если поменяешь Леочку на Лидию, пиздить всем топиком будем. Блядей никто не любит.
  12. GoldRobot

    Программирование[11]

    Не позорься. Хватит уже. Раз ты даже не задумываешься (хотя я уже не раз на этом акцентрировал внимание) что можно зафиксировать порядок вызовов, то в этом всем нет смысла. Иди книжку почитай по тестированию какую, я хз. Чел, ты, ты...
  13. GoldRobot

    Программирование[11]

    Ну, у тебя же очевидно Bank не в воздухе лежит, а является приватным полем ThreadSafeBank класса, который перекрывает эти 3 метода. Вот и проверь, что перед любой операцией с Bank, поднимается лок. А потом опускается. Можешь, но не можешь. Очень странно жанглируешь словами. А так да. Придется больно и дорого писать тестируемый код, который можно будет протестировать. Тоесть, все так же как и абсолютно с другим кодом сложнее чем 'decode(str)->json', когда тебе нужно протестировать результат не отдаваемый собственно тебе напрямую. Спасибо что согласился переписав на свой лад. Если ты пишешь код который невозможно протестировать, то, очевидно, он будет нетестируемым. Неважно сколько потоков.
  14. GoldRobot

    Программирование[11]

    Конечно, ведь дуит нарисовал хуйню от пизды. В ней не только потокобезопасность не потестить то, в ней вообще ничего не потестить. И проверять ты должен не то что "компилятор решит или не решит", а то что ТЫ поставил точку синхронизации. Если ты свой классик пытаешься делать трейд сейф, и хочешь тестировать, то тебе и нужно сделать это проверяемым и тестируемым. Если ты обмазываешь мютексом, то придется и проверить что на момент чтения-записи мютекс поднят. Придется отделить данные, отделить от мютекса. Придется подрочиться с порядком вызовов. Проверить что вызвав метод set(a_value, b_value) ты видишь lock, data.set_implement(a_value, b_value), unlock. В таком и только таком порядке. В яндекс браузере ну наверняка есть мок который проверяет что при вызове http_get(url) вызывается метод SuvereniousDefense.call_mayor(url, user_home_adress) и потом YandexAdvertizie.embed_advertising(get_response)? Вот и тут так же брат. Вы пишите же моки в своем яндекс браузере верон? Ведь пишите?
  15. GoldRobot

    Программирование[11]

    Ясно, что еще можно было ожидать от псевдо-программиста. Как это делать я тебе уже сказал. Тестируй поведение своего класса, мокай, проверяй возможные кейсы. Остальное пусть грохуф тебе объясняет, мой ресурс который я для тебя выделил уже закончился.
  16. GoldRobot

    Программирование[11]

    Ну обмаж свой первый пример мютексом. Посмотри на него. И возможно поймешь. А если не поймешь, напиши сюда, ребята объяснят.
  17. GoldRobot

    Программирование[11]

    Я все еще нихуя не понял, как буд-то ты пытаешься сказать о чем то, чего не знаешь. Тест должен проверять не "работает" или "не работает", а то что поведение ожидаемо, и результат совпадает. Почему мне это объяснять то нужно вообще? Если ты тестируешь трейд сейфети, то ты и будешь покрывать тестами отсутствие дата рейсов. А не то что оно скомпилилось. Внезапно, примитивы синхронизации можно мокнуть. Заменить и подменить в тесте. Так же как и источники проблем, по типу сокетов и таймеров, для воспроизведения реального кейса. Это не считая хотя бы попросту кланговских санитайзеров, которые не идеальны, но очень хорошо упрощают жизнь. Твоя идея того что внезапно std::mutex отьебнет на какой-то платформе, или компиляторе, конечно, революционная, я такое даже представить себе не мог. Но думаю если стандартные примитивы не работают на платформе, то проблема некорректной работы с ними, будет уже наименьшей из моих головных проблем. Такое делает один из моих коллег переодически, я же ебал в рот это по причинам которые изначально написал. В большинстве задач у нас это либо оверкил, либо усложняет код настолько, что он превращается в неподдерживаемое легаси сразу после релиза, к сожалению.
  18. GoldRobot

    Программирование[11]

    Что-то я вообще не понял твоей мысли. Если ты покрыл тестами, то код корректный должен быть.
  19. GoldRobot

    Программирование[11]

    А что мешает? Возможно. Просто тяжело и дорого покрывать.
  20. GoldRobot

    Программирование[11]

    я мне кажется ни одной софтины не помню которая былабы не асинхронной вне лаб чтоли кто-то синхронку пишет? однопоточное еще реально, но синхронка это сразу на выкидку просто пиши сразу многопоток если это работа с сетью, то сразу такой класс чтобы он был тредсейф никаких ебучих boost::asio::strand подобного дерьма
  21. GoldRobot

    Fighting Games Compilation

    незнаю мне 30 лет только в паспорте и синий я только вне теккена бываю
  22. GoldRobot

    Fighting Games Compilation

    В этом топике все синий+ кроме меня и тебя брат
  23. GoldRobot

    Fighting Games Compilation

    TheMainManSWE Я думал я один рейну считаю хворангом с без хуя. А оказывается ее даже ты из мишим выписал...
×
×
  • Создать...