ã¢ã¹ãã¯ãæåããã°ã©ãã³ã° (AOP) ã¯ãé«åºŠã«å°éåãããé«åºŠãªããã°ã©ãã³ã° ãã©ãã€ã ã§ãããã³ãŒãã®ã¢ãžã¥ãŒã«åãä¿é²ããªãããçŸä»£ã®ã¢ããªã±ãŒã·ã§ã³ã«ãããããããæšªæçãªåé¡ã«äœç³»çã«å¯ŸåŠãããããåé¡ã®åé¢ã匷åãããã³ãŒãã®ã¡ã³ããã³ã¹ãæ¹åãããŸãããããã®æšªæçãªåé¡ã¯ãã¢ããªã±ãŒã·ã§ã³ã®äž»èŠãªããžãã¹ ããžãã¯ãšã¯çŽäº€ããŠãããã®ã®ããã®ã³ã°ãèªèšŒããã©ã³ã¶ã¯ã·ã§ã³ç®¡çãã»ãã¥ãªãã£ãªã©ãã¢ããªã±ãŒã·ã§ã³ã®éçšã«äžå¯æ¬ ãªæ©èœãæããŸããåŸæ¥ã®ããã°ã©ãã³ã°ææ³ã§ã¯ããããã®åé¡ã«å¯ŸåŠããã«ã¯éåžžãã¢ããªã±ãŒã·ã§ã³å šäœã«ã³ãŒãã忣ãããå¿ èŠãããããã®çµæãã³ãŒãã®ãã€ããã¢ãžã¥ãŒã«æ§ã®äœäžã«ã€ãªãããŸãã
AOP ã§ã¯ããããã®æšªæçãªé¢å¿äºã¯ã¢ã¹ãã¯ããšåŒã°ããåå¥ã®ã¢ãžã¥ãŒã«ãšããŠã«ãã»ã«åãããäž»èŠãªããžãã¹ ããžã㯠ã³ãŒãã倿Žããããšãªãå®çŸ©ããã³æ§æãããŸãã AOP ã®äžæ žã«ã¯ãã¢ã¹ãã¯ã ã³ãŒãããã©ã€ã㪠ã³ãŒãã«çµ±åãããå®è¡ãã€ã³ãã衚ããžã§ã€ã³ ãã€ã³ãã®æŠå¿µããããŸãã AOP ã§ã¯ã暪æçãªæžå¿µäºé ãæç¢ºã«å®çŸ©ããŠã«ãã»ã«åããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ç°¡åãªå€æŽãšæ¡åŒµãå¯èœã«ãªããéçºãšã¡ã³ããã³ã¹ã®ã³ã¹ããåæžãããŸãã
AOP ã®ãã 1 ã€ã®åºæ¬çãªæŠå¿µã¯ãã€ã³ãã«ããã§ããããã¯ãã¯ã©ã¹ãã¡ãœããããã£ãŒã«ã ã¬ãã«ãªã©ã®ã³ã³ããã¹ãã«åºã¥ããŠçµåãã€ã³ããäžèŽãããããã®åºæºãæå®ããæ¹æ³ãæäŸããŸãããã€ã³ãã«ããã¯ãããã°ã©ããã¢ã¹ãã¯ãããã€ãã©ãã«é©çšããããç°¡æœã«èšè¿°ã§ãããã¿ãŒã³ãšæŒç®åã§æ§æãããåŒã§ãããã¢ããªã±ãŒã·ã§ã³ ã³ãŒãã«è¿œå ã®åäœãæ¿å ¥ããããã®æè»ã§åŒ·åãªã¡ã«ããºã ãä¿èšŒããŸããã¢ã¹ãã¯ããšãã©ã€ã㪠ã³ãŒãã®å®éã®çµ±åãå®çŸããããã«ãAOP ã¯ãŠã£ãŒãã³ã°ãå©çšããŸããããã¯ãã³ã³ãã€ã«æãããŒãæããŸãã¯å®è¡æã«ã¢ã¹ãã¯ããšãã©ã€ã㪠ã³ãŒããçµåããããã»ã¹ã§ããããã®çµæãç®çã®ã¢ã¹ãã¯ãæ©èœãå«ãã³ã³ãã€ã«æžã¿ã¢ããªã±ãŒã·ã§ã³ãçæãããŸãã
AOP ã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã° (OOP) ã颿°åããã°ã©ãã³ã° (FP) ãªã©ã®ä»ã®ãã©ãã€ã ã«ä»£ãããã®ã§ã¯ãªãããããåéæšªæçãªåé¡ããçããå¶éãå°é£ã«å¯ŸåŠããããã«èšèšãããè£å®çãªã¢ãããŒãã§ããããšã«æ³šæããããšãéèŠã§ãã AOP ãããŸããŸãªããã°ã©ãã³ã° ãã©ãã€ã ãšäœµçšããŠãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãžã¥ãŒã«æ§ãæ¡åŒµæ§ãä¿å®æ§ã匷åã§ããŸãã AOP ãéçºããã»ã¹ã«çµã¿èŸŒãããšã§ãéçºè ã¯ã³ãŒãå šäœã®å質ãåäžãããŠçç£æ§ãåäžãããããšãã§ããã»ããã¢ããªã±ãŒã·ã§ã³ã®ç·ææã³ã¹ããåæžããããšãã§ããŸãã
AOP ããµããŒãããããã«ãJava çšã® AspectJãC++ çšã® AspectC++ã.NET çšã® PostSharp ãªã©ãããã€ãã®èšèªãšãã¬ãŒã ã¯ãŒã¯ãéçºãããŠããŸããããã«ãPythonãRubyãJavaScript ãªã©ã®äžè¬çãªèšèªã«ã¯ããããã Aspect.pyãAquariumãAspect-RãAspect.js ãªã©ã® AOP æ©èœãæäŸããã©ã€ãã©ãªãšãã¬ãŒã ã¯ãŒã¯ãåããŠããŸãã
AppMasterãã©ãããã©ãŒã ã®ã³ã³ããã¹ãã§ã¯ãAOP ã广çã«é©çšããŠãããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã«ãããæšªæçãªåé¡ã管çã§ããŸããããšãã°ãéçºè ã¯ããã®ã³ã°ãããã©ãŒãã³ã¹ç£èŠããã£ãã·ã¥ãªã©ã®äžè¬çãªã¿ã¹ã¯ãåŠçããããã®ã¢ã¹ãã¯ããäœæã§ãããã®çµæãããã¢ãžã¥ãŒã«åããä¿å®ããããã³ãŒãããŒã¹ãåŸãããŸãã AOP ååã®æ¡çšã«ãããéçºé床ãåäžããã¡ã³ããã³ã¹ã®è² æ ã軜æžãããã¢ããªã±ãŒã·ã§ã³éçºããã»ã¹ãå éããæè¡çè² åµãããé©åã«ç®¡çãããšãããã©ãããã©ãŒã ã®ç®æšãšäžèŽããŸããããã«ãAOP ã¯ãã¢ããªã±ãŒã·ã§ã³ã®äž»èŠãªããžãã¹ ããžãã¯ããæšªæçãªæžå¿µäºé ãæç¢ºã«åé¢ããæ¹æ³ãæäŸããããšã§ã AppMaster顧客ãè€éãªãšã³ã¿ãŒãã©ã€ãº ã¬ãã«ã®èŠä»¶ã«å¯ŸåŠã§ããããã«ããŸãã
èŠçŽãããšãã¢ã¹ãã¯ãæåããã°ã©ãã³ã°ã¯ãã¢ããªã±ãŒã·ã§ã³ã«ãããåéæšªæçãªæžå¿µäºé ã®æç¢ºãªåé¢ãšã¢ãžã¥ãŒã«åãä¿é²ãã匷åãªãã©ãã€ã ã§ããããã®çµæãã³ãŒãã®å質ãåäžããçç£æ§ãåäžããæè¡çè² åµãåæžãããŸããã¢ããªã±ãŒã·ã§ã³éçºè ã¯ãAOP ãä»ã®ããã°ã©ãã³ã° ãã©ãã€ã ãšäœµçšããŠãæ©èœãè±å¯ã§ã¹ã±ãŒã©ãã«ã§ä¿å®å¯èœãªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã AOP ååãAppMasterãã©ãããã©ãŒã ã«çµã¿èŸŒãããšã§ãéçºè ã¯ãæé©ãªã¬ãã«ã®ã¢ãžã¥ãŒã«æ§ãšä¿å®æ§ã確ä¿ããªãããçŸä»£ã®ããžãã¹ã®é²åãç¶ããèŠæ±ã«å¯Ÿå¿ã§ããã¢ããªã±ãŒã·ã§ã³ãäœæããã³ç®¡çã§ããŸãã AOP ã¯ãœãããŠã§ã¢éçºè ã®ããŒã«ããã¯ã¹ã®è²Žéãªè³ç£ã§ãããéå¿çã§å é²çãªããã°ã©ãã³ã° ãããžã§ã¯ãã«ãšã£ãŠäžå¯æ¬ ãªèæ ®äºé ã§ãã