Соционика в программировании. "Социотип" компонента TForm. |
Автор megabax | ||
01.04.2010 г. | ||
Соционика в программировании. Социотип компонента TForm.Как то в дороге я читал книгу Савелия Калашникова "Соционика - наука общения", в котором описывались разные психотипы людей и то, как они взаимодействуют между собой. "Какое отношение это имеет к программированию?" - спросите вы. "Все дело в том", - отвечу я, - "Что автор книги толкнул интересную мысль: психотипом по соционике обладают не только люди, но и неодушевленные предметы. Более того, можно даже построить модель взаимодействия людей с техникой, руководствуясь именно теорией психотипов, как будь-то они взаимодействуют с реальным людьми. Это, по мнению Савелия Калашникова, позволит оценить, насколько человек с тем или иным психотипом подходит для профессии, например, летчика или программиста. Иными словами, насколько он найдет общий язык с самолетом или компьютером". Вот тут то у меня и возникла крамольная идея: а что если понятие психотипа применить не только к технике, но и к программным объектам и на основании этого судить о том, смогу ли данные объекты качественно работать вместе? Таким образом, появляется как бы новый подход к прогнозированию возможных проблем при проектировании и реализации архитектуры системы. А теперь давайте возьмем какую нибудь отдельно взятую небольшую программу и проанализируем ее с позиции соционики. Возьмем например программу складского учета из уроков Delphi. Проанализируем на совместимость компоненты, используемые в программе. И так, начнем с самого главного компонента TForm. Интроверт или экстраверт? Давайте посмотрим, как объявлен класс TForm в самом Delphi:
Мы видим огромное количество свойство и методов published и public. У его предка TCustomForm много private и protected свойств, но большинство из них в TForm превращаются в published и public, а некоторые приватные поля дублируют public свойства. Если пойти по иерархии TForm дальше по направлению к родительским классам, то мы увидим, что у его предков много приватных и protected полей и методов. Из этого мы можем сделать вывод, что интроверсии и экстраверсии у класса TForm примерно одинаково. Но, форма у нас отображает данные на экране. Это уже говорит в пользу экстровертности. И так, TForm у нас типичный экстраверт. Сенсорик или интуит? На какой вид поступающей информации более всего ориентирован объект класса TForm? От внешних устройств (клавиатура, мышка) или от других объектов? Конечно же первое, на то она и форма. Значит, это сенсорик. Этик или логик? (вот я загнул то, а). Данный объект больше предназначен для взаимодействия с другим объектами, так что это все же этик, а не логик. И, наконец, рационал или иррационал? Данный объект не использует циклические приближенные вычисления, в нем нет функции адаптации к изменяющейся внешней среде. Явный рационал. Этот класс можно назвать так же и рационалом еще и потому, что он понятен и предсказуем. собственно говоря, это можно сказать и про многие другие классы. Давайте сейчас немножко отвлечемся и подумаем, а какие классы могут считаться иррациональными? К иррациональным классам я бы отнес все компоненты для работы с сетью, COM, OLE, ActiveX и другие подобные. Почему? Да потому, что у них достаточно сложно организованы внутренние алгоритмы. Возможно, это лишь мое IMHO. Кто то, наверняка думает иначе. Ну что-ж, в этом случае если этот человек будет использовать соционический подход к программированию, у него будет другой стиль написание кода, более подходящий именно ему. Ладно, раз уж "пошла такая пьянка", давайте еще пораскинем мозгами, а какой же класс может быть, в отличии от формы, интроверт, интуит и этик? И так, начнем с интроверсии. Однозначно к интроверту я бы отнес TTable, так как он предназначен для работы с таблицей базы данных, но не содержит средств для их отображения. А вот если рассматривать с этих позиций TDBGrid, то он у нас будет экстравертом. Класс TDataSource смело можем отнести к интуитам, он ничего не принимает ни от клавиатуры, ни от мыши, и ничего не выводить на экран, хотя и осуществляет обмен данными между компонентами для работы с БД и компонентами визуального отображения данных. Он же относиться и к компоненту типа этик. А кто у нас будет логиком? Ответ прост TTable. Теперь определим "тип личности" компонента TForm. Это "Гюго" - рациональный этико-сенсорный экстраверт. И так, на этом я закончу статью, но продолжение следует. В следующий раз мы определим тип другого класса и проверим их на совместимость.
|
||
Последнее обновление ( 05.02.2013 г. ) |
« След. |
---|