Цель заброшена
Автор не отписывался в цели 10 лет 1 месяц 30 дней
Дневник цели

Двадцать третья глава позади. Впереди 24-я, "Рефакторинг".

Прочитал главу о нестандартных управляющих структурах. Резюме по поводу оператора go to:
"Использование goto — это вопрос религии. Моя догма: в современных языках вы легко можете заменить девять из десяти операторов goto эквивалентными последовательными конструкциями. В этих простых случаях вы должны заменять операторы goto просто по привычке. В сложных случаях вы также можете изгнать goto в девяти случаях из десяти: можно разбить код на меньшие по размеру методы, использовать try%finally или вложенные if, проверять и перепроверять статусную переменную или реструктурировать условные выражения. Исключить goto в таких случаях сложнее, но это хорошее умственное упражнение, а методы, обсуждаемые в этом разделе, предлагают вам инструменты для этих целей.
В одном случае, оставшемся из 100, в котором применение goto — вполне легальное решение задачи, подробно задокументируйте, а затем используйте его. Если у вас на ногах резиновые сапоги, не стоит обходить весь квартал, чтобы не запачкаться в грязной луже. Но не отвергайте варианты избавления от goto, предлагаемые другими программистами. Они могут заметить то, на что вы не обратили внимания."

Прочитал 16-ю главу. Много очевидных (для меня) моментов, большинство советов просты и заключаются в управлении сложностью. Надо просто писать код, который потом легко будет читать :) Следующая глава о нестандартных управляющих структурах, в т.ч. о goto, кстати, довольно интересный оператор: его в основном не рекомендуют использовать, хотя "иногда его использование вполне целесообразно", как писал Шилдт, но примеров он не привел. Интересно будет почитать, что на эту тему пишет Макконнелл.

Не использовать "магические" числа, строковые литералы, etc. Использовать константы с понятными именами, перечисления. Сложные if-ы можно упростить, вынеся отдельные блоки условий в булевы переменные.

Сила имен переменных.
Целая глава о том, как называть переменные.
Имя переменной должно:
- Точно описывать представляемую сущность.
- Характеризовать проблему реального мира, а не ее решение на ЯП.
- Быть не слишком коротким и не слишком длинным (8-20).
- Спецификатор должен быть в конце имени (arrayMin, playsTotal, etc).
В больших циклах лучше использовать выразительные имена для переменных индексов цикла (в противовес i, j, k).
Для булевских переменных лучше использовать имя типа found вместо isFound.
Конвенции именований важно использовать, если код будут читать/сопровождать другие люди, конвенция упрощает понимание кода.