ãã¼ã¿ãã¼ã¹ã使ã£ãæ°¸ç¶åã¸ã®å¾©è®
ãåæ£ãªãã¸ã§ã¯ãã»ã¢ã¼ããã¯ãã£ï¼ãã¡ã¤ã³æåã¢ã¼ããã¯ãã£ãã«ã¤ãã¦èãããªãã§ããæ°¸ç¶åãã¸ã®ç解ãæ·±ã¾ã£ããã¨ãããããã®ã¢ã¤ãã¢ã«ã¤ãã¦äººã¨è©±ãã¦ããã¿åããªãçç±ãåãã£ããã¨ã©ã®ã¤ã¾ããã¼ããç¬ç¹ãªæè¦ãæã¤ãã¤ããªãã£ã ã£ãã®ã ã
ãã¶ãããµã¤ãã®ããã°ã©ãããè¦ãã°ããããããã©ãã§ããããã¨ã«ãã ãã£ã¦ãããããã«è¦ããã ããã
ä¿¡ä»°åç½
ã¼ãã¯ç¾å¨ä¸»æµã®ããã¼ã¿ãã¼ã¹ã使ã£ãæ°¸ç¶åãã大å«ãã ã£ããã ãORMã¨ãä¸ä½ä½ãªãã ãç¥ããããªããªãã§ããã°ã©ã ãæ¸ãã®ã«SQLãæ¸ããªãããªããã®ã ãï¼â»å人çãªæãæ¹ã®åé¡ã§ãï¼
ãRDBããSQLã§ãã¼ã¿ãã¨ã£ã¦ãã¦HTMLã§æ´å½¢ãã¦åºåããPHPããã°ã©ãã³ã°ããªãã¦äºåº¦ã¨ãããã ããã¼ã¿ãã¼ã¹ã®ããã«åãã¦ãã¿ãããããªãããï¼â»å人çãªæãæ¹ã®åé¡ã§ãï¼
ããã¼ã¿ãã¼ã¹ã使ã£ãæ°¸ç¶åããè¡ãéããã¨ããã¼ã¿ãã¼ã¹ä¸å¿ããã°ã©ãã³ã°ãã«ãªããï¼â»å人çãªæãæ¹ã®åé¡ã§ãï¼
âãããªãµãã«æãããã¤ã¯ãã¤ããªãã£ã ã¨æãã
ã¡ãªã¿ã«SQLèªä½ãå«ããªããã§ã¯ãªãã¦ãããã°ã©ã ã®ä¸ã§SQLã使ããã¨ãå«ãã
æ°¸ç¶å
ãããããæ°¸ç¶åãã¨ã¯ä½ãã
ä¸è¬çã«ãã¦ã§ãã»ã¢ããªã±ã¼ã·ã§ã³ã«ããããªãã¸ã§ã¯ãã®æ°¸ç¶åãã¨ããã°ããHTTPãªã¯ã¨ã¹ãã®ãã³ã«ããã¼ã¿ãã¼ã¹ããå¿ è¦ãªãã¼ã¿ãåãåºãã¦ããªãã¸ã§ã¯ãã¨ãã¦ä¸æçã«å®ä½åãããã¨ããæãã
ãã®å ´åããã¼ã¿ã®ãã¼ã ã¯ãã£ã¹ã¯ã ã
ã¼ããæ±ãã¦ãããæ°¸ç¶åãã¯ãããã¨çéã ã£ãã®ã ããçéã§ããã¨ãããã¨ã«æ°ä»ãã¦ããªãã£ãããè¨èªåãã§ãã¦ããªãã£ããã ããããåæ£ãªãã¸ã§ã¯ãã»ã¢ã¼ããã¯ãã£ï¼ãã¡ã¤ã³æåã¢ã¼ããã¯ãã£ãã«ã¤ãã¦äººã¨è©±ããã¦ãåã¿åãªãã£ãã®ã ã
ã¼ãããæ°¸ç¶åãã¨å¼ã³ããã®ã¯ãããªãã¸ã§ã¯ããçæ³çãªç¡é大ã®ã¡ã¢ãªç©ºéã«ãã£ã¨åå¨ãã¦ãããã®ãããªããã°ã©ãã³ã°ãå®ç¾ãããã¨ããªã®ã ã
Smalltalk/Squeakçãªä¸ç観ã«è¿ããããããªãããä»®æ³è¨æ¶ã¨ã¹ã¯ããã¢ã¦ãã®æè¦ãã¨ãããããç¾å®ã«ã¯ãã·ã³ãæ¢ã¾ã£ã¦ãã¼ã¿ãæ¶ãããããã®ã§ãä»æ¹ãªãæ°¸ç¶åããã«éããªããã¨ããæè¦ã
ãã®å ´åããªãã¸ã§ã¯ãã®ãã¼ã ã¯ã¡ã¢ãªã ã
Orthogonal Persistence ã®ã¤ã¡ã¼ã¸
ï¼"orthogonal" ã¯ãç´è¡ãããã¨ããæå³ã§ããã®æèã§ã¯ "transparent"ï¼éæãªï¼ã®é¡ç¾©èªï¼
- ãã¹ã¦ã®ãªãã¸ã§ã¯ãã¯ãªã³ã¡ã¢ãªãåºæ¬ã
- ä¸è¦ãªãªãã¸ã§ã¯ãã¯ã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³(GC)ã§ååãããã¡ã¢ãªç©ºéãåå©ç¨ãããã
- ãªãã¸ã§ã¯ãã®ç¶æ å¤æ´ï¼çæã»æ´æ°ã»åé¤ï¼ããããã³ã«ãç¶æ ãæ°¸ç¶åãã¦ããããã¤åé»ãã¦ãããããã«ã
- ã¡ã¢ãªã¯æéãªã®ã§ããã°ãã使ããã¦ãªããªãã¸ã§ã¯ããã¹ã¯ããã¢ã¦ãããªãã¨ãããªãã
- ããã§ã¹ã¯ããæ©æ§ãç»å ´ããã
- ã¹ã¯ããæ©æ§ã¯ããã°ãã使ããã¦ãªããªãã¸ã§ã¯ããååãã¦ãã¡ã¢ãªç©ºéãåå©ç¨ããã
- GCã¨ã¯ç°ãªããåç §ããã¦ãããªãã¸ã§ã¯ãããååãããã
- ååããããªãã¸ã§ã¯ããåã³ä½¿ãããã¿ã¤ãã³ã°ã§ãèªåçã«ã¡ã¢ãªã«ã¹ã¯ããã»ã¤ã³ããã
Smalltalkãã¼ã¹ã§å®è£ ãããMareaããã£ã¦ãããã ã
æ³å®åç
[Q] ãã£ãã便å©ãªSQLãããã®ã«ããªãã§ããã使ãããèªåã§SELECTæã®å é¨å¦çã¿ãããªããã°ã©ãã³ã°ã¾ã§ãã«ããªããã®ã ãããããªæ¤ç´¢å¦çæ¯ã«èªåã®ã³ã¼ããæ¸ããã¨ã«ãªãããåãè¨ã£ã¦ãã®ã¯ãããããã¨ã ããã
[A] ç確ã§ãã£ã¦ãåè«ã®ä½å°ã¯ãªããåè«ããæ°ããªããã¼ãã¯ç¾æç¹ã§ã»ã¨ãã©éã稼ãããã®ããã°ã©ãã³ã°ããã¦ãªããã ããããå°ãã§ãããã°ã©ãã³ã°ã®çç£æ§ãä¸ããããã¨ããã¤ã³ã»ã³ãã£ããå¼±ããããããã¯ãé±ã«æ°æéããããã°ã©ãã³ã°ããªããããããªãããã®å°ãªãæéã§ãã§ããã ã楽ããããã°ã©ãã³ã°ããããã¨ããæãã®æ¹ãå¼·ããã¼ãã¯ããã¼ã¿ãã¼ã¹ã使ã£ãæ°¸ç¶åãã大å«ãã ããããªããTDD/DDDã®ãããã¿ã¤ãã³ã°ã楽ãããã°ããã®ã§ãã£ã¦ããããã¯ã·ã§ã³ã§ã¯ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã§ç½®ãæãã¦ãããã¨æããããã¯é«éåã®è©±ã§ãã£ã¦ããã¡ã¤ã³ããã°ã©ãã³ã°ã«ã¯é¢ããã®ãªããã¨ã ãããããã¢ã¸ã£ã¤ã«ã¢ã¼ããã¯ãã£ãTDD/DDDãªãå¯è½ãªã¯ãã ã
[Q] ãªãã¸ã§ã¯ãæååç主義ãããã®ã§ã¯ï¼
[A] ãã®éããããããªãããªãã¸ã§ã¯ãæåã®ãè±çã§ãã£ããã£ã¦ãããããã®ã ã
[Q] Smalltalk使ãã°ï¼ Mareaããããã
[A] ãããªæ°ããã¤ã¤ãããã§ãã¾ã Scalaã®éã模索ããããé¢æ°åã®ã¹ã±ã¼ã©ãã«ããã°ã©ãã³ã°ããã¤Smalltalkçãªãªãã¸ã§ã¯ãæåã¨ããã®ãã
æ°¸ç¶åã¢ã¼ããã¯ãã£
Railsã®ActiveRecordã®ããã«åºåºã¯ã©ã¹ãç¶æ¿ããã¿ã¤ãã®æ°¸ç¶åã¯ããã¨ãéææ§ãé«ãã¦ãããã¡ã¤ã³å±¤ã®ç¬ç«æ§ãä½ããªããããã®ã§å«ã ã
ãã¡ã¤ã³å±¤ãã¤ã³ãã©å±¤ã«ä¾åãããªãã¹ãã¼ããªè¨è¨ããããAOPããªãæ°¸ç¶åã¯ã¤ã³ãã©å±¤ã®é¢å¿äºãªã®ã§ãã¤ã³ãã©å±¤ã®ã³ã¼ããè¨å®ãã¡ã¤ã«ã§å®çµãããã
ãåæ£ãªãã¸ã§ã¯ãã»ã¢ã¼ããã¯ãã£ï¼ãã¡ã¤ã³æåã¢ã¼ããã¯ãã£ãã§ã¯ããªãã¸ã§ã¯ãã»ãµã¼ãã¼ã¨å¼ã°ããç©çãµã¼ãã¼ä¸ã§ã¯RPCãã¼ã¢ã³ã»ããã»ã¹ãèµ°ãããã®ãã¼ã¢ã³ã»ããã»ã¹ä¸ã«ãã¹ã¦ã®ãªãã¸ã§ã¯ããåå¨ãããã¡ã¢ãªããã£ãããªããããã«ãããã»ã¹ã«ãã©ã¼ã¯ãããããªãã»ãããããã·ã³ã°ã«ããã»ã¹ã§ãã«ãã¹ã¬ããã«ãªãã ããããªã¯ã¨ã¹ãæ¯ã«æ°è¦ã¹ã¬ãããèµ°ãã®ã ãããã¦ã¡ã¢ãªã足ããªããªã£ãããµã¼ãã¼ãå¢ãããåæ£å¦çãã¨ãããã¨ã§Scalaã®åºçªã ããã¨æãã
ãããã«
ãããå®ç¾ããã¨ãã¦ã§ãã»ã¢ããªã±ã¼ã·ã§ã³ã»ããã°ã©ãã³ã°ããGUIããã°ã©ãã³ã°ã¿ãããªæè¦ã«ãªãã¯ããªãã ããªããªãã¸ã§ã¯ãããã£ã¨çãã¦ãæè¦ã
ãã¯ãè¥ããªãããé ãæªããªã£ããããã¨ããã®ãããã
ã¡ãªã¿ã«ãã¼ããã¼ã¹ã®ç®¡çä¼è¨ã·ã¹ãã ãéçºããããä¸é£ã®æç´¢ã®èæ¯ã§ããã
é¢é£æ å ±
- Persistence (computer science) - Wikipedia, the free encyclopedia)
- Orthogonal Persistence Revisited, 2nd International Conference on Object Databases (ICOODB 2009)
- Critique of orthogonal persistence, Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
- Implementing Orthogonally Persistent Java, POS-9 Revised Papers from the 9th International Workshop on Persistent Object Systems
- Marea: An Efficient Application-Level Object Graph Swapper, Journal of Object Technology 12
追è¨
- GLASS (GemStone, Linux, Apache, Seaside, and Smalltalk) ã«ãããã¹ãé§åãããã¿ã¤ãã³ã°ã¸(2013-02-04)
- ã¦ã§ãã¨ãã¹ã¯ãããã§ã®æ°¸ç¶åã®æå³è«(2013-02-07)
- ã¦ã§ãããã¼ã¿ãã¼ã¹æåãããªãã¸ã§ã¯ãæåã«(2013-02-13)
- Redisã«ããéæãªæ°¸ç¶å層(2013-02-15)