Краткий комментарий к «Плохому программированию 101»

Несколько недель назад Apress выпустил последнюю книгу Плохие методы программирования 101.

(Или, если использовать его полное название, оптимизированное для оптимизации поисковых систем, Плохая практика программирования 101: станьте лучшим программистом, научившись (а не) программировать.)

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

Обычные вещи

В основном аудитория книги - это программисты-стажеры, такие как:

  • Студенты информатики
  • Новички в программировании
  • Ученики

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

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

Но что может вызвать удивление, так это подход в книге.

В поисках другого подхода

Чтобы изучить передовой опыт программирования, вы можете почитать передовой опыт, а затем применить его в своей работе.

Однако вопрос о том, как лучше всего программировать, - это щекотливая тема. Фактически, вы можете легко начать спор, спросив группу программистов о хороших методах программирования.

Почему? Что ж, есть старая шутка об экономистах, которая звучит примерно так:

Задайте вопрос трем разным экономистам, и вы получите четыре разных ответа.

Программисты не так уж плохи, но если вы спросите трех программистов о передовых методах работы по определенной теме, вы все равно часто получите три разных ответа (и несколько повышенных голосов). Типичные вопросы могут быть такими:

  • Следует ли разрешить использование goto?
  • Какова лучшая политика именования переменных?
  • Каков максимальный размер класса?

В идеальном мире у нас были бы простые ответы на эти вопросы, но мир, который дает нам пять фильмов Пиратов Карибского моря, далек от совершенства.

На подобные вопросы на самом деле есть сложные ответы, которые зависят от множества факторов. В любой ситуации может быть много приемлемых решений. Лучшая практика редко применяется во всех контекстах. Более того, область программирования постоянно развивается. Находятся новые подходы, а существующие методы постоянно совершенствуются. Список хороших практик не остается актуальным очень долго.

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

Это понимание побудило меня принять другой подход в статье Плохие методы программирования 101. В книге не говорится о том, как следует программировать. Вместо этого он советует вам, как не программировать. Он использует тот факт, что куча кода была написана за предыдущие десятилетия, и многие вещи уже были опробованы. Сочетание опыта и исследований показывает, какие вещи работают плохо, и их обычно следует избегать.

Стиль

Некоторые люди думают, что «смешно» - это «серьезно».

- Нил Гейман

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

В нем говорится и объясняется читателю множество «антисоветов», например:

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

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

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

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

Мне особенно нравится Как НЕ писать роман Говарда Миттельмарка и Сандры Ньюман. Это книга, набитая антисоветами вроде сделайте своих персонажей безупречными и неповторимыми, держите уровень напряженности на низком уровне и пусть ваш главный герой с легкостью преодолевает препятствия. Короче говоря, все правила, которым вы должны следовать, если хотите, чтобы ваша рукопись была отклонена. Он написан в юмористическом стиле для начинающего автора, который любой ценой надеется избежать публикации. Вот почему я считаю, что этот совет намного лучше запомнился мне.

Мой собственный вынос

Если есть книга, которую вы хотите прочитать, но она еще не написана, вы должны ее написать.

- Тони Моррисон

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

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

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

Я уже придерживался мнения, что компьютерные книги должны больше экспериментировать. У авторов так много возможностей играть с условностями, комбинировать, казалось бы, разрозненные формы, подходить к старым вещам с новых сторон, рассказывать истории, рассказывать забытые истории, сплетать, казалось бы, бесконечный парад новых вещей из вычислений в более крупные рассказы, заставляют людей смеяться, может быть, даже заставляют их плакать. Не поймите меня неправильно, уже есть кое-что интересное (генезис информатики в форме комиксов в стиле стимпанк, кто-нибудь?). Я просто хочу, чтобы было намного больше.

После написания этой книги я все еще придерживаюсь этого мнения. Плохие методы программирования 101 вряд ли можно назвать радикальным отходом от стандартного учебника, но он играет с условностями по-своему и подходит к теме необычно (я надеюсь! ) Запоминающийся и познавательный образ. Это просто моя последняя попытка применить на практике то, что я проповедую.

Я планирую продолжать играть.

Хотите узнать больше?

Если вам интересно, чем я занимаюсь, я приветствую участие читателей.

Узнайте больше для себя, посетив мой сайт или подписавшись на меня в Twitter. Вы также можете подписаться на мою рассылку новостей, где я делюсь последними новостями о моей текущей работе.

Или вовлеките меня напрямую. Напишите мне в Твиттере. Или отправьте мне сообщение через мою страницу в Facebook.

Наконец, я продаю свои товары

Хотите купить мою книгу?