Webã³ã³ããŒãã³ãã©ã€ãã©ãªã®é åžãšããŒãžã§ã³ç®¡çã«é¢ããå æ¬çãªã¬ã€ããããã±ãŒãžã³ã°ãå ¬éãã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ãã°ããŒãã«éçºããŒã åãã®ãã¹ããã©ã¯ãã£ã¹ãç¶²çŸ ããŸãã
Webã³ã³ããŒãã³ãã©ã€ãã©ãªéçºïŒé åžãšããŒãžã§ã³ç®¡çæŠç¥
Webã³ã³ããŒãã³ãã¯ãããŸããŸãªãã¬ãŒã ã¯ãŒã¯ããããžã§ã¯ãã§å©çšã§ããåå©çšå¯èœãªUIèŠçŽ ãäœæããããã®åŒ·åãªææ®µã§ããããããåªããWebã³ã³ããŒãã³ãã©ã€ãã©ãªãæ§ç¯ããããšã¯ãæŠãã®ååã«ãããŸãããã³ã³ããŒãã³ããäžçäžã®éçºè ã«ãšã£ãŠã¢ã¯ã»ã¹ãããããä¿å®å¯èœã§ãä¿¡é Œã§ãããã®ã§ããããšãä¿èšŒããããã«ã¯ãé©åãªé åžãšããŒãžã§ã³ç®¡çæŠç¥ãäžå¯æ¬ ã§ãã
é©åãªé åžãšããŒãžã§ã³ç®¡çãéèŠãªçç±
çŽ æŽãããWebã³ã³ããŒãã³ãã®ã»ãããæ§ç¯ãããã®ã®ãçµ±åãã¢ããã°ã¬ãŒããå°é£ãªæ¹æ³ã§é åžããŠããŸãç¶æ³ãæ³åããŠã¿ãŠãã ãããéçºè ã¯ããã®æéããããããããåæ§ã®ã³ã³ããŒãã³ããåå®è£ ããããšãéžã¶ãããããŸããããããã¯ãé©åãªããŒãžã§ã³ç®¡çãªãã«äºææ§ã®ãªã倿ŽïŒç Žå£ç倿ŽïŒãå°å ¥ããã©ã€ãã©ãªã«äŸåããæ¢åã®ã¢ããªã±ãŒã·ã§ã³ã§åºç¯å²ãªãšã©ãŒãåŒãèµ·ããã·ããªãªãèããŠã¿ãŠãã ããã
广çãªé åžãšããŒãžã§ã³ç®¡çæŠç¥ã¯ã以äžã®ç¹ã§äžå¯æ¬ ã§ãïŒ
- 䜿ããããïŒ éçºè ããããžã§ã¯ãã«ã³ã³ããŒãã³ããç°¡åã«ã€ã³ã¹ããŒã«ãã€ã³ããŒãã䜿çšã§ããããã«ããŸãã
- ä¿å®æ§ïŒ æ¢åã®å®è£ ãå£ãããšãªããã³ã³ããŒãã³ããæŽæ°ããã³æ¹åã§ããããã«ããŸãã
- ã³ã©ãã¬ãŒã·ã§ã³ïŒ ç¹ã«åæ£ããããŒã ã«ãããŠãéçºè éã®ããŒã ã¯ãŒã¯ãšã³ãŒãå ±æãä¿é²ããŸãã
- é·æçãªå®å®æ§ïŒ ã³ã³ããŒãã³ãã©ã€ãã©ãªã®å¯¿åœãšä¿¡é Œæ§ã確ä¿ããŸãã
é åžã®ããã®Webã³ã³ããŒãã³ãã®ããã±ãŒãžã³ã°
Webã³ã³ããŒãã³ããé åžããæåã®ã¹ãããã¯ãç°¡åã«å©çšã§ããæ¹æ³ã§ããã±ãŒãžåããããšã§ããäžè¬çãªã¢ãããŒãã«ã¯ãnpmãyarnãªã©ã®ããã±ãŒãžãããŒãžã£ãŒã䜿çšããããšãå«ãŸããŸãã
npmã䜿çšããé åž
npmïŒNode Package ManagerïŒã¯ãJavaScriptãããžã§ã¯ãã§æãåºã䜿çšãããŠããããã±ãŒãžãããŒãžã£ãŒã§ãããWebã³ã³ããŒãã³ããé åžããããã®åªããéžæè¢ã§ãã以äžã«ãã®ããã»ã¹ã®æŠèŠã瀺ããŸãïŒ
- `package.json`ãã¡ã€ã«ã®äœæïŒ ãã®ãã¡ã€ã«ã«ã¯ãã©ã€ãã©ãªã®ååãããŒãžã§ã³ã説æããšã³ããªãã€ã³ããäŸåé¢ä¿ãªã©ãã³ã³ããŒãã³ãã©ã€ãã©ãªã«é¢ããã¡ã¿ããŒã¿ãå«ãŸããŸãã`npm init`ã³ãã³ãã䜿çšããŠäœæã§ããŸãã
- ãããžã§ã¯ãã®æ§é åïŒ ã³ã³ããŒãã³ããã¡ã€ã«ãè«ççãªãã£ã¬ã¯ããªæ§é ã«æŽçããŸããäžè¬çãªãã¿ãŒã³ã¯ããœãŒã¹ã³ãŒãçšã®`src`ãã£ã¬ã¯ããªãšãã³ã³ãã€ã«ããã³æå°åãããããŒãžã§ã³çšã®`dist`ãã£ã¬ã¯ããªãæã€ããšã§ãã
- ã³ãŒãã®ãã³ãã«ãšãã©ã³ã¹ãã€ã«ïŒ WebpackãRollupãParcelãªã©ã®ãã³ãã©ãŒã䜿çšããŠãã³ã³ããŒãã³ããã¡ã€ã«ãåäžã®JavaScriptãã¡ã€ã«ïŒãŸãã¯å¿ èŠã«å¿ããŠè€æ°ãã¡ã€ã«ïŒã«ãã³ãã«ããŸããBabelã䜿çšããŠã³ãŒãããã©ã³ã¹ãã€ã«ããå€ããã©ãŠã¶ãšã®äºææ§ã確ä¿ããŸãã
- ãšã³ããªãã€ã³ãã®æå®ïŒ `package.json`ãã¡ã€ã«ã§ã`main`ãã£ãŒã«ãã䜿çšããŠã³ã³ããŒãã³ãã©ã€ãã©ãªã®ã¡ã€ã³ãšã³ããªãã€ã³ããæå®ããŸããããã¯éåžžããã³ãã«ãããJavaScriptãã¡ã€ã«ãžã®ãã¹ã§ãã
- ã¢ãžã¥ãŒã«ããã³ãã©ãŠã¶ãšã³ããªã®æ€èšïŒ æé©ãªããã©ãŒãã³ã¹ãåŸãããã«ãææ°ã®ã¢ãžã¥ãŒã«ãã³ãã©ãŒïŒ`module`ïŒããã³ãã©ãŠã¶ïŒ`browser`ïŒçšã«åå¥ã®ãšã³ããªãæäŸããŸãã
- é¢é£ãã¡ã€ã«ã®å«å ¥ïŒ `package.json`ã®`files`ãã£ãŒã«ãã䜿çšããŠãå ¬éãããããã±ãŒãžã«å«ããã¹ããã¡ã€ã«ãšãã£ã¬ã¯ããªãæå®ããŸãã
- ããã¥ã¡ã³ãã®äœæïŒ 䜿çšäŸãAPIãªãã¡ã¬ã³ã¹ãå«ããã³ã³ããŒãã³ãã®ããã®æç¢ºã§å æ¬çãªããã¥ã¡ã³ããäœæããŸãããããžã§ã¯ãã«`README.md`ãã¡ã€ã«ãå«ããŸãã
- npmãžã®å ¬éïŒ npmã¢ã«ãŠã³ããäœæãã`npm publish`ã³ãã³ãã䜿çšããŠããã±ãŒãžãnpmã¬ãžã¹ããªã«å ¬éããŸãã
`package.json`ãã¡ã€ã«ã®äŸïŒ
{
"name": "my-web-component-library",
"version": "1.0.0",
"description": "åå©çšå¯èœãªWebã³ã³ããŒãã³ãã®ã³ã¬ã¯ã·ã§ã³",
"main": "dist/my-web-component-library.js",
"module": "dist/my-web-component-library.esm.js",
"browser": "dist/my-web-component-library.umd.js",
"files": [
"dist/",
"src/",
"README.md"
],
"scripts": {
"build": "webpack",
"test": "jest"
},
"keywords": [
"web components",
"component library",
"ui"
],
"author": "ããªãã®åå",
"license": "MIT",
"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"webpack": "^5.0.0",
"webpack-cli": "^4.0.0"
}
}
代æ¿ããã±ãŒãžã³ã°ãªãã·ã§ã³
npmãæãäžè¬çãªéžæè¢ã§ãããä»ã®ããã±ãŒãžã³ã°ãªãã·ã§ã³ãååšããŸãïŒ
- YarnïŒ npmããé«éã§ä¿¡é Œæ§ã®é«ãä»£æ¿ææ®µã§ãã
- GitHub PackagesïŒ ããã±ãŒãžãGitHubäžã§çŽæ¥ãã¹ãã§ããŸããããã¯ãã©ã€ããŒãããã±ãŒãžããGitHubãªããžããªãšå¯æ¥ã«çµ±åãããããã±ãŒãžã«äŸ¿å©ã§ãã
ããŒãžã§ã³ç®¡çæŠç¥ïŒã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ïŒSemVerïŒ
ããŒãžã§ã³ç®¡çã¯ãWebã³ã³ããŒãã³ãã©ã€ãã©ãªãžã®å€æŽãçµæçã«ç®¡çããããã«äžå¯æ¬ ã§ããã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ïŒSemVerïŒã¯ããœãããŠã§ã¢ã®ããŒãžã§ã³ç®¡çã«ãããæ¥çæšæºã§ãããWebã³ã³ããŒãã³ãã©ã€ãã©ãªã«åŒ·ãæšå¥šãããŸãã
SemVerã®çè§£
SemVerã¯ãã¡ãžã£ãŒ.ãã€ããŒ.ããã
ã®3éšæ§æã®ããŒãžã§ã³çªå·ã䜿çšããŸãã
- ã¡ãžã£ãŒïŒ äºææ§ã®ãªãAPI倿ŽïŒç Žå£ç倿ŽïŒãè¡ã£ãå Žåã«ã€ã³ã¯ãªã¡ã³ãããŸãã
- ãã€ããŒïŒ åŸæ¹äºææ§ã®ããæ¹æ³ã§æ°ããæ©èœã远å ããå Žåã«ã€ã³ã¯ãªã¡ã³ãããŸãã
- ãããïŒ åŸæ¹äºææ§ã®ãããã°ä¿®æ£ãè¡ã£ãå Žåã«ã€ã³ã¯ãªã¡ã³ãããŸãã
äŸïŒ
1.0.0
ïŒåæãªãªãŒã¹ã1.1.0
ïŒæ°æ©èœã远å ã1.0.1
ïŒãã°ãä¿®æ£ã2.0.0
ïŒAPIã«ç Žå£ç倿Žãå°å ¥ã
ãã¬ãªãªãŒã¹ããŒãžã§ã³
SemVerã¯ã1.0.0-alpha.1
ã1.0.0-beta.2
ã1.0.0-rc.1
ãªã©ã®ãã¬ãªãªãŒã¹ããŒãžã§ã³ãèš±å¯ããŸãããããã®ããŒãžã§ã³ã¯ãå®å®çãªãªãŒã¹ã®åã®ãã¹ããå®éšã«äœ¿çšãããŸãã
Webã³ã³ããŒãã³ãã«ãšã£ãŠSemVerãéèŠãªçç±
SemVerãé å®ããããšã§ãåãªãªãŒã¹ã§ã®å€æŽã®æ§è³ªã«ã€ããŠéçºè ã«æç¢ºãªã·ã°ãã«ãæäŸããŸããããã«ãããéçºè ã¯ãã€ãã©ã®ããã«äŸåé¢ä¿ãã¢ããã°ã¬ãŒããããã«ã€ããŠæ å ±ã«åºã¥ããæ±ºå®ãäžãããšãã§ããŸããäŸãã°ãããããªãªãŒã¹ã¯ã³ãŒãã®å€æŽãªãã«å®å šã«ã¢ããã°ã¬ãŒãã§ããã¯ãã§ãããã¡ãžã£ãŒãªãªãŒã¹ã¯æ éãªæ€èšãšãå Žåã«ãã£ãŠã¯å€§å¹ ãªä¿®æ£ãå¿ èŠã«ãªããŸãã
Webã³ã³ããŒãã³ãã©ã€ãã©ãªã®å ¬éãšæŽæ°
Webã³ã³ããŒãã³ããããã±ãŒãžåããããŒãžã§ã³ç®¡çããããïŒnpmã®ãããªïŒã¬ãžã¹ããªã«å ¬éãã倿Žãå ãããã³ã«æŽæ°ããå¿ èŠããããŸãã
npmãžã®å ¬é
ããã±ãŒãžãnpmã«å ¬éããã«ã¯ãæ¬¡ã®æé ã«åŸããŸãïŒ
- npmã¢ã«ãŠã³ãã®äœæïŒ ãŸã æã£ãŠããªãå Žåã¯ãnpmã®ãŠã§ããµã€ãã§ã¢ã«ãŠã³ããäœæããŸãã
- npmãžã®ãã°ã€ã³ïŒ ã¿ãŒããã«ã§ `npm login` ãå®è¡ããèªèšŒæ å ±ãå ¥åããŸãã
- ããã±ãŒãžã®å ¬éïŒ ãããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã«ç§»åãã`npm publish` ãå®è¡ããŸãã
ããã±ãŒãžã®æŽæ°
ã³ã³ããŒãã³ãã©ã€ãã©ãªã«å€æŽãå ããå Žåã`package.json`ãã¡ã€ã«ã®ããŒãžã§ã³çªå·ãæŽæ°ããããã±ãŒãžãåå ¬éããå¿ èŠããããŸããããŒãžã§ã³ãæŽæ°ããã«ã¯ã次ã®ã³ãã³ãã䜿çšããŸãïŒ
npm version patch
ïŒãããããŒãžã§ã³ãã€ã³ã¯ãªã¡ã³ãããŸãïŒäŸïŒ1.0.0 -> 1.0.1ïŒãnpm version minor
ïŒãã€ããŒããŒãžã§ã³ãã€ã³ã¯ãªã¡ã³ãããŸãïŒäŸïŒ1.0.0 -> 1.1.0ïŒãnpm version major
ïŒã¡ãžã£ãŒããŒãžã§ã³ãã€ã³ã¯ãªã¡ã³ãããŸãïŒäŸïŒ1.0.0 -> 2.0.0ïŒã
ããŒãžã§ã³ãæŽæ°ããåŸã`npm publish`ãå®è¡ããŠæ°ããããŒãžã§ã³ãnpmã«å ¬éããŸãã
Webã³ã³ããŒãã³ãã©ã€ãã©ãªã®é åžãšããŒãžã§ã³ç®¡çã®ãã¹ããã©ã¯ãã£ã¹
Webã³ã³ããŒãã³ãã©ã€ãã©ãªãé åžããã³ããŒãžã§ã³ç®¡çããéã«çæãã¹ããã¹ããã©ã¯ãã£ã¹ãããã€ã玹ä»ããŸãïŒ
- æç¢ºã§å æ¬çãªããã¥ã¡ã³ããäœæããïŒ ããã¥ã¡ã³ãã¯ãéçºè ãã³ã³ããŒãã³ãã®äœ¿ç𿹿³ãçè§£ããã®ã«äžå¯æ¬ ã§ãã䜿çšäŸãAPIãªãã¡ã¬ã³ã¹ãéèŠãªæŠå¿µã®èª¬æãå«ããŠãã ãããStorybookã®ãããªããŒã«ã䜿çšããŠã³ã³ããŒãã³ããèŠèŠçã«ææžåããããšãæ€èšããŠãã ããã
- äŸãšãã¢ãæäŸããïŒ ã³ã³ããŒãã³ãã®ããŸããŸãªäœ¿ç𿹿³ã瀺ãäŸãšãã¢ãå«ããŸããããã«ãããéçºè ã¯ã©ã€ãã©ãªãããã«äœ¿ãå§ããããšãã§ããŸããå°çšã®ãŠã§ããµã€ããäœæããããCodePenãStackBlitzã®ãããªãã©ãããã©ãŒã ã䜿çšããŠäŸããã¹ãããããšãæ€èšããŠãã ããã
- ã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã䜿çšããïŒ SemVerãé å®ããããšã¯ããŠãŒã¶ãŒã«å€æŽã®æ§è³ªãäŒããäžã§éåžžã«éèŠã§ãã
- åäœãã¹ããäœæããïŒ ã³ã³ããŒãã³ããæåŸ ã©ããã«åäœããããšã確èªããããã«åäœãã¹ããäœæããŸããããã«ããããã°ãæ©æã«çºèŠããç Žå£ç倿Žãé²ãããšãã§ããŸãã
- ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ïŒCIïŒã·ã¹ãã ã䜿çšããïŒ GitHub ActionsãTravis CIãCircleCIãªã©ã®CIã·ã¹ãã ã䜿çšããŠã倿Žãå ãããã³ã«ã³ã³ããŒãã³ãã©ã€ãã©ãªãèªåçã«ãã«ãããã¹ããå ¬éããŸãã
- Shadow DOMãšã¹ã¿ã€ãªã³ã°ãèæ ®ããïŒ Webã³ã³ããŒãã³ãã¯Shadow DOMãæŽ»çšããŠã¹ã¿ã€ãªã³ã°ãã«ãã»ã«åããŸããã³ã³ããŒãã³ããæ£ããã¹ã¿ã€ã«èšå®ãããã¹ã¿ã€ã«ãã³ã³ããŒãã³ãã®å å€ã«æŒããªãããã«ããŠãã ãããã«ã¹ã¿ãã€ãºã®ããã«CSSã«ã¹ã¿ã ããããã£ïŒå€æ°ïŒãæäŸããããšãæ€èšããŠãã ããã
- ã¢ã¯ã»ã·ããªãã£ïŒA11yïŒïŒ Webã³ã³ããŒãã³ããé害ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŠãã ãããã»ãã³ãã£ãã¯HTMLã䜿çšããARIA屿§ãæäŸããæ¯æŽæè¡ã§ã³ã³ããŒãã³ãããã¹ãããŠãã ãããã€ã³ã¯ã«ãŒã·ããã£ã®ããã«ã¯WCAGã¬ã€ãã©ã€ã³ãé å®ããããšãäžå¯æ¬ ã§ãã
- åœéåïŒi18nïŒãšå°ååïŒl10nïŒïŒ ã³ã³ããŒãã³ããè€æ°ã®èšèªããµããŒãããå¿ èŠãããå Žåã¯ãi18nãšl10nãå®è£ ããŸããããã«ã¯ã翻蚳ã©ã€ãã©ãªã®äœ¿çšãèšèªåºæã®ãªãœãŒã¹ã®æäŸãå«ãŸããŸããããŸããŸãªæ¥ä»åœ¢åŒãæ°å€åœ¢åŒãæåçãªæ £ç¿ã«æ³šæããŠãã ããã
- ã¯ãã¹ãã©ãŠã¶äºææ§ïŒ ã³ã³ããŒãã³ããç°ãªããã©ãŠã¶ïŒChromeãFirefoxãSafariãEdgeïŒã§äžè²«ããŠåäœããããšã確èªããããã«ãã¹ãããŸããã¯ãã¹ãã©ãŠã¶ãã¹ãã«ã¯BrowserStackãSauce Labsã®ãããªããŒã«ã䜿çšããŠãã ããã
- ãã¬ãŒã ã¯ãŒã¯ã«äŸåããªãèšèšïŒ Webã³ã³ããŒãã³ãã¯ãã¬ãŒã ã¯ãŒã¯ã«äŸåããªãããã«èšèšãããŠããŸãããç¹å®ã®ãã¬ãŒã ã¯ãŒã¯ïŒReactãAngularãVue.jsïŒãšã®æœåšçãªç«¶åãçžäºéçšæ§ã®åé¡ã«æ³šæããŠãã ããããããã®æžå¿µã«å¯ŸåŠããäŸãšããã¥ã¡ã³ããæäŸããŠãã ããã
- ãµããŒããæäŸãããã£ãŒãããã¯ãåéããïŒ éçºè ã質åãããããã°ãå ±åãããããã£ãŒãããã¯ãæäŸãããã§ããæ¹æ³ãæäŸããŸããããã¯ããã©ãŒã©ã ãSlackãã£ã³ãã«ããŸãã¯GitHubã®èª²é¡ãã©ãã«ãŒãéããŠè¡ãããšãã§ããŸãããŠãŒã¶ãŒã®å£°ã«ç©æ¥µçã«è³ãåŸãããã®ãã£ãŒãããã¯ãå°æ¥ã®ãªãªãŒã¹ã«çµã¿èŸŒãã§ãã ããã
- èªååããããªãªãŒã¹ããŒãïŒ ã³ãããå±¥æŽã«åºã¥ããŠãªãªãŒã¹ããŒãã®çæãèªååããŸããããã«ãããåãªãªãŒã¹ã®å€æŽç¹ã®æç¢ºãªèŠçŽããŠãŒã¶ãŒã«æäŸã§ããŸãã`conventional-changelog`ã®ãããªããŒã«ããããæ¯æŽããŸãã
å®äžçã®äŸãšã±ãŒã¹ã¹ã¿ãã£
ããã€ãã®çµç¹ãå人ããWebã³ã³ããŒãã³ãã©ã€ãã©ãªã®äœæãšé åžã«æåããŠããŸãã以äžã«ããã€ãã®äŸãæããŸãïŒ
- Googleã®Material Web ComponentsïŒ Googleã®ãããªã¢ã«ãã¶ã€ã³ã«åºã¥ããWebã³ã³ããŒãã³ãã®ã»ããã§ãã
- Adobeã®Spectrum Web ComponentsïŒ Adobeã®Spectrumãã¶ã€ã³ã·ã¹ãã ãå®è£ ããWebã³ã³ããŒãã³ãã®ã³ã¬ã¯ã·ã§ã³ã§ãã
- Vaadin ComponentsïŒ Webã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®å æ¬çãªWebã³ã³ããŒãã³ãã®ã»ããã§ãã
ãããã®ã©ã€ãã©ãªãç ç©¶ããããšã¯ãé åžãããŒãžã§ã³ç®¡çãããã³ããã¥ã¡ã³ãäœæã®ãã¹ããã©ã¯ãã£ã¹ã«é¢ãã貎éãªæŽå¯ãæäŸããŸãã
çµè«
Webã³ã³ããŒãã³ãã©ã€ãã©ãªã广çã«é åžããããŒãžã§ã³ç®¡çããããšã¯ãé«å質ãªã³ã³ããŒãã³ããæ§ç¯ããããšãšåããããéèŠã§ãããã®ã¬ã€ãã§æŠèª¬ããæŠç¥ãšãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ãã³ã³ããŒãã³ããäžçäžã®éçºè ã«ãšã£ãŠã¢ã¯ã»ã¹ãããããä¿å®å¯èœã§ãä¿¡é Œã§ãããã®ã§ããããšãä¿èšŒã§ããŸããã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ã®æ¡çšãå æ¬çãªããã¥ã¡ã³ãã®æäŸããããŠãŠãŒã¶ãŒã³ãã¥ããã£ãšã®ç©æ¥µçãªé¢ããããWebã³ã³ããŒãã³ãã©ã€ãã©ãªã®é·æçãªæåã®éµãšãªããŸãã
åªããWebã³ã³ããŒãã³ãã©ã€ãã©ãªã®æ§ç¯ã¯ç¶ç¶çãªããã»ã¹ã§ããããšãå¿ããªãã§ãã ããããŠãŒã¶ãŒã®ãã£ãŒãããã¯ãé²åããWebæšæºã«åºã¥ããŠãã³ã³ããŒãã³ããç¶ç¶çã«å埩ããæ¹åããŠãã ããã