条件付きな構文が多い昨今のNode.jsのアロー関数の構文をまとめてみた

シンプルすぎて難解?昨今のNode.jsのオブジェクト周りの構文をまとめてみたに続いて、今度はアロー関数編です。 おそらく今まではこんな感じで関数を書いてたと思います

function hoge (options) {
    return 1
}

それがアロー関数の構文を使用すると、const hoge = options => 1なります
めちゃくちゃ短くて楽、特に高階関数とか書き出すと欠かせない書き方なんですが、構文のルールが結構複雑なので纏めてみようと思います

ちなみに、アロー関数におけるthisやスコープの話はしません。あくまで構文の話だけにとどめます。

Node.jsのProxyでdirty checkとmethod missingを実現してみる

過去にphpのマジックメソッドを使ってRailsのfind_all_by_*メソッドを実装してみる | WEB EGGという記事を書いたのですが、Node.jsでもProxyの登場により、似たようなことができるのでは? と思ったので試してみました。

今回の題材は、同じくRailsのActiveRecordから、ActiveModel::Dirtyモジュールです。

person = Person.new
person.changed? # => false

person.name = 'Bob'
person.changed?       # => true
person.name_changed?  # => true
person.name_was       # => nil
person.name_change    # => [nil, "Bob"]
person.name = 'Bill'
person.name_change    # => [nil, "Bill"]

こんな感じに変更を検知するためのマジックメソッド、ユーティリティが加わるモジュールだそうです。

昔であればBackbone.jsのモデルが似たような仕組みを提供していました。
ですが、あれば独自のセッタを提供しており、それを利用しているから変更が検知できるという仕組みです。 いわば白魔術です

今回は、 独自のセッタ を提供せず、普通にオブジェクト操作しているだけで変更検知ができちゃう機能の実装を目指します。
白魔術に対して言うなれば、黒魔術です。

ちなみに使用しているNode.jsのバージョンはv6.1.0です。

ChatworkだってSlackしたい!!

なんとも日本語が不自由な感じのタイトルですが、始めます。
普段仕事でChatworkを使っているのですが、どうにもUIが好きになれない。

別に使いにくくはないんですが、趣味でSlack使ってるせいでどうにも馴染めません。
でも仕事で使うのでどうにかして向き合わなければならない。

ならSlack使ってる感覚に陥るChatworkであれば違和感なく使えるのでは…?
ということで試してみました。

MMDのモデルにブラウザで踊って頂いた

2016/12/03 末尾に追記しました

この記事は12/3 Three.js Advent Calendar12/4 Hamee Advent Calendarの記事です。
もう半年以上前の話ですが、猛烈にドリームクラブというゲームの実況にハマりまして、あまりにハマりすぎて 「ノノノちゃん踊らせたい! ! ! 歌ってほしい!!」 と思い、
それと同時期にスプラトゥーンの実況にもハマっており、ハイカラシンカを踊るアオリちゃんとホタルちゃんが可愛すぎて 「二人ともぎゃんかわ! ! もう手中に収めて無限ループしたい!!!」

とか思い、 「ブラウザでもMMDしたい! ! !」 と想いからthree.jsMMD.jsを使ってみた話を。