Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter
Название: Практика программирования
Автор: Керниган Б., Пайк Р.
Аннотация:
Приходилось ли вам когда-нибудь:
• тратить кучу времени на то, чтобы закодировать неверный алгоритм?
• использовать слишком сложную структуру данных?
• при тестировании программы пропустить очевидную проблему?
• тратить день на то, чтобы обнаружить ошибку, которую можно было бы найти за пять минут?
• сталкиваться с тем, что программа должна работать в три раза быстрее и использовать меньше памяти?
• затрачивать титанические усилия на то, чтобы перевести программу с рабочей станции на PC или наоборот?
• пытаться внести изменения в чужую программу?
• переписывать программу целиком, потому что разобраться в ней не удалось?
Ну и как — понравилось?
С программистами такое происходит все время. Однако справиться с подобными проблемами часто гораздо труднее, чем хотелось бы, поскольку такие темы, как тестирование, отладка, переносимость, производительность, альтернативы проектирования и стиль, темы, относящиеся к практике программирования, как правило, оказываются вне сферы внимания информатики и учебных курсов по программированию. Большинство программистов изучают их сами по себе, — в основном, на собственном опыте, а некоторые не изучают вообще.
В мире разнообразных интерфейсов, постоянно меняющихся языков, систем и утилит, под постоянным давлением обстоятельств мы зачастую теряем из вида главные принципы, которые должны быть основанием любой хорошей программы, — простоту, четкость и универсальность.
Не уделяется должного внимания инструментам и нотациям, способам записи, которые механизируют некоторые аспекты создания программ, то есть привлекают к процессу программирования сам компьютер.
Эта книга построена как раз на основных принципах, применимых к информационным технологиям на любом уровне. К таким взаимосвязанным принципам относятся: простота, благодаря которой программы остаются короткими и управляемыми, четкость и ясность, которые облегчают понимание программ и людям, и машинам, обобщенность, означающая, что программа способна корректно работать в широком диапазоне ситуаций и нормально адаптироваться к новым ситуациям, и автоматизация, которая позволяет передавать машине наиболее утомительные и скучные части нашей работы. Рассматривая программирование на различных языках, от алгоритмов и структур данных, через проектирование, отладку, тестирование, до улучшения производительности, мы иллюстрируем универсальные концепции, которые не зависят ни от языка, ни от операционной системы, ни от конкретного задания...