そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

2014年の個人的なWeb系技術ネタまとめ

今年はあまり期限に追われなくてもよいポジションになったこともあり、本業に直接は関係ない部分にも色々と手を出すことができた。

そんなわけで世間的には必ずしも「今年のネタ」ではないが、個人的に得るものが大きかったネタについて。

Redis

memcachedと比べると単純な速度では劣るものの、データファイルがバックアップされるため永続性を求められる用途にも使用しやすく、様々なデータ型を活かせば非常に便利だったりする。

仕事では昨年からソート済みセット型を使ってリアルタイムランキングなんかを作ってもいたが、今年はセット型をユーザ属性の解析なんかでよく活用した。

Redis入門 インメモリKVSによる高速データ管理 (アスキー書籍)

Redis入門 インメモリKVSによる高速データ管理 (アスキー書籍)


セット型は順不同で同一値は重複しない形でデータを保存する。

そして、あるセット型データと別のセット型データとの和集合や差集合などを簡単に取得することができる。

これを用いて特定の属性のユーザをリストアップしたり、逆に特定のユーザの動向を調査する上で有効だった。

Fluentd

もはや業界標準な感すらあるログ収集ツール

職場的にはもうすでに各種ゲームサーバからのログを集積サーバに集約するために用いてはいたが、更にそのログを(ほぼ)リアルタイムで解析スクリプトにかませる術を身につけたことで色々とできることの幅が広がった。


そこそこサイズ感あるサービスだとサーバの台数も多くなり、後追いで時系列に依存した解析をするのは困難になってくる。

ましてや刻々と変化するユーザステータスなんかと絡めた解析をしたい場合、通常ならシステム側への仕込みなんかも必要になる。

しかし現実には(ソシャゲ屋さんにはありがちだと思うけど)工数かつかつで開発メンバーに依頼しづらかったりもするわけだが、その辺リアルタイム解析ではシステム側とは完全に独立して作れる気楽さがある。

Docker

昨年はChefに手を出してみたものの、正直覚えることが多くてしんどかったのと、本業的には接点が少なく個人的にもバーチャルマシンをガンガン立てられるような環境でもなかったのですっかり熱が冷めてしまった。

とはいえ「アプリ環境の管理」みたいなとこへの欲求はあった所で、ちょうど良く話題になっていたのがDocker。

今更ながらCentOS6.4にDocker導入してみる - そんな今日この頃でして、、、

VirtualBox的なハードウェアレベルでエミュレートするもの(ハイパーバイザ型)と異なり、アプリケーション環境のみを作成する(コンテナ型)ため、パフォーマンス的にも操作の気楽さ的にも要求にマッチしていた。


王道はDockerfileで全てまかなうことなのだろうけれど僕はまだそこまで行けてなくて、必要に応じて仮想環境に入ってコミットするような使い方になっているが、それでも便利さは実感するところ。

PhantomJS

PhantomJSはJavaScript APIにより操作できるヘッドレスなWebKitブラウザ

個人的にはより簡潔に操作できるユーティリティであるところのCasperJS越しに使用したりする。

CasperJSで動的ページをスクレイピング、あるいは毎月100円ゲットする方法について - そんな今日この頃でして、、、


Webkit内蔵ということで昨今のAjaxガリガリのページをスクレイピングすることもできるし、そういった機能のテストに使用することもできる。

AngularJS

何のかんので今じゃJavascriptフレームワークのど本命な感すらある。

AngularJSリファレンス

AngularJSリファレンス

僕個人としてはそこまで本格的なアプリを組むとこまではいってなくてインタラクティブな管理画面を作成するのに使う程度だけれど、それでもデータバインディングは非常に楽だし、ディレクティブなんかのおかげでソースも見通しやすくもなり、工数削減とメンテナンス性の向上に大いに役立っている。

特に要素数が不定なものを設定するような管理画面では、jQueryでシコシコとDOM生成してた時に比べると10倍は作成の効率が上がった気がする。


もっとも、本職のJavascriptおじさん達は蛇蝎の如く嫌ってたりするし、僕自身用途的に過剰な気はしているので、来年は評判の良いVueJSあたりに手をだしてみたいところ。

最近目にする機会が増えてきたReactも気になるところではあるが、イマイチ仮想DOMという発想自体が周りくどいものに思えて食指が動かない。

それでも良さそうなネタがあれば触ってみようとは思うけどね。

番外

個別に書くほどでもないけど、シェルでフォアグラウンド・バックグラウンドの切り替えとか、引数をループで動かしながらのスクリプト実行とか、スクリプト書くまでもない程度の抽出をawkで記述するなんてのをできるようになったことで裏方業務の効率が凄く上がった気がする。

あと、CasperでのECサイトのだったり炎上サイトの謝罪ページだったりと若干アレなチョイスではあるけど、他人の書いたコードを読むというのは勉強になるなと感じた。

非実在小学4年生の謝罪ページのJSを読む - そんな今日この頃でして、、、


業務上非エンジニアと関わるようなことが多くなってきたし、そういう人達との話し合いでは"見える部分"が重要だったりするわけで、裏方業務といえどもJavascriptまわりの技術は身につけとくと得だなーと痛感する昨今。

Javascriptの比重が上がってきた割に今だにフロントのパッケージ管理とかはさっぱりなことに危機感を覚えてたりもするので、来年(というか正月休み中に)はYeomanあたり身につけたい。