JavaâKotlinå¤ææã®ããããã¤ã³ã (potatotips #53)
potatotips#53 ã®Androidããã°ã¾ã¨ãæ ã§åå ããã¦ããã ãã¾ããã ååå ã§ãããã©ã®çºè¡¨ãã¯ãªãªãã£ãé«ã楽ããã£ãã§ãã次ã«åå ããæã¯èªåãLTãããã
å ¨çºè¡¨ãè°äºé²çã«ã¾ã¨ããããã¨æã£ã¦ããã®ã§ãããå½æ¥ã®å¤ã«ã¯ãã§ã«ã¾ã¨ãããã¦ãã¾ããããããã
ã¨ããããã§ãä»åã¯LTã®ä¸ã§ä¸çªå¿ã«æ®ã£ã@paraya3636ããã®çºè¡¨ãJ2Kã³ã³ãã¼ã¿ãã«ã¹ã¿ãã¤ãºãããã«ã¤ãã¦è¨äºãæ¸ããã¨æãã¾ãã
çºè¡¨è³æã¯ãã¡ã
J2Kコンバータをカスタマイズする ver: 5min - Speaker Deck
Java â Kotlinã®æµã
GoogleãAndroidéçºã®ããã®ãã¡ã¼ã¹ãã¯ã©ã¹è¨èªã¨ãã¦Kotlinãå ¬å¼ãµãã¼ããããã¨ãçºè¡¨ããã®ã¯2017å¹´ã®5æã§ãã¦ããã®ãããããKotlinãæ¬çªãããã¯ãã«å°å ¥ããæµããå éããããã«æãã¾ãã
Kotlinã¨Javaã¯å ±åã§ãã¾ãã®ã§ãæ°ãã追å ããã³ã¼ãã¯Kotlinã§æ¸ããã¿ãããªé¨åçãªå°å ¥ããã¦ããæ¹ãããã¨æãã¾ãããããæ¢åã®Javaã³ã¼ããKotlinã«æ¸ãæãKotlinã¡ã¤ã³ã«ã·ããããã¨ããé¸æãããæ¹ãå¤ãã®ã§ã¯ãªãã§ããããã(å¼ç¤¾ã¯å¾è ã§ã)
ããã§å¤§éã®Javaã³ã¼ããKotlinã«å¤æããã¨ããçµæ§éãã®ã¿ã¹ã¯ãåºã¦ãã¾ãã
Kotlinã³ã³ãã¼ãã®æ¹æ³ã¨è¾ã
çºè¡¨ã§ã触ãããã¦ããããã«ãé常JavaããKotlinã«å¤æããéã¯Android Studioæ¨æºæè¼ã®J2Kã³ã³ãã¼ã¿ãå©ç¨ãã¾ãã
ãã®ã³ã³ãã¼ã¿ã¯çµæ§è¯ãã§ãã¦ãã¦ãå¤ãã®ã³ã¼ããã¨ã©ã¼ãªãå¤æã§ãã¾ããå人çã«ã¯Objective-CãSwiftã«å¤æããæãããæ°å楽ã§ããã
ãããããã¤ãåé¡ã¯ããããã®ä¸ã¤ãNullableãNonNullã«å¤æãã¦ãã¾ãã¨ããç¹ã§ãã
å ·ä½çã«ã¯ä¸è¨ã®ããã«ãå¼æ°ã«Nullableã¢ããã¼ã·ã§ã³ããªãå ´åã«NullableãNonNullã«å¤æããã¦ãã¾ãã¾ãã(çºè¡¨ã¹ã©ã¤ãããã³ã¼ããå¼ç¨ããã¦ããã ãã¾ã)
public interface SampleInteface { //Nullableå¼æ° String getText(Context context); int getValue(Context context); }
interface SampleInteface { //NonNullå¼æ° fun getText(context Context): String fun getValue(context Context): Int }
ãã®å¤æããããKotlinã³ã¼ããJavaããnullå¼æ°ã§å¼ã³åºãã¨å®è¡æã«ä»¥ä¸ã®ä¾å¤ã§ã¯ã©ãã·ã¥ãã¦ãã¾ãã¾ãã
IllegalArgumentException: Parameter specified as non-null is null
ãã®ä¾å¤ã¯Kotlinã¨Javaãå ±åããã¦ããã¨çµæ§è¦ããã¤ã§ãæè§KotlinãOptionalã§åå®å ¨ãæ ä¿ãã¦ããã®ã«å¿ä½ç¡ããªã¨ãã¤ãæãã¾ãã
ææã§ãããããã¯Kotlinã¨Javaã®é£æºãã¹ã ã¼ãºããã¦å¼ã³åºãæã«ç¹ã«æèããªãã¦ãå¼ã³åºãã¦ãã¾ãã®ãä¸å ãªæ°ããã¾ãã Swiftã¨Objective-Cã¯é£æºèªä½ãå°ãé¢åãªã®ã§ãå°ãªãã¨ãèªåã®å¨ãã§ã¯ãã¾ãããããäºã¯èµ·ãã£ã¦ãã¾ããã
J2Kã³ã³ãã¼ã¿ã®ã«ã¹ã¿ãã¤ãº
ãã®åé¡ã«å¯¾ãã解決çã¨ãã¦ãJ2Kã³ã³ãã¼ã¿èªä½ãã«ã¹ã¿ãã¤ãºãã¦Nullableãä¿æããã¾ã¾å¤æãããã¨ããæ¹æ³ãçºè¡¨ã§ã¯è§¦ãããã¦ãã¾ãã
æ£ç´èªåã¯ãã®æ¹æ³ã¯çºæ³ããæãã¦ãããç®è¦ã§ã®ãã§ãã¯ã¨ã¢ããªãæå ã§åããã¦ã®ãã§ãã¯ãé å¼µãã¨ããã¬ããã溢ãã対å¿ã§è§£æ±ºãã¦ãã¾ããããæ¥ããããéãã§ãã
èªåã§ãJ2Kã³ã³ãã¼ã¿ã®ã«ã¹ã¿ãã¤ãºããã¦åããã¨ããã¾ã§è¨äºã«ãããã¨æã£ãã®ã§ãããå°ãéãã£ãã®ã§ããã¾ã§è¡ãã¾ããã§ããããã¿ã¾ããããã
èªåãJavaâKotlinã®å¤æã§ããã£ãã¨ãã
代ããã¨è¨ã£ã¦ã¯ä½ã§ãããèªåãJavaâKotlinã®å¤æã§ããã£ãã¨ããã«ã¤ãã¦å°ã触ãã¦ããã¾ããããåèã«ãªãã°å¹¸ãã§ããç°å¢ã¯AndroidStudio2.3 + Kotlin 1.1.51ã§ãã
ã©ã¤ããµã¤ã¯ã«ç³»é¢æ°ã®å®è¡æä¾å¤
onActivityResultãJ2Kã³ã³ãã¼ã¿ã§å¤æããã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { }
ãããonActivityResultã®Intentã«ã¯ã·ã¹ãã ããnullã渡ãããå¯è½æ§ãããã¾ãã®ã§ã ãã®å¤æãããã³ã¼ãã¯å®è¡æä¾å¤ã«ãªãã¾ãããªã®ã§æåã§ä»¥ä¸ã®ããã«æ¸ãæããå¿ è¦ãããã¾ãã
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { }
ä»ã«ãonCreate, onCreateView, onViewCreated, onAttachãªã©ãå¤æãã¹ãèµ·ãããã¨ãããã¾ããããã«é¢ãã¦ã¯@Overrideã¢ããã¼ã·ã§ã³ãããæã¯å¤æãä¸æãè¡ã£ããã¨ãã¤ãã¤ãå¤æã«æåããæ¡ä»¶ãåãã£ã¦ãã¾ããã åãæ¥ãæ£ããå¤æå¾ã®å½¢ãè¨è¿°ãã¦ããã¾ããããä½ãééãããã°æãã¦ãã ããã
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_base, container, false) } override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { } override fun onAttach(context: Context?) { super.onAttach(context) }
Listenerç³»ã®å¤ææã¨ã©ã¼
Animation.AnimationListenerã®ãããªé¢æ°ã«é¢ãã¦ããèªåã®ç°å¢ã§ã¯èªåå¤æãä¸æãè¡ãã¾ããã§ããã
//å¤æå anim.setAnimationListener( new AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationRepeat(Animation animation) {} @Override public void onAnimationEnd(Animation animation) {} });
//å¤æå¾(ã³ã³ãã¤ã«ã¨ã©ã¼) anim.setAnimationListener(object : AnimationListener() { fun onAnimationStart(animation: Animation) {} fun onAnimationRepeat(animation: Animation) {} fun onAnimationEnd(animation: Animation) {} })
以ä¸ã®ããã«æåã§å¤æãã¾ãã
anim.setAnimationListener(object : Animation.AnimationListener { override fun onAnimationStart(animation: Animation) {} override fun onAnimationRepeat(animation: Animation) {} override fun onAnimationEnd(animation: Animation) {} })
Dagger2ã®ç§»æ¤ãè¾ã
å¼ç¤¾ã§ã¯Dagger2.11ã使ç¨ãã¦ããã®ã§ããããããKotlin移æ¤ããéã«è²ã ã¨ãããã¾ãããåãæ¥ããç¾å¨åé¡ãªãåãã¦ããKotlin移æ¤å¾ã®ã³ã¼ãã®ã¿æ²è¼ãã¾ããããä½ãæè¦ã»åé¡ç¹ãªã©ããã°æ¯éãé¡ããã¾ãã
class SampleApplication : Application(), HasActivityInjector, HasServiceInjector { @Inject lateinit var activityDispatchingAndroidInjector: DispatchingAndroidInjector<Activity> @Inject lateinit var serviceDispatchingAndroidInjector: DispatchingAndroidInjector<Service> override fun onCreate() { super.onCreate() DaggerAppComponent.builder().application(this).build().inject(this) } override fun activityInjector(): DispatchingAndroidInjector<Activity> { return activityDispatchingAndroidInjector } override fun serviceInjector(): AndroidInjector<Service> { return serviceDispatchingAndroidInjector } }
class SampleActivity : AppCompatActivity(), HasSupportFragmentInjector { @Inject lateinit var fragmentDispatchingAndroidInjector: DispatchingAndroidInjector<Fragment> override fun onCreate(savedInstanceState: Bundle?) { AndroidInjection.inject(this) super.onCreate(savedInstanceState) } override fun supportFragmentInjector(): AndroidInjector<Fragment> { return fragmentDispatchingAndroidInjector } }
class SampleFragment : Fragment() { override fun onAttach(context: Context?) { super.onAttach(context) AndroidSupportInjection.inject(this) } }
ã¾ã¨ã
Java â Kotlinã®å¤æã§ã¯è²ã ã¨ãããç¹ãããã¾ãããJ2Kã³ã³ãã¼ã¿ã¯åºæ¬çã«è³ªãé«ããå²ã¨ã¹ã ã¼ãºã«å¤æã§ãã¾ãã ãã Nullableå¨ãã§ããããäºãå¤ã ããã¾ãã®ã§ã注æãå¿ è¦ã§ããã
è¯ãåå¼·ä¼ã§ãããã¾ãæ¯éåå ãããã¨æãã¾ãï¼
ã¡ã³ã¿ãªã³ã°ã¨å¿ççå®å ¨æ§ãã¨ã³ã¸ãã¢ãªã³ã°çµç¹è«ã¸ã®æå¾ - 第2ç« - ã
å æ¥ãã¨ã³ã¸ãã¢ãªã³ã°çµç¹è«ã¸ã®æå¾ ãã®ç¬¬1ç« ã«ã¤ãã¦ã®ææ³ãæ¸ãã¾ããããä»åã¯ç¬¬2ç« ã«ã¤ãã¦æ¸ãã¾ãã
第2ç« ã¯ã¡ã³ã¿ãªã³ã°ããã¼ãã§ããã¡ã³ã¿ãªã³ã°ã¨ããç¨èªèªä½ã¯æè¿è¯ãèããã®ã§ã¯ããã¾ããããã®è©³ããææ³ã«ã¤ãã¦ã¯æ¥ããããªããæ¬æ¸ãèªãã¾ã§ãã¾ãç¥ããªãã¾ã¾ã§ããã
ã½ããã¦ã§ã¢éçºã®æè¡ã¯ä»äºããã£ã¦ããä¸ã§èªç¶ã¨è¦ãã¦ããã¾ãããå 輩ã®ä»äºããå¦ã¹ããã¨ãå¤ãæ°ããã¾ããããã«å¯¾ãã¦ã¡ã³ã¿ãªã³ã°ãªã©ã®äººã®æé·ã«å¯ä¸ããããã®æè¡ã«é¢ãã¦ã¯ãå¿ è¦æ§ã表é¢åãã«ããä¸ã«äººãè¦ã¦å¦ã¶äºãé£ããã®ã§ãèªåã§æ示çã«å¦ã¼ãã¨ããææãå¿ è¦ãªæ°ããã¾ãã
ã¡ã³ã¿ãªã³ã°ã¨ã¯
ã¡ã³ã¿ãªã³ã°ã¨ã¯ãç¥èã®ãã人ããªã人ã«å¯¾ãã¦ä¸ããæ¼ãä»ãããããªæè²æ¹æ³ã§ã¯ãªãã対話ãéãã¦ã¡ã³ã¿ãªã³ã°ãã人ã®æèåãä¸æçã«è²¸ãåºããæèã®å¹ ãåºãã¦ããäºã§ãã®äººã®æªãã èªç¥ãè£æ£ãã次ã®è¡åãä¿ãæé·ããã¦ããææ³ã§ããã
ã¡ã³ã¿ãªã³ã°ã¯ããèªãèãã人æãä½ãããã¯ããã¯ã§ããã人ã¯ä¸ããããã¨æã£ã¦ããå½¹å²ã«å¯¾ãã¦ãèªåã®æèãéãã¦ãã¾ãã¨ããç¿æ§ããããä¸ããããå½¹å²ã®ä¸ã§èªåèªèº«ããå¿å°ãããããããæèã®ç¯å²ãè¡åã®ç¯å²ããã³ã³ãã©ã¼ãã¾ã¼ã³ãã¨å¼ã³ãèªåèªèº«ã®ã³ã³ãã©ã¼ãã¾ã¼ã³ãå¤ããã®ã¯é£ããã
ã³ã³ãã©ã¼ãã¾ã¼ã³ããæãåºãã®ã¯ãªããªãé£ãããä¾ãã°ç§ã¯ãèªåã¯ãã¹ããå°½ããã¦ãããã¯ããä½ããä¼ç»ããã¼ã±ã¯èªåã®ä»äºã§ã¯ãªããçãªçºæ³ã«é¥ããã¡ã§ãã責任ç¯å²ãèªåã®å¾æåéã ãã«çµãçºæ³ã¯é常ã«å¿å°è¯ãã§ãããèªåã§ã¯ã¿ã¹ã¯ã«ãã©ã¼ã«ã¹ãã¦å¹çè¯ãåãã¦ããã¨æããã¡ãªã®ã§æ³¨æãå¿ è¦ã§ãã
èªå·±å¹åæã¨èªç«å人æ
èªåããèãã¦åããçµæãè©ä¾¡ãããã¨ããå¨å²ããã®å°æ¬ãéããã¨ãããããã£ããã¸ãã£ããªçµæãæã«å ¥ãã人ã¯ããèªç«çã«åããã¨ã¯æ¥½ãããã¨ããæè¦ãå¾ããã¨ãã§ããããããèªå·±å¹åæãã¨å¼ã¶ã(éã®æè¦ã¯ãå¦ç¿æ§ç¡æ°åãã¨å¼ã¶)
ã¡ã³ã¿ãªã³ã°ã¯èªç«å人æãä½ãããã«ã対話ã«ãã£ã¦æèã®ç¯å²ãéå®ããæ ãåãå¤ããèªåã§åé¡è§£æ±ºãã§ããããã«ä¿ãã¦ãããããã¦ããã®ä½é¨ãéãã¦èªç«çãªæèãè¡ããã¨ã®å¿«æ(èªå·±å¹åæ)ããä¾åçãªæèãè¡ãå¿«æ(ã³ã³ãã©ã¼ãã¾ã¼ã³)ãä¸åãããã«ã¡ã³ãã£ãå°ãã¦ããã
ã¡ã³ã¿ãªã³ã°ãå¹æçãªãã®ã«ãªãããã«ã¯ã以ä¸ã®é¢ä¿æ§ãå¿ è¦ã§ããã
- è¬èï¼äºãã«å¼±ããè¦ãããã
- æ¬æï¼äºãã«æ¬æãæã£ã¦ãã
- ä¿¡é ¼ï¼äºãã«ã¡ã³ãã£ã®æé·æå¾ ãæã£ã¦ãã
ã¡ã³ã¿ã¼ã¯ããä½ã課é¡ãææããããã®åå¨ãã§ã¯ãªãã課é¡ã«ä¸ç·ã«åãåãæé·ãæ¯æ´ããã¨ããã³ããããæ±ããããã
å人ã®æé·ãé段ã«ãã¨ãã¦ãæé·ã®é段ãä¸ããã¨è¡¨ç¾ãããã¨ãããããã¡ã³ã¿ãªã³ã°ã§ã¡ã³ãã£ã«é段ãä¸ãããã«ã¯æ¬¡ã®ãã¨ãããå¿ è¦ãããã
- é段ãèªèããã
- å£ã«æ¢¯åãããã
- é段ãä¸ãããããã
å人çã«ã¯é段ãèªèãããã¨ãããã§ã¼ãºãä¸çªå¿ããã¡ã§ãã¦ãã¡ã³ã¿ã¼ã¨ãã¦èªèãã¦ãã課é¡ããã®ã¾ã¾è§£ããã¦ãã¾ãäºãå¤ãã§ããä¾ãã°DBè¨è¨ã®åéã§æé·ãã¦ã»ããæãªã©ã¯ãç°¡åãªè¨è¨ã®ä»äºãæ¯ã£ã¦ã¿ã¦ãã£ã¼ãããã¯ãè¿ããªã©ããã¨ãæ¬äººãèªåã§èª²é¡ã«æ°ã¥ãã®ã§çµæçã«æé·é度ãä¸ãããããªæ°ããã¾ãã
ä»è 説å¾ã¨èªå·±èª¬å¾
ã¡ã³ã¿ãªã³ã°ããã£ã¼ãã³ã°ã«æ¯ã¹ã¦åªãã¦ãããã¤ã³ãã¯ãæ°ãã¤ãããã¨ã®å¿ç¨åã身ã«ã¤ãç¹ã§ããããã®å¿ç¨åã¯ãä»ã®äººããä¸ããããç¥èã§ã¯ãªããèªãç²å¾ããç¥èã ã¨æããäºã«ãã£ã¦çã¾ããã人ããä¸ãããã説å¾ã«ããç¥èããä»è 説å¾ããèªåèªèº«ã§æ°ãã¤ãããã¨ããèªå·±èª¬å¾ãã¨å¼ã¶ã
ä»è 説å¾ã®ç¹å¾´
- ä»äººãçããæãã
- ä½æãä¼´ããªã
- ç解ã確èªã§ããªã
èªå·±èª¬å¾ã®ç¹å¾´
- ä»äººã質åã§ä¿ã
- ä½æãä¼´ã
- è¡åã®å¤åãçºçãããã
èªå·±èª¬å¾ãçã¿åºãã«ã¯ãé©åãªè³ªåã®ç©ã¿éããéè¦ã§ããã質åã«ãã£ã¦ãããæã¾ãã解決çãèªãçºè¦ã§ããããä¿ãäºãã§ãããåé¡è§£æ±ºãããã®ã¯ã¡ã³ã¿ã¼ã§ã¯ãªãã¡ã³ãã£ã§ãããå½äººãæ±ããåé¡ã¯å½äººã«ãã解決ã§ããªãã®ã§ã解決çãè¨ããã¨èªä½ãç¸æã¸ã®æ¬æãæ¬ ããè¡çºã§ããã¨è¨ããã
ã¡ã³ã¿ãªã³ã°ãé²ããã«ããã£ã¦ãã¡ã³ã¿ã¼ã¯ã¡ã³ãã£ããæ©ãã§ãããã®ããèãã¦ãããã®ããå¤æãããã¨ãéè¦ã§ããããæ©ãã§ãããç¶æ ã¯æãåãã¦ããªãç¶æ³ãç¶ããã¨ã§è¦³æ¸¬ã§ãããã®æã«ã¯ãµãã¼ããå¿ è¦ã§ããã
ã¡ã³ã¿ãªã³ã°ã®åºæ¬ã¹ãã«ã¨ãã¦ãå¾è´ãããããå¾è´ã§ã¯ãç¸æãä¸å¿ã¨ããªããç¸æã®æèãæ´çãããååãã«èããããããæ¯æ´ããããã«æèãã¦ä¼è©±ãè¡ãã
å¾è´ã«ããã¦ã¯ãå ±æããä¼ããäºã大äºã ããå ±æã¨ããè¨èã®æå³ã¯ãç¸æããã®ãããªæ°æã¡ã«ãªã£ãçç±ãç解ããããã¨ã§ãããããã«å¯¾ãã¦ãèªåãç¸æã¨åãæ°æã¡ã«ãªãããã¨ãåæã¨ãããå¾è´ã«ããã¦ç¤ºãã¹ãã¯ãå ±æãã§ãã£ã¦ãåæãã§ã¯ãªãã
å ±æã¨ããè¨èã¯æ§ã ãªæã§æ§ã ãªæå³ã§èªããã¦ããæ°ããã¾ãããå人çã«ã¯æ¬æ¸ã®ãç¸æããã®ãããªæ°æã¡ã«ãªã£ãçç±ãç解ãããã¨ãã¨ããå®ç¾©ã¯å²ã¨ãã£ãããã¾ãããæ©ã¿ãèãä¸ã§å ±æã大äºã ã¨ããã®ã¯è¯ãè¨ãããäºã§ãããèªåãç¸æã¨åãæ°æã¡ã«ãªã£ã¦ãã¾ãã¨ç¸è«è ã¨åãèªç¥ã®ä¸ã«å ¥ãè¾¼ãã§ãã¾ãã®ã§ãããã£ã¦æ©ã¿è§£æ±ºã®å¦¨ãã«ãªãæ°ããã¾ãã
å¿ççå®å ¨æ§ã¨ã¢ã¯ãã¬ãã¸ã¡ã³ã
è¿å¹´ããã¼ã ã®çç£æ§ã¨å¼·ãé¢ä¿æ§ã®ããè¦å¡ã¨ãã¦ãå¿ççå®å ¨æ§ãã¨ããç¨èªã注ç®ãæµ´ã³ã¦ããããããã¯ã対人ãªã¹ã¯ãåã£ã¦ãåé¡ãªãã¨ãã信念ããã¼ã ã§å ±æããã¦ããç¶æ ãã¨ãããããªå®ç¾©ãããã¦ãããã¡ã³ã¿ãªã³ã°ã«ããã¦ãã¡ã³ã¿ã¼ã¨ã¡ã³ãã£ã®éã§ãå¿ççå®å ¨æ§ãã¯æ¥µãã¦éè¦ã§ããã
å¿ççå®å ¨æ§ã¯ããããã¬ãã¾æ¹¯ãªé¢ä¿æ§ã¨ã¯éãããåé¡ç¹ã®ææããèªåã®å¼±ã¿ã®é示ãã失æã®å ±åããªã©ã®å¯¾äººãªã¹ã¯ãé«ãè¡åãå¢ãã¦ããç¶æ ã®äºãæå³ããã
ã¡ã³ã¿ã¼ã¨ã¡ã³ãã£ã®éã«ããå¿ççå®å ¨æ§ãé«ããç¶æ ãããªãã¡ãã©ããªãã¡ãªã¨ãããè¦ãã¦ããé¢ä¿æ§ãç ´ç¶»ãããã¨ã¯ãªãã¨ãã確信ããã¡ã³ãã£ã«æ±ãã¦ãããå¿ è¦ãããããã®ããã«ãã¡ã³ãã£èªèº«ã®åå¨ãèªãã¦ãããã¨ããã¡ãã»ã¼ã¸ãçºãç¶ããå¿ è¦ããããããããã¢ã¯ãã¬ãã¸ã¡ã³ããã¨å¼ã¶ã
ã¢ã¯ãã¬ãã¸ã¡ã³ãã¯ãæ¿èªããæå³ããã¡ã³ã¿ã¼ã¯ã¡ã³ãã£ã®åå¨ã«å¯¾ãã¦ãæ¿èªãã¦ããã¨ããã¡ãã»ã¼ã¸ãçºãç¶ããå¿ è¦ããããããã¯ãè¤ãããã¨ãã¨åä¸è¦ãããã¡ã ãããããã£ãçµæãè¤ããäºãã¨ã¯éãã
ç¸æã«å¯¾ãã¦èå³é¢å¿ãæã¡ãå¤åã«ãã¡æ©ãæ°ãã¤ããæéãè²»ããã¦è¨èãè¡åãéãã¦ä¼ããäºãã¢ã¯ãã¬ãã¸ã¡ã³ãã®åºæ¬ã§ãããã¢ã¯ãã¬ãã¸ã¡ã³ãã«ã¯3ã¤ã®æ®µéãããã
- åå¨æ¿èªã¨ã¯ãç¸æãä»ããã«ãã¦ããã¦ãããããã¨ããã¡ãã»ã¼ã¸ãæ¨æ¶ããããä¼ã£ãæã«ç¬é¡ã§ãããé å¼µã£ã¦ããæ§åãå±ã¾ããªã©ã
- è¡åæ¿èªã¨ã¯ããçµè«ãã話ãããã«ãªã£ãããåãããã調ã¹ã¦ããããªã©ãã¸ãã£ããªè¡åãã¨ã£ãæã«ãã®è¡åãè¨èã«åºãã¦ä¼ããäºãããã«ãã£ã¦ãã®è¡åã¯æ¿èªããã¦ããã®ã ã¨ç¸æãæããäºãããã
- çµææ¿èªã¨ã¯ãã~ã¯ãããææã ããã®ããã«åºæ¥ä¸ãã£ããã®ã«å¯¾ãã¦ããã主観ãæã£ã¦ä¼ããäºã
å¿ è¦ãªã®ã¯çµæã ãã§ã¯ãªãè¡åãè¡åã ãã§ãªãåå¨ã¸ã®æ¿èªã§ãããæ¿èªã示ãä¸çªãããããããã®ãè¨èããããäºãã¾ãæè¬ãä¼ããäºã§ããã
ã¡ã³ã¿ã¼ãã¡ã³ãã£ã«ç¸è«ãã¦æè¦ãæ±ããã¨ããã®ãã¢ã¯ãã¬ãã¸ã¡ã³ãã®ä¸ã¤ã§ãããé ¼ãããã¨ããä½é¨ã¯ãå¼·çãªèªå·±æ¿èªã¨èªå·±å¹åæãçã¿åºãã
å¿ççå®å ¨æ§ã¨ããç¨èªã¯å²ã¨è²ã ãªæã§ä½¿ããã¦ããæ°ããã¾ããããããããã¬ãã¾æ¹¯ããªç¶æ ã¨ã®éãã¯ãã¾ãèªããã¦ããªãæ°ããã¾ãã
ã¾ããã¹ã¿ã¼ãã¢ããã§ã¯ã¡ã³ãã¼éã§ã®è¡çªãå¤ããªããã¡ã ã¨æãã¾ãããäºãã«åå¨æ¿èªãçºä¿¡ããã¦ããã°ç ´ç¶»ã¯ããªããããªæ°ããã¾ãããã®ç¹ãªã¢ã¼ãã¯ã¼ã¯ã ã¨åå¨æ¿èªãçºä¿¡ããã®ãé£ãããããã¯å¤§ããªèª²é¡ã®ä¸ã¤ã§ãã
æåä½é¨ãç¡ã人ã«ã©ããã£ã¦æåã®æåä½é¨ãç©ã¾ããããã¨ããã®ãè¯ãèªãããåé¡ã ã¨ã¯æãã¾ãããåå¨æ¿èª/è¡åæ¿èªããç©ã¿éãã¦ããã¨ããã®ã大äºãªã®ããããã¾ããã
ã¾ã¨ã
第2ç« ã¯ã¡ã³ã¿ãªã³ã°ã®è©±ã§ãããã¡ã³ã¿ãªã³ã°ã®æè¡ã¯ãã³ã¼ãã¬ãã¥ã¼ãããã¢ãããããã¼ã ããã¸ã¡ã³ãããªã©ã®ã½ããã¦ã§ã¢éçºã®ããã»ã¹ã§ãå¿ è¦ã«ãªãã¾ãã®ã§ãç¿å¾ãã¦ããããã¨æãã¾ãã
ãªããå¼ç¤¾ã§ã¯ç¾å¨ã¨ã³ã¸ãã¢ãåéä¸ã§ãããã®è¨äºãèªãã§ããèå³ããããã§ãããæ¯éãªãã£ã¹ã«éã³ã«æ¥ã¦ä¸ããï¼
ã¹ã¿ã¼ãã¢ããã§ã®çµé¨ããèªã¿è§£ããã¨ã³ã¸ãã¢ãªã³ã°çµç¹è«ã¸ã®æå¾ - 第1ç« - ã
ãä¹ ãã¶ãã§ããåè·ãè¾ãã¦æ ªå¼ä¼ç¤¾Globeeã®CTOã«ãªã£ã¦ããç´10ã¶æãçµã¡ã¾ãããæ¬å½ã«è²ã ãªäºãããã¾ããã åè·ã§ã¨ã³ã¸ãã¢ããã£ã¦ããæã«ç§ã解ãã¦ãã課é¡ã¯
- 大è¦æ¨¡ãã¼ã¿åéåºç¤ãä½ã³ã¹ãã§å®å®éç¨ããããã®ã¢ã¼ããã¯ãã£è¨è¨
- 大è¦æ¨¡ãã¼ã¿åæãå¯è½ã«ããHadoopåºç¤æ§ç¯
ãªã©ç´ç²ã«æè¡çãªãã®ãæ®ã©ã§ããããã©ã¤ãã¼ãã§ã®åå¼·ããã¡ãã«å¯ã£ã¦ãã¾ããã
(âãã®æã«æ¸ããè¨äº)
ãããç¾è·ã§è§£ããªããã°ãããªã課é¡ã¯
- ããå¤ãã®äººã«ä½¿ããããµã¼ãã¹ã«ããããã«ã¯ã©ãããã°è¯ãã®ã
- åãäºç®ã§ããéçºã¹ãã¼ããä¸ããããã«ã¯ã©ãããã°è¯ãã®ã
ãªã©ææ§ãªãã®ãå¤ããç§å人ã®æè¡åã ãã§è§£æ±ºãããã¨ãé£ãããã®ã°ããã§ãã
ã§ãã®ã§æè¿ã¯ç´ç²ãªæè¡åã¨ããããããã¨ã³ã¸ãã¢ãªã³ã°ã®åããã¸ãã¹ã«å¹æçã«åæ ãããããã®åã欲ããã¨æãã¦ãã¾ãã
ãããªãããªã§å æ¥ãã¨ã³ã¸ãã¢ãªã³ã°çµç¹è«ã¸ã®æå¾ ï½ä¸ç¢ºå®æ§ã«åãåãæèã¨çµç¹ã®ãªãã¡ã¯ã¿ãªã³ã°ããèªã¿ã¾ããã®ã§ããã10ã¶æã®å®ä½é¨ã¨çµ¡ãã¦ææ³ãæ¸ãã¾ãã
ã¨ã³ã¸ãã¢ãªã³ã° = ä¸ç¢ºå®æ§ã®åæ¸
ã¨ã³ã¸ãã¢ãªã³ã°ã¯æ¥æ¬ã§ã¯å·¥å¦ã¨è¨³ããããçå¦ãç©çå¦ãåå¦ã®ããã«èªç¶ã®åçã説æãã¦ããå¦åã§ããã®ã«å¯¾ãã¦ãå·¥å¦ã¯ãããã«ä¾æ ããªããä½ãå½¹ã«ç«ã¤ãã®ãå®ç¾ãã¦ããå¦åã§ããã
ä½ããå®ç¾ããã¨ããã®ã¯ãææ§ãªè¦æ±ãæ確ãªä½ãã«å¤ãããã¨ãæå³ãããããªãã¡ãææ§ããæ¸ãããå ·ä½æ§ã»æ確ããå¢ããè¡çºãã¨ã³ã¸ãã¢ãªã³ã°ã¨è¨ããã
æ¬æ¸ã®ã¨ã³ã¸ãã¢ãªã³ã°ã«å¯¾ããå®ç¾©ã¯ç§ãã¨ã³ã¸ãã¢ãªã³ã°ã«å¯¾ãã¦ãã£ã¨æ±ãã¦ããã¤ã¡ã¼ã¸ã¨ããªãã®é¨åã§ä¸è´ãã¦ãã¾ããã
ãã ç§ã¯ãã¨ã³ã¸ãã¢ãªã³ã°ããæè¡ãç¨ãã¦ãä¸ç¢ºå®æ§ãåæ¸ãããã®ã ã¨ç®å°åãã¦æãã¦ãã¾ããã ã¨ã³ã¸ãã¢ãªã³ã°ã¨ããè¡çºã¯ä¸ç¢ºå®æ§ã®åæ¸ãæ¬è³ªã§ãããæè¡çãªé¨åã¯æ¬æ¥ãã®ããã®æ段ã®ä¸ã¤ã«éãã¾ããã
å°ãå ·ä½çãªä¾ãæãã¾ãã ç§ã¯Globeeã«ã¸ã§ã¤ã³ããå½åãããã¸ãã¹ãµã¤ããåºããã¢ã¤ãã¢ãæé«ã®å質ã§ã§ããã ãæ©ãä¸ã«åºãäºããèªåã®å½¹å²ã§ããã¨èãã¦ãã¾ããã
ãã®ãããéçºã«å²ãæéãã§ããã ãé·ãããäºãéè¦è¦ããèªåããã¸ãã¹ãµã¤ãã«æ·±ãé¢ããäºãå«ãå¾åã«ããã¾ããã ããããã¹ã¿ã¼ãã¢ããã§ã¯ã¢ã¤ãã¢èªä½ã®ä¸ç¢ºå®æ§ãé常ã«é«ããããã¾ãåæ¸ãã¹ãã¯ã¢ã¤ãã¢èªä½ã®ä¸ç¢ºå®æ§ã§ãã
ã¹ã¿ã¼ãã¢ããã®ã¨ã³ã¸ãã¢ã¯ããç¨åº¦ã®æéããã¸ãã¹ãµã¤ãã«å²ãäºã§ãçµæçã«ãããã¯ãã®è³ªãä¸ããã®ã§ã¯ãªããã¨æãã¾ãã
ãã¤ã¯ãããã¸ã¡ã³ãåã®çµç¹ã¯å¼±ã
ä¼æ¥ã«ããã¦ã¯ã社å¡å ¨å¡ã®åãæ´»ç¨ããããã«ã誰ãã«æ示ããã¦ãã®èª°ããä»ã®äººã«æ示ãããã¨ããæ示ã®é£éãå¿ è¦ã«ãªãããã®ãããä¸ä½ã«è¡ãã°è¡ãã»ã©æ示ã¯ææ§ã«ãªã£ã¦ããã
å ·ä½çã§ç´°ããæ示ãåºããªãã¨åããªããã¤ã¯ãããã¸ã¡ã³ãåã®çµç¹ã§ã¯ãæ示ããå´ã®ç¥çè½åããã®ã¾ã¾çµç¹ã®ç¥çè½åã«ãªã£ã¦ãã¾ããããæ½è±¡åãããèªç±åº¦ã®ããæ示ã§ãåããèªå·±çµç¹åãããçµç¹ãããå¼±ãã
å¼ç¤¾ã®éçºä½å¶ã¯ä»ã®æãã¤ã¯ãããã¸ã¡ã³ãåã®çµç¹å¯ãã«ãªã£ã¦ãã¾ã£ã¦ãããããã¯èª²é¡ã®ä¸ã¤ã§ãã ããã«é¢ãã¦ã¯å¾æ¥ã¾ã詳ããæ¸ããã¨æãã¾ãã
è«ççæèã®ç²ç¹
è«ççæèã¨ã¯ããªãã¡æ¼ç¹¹çæèã®ãã¨ã§ãããåæã§ããã«ã¼ã«ã¨äºè±¡ããçµè«ãå°ãæèæ¹å¼ã§ããã
- ã«ã¼ã«ï¼äººéã¯çæ»ã¬
- äºè±¡ï¼ç§ã¯äººéã§ãã
- çµè«ï¼ç§ã¯æ»ã¬
ãããæãç«ã¤ããã«ã¯ã以ä¸ã®2ã¤ã®åæãå¿ è¦ã§ããã
- ã«ã¼ã«ã¨äºè±¡ãæ£ããèªç¥ã§ãããã¨
- æ£ããæ¼ç¹¹ã§ãããã¨
äºå®ãæ£ããèªç¥ããããã«ã¯ãèªåã®èªç¥ããã¤ãã©ã®ããã«æªãã®ããç¥ãå¿ è¦ãããã
è«ççã«èããããã«ã¯ãèªåãéè«ççã«èãã¦ãã¾ãç¬éãç¥ãäºãå¿ è¦ã§ãããè«ççæèåã¨è¨ãã®ã¯ããææ çã«ãªãç¬éãç¥ãããã®å½±é¿ãå°ãªãã§ãããè½åã§ãããã¨è¨ããã
å¦åãã¹ãã¯é常1人ã§è«ççãªæèãç¨ãã¦è¡ãããä»äºã¯ç«å ´ã®éãè¤æ°äººã§è¡ããããã³ãã¥ãã±ã¼ã·ã§ã³ã®å¤±æãè«ççæèåãå¶éãã¦ãã¾ããã©ããªæã«èªåã¯è«ççã§ãªããªãã人ã¯è«ççã§ãªããªãå¯è½æ§ãããã®ãã¨ããäºãç¥ã£ãä¸ã§åé¡è§£æ±ºã«è¨ãã®ãè«ççæèã®ç²ç¹ãç¥ãã¨ããèãæ¹ã§ããã
ã¹ã¿ã¼ãã¢ããã§åãã¦ããã¨ãåè·ã¨æ¯ã¹ã¦è«ççã§ãªããªãç¬éãå¤ãããã«æãã¾ãã
ããã¯
- é·æéå´åã«ããèä½çã»ç²¾ç¥çç²å´
- ä¼ç¤¾ã®ãã£ãã·ã¥ãå¾ã ã«æ¸ã£ã¦ããäºã«ããç¦ç¥æ
ãªã©ã®åæã®ã¹ã¿ã¼ãã¢ããç¹æã®äºæ ã«ãããã®ã大ããã§ããå¾è ã«é¢ãã¦ã¯å²ã¨ã©ãããããç¡ãã®ã§ãããåè ã«é¢ãã¦ã¯
- ä¼ãæã¯ãã£ããä¼ã
- å®æçã«éåãè¡ã
ãªã©ã§ããç¨åº¦å¯¾å¦å¯è½ãªæ°ããã¾ãã
ã¾ããèªåãéå»ã«ææ çã«ãªã£ã¦ãã¾ã£ãã¿ã¤ãã³ã°ãæãè¿ãã¨ä»¥ä¸ã®ãããªå ±éç¹ãããäºã«æ°ä»ãã¾ããã
- è°è«ãçµãã¦æ©ãéçºãé²ãããã¨æã£ã¦ããæ
- ä½æ¥ä¸ã«å£°ããããããæ
- è°è«ãé·å¼ããæ(ç¹ã«å¤)
- èªåã®æè¦ãããã«å¦å®ãããæ
ãã®æ¡ä»¶ã«å½ã¦ã¯ã¾ããããªæã«ã¯ãææ çã«ãªããããã®ã§æ³¨æããããã«ãã¦ãã¾ããã¾ãèªåãææ çã«ãªããããç¬éã«ã¤ãã¦ã¯å¨å²ã«ãå ±æãã¦ãããä¾ãã°ä½æ¥ä¸ã«ã¤ã¤ãã³ããã¦ããæã¯ã§ããã ã声ããããªãããã«ãã¦ããã£ã¦ãã¾ãã
çµé¨ä¸»ç¾©ã¨ä»®èª¬æè
ä»äºã§ã¯ãåé¡ã解ãã®ã«å¿ è¦ãªæ å ±ãç®ã®åã«ãªãã®ã§ããã°ãããå ¥æããããã«è¡åããåé¡ãææ°åããå¿ è¦ãããã
æ å ±ãå ¥æããããã«è¡åãèµ·ããã¦ãã®çµéã観å¯ããããããåé¡è§£æ±ºãè¡ãèãæ¹ãçµé¨ä¸»ç¾©ã¨è¨ããéå®ãããæ å ±ããå ¨ä½åãæ³å®ããããã確ãããäºã§å°ãªãæ å ±ããåé¡è§£æ±ºã«åããæèæ§å¼ã仮説æèã¨è¨ãã
ä»ç¾å¨è§£ããã¨ãã§ããªãé£ããåé¡ã¯ããä½ãåããã°åããã®ãããèããããã確ãããäºã«å¤æããã
çµé¨ä¸»ç¾©ã¯ãåç´ã«ããã£ã¦ã¿ãªããã°ããããªããã¨ããè«çã§ã¯ãªãããç¥èã=ãçµé¨ããè¡åã«ãã£ã¦æã«å ¥ããã¨ãããã¨ã§ããããã®ããã«ã¯ããè¡åã§ããäºã¯ä½ããã¨ãè¡åã®çµæèµ·ããäºã観å¯ã§ããããã¨ãã2ç¹ãéè¦ãããã
ãã ã»ããã«ã³ã¯ã観測ã§ããªããã®ã¯å¶å¾¡ã§ããªããã¨ããåè¨ãæ®ãããããã«ç¿ããªãã°ãå¤åã観測ã§ããªããã®ã¯éæ¥çã«ããã³ã³ããã¼ã«ã§ããªãã¨ããäºã«ãªãã
ç§ãã¡ã¯ä½ãåé¡ã«åºãããã¨ããã³ã³ããã¼ã«ã§ããªããã®ããæä½ãã¦ã観測ã§ããªããã®ããæ¹åããã¨ããä¸å¯è½ãªåé¡è¨å®ãè¡ã£ã¦ãã¾ããã¡ã§ããããã³ã³ããã¼ã«ã§ãããã®ããæä½ããã観測ã§ãããã¨ããéãã¦ãã®çµæãç¥èã«ãããããªãã
PDCAãµã¤ã¯ã«ã¯ãä½ã仮説ãªã®ããã¨ãããã¯ã©ã®ããã«ãããæ¨è«ã§ããã®ããã®2ã¤ãæã£ã¦ããå¿ è¦ãããã
ã¹ã¿ã¼ãã¢ããã§ã¯ããã£ã¦ã¿ãªããã°ããããªãããã¨ãããããã£ã¦ã¿ãããã¨ããè«çãå¼·ããªããã¡ã§ãããããã§å¿ãã¦ã¯ãªããªãã®ã¯
- ã©ããã£ã仮説ãæ¤è¨¼ããããã«ããã®ã
- è¡åã®çµæã仮説ãæ£ããã£ãã®ããçµ±è¨çã«æ¤è¨¼ã§ããã
ã®2ã¤ã§ãããã®2ã¤ãæã£ã¦ããªãPDCAãµã¤ã¯ã«ã¯åãã¦ãå®éæå³ãç¡ãã£ãã¨ããäºãå¤ãã§ããæåã®æ¹ã¯èªåããããå²ã¨ãã£ã¦ãã¾ã£ã¦ãã¦ããããPDCAãµã¤ã¯ã«ãä¸æãåãã¦ããã¤ããã ã£ãã®ã§ææªã§ããããã¾ã«ã¾ããã§ä¸æããã£ã¦ãã¾ãã®ãã¿ããæªãã§ãã
ããã¯ã°ãã¼ã¹ããã¯ã®ããã»ã¹ã«ãéãããã®ãããæ°ããã¾ãã 詳ããã¯ä¸è¨ããåç §ãã ããã
ã¾ã¨ã
ã¨ãããã第1ç« ãèªãã§èããäºãã¾ã¨ãã¾ããã第1ç« ã¯å人ã§ã®ä»äºã«ã使ãããããªå 容ãå¤ãã®ã§ãæ¯éè²ã ãªäººã«èªãã§æ¬²ãããªã¨æãã¾ãã
第2ç« ã¯ã¡ã³ã¿ãªã³ã°ã®è©±ã第3ç« ä»¥éã¯ãã¼ã ãçµç¹ã®ä½ãæ¹ã®è©±ã«ãªã£ã¦ããã¾ãã®ã§ãããã«é¢ãã¦ãå¾æ¥è¨äºã«ã§ããã°ã¨æãã¾ãã
ãªããå¼ç¤¾ã§ã¯ç¾å¨ã¨ã³ã¸ãã¢ãåéä¸ã§ãããã®è¨äºãèªãã§ããèå³ããããã§ãããæ¯éãªãã£ã¹ã«éã³ã«æ¥ã¦ä¸ããï¼