с++
Закон дырявых абстракций
Статья 2000 года, каждый абзац которой можно разобрать на цитаты.
http://russian.joelonsoftware.com/Articles/LeakyAbstractions.html
TCP
Волшебство же состоит в том, что TCP основан на IP. Иными словами, TCP обязуется работать надёжно, используя лишь ненадёжные детали.
Погода
И ещё: несмотря на дворники, мощные фары, крышу и обогреватель, которые защищают (абстрагируют) от непогоды, под дождём быстро ехать нельзя; приходится иметь дело с водяной подушкой, а иногда ливень такой, что на дороге ничего не видно, и надо остановиться; так что и погоду, из-за закона дырявых абстракций, полностью не абстрагируешь.
С++
Интересно, что историю развития C++ можно описать как историю затыкания дырок в абстракции строк. Уж не знаю, отчего бы не добавить к языку элементарный класс строчек.
Веревка достаточной длины, чтобы выстрелить себе в ногу
Хорошая книга в стиле «пара сотен советов от прожженого программиста».
Затрагиваются темы проектирования, проблем разработки, форматирования кода, названий переменных, использования препроцессора, различий языков С и С++. Последняя большая глава посвящена рассказу о том, как правильно пользоваться всем тем счастьем, которое сваливается на программиста С++.
О кодировках в C++
Грустная история забытых символов. Как не сойти с ума при работе с кодировками в C++
Журнал «Хакер» всегда умел писать интересные и подробные статьи.
Начнем с главного. Создатели языка си были минималистами. По сей день в стандарте C/C++ не предусмотрено типа «байт». Вместо этого типа используется тип char. Char означает character, иными словами — символ. Соответственно, говоря в С/С++ о типе char, мы подразумеваем «байт», и наоборот. Вот тут и начинается самое интересное. Дело в том, что максимально возможное число символов, кодируемых 8 битами, равно 256, и это при том, что на сегодняшний день в таблице Unicode насчитываются сотни тысяч символов.