Webアプリケーションの高速化
Webアプリケーションの高速化をクライアントサイドとサーバーサイドで両方やりました。 すごいでしょ。
TextAEの描画を高速化した
TextAEというのは文章についた注釈をビジュアル化してみせるJavaScriptのアプリケーションです。 ブラウザで動きます。 注釈はdiv要素やSVGで描画しています。 8万文字の文章に2万注釈ついたデータがありました。 この描画に120分くらい掛かっていました。 ブラウザの表示領域に入っている注釈だけ描画するようにしました。 約6分で描画できるようになりました。 20倍くらい速くなりました。
PubAnnotationの注釈アップロードを高速化した
PubAnnotationという注釈のついた文章を管理するアプリケーションがあります。 前述のTextAEのバックエンドだと思ってください。 PubAnnotationには注釈のついた文章を一括でアップロードする機能があります。 7万文章をアップロードすると7時間ぐらい掛かっていました。
これはSQLの部分とテキスト処理の部分でそれぞれ時間が掛かっていました。 SQLを工夫して2.2倍速くしました。 テキスト処理にRactorを導入してさらに1.2倍速くしました。 Ractor入れて1.2倍というのはあんまり期待した感じではないです。 これはRactorが効かないというよりは、見落としていたIOバウンドな処理があって足を引っ張っているようです。 あわせて2.6倍です。
PubAnnotationの高速化の詳細は、自分でもうまく整理できていません。 別の記事にするか社内発表にするか、もうちょっと詳しく整理する時間をとりたいと思っています。
開発チームの立ち上げ
いままで長く維持するチームに所属したことがありません。 概ね一年未満だったと記憶しています。 今回、年をまたぐような長期の開発に参加する機会を得て、あらためて開発チームを立ち上げました。
人をあつめるところからでした。 せっかくなので「ふりかえり」もちゃんとやろうと思って、あらためて「これだけ!KPT」を読みました。
Keep出しに何分とか時間を決めて運営しています。 ちゃんとルールを決めるとファシリテーターを交代しやすくていいですね。
いままで、開発の隙間とか終わりとかにスポットでKPTをやったことはあります。 継続して定期的にやったのははじめてです。 継続してやると、いろいろな使い方が出来て面白いです。
- チームのグルーミング
- 新しく入ってきた人との交流
なんかは予想していたとおりでした。 これ以外にも
- 事務処理を期日までに終わらせる
- 健康のために筋トレする
みたいなTryをあげて実践する使い方が出来たのは意外でした。 面白かったです。
一定期間で成果をあげるためのチーム管理でなくて、長期的に成果を上げ続けるためのチーム管理というのは、なかなか新鮮です。