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

Сообщение Re[7]: хромая логика от 02.12.2016 15:11

Изменено 02.12.2016 15:17 Кодт

Здравствуйте, __kot2, Вы писали:

__>вообще, на самом деле к оечно придирабс и хромиум — один из лучших проектов на С++.


Лучший, но тем внезапнее видеть такие косяки.
На самом деле, если задаться целью, то выловить можно много косяков.
Но хромовская политика чистоты кода — начиная с чистоты стиля — делает своё светлое дело.

__> есть такой мрак, что прямо кровь из глаз течет и ничего — пользуются люди. но если придираться, то я мое ревью бы на Point.h выглядело бы так:

__>constexpr Point() : x_(0), y_(0) {}  - нафиг constexpr. что он дает?

Во-первых, это такое поветрие, переезжать на C++14.
Во-вторых, это позволяет писать constexpr-функции, которые внутри занимаются геометрическими расчётами.

__>  constexpr Point(int x, int y) : x_(x), y_(y) {} - зачем два конструктора, когда одного достаточно с дефолтными параметрами?

А вот это — нафиг-нафиг! Ты же не можешь сделать функцию, у которой либо-ноль-либо-два параметра.
Получается, невольно разрешишь запись Point(x), которая обозначает Point(x,0). Кому-то специально нужны точки с нулевой ординатой?

__> constexpr int x() const { return x_; } - убрать нафиг эти методы, сделать члены x и y публичными
__>  constexpr int y() const { return y_; }

Единообразие с другими геометрическими классами, особенно — с прямоугольником. Иначе было бы rect.width и rect.right() либо rect.width() и rect.right.

Наркомания с групповым сеттером — какое-то легаси. Может быть, делалось для единообразия с подобными модификаторами прямоугольников и инсетов, так и осталось.

__>почему паскалевское именование в С++ проекте?


По нормативам. Змеи для инлайнов, паскали для громоздкого.

__> void SetToMin(const Point& other);  - непонятная фигня. почему это метод класса Point?

Фигня как раз понятная, — нахождение левой верхней точки, например, при объединении и пересечении прямоугольников.
Почему не в виде функции LeftTopMost(const Point& a, const Point& b) — это легаси наркомания.
Re[7]: хромая логика
Здравствуйте, __kot2, Вы писали:

__>вообще, на самом деле к оечно придирабс и хромиум — один из лучших проектов на С++.


Лучший, но тем внезапнее видеть такие косяки.
На самом деле, если задаться целью, то выловить можно много косяков.
Но хромовская политика чистоты кода — начиная с чистоты стиля — делает своё светлое дело.

__> есть такой мрак, что прямо кровь из глаз течет и ничего — пользуются люди. но если придираться, то я мое ревью бы на Point.h выглядело бы так:

__>constexpr Point() : x_(0), y_(0) {}  - нафиг constexpr. что он дает?

Во-первых, это такое поветрие, переезжать на C++14.
Во-вторых, это позволяет писать constexpr-функции, которые внутри занимаются геометрическими расчётами.

__>  constexpr Point(int x, int y) : x_(x), y_(y) {} - зачем два конструктора, когда одного достаточно с дефолтными параметрами?

А вот это — нафиг-нафиг! Ты же не можешь сделать функцию, у которой либо-ноль-либо-два параметра.
Получается, невольно разрешишь запись Point(x), которая обозначает Point(x,0). Кому-то специально нужны точки с нулевой ординатой?
Да ещё и без explicit, это вообще незащищённый секс.

__> constexpr int x() const { return x_; } - убрать нафиг эти методы, сделать члены x и y публичными
__>  constexpr int y() const { return y_; }

Единообразие с другими геометрическими классами, особенно — с прямоугольником. Иначе было бы rect.width и rect.right() либо rect.width() и rect.right.

Наркомания с групповым сеттером — какое-то легаси. Может быть, делалось для единообразия с подобными модификаторами прямоугольников и инсетов, так и осталось.

__>почему паскалевское именование в С++ проекте?


По нормативам. Змеи для инлайнов, паскали для громоздкого.

__> void SetToMin(const Point& other);  - непонятная фигня. почему это метод класса Point?

Фигня как раз понятная, — нахождение левой верхней точки, например, при объединении и пересечении прямоугольников.
Почему не в виде функции LeftTopMost(const Point& a, const Point& b) — это легаси наркомания.