Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
9.23 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

402m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 16. КодерыClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

План действий

Заполните анкету «План действий» и попробуйте определить, как применить на практике то, что вы узнали.

Контрольные вопросы

Подробное обсуждение этих вопросов можно найти в разделе «Ответы и обсуждение» на стр. 657.

Вопросы для размышления

1.Сколько нужно программистов, чтобы заменить электрическую лампочку?

2.Что лучше – энтузиазм, но слабое мастерство (при некоторой ком% петентности), или выдающийся талант, но отсутствие мотивации?

a.У кого код окажется лучше?

b.Кто окажется лучшим программистом (это разные вещи)?Что больше влияет на результирующий код: техническая компе% тентность или социальная позиция?

3.Мы пишем разные программы в зависимости от «унаследованного» кода. Чем различается написание следующих типов кода?

a.«Несерьезная» программа

b.Абсолютно новая система

c.Расширение существующей системы

d.Сопровождение старого кода

4.Если программирование – это искусство, то каким должно быть соотношение обдумывания и планирования с одной стороны и ин% туиции и инстинктивности – с другой? Чем руководствуетесь вы –

инстинктом или планом?

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

Контрольныеm

вопросы

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

403Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Кодеры

План действий

Внимательно заполните эту форму.

Подробности см. в описаниях типов программистов.

Я принадлежу к типу…

Отметьте тот тип, который больше всего вам соответствует.

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

Нетерпеливый

Плановик

Кодер

Ветеран

Гуру

Фанатик

Псевдогуру

Монокультурный

Высокомерный гений

Лодырь

Ковбой

Руководитель поневоле

Мои достоинства…

Перечислите то, что считаете своими лучшими качествами, умениями и способностями. Сравните с описанием своего типа программиста.

Мои недостатки…

Перечислите то, что считаете своими худшими качествами, умениями и способностями. Сравните с описанием своего типа программиста.

Я могу усовершенствоваться, если…

Как извлечь пользу из своих достоинств и компенсировать недостатки?

Я работаю с…

Вспомните программистов, с которыми ближе всего соприкасаетесь на работе. К каким типам они относятся?

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

Нетерпеливый

Плановик

Кодер

Ветеран

Гуру

Фанатик

Псевдогуру

Монокультурный

Высокомерный гений

Лодырь

Ковбой

Руководитель поневоле

Наша команда может работать лучше, если…

Что могло бы помочь вашей команде лучше писать программное обеспечение? Можно ли принять какие7то конкретные меры?

Вопросы личного характера

1.Если вы еще не заполнили анкету, приведенную выше, сделайте это сейчас. Вы должны определить действия для совершенствования и начать их выполнять!

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

ственный подход к кодированию.

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

404m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-xcha

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

Глава 16. КодерыClick

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Команды

Если вас много, разбейтесь на группы по три%пять программистов.

Задача

Вашей команде программистов поручена разработка описанного ниже нового продукта. Спроектируйте систему в течение отведен% ного времени. Объясните, на какие компоненты вы ее разделили и как распределили работу среди членов команды.

Код пока писать не нужно (хотя можно присудить дополнительные очки за демонстрацию действующего прототипа!). Не увлекайтесь перфекционизмом (на это нет времени); просто начните проектиро% вать нечто работоспособное.

Система

В силу обширных сокращений, проведенных в NASA, нет никого, кроме вашей команды, кому можно поручить написание программ% ного обеспечения для управления очередным зондом, который вы% садится на Марс. ПО должно обеспечить:

Перемещение по поверхности

Фотографирование

Получение метеорологических данных

Связь с центром управления на Земле

Быть очень надежным

Сроки выполнения

Это самое смешное. Вам дается всего пять минут. Конечно, это со% вершенно нереально, но хорошая метафора для графиков наших проектов. (Посмотрите, какое будет отставание…)

Подведение итогов

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

Ответы на такого рода вопросы ясно покажут, какому типу про% граммистов лучше всего соответствует каждый член команды.