Информация об изменениях

Сообщение Re[2]: Refactoring VS Здравый смысл от 10.02.2021 12:40

Изменено 10.02.2021 12:41 avovana

Re[2]: Refactoring VS Здравый смысл
Здравствуйте, Skorodum, Вы писали:

S>А чем emplace_back не угодил? По идее и проще и короче и надежнее


Как вариант. Это было написано до меня. По мне, твой вариант тоже нормально выглядит.

Здравствуйте, Nuzhny, Вы писали:
N>Моя позиция: всем использовать единый стиль оформления кода. Он плох или тебе не нравится? Надо договориться об изменениях. Одному и втихаря даже разумные идеи продвигать вредно для команды и проекта.
Здесь согласен.
Вопрос, скорее, в целом, про варианты использования языка в разных контекстах.

N>Тебе не нравится move для большой std::string? Почему? Есть негласное правило: если потенциально в этом месте не работает short (small) string optimization, то надо использовать move. В твоём случае строка явно большая. Не так важно, что в данном конкретном случае это погоды не сделает, сколько важно, что так делается во всём проекте.

Но вот не было move и как-то жили. По-прежнему, подсвечу основную мысль — это конфиг. Он считывает файл при старте. Ему не нужно это делать за 1,23 ns.
Зачем синтаксически усложнять код?
Учитывая этот контекст использования — "медленный" конфиг, который просто делает своё дело и который хочется написать понятно и чтобы читалось понятно.
Просто сделал сущность. Просто наполнил. Просто положил в контейнер.

N> Аналогичных гласных или негласных правил много: писать override, final, default для конструкторов/деструкторов или noexcept, copy ellision или передача по ссылке, инициализация членов класса при объявлении и т.д. Какие-то правила приходят, какие-то уходят, но они должны быть общеприняты и оговорены.

А, допустим, есть модуль, где нужны плюсы во всей красе — там тебе и copy ellision и т.п.
Так почему из-за пары таких мест, вносить обязательство везде сражаться за RVO
const auto& time_stamp_with_time_from_config = std::mktime(&current_time_stamp);
const auto& time_to_start_snapshot = system_clock::from_time_t(time_stamp_with_time_from_config);
const auto& now = system_clock::now();

порождая во всех модулях вырви-глаз код? Т.к. в общем гайде код стайла так написано? (или запечаталось в голове)?
Re[2]: Refactoring VS Здравый смысл
Здравствуйте, Skorodum, Вы писали:

S>А чем emplace_back не угодил? По идее и проще и короче и надежнее


Как вариант. Это было написано до меня. По мне, твой вариант тоже нормально выглядит.

Здравствуйте, Nuzhny, Вы писали:
N>Моя позиция: всем использовать единый стиль оформления кода. Он плох или тебе не нравится? Надо договориться об изменениях. Одному и втихаря даже разумные идеи продвигать вредно для команды и проекта.
Здесь согласен.
Вопрос, скорее, в целом, про варианты использования языка в разных контекстах.

N>Тебе не нравится move для большой std::string? Почему? Есть негласное правило: если потенциально в этом месте не работает short (small) string optimization, то надо использовать move. В твоём случае строка явно большая. Не так важно, что в данном конкретном случае это погоды не сделает, сколько важно, что так делается во всём проекте.

Но вот не было move и как-то жили. По-прежнему, подсвечу основную мысль — это конфиг. Он считывает файл при старте. Ему не нужно это делать за 1,23 ns.
Зачем синтаксически усложнять код?
Учитывая этот контекст использования — "медленный" конфиг, который просто делает своё дело и который хочется написать понятно и чтобы читалось понятно.
Просто сделал сущность. Просто наполнил. Просто положил в контейнер.

N> Аналогичных гласных или негласных правил много: писать override, final, default для конструкторов/деструкторов или noexcept, copy ellision или передача по ссылке, инициализация членов класса при объявлении и т.д. Какие-то правила приходят, какие-то уходят, но они должны быть общеприняты и оговорены.

А, допустим, есть модуль, где нужны плюсы во всей красе — там тебе и copy ellision и т.п.
Так почему из-за пары таких мест, вносить обязательство везде сражаться за RVO
const auto& time_stamp_with_time_from_config = std::mktime(&current_time_stamp);
const auto& time_to_start_snapshot = system_clock::from_time_t(time_stamp_with_time_from_config);
const auto& now = system_clock::now();

порождая во всех модулях вырви-глаз код? Т.к. в общем гайде код стайла так написано(или запечаталось в голове)?