| Замените в этой цитате слово «политиками» на слово «программированием», и получите замечательную рекомендацию. | |
| Возьмите в руки Стандарт C++ и внимательно его прочитайте, поскольку это единственный источник инфрмации, которому можно верить. Кроме самого Стандарта в этой жизни больше никому верить нельзя. | |
| Не верьте никому и никогда. Вы прочитали статью об ответственности? Представьте себе что авторы всех библиотек, с которыми вам приходится работать, жутко безответственные люди. Более того — представьте себе что даже вы сами — безответственный человек. Не верьте даже собственным классам и функциям. | |
| Если у функции специфицированы исключения — не верьте ей. Сегодня они специфицированы, завтра она начнет кидать std::runtime_error, а послезавтра — вообще, любые исключения, даже не отнаследованные от std::exception. | |
| Если вам предоставляют абстрактный интерфейс — не верьте тому, что он никогда не поменяется. Будьте готовы к тому, что он может поменяться в любой момент, и вам придется переписывать все его реализации. Будьте к этому готовы — прячьте, по возможности, сторонние интерфейсы за невиртуальными адаптерами, используйте «Nonvirtual interface» и «Curiously recurring template pattern», и будьте готовы к тому, что вам это всеравно не поможет. | |
| Если вам говорят, что вероятность первой ошибки составляет 99%, а второй — 1%, то не верьте этим данным. Будьте готовы в любой момент столкнуться с любой из этих ошибок. | |
| Не воспринимайте никакую информацию как постоянную, что бы вам не говорили. Всегда будьте готовы к тому, что любая внешняя информация может перевернуться с ног на голову. | |
| Пишите код, которому можно верить. Реализовывайте оператор присваивания и конструктор копирования, а не одноименные функции. Запрещайте копирование, если оно не отвечает своей семантике. Не используйте абстрактные классы, там где они не являются очевидной необходимостью. Не создавайте искусственных правил, взятых с потолка. Старайтесь опираться во всем на семантику, предоставляемую грамматикой языка — таким образом вы будете максимально перекладывать ответственность за свои действия со своих плеч на плечи Стандарта. А Стандарту, как я уже сказал, можно верить больше, чем кому бы это ни было. | |
| Хотя, конечно же, C++ — язык не идеальный, и об этом тоже нужно помнить. | |