суббота, 5 сентября 2026 г.

[prog.c++] Всегда удивляюсь, когда вижу имена членов класса без суффиксов/префиксов

Данный пост навеян фрагментом кода из свежей статьи на хабре "Анатомия граблей", а именно вот этим фрагментом кода:

class Foo {
    int value;
public:
    Foo(int value) { // параметр затеняет поле class
        value = value; // ничего не делает, присваивает параметр самому себе
    }
};

Честно говоря, мне дико видеть, что кто-то до сих пор использует имена членов класса без специальных префиксов/суффиксов. Вроде как очень и очень старый прием, которым я сам пользуюсь с середины 1990-х и который не только делает код читабельнее, но и защищает от подобных ошибок.

У меня бы было написано так:

class Foo {
    int m_value;
public:
    Foo(int value) { // параметр ничего не затеняет
        m_value = value;
    }
};

И подобная опечатка сразу бы оказалась видна.

Но если уж префиксы или суффиксы для членов класса оскорбляют ваше чувство прекрасного, то возьмите за правило обращаться к ним через this->:

class Foo {
    int value;
public:
    Foo(int value) { // параметр затеняет поле class
        this->value = value; // ничего не затеняет
    }
};

Тем паче, что обращение this-> зачастую бывает необходимо при написании кода шаблонов (например, когда шаблон класса наследуется от шаблона класса и обращается к унаследованным из базового класса членам/методам).

PS. Самая странная система именования членов классов, которую доводилась видеть, была такой:

class Demo {
public:
  int a; // Открытый член класса без префикса или суффикса.

protected:
  int _b; // А вот защищенные и закрытые члены с префиксом.

private:
  int _c;
};

PPS. Касательно самой статьи "Анатомия граблей": она позиционируется как сборник C++ных граблей из области игростроя. Но практически все из описанного мне доводилось видеть в разнообразных проектах, которые к игрострою не имели никакого отношения. И какие-то из них (вроде выхода за границы статических массивов) не имеют дешевых решений, увы. По поводу же той части статьи, которая касается контроля за ресурсами и ручной работы с malloc/free, то слишком мало конкретики (плюс есть у меня подозрение, что в игрострое собирается публика, которой очень и очень фиолетово качество кода, но не факт, что подозрение верное).

вторник, 1 сентября 2026 г.

[life.cinema] Очередной кинообзор (2026/08)

Традиционный отчет о просмотренных за минувший месяц фильмах. Традиционно в начале каждого из списков идет то, что понравилось больше, а в конце то, на что свое время можно и не тратить.

Фильмы

Кривые линии господа ("God's Crooked Lines" или "Los renglones torcidos de Dios", 2021). Однозначно самое интересное из увиденного за последнее время. Некоторые твисты ну очень классные. Правда, чтобы разобраться в том, что же было показано, пришлось гуглить. И результат поисков не то, чтобы меня порадовал, лично я увидел в кино совсем другой сюжет (чисто детективный, без сильной привязки к психиатрии).

Человек-паук: Новый день (Spider-Man: Brand New Day, 2026). Очень круто сделанный очередной кино-аттракцион для любителей супергероев из "вселенной Марвел". Строго для поклонников жанра.

Чокнутые (Riff Raff, 2024). Отличное кино, получил удовольствие от просмотра. Но мои вкусы несколько специфичны, поэтому сразу предупреждаю, что зайдет оно не всем.

Колония (Gunche, 2026). Если понравился "Поезд в Пусан" от этого же режиссера, то можно смотреть и "Колонию".

Замри (Don't Move, 2024). Ничего не ждал, но этот оказался вполне себе добротным фильмом. Далеко не шедевр, но смотреть было интересно и никакого отрицательного послевкусия не осталось.

Соулм8йт (Soulm8te, 2026). В принципе, снято очень даже неплохо. Но все портит абсолютная предсказуемость происходящего на экране.

Шёпот за окном (The Whisper Man, 2026). Хорошие актеры и неплохой сюжет, но когда начинаешь вдумываться в происходящее, то возникает слишком много белых пятнышек, которые непонятно как объяснить. Поэтому невольно задаешься вопросом "а не втирают ли нам здесь какую-то дичь?"

Коллектор ("The Dept Collector" или "Khon Dueat Thuang Khaen", 2026). В принципе неплохой боевик. Местами предсказуемый, местами не очень, местами впадающий в какую-то Санта-Барбару. Но мне показался несколько затянутым.

Последний дом (The Last House, 2026). Даже не смотря на то, что это фантастика, в некоторые моменты настолько не верится, что это напрочь убивает всю идею происходящего на экране и сильно портит впечатление от фильма.

Точка замерзания (Dead of Winter, 2025). Хорошие актеры, хорошо играют. Но в происходящее на экране не верится от слова совсем.

Та, что сбежала: История Кары Робинсон (The Girl Who Escaped: The Kara Robinson Story, 2026). Очень и очень бюджетно, что сказывается как на картинке, так и на актерской игре -- такое впечатление, что играет одна лишь главная героиня, а всех остальных набрали из массовки по объявлению. В общем, можно смело пройти мимо.

Семь снайперов (Seven Snipers, 2026). Редкая фигня не смотря на наличие хороших (в прошлом) актеров. Не тратить на это время ни в коем случае!

Сериалы

Парижская полиция 1910 (Paris Police 1910, 2026). Отличное продолжение отличного сериала.

Убийства в Оре ("Åre Murders" или "The Åremorden", первый сезон, 2025). Не смотря на то, что всего пять небольших по хронометражу серий, типичная сериальная затянутость все равно ощущается. Но именно к детективной составляющей претензий нет, у каждого расследования неожиданная развязка.

Лаки (Lucky, первый сезон, 2026). Ждал много большего, по факту же очень и очень средний уровень, может быть даже пониже среднего. Плюс традиционная сериальная затянутость, пару серий точно можно было бы выбросить.

Шугар (Sugar, второй сезон, 2026). Первый сезон был любопытный. А вот во втором ничего заслуживающего внимания нет. Пожалуй, единственное его достоинство -- это качественно сделанная картинка и несколько хорошо играющих свои роли актеров.

Подразделение специального назначения ("Elite Force" или "G.I.G.N", первый сезон, 2026). Ждешь жесткий боевик про крутых спецназовцев, получаешь какую-то унылую мелодраму.

Фильм вне категории

Майкл (Michael, 2026). Здесь разочаровало все -- начиная от сюжета и даже визуального ряда до попыток станцевать так же, как Майкл Джексон. Такое ощущение, что после Богемской рапсодии и РокетМена захотелось повторить тот же трюк с еще одной музыкальной суперзвездой. И, что самое страшное, это получилось с таким очень и очень никаким фильмом.