Выразительный JavaScript (Хавербеке) - страница 81


>animateWorld(new LifelikeWorld(

>  ["####################################################",

>   "#                 ####         ****              ###",

>   "#   *  @  ##                 ########       OO    ##",

>   "#   *    ##        O O                 ****       *#",

>   "#       ##*                        ##########     *#",

>   "#      ##***  *         ****                     **#",

>   "#* **  #  *  ***      #########                  **#",

>   "#* **  #      *               #   *              **#",

>   "#     ##              #   O   #  ***          ######",

>   "#*            @       #       #   *        O  #    #",

>   "#*                    #  ######                 ** #",

>   "###          ****          ***                  ** #",

>   "#       O                        @         O       #",

>   "#   *     ##  ##  ##  ##               ###      *  #",

>   "#   **         #              *       #####  O     #",

>   "##  **  O   O  #  #    ***  ***        ###      ** #",

>   "###               #   *****                    ****#",

>   "####################################################"],

>  {"#": Wall,

>   "@": Tiger,

>   "O": SmartPlantEater, // из предыдущего упражнения

>   "*": Plant}

>));

8. Поиск и обработка ошибок

Отладка изначально вдвое сложнее написания кода. Поэтому, если вы пишете код настолько заумный, насколько можете, то по определению вы не способны отлаживать его.

Брайан Керниган и П. Ж. Плауэр, «Основы программного стиля»

Юан-Ма написал небольшую программу, использующую много глобальных переменных и ужасных хаков. Ученик, читая программу, спросил его: «Вы предупреждали нас о подобных техниках, но при этом я нахожу их в вашей же программе. Как это возможно?» Мастер ответил: «Не нужно бежать за поливальным шлангом, если дом не горит».

Мастер Юан-Ма, «Книга программирования».

Программа – это кристаллизованная мысль. Иногда мысли путаются. Иногда при превращении мыслей в программу в код вкрадываются ошибки. В обоих случаях получается повреждённая программа.

Недостатки в программах обычно называют ошибками. Это могут быть ошибки программиста или проблемы в системах, с которыми программа взаимодействует. Некоторые ошибки очевидны, другие – трудноуловимы и могут скрываться в системах годами.

Часто проблема возникает в тех ситуациях, возникновение которых программист изначально не предвидел. Иногда этих ситуаций нельзя избежать. Когда пользователя просят ввести его возраст, а он вводит «апельсин», это ставит программу в непростую ситуацию. Эти ситуации необходимо предвидеть и как-то обрабатывать.