"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора Если вы можете организовать понятия программы только в виде обще-
го графа (не дерева или ациклического направленного графа), и если вы не можете локализовать взаимные зависимости, то вы, по всей ви- димости, попали в затруднительное положение, из которого вас не вы- ручит ни один язык программирования. Если вы не можете представить какой-либо просто формулируемой зависимости между основными поняти- ями, то скорее всего справиться с программой не удастся. Напомню, что большую часть программирования можно легко и очевидно выполнять, используя только простые типы, структуры данных, обычные функции и небольшое число классов из стандартной библиотеки. Весь аппарат, входящий в определение новых типов, не следует использовать за исключением тех случаев, когда он действительно нужен. Вопрос "Как пишут хорошие программы на C++" очень похож на вопрос "Как пишут хорошую английскую прозу?" Есть два вида ответов: "Знайте, что вы хотите сказать" и "Практикуйтесь. Подражайте хорошему языку." Оба совета оказываются подходящими к C++ в той же мере, сколь и для английского - и им столь же трудно следовать. Правила Правой Руки (*) Здесь приводится набор правил, которых вам хорошо бы придерживаться изучая C++. Когда вы станете более опытны, вы можете превратить их в то, что будет подходить для вашего рода деятельности и вашего стиля программирования. Они умышленно сделаны их чересчур буквально. Написание хороших программ требует ума, вкуса и терпения. Вы не собираетесь как следует понять это с самого начала; поэкспериментируйте! [1] Когда вы программируете, вы создаете конкретное представление идей вашего решения некоторой задачи. Пусть структура отражает эти идеи настолько явно, насколько это возможно: [a] Если вы считате "это" отдельным понятием, сделайте его классом. ____________________ (*) Некоторые легко запоминаемые эмпирические правила, "Правила- помошники." (прим. перев.) - стр 18 - [b] Если вы считате "это" отдельным объектом, сделайте его объектом некоторого класса. [c] Если два класса имеют общим нечто существенное, сделайте его базовым классом. Почти все классы в вашей программе будут иметь нечто общее; заведите (почти) универсальный базовый класс, и разработайте его наиболее тщательно. [2] Когда вы определяете класс, который не реализует некоторый математический объект, вроде матрицы или |
|
|