Unit of Work ãã¿ãŒã³ã¯ãæ°žç¶åã¡ã«ããºã ãç¹ã«ãã©ã³ã¶ã¯ã·ã§ã³ãšãªãœãŒã¹ã®ç®¡çãæ±ãã¡ã«ããºã ã®å®è£ ã«ãããŠéèŠãªåœ¹å²ãæãããœãããŠã§ã¢èšèšãã¿ãŒã³ã§ããããã¯ãšã³ã¿ãŒãã©ã€ãº ã¢ããªã±ãŒã·ã§ã³ ã¢ãŒããã¯ãã£ã®éèŠãªåŽé¢ãšããŠåºãèªèãããŠããããã¡ã€ã³é§åèšèš (DDD) ããªããžã§ã¯ã ãªã¬ãŒã·ã§ãã« ãããã³ã° (ORM) ãªã©ã®ããŸããŸãªãœãããŠã§ã¢éçºææ³ã§å€§ããªæ³šç®ãéããŠããŸãã
ãœãããŠã§ã¢ ã¢ãŒããã¯ãã£ãšãã¿ãŒã³ã®ã³ã³ããã¹ãã«ãããŠãäœæ¥åäœãã¿ãŒã³ã®äž»ãªç®çã¯ãããŒã¿ ã¹ãã¢ã§å®è¡ããããã¹ãŠã®ã¢ã¯ã·ã§ã³ãšæäœãåäžã®ãŸãšãŸã£ããã©ã³ã¶ã¯ã·ã§ã³å ã«ã«ãã»ã«åãããããã®å®è¡ãäžè²«æ§ããããã¹ã±ãŒã©ãã«ã§å¹ççãªæ¹æ³ã§ç®¡çããããšã§ãããã®ãã¿ãŒã³ã䜿çšãããšãéçºè ã¯ãã·ã¹ãã å ã®ãšã³ãã£ãã£ã«å ãããã倿Žã远跡ããæäœãé åºä»ãããããŒã¿ããŒã¹ãžã®åŸåŸ©åæ°ãæå°éã«æããããšã§ãããŒã¿ã®æŽåæ§ãšäžè²«æ§ãç¶æããã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ãæé©åã§ããŸãã
ãŠãŒã¶ãŒãããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãäœæã§ããããã«éçºããã匷åãªno-codeãã©ãããã©ãŒã ã§ããAppMasterã¯ãäœæ¥åäœãã¿ãŒã³ã掻çšããŠãããŸããŸãªã³ã³ããŒãã³ãã®å¹çãåäžãããŸãããã®ãã©ãããã©ãŒã ã¯ãããŒã¿ããŒã¹ ã¹ããŒãèšèšãããžãã¹ ããã»ã¹ ã¢ããªã³ã°ãREST API éçºãWebsocket ãªã©ã®å¹ åºãæ©èœãæäŸããŸãããããã¯ãã¹ãŠã AppMasterã䜿çšããŠçæãããã¢ããªã±ãŒã·ã§ã³ã®å ç¢æ§ãšã¹ã±ãŒã©ããªãã£ã«è²¢ç®ããŸãã
Unit of Work ãã¿ãŒã³ã®äžå¿ãšãªãã®ã¯ãæ¿å ¥ãæŽæ°ãåé€ãã¯ãšãªãªã©ãããŒã¿ã«å¯ŸããŠå®è¡ãããããŸããŸãªæäœãã«ãã»ã«åãããã¯ãŒã¯ ãŠããããã®æŠå¿µã§ãããããã®äœæ¥åäœã¯ããšã³ãã£ãã£ã«å ãããã倿Žãäžè²«æ§ã®ããããããããæ¹æ³ã§æŽçããéäžãªããžããªãšããŠæ©èœããŸãããªãœãŒã¹ã®ç®¡çã倿Žã®è¿œè·¡ãé¢é£ããããŸããŸãªã¿ã¹ã¯ã®é åºã®èª¿æŽã«ããããã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡ã容æã«ãªããŸãã
Unit of Work ãã¿ãŒã³ã®äž»ãªå©ç¹ã® 1 ã€ã¯ãæ°žç¶åããžãã¯ããã¡ã€ã³ãŸãã¯ããžãã¹ ããžãã¯ããåé¢ããããšã§ãã¢ããªã±ãŒã·ã§ã³å ã®é¢å¿äºã®åé¢ãä¿é²ããããšã§ããããã«ãããæéã®çµéãšãšãã«ã¢ããªã±ãŒã·ã§ã³ã®ä¿å®ããã¹ããæŽæ°ãââ容æã«ãªããŸããããã«ããã®ãã¿ãŒã³ã¯ã次ã®ãããªã·ã¹ãã ã®å šäœçãªããã©ãŒãã³ã¹ã®åäžã«åœ¹ç«ã¡ãŸãã1) å¿ èŠãªããŒã¿ããŒã¹ã®åŸåŸ©åæ°ãæå°éã«æããŸãã 2) ãã©ã³ã¶ã¯ã·ã§ã³å ã®æäœã®é åºãæé©åããã 3) ãšã³ãã£ãã£ãžã®å€æŽãäžè²«ããæ¹æ³ã§è¡ãããããã«ããã
äœæ¥åäœãã¿ãŒã³ã®å®è£ ã«ã¯éåžžãæ¬¡ã®ã³ã³ããŒãã³ããå«ãŸããŸãã
- UnitOfWork ã€ã³ã¿ãŒãã§ã€ã¹: ããã¯ããã¹ãŠã® UnitOfWork å®è£ ãåŸãå¿ èŠãããèŠçŽãå®çŸ©ããŸããããã«ã¯ã倿Žã®ç»é²ãšã³ãããããã©ã³ã¶ã¯ã·ã§ã³ã®éå§ãšå®äºãããŒã¿ããŒã¹æ¥ç¶ããªããžã§ã¯ã ã³ã³ããã¹ããªã©ã®ãªãœãŒã¹ã®ç®¡çã®ããã®ã¡ãœãããå«ãŸããŠããŸãã
- UnitOfWork å®è£ : ãã®ã¯ã©ã¹ã¯ãUnitOfWork ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã£ãŠå®çŸ©ãããèŠçŽãæºãããŸãããšã³ãã£ãã£ãšãªãœãŒã¹ã®ç¶æ ã管çããã³è¿œè·¡ãã倿Žãäžè²«ããæ¹æ³ã§è¡ãããããã«ããããŸããŸãªæäœã®å®è¡ã調æŽãã責任ããããŸãã
- ãªããžããª: ãªããžããªã¯ããã¡ã€ã³ ã¢ãã«ãšããŒã¿ ã¹ãã¬ãŒãžã®éã®æœè±¡åã¬ã€ã€ãŒã§ãã UnitOfWork å®è£ ãšå¯æ¥ã«é£æºããŠããšã³ãã£ãã£ã®ååŸãä¿åãã¯ãšãªãç°¡çŽ åããããã«èšèšãããŠããŸããããã«ããããã©ã³ã¶ã¯ã·ã§ã³å šäœã§åãšã³ãã£ãã£ã®ã€ã³ã¹ã¿ã³ã¹ã 1 ã€ã ãããŒãããã䜿çšãããããã«ãªããŸããããã«ãããäžè²«æ§ãç¶æãããããŒã¿ã®åé·æ§ãåé¿ãããŸãã
AppMasterã®ã³ã³ããã¹ãã§ã¯ãããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãçæãããšãã« Unit of Work ãã¿ãŒã³ãæ©èœããŸãããã®ãã¿ãŒã³ãæ¡çšããããšã§ã AppMasterãœãããŠã§ã¢ ã¢ãŒããã¯ãã£ã®ãã¹ã ãã©ã¯ãã£ã¹ãéµå®ããªãããçæãããã¢ããªã±ãŒã·ã§ã³å ã§é«ã¬ãã«ã®ããã©ãŒãã³ã¹ãäžè²«æ§ãä¿å®æ§ãä¿èšŒããŸãã
ããã«ããã®ãã©ãããã©ãŒã ã¯æé©åãããã³ã¹ãå¹çã®é«ãæ¹æ³ã§ã¢ããªã±ãŒã·ã§ã³ãçæããããšã«éç¹ã眮ããŠãããããUnit of Work ãã¿ãŒã³ã¯ãã®åŒ·åãªæ©èœã¹ã€ãŒããžã®éåžžã«è²Žéãªè¿œå ã§ããããšãããããŸãããã®ãã¿ãŒã³ãå©çšããããšã§ã AppMasterä¿¡é Œæ§ãæ¡åŒµæ§ãä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæäŸã§ãããããäžå°äŒæ¥ãäŒæ¥ãããã«ã¯å人ã®éçºè ãå«ãããŸããŸãªé¡§å®¢ã«ãšã£ãŠçæ³çãªéžæè¢ãšãªããŸãã