- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
uint64_t stored_msg_id = _container_msg_id.get(ctrl_msg.sequence); // Получаем msg_id из мапы для связки сообщений
if (stored_msg_id)
proto_fill(ctrl_msg, stored_msg_id); // если он там был то новому сообщению даем этот msg_id
else
proto_fill(ctrl_msg); // Иначе формируем новый msg_id
// Отсылаем сообщение
...
// Если msg_id не был в _container_msg_id то произойдет попытка вставки msg_id полученного через proto_fill.
if (!stored_msg_id && !_container_msg_id.insert(ctrl_msg.sequence, ctrl_msg.msg_id))
{
DEBUG(L, 0, "[%p] Can't store request's control message id (%llu) in bunch map" \
", response's msg_id will differ", this, msg.msg_id);
}
С точки зрения читабельности кода, в последнем ветвлении говнокод?
Ну типа
user.isAllowedToKurarekoo, а там может метод в базу ходит и делает апдейт
можем ли мы всегда считать, что проперть всегда без сайдэффектов?
в моем фреймворке геттеры должны быть чисыми по код стайлу и для мемоизации
статически это не заэнфорсишь так что придется по-старинке пиздить
и не думаю что в руби есть интерфейсы
Дык это hungarian notation
Где захочешь там и будет
хунгариан это про префиксы переменных, отражающие тип или семантику
а IInterface и CClass я видел тока в C#, и MFC/COM вроде
и у скриптушни вроде тоже нет (хотя в тайпскприпте я не зна-- она же от микрософт)
в QT такого нет: там просто классы
в ObjC (и вероятно в свифте?) есть двухбуквенный префикс вместо namespace: NS -- Cococa (от NextStep), UI от UIKit итд.
В Java/Kotlin вообще префиксов нет. Тупо InputStream
В питоне и руби тоже
Т.е. логически геттер не должен иметь сайдэффектов. Физически они там могут быть, но я как юзер геттера не обязан об этом знать.
А скобки по корпоративному стилю расставляются.