febb: (Default)
[personal profile] febb
Я не часто мучаю вас программистскими постами. Это сойдет за извинение.)

Был у нас на работе такой программист. Не задержался.
Однако успело изрядно накодить. Меня забавляет, как код отражает всю человеческую персоналию. Можно писать психологическую диссертацию "Код, как образ и схемотехника личности".

Я бы сказал, что самый лучший код отражает личность, способную на бесконечное саморазвитие. В живую я сталкивался с тем или иным маразмом. Да и мой мои творения в общем-то тоже. Но тут речь идет об особом клиническом случае. Человек курил махорку, имеет шрамы на голове, разведен, полу-вменяем и психует по пустякам. При этом перфекционист. Любит чтобы было написано "чистенько". Я с ним не спорил, потому, что не люблю слез и истерик.

Теперь мы решили откомпилить этот С++ код на униксе. На старой "соляре" SunOS 5.8. На униксе маразм не проходит. Старые компиляторы, как противные старые вахтеры, не любят извращенцев и секс после 12 ночи. Суть проблемы, которую вытерпел виндовый компилятор: Имеется класс А, в котором определен reference-counted обьект Б, который и является имплементацией почти всей функциональности. Далее програмеру вступило в голову и ниже пояса в классе Б использовать класс А, потому, что нужно было векторное представление А, которое тоже было А. И конечно в классе Б используются STL темплейты и контейнеры класса А. Тут вообще можно уже мучительно застонать от маразма.

Виндовый компилятор не истанциирует темплейт пока его где-то об этом не попросят, что на самом деле весьма разумная идея. Старый униксовый компилятор, как старый zольдат, который "не знает слов любви". Ну не знает он слов любви, не знает этих дополнительных 150 восточных сексуальных позиций в приложении к Камасутре. Представляете, как может купулировать очень старый контуженый артиллерист? Ну так вот старый "соляровый" компилятор хочет сразу ясности в отношениях и инстанциировании темплейтов не отходя от кассы. И конечно нарывается на несознанку программиста. Конечно когда компилируется класс Б нельзя инстанциировать темплейты с классом А, потому, в классе А обьект Б используется. В принципе мне понятно ощущение компилятора - он не хочет лишнего геморроя и хочет пепси-колу в постель.

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

А ведь очень хочется просто нюхать фиалки!..)

Date: 2012-05-31 12:03 pm (UTC)
From: [identity profile] algirata.livejournal.com
Леша, ты уникален :) ментальный зоопарк - заберу в свой словарный запас :)

Date: 2012-06-01 12:32 am (UTC)
From: [identity profile] febb.livejournal.com
Да, пробивает иногда...
Спасибо!)

Date: 2012-06-01 01:53 am (UTC)
From: [identity profile] algirata.livejournal.com
Я представляю, сколько всего нужно знать и хорошо понимать, чтобы писать такие легкие, на первый взгляд, тексты. К тому же еще и такие доступные, для таких валенков, как я :)

Date: 2012-06-01 06:29 am (UTC)
From: [identity profile] febb.livejournal.com
Текст просто ради фана. особенно много знать приходится для того, чтобы исправлять ужасно написанные программы)

Date: 2012-06-01 02:25 am (UTC)
From: [identity profile] http://users.livejournal.com/_lenin_/
Понравилось: "успел изядно накодить" :)

Date: 2012-06-01 06:10 am (UTC)
From: [identity profile] febb.livejournal.com
Ага)

Profile

febb: (Default)
febb

March 2022

S M T W T F S
  1 2 345
6 7 89 101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 10th, 2026 02:31 pm
Powered by Dreamwidth Studios