Э. Хант, Д. Томас. Программист-прагматик.

Э. Хант, Д. Томас. Программист-прагматик.

Еще одна книжка по программированию, но не совсем. В "Прагматике" нет сложных алгоритмов, скучных формул, необъятных фреймворков и паттернов с непонятными названиями. Книга ведет речь о тех мелочах, которые встречаются обычному программисту в его работе каждый день, но на которые часто не обращают внимания - до тех пор, пока все не сломается. Большинство вопросов, рассмотренных в книге, так или иначе замечаются разработчиком на подсознательном уровне - книга дает этим вопросам названия, классифицирует их и расставляет по полочкам.

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

Случается, что команда тратит несколько месяцев на проект, разрабатывает, отлаживает, шлифует, показывает заказчику - и выясняется, что заказчик имел в виду совсем другое. Книга рассказывает прагматичному программисту о прототипах, "стрельбе трассирующими" и настоятельно рекомендует почаще общаться с заказчиком (а лучше - влезть в его шкуру, скажем, на рабочем месте, и понять изнутри насущные потребности клиента).

Со всяким программистом случалось - подходишь ты к коллеге и говоришь: "Слушай, мне нужна твоя помощь. Смотри, вот класс, в нем метод. Метод обращается к такому-то объекту, передавая ему строку и интерфейс ICallback. Так вот, если строка содержит только английские символы, то все хорошо. Если же попадается юникодовая кодировка... погоди, кодировка. Все, я разобрался, спасибо за помощь". Разговор с резиновым утенком, трассировка, тестирование "на доказательство" и другие полезные мелочи зачастую сокращают время отладки в разы.

И др.

Книга легкая, позитивная, содержит множество живых примеров и мало кода. В принципе, доступна для понимания даже непрограммистам, а излагаемые в ней идеи могли бы применяться и в других областях. Рекомендуется. (=

Комментариев нет:

Отправить комментарий