ãã®èšäºã§ã¯ãç§ãåãçµãã§ãããããžã§ã¯ããå€§èŠæš¡ãªã¢ããªã¹ããäžé£ã®ãã€ã¯ããµãŒãã¹ã«ã©ã®ããã«é²åãããã«ã€ããŠèª¬æããŸãã
ãã®ãããžã§ã¯ãã®æŽå²ã¯ãããªãæã® 2000 幎åé ã«å§ãŸããŸãããæåã®ããŒãžã§ã³ã¯ Visual Basic 6 ã§æžãããŠããŸãããæéã®çµéãšãšãã«ãIDE ãšèšèªèªäœã®çºéãäžååã§ãã 2000 幎代åŸåã«ãããææãª C# ã«åãæ¿ããããšã決å®ãããŸããã æ°ããããŒãžã§ã³ã¯å€ãããŒãžã§ã³ã®ãªããžã§ã³ãšäžŠè¡ããŠäœæãããåŸã ã« .NET ã§äœ¿çšãããã³ãŒããå¢ããŠãããŸããã C# ã®ããã¯ãšã³ãã¯åœåãµãŒãã¹ ã¢ãŒããã¯ãã£ã«éç¹ã眮ããŠããŸããããéçºæã«ã¯ããžãã¯ãåããå ±éã©ã€ãã©ãªã䜿çšããããµãŒãã¹ã¯åäžããã»ã¹ã§èµ·åãããŸããã ãã®çµæãç§ãã¡ãããµãŒãã¹ ã¢ããªã¹ããšåŒã¶ã¢ããªã±ãŒã·ã§ã³ãèªçããŸããã
ãã®ãããªãã³ãã«ã®æ°å°ãªãå©ç¹ã® XNUMX ã€ã¯ããµãŒãã¹ãå€éš API ãéããŠçžäºã«åŒã³åºããããšã§ãã ããæ£ç¢ºãªãµãŒãã¹ããããŠå°æ¥çã«ã¯ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ãžã®ç§»è¡ã«ã¯ãæç¢ºãªåææ¡ä»¶ããããŸããã
2015幎é ããåè§£äœæ¥ãéå§ããŸããã ãŸã çæ³çãªç¶æ
ã«ã¯éããŠããŸããã倧ããªãããžã§ã¯ãã«ã¯ã¢ããªã¹ãšã¯èšãé£ãéšåããããŸããããã€ã¯ããµãŒãã¹ã«ãèŠããŸããã ãã ãã鲿©ã¯é¡èã§ãã
ããã«ã€ããŠã¯èšäºã®äžã§ã話ããŸãã

ããŒãžå 容
æ¢åã®ãœãªã¥ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ãšåé¡ç¹
åœåãã¢ãŒããã¯ãã£ã¯æ¬¡ã®ããã«èŠããŸãããUI - å¥åã®ã¢ããªã±ãŒã·ã§ã³ãã¢ããªã·ãã¯éšå㯠Visual Basic 6 ã§äœæããã.NET ã¢ããªã±ãŒã·ã§ã³ã¯ããªãå€§èŠæš¡ãªããŒã¿ããŒã¹ãæäœããäžé£ã®é¢é£ãµãŒãã¹ã§ããã
以åã®ãœãªã¥ãŒã·ã§ã³ã®æ¬ ç¹
åäžé害ç¹
åäžé害ç¹ããããŸããã.NET ã¢ããªã±ãŒã·ã§ã³ã XNUMX ã€ã®ããã»ã¹ã§å®è¡ãããŠããã®ã§ãã ããããã®ã¢ãžã¥ãŒã«ã倱æãããšãã¢ããªã±ãŒã·ã§ã³å
šäœã倱æããåèµ·åããå¿
èŠããããŸããã ç§ãã¡ã¯ããŸããŸãªãŠãŒã¶ãŒã«å¯ŸããŠå€æ°ã®ããã»ã¹ãèªååããŠããããããã®ãã¡ã® XNUMX ã€ã«é害ãçºçããããããã°ããã®éãã¹ãŠã®ããã»ã¹ãæ©èœããªããªããŸããã ãœãããŠã§ã¢ãšã©ãŒãçºçãããšãåé·æ§ã圹ã«ç«ã¡ãŸããã§ããã
æ¹åãã¥ãŒ
ãã®æ¬ ç¹ã¯ãããçµç¹çãªãã®ã§ãã ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯å€ãã®é¡§å®¢ãããã圌ãã¯çãã§ããã ãæ©ãã¢ããªã±ãŒã·ã§ã³ã宿ãããããšèããŠããŸãã 以åã¯ããã䞊è¡ããŠè¡ãããšã¯äžå¯èœã§ããã¹ãŠã®é¡§å®¢ãåã«äžŠãã§ããŸããã ãã®ããã»ã¹ã¯ããžãã¹ã«ãã€ãã¹ããããããŸããããªããªãã圌ãã¯èªåãã¡ã®ä»äºã«äŸ¡å€ãããããšã蚌æããå¿
èŠããã£ãããã§ãã ãããŠéçºããŒã ã¯ãã®ãã¥ãŒã®æŽçã«æéãè²»ãããŸããã å€ãã®æéãšåŽåãããããçµæãšããŠè£œåãæãããã«æ©ãå€ããããšãã§ããŸããã§ããã
ãªãœãŒã¹ã®æ¬¡åã®å©çš
åäžããã»ã¹ã§ãµãŒãã¹ããã¹ãããå Žåãåžžã«ãµãŒããŒéã§æ§æãå®å
šã«ã³ããŒããŸããã ç§ãã¡ã¯ããªãœãŒã¹ãç¡é§ã«ããªãããã«ããŸãå±éã¹ããŒã ãããæè»ã«å¶åŸ¡ã§ããããã«ãæãè² è·ã®é«ããµãŒãã¹ãåå¥ã«åé¢ããããšèããŠããŸããã
ææ°ã®ãã¯ãããžãŒãå°å
¥ããã®ã¯é£ãã
ãã¹ãŠã®éçºè
ã«ãšã£ãŠããããåé¡ã§ããææ°ã®ãã¯ãããžãŒããããžã§ã¯ãã«å°å
¥ããããšèããŠããŸããããã®æ¹æ³ããããŸããã å€§èŠæš¡ãªã¢ããªã·ã㯠ãœãªã¥ãŒã·ã§ã³ã§ã¯ãæ°ããã©ã€ãã©ãªãžã®ç§»è¡ã¯èšããŸã§ããªããçŸåšã®ã©ã€ãã©ãªã®æŽæ°ã¯ããªãç°¡åãªäœæ¥ã«ãªããŸãã ãããç¡é§ãªç¥çµãè²»ãããããå€ãã®ããŒãã¹ãããããããšãããŒã ãªãŒããŒã«èšŒæããã«ã¯é·ãæéãããããŸãã
倿Žã®çºè¡ãé£ãã
ãããæãæ·±å»ãªåé¡ã§ãããç§ãã¡ã¯ XNUMX ãæããšã«ãªãªãŒã¹ãçºè¡ããŠããŸããã
éçºè
ã®ãã¹ããšåªåã«ããããããããªãªãŒã¹ã®ãã³ã«éè¡ã«ãšã£ãŠã¯å€§æšäºãšãªããŸããã äŒæ¥ã¯ãé±ã®åãã«ã¯äžéšã®æ©èœãæ©èœããªãããšãçè§£ããŠããŸããã ãããŠéçºè
ãã¡ã¯ãäžé±éã«ããã£ãŠé倧ãªäºä»¶ãåŸ
ã£ãŠããããšãçè§£ããŠããŸããã
誰ããç¶æ³ãå€ããããšãã顿ãæã£ãŠããŸããã
ãã€ã¯ããµãŒãã¹ãžã®æåŸ
æºåãã§ãããã³ã³ããŒãã³ããçºè¡ããŸãã ãœãªã¥ãŒã·ã§ã³ãåè§£ããç°ãªãããã»ã¹ãåé¢ããããšã§ãæºåãæŽã£ãã³ã³ããŒãã³ããçºè¡ããŸãã
å°èŠæš¡ãªè£œåããŒã ã å€ãã¢ããªã¹ã«åãçµãã§ããå€§èŠæš¡ãªããŒã ã¯ç®¡çãå°é£ã ã£ããããããã¯éèŠã§ãã ãã®ãããªããŒã ã¯å³æ Œãªããã»ã¹ã«åŸã£ãŠäœæ¥ããããšã匷ããããŸããããããåµé æ§ãšç¬ç«æ§ãæ±ããŠããŸããã å°èŠæš¡ãªããŒã ã ãããããè²·ãäœè£ããããŸããã
ãµãŒãã¹ãå¥ã®ããã»ã¹ã«åé¢ããŸãã çæ³çã«ã¯ã³ã³ããã«åé¢ãããã®ã§ããã.NET Framework ã§æžããããµãŒãã¹ã®å€ãã¯ãç¹å®ã®ç°å¢ã§ã®ã¿åäœããŸãã Windows.NET CoreãããŒã¹ãšãããµãŒãã¹ãç»å Žãå§ããŠãããããŸã æ°ã¯å°ãªãã
å°å ¥ã®æè»æ§ã ã³ãŒãã§åŒ·å¶ãããæ¹æ³ã§ã¯ãªããå¿ èŠãªæ¹æ³ã§ãµãŒãã¹ãçµã¿åãããããšèããŠããŸãã
æ°ãããã¯ãããžãŒã®äœ¿çšã ããã¯ããã°ã©ãã«ãšã£ãŠè峿·±ããã®ã§ãã
ç§»è¡ã®åé¡
ãã¡ãããã¢ããªã¹ããã€ã¯ããµãŒãã¹ã«åå²ããã®ãç°¡åã§ããã°ãã«ã³ãã¡ã¬ã³ã¹ã§ããã«ã€ããŠè©±ããããèšäºãæžãããããå¿
èŠã¯ãããŸããã ãã®ããã»ã¹ã«ã¯å€ãã®èœãšã穎ããããŸããã劚ããšãªã£ãäž»ãªèœãšã穎ã«ã€ããŠèª¬æããŸãã
æåã®åé¡ ã»ãšãã©ã®ã¢ããªã¹ã«å žåçãªãã®ã¯ãããžãã¹ ããžãã¯ã®æ¥ç¶ã§ãã ã¢ããªã¹ãäœæãããšãã¯ãäœåãªã³ãŒããæžããªãããã«ã¯ã©ã¹ãåå©çšããããšèããŸãã ãããŠããã€ã¯ããµãŒãã¹ã«ç§»è¡ãããšããããåé¡ã«ãªããŸãããã¹ãŠã®ã³ãŒããéåžžã«ç·å¯ã«çµåãããŠããããµãŒãã¹ãåé¢ããã®ãå°é£ã§ãã
äœæ¥éå§æç¹ã§ã¯ããªããžããªã«ã¯ 500 以äžã®ãããžã§ã¯ããš 700 äžè¡ä»¥äžã®ã³ãŒãããããŸããã ããã¯ååã«å€§ããªè§£æ±ºçã§ãã XNUMXçªç®ã®åé¡ã ãããåçŽã«ãã€ã¯ããµãŒãã¹ã«åå²ããããšã¯ã§ããŸããã§ããã
XNUMXçªç®ã®åé¡ â å¿ èŠãªã€ã³ãã©ã¹ãã©ã¯ãã£ã®æ¬ åŠã å®éãç§ãã¡ã¯ãœãŒã¹ ã³ãŒãããµãŒããŒã«æåã§ã³ããŒããŠããŸããã
ã¢ããªã¹ãããã€ã¯ããµãŒãã¹ã«ç§»è¡ããæ¹æ³
ãã€ã¯ããµãŒãã¹ã®å²ãåœãŠ
ãŸããç§ãã¡ã¯ãã€ã¯ããµãŒãã¹ã®åé¢ã¯å埩çãªããã»ã¹ã§ãããšããã«å€æããŸããã ç§ãã¡ã¯åžžã«ããžãã¹ã¿ã¹ã¯ã䞊è¡ããŠéçºããããšãæ±ããããŠããŸããã ãããæè¡çã«ã©ã®ããã«å®è£ ãããã¯ããã§ã«ç§ãã¡ã®åé¡ã§ãã ãããã£ãŠãå埩ããã»ã¹ã®æºåãããŸããã å€§èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ããããæåã¯æžãæããæºåãã§ããŠããªãå Žåã§ããåäœã¯å€ãããŸããã
ãã€ã¯ããµãŒãã¹ãåé¢ããã«ã¯ã©ã®ãããªæ¹æ³ã䜿çšããŸãã?
第äžã®æ¹æ³ - æ¢åã®ã¢ãžã¥ãŒã«ããµãŒãã¹ãšããŠåãåºãã ãã®ç¹ã«é¢ããŠãç§ãã¡ã¯å¹žéã§ãããWCF ãããã³ã«ã«åŸã£ãŠåäœããæ£åŒåããããµãŒãã¹ããã§ã«ååšããŠããŸããã ãããã¯å¥ã ã®ã¢ã»ã³ããªã«åé¢ãããŸããã ç§ãã¡ã¯ããããåå¥ã«ç§»æ€ããåãã«ãã«å°ããªã©ã³ãã£ãŒã远å ããŸããã ããã¯ãã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ãšããŠãã³ã³ãœãŒã«ãšããŠãå®è¡ã§ããçŽ æŽããã Topshelf ã©ã€ãã©ãªã䜿çšããŠæžãããŠããŸãã ãœãªã¥ãŒã·ã§ã³ã«ã¯è¿œå ã®ãããžã§ã¯ããå¿ èŠãªããããããã¯ãããã°ã«åœ¹ç«ã¡ãŸãã
ãµãŒãã¹ã¯å ±éã®ã¢ã»ã³ããªã䜿çšããå ±éã®ããŒã¿ããŒã¹ã§åäœãããããããžãã¹ ããžãã¯ã«ãã£ãŠæ¥ç¶ãããŠããŸããã ããããæãçŽç²ãªåœ¢ã§ãã€ã¯ããµãŒãã¹ãšåŒã¶ã®ã¯å°é£ã§ããã ãã ãããããã®ãµãŒãã¹ãç°ãªãããã»ã¹ã§åå¥ã«çºè¡ããããšãã§ããŸãã ããã«ãããçžäºã®åœ±é¿ã軜æžããããšããã§ã«å¯èœã«ãªãã䞊è¡éçºãšåäžé害ç¹ã®åé¡ã軜æžãããŸãã
ãã¹ã ã¢ã»ã³ããªã¯ãProgram ã¯ã©ã¹ã®ããã XNUMX è¡ã®ã³ãŒãã§ãã è£å©ææ¥ã§ãããã·ã§ã«ãã®äœåãé ããŸããã
namespace RBA.Services.Accounts.Host
{
internal class Program
{
private static void Main(string[] args)
{
HostRunner<Accounts>.Run("RBA.Services.Accounts.Host");
}
}
}
ãã€ã¯ããµãŒãã¹ãåé¢ãã XNUMX çªç®ã®æ¹æ³: æ°ããåé¡ã解決ããããã«ããããäœæããŸãã åæã«ã¢ããªã¹ãæé·ããªãå Žåãããã¯ãã§ã«åªããŠãããç§ãã¡ãæ£ããæ¹åã«é²ãã§ããããšãæå³ããŸãã æ°ããåé¡ã解決ããããã«ãç§ãã¡ã¯å¥ã®ãµãŒãã¹ãäœæããããšããŸããã ãã®ãããªæ©äŒãããã°ãããŒã¿ ã¢ãã«ãã€ãŸãå¥ã®ããŒã¿ããŒã¹ãå®å šã«ç®¡çããããããæšæºçãªããµãŒãã¹ãäœæããŸããã
ä»ã®å€ãã®äŒæ¥ãšåæ§ã«ãç§ãã¡ãèªèšŒããã³èªå¯ãµãŒãã¹ããã¹ã¿ãŒãããŸããã 圌ãã¯ããã«æé©ã§ãã ãããã¯ç¬ç«ããŠãããååãšããŠãå¥åã®ããŒã¿ ã¢ãã«ãæã£ãŠããŸãã ãããèªäœã¯ã¢ããªã¹ãšå¯Ÿè©±ãããåé¡ã解決ããããã«ã¢ããªã¹ãåç §ããã ãã§ãã ãããã®ãµãŒãã¹ã§ã¯ãæ°ããã¢ãŒããã¯ãã£ãžã®ç§»è¡ãéå§ãããããµãŒãã¹äžã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããããã°ãããããããã¯ãŒã¯ ã©ã€ãã©ãªãªã©ã«é¢é£ããããã€ãã®ã¢ãããŒãã詊ãããããããšãã§ããŸãã ç§ãã¡ã®çµç¹ã«ã¯èªèšŒãµãŒãã¹ãäœæã§ããªãããŒã ã¯ãããŸããã
ãã€ã¯ããµãŒãã¹ãåé¢ãã XNUMX çªç®ã®æ¹æ³ç§ãã¡ã䜿çšããŠãã ã¯ãå°ãç¹æ®ãªãã®ã§ãã ããã¯ãUI ã¬ã€ã€ãŒããããžãã¹ ããžãã¯ãåé€ããããšã§ãã ç§ãã¡ã®ã¡ã€ã³ã® UI ã¢ããªã±ãŒã·ã§ã³ã¯ãã¹ã¯ãããã§ãããããã¯ãšã³ããšåæ§ã« C# ã§æžãããŠããŸãã éçºè ã¯å®æçã«ééããç¯ããããã¯ãšã³ãã«ååšããŠåå©çšãããã¹ã UI äžã®ããžãã¯ã®äžéšãåé€ããŠããŸããã
UI éšåã®ã³ãŒãã®å®éã®äŸãèŠããšããã®ãœãªã¥ãŒã·ã§ã³ã®ã»ãšãã©ã«å®éã®ããžãã¹ ããžãã¯ãå«ãŸããŠããããšãããããŸããããã¯ãUI ãã©ãŒã ã®æ§ç¯ã ãã§ãªããä»ã®ããã»ã¹ã§ã圹ç«ã¡ãŸãã

å®éã® UI ããžãã¯ã¯æåŸã®æ°è¡ã ãã§ãã ãããåå©çšã§ããããã«ãµãŒããŒã«è»¢éããããšã§ãUI ãåæžããæ£ããã¢ãŒããã¯ãã£ãå®çŸããŸããã
XNUMX çªç®ããã€ã¯ããµãŒãã¹ãåé¢ããæãéèŠãªæ¹æ³ã¢ããªã¹ãåæžã§ããããã«ãããåŠçãäŒŽãæ¢åã®ãµãŒãã¹ã®åé€ã§ãã æ¢åã®ã¢ãžã¥ãŒã«ããã®ãŸãŸåãåºããšãéçºè ãå¿ ããããã®çµæãæ°ã«å ¥ããšã¯éãããæ©èœã®äœææããããžãã¹ããã»ã¹ãå€ããªã£ãŠããŸãå¯èœæ§ããããŸãã ããžãã¹èŠä»¶ã¯åžžã«å€åããããããªãã¡ã¯ã¿ãªã³ã°ãéããŠæ°ããããžãã¹ ããã»ã¹ããµããŒãã§ããŸãã ãœãŒã¹ ã³ãŒããæ¹åããæ¢ç¥ã®æ¬ é¥ãåé€ããããè¯ãããŒã¿ ã¢ãã«ãäœæã§ããŸãã åŸãããã¡ãªããã¯ãããããããŸãã
ãªã¯ãŒã¯ã«ãããµãŒãã¹ã®åé¢ã¯ãå¢çä»ãã³ã³ããã¹ãã®æŠå¿µãšå¯æ¥ã«é¢é£ããŠããŸãã ããã¯ãã¡ã€ã³æåèšèšã®æŠå¿µã§ãã ããã¯ãåäžèšèªã®ãã¹ãŠã®çšèªãäžæã«å®çŸ©ãããŠãããã¡ã€ã³ ã¢ãã«ã®ã»ã¯ã·ã§ã³ãæå³ããŸãã äŸãšããŠãä¿éºãšè«æ±æžã®ã³ã³ããã¹ããèããŠã¿ãŸãããã ç§ãã¡ã¯ã¢ããªã·ãã¯ãªã¢ããªã±ãŒã·ã§ã³ãæã£ãŠãããä¿éºã®ã¢ã«ãŠã³ããæäœããå¿ èŠããããŸãã éçºè ãå¥ã®ã¢ã»ã³ããªã§æ¢åã® Account ã¯ã©ã¹ãèŠã€ããŠãInsurance ã¯ã©ã¹ãããããåç §ããããšãæåŸ ããŸããããããã°ãæ©èœããã³ãŒããåŸãããŸãã DRY ååãéµå®ãããæ¢åã®ã³ãŒãã䜿çšããããšã§ã¿ã¹ã¯ãããé«éã«å®è¡ãããŸãã
ãã®çµæãå£åº§ãšä¿éºã®æèã¯ã€ãªãã£ãŠããããšãåãããŸããã æ°ããèŠä»¶ãçºçãããšããã®é¢ä¿ã«ãã£ãŠéçºã劚ãããããã§ã«è€éãªããžãã¹ ããžãã¯ãããã«è€éã«ãªããŸãã ãã®åé¡ã解決ããã«ã¯ãã³ãŒãå ã®ã³ã³ããã¹ãéã®å¢çãèŠã€ããŠããã®éåãåé€ããå¿ èŠããããŸãã ããšãã°ãä¿éºã®å Žåãäžå€®éè¡å£åº§ã® 20 æ¡ã®çªå·ãšå£åº§éèšæ¥ã§ååã§ããå¯èœæ§ãååã«ãããŸãã
ãããã®å¶éãããã³ã³ããã¹ããäºãã«åé¢ããã¢ããªã·ã㯠ãœãªã¥ãŒã·ã§ã³ãããã€ã¯ããµãŒãã¹ãæœåºããããã»ã¹ãéå§ããããã«ãã¢ããªã±ãŒã·ã§ã³å ã«å€éš API ãäœæãããªã©ã®ã¢ãããŒãã䜿çšããŸããã äžéšã®ã¢ãžã¥ãŒã«ããã€ã¯ããµãŒãã¹ã«ãªããããã»ã¹å ã§äœããã®å€æŽãå¿ èŠã§ããããšãããã£ãŠããå Žåã¯ãå€éšåŒã³åºããéããŠãå¥ã®éå®ãããã³ã³ããã¹ãã«å±ããããžãã¯ãããã«åŒã³åºããŸãã ããšãã°ãREST ãŸã㯠WCF ã䜿çšããŸãã
ç§ãã¡ã¯ã忣ãã©ã³ã¶ã¯ã·ã§ã³ãå¿ èŠãšããã³ãŒããé¿ããªããšåŒ·ã決æããŸããã ç§ãã¡ã®å Žåããã®ã«ãŒã«ã«åŸãã®ã¯éåžžã«ç°¡åã§ããããšãããããŸããã ãããŸã§ã®ãšãããããŒã忣ãã©ã³ã¶ã¯ã·ã§ã³ãæ¬åœã«å¿ èŠãªç¶æ³ã«ã¯ééããŠããŸãããã¢ãžã¥ãŒã«éã®æçµçãªæŽåæ§ã¯ååã§ãã
å ·äœçãªäŸãèããŠã¿ãŸãããã ãªãŒã±ã¹ãã¬ãŒã¿ãŒãšããæŠå¿µããããŸããããã¯ããã¢ããªã±ãŒã·ã§ã³ãã®æ¬è³ªãåŠçãããã€ãã©ã€ã³ã§ãã 圌ã¯ãã¯ã©ã€ã¢ã³ããã¢ã«ãŠã³ããéè¡ã«ãŒããé çªã«äœæããŸãã ã¯ã©ã€ã¢ã³ããšã¢ã«ãŠã³ãã¯æ£åžžã«äœæãããããã«ãŒãã®äœæã倱æããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãæåãã¹ããŒã¿ã¹ã«ãªããããã«ãŒããäœæãããŠããŸãããã¹ããŒã¿ã¹ã®ãŸãŸã«ãªããŸãã å°æ¥çã«ã¯ãããã¯ã°ã©ãŠã³ã ã¢ã¯ãã£ããã£ããããååŸããŠçµäºããäºå®ã§ãã ãã®ã·ã¹ãã ã¯ãã°ããã®éäžè²«æ§ã®ãªãç¶æ ã«ãããŸããããç§ãã¡ã¯ããã«æŠãæºè¶³ããŠããŸãã
ããã§ããããŒã¿ã®äžéšãç¶ç¶çã«ä¿åããå¿ èŠãããç¶æ³ãçºçããå Žåãããã XNUMX ã€ã®ããã»ã¹ã§åŠçããããã«ãµãŒãã¹ã®æ¡åŒµãè¡ãå¯èœæ§ãé«ããªããŸãã
ãã€ã¯ããµãŒãã¹ãå²ãåœãŠãäŸãèããŠã¿ãŸãããã æ¯èŒçå®å šã«æ¬çªç°å¢ã«å°å ¥ããã«ã¯ã©ãããã°ããã§ãããã? ãã®äŸã§ã¯ãã·ã¹ãã ã®å¥ã®éšåãã€ãŸã絊äžãµãŒãã¹ ã¢ãžã¥ãŒã«ãããããã€ã¯ããµãŒãã¹ãäœæãããã³ãŒã ã»ã¯ã·ã§ã³ã® XNUMX ã€ã§ãã

ãŸãã¯ã³ãŒããæžãæããŠãã€ã¯ããµãŒãã¹ãäœæããŸãã åããªãã£ãç¹ãæ¹åããŠãããŸãã ã客æ§ããã®æ°ããããžãã¹èŠä»¶ãå®è£
ããŸãã UI ãš API Gateway ããã¯ãšã³ãã®éã®ãã³ãã«ã«è¿œå ããŠãé話ã®è»¢éãæäŸããŸãã

次ã«ããã®æ§æããªãªãŒã¹ããŠéçšããŸãããããã¯ãã€ãããç¶æ
ã§ãã ãŠãŒã¶ãŒã®ã»ãšãã©ã¯äŸç¶ãšããŠå€ãããžãã¹ ããã»ã¹ã䜿çšããŠããŸãã æ°èŠãŠãŒã¶ãŒåãã«ããã®ããã»ã¹ã«ã¯å«ãŸããŠããªãã¢ããªã·ã㯠ã¢ããªã±ãŒã·ã§ã³ã®æ°ããããŒãžã§ã³ãéçºããŠããŸãã å®éããã€ãããã®åœ¢ã§åäœããã¢ããªã¹ãšãã€ã¯ããµãŒãã¹ã倿°ãããŸãã

ãã€ããããæåãããšãæ°ããæ§æãå®éã«æ©èœããããšãããããæ¹çšåŒããå€ãã¢ããªã¹ãåé€ããŠãå€ããœãªã¥ãŒã·ã§ã³ã®ä»£ããã«æ°ããæ§æãæ®ãããšãã§ããŸãã

åèšãããšãã¢ããªã¹ã®ãœãŒã¹ ã³ãŒããåé¢ããããã«ãã»ãŒãã¹ãŠã®æ¢åã®æ¹æ³ã䜿çšããŸãã ãããã®ãã¹ãŠã䜿çšãããšãã¢ããªã±ãŒã·ã§ã³ã®äžéšã®ãµã€ãºãåæžããããããæ°ããã©ã€ãã©ãªã«å€æããŠãããè¯ããœãŒã¹ ã³ãŒããäœæã§ããŸãã
ããŒã¿ããŒã¹ã®æäœ
ããŒã¿ããŒã¹ã«ã¯çŸåšã®ã¹ããŒãã ãã§ãªããèç©ãããå±¥æŽããŒã¿ãå«ãŸããããããœãŒã¹ ã³ãŒããããåé¢ãã«ããã§ãã
ä»ã®å€ãã®ããŒã¿ããŒã¹ãšåæ§ãç§ãã¡ã®ããŒã¿ããŒã¹ã«ã¯ããµã€ãºã巚倧ã§ãããšãããã XNUMX ã€ã®éèŠãªæ¬ ç¹ããããŸããã ãã®ããŒã¿ããŒã¹ã¯ã¢ããªã¹ã®è€éãªããžãã¹ ããžãã¯ã«åŸã£ãŠèšèšãããŠãããããŸããŸãªéå®ãããã³ã³ããã¹ãã®ããŒãã«éã«é¢ä¿ãèç©ãããŠããŸãã
ç§ãã¡ã®å Žåããã¹ãŠã®åé¡ (å€§èŠæš¡ãªããŒã¿ããŒã¹ã倿°ã®ãªã¬ãŒã·ã§ã³ã·ãããå Žåã«ãã£ãŠã¯ããŒãã«éã®çè§£ã§ããªãå¢ç) ã«å ããŠãå€ãã®å€§èŠæš¡ãããžã§ã¯ãã§çºçããåé¡ãã€ãŸãå ±æããŒã¿ããŒã¹ ãã¿ãŒã³ã®äœ¿çšãçºçããŸããã ããŒã¿ã¯ãã¥ãŒãã¬ããªã±ãŒã·ã§ã³ãéããŠããŒãã«ããååŸããããã®ã¬ããªã±ãŒã·ã§ã³ãå¿ èŠãªä»ã®ã·ã¹ãã ã«éä¿¡ãããŸããã ãã®çµæãããŒãã«ã¯ã¢ã¯ãã£ãã«äœ¿çšãããŠãããããããŒãã«ãå¥ã®ã¹ããŒãã«ç§»åã§ããŸããã§ããã
åå²ã§ã¯ãã³ãŒãå ã®éãããã³ã³ããã¹ããžã®åå²èªäœã圹ã«ç«ã¡ãŸãã éåžžãããŒã¿ããŒã¹ ã¬ãã«ã§ããŒã¿ãã©ã®ããã«åå²ãããã«ã€ããŠãããªãè¯ãã¢ã€ãã¢ãåŸãããŸãã ã©ã®ããŒãã«ã XNUMX ã€ã®å¶éãããã³ã³ããã¹ãã«å±ããã©ã®ããŒãã«ãå¥ã®ã³ã³ããã¹ãã«å±ããããçè§£ããŸãã
ããŒã¿ããŒã¹ãåå²ããããã«ãæ¢åã®ããŒãã«ã®åå²ãšåŠçã䌎ãåå²ãšãã XNUMX ã€ã®ã°ããŒãã«ãªæ¹æ³ãé©çšããŸããã
ããŒã¿æ§é ãè¯å¥œã§ããžãã¹èŠä»¶ãæºãããå šå¡ãããã«æºè¶³ããŠããå Žåã¯ãæ¢åã®ããŒãã«ãåé¢ããããšããå§ãããŸãã ãã®å Žåãæ¢åã®ããŒãã«ãå¥ã®ã¹ããŒãã«å²ãåœãŠãããšãã§ããŸãã
ããžãã¹ ã¢ãã«ã倧ããå€åããããŒãã«ã§ã¯ãŸã£ããæºè¶³ã§ããªããªã£ãå Žåã«ã¯ãåŠçã䌎ãåå²ãå¿ èŠã«ãªããŸãã
æ¢åã®ããŒãã«ã®åé¢ã äœãåé¢ããã®ããæ±ºããå¿ èŠããããŸãã ãã®ç¥èããªããã°äœãæ©èœãããã³ãŒãå ã®éãããã³ã³ããã¹ããåé¢ããããšãããã§åœ¹ã«ç«ã¡ãŸãã äžè¬ã«ããœãŒã¹ ã³ãŒãå ã®ã³ã³ããã¹ãã®å¢çãçè§£ã§ããã°ãã©ã®ããŒãã«ãåé¢ã®ãªã¹ãã«å«ããã¹ãããæç¢ºã«ãªããŸãã
XNUMX ã€ã®ã¢ããªã¹ ã¢ãžã¥ãŒã«ãåãããŒã¿ããŒã¹ãšå¯Ÿè©±ãããœãªã¥ãŒã·ã§ã³ããããšæ³åããŠãã ããã XNUMX ã€ã®ã¢ãžã¥ãŒã«ã ããåå²ãããããŒãã«ã®ã»ã¯ã·ã§ã³ãšå¯Ÿè©±ãããã XNUMX ã€ã®ã¢ãžã¥ãŒã«ã API ãä»ããŠå¯Ÿè©±ãéå§ããããšã確èªããå¿ èŠããããŸãã ãŸãã¯APIçµç±ã§é²é³ã ããè¡ãã°ååã§ãã ããã¯ããã€ã¯ããµãŒãã¹ã®ç¬ç«æ§ã«ã€ããŠè©±ãããã«å¿ èŠãªæ¡ä»¶ã§ãã 倧ããªåé¡ããªãéããæ¢èªãªã³ã¯ã¯ãã®ãŸãŸã§ãæ§ããŸããã

次ã®ã¹ããããšããŠãåŠçã®æç¡ã«ããããããåãå€ãå¯èœãªããŒãã«ãæäœããã³ãŒãã®ã»ã¯ã·ã§ã³ãå¥ã®ãã€ã¯ããµãŒãã¹ã«åé¢ããå¥ã®ããã»ã¹ã§ããã³ã³ãããŒã§å®è¡ããããšãã§ããŸãã ããã¯ãã¢ããªã¹ ããŒã¿ããŒã¹ãšããã«çŽæ¥é¢ä¿ããªãããŒãã«ãžã®æ¥ç¶ãåããå¥åã®ãµãŒãã¹ã«ãªããŸãã ã¢ããªã¹ã¯ãèªã¿åãã®ããã«åãå€ãå¯èœãªéšåãšäŸç¶ãšããŠçžäºäœçšããŸãã

åŸã§ããã®æ¥ç¶ãåé€ããŸããã€ãŸããã¢ããªã·ã㯠ã¢ããªã±ãŒã·ã§ã³ ããŒã¿ã®èªã¿åããããã¿ãããããããŒãã«ãã API ã«è»¢éããŸãã

次ã«ãæ°ãããã€ã¯ããµãŒãã¹ã®ã¿ãåäœããå
±éããŒã¿ããŒã¹ããããŒãã«ãéžæããŸãã ããŒãã«ãå¥ã®ã¹ããŒãããŸãã¯å¥ã®ç©çããŒã¿ããŒã¹ã«ç§»åããããšãã§ããŸãã ãã€ã¯ããµãŒãã¹ãšã¢ããªã¹ ããŒã¿ããŒã¹ã®éã«ã¯èªã¿åãçšã®æ¥ç¶ãæ®ããŸããããã®æ§æã§ã¯é·æéåç¶ã§ãããããå¿é
ããå¿
èŠã¯ãããŸããã

æåŸã®ã¹ãããã¯ããã¹ãŠã®ãªã³ã¯ãå®å
šã«åé€ããããšã§ãã ãã®å Žåãã¡ã€ã³ ããŒã¿ããŒã¹ããããŒã¿ãç§»è¡ããå¿
èŠãããå ŽåããããŸãã å Žåã«ãã£ãŠã¯ãå€éšã·ã¹ãã ããè€è£œãããäžéšã®ããŒã¿ãŸãã¯ãã£ã¬ã¯ããªãè€æ°ã®ããŒã¿ããŒã¹ã§åå©çšãããããšããããŸãã æã
ããããããŸãã

å å·¥éšéã ãã®æ¹æ³ã¯æåã®æ¹æ³ãšéåžžã«ãã䌌ãŠããŸãããæé ãéã§ããç¹ãç°ãªããŸãã æ°ããããŒã¿ããŒã¹ãšãAPI ãä»ããŠã¢ããªã¹ãšå¯Ÿè©±ããæ°ãããã€ã¯ããµãŒãã¹ãããã«å®æããŸããã ãã ããããã«ãããå°æ¥åé€ããå¿
èŠãããããŒã¿ããŒã¹ ããŒãã«ã®ã»ãããæ®ããŸãã äžèŠã«ãªããŸããã®ã§ãæ°ããã¢ãã«ã«äº€æããŸããã

ãã®èšç»ãæ©èœããããã«ã¯ãããããç§»è¡æéãå¿
èŠã«ãªãã§ãããã
次ã«ãèããããã¢ãããŒã㯠XNUMX ã€ãããŸãã
æåã®: æ°ããããŒã¿ããŒã¹ãšå€ãããŒã¿ããŒã¹ã®ãã¹ãŠã®ããŒã¿ãè€è£œããŸãã ãã®å ŽåãããŒã¿ã®åé·æ§ã¯ãããŸãããåæã«åé¡ãçºçããå¯èœæ§ããããŸãã ãã ããXNUMX ã€ã®ç°ãªãã¯ã©ã€ã¢ã³ããåãå ¥ããããšãã§ããŸãã XNUMX ã€ã¯æ°ããããŒãžã§ã³ã§åäœãããã XNUMX ã€ã¯å€ãããŒãžã§ã³ã§åäœããŸãã
2çªç®ã®: äœããã®ããžãã¹å±æ§ã«åŸã£ãŠããŒã¿ãåå²ããŸãã ããšãã°ãã·ã¹ãã å ã« 5 ã€ã®è£œåãããããããã¯å€ãããŒã¿ããŒã¹ã«ä¿åãããŠããŸããã XNUMX çªç®ã¯ãæ°ããããžãã¹ ã¿ã¹ã¯ã®ãã¬ãŒã ã¯ãŒã¯å ã§ãæ°ããããŒã¿ããŒã¹ã«é 眮ããŸãã ãã ãããã®ããŒã¿ãåæããã¯ã©ã€ã¢ã³ãã«ã©ãã«äœãåãã¹ããã瀺ã API ã²ãŒããŠã§ã€ãå¿ èŠã§ãã
ã©ã¡ãã®ã¢ãããŒããæ©èœããŸãã®ã§ãç¶æ³ã«å¿ããŠéžæããŠãã ããã
ãã¹ãŠãåäœããããšã確èªããããå€ãããŒã¿ããŒã¹æ§é ã§åäœããã¢ããªã¹ã®éšåãç¡å¹ã«ããããšãã§ããŸãã

æåŸã®ã¹ãããã¯ãå€ãããŒã¿æ§é ãåé€ããããšã§ãã

ãŸãšãããšãããŒã¿ããŒã¹ã«ã¯åé¡ããããšèšããŸãããœãŒã¹ ã³ãŒãã«æ¯ã¹ãŠããŒã¿ããŒã¹ãæäœããã®ã¯é£ãããåé¢ããã®ã¯ããå°é£ã§ãããããã¯å¯èœã§ããããããã¹ãã§ãã ãããéåžžã«å®å
šã«å®è¡ã§ããæ¹æ³ãããã€ãèŠã€ããŸãããããœãŒã¹ ã³ãŒããããããŒã¿ã®ã»ããééããç¯ããããã®ã§ãã
ãœãŒã¹ã³ãŒãã®æäœ
ããã¯ãã¢ããªã·ã㯠ãããžã§ã¯ãã®åæãéå§ãããšãã®ãœãŒã¹ ã³ãŒãå³ã®æ§åã§ãã

æ¡ä»¶ä»ãã§10ã€ã®å±€ã«åããããšãã§ããŸãã ããã¯ãå®è¡ã¢ãžã¥ãŒã«ããã©ã°ã€ã³ããµãŒãã¹ãããã³åã
ã®ã¢ã¯ãã£ããã£ã®ã¬ã€ã€ãŒã§ãã å®éããããã¯ã¢ããªã·ã㯠ãœãªã¥ãŒã·ã§ã³å
ã®ãšã³ã㪠ãã€ã³ãã§ããã ãããã¯ãã¹ãŠå
±éå±€ã§ãã£ãããšåºå®ãããŠããŸããã ããã«ã¯ããµãŒãã¹ãšå€ãã®é¢ä¿éã§å
±æãããããžãã¹ ããžãã¯ããããŸããã åãµãŒãã¹ãšãã©ã°ã€ã³ã¯ããã®ãµã€ãºãšéçºè
ã®è¯å¿ã«å¿ããŠãæå€§ XNUMX å以äžã®å
±éã¢ã»ã³ããªã䜿çšããŸããã
幞éã ã£ãã®ã¯ãåå¥ã«äœ¿çšã§ããã€ã³ãã©ã¹ãã©ã¯ã㣠ã©ã€ãã©ãªããã£ãããšã§ãã
å Žåã«ãã£ãŠã¯ãäžéšã® Common ãªããžã§ã¯ããå®éã«ã¯ãã®ã¬ã€ã€ãŒã«å±ããŠããããã€ã³ãã©ã¹ãã©ã¯ã㣠ã©ã€ãã©ãªã§ãããšããç¶æ³ãçºçããããšããããŸããã ããã¯ååã倿Žããããšã§è§£æ±ºãããŸããã
ã³ã³ããã¹ãã®å¢çãæå€§ã®æžå¿µäºé ã§ããã ããŸã㟠3 ïœ 4 ã€ã®ã³ã³ããã¹ãã XNUMX ã€ã®å ±éã¢ã»ã³ããªå ã«æ··åšããåãããžãã¹æ©èœå ã§çžäºã«äœ¿çšãããŠããŸããã ã©ãã§ãã©ã®å¢çã«æ²¿ã£ãŠåå²ã§ããã®ãããããŠãã®åå²ããœãŒã¹ ã³ãŒã ã¢ã»ã³ããªã«ãããã³ã°ããŠæ¬¡ã«äœããã¹ãããçè§£ããå¿ èŠããããŸããã
ã³ãŒãåââå²ããã»ã¹ã«é¢ããŠããã€ãã®ã«ãŒã«ãçå®ããŸããã
æåã®: ãµãŒãã¹ãã¢ã¯ãã£ããã£ããã©ã°ã€ã³éã§ããžãã¹ ããžãã¯ãå ±æããããªããªããŸããã ç§ãã¡ã¯ããã€ã¯ããµãŒãã¹å ã§ããžãã¹ ããžãã¯ãç¬ç«ãããããšèããŠããŸããã äžæ¹ããã€ã¯ããµãŒãã¹ã¯ãçæ³çã«ã¯ãå®å šã«ç¬ç«ããŠååšãããµãŒãã¹ãšããŠèªèãããŸãã ãã®ã¢ãããŒãã¯ãããããç¡é§ããããå®çŸãé£ãããšæããŸãããªããªããããšãã°ãC# ãµãŒãã¹ã¯ã©ã®ã¿ã¡æšæºã©ã€ãã©ãªã«ãã£ãŠæ¥ç¶ãããããã§ãã ç§ãã¡ã®ã·ã¹ãã 㯠C# ã§æžãããŠãããä»ã®ãã¯ãããžãŒã¯ãŸã 䜿çšãããŠããŸããã ãããã£ãŠãäžè¬çãªæè¡ãã«ãã䜿çšããäœè£ããããšå€æããŸããã éèŠãªããšã¯ãããžãã¹ ããžãã¯ã®æçãå«ãŸããŠããªãããšã§ãã 䜿çšããŠãã ORM ã«åªããã©ãããŒãããå ŽåãããããµãŒãã¹éã§ã³ããŒããã®ã¯éåžžã«ã³ã¹ããããããŸãã
ç§ãã¡ã®ããŒã ã¯ãã¡ã€ã³æåã®èšèšã®ãã¡ã³ãªã®ã§ããªããªã³ ã¢ãŒããã¯ãã£ã¯ç§ãã¡ã«ãŽã£ããã§ããã ç§ãã¡ã®ãµãŒãã¹ã®åºç€ã¯ããŒã¿ ã¢ã¯ã»ã¹å±€ã§ã¯ãªããããžãã¹ ããžãã¯ã®ã¿ãå«ã¿ãã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ãªã³ã¯ãå«ãŸããŠããªããã¡ã€ã³ ããžãã¯ãåããã¢ã»ã³ããªã§ããã åæã«ããã¡ã€ã³ ã¢ã»ã³ããªãç¬èªã«èª¿æŽããŠããã¬ãŒã ã¯ãŒã¯ã«é¢é£ããåé¡ã解決ã§ããŸãã
ãã®æ®µéã§ãæåã®é倧ãªåé¡ã«ééããŸããã ãµãŒãã¹ã¯ XNUMX ã€ã®ãã¡ã€ã³ ã¢ã»ã³ããªãåç §ããå¿ èŠããããããžãã¯ãç¬ç«ããããã£ãã®ã§ãããããã§ã¯ DRY ååãéªéãããŸããã éçºè ã¯éè€ãé¿ããããã«é£æ¥ããã¢ã»ã³ããªã®ã¯ã©ã¹ãåå©çšããããšèãããã®çµæããã¡ã€ã³ã¯åã³çžäºã«éä¿¡ããããã«ãªããŸããã ç§ãã¡ã¯çµæãåæããããããåé¡ã¯ãœãŒã¹ã³ãŒããªããžããªããã€ã¹ã®é åã«ããããšå€æããŸããã ãã¹ãŠã®ãœãŒã¹ ã³ãŒããå«ãå€§èŠæš¡ãªãªããžããªããããŸããã ãããžã§ã¯ãå šäœã®ãœãªã¥ãŒã·ã§ã³ãããŒã«ã« ãã·ã³äžã«æ§ç¯ããã®ã¯éåžžã«å°é£ã§ããã ãããã£ãŠããããžã§ã¯ãã®äžéšã«å¯ŸããŠåå¥ã®å°ããªãœãªã¥ãŒã·ã§ã³ãäœæããããããã«å ±éãŸãã¯ãã¡ã€ã³ ã¢ã»ã³ããªã远å ããŠåå©çšããããšãçŠãã人ã¯ããŸããã§ããã ãããå®çŸã§ããªãã£ãå¯äžã®ããŒã«ã¯ã¬ãã¥ãŒ ã³ãŒãã§ããã ããããæã 圌ã¯å€±æããããšããããŸããã
ãã®åŸãåå¥ã®ãªããžããªãæã€ã¢ãã«ãžã®ç§»è¡ãéå§ããŸããã ããžãã¹ ããžãã¯ããµãŒãã¹ãããµãŒãã¹ãžæµããããšã¯ãªããªãããã¡ã€ã³ã¯å®éã«ç¬ç«ããŸããã å¢çä»ãã³ã³ããã¹ããããæç€ºçã«ãµããŒããããŸãã ã€ã³ãã©ã¹ãã©ã¯ã㣠ã©ã€ãã©ãªãåå©çšããã«ã¯ã©ãããã°ããã§ãããã? ããããå¥ã®ãªããžããªã«åé¢ããNuget ããã±ãŒãžã«å ¥ã㊠Artifactory ã«å ¥ããŸããã 倿Žãå ãããšãã¢ã»ã³ããªãšå ¬éãèªåçã«è¡ãããŸãã

ç§ãã¡ã®ãµãŒãã¹ã¯ãå€éšã€ã³ãã©ã¹ãã©ã¯ã㣠ããã±ãŒãžãšåãããã«å
éšã€ã³ãã©ã¹ãã©ã¯ã㣠ããã±ãŒãžãåç
§ããããã«ãªããŸããã Nuget ããå€éšã©ã€ãã©ãªãããŠã³ããŒãããŸãã ãããã®ããã±ãŒãžãé
眮ãã Artifactory ã§äœæ¥ããããã«ãXNUMX ã€ã®ããã±ãŒãž ãããŒãžã£ãŒã䜿çšããŸããã å°èŠæš¡ãªãªããžããªã§ã¯ãNuget ã䜿çšããŸããã è€æ°ã®ãµãŒãã¹ãå«ããªããžããªã§ã¯ãã¢ãžã¥ãŒã«éã®ããŒãžã§ã³ã®äžè²«æ§ãé«ãããã±ããã䜿çšããŸããã

ãããã£ãŠããœãŒã¹ã³ãŒãã«åãçµã¿ãã¢ãŒããã¯ãã£ããããã«å€æŽãããªããžããªãåé¢ããããšã§ããµãŒãã¹ã®ç¬ç«æ§ãé«ããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®åé¡
ãã€ã¯ããµãŒãã¹ãžã®ç§»è¡ã®æ¬ ç¹ã®ã»ãšãã©ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã«é¢ä¿ããŠããŸãã èªåå±éãå¿
èŠã«ãªããã€ã³ãã©ã¹ãã©ã¯ãã£ãå®è¡ããã«ã¯æ°ããã©ã€ãã©ãªãå¿
èŠã«ãªããŸãã
ç°å¢ãžã®æåã€ã³ã¹ããŒã«
æåã«ããœãªã¥ãŒã·ã§ã³ãç°å¢ã«æåã§ã€ã³ã¹ããŒã«ããŸããã ãã®ããã»ã¹ãèªååããããã«ãCI/CD ãã€ãã©ã€ã³ãäœæããŸããã ããžãã¹ ããã»ã¹ã®èгç¹ããã¯ãç¶ç¶çãããã€ã¡ã³ããäŸç¶ãšããŠåãå ¥ããããªããããç¶ç¶çããªããªãŒ ããã»ã¹ãéžæããŸããã ãããã£ãŠãæäœãžã®éä¿¡ã¯ãã¿ã³ã«ãã£ãŠå®è¡ããããã¹ãã®ããã«èªåçã«å®è¡ãããŸãã

ãœãŒã¹ ã¹ãã¬ãŒãžã«ã¯ AtlassianãBitbucketããã«ãã«ã¯ Bamboo ã䜿çšããŠããŸãã åã C# ã§ãããããç§ãã¡ã¯ Cake ã§ãã«ã ã¹ã¯ãªãããæžãããšã奜ã¿ãŸãã æ¢è£œã®ããã±ãŒãžã Artifactory ã«æäŸãããAnsible ãèªåçã«ãã¹ã ãµãŒããŒã«ã¢ã¯ã»ã¹ããããã«ãã¹ãã§ããããã«ãªããŸãã

åå¥ã®ãã®ã³ã°
ãã€ãŠãã¢ããªã¹ã®ã¢ã€ãã¢ã® XNUMX ã€ã¯ãå
±æãã°ãæäŸããããšã§ããã ãŸãããã£ã¹ã¯äžã«ããåã
ã®ãã°ãã©ãåŠçããããçè§£ããå¿
èŠããããŸããã ãã°ã¯ããã¹ã ãã¡ã€ã«ã«æžã蟌ãŸããŸãã æšæºã® ELK ã¹ã¿ãã¯ã䜿çšããããšã«ããŸããã ç§ãã¡ã¯ãããã€ããŒãéã㊠ELK ã«çŽæ¥æžã蟌ã¿ãŸããã§ããããããã¹ã ãã°ã宿ããããã¬ãŒã¹ ID ãèå¥åãšããŠæžã蟌ã¿ããããã®ãã°ãè§£æã§ããããã«ãµãŒãã¹åã远å ããããšã«ããŸããã

Filebeatã䜿çšãããšããã°ãåéã§ããŸãã ãµãŒããŒã倿ããKibanaã䜿ã£ãŠUIã§ã¯ãšãªãäœæãããµãŒãã¹éã§åŒã³åºããã©ã®ããã«ã«ãŒãã£ã³ã°ããããã確èªããŸãããã¬ãŒã¹IDã¯ããã®éã«éåžžã«åœ¹ç«ã¡ãŸãã
é¢é£ãµãŒãã¹ã®ãã¹ããšãããã°
åœåãç§ãã¡ã¯éçºäžã®ãµãŒãã¹ããããã°ããæ¹æ³ãå®å
šã«çè§£ããŠããŸããã§ããã ã¢ããªã¹ã§ã¯ãã¹ãŠãç°¡åã§ãããŒã«ã« ãã·ã³ã§å®è¡ããŸããã æåã¯ãã€ã¯ããµãŒãã¹ã§ãåãããšãããããšããŸããããå Žåã«ãã£ãŠã¯ãXNUMX ã€ã®ãã€ã¯ããµãŒãã¹ãå®å
šã«èµ·åããããã«ãä»ã®ããã€ãã®ãã€ã¯ããµãŒãã¹ãèµ·åããå¿
èŠããããããã¯äžäŸ¿ã§ãã ãããã°ããããµãŒãã¹ã ããããŒã«ã« ãã·ã³ã«æ®ãå Žåã¯ãã¢ãã«ã«ç§»è¡ããå¿
èŠãããããšãããããŸããã æ®ãã®ãµãŒãã¹ã¯ãprod ã®æ§æãšäžèŽãããµãŒããŒãã䜿çšãããŸãã ãããã°åŸããã¹ãäžã«ãã¿ã¹ã¯ããšã«ã倿ŽããããµãŒãã¹ã®ã¿ããã¹ã ãµãŒããŒã«çºè¡ãããŸãã ãããã£ãŠããã®ãœãªã¥ãŒã·ã§ã³ã¯ãå°æ¥è²©å£²ããã圢åŒã§ãã¹ããããŸãã
ãµãŒãã¹ã®å®çšŒåããŒãžã§ã³ã®ã¿ãã€ã³ã¹ããŒã«ãããŠãããµãŒããŒããããŸãã ãããã®ãµãŒããŒã¯ãã€ã³ã·ãã³ããå°å ¥åã®é ä¿¡ãã§ãã¯ãããã³å éšãã¬ãŒãã³ã°ã«å¿ èŠã§ãã
人æ°ã® Specflow ã©ã€ãã©ãªã䜿çšããèªåãã¹ã ããã»ã¹ã远å ããŸããã ãã¹ãã¯ãAnsible ãããããã€ããããšããã«ãNUnit ã«ãã£ãŠèªåçã«å®è¡ãããŸãã ã¿ã¹ã¯ ã«ãã¬ããžãå®å šã«èªååãããŠããå Žåãæåãã¹ãã¯å¿ èŠãããŸããã ãã ãã远å ã®æåãã¹ããå¿ èŠãªå ŽåããããŸãã ç¹å®ã®åé¡ã«å¯ŸããŠã©ã®ãã¹ããå®è¡ããããæ±ºå®ããã«ã¯ãJira ã®ã¿ã°ã䜿çšããŸãã
ããã«ãè² è·ãã¹ãã®å¿ èŠæ§ãé«ãŸã£ãŠããŸããã以åã¯ãŸããªå Žåã«ã®ã¿å®è¡ãããŠããŸããã ãã¹ãã®å®è¡ã«ã¯ JMeterããã¹ãã®ä¿åã«ã¯ InfluxDBãããã»ã¹ã®ããããã«ã¯ Grafana ã䜿çšããŸãã
ç§ãã¡ã¯äœãéæã§ããã®ã§ãããã?
ãŸããããªãªãŒã¹ããšããæŠå¿µããªãããŸããã ãã®å·šå€§ãªãªãªãŒã¹ãéçšç°å¢ã«ãããã€ããããšã1,5 ãæã«ããã巚倧ãªãªãªãŒã¹ããªããªããããžãã¹ ããã»ã¹ããã°ããäžæãããŸããã çŸåšã§ã¯ãæ¿èªåŸã«éçšãéå§ãããããããµãŒãã¹ãã°ã«ãŒãåããŠå¹³å XNUMX æ¥ããšã«ãããã€ããŠããŸãã
ç§ãã¡ã®ã·ã¹ãã ã«ã¯èŽåœçãªã¯ã©ãã·ã¥ã¯ãããŸããã ãã°ã®ãããã€ã¯ããµãŒãã¹ããªãªãŒã¹ããå Žåãããã«é¢é£ä»ããããæ©èœã¯å£ããŸãããä»ã®ãã¹ãŠã®æ©èœã¯åœ±é¿ãåããŸããã ããã«ããããŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ãå€§å¹ ã«åäžããŸãã
å°å ¥ã¹ããŒã ãå¶åŸ¡ã§ããŸãã å¿ èŠã«å¿ããŠããµãŒãã¹ã®ã°ã«ãŒãããœãªã¥ãŒã·ã§ã³ã®æ®ãã®éšåããåå¥ã«åé¢ã§ããŸãã
ããã«ãå€§èŠæš¡ãªæ¹ååŸ ã¡ã®åé¡ãå€§å¹ ã«è»œæžããŸããã åœç€Ÿã«ã¯ãäžéšã®ãµãŒãã¹ãç¬ç«ããŠæ±ãåå¥ã®è£œåããŒã ããããŸãã ããã§ã¹ã¯ã©ã ããã»ã¹ã圹ã«ç«ã¡ãŸãã ç¹å®ã®ããŒã ã«ã¯ãã¿ã¹ã¯ãå²ãåœãŠãå¥ã®è£œåææè ãããå ŽåããããŸãã
ãŸãšã
- ãã€ã¯ããµãŒãã¹ã¯ãè€éãªã·ã¹ãã ãåè§£ããã®ã«é©ããŠããŸãã ãã®éçšã§ãç§ãã¡ã¯ã·ã¹ãã ã®äžã«äœãããããéå®ãããã³ã³ããã¹ããšã¯äœãããã®å¢çã¯ã©ãã«ããã®ããçè§£ãå§ããŸãã ããã«ãããæ¹åãã¢ãžã¥ãŒã«ã«é©åã«é åžããã³ãŒãã®é£èªåãé²ãããšãã§ããŸãã
- ãã€ã¯ããµãŒãã¹ã¯çµç¹ã«ã¡ãªããããããããŸãã å€ãã®å Žåããããã¯åã«ã¢ãŒããã¯ãã£ãšããŠåç §ãããŸãããã©ã®ãããªã¢ãŒããã¯ãã£ãããžãã¹ ããŒãºã解決ããããã«å¿ èŠã§ãããããèªäœã§ã¯ãããŸããã ãããã£ãŠãçŸåšã¹ã¯ã©ã ãéåžžã«äººæ°ãããããšãèãããšããã€ã¯ããµãŒãã¹ã¯å°èŠæš¡ãªããŒã ã§åé¡ã解決ããã®ã«é©ããŠãããšèšããŸãã
- åé¢ã¯å埩çãªããã»ã¹ã§ãã ã¢ããªã±ãŒã·ã§ã³ãåã«ãã€ã¯ããµãŒãã¹ã«åå²ããããšã¯ã§ããŸããã çµæãšããŠåŸããã補åã¯ãå®çšçã§ã¯ãªãå¯èœæ§ããããŸãã ãã€ã¯ããµãŒãã¹ã匷調ããå Žåãæ¢åã®ã¬ã¬ã·ãŒãæžãçŽãããšãã€ãŸããæ©èœãšé床ã®ç¹ã§ããžãã¹ã®ããŒãºãããããæºããã奜ã¿ã®ã³ãŒãã«å€ããããšãæçã§ãã
ã¡ãã£ãšããæ³šæç¹: ãã€ã¯ããµãŒãã¹ãžã®ç§»è¡ã«ã¯ããªãã®ã³ã¹ããããããŸãã ã€ã³ãã©ã®åé¡ã解決ããã«ã¯é·ãæéãããããŸããã ãããã£ãŠãç¹å®ã®ã¹ã±ãŒãªã³ã°ãå¿ èŠãšããªãå°èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠããŠãããŒã ã®æ³šç®ãšæéãäºã倿°ã®é¡§å®¢ãããªãå Žåããããããã€ã¯ããµãŒãã¹ã¯ä»æ¥å¿ èŠãªãã®ã§ã¯ãªãã§ãããã ããªãé«äŸ¡ã§ãã ãã€ã¯ããµãŒãã¹ã§ããã»ã¹ãéå§ãããšãåããããžã§ã¯ããã¢ããªã¹ã®éçºããéå§ããå Žåããããæåã®ã³ã¹ããé«ããªããŸãã
PS ããææ çãªç©èª (ãããŠããªãå人ã«å¯Ÿãããã®ã§ãããã®ããã«) - by .
ã¬ããŒãã®å®å šçã¯ãã¡ãã§ãã
åºæïŒ habr.com
