Записки программиста, обо всем и ни о чем. Но, наверное, больше профессионального.

2011-07-16

SOP

С подачи terrakot проснулось любопытство к парадигмам программостроения. Читал, недолго думал :)

Feature-oriented programming, Aspect-oriented programming, Subject-oriented programming. Object-oriented programming... Это парадигмы, помогающие людям не разбрасываться, дающие ориентиры в их деятельности. Деятельности типа — разложить сложную проблему (задачу) на маленькие и не такие сложные кусочки. После чего из этих кусочков собрать действующую модель, на которой можно попробовать решить проблему (задачу).

Еще проще? Ну вот удобно людям мыслить именно такими категориями а не какими либо другими.

Но как не крути, в конечном итоге все сводится опять таки к формуле программы = структуры + алгоритмы. Можно моделировать агентов (Смитов :) с подобием свободы воли, которые кооперативно ловят баги; можно моделировать жестко детерминированных роботов — так или иначе, но надо придумать и реализовать способ и алгоритм решения конкретной задачи. Гланды тоже можно вырезать по разному. Кому как удобнее.

Кстати, что любопытно, AOP отличается от SOP практически одной деталью. В AOP пересечения определяются как внешние по отношению к программному обьекту, а в SOP как внутренние. Тут надо пару хороших примеров подобрать, для осознания, наподобие тех, что вот тут приведены: slacy.com/blog/2010/03/suject-oriented-programming-sop-vs-object-oriented-programming-oop

en.wikipedia.org/wiki/Subject-oriented_programming
mat.net.ua/mat/Virt-Algoritmi-programmi
lib.ru/CPPHB/cpptut
offline.computerra.ru/2006/633/262140
vasnake.blogspot.com/2011/06/aop

1 комментарий:

  1. I am happy to find so many useful information here in the post, we need develop more strategies in this regard, thanks for sharing. . . . . .

    ОтветитьУдалить

Архив блога

Ярлыки

linux (241) python (191) citation (186) web-develop (170) gov.ru (159) video (124) бытовуха (115) sysadm (100) GIS (97) Zope(Plone) (88) бурчалки (84) Book (83) programming (82) грабли (77) Fun (76) development (73) windsurfing (72) Microsoft (64) hiload (62) internet provider (57) opensource (57) security (57) опыт (55) movie (52) Wisdom (51) ML (47) driving (45) hardware (45) language (45) money (42) JS (41) curse (40) bigdata (39) DBMS (38) ArcGIS (34) history (31) PDA (30) howto (30) holyday (29) Google (27) Oracle (27) tourism (27) virtbox (27) health (26) vacation (24) AI (23) Autodesk (23) SQL (23) Java (22) humor (22) knowledge (22) translate (20) CSS (19) cheatsheet (19) hack (19) Apache (16) Manager (15) web-browser (15) Никонов (15) functional programming (14) happiness (14) music (14) todo (14) Klaipeda (13) PHP (13) course (13) scala (13) weapon (13) HTTP. Apache (12) SSH (12) frameworks (12) hero (12) im (12) settings (12) HTML (11) SciTE (11) USA (11) crypto (11) game (11) map (11) HTTPD (9) ODF (9) Photo (9) купи/продай (9) benchmark (8) documentation (8) 3D (7) CS (7) DNS (7) NoSQL (7) cloud (7) django (7) gun (7) matroska (7) telephony (7) Microsoft Office (6) VCS (6) bluetooth (6) pidgin (6) proxy (6) Donald Knuth (5) ETL (5) NVIDIA (5) Palanga (5) REST (5) bash (5) flash (5) keyboard (5) price (5) samba (5) CGI (4) LISP (4) RoR (4) cache (4) car (4) display (4) holywar (4) nginx (4) pistol (4) spark (4) xml (4) Лебедев (4) IDE (3) IE8 (3) J2EE (3) NTFS (3) RDP (3) holiday (3) mount (3) Гоблин (3) кухня (3) урюк (3) AMQP (2) ERP (2) IE7 (2) NAS (2) Naudoc (2) PDF (2) address (2) air (2) british (2) coffee (2) fitness (2) font (2) ftp (2) fuckup (2) messaging (2) notify (2) sharepoint (2) ssl/tls (2) stardict (2) tests (2) tunnel (2) udev (2) APT (1) CRUD (1) Canyonlands (1) Cyprus (1) DVDShrink (1) Jabber (1) K9Copy (1) Matlab (1) Portugal (1) VBA (1) WD My Book (1) autoit (1) bike (1) cannabis (1) chat (1) concurrent (1) dbf (1) ext4 (1) idioten (1) join (1) krusader (1) license (1) life (1) migration (1) mindmap (1) navitel (1) pneumatic weapon (1) quiz (1) regexp (1) robot (1) science (1) serialization (1) spatial (1) tie (1) vim (1) Науру (1) крысы (1) налоги (1) пианино (1)