Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Питер_Гудлиф_Ремесло_программиста_Практика_написания_хорошего_кода.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

 

 

 

388m

 

 

 

 

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

 

 

 

 

Это легендарный таинственный гений: маг программирова% ния. Гуру часто бывает спокойным и скромным, даже не% много странным.1 Он пишет прекрасный код, но плохо умеет общаться с простыми смертными.

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

Всеведущий Гуру все знает и все видит. Он включается в любые техни% ческие дискуссии и высказывает свое мнение эксперта.

Достоинства

Гуру – опытные чародеи. Они знакомы со всеми современными тех% нологиями и знают, какие из старых приемов лучше. (Все новей% шие технологии Гуру сами и изобрели.) У них масса опыта, и они пишут зрелый код, который легко сопровождать.

Хороший Гуру – замечательный наставник; у него можно многому научиться.

Недостатки

Гуру редко умеют общаться. Они не всегда косноязычны, но дума% ют настолько быстро и на таком уровне, что простым смертным за ними не угнаться. В разговоре с Гуру чувствуешь себя глупым, сму% щенным или то и другое вместе.

Чем слабее навыки коммуникации у Гуру, тем хуже из него настав% ник. Гуру не могут понять, почему другие чего%то не знают или ду% мают не с такой скоростью, как они.

Как быть, если вы один из них

Попытайтесь спуститься с небес на землю и жить в реальном мире. Не рассчитывайте, что все будут столь же сообразительными и ду% мать так же, как вы. Требуется немалое мастерство, чтобы давать простые и понятные объяснения. Нужно тренироваться.

Как работать с такими людьми

Если вы встретили Гуру, учитесь у него. Впитывайте все – не толь% ко технические сведения. Чтобы зарекомендовать себя как Гуру, необходим определенный темперамент и склад личности – знания,

а не высокомерие. Учтите это.

1 Во всяком случае более странным, чем «нормальные» программисты. По% жалуй, подойдет слово эксцентричный.

 

 

 

 

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

 

 

 

 

 

389Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Псевдогуру считает себя гением. Он ошибается. Он гово% рит с видом знатока, но несет чушь.

Это, пожалуй, самый опасный тип программиста: Псевдогу% ру трудно распознать, пока не обнаружится нанесенный им вред. Менеджеры считают, что он – гений, потому что он го% ворит правдоподобно и самоуверенно.

Обычно Псевдогуру ведут себя достаточно нескромно по сравнению с гуру. В них больше хвастовства и самодоволь% ства. Он сам назначает себя авторитетом. (Напротив, гуру признаются в качестве экспертов своими коллегами.)

Достоинства

Можно предположить, что у Псевдогуру достоинств нет, но его силь% ная сторона – это вера в себя. Очень важно верить в свои силы и быть уверенным в том, что ты пишешь код высокого качества. И все же…

Недостатки

Главный недостаток Псевдогуру – его уверенность в себе. Он пере% оценивает свои способности, и его решения ставят ваш проект под угрозу. Он – большая обуза.

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

Как быть, если вы один из них

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

Как работать с такими людьми

Будьте крайне осторожны.

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

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

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

 

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

w Click

 

 

 

390m

 

 

 

 

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

 

 

 

 

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

Достоинства

Гений обладает высоким техническим мастерством. Он может осу% ществлять сильное техническое руководство и катализировать ко% манду, если все с ним согласятся.

Переходя на личности

Приводимая классификация программистов не слишком науч% на. Психологи разработали более формальные классификации личности – официальные способы объявить вас уродом. Они не ограничиваются сферой разработки программного обеспечения, но дают ценное представление о поведении программистов.

Наиболее популярен, видимо, опросник Майерс#Бриггс (Briggs 80). Он раскладывает личность по четырем осям: экстраверт (E) или интроверт (I); доверяющий только фактам (S) или интуитив% ный (N); думающий (T) или импульсивный (F); ориентирован% ный на результат (J) или процесс (P). Результат этой классифи% кации оказывается четырехбуквенным индикатором; для про% граммистов наиболее характерен индикатор ISTJ.

Роли в команде по Белбину – классификация характеров по принципу склонности вести себя, участвовать в работе и от# носиться к коллегам определенным образом (Belbin 81). Ее на% значение – оценить врожденное общественное поведение челове% ка и его способность устанавливать взаимоотношения, опреде% лить, как они способствуют или затрудняют успешную работу команды. Классификация показывает, как тип личности влияет на умение работать в команде. Белбин выделяет в поведении де% вять конкретных ролей: три типа людей действий, три типа со% циально%направленных и три типа интеллектуальных людей. С учетом этого можно подбирать эффективные команды из лю% дей с взаимодополняющими свойствами; если бы все программи% сты оказались координаторами, никакого конечного продукта вообще не получилось бы.

Эти классификации личностей не имеют взаимнооднозначного со% ответствия с теми, которые предложены мной. Кроме того, в них явно отсутствуют приматы.

 

 

 

 

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

 

 

 

 

 

391Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Недостатки

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

Как быть, если вы один из них

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

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

Как работать с такими людьми

Оказывайте уважение Гению, как и другим программистам, с кото% рыми он работает. Избегайте неконструктивных ссор с ним. Но от% стаивайте свою позицию – доказывайте правоту своих мнений и взглядов. Пусть вас не пугает общение с ним. Обсуждая техниче% ские вопросы с Гением, вы совершенствуетесь как программист; просто научитесь не поддаваться эмоциям. Если вы уверены в своей правоте, найдите себе союзников, которые помогут вам в споре.

Будьте осторожны и сами не станьте высокомерным или любителем поспорить.

Ковбой

Ковбой – плохой программист, активно избегающий тяжелого труда. Он не упустит короткого пути, если обнаружит его. Не% которые ошибочно относят ковбоев к хакерам. Но он не хакер в классическом понимании этого слова. Хакер – это термин, ко% торым гики с гордостью описывают рискового кодировщика.1

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

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

1Неграмотные люди извратили этот термин и неправильно употребляют его вместо крэкера – взломщика компьютерных систем. См. «Крэкеры и хаке%

ры» на стр. 301.