82
Часть II . Инвестируя в свой продукт
Действуй!
1 . Выбери методику разработки программного обеспечения и найди посвя-
щенные ей ресурсы . Начни читать книги и сайты, присоединись к списку
рассылки . Посмотри на эту методику критически . Выдели с твоей точки
зрения сильные и слабые стороны . Что мешает внедрить ее на твоем ра-
бочем месте? Изучи аналогичным способом еще одну методику . Сравни
достоинства и недостатки обеих методик . Можешь ли ты скомбинировать
предлагаемые подходы?
Совет 17
.
На плечах гигантов
Будучи джазовым музыкантом, я часто слушаю музыку. И это не
фоновая музыка, звучащая, когда я читаю или веду машину. Я в нее
вслушиваюсь
. Ведь джазовая импровизация представляет собой вос-
произведение того, что ты слышишь кроме аккордов песни, и поэто-
му вдумчивое слушание является важным источником вдохновения
и сведений о том, что работает, а что не очень. Что звучит здорово,
а что всего лишь приемлемо.
Огромное количество записей, сделанных за историю существования
джаза, представляет собой невероятный комплекс знаний, которым
может воспользоваться любой, обладающий умением слушать. А зна-
чит, прослушивание музыки для джазового музыканта — не пассив-
ная деятельность. Это обучение. Более того, умение понимать, что
именно ты слышишь, — это навык, развивающийся со временем. Мои
друзья-музыканты для этого устраивают специальные встречи. Мы
сидим и слушаем джаз, а потом обсуждаем услышанное. Иногда мы
играем в
игру
, в которой один из нас исполняет импровизированное
соло, а остальные должны по стилю понять, какая запись послужила
основой импровизации.
Разумеется, подобные мероприятия происходят не только у джазовых
музыкантов. Классические композиторы делают то же самое. И даже
писатели и поэты. Скульпторы и художники. Изучение работ масте-
ров является важным компонентом становления нового мастера.
83
Совет 17 . На плечах гигантов
Прослушав джазовую запись, мы обсуждаем, какими музыкальными
устройствами пользовался импровизатор для передачи своей мысли.
«Класс! Ты слышал, как он начал отступать от основной темы в конце
этой формы?» или «Как-то странно он играл на фоне этого бита во
время перехода». Эти обсуждения помогают нам открыть и понять
приемы, которые можно вставить в следующую импровизацию.
Дизайн и программирование ПО в этом отношении во многом по-
хожи на различные области искусства. В поисках шаблонов и трюков
приходится анализировать огромные объемы готового кода. Образ-
цы разработки, с которыми можно познакомиться в книге «Приемы
объектно-ориентированного проектирования. Паттерны проек-
тирования» (
Design Patterns: Elements
of Reusable ObjectOriented Software
)
появились как попытка обнаружить
и документировать допускающие
многократное использование реше-
ния часто возникающих при разработке программного обеспечения
проблем. Они формализовали изучение существующего кода, сделав
его доступным большому количеству профессионалов в области ПО.
Тем не менее это всего лишь небольшой фрагмент обучающих прак-
тик, которыми мы можем воспользоваться посредством чтения кода.
Какими алгоритмами пользуются другие программисты для решения
отдельно взятых задач? Как со стратегической точки зрения они име-
нуют переменные, функции и структуры? Если бы я захотел реализо-
вать протокол мгновенных сообщений Jabber на другом языке, как это
можно было бы сделать? Какие нестандартные способы существуют
для управления взаимодействием UNIX- и Windows-процессов?
Изу чение чужого кода позволит тебе найти ответы на эти и другие
подобные вопросы.
Чужой код не только позволяет найти ответы на конкретные вопросы,
но и служит своего рода увеличительным стеклом для рассмотрения
собственного стиля и способностей. Прослушивание записей Джона
Колтрейна (John Coltrane) всегда напоминает мне о моем уровне игры
на саксофоне, аналогичный смирительный эффект несет чтение тру-
дов выдающихся разработчиков программного обеспечения. Но это
нужно не только для того, чтобы вспомнить про свое место. В про-
Чтобы проникнуть в суть,
анализируй чужой код .
84
Do'stlaringiz bilan baham: |