Lex Kravetski (lex_kravetski) wrote,
Lex Kravetski
lex_kravetski

Categories:
  • Music:

Фрейдизм в программировании

Некогда дяденька по имени Зигмунд Фрейд придумал новый подход к лечению ментальных недугов человечества. Метод заключался в раскрытии неосознаваемых пациентом мотивов его, пациента поведения. С одной стороны метод был по своему революционен — ведь до этого идея наличия в мышлении бессознательного не была внедрена в широкие массы. С другой стороны метод был замечателен тем, что снимал со врача всякую ответственность за результат, давая врачу возможность сослаться на глубинные комплексы пациента, с которыми может справиться только пациент, а раз не справился, то не хочет. Врач, дескать, сделал что мог — вскрыл эти самые комплексы.

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

Заслуга Фрейда в обнаружении бессознательного очевидна. Описанные ими модели уже местами весьма спорны, но имеют здравое зерно. Зато сам подход — это прорыв в манипуляционных технологиях. После Фрейда каждая наука захотела завести свой фрейдизм — с блэкджеком и шлюхами. То есть, не сама наука, конечно, а те околонаучные деятели, которые всегда мечтали ничего не знать, но купаться при этом в шелках.

Фабричный подход подразумевает разработку технологии. Или, по крайней мере, её изучение. Поиск имеющих предсказательную силу закономерностей требует кропотливой работы и предварительного знакомства с научным методом. Вместо этого фрикам и шарлатанам был дарован метод, опирающийся на объяснения задним числом через трансформации некоторого количества заклинаний.

Человек в здравом уме не мог бы заявить, что всё человеческое поведение базируется на вопросах секса (ну, ещё на каких-то там странных взаимоотношениях со смертью). Из ежедневного опыта каждому очевидно, что это не так. Но теперь все знают, что всё именно базируется. Ведь абсолютно любое проявление человеческой психики можно задним числом объяснить через какой-нибудь сексуальный комплекс. Причём, практически через любой (странно, что это никого не настораживает). Объяснить и тем самым «доказать» научность подхода. Хотя вроде бы гражданам с образованием должно быть понятно, что объяснение задним числом никогда не доказывает верность концепции.

Честно говоря, сваливать всё на Фрейда я бы не стал. Хотя ни одна из его книг мной целиком не прочитана, но среди прочитанного нет явного утверждения, что всё от секса и от бессознательного. В его книжках всё выглядит так, будто рассматривается просто один из возможных аспектов человеческой психики. Всеобщность же сему, по ходу, придали уже последователи Фрейда. Но не суть — быть может, в своей практике он как раз зациклен на оном был, я данный вопрос не изучал.

Главное, метод принят на вооружение и активно используется: объяснение всего на свете задним числом, построенное на трансформациях набора заклинаний. «Хочешь съездить в Ирландию — это всё из-за нереализованных в детстве сексуальных переживаний», да.

Вообще процесс преобразования некоторого научного (хотя бы условно научного) тезиса в заклинание для фриков и шарлатанов ещё ждёт своего исследователя. Ведь не каждый тезис становится таковым. Становятся только некоторые. И хотя ряд присущих им черт вроде бы понятен — простота формулировки, не очень тесная связь с сопряжёнными областями, элемент неожиданности, но в пределах понимания среднестатистического человека (позволяющая ему ощутить себя небыдлом), — однако целиком и полностью изложить теорию превращения тезисов в заклинания я не готов.

Вместо этого готов сказать, который «фрейдизм» разыскали себе программисты. Называется он «паттерны проектирования». Сто пудов, паттерны проектирования — это метка небыдла на челе программиста. Да. В то время как быдло-психиатр тратит время на поиск сильнодействующего транквилизатора, превращающего пациента в овощ, элитный психоаналитик даёт клиенту поваляться на диване, поговорить о наболевшем и выложить за это кучу баксов. Причём, не один раз, а годами выкладывать. Ну а поскольку многие пациенты действительно здоровы (их отклонения в пределах нормы), то психоаналитик ещё и статистику успехов соберёт. Ой, отвлёкся.

Так вот, элитный, знающий программист на собеседовании сразу заводит речь про паттерны проектирования. А буде собеседователь заведёт речь об ином, так собеседник её обратно к паттернам сведёт. Почему? Потому что оно элитно. Только элита ведь способна прочитать книжку ни о чём, не требующую вдобавок особых знаний, и заучить набор заклинаний из неё. Ну и самое главное, буде речь о другом — так могут про конкретное что-то спросить. А там сразу швах — отсутствие опыта разом даст о себе знать. Зато когда про паттерны, там всё абстрактно: фабрика-швабрика, обсёрвер-швабсёрвер. Хрен придерёшься.

Вообще, паттерн, как честно сознаётся элитная книжка, это такое ничто — концепция подхода, лишённая конкретной реализации. Квант понимания как и что делать. Богато проиллюстрированная примерами от разработчиков на тему «абстрактное знание не всегда ведёт к успеху» — ведь чуть не половина их примеров работает неправильно, а все примеры в целом написаны плохо понятным и неоптимальным по скорости работы образом.

Многие на этом месте говорят: «но ведь паттерны действительно полезны!». Это да, они полезны. Только они были полезны и без названия «паттерн». Причём, они без него ещё и лучше понятны были. Теперь их объединили под красиво звучащей маркой. И классифицировали. Стало лучше? Да, конечно: теперь половина разговоров содержит в себе элитное слово «паттерн». И каждый второй его произносящий не знает, про что он говорит, но зато небыдло.

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

Пацаны, фабрика, фабричный метод и билдер — это одно и то же. Они отличаются несущественной мелочью, напоминающей попытку поделить машины на синие, зелёные и красные. При этом идея фабрики с самого начала включена в саму концепцию объектно-ориентированного программирования. Все эти фишки с наследованием, они для того и нужны, чтобы программисты пользовались фабриками (как их не назови). Примеры фабрик имеются в любой книжке про ООП в разделе про непосредственно объекты. Только авторы этих книг ещё не знали, что сиё — «паттерн».

Пацаны, прокси, адаптер и медиатор — это одно и то же. Только деление тут уже не по цвету, а по форме кузова. Любое делегирование — это в конечном счёте те самые прокси-медиаторные адаптеры. Вы же не думаете, что до появления «паттернов» никто про делегирование не знал? В любой книжке про ООП, в разделе про инкапсуляцию имеются примеры всего этого.

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

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

Пацаны, вот это вот надо знать. Именно вот это. Не как называется, а как делается. Про контейнеры и потоки. Про наследование, инкапсуляцию и использование всего этого. Ваши понты на собеседованиях, круто замешанные на использовании красивых слов, нафиг не нужны. Вас обманули, пацаны. Хотя и дали вам взамен возможность обманывать ещё больших лохов в данной отрасли.

Когда я вижу на каком-нибудь форуме яростное обсуждение паттернов с обильным использованием слов типа «обсёрвер» (вместо «нотификация» или «подписка»), когда люди заслышав что-то знакомое в излагаемой концепции первым делом кричат «О! Тут у тебя фабричный метод!» (странно, почему не кричат «Ого! Тут у тебя хэш-мапа!!!»), я сразу вспоминаю анекдот про психоаналитиков:

Встречаются два психоаналитика:

— О, типа, привет, давно не виделись. Может, в гости заедешь?

— Конечно. Сейчас только заправлю мой Феррари Энцо и сразу к тебе.

— Хорошо. В общем, найдёшь без проблем — мою шикарную трёхэтажную виллу издалека видно.

— Мне главное со своей не перепутать. Хорошо хоть, я перед ней огромный фонтан для ориентира поставил.

— Вот бы на него с моего самолёта посмотреть.

— Ну ладно, мы же с тобой взрослые люди. Давай просто достанем и померяемся.

Tags: программирование, философия
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 161 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →