Обзор книги Стива Макконнелла «Совершенный код»

Ваш работодатель не может заставить вас стать хорошим программистом, а зачастую он даже не может оценить, насколько хороши вы как программист. Если вы хотите стать отличным программистом, вы отвечаете за это сами. Это зависит от
вашего характера.

Стив Макконелл «Совершенный код»

Есть книги, которые переиздают едва ли не каждый год, но они едва ли успевают за тем, что происходит в отрасли. Есть другие, которые настолько фундаментальны, что начав изучать их вы либо получите отвращение к программированию, либо станете ученым. Труд Стива Макконела стоит в стороне — сочетая в себе руководство, наставления и справочник по решению проблем вне зависимости от вашего языка программирования и навыков. Кому же нужна эта книга? Почему её советуют как новичкам так и профессионалам?

Первое на что вы обратите своё внимание — это объём книги, почти 900 страниц. И тут можно попасть в ловушку, пусть вы читаете по 50 страниц в день, то вы решите, что делов всего на 900/50 = 18 дней, но на самом деле это будет скорее всего не так. Стив рассказывает о разных вещах, как о непосредственном кодировании, так и об архитектуре , стиле, общении внутри команды и многом другом. Плотность информации в книги довольно велика, плюс ко всему на многих страницах есть ссылки ведущие на сайт автора с дополнительным материалом, а в конце каждой главы есть ссылки на рекомендуемую литературу (сложно представить сколько автор провёл времени изучая её, при этом оставаясь действительным разработчиком).

Чего не хватает книги, так это реальных задач и настоящего кода, но автор говорит, что лучшим сборником кода могут быть сайты вроде https://sourceforge.net/ (скорее всего сюда подойдут github, bitbucket, а также сайты с библиотеками для вашего языка разработки). Если быть более точным, то невозможно включить в одну книгу все варианты, которые могут встретиться в жизни. Поэтому в конечном итоге вы сами решаете что лучше в том или ином случае, на свой страх и риск. И помните о том, что научиться гораздо проще, чем переучиваться.

Эту книгу не имеет смысла читать тем, кто не знает ни одного языка программирования, потому что с большой долей вероятности вы ничего не поймёте. Есть и обратная сторона медали, за 15 лет с момента выхода книги некоторые вещи настолько закрепились в отрасли, что стали довольно очевидными, что по-прежнему не мешает разработчикам создавать плохой код. Если же вы хотите улучшить свой стиль, но вам кажется, что книга большая, сложная и избыточная, то попробуйте хотя бы прочитать книгу «Программирование без дураков» Пассиг К., Яндер Й. (ссылка на русское издание, заметка на хабре). Частично книги перекрываются, но книга Стива более глубокая.

Книга структурирована и ведет читателя шаг за шагом по миру разработке рассказывая о том чем занимаются программисты, как каждый этап разработки влияет на дальнейшие этапы ( В более литературной форме об этом можно у ДеМарко в романе «DeadLine»). Не смотря на то, что автор старается не касаться языков и библиотек (большинство примеров в книге не C/C++/Java/VisualBasic), он говорит о том, что нужно стараться решать задачу на уровне проблемы, не скатываясь к более низкому уровню проблемы до того момента, пока это не понадобится. Между тем после того как код будет скомпилирован вам может понадобиться знание ассемблера для того, чтобы понять что происходит с вашей программой, быть может ваш хитроумный код не только не удобно читать, но и компилятор не видит делать причин делать его более быстрым.

Кажется, что один из принципов — это будь проще. Код должен быть ясным и понятным, требования ясными, комментарии находится как можно ближе к коду, если не можете что-то понять сделать, то говорите об этом, не держите много переменных в одном методе, старайтесь избегать вложенных циклов и ветвлений.

Другой принцип — никогда не следуйте слепо тем или иным требованиям. Одна из простых причин — требования и правила могли устареть, ваш монитор может вместить больше 80 символов в строке. Из этого же принципа следует другой, старайтесь не делать поспешных выводов до тех пор, пока не измерите так ли это хорошо на самом деле. То что кажется удобным — может отбирать много времени (например красивые или избыточные комментарии). То что кажется хитрым — может быть сложным и на самом деле вы не совсем понимаете что делаете. Вам кажется что ваш код быстр, но компилятор может делать эту работу куда лучше вас, и люди, которые занимаются разработкой компиляторов уже решили вашу проблему, а вы по-прежнему пишите не читаемый код.

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

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

Эта книга нужна всем тем, кто собирается заниматься профессиональной разработкой и не останавливаться на достигнутом. «Совершенный код» будет полезен и профессионалам, по той причине что базируется на разных стадиях разработки от проектирования, до выдачи заказчикам. От языков и инструментов, до красоты кода и личных качеств разработчиков. Если вы прочитаете книгу, то у вас как минимум появятся новые темы для обсуждения с другими разработчиками.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.