タオルケット体操

サツバツいんたーねっと

共通化という考え方はアンチパターンを生み出すだけ説

共通化を指針にするのはおすすめできない

「共通化」というワードはプログラマーであれば誰しもが一度は聞いたことがあるだろう。そしてもうひとつ、それと対称であるかのように語られるのが「コピペは悪」だ。
ここで僕が異議を唱えたいのは共通化を善とする教義についてだ。世間的に共通化を良いものだとする風潮があるようなので石を投げるために書き殴ろうとおもう。

続きを読む

ErgoDoxが高すぎて買う気の起きない人にもオススメできる片手専用キーボードPablo PR200をレビューする

Parblo PR200とは

Parbloという中国で液タブなどのイラストレーター向けの製品を作っているメーカーが出している左手専用のキーボードです。
価格設定が揺れているようですが、最近は5500円で安定しているように見えます。

(右手用のものも存在するようなのですが、日本の人が入手するには現地に行くか公式の通販ページから頼むしかないのかな?)

ちなみに僕はスプラトゥーンでは長らくパブロを愛用していました。

続きを読む

3万円で既存のデスクが可動式スタンディングデスクになるLoctekの製品を試してみた

f:id:hachibeechan:20170429153016j:plain

まえがき

これは以前に書いたhachibeechan.hateblo.jpの続きになります。

また、この記事を書くにあたってはLoctekさんから製品の提供を受けております。

スタンディングデスクとは、またそのメリットとは

続きを読む

Paizaの炎上とIT業界とセックスと緑の自転車

Paizaといえばいつの間にか雑なSIerDisりのポジショントークで各所から顰蹙を買う炎上芸人系サービスになっていたので、後日読んだときにどれの話だよとなりかねないので念のために書いておくと、女を捕まえて調教して金を稼がせつつハレムを作るゲームが炎上した話です。ようは大悪司を水で薄めたみたいなもんでしょう*1
そういえば某社の人事が職権を乱用して夜の面接をしていたみたいな話をゴミタブロイド誌がすっぱ抜いていたのでIT業界は実質エロゲだと言って良いでしょう。

*1:個人の感想です

続きを読む

「Reactの難しさ」を分解しよう

  • 他のライブラリと比べるまえに
    • まず、ReactとjQueryと比べるのはやめよう
    • 「テンプレートエンジン」として捉えて、シンタックスを攻撃するのをやめよう
  • ライブラリとしてのReactはとても簡単
    • Reactの思想を理解するのはチョットムズカシイ
    • 環境構築が難しい
  • JavaScriptそのものが難しい
  • GUIが難しい
    • jQuery時代からのパラダイムシフト
    • フレームワーク関係者の情報量が多い
    • SPAはとりわけ難しい
  • まとめ

ずっと感じてたもやもやを書き連ねたら長くなってしまったが、ぼんやりとReactとかなんか難しそうだしめんどくさいから新規案件だけどjQueryでやろっかなどうしよっかなーと迷っている人の指針になってくれればうれしい。

他のライブラリと比べるまえに

まず、ReactとjQueryと比べるのはやめよう

出た時から延々と言われ続けているものの、やっぱり今でもjQueryとReactを「比較」するようなことは行われていたりする。
これらは「DOMを操作する便利API集」と「GUIを構築するためのViewライブラリ」で、両者は戦場が同じだから下レイヤの操作はブラウザのDOMを叩いているというだけで、そもそも思想や目指している部分は全く違う。

そして今やWebアプリというものは、本格的なGUIアプリケーションを作る場所へとなりつつ(あるいはすでに)ある。
そういう世界観で、ブラウザAPIが簡単に叩けるだとか、タイプ数が少なくて済むという話があまり本質的でないのはお分かりいただけるだろう。各ブラウザベンダーが少しづつ足並みを揃えて標準化が進み、リッチなユーザ体験を提供するという段になって必要になるのは思想でありアーキテクチャであり、それを落とし込んだフレームワークだ。Win32 APIとMMVMのどちらが優れているかという議論をする人はいないだろう。それと同じである。

GUIアプリケーションを構築する際のハードルについては色々と存在するが、まずStateとViewの関係性を健全に保つことの重要性は皆同意するところだとおもう。MVCがやりたいことも突き詰めればそれだ。
ReactはViewがもつState*1とそのPresentation(ブラウザであればDOM)の流れを管理するというのがその目的で、addEventListenerは長いから短くしましょうとか、DOMの操作をメソッドチェインでクールにキメるぜというのはその思想の外側に存在する。

「テンプレートエンジン」として捉えて、シンタックスを攻撃するのをやめよう

後述するが、つまるところReactの目的は状態の管理と、そこからレンダリングされるViewが常に再現可能なことにある。ReactがシンプルにしたいのはStateをどうレンダリングするかの流れで、テンプレートのシンタックスなんかはその本質から少しはずれる。
なのでJSXは、単純にJavaScript側でオブジェクトのツリーを人間にやさしい形で構築できるようにするためのDSLで、それは目的でも手段でもない。

一時期、Riot.jsとかが炎上マーケティングっぽいものをしかけてきててもイマイチ盛り上がらなかったのも恐らくそこが原因で、当時Reactにうおーすげーってなっていた人が見ていたのは関数型的な思想をWebのViewの世界へ良い感じに持ち込んできたところで、そこに「HTMLの中に書けるシンタックスでコードが短い!」というぶつけ方はまるで見当違いだったのだ。もちろんイケてるシンタックスでコードが短いのは大事なことだけど、その下敷きになっている思想がセクシーであることが重要になる。

ライブラリとしてのReactはとても簡単

*1:誤解を招きそうな表現だが、Storeで管理されているStateとComponent特有のStateというのは管理されてしかるべきで、ReactがStateを持つのもそういった理由による

続きを読む