ããã¾ã§æ å½ãã¦ããããã¸ã§ã¯ãã§ã¯ããã³ãã³ãã¼ã«ã©ã¤ãºæè¨ã®ç®¡çã«é ãæ©ã¾ãããã¨ãããã¾ããã
ãã¡ããæ¥æ¬èªã®ã¿å¯¾å¿ããã°ããããã¸ã§ã¯ãã§ããã°ã½ã¼ã¹ã³ã¼ãã«ã¹ãæ¸ãã¨ããã¨ããæããããæéããªãããã¸ã§ã¯ãã§ã¯å®éã«ãããã¦ãã¾ããããæ¬æ¥ãã¥ã¼ã«ããç´ç²ãªãªã½ã¼ã¹ã§ããã®ã§ãåä¸è¨èªã§ãæååãªã½ã¼ã¹ã¨ãã¦ç®¡çãããã¹ãã ã¨èãã¦ãã¾ãã
ãã¼ã«ã©ã¤ãºæè¨ç®¡çãããã¸ã§ã¯ãã«å°å ¥ãããããéã«ãã¹ãã¬ããã·ã¼ããã¼ã¹ã®ç®¡çãªã©ãããã試ãã¦ãã¾ããããã©ã®ããã»ã¹ãæçµçã«ãã£ãããã¾ããã§ãããã¾ããSaaSã®å°å ¥ãè²»ç¨å¯¾å¹æã®é¢ã§æ¨ãé²ãããã¨ããã¥ããã¨ãã課é¡ãããã¾ãã
ãããã®åé¡ãã¾ã¨ãã¦è§£æ±ºã§ããªãã¾ã¾æ°å¹´éããã¦ããã®ã§ãããæ¨å¹´æ°ããããã¸ã§ã¯ãã«å ¥ã£ãéã«æãã¤ããæ¹æ³ãããããã®æ¹æ³ãå®ç¾ããããã®æè¨ç®¡çãã¼ã« hoshi ãéçºãã¦ãã¾ãã ãã®ãã¼ã«ã¯ã¾ã æªå®æã§ã¯ããã¾ãããç¾å¨ã®ããã¸ã§ã¯ãã§å°å ¥ãã¦ä¸å®ã®ææãä¸ãã¤ã¤ããã¾ãã
ãã®è¨äºã§ã¯hoshiãä½ãã«è³ã£ãèæ¯ã¨ãhoshi使ã£ãæè¨ç®¡çããã»ã¹ãç´¹ä»ãã¾ãã
課é¡ã¨ãã®è§£æ±ºç
ããã¾ã§ãããã¸ã§ã¯ãã«æè¨ç®¡çãå°å ¥ããéã«ã以ä¸ã®ãããªèª²é¡ãçµé¨ãã¦ãã¾ããã
- åè¨éçºããã¦ããä¼ç¤¾ã§ã¯ãçæéã§çµäºããè¤æ°ã®ããã¸ã§ã¯ãã並è¡ãã¦é²è¡ããåããã¸ã§ã¯ãã§ç°ãªã管çæ¹æ³ãæ¡ç¨ããã¦ãã¾ããããã®ãããããã¸ã§ã¯ããã¨ã«æ°ããæ¹æ³ãä½ãåºãããå¦ã³ç´ãå¿ è¦ããããå¹çãæªãç¶æ ãç¶ãã¦ãã¾ããã
- ç¶ç¶çã«éçºãè¡ã£ã¦ããã¢ããªã¯å¤ãã®å½ã§ä½¿ç¨ããã¦ãããå¤è¨èªå¯¾å¿ãæ±ãããã¦ãã¾ããããããã翻訳家ã«ä¾é ¼ããã³ã¹ããé«ããæ欲çãªã¦ã¼ã¶ã¼ã«ç¿»è¨³ååããé¡ããããã¨ãã§ããªããã¨ããæ¤è¨ããªããã¾ããããããå®ç¾ããããã®é©åãªãã¼ã«ããªãé æ«ãã¦ãã¾ãã¾ããã
- 1ã¤ã®ã¢ããªã«å¯¾ãã¦è¤æ°ã®éçºããã¸ã§ã¯ãã並è¡ãã¦é²è¡ãã¦ããç¾å ´ã§ã¯ãããããã®éçºãã¡ã¤ã³ã©ã¤ã³ã«ãã¼ã¸ãããã¾ã§ãå¥ã ã®æè¨ç®¡çãå¿ è¦ã§ããããã®ãã¼ã¸èª¿æ´ã«ã¯å¤ãã®å·¥æ°ãããã£ã¦ãã¾ããã
æè¨ç®¡çã®SaaSãããã¾ãããæ©è½ãããã¸ã§ã¯ãæ°ã»æè¨æ°ã«å¯¾ãã¦è²»ç¨å¯¾å¹æã®é¢ã§å°å ¥ãé£ããã¨èãã¾ããã
å人çãªæè¦ã§ãããæ¨ä»æ§ã ãªãã¼ã«ãSaaSã¢ãã«ã§ä½ããã¦ããã¿ã¤ãºãããã¨ææåãããã®ãå¢ãã¦ãããã®ã®ãæ¬å½ã«ããåºæ¬çãªãã¨ããSaaSã§ææã«ããã¦ãã¾ãã®ã¯åé¡ã§ã¯ãªããã¨æã£ã¦ãã¾ãã gitã¨Githubã®ãããªé¢ä¿ã§ãããåºæ¬çãªãã¨ã¯ãµã¼ãã¼ãµã¤ãã«ä¾åããªãä»çµã¿ã§ã§ãã¦ãããããã便å©ã«ã§ããSaaSãããã¨ããæ§é ã«ã§ããªããã¨èãã¦ãã¾ãã
ãããã®åé¡ã解決ã§ããªããã¨èãã¦ããã¨ããRubyã®ActiveRecordã®ãããªãã¼ã¿ãã¼ã¹ãã¤ã°ã¬ã¼ã·ã§ã³ææ³ãæè¨ç®¡çã«å¿ç¨ã§ããã®ã§ã¯ãªããã¨èãã¾ããã
ãã¼ã¿ãã¼ã¹ãã¤ã°ã¬ã¼ã·ã§ã³ã§ã¯ãå¤æ´ãã¨ã«ãã¡ã¤ã«ãç¨æãããããé çªã«é©ç¨ãããã¨ã§æçµçãªçµæãå¾ããã¾ãããã®ã¢ããã¼ãã®è¯ãç¹ã¯ãå¤æ´åä½ã§ãã¡ã¤ã«ãããã¨ããããã¨ãã§ããä»»æã®ãã¡ã¤ã«ã§å¦çãåæ¢ãããã¨ã§ããã®ãã¤ã³ãã¾ã§ã®çµæãå¾ããããã¨ã§ãã
ãããå®ç¾ããããã®ãã¼ã«ã¨ãã¦ãhoshiã¨ãããã¼ã«ãéçºãã¾ããã
hoshiã®æ§æ
hoshiã¯è¤æ°ã®YAMLãã¡ã¤ã«ãå«ããã£ã¬ã¯ããªæ§æã«ãããã¡ã¤ã«ãã©ã¼ãããã¨ããã®ãã¡ã¤ã«ãã©ã¼ããããæä½ãã¦å¤æå¦çãããCLIãã¼ã«hoshi-cli
ãéã¨ã³ã¸ãã¢åãã®ããã³ãã¨ã³ãGUIã¨ãã£ã¿hoshi Editor
ããæ§æããã¾ãã
ã·ã³ãã«ãªYAMLãã¡ã¤ã«ã§æ¸ãããå ±éãã©ã¼ããããè¨è¿°ãã¦ãããããã¼ã«ã§å¤æãã¦åãã©ãããã©ã¼ã åãã®ã¢ã¦ãããã(ä¾ãã°ãiOSåãã®stringsãã¡ã¤ã«ãAndroidåãã®ãªã½ã¼ã¹XMLç)ãå¾ã¾ãã å¹³æãªYAMLãã¡ã¤ã«ã§è¨è¿°ããã¦ãããããgitãªã©ã®ãã¼ã¸ã§ã³ç®¡çã·ã¹ãã ã§ç®¡çããããåç´ãªãã¡ã¤ã«ãµã¼ãã¼ã§ç®¡çãããã¨ãã§ãã¾ãããå¨è¾ºã®ãã¼ã«ãéçºãããã¨ãç°¡åã«ã§ãã¾ãã
hoshiãã¡ã¤ã«ãã©ã¼ããã
hoshiã®ãã¡ã¤ã«ãã©ã¼ãããã¯ã以ä¸ã®æ§é ã§æ§æããã¾ãã
- ããã¸ã§ã¯ã: ããã¸ã§ã¯ãã¯è¤æ°ã®ããã±ã¼ã¸ãå«ã¿ãã°ã«ã¼ãã³ã°ãããªãã¸ã§ã¯ãã§ããããã±ã¼ã¸éã§å ±éã®ãã¼ã¿ãå®ç¾©ãã¾ããããã±ã¼ã¸ã®ãã£ã¬ã¯ããªã¨project.hoshiãã¡ã¤ã«ã§æ§æããããã£ã¬ã¯ããªã¨ãã¦ä¿åããã¾ãã
- ããã±ã¼ã¸: 1ã¤ã®ç¿»è¨³ãã¡ã¤ã«ã®ç®¡çåä½ãåºåããã1ã¤ã®æè¨ãã¼ã¿ã»ããã«å¯¾ãã¦1ã¤å®ç¾©ãã¾ããããã±ã¼ã¸ã«å«ã¾ãããã¹ã¦ã®ãã¼ã¸ã§ã³ãã¡ã¤ã«ã¨package.hoshiãã¡ã¤ã«ãæ ¼ç´ãããã£ã¬ã¯ããªã¨ãã¦ä¿åããã¾ãã
- ãã¼ã¸ã§ã³: ããã±ã¼ã¸å ã®å¤æ´è¨é²ã®åä½ããã¡ã¤ã«åé ã«é çªã«é©ç¨ãããçµæãåºåçµæã¨ãªãã¾ããåç´ãªYAMLãã¡ã¤ã«ã¨ãã¦ä¿åããã¾ãã ãã¬ã¼ãº: ãã¼ã¸ã§ã³å ã«å®ç¾©ããã¦ãã1ã¤ã®æè¨ããã¼ã¨åè¨èªã®å¤ã§æ§æããã¾ãããã¼ã¸ã§ã³ãã¡ã¤ã«å ã®1ã¤ã®ãã¼ã¨ãã¦ä¿åããã¾ãã
ä¾ãã°ããµã¼ãã¼ã¨ã¢ããªã®æè¨ã管çãããSomeServiceããã¸ã§ã¯ãã®ãã¼ã¿ã¯ä»¥ä¸ã®ãã¡ã¤ã«æ§æã«ãªãã¾ãã
SomeService/ - project.hoshi - app/ - package.hoshi - 00000000_initial.yaml - 00001000_add_some_feature.yaml - server/ - package.hoshi - 00000000_initial.yaml - 00001000_add_some_feature.yaml
hoshiãã¼ã«ã»ãã
hoshiãã¼ã«ã»ããã¯TypeScriptã§è¨è¿°ããã¦ãããCLIãã¼ã«ã¨ãElectron製ã®GUIã¨ãã£ã¿ãæã¡ã¾ãã CLIãã¼ã«ã¯pkgã«ãããnode.jsã®ç°å¢ããªãç°å¢ã§ãã·ã³ã°ã«ãã¤ããªã§åä½ããããã«ãã¦ãã¾ã1ã
hoshiã®å©ç¹
hoshiãå©ç¨ããæè¨ç®¡çããã»ã¹ã«ã¯ã以ä¸ã®ãããªå©ç¹ãããã¾ãã
- åä¸ã®è¨è¿°ã§ãè¤æ°ã®ãã©ãããã©ã¼ã ã«å¯¾å¿: 1ã¤ã®YAMLãã¡ã¤ã«ãããiOS/Android/Windowsã¨ãã£ãè¤æ°ã®ãã©ãããã©ã¼ã åãã®å½¢å¼ã«æ¸ãåºããã¨ãã§ãã¾ãã
- å¹³æãªç®¡ç: è¤æ°ã®YAMLãã¡ã¤ã«ã§æ§æããã¦ããã®ã§ãã½ã¼ã¹ç®¡çã«ã¯gitãªã©ã®ä½¿ãæ £ãããã¼ã«ã使ããã¨ãã§ãã¾ãã
- å¹³æãªç·¨é: ä¸è¬çãªããã¹ãã¨ãã£ã¿ã§ç·¨éãå¯è½ãªã ãã§ãªããã¾ã æ©è½ãååã§ã¯ãªããã®ã®GUIã®ã¨ãã£ã¿ãåãã¦ãã¾ããã¾ãããã¼ã ãããã¸ã§ã¯ãã®ããã»ã¹ã«æ²¿ã£ãå¥ãã¼ã«ãä½ãã®ãç°¡åã§ãã
- ãªã¼ãã³ããã»ã¹ã«ã対å¿: ãã¼ã«èªä½ããªã¼ãã³ã½ã¼ã¹ã®ãããæè¨ç®¡çã®ãªãã¸ããªãå ¬éãããã¨ã§æè¨ã®ç®¡çãä¸è¬å ¬éããæè¨ã®ä¿®æ£ã対å¿è¨èªè¿½å ã®ã³ã³ããªãã¥ã¼ã·ã§ã³ãåãä»ããããããã«ãããã¨ãã§ãã¾ãã
åãããã¾ã§çµé¨ãã¦ãã課é¡ã¯ãhoshiã使ããã¨ã§è§£æ±ºã§ãããã§ãã
- hoshiã¨ãããã¼ã«ããããã¨ã§ãæè¨ç®¡çããã»ã¹ã«ä¸å®ã®æ¹åæ§ãä½ãåºããã¨ãã§ãã
- 翻訳ååãå¾ããå ´åãhoshiã®æè¨ãã¡ã¤ã«ããªãã¸ããªã«å ¬éãã対å¿ãã¦ãããããè¨èªã®å¤æ´å·®åãæ°ãããã¼ã¸ã§ã³ãã¡ã¤ã«ã¨ãã¦ã³ã³ããªãã¥ã¼ã·ã§ã³ãã¦ããããã¨ã§å®ç¾ã§ããã
- è¤æ°ã®éçºã並è¡ããå ´åã§ã¯ããã¼ã¸ã§ã³ãã¡ã¤ã«ã®é åºã調æ´ããç¹å®ã®å¤æ´ç¹ã®ãã¼ã¸ã§ã³ãã¡ã¤ã«ãæå®ãããã¨ã§ããããã®å¤æ´ç¶æ ã§ã®æè¨ãåå¾ã¦ã½ã¼ã¹ã³ã¼ãã«é©ç¨ãããã¨ãã§ããã
hoshiã®ä½¿ãæ¹
以ä¸ã®Githubãªãã¸ããªã§å ¬éããã¦ãã¾ãã
https://github.com/iseebi/hoshi
ãªãªã¼ã¹ãã«ãããã¯ãCLIãã¼ã«ã®hoshi-cliã¨hoshi Editorããã¦ã³ãã¼ãã§ãã¾ãã
hoshi-cliããã¼ã¹ã«ä½¿ãæ¹ã説æãã¾ããã¾ãããã¸ã§ã¯ããä½æãã¾ããhoshi-cli projects create
ã³ãã³ã㧠ããã¸ã§ã¯ããä½æããããã£ã¬ã¯ããªãä½æããã¾ãã
$ hoshi-cli projects create SomeService
ããã¸ã§ã¯ãã®ãã£ã¬ã¯ããªã«å
¥ãã hoshi-cli packages create
ã³ãã³ãã§ããã±ã¼ã¸ãä½æããããã£ã¬ã¯ããªãä½æããã¾ãããã®ã¨ãããã©ã«ããã¼ã¸ã§ã³ã¨ã㦠00000000_initial.yaml ãä½æããã¦ãã¾ãã
$ cd SomeService $ hoshi-cli packages create app
ããã±ã¼ã¸ã®ãã£ã¬ã¯ããªã«å
¥ããhoshi-cli versions create
ã³ãã³ãã§ãã¼ã¸ã§ã³ãä½æãããYAMLãã¡ã¤ã«ãä½æããã¾ãã
$ cd app $ hoshi-cli versions create 00001000_add_some_feature
YAMLãã¡ã¤ã«ã«æ±ºããããå½¢å¼ã§æè¨ãè¨è¼ãã¾ããæè¨ã®ããã¹ãã¯Javaã®String.formatã®å½¢å¼ãè¨è¿°ããã¦ãããã¨ãæ³å®ãã¦åä½ãã¾ããåæè¨ãã¨ã« $description
ã§èª¬æãè¨è¿°ãããã¨ãã§ãã¾ãã
type: hoshi.version:1 phrases: greeting_morning: $description: Morning greetings. en: Good morning ja: ãã¯ãããããã¾ã
æå¾ã«ãhoshi publish
ã³ãã³ããå®è¡ãããã¨ã§ãhoshiå½¢å¼ã®æè¨ãã¼ã¿ããåãã©ãããã©ã¼ã åãã®ãã¡ã¤ã«ãåºåã§ãã¾ãã
$ hoshi publish
publishã³ãã³ãã«ãã¼ã¸ã§ã³ãæå®ãããã¨ã§ããã®ãã¼ã¸ã§ã³ã¾ã§ã®å¤æ´ãå¾ããã¨ãã§ãã¾ãã
$ hoshi publish -v 00001000_add_some_feature
ãã®ä»è©³ãããã©ã¼ãããã®æ©è½ã¯hoshiãã¡ã¤ã«ãã©ã¼ãããã®ä»æ§æ¸ãã覧ãã ããã
ä»å¾ã®æ¹åæ§
ç¾å¨ã®hoshiãå®éã®ããã¸ã§ã¯ãã«å°å ¥ãã¦ä½¿ãå§ãã¦ãã¾ãã詳細ã¯ä»å¾ç´¹ä»ã§ããã°ã¨æãã¾ãããæ¢ã«ããªãã®å¹çåãã§ãã¦ãã¾ãã
ããããhoshiã¯ã¾ã ã¾ã ä½ãå§ããã°ããã®æªå®æã®ç¶æ ã§ãã ä¸åº¦ç¾ç¶ã§æè¦ãããã ããã°ãããããã¨æããè¨äºã«ãã¦ã¿ããã¨ã«ãã¾ããã ã³ã¡ã³ãããã ããããã³ã³ããªãã¥ã¼ã·ã§ã³ããã ãããããã¨ã¨ã¦ãããããã§ãã
- æåã«Electronã®hoshi Editorããéçºãçæãããããããã«CLIãå ¥ããã¨ããæ§é ã«ãªã£ã¦ãã¾ã£ã¦ãã¾ãããnode.jsãã¼ã¸ã§ã³ãElectronã«ä¾åãã¦ãã¾ãåé¡ãããã¾ããpkgããSingle executable applicationsã¸ã®ç§»è¡ã«é£ãããã®ã§ãå ±éã©ã¤ãã©ãªãcliã¨editorããããããåç §ããããã«ãããã¨ããèããããã¾ãã↩