?

Log in

No account? Create an account
Me

Уповзище

Психолог, психотерапевт, барефутер, літератор. Панда, змій, кіт, ондатр, равлище. Такі справи.

Previous Entry Share Flag Next Entry
MVC-self, продолжение
Curious
andrzejn
Пока в мой предыдущий пост не пришли психологи и не раздолбали мою аналогию, сделаю её рискованнее.

Наш разум, которым я пишу этот текст, а вы читаете - это более поздняя скриптовая надстройка над системой. Довольно примитивный движок, принципиально однопоточный, всего полдюжины фиксированных переменных имени Миллера, есть кое-какая система прерываний и кооперативной многозадачности, как в Windows 3.0, но стек возвратов тоже маленький, так что старые точки возврата постоянно теряются. Есть самодельная кривоватая реализация Prolog, а вообще-то всё написано на нечитаемом perl. Разум исполняется в отдельном от остального self потоке и имеет доступ исключительно к модели-personality. Ни с id, ни с ego разум напрямую не общается.

Тут видна разница между выбором и принятием решений: настоящий выбор, исходящий из обстоятельств и перетекающий в действие, делает только ego. Скриптовый разум над personality способен разве что посчитать вероятности, сравнить условия по табличке и записать результаты обратно в модель, но решение о действиях принимает не он.


У младенца в утробе ещё нету всех этих функций. Это пока ещё только маленький служебный подпроцесс, пассивно связанный с родительским процессом низкоуровневым API на базе пайпов.

При рождении пайпы обрываются. У ребёнка появляется примитивный UI, но он об этом ещё не знает - дополнительный слой абстракции эмулирует старый API прямого доступа через UI. (Этот старый API и слой эмуляции остаются с нами на всю жизнь, и некоторые так всю жизнь и думают, будто старый API продолжает работать.) Self новорожденного, с натяжкой, состоит из одного только id, в который намешаны заглушки функций MVC.

Вскоре (через пару месяцев после рождения) даже разрабатывающий нас индус-программист без грамотного стиля кодирования понимает, что код как-то разросся, и рефакторит бизнес-логику в отдельный слой, personality. Заодно - на вырост - тут же прикручивает и скриптовый движок, пока что без скриптов. Код контроллера всё ещё отсутствует, грубый UI напрямую связан с моделью.

Controller-ego рефакторят в отдельный слой много позже, через несколько лет после рождения. Везде остаются кучи заглушек и оборванных ссылок, их вычищают и отлаживают лет до 7-9. Затем ещё лет 10 модель и скриптовая база разума дообучаются сами, как придётся - и вот готов очередной самостоятельный self-процесс.

[ DW ]


  • 1
на С написан без единого бага, стопиццот миллионов строк! Умели раньше!

  • 1