![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Чем хороший мультитредный программист отличается от плохого?
Плохой, как правило, знает, как написать мультитредный код, а хороший - как правило, не знает.
Если хорошему мультитредному программисту всё же удалось написать мультитредный код - это, скорее всего, признак падения его высокой квалификации. Более хороший мультитредный программист, скорее всего, не справился бы с этой задачей.
Если плохой мультитредный программист должен починить баг в коде, написанном другими плохими программистами - он как правило вставляет еще одну блокировку. Либо же убирает её. Хорошему в этом случае обычно приходится переписывать пол-проекта, меняя интерфейсы и архитектуру. В том редком случае, когда он всё же находит способ убедить себя, что он может починить этот баг.
Код, написанный плохим программистом никогда не войдет в дедлок, поскольку он для этого не имеет достаточно сложной системы блокировок. Код, написанный хорошим - никогда не войдет в дедлок, поскольку вообще не будет написан, в том числе по причине неустранимой возможности дедлоков и рейс-кондишенов.
Плохой программист умеет пользоваться мютексом, программист получше семафором, самый лучший из плохих - кондваром. Хороший программист знает, что он не умеет пользоваться ничем.
При правильной организации работы, плохой программист может написать код, работающий большую часть времени у большей части клиентов. Попытки хорошего программиста исправить ошибки в этом коде как правило могут привести только к потере этого ценного качества.
Некоторые хорошие мультитредные программисты умеют притворяться плохими и эмулировать их способности. При необходимости.
Плохой, как правило, знает, как написать мультитредный код, а хороший - как правило, не знает.
Если хорошему мультитредному программисту всё же удалось написать мультитредный код - это, скорее всего, признак падения его высокой квалификации. Более хороший мультитредный программист, скорее всего, не справился бы с этой задачей.
Если плохой мультитредный программист должен починить баг в коде, написанном другими плохими программистами - он как правило вставляет еще одну блокировку. Либо же убирает её. Хорошему в этом случае обычно приходится переписывать пол-проекта, меняя интерфейсы и архитектуру. В том редком случае, когда он всё же находит способ убедить себя, что он может починить этот баг.
Код, написанный плохим программистом никогда не войдет в дедлок, поскольку он для этого не имеет достаточно сложной системы блокировок. Код, написанный хорошим - никогда не войдет в дедлок, поскольку вообще не будет написан, в том числе по причине неустранимой возможности дедлоков и рейс-кондишенов.
Плохой программист умеет пользоваться мютексом, программист получше семафором, самый лучший из плохих - кондваром. Хороший программист знает, что он не умеет пользоваться ничем.
При правильной организации работы, плохой программист может написать код, работающий большую часть времени у большей части клиентов. Попытки хорошего программиста исправить ошибки в этом коде как правило могут привести только к потере этого ценного качества.
Некоторые хорошие мультитредные программисты умеют притворяться плохими и эмулировать их способности. При необходимости.
no subject
Date: 2011-08-17 08:36 pm (UTC)Одно замечание по последнему абзацу: не эмулировать, а имитировать. Эмуляция всё-таки работает в отличие от.
И одно следствие: хороший программист почему-то зачастую очень быстро становится хорошим архитектором.