О стиле кода
Mar. 23rd, 2007 03:55 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Стиль кода в программировании – это такая религия. Если хочешь выжить в программистском мире, придется тебе научиться ее ритуалам и обычаям. Близкое знакомство жопы с колом маловероятно, но камнями (рублями) могут и побить.
Придя на новое место работы, поинтересуйся, кто тут шаман-стилист. В роли шамана-стилиста может выступать Самый Большой Начальник из видимых с твоей низкой ракопозиции, а также специально поставленный индивидуум... или индивидурень. Нередко шамана-стилиста можно распознать по названию должности, которая звучит примерно как “охрентектор”. Но не всегда. Охрентектор может оказаться безобидным, а роль шамана исполняет кто-то другой.
Если шамана нет, можешь считать, что тебе повезло. Но ненадолго.
Шаман-стилист определяет, как ты должен писать программы. Нет, если ты думаешь, что в институте (или где ты там делал вид, что учился) тебя научили писать программы хорошо, ты неправ. Как хорошо, знает только шаман-стилист.
Сакральное знание о том, как хорошо, приходит шаману из нескольких святых источников.
Первый – откровения других шаманов. Их нетрудно найти в Сети. Откровения выглядят примерно так: это страничка с правилами, в которых говорится о том, как не надо и о том, как надо. Там нет умных алгоритмов и нетривиальных полезных приемов, нет. Свет Истины касается того, где надо ставить фигурную скобочку, как оформлять комментарии, сколько пробелов должно быть вокруг знака равенства... в таком роде. Если правила пронумерованы, а в коментах восхищенные “плюсадыны”, знайте – это оно самое: Великое Откровение О Том Как Надо.
Второй источник сакральных знаний шамана-стилиста – это психические травмы его программистского детства. Когда-то шаман получил... женский половой орган за использование (или неиспользование) некоего приема. Будьте уверены: при первой возможности он поделится этим органом с вами. Скажем, если когда-то шаману вставили пистон за использование 100 операторов goto в 150 строках кода, будьте уверены: он вам вставит еще больший пистон за использование 1 оператора goto в 100 тыс. строках кода.
Третье – это Гениальные Открытия самого шамана. Когда-то давно шаману явился Дух и подсказал, что счетчики ссылок это круто. Все, теперь вы будете подвешивать счетчики ссылок даже к комментариям. Иначе шаман вас проклянет.
Шаманы-стилисты как правило властные и религиозные. Нужно быть порядком властным и религиозным человеком, чтобы трахать мозги другим людям по поводу количества пробелов в табуляциях. Но не надейтесь, что шаманы-стилисты тупые, и их так же легко обдурить, как профессора в проституте. Совсем необязательно.
Ты можешь, конечно, рискнуть и пойти против господствующей в твоем офисе религии. Но знай: когда в твоей программе что-то будет работать не так,... то виноват будет не кривой интерфейс, не баги в стороннем модуле, не нехватка времени, не случайные опечатки и даже не то, что ты шлялся по порносайтам в то время, когда, по идее, должен был отлаживать код. Нет. Виновато будет твое неследование стилю. В религиозном обществе несчастья любят объяснять нарушением “табу”.
Также в твоем офисе может быть такой обряд, как code review. Это когда кто-то садится, смотрит на твою программу и начинает объяснять тебе, из какого места у тебя растут руки. Если этот "кто-то" невредный, он, вместо того, чтобы искать баги в твоем коде, с пользой для здоровья проведет время на порносайте или в ЖЖ, а потом скажет, дескать, ничего не нашел. К вашему общему удовлетворению. Если тебе не повезло, и твой код стала смотреть добросовестная свинья, тогда первое, что ей бросится в глаза – это нарушение стиля. До реальных багов дело, скорее всего, не дойдет. И опять именно религиозный вопрос станет важнее прочего.
Так что следуй заведенному порядку. Со временем привыкнешь настолько, что нарушение стиля будет резать тебе глаза, и ты сам будешь закидывать камнями неверных отступников.
Ты спрашиваешь, а как надо писать код по идее? Если ты пишешь для себя самого, то ты и без меня знаешь, как тебе удобнее. А если ты пишешь “на дядю”, то главная цель “дяди” состоит в том, чтобы кто-то другой смог легко разобраться в твоем коде. То есть, чтобы тебя можно было легко уволить в любой момент.
Придя на новое место работы, поинтересуйся, кто тут шаман-стилист. В роли шамана-стилиста может выступать Самый Большой Начальник из видимых с твоей низкой ракопозиции, а также специально поставленный индивидуум... или индивидурень. Нередко шамана-стилиста можно распознать по названию должности, которая звучит примерно как “охрентектор”. Но не всегда. Охрентектор может оказаться безобидным, а роль шамана исполняет кто-то другой.
Если шамана нет, можешь считать, что тебе повезло. Но ненадолго.
Шаман-стилист определяет, как ты должен писать программы. Нет, если ты думаешь, что в институте (или где ты там делал вид, что учился) тебя научили писать программы хорошо, ты неправ. Как хорошо, знает только шаман-стилист.
Сакральное знание о том, как хорошо, приходит шаману из нескольких святых источников.
Первый – откровения других шаманов. Их нетрудно найти в Сети. Откровения выглядят примерно так: это страничка с правилами, в которых говорится о том, как не надо и о том, как надо. Там нет умных алгоритмов и нетривиальных полезных приемов, нет. Свет Истины касается того, где надо ставить фигурную скобочку, как оформлять комментарии, сколько пробелов должно быть вокруг знака равенства... в таком роде. Если правила пронумерованы, а в коментах восхищенные “плюсадыны”, знайте – это оно самое: Великое Откровение О Том Как Надо.
Второй источник сакральных знаний шамана-стилиста – это психические травмы его программистского детства. Когда-то шаман получил... женский половой орган за использование (или неиспользование) некоего приема. Будьте уверены: при первой возможности он поделится этим органом с вами. Скажем, если когда-то шаману вставили пистон за использование 100 операторов goto в 150 строках кода, будьте уверены: он вам вставит еще больший пистон за использование 1 оператора goto в 100 тыс. строках кода.
Третье – это Гениальные Открытия самого шамана. Когда-то давно шаману явился Дух и подсказал, что счетчики ссылок это круто. Все, теперь вы будете подвешивать счетчики ссылок даже к комментариям. Иначе шаман вас проклянет.
Шаманы-стилисты как правило властные и религиозные. Нужно быть порядком властным и религиозным человеком, чтобы трахать мозги другим людям по поводу количества пробелов в табуляциях. Но не надейтесь, что шаманы-стилисты тупые, и их так же легко обдурить, как профессора в проституте. Совсем необязательно.
Ты можешь, конечно, рискнуть и пойти против господствующей в твоем офисе религии. Но знай: когда в твоей программе что-то будет работать не так,... то виноват будет не кривой интерфейс, не баги в стороннем модуле, не нехватка времени, не случайные опечатки и даже не то, что ты шлялся по порносайтам в то время, когда, по идее, должен был отлаживать код. Нет. Виновато будет твое неследование стилю. В религиозном обществе несчастья любят объяснять нарушением “табу”.
Также в твоем офисе может быть такой обряд, как code review. Это когда кто-то садится, смотрит на твою программу и начинает объяснять тебе, из какого места у тебя растут руки. Если этот "кто-то" невредный, он, вместо того, чтобы искать баги в твоем коде, с пользой для здоровья проведет время на порносайте или в ЖЖ, а потом скажет, дескать, ничего не нашел. К вашему общему удовлетворению. Если тебе не повезло, и твой код стала смотреть добросовестная свинья, тогда первое, что ей бросится в глаза – это нарушение стиля. До реальных багов дело, скорее всего, не дойдет. И опять именно религиозный вопрос станет важнее прочего.
Так что следуй заведенному порядку. Со временем привыкнешь настолько, что нарушение стиля будет резать тебе глаза, и ты сам будешь закидывать камнями неверных отступников.
Ты спрашиваешь, а как надо писать код по идее? Если ты пишешь для себя самого, то ты и без меня знаешь, как тебе удобнее. А если ты пишешь “на дядю”, то главная цель “дяди” состоит в том, чтобы кто-то другой смог легко разобраться в твоем коде. То есть, чтобы тебя можно было легко уволить в любой момент.
no subject
Date: 2007-03-23 01:13 pm (UTC)no subject
Date: 2007-03-23 01:22 pm (UTC)Всему есть применение
Date: 2007-03-23 02:09 pm (UTC)С другой стороны, когда на работу приходит новенький, то он в неофитском порыве стремится все переделать "как правильно" и так и норовит испортить работающие системы... Если неофит после не одумается в течение одной-двух недель, то он таки может явить собой реальную опасность. Вот тут как раз на него и нужно напустить такого шамана :0))
Re: Всему есть применение
Date: 2007-03-23 02:13 pm (UTC)у нас 2 недели не ждут... сразу напускают даже не шамана, а кодирующую гориллу с ближайшей ветки :)
no subject
Date: 2007-03-23 02:31 pm (UTC)no subject
Date: 2007-03-23 02:36 pm (UTC)no subject
Date: 2007-03-23 03:15 pm (UTC)no subject
Date: 2007-03-23 03:17 pm (UTC)no subject
Date: 2007-03-23 05:40 pm (UTC)no subject
Date: 2007-03-23 08:03 pm (UTC)no subject
Date: 2007-03-23 10:41 pm (UTC)no subject
Date: 2007-03-28 07:46 am (UTC)Code reviewer, заклинаю тебя духом Кнута, прииди же к нам...
no subject
Date: 2007-03-28 08:26 am (UTC)гы гы гы :)
no subject
Date: 2007-04-04 05:14 pm (UTC)особенно если речь идет о непростом программном продукте, парус, например
с другой стороны - виден почерк - это Иван писал, а это Петр, вот тут Сидор ловко извернулся =)) код с характером и непростым, капризным поведением, если есть настроение, можно попытаться понять, что он делает))