====== マインドマップ ======
===== Kotlinマップ =====
@startmindmap
* Kotlin
** 関数
*** 単一式関数
** 無名関数
*** ラムダ
** 高階関数
*** 関数型プログラミング
** クロージャー
** ジェネリック型
*** 不変・共変・反変
** コルーチン
** クラス
*** 無名内部クラス
**** SAM変換
*** enum
**** ADT(代数的データ型)
*** shieled
** ktor
** assertK
** DbSetup-kotlin
** Hamcrest for Kotlin
** オブジェクトキーワード
*** オブジェクト宣言
**** 初期化ブロック
*** オブジェクト式
*** コンパニオンオブジェクト
** TEST
*** Mock
@endmindmap
===== 用語 =====
* 単一式関数 … なぜかprintlnができない。。。
* 高階関数 … 他の関数を受け取るor返す
* ラムダ(lambda) … 無名関数。ラムダ式。ラムダの結果。
* 不変(Array) … 同じ型でなければならない。(そもそもlistは不変ではない)
* 共変(out) … 上位の型に下位の型を入れることが出来る。設定といっても初期値(val)として。取り出す(参照)ときには上位の型として取り出す。
* 反変(in) … 下位の定義を上位の定義を設定できる。 設定とはvar変数に値をいれること。参照するときは上位の型として参照する。
* オブジェクト式 … スコープがどこで宣言するかに依存。ファイルレベルならすぐ初期化。クラス内部ならクラス初期化時初期化。
* コンパニオンオブジェクト … 他のクラス内部で宣言。クラス初期化時に初期化。もしくは直接呼び出したとき初期化。
====== JavaScriptマップ ======
@startmindmap
* Javascript
** Angular
** React
*** TypeScript
*** create-react-kotlin-app
** API
*** Express
*** JsonServer
@endmindmap
===== JavaScript用語 =====
*
====== Otherマップ ======
@startmindmap
* Front
** テンプレートエンジン
*** EJS
*** pug
*** HAML
** タスクランナー
** CSSプリプロセッサ
*** SASS
*** PostCSS
** Javascriptトランスパイラ
*** Babel
*** Typescript
** フレームワーク
*** React
*** Vue
*** Angular
** モジュールバンドラ
*** CommonJS
*** AMD
** 構文チェッカー
*** eslint
*** stylelint
@endmindmap
@startmindmap
* NPM
** npx
** nodist
@endmindmap
@startmindmap
* プログラム
** メタプログラミング
*** DSL
**** Ruby on Rails
@endmindmap
===== Other用語 =====
* NPM ... Node Package Manager
* NPX ... ローカルにインストールしたnpmパッケージを、npxコマンドだけで実行できる。[[https://qiita.com/tonkotsuboy_com/items/8227f5993769c3df533d|npm 5.2.0の新機能! 「npx」でローカルパッケージを手軽に実行しよう]]
* [[https://gihyo.jp/admin/feature/01/dsl/0001|DSL(Domain Specific Language)]] ... ある特定の種類の問題に特化したコンピュータ言語。