Мета закинута
Автор не відписував в цілі 7 років 5 месяців 23 дня
Щоденник мети

Когда-то давно читал книгу Стива Макконнелла "Совершенный код". Это была чудесная книга просто маст рид. Приведены лучшие практики и примеры для начинающих и опытных программистов. Конечно книга подойдет для новичков больше. Так как опытный программист должен был придти к этим же выводам с течением времени.
На днях прочитал Боба Мартина "Чистый код". Тоже очень годная книга. Однозначный маст рид для всех. Однако есть некоторые моменты, которые меня смущают. Каждый метод должен выполнять только одну операцию. Допустим мне кажется не совсем применимо в геймдеве, где отрисовка происходит в одном методе Draw, а обновление - в Update. Да и как-то смотреть на класс, который разбухает от количества методов не совсем приятно. Можно конечно делить на подклассы, усложняя вложенность классов. С другой стороны конечно неприятно читать длинные листинги и моменты с кучей булевных значений. Мне кажется главное найти баланс и некий компромисс между количеством методов и длинным листингом в одном методе.

По наводке @Артем прочитал книгу Just for Fun про отца Линукс - Линуса Торвальдса и его историю создания операционной системы, которая является одним из них крупнейших опен сорс проектов в мире. После прочтения книги, решил дополнительно прочитать про Линуса Торвальдса и был приятно удивлен, что он еще является автором популярной нынче технологии контроля версий - git. Очень интересный человек, гик до мозга костей. Читая такие книги понимаешь куда тебе следует стремиться.

Прочитал Скотта Мейерса "Наиболее эффективное использование C++". Книга не понравилась, после прочтения Эффективного использования С++. Видно, что книга очень сильно устарела. Например, я совершенно не понял совета про двойную диспетчирезацию (double dispatch). Зачем делать мапу с парой и указателем на метод класса, возводя усложнение класса в абсолют, если можно банально обойтись свитч-кейс?
Из интересного есть реализация умных указателей через подсчет ссылок, ленивые вычисления и наоборот, разъяснения таблицы виртуальных методов. Многие советы не являются откровением. В целом можно читать книгу методом пролистывания, останавливаясь подробно лишь на интересных для себя местах.

"Зачем делать мапу с парой и указателем на метод класса, возводя усложнение класса в абсолют, если можно банально обойтись свитч-кейс?" Все очень просто, представь у тебя 100разных вариантов поведение с 100строками кодов(конечно это пздц, ну допустим), что тебе проще будет при изменение - искать нужный case или метод?

Прочитал Скотта Мейерса "Эффективное использование C++". Очень хорошая книга раскрывает нюансы, дает некоторое представление о том, что происходит "под капотом" при использовании возможностей С++. Книга показывает казалось бы очевидные вещи про перегрузку операторов, функций, вызов виртуальных функций, однако показывает подводные камни и что может пойти не так при реализации казалось бы тривиальной задачи. Немного дает о себе знать, что книга старого года и в ней описывается С++11 только как tr1.

Начал читать Скотта Мейерса "Эффективное использование C++". Очень интересная книга, в ней описываются отличные рекомендации и нюансы работы с С++. Например:
Widget w1 = Widget(); //1
Widget w2 = w1; // 2 - будет вызван копирующий конструктор, вместо оператора присваивания
Widget w3; // 3
w3 = w1; // 4 будет вызван оператор присваивания.
Определять, что будет вызываться копирующий конструктор вместо оператора присваивания можно, если идет создание объекта с инициализацией, как в строке 2 выше. Грубо говоря написано имя класса Widget перед именем переменной w2. В случае, когда идет простая инициализация переменной, как в строке 4.
Подробнее: https://ideone.com/wIq3xF

Дочитал книгу Mike McShaffry, David Graham "Game Coding Complete". В книге развернуты все процессы разработки - графика, физика, AI, многопоточность, серверная часть и т.д. Книга как бы дает небольшое введение и дает дальнейшие референсы для изучения подробнее. Некоторые части книги на мой субъективный взгляд являются сложными и перегруженными лишней информацией.

Mike McShaffry "Game Coding Complete" прочитал треть книги. В книге рассказывается о тонкостях разработки, которые уже применяются применяются на практике. Описываются довольно специфичные рекомендации, которые могут применяться только под консоли. Кроме того, большой уклон идет под DirectX разработку.