管çããŒã«ã®æ¥œèгçããã¯ïŒãµã€ã¬ã³ãäžæžããé²ã
管çããŒã«åãã®æ¥œèгçããã¯ïŒversion ã«ã©ã ã `updated_at` ãã§ãã¯ïŒãšãç·šéç«¶åãéããªäžæžãã«ããæ±ãã·ã³ãã«ãª UI ãã¿ãŒã³ãåŠã³ãŸãã

åé¡ïŒå€æ°ã®ç·šéè ã«ãããµã€ã¬ã³ãäžæžã
ããµã€ã¬ã³ãäžæžããã¯ãäºäººãåãã¬ã³ãŒããéããŠãããã倿Žãå ããæåŸã«ä¿åãã人ã®å€æŽã ããæ®ãçŸè±¡ã§ããæåã«ä¿åãã人ã®ç·šéã¯èŠåãªãæ¶ãã埩å ãé£ããããšãå€ãã§ãã
å¿ãã管çããã«ã§ã¯ãããé »ç¹ã«èµ·ããŸãã人ã¯è€æ°ã¿ããéãããã±ããéãè¡ãæ¥ãã20åæŸçœ®ãããã©ãŒã ã«æ»ã£ãŠä¿åããããšããããŸãããã®ãšãææ°ã®ã¬ã³ãŒããæŽæ°ããŠããããã§ã¯ãªããå€ãç¶æ ã«äžæžãããŠããŸãã®ã§ãã
ãã®åé¡ã¯äžè¬ã®å ¬éã¢ããªãããããã¯ãªãã£ã¹ç³»ããŒã«ã§ç®ç«ã¡ãŸããå éšããŒã ã¯åãé¡§å®¢ãæ³šæãååãèŠæ±ãç¹°ãè¿ãç·šéããããã§ããå ¬éã¢ããªã¯å€ããããŠãŒã¶ãŒãèªåã®ããŒã¿ãç·šéãããäžæ¹ã§ã管çããŒã«ã§ã¯ãå€ãã®ãŠãŒã¶ãŒãå ±æããŒã¿ãç·šéãããç¶æ³ã«ãªããŸãã
ç¬éçã«ã¯å€§æšäºã«ãªããªãããšãå€ãã§ãããç©ã¿éãªããšè¢«å®³ã倧ãããªããŸãïŒ
- ããã¢ãŒã·ã§ã³æŽæ°çŽåŸã«ãååäŸ¡æ Œãå€ãå€ã«æ»ãããã
- ãµããŒãæ åœè ã®å éšã¡ã¢ãæ¶ããæ¬¡ã®æ åœãåããã©ãã«ã·ã¥ãŒãã£ã³ã°ãç¹°ãè¿ãã
- 泚æã¹ããŒã¿ã¹ãéæ»ãïŒäŸïŒãShippedãããPackedãã«æ»ãïŒããŠèª€ã£ããã©ããŒãçºçããã
- 顧客ã®é»è©±çªå·ãäœæãå€ãæ å ±ã«çœ®ãæããã
ãµã€ã¬ã³ãäžæžãã¯åä»ã§ããã¿ããªã·ã¹ãã ãæ£ããä¿åãããšæã蟌ããããåŸã«ãªã£ãŠã¬ããŒãããããããšæ°ã¥ããããååãã誰ãããã倿Žããã®ïŒããšå°ãããŸã§åå ãããããŸããã
ããããç«¶åã¯èªç¶ãªãã®ã§ãããŒã«ãå ±æããæçšã§ããããšã®èšŒæ ã§ããããŸããç®çã¯äºäººãç·šéããã®ãæ¢ããããšã§ã¯ãªãã誰ããç·šéããŠããéã«ã¬ã³ãŒããå€ãã£ãããšãæ€åºããŠãå®å šã«å¯ŸåŠããããšã§ãã
AppMaster ã®ãããªããŒã³ãŒããã©ãããã©ãŒã ã§å éšããŒã«ãäœããªããæ©ãæ®µéã§ãããèšç»ãã䟡å€ããããŸãã管çããŒã«ã¯æ¥éã«æé·ããããŒã ãäŸåããããã«ãªããšãããŸã«ãããŒã¿ã倱ãããããšãåžžæ åããŠä¿¡é ŒãæãªããŸãã
楜芳çããã¯ãå¹³æã«èª¬æãããš
åãã¬ã³ãŒããäºäººãéããŠäž¡æ¹ãä¿åãæŒããšãåæå®è¡ã®åé¡ãèµ·ããŸããåãŠãŒã¶ãŒã¯å€ãã¹ãããã·ã§ããããäœæ¥ãå§ããŠãããä¿åãèµ·ãããšæåŸã®ä¿åã ããææ°ã«ãªããŸãã
äœã®å¯ŸçããªããšæåŸã«ä¿åãã人ãåã¡ãå ã«ä¿åãã人ã®å€æŽãéãã«æ¶ããââããããµã€ã¬ã³ãäžæžãã§ãã
楜芳çããã¯ã¯ã·ã³ãã«ãªã«ãŒã«ã§ãïŒãç·šéãä¿åãããšãããã®ã¬ã³ãŒããããªããç·šéãå§ãããšããšåãç¶æ ãªãä¿åãããéã£ãŠãããä¿åãæåŠããŠç«¶åã衚瀺ãããã
ããã¯æ²èгçããã¯ãšã¯ç°ãªããŸããæ²èŠ³çããã¯ã¯ãç§ãç·šéããŠããéã¯ä»ã¯ç·šéã§ããªãããšããçºæ³ã§ãå®éã«ã¯ããã¯ãã¿ã€ã ã¢ãŠããåŸ ã¡ãçºçããŸãããéã®ç§»åã®ãããªçšãªã±ãŒã¹ã§ã¯æçšã§ãããå€ãã®å°ããªç·šéãé »çºãã管çããŒã«ã§ã¯ãŠãŒã¶ãŒããã©ã¹ãã¬ãŒã·ã§ã³ãããã¡ã§ãã
楜芳çããã¯ã¯éåžžããã©ã«ããšããŠåªããŠããŸãããŠãŒã¶ãŒã¯äžŠè¡ããŠç·šéã§ããå®éã«è¡çªãèµ·ãããšãã ãã·ã¹ãã ãä»å ¥ããŸãã
é©ããŠããç¶æ³ïŒ
- ç«¶åã¯èµ·ãããããåžžæã§ã¯ãªãã
- ç·šéãçæéïŒå°æ°ãã£ãŒã«ããçããã©ãŒã ïŒã§å®äºããã
- ä»è ããããã¯ãããšäœæ¥ãé ããªãã
- ã誰ããæŽæ°ããŸããããšããæç¢ºãªã¡ãã»ãŒãžãåºããã
- API ãæŽæ°æã«ããŒãžã§ã³ïŒãŸãã¯ã¿ã€ã ã¹ã¿ã³ãïŒããã§ãã¯ã§ããã
é²ããã®ã¯ãéããªäžæžããã§ããããŒã¿ã倱ã代ããã«ãã·ã¹ãã ããããã«ã¹ãããããŠããã®ã¬ã³ãŒãã¯ããªããéããåŸã«æŽæ°ãããŸããããšéç¥ããŠãããŸãã
ã§ããªãããšãéèŠã§ããæ¥œèгçããã¯ã¯ãäºäººãå€ãæ å ±ã«åºã¥ããŠç°ãªãæ£åœãªå€æãããã®ãæ¢ããããŸããããèªåã§ããŒãžããŠãããããã§ããããŸããããŸãããµãŒããŒåŽã§ãã§ãã¯ãããªããã°è§£æ±ºããããšã«ã¯ãªããŸããã
ããããå¶çŽïŒ
- ç«¶åãèªå解決ã¯ããªãïŒãŠãŒã¶ãŒã«éžæãæ±ããå¿ èŠãããïŒã
- ãªãã©ã€ã³ã§ç·šéããŠåŸã§åæããã±ãŒã¹ã§ã¯åœ¹ã«ç«ããªãããšãããã
- æš©éãäžååãªãïŒç·šéããŠã¯ãããªã人ãç·šéãããªã©ïŒé²ããªãã
- ã¯ã©ã€ã¢ã³ãåŽã ãã§ãã§ãã¯ãããšææã§ããªãã±ãŒã¹ãããã
å®åã§ã¯ã楜芳çããã¯ã¯ç·šéãšäžç·ã«éããã远å ã®å€ïŒããŒãžã§ã³ãã¿ã€ã ã¹ã¿ã³ãïŒãšããµãŒããŒåŽã®ãäžèŽããå Žåã®ã¿æŽæ°ããããšããã«ãŒã«ã«éçŽãããŸããAppMaster ã§ç®¡çããã«ãäœããªãããã®ãã§ãã¯ã¯éåžžæŽæ°åŠçã®çŽåã«ããããžãã¹ããžãã¯å ã«çœ®ããŸãã
ãã䜿ãããäºã€ã®ã¢ãããŒãïŒversion ã«ã©ã vs updated_at
ã¬ã³ãŒããç·šéäžã«å€ãã£ãããšãæ€åºããã«ã¯ãéåžž version çªå·ã updated_at ã¿ã€ã ã¹ã¿ã³ãã®ã©ã¡ããã䜿ããŸãã
ã¢ãããŒã1: version ã«ã©ã ïŒã€ã³ã¯ãªã¡ã³ãããæŽæ°ïŒ
version ãã£ãŒã«ãïŒéåžžã¯æŽæ°ïŒã远å ããŸããç·šéãã©ãŒã ãèªã¿èŸŒããšãã«çŸåšã® version ãèªã¿ãä¿åæã«ãã®å€ãéãè¿ããŸãã
ãµãŒããŒã¯ä¿åæã«æ ŒçŽãããããŒãžã§ã³ãèªã¿èŸŒãã å€ãšäžèŽããå Žåã ãæŽæ°ãèš±å¯ããäžèŽããã° version ã +1 ããŸããäžèŽããªããã°äžæžãã®ä»£ããã«ç«¶åãè¿ããŸãã
version 12 ã¯ãããã12åç®ã®å€æŽã§ããããšããçŽæçãªæå³ãæã¡ãæéã«äŸåãã端å¢ã±ãŒã¹ãé¿ããããŸãã
ã¢ãããŒã2: updated_atïŒã¿ã€ã ã¹ã¿ã³ãæ¯èŒïŒ
å€ãã®ããŒãã«ã«ã¯æ¢ã« updated_at ãã£ãŒã«ããããã®ã§ãåãèãæ¹ã§åãããŸãïŒãã©ãŒã ãéããšãã« updated_at ãèªã¿èŸŒã¿ãä¿åæã«ãããéãããµãŒããŒã¯ updated_at ãå€ãã£ãŠããªããã°æŽæ°ããŸãã
ãã ãã¿ã€ã ã¹ã¿ã³ãã«ã¯æ³šæç¹ããããŸããããŒã¿ããŒã¹ã«ãã£ãŠç²ŸåºŠãç°ãªããç§åäœã«äžžãããããšçæéã®é£ç¶ããç·šéãèŠéãããšããããŸããè€æ°ã®ã·ã¹ãã ãåã DB ã«æžã蟌ãå Žåã¯æèšã®ãºã¬ãã¿ã€ã ãŸãŒã³åŠçãæ··ä¹±ãæãããšããããŸãã
æ¯èŒã®ç°¡åãªãŸãšãïŒ
- version ã«ã©ã ïŒæåãæç¢ºã§ããŒã¿ããŒã¹ã«äŸåãããæèšåé¡ããªãã
updated_atïŒæ¢ã«ååšããããšãå€ã䟿å©ã ãã粟床ãæèšåŠçã§èœãšã穎ãããã
ã»ãšãã©ã®ããŒã ã§ã¯ version ã«ã©ã ãåªå ããã®ãè¯ãã§ããããæç€ºçã§äºæž¬ããããããã°ããµããŒããã±ããã§ãåç §ããããããã§ãã
AppMaster ã§äœããªããData Designer ã«æŽæ°ã® version ãã£ãŒã«ãã远å ããæŽæ°åŠçã§ããããã§ãã¯ããã®ãäžè¬çã§ããupdated_at ã¯ç£æ»çšã«æ®ããŠãããŠãå®éã®åæå®è¡å€å®ã¯ version ã«ä»»ãããšããäœ¿ãæ¹ãå€ãã§ãã
ã©ã®å€ãä¿åããã©ã®å€ãç·šéæã«éãã
楜芳çããã¯ã¯ããŠãŒã¶ãŒããã©ãŒã ãéããç¬éã®ãæåŸã«èŠããããŒã«ãŒïŒversion ã updated_atïŒããã¹ãŠã®ç·šéã«å«ããããšã§æç«ããŸããããããªããã°ãµãŒããŒã¯ç·šéäžã«å€åããã£ããã©ãã倿ã§ããŸããã
ã¬ã³ãŒãã«ã¯éåžžã®ããžãã¹ãã£ãŒã«ãã«å ããŠããµãŒããŒã管çããåæå®è¡çšãã£ãŒã«ããäžã€æã¡ãŸããæäœéã®æ§æã¯ïŒ
idïŒäžå€ã®èå¥åïŒ- ããžãã¹ãã£ãŒã«ãïŒname, status, price, notes ãªã©ïŒ
versionïŒæŽæ°æåããšã«å¢ããæŽæ°ïŒãŸãã¯updated_atïŒãµãŒããŒãæžã蟌ãã¿ã€ã ã¹ã¿ã³ãïŒ
ç·šéç»é¢ãéããããããã©ãŒã ã¯ãã®æç¹ã®åæå®è¡ããŒã¯ã³ãä¿æããŸãããŠãŒã¶ãŒãç·šéãããã®ã§ã¯ãªãã®ã§ãé ããã£ãŒã«ãããã©ãŒã ç¶æ
ã«å
¥ããŠãããŸããäŸïŒAPI ã version: 12 ãè¿ãããã©ãŒã ã¯ä¿åãããŸã§ãããä¿æããŸãã
ä¿åæã«ã¯å€æŽå
å®¹ãšæåŸã«èŠãããŒã«ãŒã®äºã€ãéããŸããã·ã³ãã«ãªãªã¯ãšã¹ã圢㯠idã倿Žãã£ãŒã«ããexpected_versionïŒãŸã㯠expected_updated_atïŒãå«ããããšã§ããAppMaster ã§ UI ãäœãå Žåã¯ãããããã€ã³ããããå€ãšããŠæ±ããã¬ã³ãŒããšäžç·ã«èªã¿èŸŒã¿ã倿Žããã«æŽæ°æã«éä¿¡ããŸãã
ãµãŒããŒåŽã§ã¯æŽæ°ã¯æ¡ä»¶ä»ãã«ããŸãããããããªããã°ããŒãžããŠéãã«äžæžãããªãã§ãã ããã
ç«¶åã¬ã¹ãã³ã¹ã¯ UI ã§æ±ãããã圢ã«ããŸããå®çšçã«ã¯æ¬¡ãå«ãããšããã§ãïŒ
- HTTP ã¹ããŒã¿ã¹
409 Conflict - ããã®ã¬ã³ãŒãã¯èª°ãã«æŽæ°ãããŸãããã®ãããªçãã¡ãã»ãŒãž
- çŸåšã®ãµãŒããŒå€ïŒ
current_versionãcurrent_updated_atïŒ - å¿ èŠã§ããã°çŸåšã®ãµãŒããŒã¬ã³ãŒãïŒUI ãäœãå€ãã£ããèŠããããããã«ïŒ
äŸïŒSam ã Customer ã version: 12 ã§éããPriya ãå
ã«ä¿åã㊠version: 13 ã«ãªã£ãåŸã« Sam ã expected_version: 12 ã§ä¿åããããšãããšããµãŒããŒã¯ 409 ãš version: 13 ã®çŸåšã¬ã³ãŒããè¿ããŸããUI 㯠Sam ã«ææ°å€ã確èªãããŠäžæžããé²ããŸãã
å®è£ æé ïŒæ¥œèгçããã¯ããšã³ãããŒãšã³ãã§å®è£ ãã
楜芳çããã¯ã¯åºæ¬çã«äžã€ã®ã«ãŒã«ã«èœã¡ãŸãïŒãã¹ãŠã®ç·šéã¯ãææ°ã®ä¿åããŒãžã§ã³ã«åºã¥ããŠãããããšã蚌æããªããã°ãªããªãã
1) åæå®è¡ãã£ãŒã«ãã远å ãã
æžã蟌ã¿ããšã«å€ãããã£ãŒã«ããäžã€éžã³ãŸãã
å°çšã®æŽæ° version ãæãåãããããã§ãã1ããå§ããŠæŽæ°ããšã«ã€ã³ã¯ãªã¡ã³ãããŸããæ¢ã«ç¢ºå®ã«æ¯åæŽæ°ããã updated_at ããããªãããã§ãæ§ããŸããããããã¯ã°ã©ãŠã³ããžã§ããå«ããŠå¿
ãæŽæ°ãããããšã確èªããŠãã ããã
2) ãã®å€ãèªã¿åãæã«ã¯ã©ã€ã¢ã³ãã«éã
ç·šéç»é¢ãéããšãã«çŸåšã® versionïŒãŸã㯠updated_atïŒãã¬ã¹ãã³ã¹ã«å«ããŸãããã©ãŒã ç¶æ
ã«é ãå€ãšããŠä¿æããŠãã ããã
ã¬ã·ãŒãã®ããã«ãç§ã¯ãããæåŸã«èªãã ããšããæå³ã§ãã
3) æŽæ°æã«ãã®å€ãå¿ é ã«ãã
ä¿åæãã¯ã©ã€ã¢ã³ãã¯ç·šéãã£ãŒã«ããšæåŸã«èŠãåæå®è¡å€ãéãè¿ããŸãã
ãµãŒããŒã¯æŽæ°ãæ¡ä»¶ä»ãã§è¡ããŸããSQL ã®äŸã¯æ¬¡ã®éãã§ãïŒ
UPDATE tickets
SET status = $1,
version = version + 1
WHERE id = $2
AND version = $3;
æŽæ°ã 1 è¡åœ±é¿ãããä¿åæåã0 è¡ãªã誰ããå ã«å€æŽããããšã«ãªããŸãã
4) æååŸã«æ°ããå€ãè¿ã
ä¿åæååŸãæŽæ°ãããã¬ã³ãŒããšæ°ãã versionïŒãŸãã¯æ°ãã updated_atïŒãè¿ããŸããã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã®è¿ãå€ã§ãã©ãŒã ç¶æ
ã眮ãæããå€ãããŒãžã§ã³ã§ã®äºéä¿åãé²ããŸãã
5) ç«¶åãéåžžã®çµæãšããŠæ±ã
æ¡ä»¶ä»ãæŽæ°ã倱æããããæç¢ºãªç«¶åã¬ã¹ãã³ã¹ïŒå€ã㯠HTTP 409ïŒãè¿ããæ¬¡ãå«ãããš UI åŽã§æ±ãããããªããŸãïŒ
- çŸåšã®ã¬ã³ãŒãïŒçŸç¶ïŒ
- ã¯ã©ã€ã¢ã³ãã詊ã¿ã倿ŽïŒãŸãã¯åŸ©å ã«ååãªæ å ±ïŒ
- å·®åãåãããªãã©ã®ãã£ãŒã«ããéãã
AppMaster ã§ã¯ãData Designer ã® PostgreSQL ã¢ãã«ãã£ãŒã«ããèªã¿åããšã³ããã€ã³ãã§ã® version è¿åŽããã㊠Business Process ã§ã®æ¡ä»¶ä»ãæŽæ°ãšæåïŒç«¶åã®åå²ããã®æµãã«å¯Ÿå¿ããŸãã
ç«¶åããŠãŒã¶ãŒã«å«ããããã«åŠçãã UI ãã¿ãŒã³
楜芳çããã¯ã¯å šäœã®ååã«éããŸãããæ®ãã¯ãä¿åãæåŠããããšãã«ãŠãŒã¶ãŒã«äœãèŠããããã§ãã
è¯ãç«¶å UI ã®ç®çã¯äºã€ïŒãµã€ã¬ã³ãäžæžããæ¢ããããšãšããŠãŒã¶ãŒãã¿ã¹ã¯ãéããã«å®äºã§ããããå©ããããšã§ããããŸãäœãã°è£å©çãªã¬ãŒãã¬ãŒã«ã«æããããé害ã«ã¯ãªããŸããã
ãã¿ãŒã³1ïŒã·ã³ãã«ãªããããã³ã°ãã€ã¢ãã°ïŒæéïŒ
ç·šéãçãããŠãŒã¶ãŒãåé©çšã§åé¡ãªãå Žåã«äœ¿ããŸãã
ã¡ãã»ãŒãžã¯çãå ·äœçã«ïŒãç·šéäžã«ãã®ã¬ã³ãŒãã倿ŽãããŸãããææ°ã®ããŒãžã§ã³ãåèªã¿èŸŒã¿ããŠãã ããããè¡åã¯äºã€ïŒ
- åèªã¿èŸŒã¿ããŠç¶è¡ïŒäž»ã¢ã¯ã·ã§ã³ïŒ
- ç§ã®å€æŽãã³ããŒïŒãªãã·ã§ã³ïŒ
ãç§ã®å€æŽãã³ããŒãã¯æªä¿åã®å€ãã¯ãªããããŒãã«å ¥ããããåèªã¿èŸŒã¿åŸã«ãã©ãŒã ã«æ®ãæ©èœã§ããåäžãã£ãŒã«ããçãã¡ã¢ãç¶æ åæ¿ãªã©ã«åããŸããAppMaster ã®ãããªãã«ããŒã§ãå®è£ ã容æã§ãã
ãã¿ãŒã³2ïŒã倿Žã確èªãããïŒéèŠã¬ã³ãŒãåãïŒ
äŸ¡æ Œãæš©éãæ¯æãªã©éèŠãªã¬ã³ãŒããé·ããã©ãŒã ã®å Žåã¯ãã¡ãããšã©ãŒç»é¢ã§æ¬¡ãæ¯èŒè¡šç€ºããŸãïŒ
- ããªãã®ç·šéïŒä¿åããããšããå 容ïŒ
- çŸåšã®å€ïŒDB ã®ææ°ïŒ
- ããªããéããããšã«å€ãã£ããã£ãŒã«ã
ç«¶åãã£ãŒã«ãã«ã€ããŠã¯ãåãã£ãŒã«ãããšã«éžæè¢ãåºããŸãïŒ
- èªåã®å å®¹ãæ¡çšãã
- çžæã®å å®¹ãæ¡çšãã
- ããŒãžïŒã¿ã°ãã¡ã¢ã®ããã«æå³ã®ãããšãã®ã¿ïŒ
é·ããªããããã¹ããé·æã¡ã¢ã«ã¯å·®å衚瀺ãåºããšå€æããããããªããŸãã
匷å¶äžæžããèš±ããšãïŒèª°ãã§ãããïŒ
ãŸãã«åŒ·å¶äžæžããå¿ èŠã«ãªãããšããããŸãããéå®çã«ãã¹ãã§ããå®è£ ãããªãçç±ãå¿ é ã«ããŠãã°ãæ®ãã管çè ãã¹ãŒããŒãã€ã¶ãŒãªã©ã«éå®ããŠãã ããã
éåžžãŠãŒã¶ãŒã«ã¯ã倿Žã確èªããããã©ã«ãã«ãã匷å¶äžæžãã¯ææè ãäœãªã¹ã¯ãªå ŽåããŸãã¯ç£ç£äžã§ã®ããŒã¿ä¿®æ£ã«éå®ããã®ãå®å šã§ãã
äŸïŒåãã¬ã³ãŒããäºäººãç·šéããå Žé¢
äºäººã®ãµããŒãæ åœ Maya ãš Jordan ãåã顧客ãããã£ãŒã«ãç·šéããŠããŸããäž¡æ¹ãšãã¹ããŒã¿ã¹ãæŽæ°ããé話åŸã®ã¡ã¢ã远å ããŸãã
ã¿ã€ã ã©ã€ã³ïŒversion ãŸã㯠updated_at ã䜿ã£ã楜芳çããã¯æå¹ã®å ŽåïŒïŒ
- 10:02 - Maya ã Customer #4821 ãéããStatus = "Needs follow-up", Notes = "Called yesterday", Version = 7ã
- 10:03 - Jordan ãåã顧客ãéããåæ§ã« Version = 7 ãèŠãã
- 10:05 - Maya ã Status ã "Resolved" ã«å€æŽããNotes ã« "Issue fixed, confirmed by customer." ã远å ããŠä¿åããã
- 10:05 - ãµãŒããŒã¯ã¬ã³ãŒããæŽæ°ããVersion ã 8 ã«ã€ã³ã¯ãªã¡ã³ããã誰ãäœããã€å€æŽãããã®ç£æ»ãèšé²ããã
- 10:09 - Jordan ãå¥ã®ã¡ã¢ "Customer asked for a receipt" ãå ¥åããŠä¿åãã¯ãªãã¯ããã
ç«¶åãã§ãã¯ããªããšãJordan ã®ä¿åã Maya ã®å€æŽãéãã«äžæžãããå¯èœæ§ããããŸããæ¥œèгçããã¯ãããã°ãJordan ã®ä¿åã¯æåŠãããŸãïŒåœŒã¯ Version = 7 ãéã£ãŠããŠãã¬ã³ãŒãã¯æ¢ã« Version = 8 ã«ãªã£ãŠããããïŒã
Jordan ã¯æç¢ºãªç«¶åã¡ãã»ãŒãžãèŠãŠã次ã®éžæè¢ãåŸãŸãïŒ
- ææ°ã¬ã³ãŒããåèªã¿èŸŒã¿ããŠç Žæ£ãã
- èªåã®å€æŽãææ°ã¬ã³ãŒãã«äžæžãã§é©çšããïŒå¯èœãªãæšå¥šïŒ
- å·®åãã¬ãã¥ãŒããŠã©ã¡ããæ®ããéžã¶
ç°¡åãªç»é¢ã¯æ¬¡ã瀺ããŸãïŒ
- "ãã®é¡§å®¢ã¯ 10:05 ã« Maya ã«ãã£ãп޿°ãããŸãã"
- å€ãã£ããã£ãŒã«ãïŒStatus ãš NotesïŒ
- Jordan ã®æªä¿åã¡ã¢ã®ãã¬ãã¥ãŒ
Jordan ã¯ãå·®åã確èªããéžã³ãMaya ã® Status = "Resolved" ãç¶æããèªåã®ã¡ã¢ãæ¢åã®ã¡ã¢ã«è¿œèšããŠä¿åããŸããä»å㯠Version = 8 ã䜿ã£ãŠä¿åãæåããVersion = 9 ã«ãªããŸãã
çµæïŒããŒã¿ã¯å€±ãããã誰ãäœãäžæžããããåãããªããšããããšããªããMaya ã®ã¹ããŒã¿ã¹å€æŽãšäž¡æ¹ã®ã¡ã¢ã远跡å¯èœãªç£æ»ã«ãªããŸãããAppMaster ã§äœãå ŽåãæŽæ°æã®äžåã®ãã§ãã¯ãšå°ããªç«¶å解決ãã€ã¢ãã°ã§ãã®æµããå®çŸã§ããŸãã
ããŒã¿æå€±ãæããããããã¹
å€ãã®ã楜芳çããã¯ã®ãã°ãã¯ã¢ã€ãã¢èªäœã®åé¡ã§ã¯ãªããUIãAPIãããŒã¿ããŒã¹ã®åãæž¡ãéšåã§èµ·ããŸããã©ããäžå±€ã§ãã«ãŒã«ãå¿ãããšãµã€ã¬ã³ãäžæžããçºçããŸãã
å žåçãªãã¹ã¯ãç·šéç»é¢ãéããšãã«ããŒãžã§ã³ïŒãŸãã¯ã¿ã€ã ã¹ã¿ã³ãïŒãååŸããããä¿åæã«ãããéããªãããšã§ãããã©ãŒã ãããŒãžéã§åå©çšãããé ããã£ãŒã«ããèœã¡ãããAPI ã¯ã©ã€ã¢ã³ãã倿Žããããã£ãŒã«ãã®ã¿ãéããšèµ·ããŸãã
å¥ã®çœ ã¯ãã©ãŠã¶åŽã ãã§ç«¶åãã§ãã¯ãããããšã§ãããŠãŒã¶ãŒã¯èŠåãèŠãŠãããµãŒããŒãæŽæ°ãåãå ¥ããŠããŸãã°å¥ã®ã¯ã©ã€ã¢ã³ãããªãã©ã€ã§äžæžããããŸããæçµçãªå€å®ã¯ãµãŒããŒãè¡ãå¿ èŠããããŸãã
ããŒã¿æå€±ãæããã¿ãŒã³ïŒ
- ä¿åãªã¯ãšã¹ãã«åæå®è¡ããŒã¯ã³ïŒ
version,updated_at, ETag ãªã©ïŒãå«ãŸããŠããªãã idã®ã¿ã§æŽæ°ããŠããŠãid + versionã®ãããªååçæ¡ä»¶æŽæ°ã«ããŠããªãã- äœç²ŸåºŠãª
updated_atïŒç§åäœãªã©ïŒã䜿ã£ãŠãããçæéã®é£ç¶ç·šéãèŠéãã - 倧ããªãã£ãŒã«ãïŒããŒãã説æïŒãé åïŒã¿ã°ãè¡é ç®ïŒãäžžããšçœ®ãæããæäœã¯ã誰ãã®ç·šéãæ¶ãå±éºãé«ãã
- ç«¶åãããã ãªãã©ã€ããã°ããããšæ±ããšãå€ãå€ãæ°ããå€ã®äžã«åé©çšããŠããŸãã
å ·äœäŸïŒäºäººã®ãµããŒããªãŒããŒãåã顧客ã¬ã³ãŒããéããçæ¹ãé·ãå éšã¡ã¢ã远å ããããçæ¹ãã¹ããŒã¿ã¹å€æŽãããŠä¿åãããšãããä¿åããã€ããŒãå šäœã眮ãæããå®è£ ãªãã¹ããŒã¿ã¹å€æŽã§é·ãã¡ã¢ãæ¶ããããšããããŸãã
ç«¶åãèµ·ãããšãã« API ã®å¿çãèããšããŒã ã¯ããŒã¿ãåãæ»ããŸãããåã« "409 Conflict" ãè¿ãã ãã§ãªãã人ã埩æ§ã§ããæ å ±ãè¿ããŸãããïŒ
- çŸåšã®ãµãŒããŒããŒãžã§ã³ïŒãŸãã¯
updated_atïŒ - é¢ä¿ãããã£ãŒã«ãã®ææ°å€
- å·®åãã£ãŒã«ãã®ååäžèЧïŒå¯èœãªãïŒ
- 誰ããã€å€æŽãããïŒè¿œè·¡ããŠãããªãïŒ
AppMaster ã§å®è£ ãããªããUI ç¶æ ã«ããŒãžã§ã³ãä¿æããä¿åæã«éä¿¡ããããã¯ãšã³ãããžãã¯ã§ PostgreSQL ã«æžã蟌ãåã«æ¯èŒãããšããèŠåŸãå®ã£ãŠãã ããã
åºè·åã®ç°¡åãã§ãã¯ãªã¹ã
ãªãªãŒã¹åã«ãä¿åã¯æåããã®ã«ä»è ã®äœæ¥ãéãã«äžæžãããŠããã倱æã¢ãŒãã確èªããŸãããã
ããŒã¿ãš API ã®ãã§ãã¯
åæå®è¡ããŒã¯ã³ããšã³ãããŒãšã³ãã§æ±ãããŠããããšã確èªããŸããããŒã¯ã³ã¯ version æŽæ°ã updated_at ã¿ã€ã ã¹ã¿ã³ãã§ãããã¬ã³ãŒãã®äžéšãšããŠæ±ãå¿
èŠããããŸãã
- èªã¿åãæã«ããŒã¯ã³ãå«ãŸããŠããïŒUI ã¯ãã©ãŒã ç¶æ ã«ä¿åããŠããïŒã
- æŽæ°æã«å¿ ãæåŸã«èŠãããŒã¯ã³ãéãããµãŒããŒã¯æžã蟌ã¿åã«æ€èšŒããã
- æåæã«ãµãŒããŒã¯æ°ããããŒã¯ã³ãè¿ããUI ã¯åæãä¿ã€ã
- ãã«ã¯ç·šéãã€ã³ã©ã€ã³ç·šéãåãã«ãŒã«ãå®ãã
- åãè¡ãç·šéããããã¯ã°ã©ãŠã³ããžã§ããããŒã¯ã³ãèæ ®ããïŒã§ãªããšã©ã³ãã ãªç«¶åãçºçããïŒã
AppMaster ã§äœãå Žåã¯ãData Designer ã« version ãŸã㯠updated_at ãã£ãŒã«ããååšããããBusiness Process ã®æŽæ°ãããŒãæ¯èŒãè¡ã£ãŠããããå確èªããŠãã ããã
UI ã®ãã§ãã¯
ãµãŒããŒãæŽæ°ãæåŠãããšãã®æ¬¡ã®äžæãæç¢ºã§ããããšãéèŠã§ãã
ãµãŒããŒãæŽæ°ãæåŠãããããã®ã¬ã³ãŒãã¯ããªããéããåŸã«å€æŽãããŸããããšãã£ãã¡ãã»ãŒãžãåºãããŸãå®å šãªã¢ã¯ã·ã§ã³ïŒææ°ããŒã¿ã®åèªã¿èŸŒã¿ïŒãæç€ºããŸããã§ããã°ãåèªã¿èŸŒã¿ããŠæªä¿åã®å ¥åãåé©çšããããã¹ãçšæããŠãå°ããªä¿®æ£ã§åå ¥åã匷ããããªãããã«ããŸãã
å¿ èŠãªããå¶åŸ¡ãããã匷å¶ä¿åããªãã·ã§ã³ãå°å ¥ããŸãã圹å²ã§å¶éãã確èªãæ±ãã誰ã匷å¶ãããããã°ã«æ®ãããšã§ç·æ¥æã®å¯Ÿå¿ã¯å¯èœã«ãã€ã€ãããŒã¿æå€±ãåžžæ åãããªãããã«ããŸãã
次ã®ã¹ãããïŒãŸãäžã€ã®ã¯ãŒã¯ãããŒã«å°å ¥ããŠæšªå±éãã
ãŸãã¯å°ããå§ããŸãããã人ãé »ç¹ã«ç«¶åãã管çç»é¢ãäžã€éžã³ãããã§æ¥œèгçããã¯ãå°å ¥ããŸããç«¶åãå€ãã®ã¯éåžžãã±ãããæ³šæãäŸ¡æ Œãåšåº«ãªã©ã§ããäžã€ã®å¿ããç»é¢ã§ç«¶ååŠçãå®å šã«ããã°ãã»ãã«ãç¹°ãè¿ãé©çšãããããªããŸãã
äºåã«ããã©ã«ãã®ç«¶åæåãæ±ºããŠãããšãããã¯ãšã³ããš UI ã®èšèšãã¶ããŸããïŒ
- ãããã¯ããŠåèªã¿èŸŒã¿ïŒä¿åãæ¢ããŠææ°ã¬ã³ãŒããèªã¿èŸŒã¿ããŠãŒã¶ãŒã«åé©çšããããçãç·šéã«åãã
- ã¬ãã¥ãŒããŠããŒãžïŒããªãã®å€æŽãšææ°ã®å·®åãèŠããŠã©ã¡ããæ¡çšãããéžã°ãããé·ããã©ãŒã ãéèŠãªã¬ã³ãŒãã«åãã
ãŸãäžã€ã®ãããŒãå®å šã«å®è£ ããŠãã¹ãããŠããæ¡åŒµããŸãããïŒ
- 1 ç»é¢ãéžã³ããŠãŒã¶ãŒãæãç·šéãããã£ãŒã«ãããªã¹ãã¢ããããã
- ãã©ãŒã ãã€ããŒãã«
versionïŒãŸãã¯updated_atïŒãå«ããä¿åæã«å¿ é ã«ããã - DB æžã蟌ã¿ãæ¡ä»¶ä»ãã«ããïŒversion ãäžèŽããå Žåã®ã¿æŽæ°ïŒã
- ç«¶åã¡ãã»ãŒãžã𿬡ã®ã¢ã¯ã·ã§ã³ïŒåèªã¿èŸŒã¿ãããã¹ãã®ã³ããŒãæ¯èŒè¡šç€ºïŒãèšèšããã
- 2 ã€ã®ãã©ãŠã¶ã§ãã¹ãããïŒã¿ãA ã§ä¿åããã¿ãB ã§å€ãããŒã¿ãä¿åããŠã¿ãã
軜éãªç«¶åãã°ã远å ãããšäŸ¿å©ã§ããç°¡åãªãç«¶åçºçãã€ãã³ãã«ã¬ã³ãŒãçš®å¥ãç»é¢åããŠãŒã¶ãŒåœ¹å²ãå«ããã ãã§ãããã¹ããããç¹å®ã§ããŸãã
AppMaster (appmaster.io) ã§ç®¡çããŒã«ãäœããªããData Designer ã«ããŒãžã§ã³ãã£ãŒã«ããã¢ãã«åããBusiness Processes ã§æ¡ä»¶ä»ãæŽæ°ã匷å¶ããUI ãã«ããŒã§å°ããªç«¶åãã€ã¢ãã°ã远å ããã°äž»èŠéšåã¯ã«ããŒã§ããŸããæåã®ã¯ãŒã¯ãããŒãå®å®ããããç»é¢ããšã«åããã¿ãŒã³ãç¹°ãè¿ããç«¶å UI ãäžè²«ãããŠãããšãŠãŒã¶ãŒãäžåºŠåŠã¹ã°ã©ãã§ãä¿¡é ŒããŠäœ¿ããããã«ãªããŸãã
ãããã質å
ãµã€ã¬ã³ãäžæžãã¯ãå¥ã®ã¿ããã»ãã·ã§ã³ã§åãã¬ã³ãŒããäºäººãç·šéããæåŸã«ä¿åãã人ã®å€æŽãå ã«ä¿åãã人ã®å€æŽãèŠåãªãã«çœ®ãæããŠããŸãçŸè±¡ã§ããäž¡æ¹ã®ãŠãŒã¶ãŒã¯ãä¿åæåããèŠãŠãããããæ¶ããç·šéã¯åŸã«ãªã£ãŠåããŠçºèŠããŸãã
楜芳çããã¯ã¯ãããªããç·šéãä¿åãããšãã«ããã®ã¬ã³ãŒãã¯ããªããéãããšããšå€ãã£ãŠããªãããããã§ãã¯ããä»çµã¿ã§ãããã誰ããå ã«ä¿åããŠããã°ãä¿åã¯æåŠããïŒç«¶åãšããŠæ±ããïŒãäžæžããã代ããã«ææ°ããŒã¿ã確èªã§ããŸãã
æ²èгçããã¯ã¯èª°ããç·šéããŠããéã«ä»ããããã¯ãããããåŸ ã¡ãã¿ã€ã ã¢ãŠããã誰ãããã¯ããŠããïŒããšãã£ãåé¡ãèµ·ããã¡ã§ãã管çããŒã ã§ã¯å€ãã®å°ããªç·šéãåæã«çºçãããããæ¥œèгçããã¯ã®æ¹ãæµããæ¢ãããå®éã®ç«¶åãèµ·ãããšãã ãä»å ¥ããã®ã§é©ããŠããŸãã
é垞㯠versionïŒæŽæ°ã®ããŒãžã§ã³ïŒã䜿ãã®ãæãåçŽã§äºæž¬ããããã§ããupdated_at ã§ãåããŸãããã¿ã€ã ã¹ã¿ã³ãã®ç²ŸåºŠãã·ã¹ãã éã®æèšããã§éãç·šéãèŠéãããšããããŸãã
楜芳çããã¯ãæ©èœãããã«ã¯ããµãŒããŒåŽã§ç®¡çãããåæå®è¡ããŒã¯ã³ãå¿
èŠã§ããäžè¬çã«ã¯ versionïŒæŽæ°ïŒã updated_atïŒã¿ã€ã ã¹ã¿ã³ãïŒã§ããã¯ã©ã€ã¢ã³ãã¯ãã©ãŒã ãéããšãã«ãããèªã¿åããç·šéäžã¯å€æŽããã«ä¿åæã«âæåŸ
å€âãšããŠéãè¿ããŸãã
ã¯ã©ã€ã¢ã³ãåŽã®ãã§ãã¯ã ãã§ã¯äžååã ããã§ãããµãŒããŒãæçµçãªéçªã«ãªããid ãš version ã®ãããªæ¡ä»¶ä»ãæŽæ°ïŒäŸïŒid ãäžèŽããã〠version ãäžèŽããå Žåã®ã¿æŽæ°ïŒã匷å¶ããªããã°ãå¥ã®ã¯ã©ã€ã¢ã³ãããªãã©ã€ãããã¯ã°ã©ãŠã³ããžã§ããéãã«äžæžãããŠããŸããŸãã
ããã©ã«ãã®å®å šçã¯ããããã³ã°ã¡ãã»ãŒãžã§ããã®ã¬ã³ãŒãã¯ç·šéäžã«æŽæ°ãããŸããããšè¡šç€ºãããŸãã¯ææ°ããŒã¿ãåèªã¿èŸŒã¿ããããšãä¿ãããšã§ããé·ãå ¥åãããå Žåã¯ãæªä¿åã®å ¥åãä¿æããŠåé©çšã§ããããã«ãããšåå ¥åã®æéãæžãããŸãã
ç«¶åæã«ã¯æç¢ºãª 409 å¿çïŒäŸïŒHTTP 409ïŒãšãšãã«ãå埩ã«å¿
èŠãªæ
å ±ãè¿ããŠãã ããïŒçŸåšã®ãµãŒããŒåŽã®ããŒãžã§ã³ïŒãŸã㯠updated_atïŒãææ°ã®ãµãŒããŒå€ãã§ããã°èª°ããã€å€æŽããããšãã£ãæ
å ±ã§ããUI ã¯ããã䜿ã£ãŠå·®åã衚瀺ããããå詊è¡ã®å€æãå©ããŸãã
ãããããã¹ã¯ãä¿åæã«ããŒã¯ã³ãéããªãïŒãã©ãŒã ã§é ããã£ãŒã«ããæŒãããAPI ã倿Žããããã£ãŒã«ãã ãéããªã©ïŒãid ã®ã¿ã§æŽæ°ã㊠id + version æ¡ä»¶ã䜿ã£ãŠããªãããŸãã¯äœç²ŸåºŠãªã¿ã€ã ã¹ã¿ã³ãïŒç§åäœãªã©ïŒã䜿ã£ãŠããããšã§ããããã«ããŒããé
åããŸãããšçœ®ãæãããšãä»äººã®ç·šéãæ¶ããŠããŸãå±éºããããŸãã
AppMaster ã§ã¯ãData Designer ã« version ãã£ãŒã«ãã远å ããUI ããã©ãŒã ç¶æ
ã«ãããèªã¿èŸŒãããã«ããŸããBusiness Process ã§æ¡ä»¶ä»ãæŽæ°ïŒæåŸ
ãããããŒãžã§ã³ãäžèŽããå Žåã®ã¿æŽæ°ïŒãå®è£
ããç«¶åãèµ·ããã UI ã§åèªã¿èŸŒã¿ïŒã¬ãã¥ãŒã®ãããŒã«åå²ãããã°ãã«ã¹ã¿ã ã³ãŒããªãã§å®çŸã§ããŸãã


