yigal_s: (Default)
[personal profile] yigal_s
Чем хороший мультитредный программист отличается от плохого?

Плохой, как правило, знает, как написать мультитредный код, а хороший - как правило, не знает.

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

Если плохой мультитредный программист должен починить баг в коде, написанном другими плохими программистами - он как правило вставляет еще одну блокировку. Либо же убирает её. Хорошему в этом случае обычно приходится переписывать пол-проекта, меняя интерфейсы и архитектуру. В том редком случае, когда он всё же находит способ убедить себя, что он может починить этот баг.

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

Плохой программист умеет пользоваться мютексом, программист получше семафором, самый лучший из плохих - кондваром. Хороший программист знает, что он не умеет пользоваться ничем.

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

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

Date: 2011-08-17 08:36 pm (UTC)
From: [identity profile] graynm.livejournal.com
Полностью согласен! 8)

Одно замечание по последнему абзацу: не эмулировать, а имитировать. Эмуляция всё-таки работает в отличие от.

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