Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
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);
}
С точки зрения читабельности кода, в последнем ветвлении говнокод?
а если в языке есть сахар, чтобы проперть не отличалась от метода (в руби они вообще не отличаются, в коко, питоне и C# для этого есть средства), то как бы ты поступил?
Ну типа
user.isAllowedToKurarekoo, а там может метод в базу ходит и делает апдейт
Интересно, как это решают рубитсты: у них нету разницы между методом и проперти при вызове, но у булевых проперти принято добавлять в конце знак вопроса
в QT такого нет: там просто классы
в ObjC (и вероятно в свифте?) есть двухбуквенный префикс вместо namespace: NS -- Cococa (от NextStep), UI от UIKit итд.
В Java/Kotlin вообще префиксов нет. Тупо InputStream
В питоне и руби тоже
bormand # 0
MAKAKA # 0 ⇈
bormand # 0 ⇈
guest # 0 ⇈
bormand # 0 ⇈
MAKAKA # 0 ⇈
Ну типа
user.isAllowedToKurarekoo, а там может метод в базу ходит и делает апдейт
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
можем ли мы всегда считать, что проперть всегда без сайдэффектов?
bootcamp_dropout # 0 ⇈
в моем фреймворке геттеры должны быть чисыми по код стайлу и для мемоизации
статически это не заэнфорсишь так что придется по-старинке пиздить
MAKAKA # 0 ⇈
bootcamp_dropout # 0 ⇈
guest # 0 ⇈
английский хуевый
bootcamp_dropout # 0 ⇈
guest # 0 ⇈
bootcamp_dropout # 0 ⇈
и не думаю что в руби есть интерфейсы
guest # 0 ⇈
где еще так?
>и не думаю что в руби есть интерфейсы
ну да, там утка по идее
можно эсмулировать модулем кидающим not implemented, но зачем
bootcamp_dropout # 0 ⇈
Дык это hungarian notation
Где захочешь там и будет
MAKAKA # 0 ⇈
хунгариан это про префиксы переменных, отражающие тип или семантику
а IInterface и CClass я видел тока в C#, и MFC/COM вроде
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
и у скриптушни вроде тоже нет (хотя в тайпскприпте я не зна-- она же от микрософт)
bootcamp_dropout # 0 ⇈
MAKAKA # 0 ⇈
в QT такого нет: там просто классы
в ObjC (и вероятно в свифте?) есть двухбуквенный префикс вместо namespace: NS -- Cococa (от NextStep), UI от UIKit итд.
В Java/Kotlin вообще префиксов нет. Тупо InputStream
В питоне и руби тоже
bormand # 0 ⇈
Т.е. логически геттер не должен иметь сайдэффектов. Физически они там могут быть, но я как юзер геттера не обязан об этом знать.
OlegUP # 0 ⇈
oaoaoammm # 0
OlegUP # 0 ⇈
А скобки по корпоративному стилю расставляются.