Попинаем?
От: smeeld  
Дата: 19.04.22 16:12
Оценка:
Кто что скажет про код?

Re: Попинаем?
От: B0FEE664  
Дата: 20.04.22 13:38
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Кто что скажет про код?


S>


Открыл наугад:
https://github.com/ydb-platform/ydb/blob/main/ydb/core/grpc_services/rpc_copy_table.cpp :

    TCopyTableRPC(IRequestOpCtx* msg)
        : TBase(msg) {}


void DoCopyTableRequest(std::unique_ptr<IRequestOpCtx> p, const IFacilityProvider &) {
    TActivationContext::AsActorContext().Register(new TCopyTableRPC(p.release()));
}


Почему у TCopyTableRPC голый указатель, а не std::unique_ptr<IRequestOpCtx> ?


Открыл посмотреть https://github.com/ydb-platform/ydb/blob/main/util/system/condvar.h
ожидал увидеть std::condition_variable, а там чёрт ногу сломит. Зачем?

Ожидаемо, с ошибками:
    template <typename P>
    inline bool WaitD(TMutex& m, TInstant deadline, P pred) noexcept {
        while (!pred()) {
            if (!WaitD(m, deadline)) {
                return pred();
            }
        }
        return true;
    }

Вот что будет, если pred() выбросит исключение?
Почему P pred, а не P&& pred?
И каждый день — без права на ошибку...
Re[2]: Попинаем?
От: smeeld  
Дата: 20.04.22 13:56
Оценка:
Здравствуйте, B0FEE664, Вы писали:


BFE>Вот что будет, если pred() выбросит исключение?


Ну, тут не совсем справедливо. Понятно, что передать можно что угодно, но ожидается таки некий примитивный предикат в духе bool fn(){ return a != b; }
Re[3]: Попинаем?
От: B0FEE664  
Дата: 20.04.22 14:25
Оценка: -1
Здравствуйте, smeeld, Вы писали:

BFE>>Вот что будет, если pred() выбросит исключение?

S>Ну, тут не совсем справедливо. Понятно, что передать можно что угодно, но ожидается таки некий примитивный предикат в духе bool fn(){ return a != b; }

А почему не написать:
    template <typename P>
    inline bool WaitD(TMutex& m, TInstant deadline, P pred) noexcept(noexcept(pred()))
...

?
И каждый день — без права на ошибку...
Re: Попинаем?
От: cppguard  
Дата: 21.04.22 05:47
Оценка: +1
Здравствуйте, smeeld, Вы писали:

S>Кто что скажет про код?


Обычный кровавоэнтерпрайзный код: всё-в-кучу, перемешение стилей от С++89 до С++20. Кто работал в FAANG-ах, ничего нового для себя не откроет.
Re[2]: Попинаем?
От: Sheridan Россия  
Дата: 21.04.22 06:59
Оценка: +3 -1
Здравствуйте, B0FEE664, Вы писали:

BFE>Почему у TCopyTableRPC голый указатель, а не std::unique_ptr<IRequestOpCtx> ?

А зачем?
Если известно время жизни объекта, то нафига дополнительные сущности? Чтобы было? Так модно?
Matrix has you...
Re[3]: Попинаем?
От: Zhendos  
Дата: 21.04.22 07:14
Оценка: +3
Здравствуйте, Sheridan, Вы писали:

BFE>>Почему у TCopyTableRPC голый указатель, а не std::unique_ptr<IRequestOpCtx> ?

S>Если известно время жизни объекта, то нафига дополнительные сущности? Чтобы было? Так модно?

Хотя бы для того чтобы если во время конструирования объекта возникнет
исключение не получить утечку памяти
Re[4]: Попинаем?
От: Sheridan Россия  
Дата: 21.04.22 07:25
Оценка:
Здравствуйте, Zhendos, Вы писали:

Z>Хотя бы для того чтобы если во время конструирования объекта возникнет

Z>исключение не получить утечку памяти
Да вообще пофиг что происходит во время разработки. Оно по факту вообще может не работать. В прод такое тащить зачем?
Matrix has you...
Re[3]: Попинаем?
От: night beast СССР  
Дата: 21.04.22 07:25
Оценка: +2
Здравствуйте, Sheridan, Вы писали:

BFE>>Почему у TCopyTableRPC голый указатель, а не std::unique_ptr<IRequestOpCtx> ?

S>А зачем?
S>Если известно время жизни объекта, то нафига дополнительные сущности? Чтобы было? Так модно?

1. по приведенному коду совершенно не ясно время жизни. более того, в корегайдлайн голые указатели значат невладеющие.
2. если до того как указатель перехватят будет исключение, то получим утечку
Re[4]: Попинаем?
От: Sheridan Россия  
Дата: 21.04.22 07:28
Оценка: :)))
Здравствуйте, night beast, Вы писали:

S>>Если известно время жизни объекта, то нафига дополнительные сущности? Чтобы было? Так модно?


NB>1. по приведенному коду совершенно не ясно время жизни. более того, в корегайдлайн голые указатели значат невладеющие.

Спасибо, кэп. По коду не видно много чего бывает. А вот автор наверняка знать будет.

NB>2. если до того как указатель перехватят будет исключение, то получим утечку

Для этого qa есть. Чинить последствия вместо причины — такое себе.
Matrix has you...
Re[5]: Попинаем?
От: B0FEE664  
Дата: 21.04.22 07:34
Оценка: +3
Здравствуйте, Sheridan, Вы писали:

S>>>Если известно время жизни объекта, то нафига дополнительные сущности? Чтобы было? Так модно?

NB>>1. по приведенному коду совершенно не ясно время жизни. более того, в корегайдлайн голые указатели значат невладеющие.
S>Спасибо, кэп. По коду не видно много чего бывает. А вот автор наверняка знать будет.

Код пишут не для писателей, а для читателей. Мало ли что там автор "знает". Вот придёт завтра на смену одного автора другой и что он будет делать?
И каждый день — без права на ошибку...
Re[6]: Попинаем?
От: night beast СССР  
Дата: 21.04.22 07:39
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Код пишут не для писателей, а для читателей. Мало ли что там автор "знает". Вот придёт завтра на смену одного автора другой и что он будет делать?


здесь тот самый случай, когда бесполезно что-то доказывать
Re[5]: Попинаем?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 21.04.22 07:40
Оценка:
Здравствуйте, Sheridan, Вы писали:

NB>>2. если до того как указатель перехватят будет исключение, то получим утечку

S>Для этого qa есть. Чинить последствия вместо причины — такое себе.

А как qa будет обрабатывать ситуацию, когда на сервере в продакшене, например, кончится память? Или возникнет любая другая штатная проблема, которую нормальный код должен обрабатывать
Re[6]: Попинаем?
От: Sheridan Россия  
Дата: 21.04.22 07:46
Оценка:
Здравствуйте, B0FEE664, Вы писали:

NB>>>1. по приведенному коду совершенно не ясно время жизни. более того, в корегайдлайн голые указатели значат невладеющие.

S>>Спасибо, кэп. По коду не видно много чего бывает. А вот автор наверняка знать будет.
BFE>Код пишут не для писателей, а для читателей. Мало ли что там автор "знает". Вот придёт завтра на смену одного автора другой и что он будет делать?
Делать все подряд указатели умными?
Matrix has you...
Re[7]: Попинаем?
От: night beast СССР  
Дата: 21.04.22 07:49
Оценка:
Здравствуйте, Sheridan, Вы писали:

BFE>>Код пишут не для писателей, а для читателей. Мало ли что там автор "знает". Вот придёт завтра на смену одного автора другой и что он будет делать?

S>Делать все подряд указатели умными?

как минимум поставить gsl::owner
Re[6]: Попинаем?
От: Sheridan Россия  
Дата: 21.04.22 07:50
Оценка: :))) :))
Здравствуйте, Nuzhny, Вы писали:

NB>>>2. если до того как указатель перехватят будет исключение, то получим утечку

S>>Для этого qa есть. Чинить последствия вместо причины — такое себе.
N>А как qa будет обрабатывать ситуацию, когда на сервере в продакшене, например, кончится память?
Как то так

N>Или возникнет любая другая штатная проблема, которую нормальный код должен обрабатывать

Проэмулировать можно много чего. Давай ситуации.

И да, каждый чих испытывать конечно никаких ресурсов не хватит. Надо добавлять тесты к qa исходя из того что творится на проде.
А лечение выдуманных ошибок как и преждевременная оптимизация — такое себе.
Matrix has you...
Re[8]: Попинаем?
От: Sheridan Россия  
Дата: 21.04.22 07:52
Оценка: +1 -1
Здравствуйте, night beast, Вы писали:

BFE>>>Код пишут не для писателей, а для читателей. Мало ли что там автор "знает". Вот придёт завтра на смену одного автора другой и что он будет делать?

S>>Делать все подряд указатели умными?

NB>как минимум поставить gsl::owner

Ровно тот-же вопрос: Зачем? Так — модно? Или что?
Matrix has you...
Re[9]: Попинаем?
От: night beast СССР  
Дата: 21.04.22 08:02
Оценка: +1 -1
Здравствуйте, Sheridan, Вы писали:

NB>>как минимум поставить gsl::owner

S>Ровно тот-же вопрос: Зачем? Так — модно? Или что?

ответ был уже дан
Автор: B0FEE664
Дата: 21.04.22
Re: Попинаем?
От: Ip Man Китай  
Дата: 21.04.22 08:11
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Кто что скажет про код?


S>


Респект за работающий проект. Есть планы монетизировать?
Re[6]: Попинаем?
От: Ip Man Китай  
Дата: 21.04.22 08:14
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Код пишут не для писателей, а для читателей. Мало ли что там автор "знает". Вот придёт завтра на смену одного автора другой и что он будет делать?


Код пишут, чтобы работал и бабло шло. Пользователям вообще похеру, какие указатели там используются.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.