psilogic: (wpriz)
[personal profile] psilogic
Стиль кода в программировании – это такая религия. Если хочешь выжить в программистском мире, придется тебе научиться ее ритуалам и обычаям. Близкое знакомство жопы с колом маловероятно, но камнями (рублями) могут и побить.

Придя на новое место работы, поинтересуйся, кто тут шаман-стилист. В роли шамана-стилиста может выступать Самый Большой Начальник из видимых с твоей низкой ракопозиции, а также специально поставленный индивидуум... или индивидурень. Нередко шамана-стилиста можно распознать по названию должности, которая звучит примерно как “охрентектор”. Но не всегда. Охрентектор может оказаться безобидным, а роль шамана исполняет кто-то другой.


Если шамана нет, можешь считать, что тебе повезло. Но ненадолго.

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

Сакральное знание о том, как хорошо, приходит шаману из нескольких святых источников.

Первый – откровения других шаманов. Их нетрудно найти в Сети. Откровения выглядят примерно так: это страничка с правилами, в которых говорится о том, как не надо и о том, как надо. Там нет умных алгоритмов и нетривиальных полезных приемов, нет. Свет Истины касается того, где надо ставить фигурную скобочку, как оформлять комментарии, сколько пробелов должно быть вокруг знака равенства... в таком роде. Если правила пронумерованы, а в коментах восхищенные “плюсадыны”, знайте – это оно самое: Великое Откровение О Том Как Надо.

Второй источник сакральных знаний шамана-стилиста – это психические травмы его программистского детства. Когда-то шаман получил... женский половой орган за использование (или неиспользование) некоего приема. Будьте уверены: при первой возможности он поделится этим органом с вами. Скажем, если когда-то шаману вставили пистон за использование 100 операторов goto в 150 строках кода, будьте уверены: он вам вставит еще больший пистон за использование 1 оператора goto в 100 тыс. строках кода.

Третье – это Гениальные Открытия самого шамана. Когда-то давно шаману явился Дух и подсказал, что счетчики ссылок это круто. Все, теперь вы будете подвешивать счетчики ссылок даже к комментариям. Иначе шаман вас проклянет.

Шаманы-стилисты как правило властные и религиозные. Нужно быть порядком властным и религиозным человеком, чтобы трахать мозги другим людям по поводу количества пробелов в табуляциях. Но не надейтесь, что шаманы-стилисты тупые, и их так же легко обдурить, как профессора в проституте. Совсем необязательно.

Ты можешь, конечно, рискнуть и пойти против господствующей в твоем офисе религии. Но знай: когда в твоей программе что-то будет работать не так,... то виноват будет не кривой интерфейс, не баги в стороннем модуле, не нехватка времени, не случайные опечатки и даже не то, что ты шлялся по порносайтам в то время, когда, по идее, должен был отлаживать код. Нет. Виновато будет твое неследование стилю. В религиозном обществе несчастья любят объяснять нарушением “табу”.

Также в твоем офисе может быть такой обряд, как code review. Это когда кто-то садится, смотрит на твою программу и начинает объяснять тебе, из какого места у тебя растут руки. Если этот "кто-то" невредный, он, вместо того, чтобы искать баги в твоем коде, с пользой для здоровья проведет время на порносайте или в ЖЖ, а потом скажет, дескать, ничего не нашел. К вашему общему удовлетворению. Если тебе не повезло, и твой код стала смотреть добросовестная свинья, тогда первое, что ей бросится в глаза – это нарушение стиля. До реальных багов дело, скорее всего, не дойдет. И опять именно религиозный вопрос станет важнее прочего.

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

Ты спрашиваешь, а как надо писать код по идее? Если ты пишешь для себя самого, то ты и без меня знаешь, как тебе удобнее. А если ты пишешь “на дядю”, то главная цель “дяди” состоит в том, чтобы кто-то другой смог легко разобраться в твоем коде. То есть, чтобы тебя можно было легко уволить в любой момент.

Date: 2007-03-23 01:13 pm (UTC)
From: [identity profile] ex-on-the-va630.livejournal.com
Я сам не программер, но учился однажды на оного. При дозначном следовании стилю вполне возможно запутать программу так, что хрен в ней кто разберётся, даже сам стилист.

Date: 2007-03-23 01:22 pm (UTC)
From: [identity profile] psilogic.livejournal.com
Угу, есть такое дело :)

Всему есть применение

Date: 2007-03-23 02:09 pm (UTC)
From: [identity profile] yoshke.livejournal.com
Хороший текст :)
С другой стороны, когда на работу приходит новенький, то он в неофитском порыве стремится все переделать "как правильно" и так и норовит испортить работающие системы... Если неофит после не одумается в течение одной-двух недель, то он таки может явить собой реальную опасность. Вот тут как раз на него и нужно напустить такого шамана :0))

Re: Всему есть применение

Date: 2007-03-23 02:13 pm (UTC)
From: [identity profile] psilogic.livejournal.com
:)))))
у нас 2 недели не ждут... сразу напускают даже не шамана, а кодирующую гориллу с ближайшей ветки :)

Date: 2007-03-23 02:31 pm (UTC)
From: [identity profile] shmel39.livejournal.com
Мда... А я-то думал, что уже давно изобрели автоматические индентеры при отправки кода в репозиторий. Оказывается не везде :-(

Date: 2007-03-23 02:36 pm (UTC)
From: [identity profile] psilogic.livejournal.com
обычно автоматический text formatter не способен совершить религиозный обряд в полной мере...

Date: 2007-03-23 03:15 pm (UTC)
From: [identity profile] yulia-koshynsky.livejournal.com
:))) ух допекли Вам:)

Date: 2007-03-23 05:40 pm (UTC)
From: [identity profile] http://users.livejournal.com/sharper_/
Значитца так! Вейценбаума читать! Сдается мне, что сии проблемы циклично возникают. На закуску Уэзерелла.

Date: 2007-03-23 08:03 pm (UTC)
From: [identity profile] declonter.livejournal.com
О, да! Форматирование кода - обоюдоострый меч. С одной стороны непривычное форматирование плохо читается, с другой же - единого стиля нет и любой стиль кому-то будет нечитабелен... Хоть на BrainFuck пиши! :)

Date: 2007-03-23 10:41 pm (UTC)
From: [identity profile] egorick.livejournal.com
зачотный текст, спасибо :)

Date: 2007-03-28 07:46 am (UTC)
From: [identity profile] phantomer.livejournal.com
Угу. А потом у нас килобайтные структуры передаются копированием, разноразмерные целочисленные типы смешиваются произвольным образом, код свободно копипэйстится туда-сюда-обратно, без проверок разыменовываются указатели, выражения становятся многоэтажными и нечитаемыми, скобки слипаются в бессмысленные вереницы, длина функций достигает 900 строк, вложенность их кода - десятого уровня, и, наконец, комментарии ни одна сука не правит вместе с кодом, так что доверять им - смерти подобно.

Code reviewer, заклинаю тебя духом Кнута, прииди же к нам...

Date: 2007-03-28 08:26 am (UTC)
From: [identity profile] psilogic.livejournal.com
аааа.... попался злобный стилист!
гы гы гы :)

Date: 2007-04-04 05:14 pm (UTC)
From: [identity profile] virus-mxa.livejournal.com
хаотичный код - это зло, которое в итоге выражается в осложнении поиска багов и доработки..
особенно если речь идет о непростом программном продукте, парус, например
с другой стороны - виден почерк - это Иван писал, а это Петр, вот тут Сидор ловко извернулся =)) код с характером и непростым, капризным поведением, если есть настроение, можно попытаться понять, что он делает))

December 2016

S M T W T F S
    123
45678910
11121314151617
181920212223 24
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 14th, 2025 05:18 pm
Powered by Dreamwidth Studios