- 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);
}
С точки зрения читабельности кода, в последнем ветвлении говнокод?
bormand 15.09.2020 12:17 # +1
MAKAKA 16.09.2020 00:16 # 0
bormand 16.09.2020 00:43 # 0
guest8 16.09.2020 00:44 # −999
bormand 16.09.2020 00:49 # 0
MAKAKA 16.09.2020 00:51 # 0
Ну типа
user.isAllowedToKurarekoo, а там может метод в базу ходит и делает апдейт
bootcamp_dropout 16.09.2020 00:52 # 0
MAKAKA 16.09.2020 00:53 # 0
можем ли мы всегда считать, что проперть всегда без сайдэффектов?
bootcamp_dropout 16.09.2020 00:56 # 0
в моем фреймворке геттеры должны быть чисыми по код стайлу и для мемоизации
статически это не заэнфорсишь так что придется по-старинке пиздить
MAKAKA 16.09.2020 01:00 # 0
bootcamp_dropout 16.09.2020 01:05 # 0
guest8 16.09.2020 01:07 # −999
bootcamp_dropout 16.09.2020 01:09 # 0
guest8 16.09.2020 01:10 # −999
bootcamp_dropout 16.09.2020 01:10 # 0
и не думаю что в руби есть интерфейсы
guest8 16.09.2020 01:12 # −999
bootcamp_dropout 16.09.2020 01:16 # 0
Дык это hungarian notation
Где захочешь там и будет
MAKAKA 16.09.2020 01:17 # 0
хунгариан это про префиксы переменных, отражающие тип или семантику
а IInterface и CClass я видел тока в C#, и MFC/COM вроде
bootcamp_dropout 16.09.2020 01:20 # 0
MAKAKA 16.09.2020 01:21 # 0
и у скриптушни вроде тоже нет (хотя в тайпскприпте я не зна-- она же от микрософт)
bootcamp_dropout 16.09.2020 01:25 # 0
MAKAKA 16.09.2020 01:29 # 0
в QT такого нет: там просто классы
в ObjC (и вероятно в свифте?) есть двухбуквенный префикс вместо namespace: NS -- Cococa (от NextStep), UI от UIKit итд.
В Java/Kotlin вообще префиксов нет. Тупо InputStream
В питоне и руби тоже
bormand 16.09.2020 00:58 # 0
Т.е. логически геттер не должен иметь сайдэффектов. Физически они там могут быть, но я как юзер геттера не обязан об этом знать.
OlegUP 16.09.2020 10:13 # 0
oaoaoammm 15.09.2020 15:37 # 0
OlegUP 15.09.2020 21:22 # +1
А скобки по корпоративному стилю расставляются.