読者です 読者をやめる 読者になる 読者になる

2017年3月21日

テストフレームワーク

amakan で使うライブラリにテストを書くついでに、テストフレームワークをつくった。ついでに PowerAssert にも対応してみた。DSL とかの便利機能は大体プラグインにして本体とは分けようとしているので、関連ライブラリをまとめるために petitest org をつくることに。

テスト結果のサンプル。カラースキームを自分で設定したりもできる。

f:id:r7kamura:20170322092809p:plain

Terraform

EC2 周りのリソースを Terraform でコード化する作業をやった。CloudWatch と Autoscaling を連携させる辺り (の AWS の仕様) が難しめ。Autoscaling Policy 周辺は特に経験を元にした値が設定されやすい傾向にあると思うので、コードで管理して、レビューしたりコミットログを残したりできるというのは非常に便利。

チェリーコーラ

仕事の都合で白金台に住んでたとき、近所のハンバーガー屋が (350円で…) 出してたチェリーコーラが美味かった記憶があるんだけど、自分で発注してみたら思ったより美味しくなくて微妙。食べ合わせの問題、温度、グラスの形など色々要因があるかも。あと海外からの輸入品だと製造年月が古かったりして、今回届いたやつは香りや炭酸がちょっと抜けていて残念。

おいしいパスタ作ったお前

友達がオススメしていたのでこのパスタ買ってみたんだけど、食べごたえがあってとても良い。繊細な具材だと負けるので、トマトとかクリームとかが合う。

ガロファロ フェットチーネ 500g

ガロファロ フェットチーネ 500g

広告を非表示にする

2017年3月20日

テストフレームワーク

  1. amakan books で使うライブラリを amazon-ecs から rapa に置き換えようとする
  2. rapa に足りない機能に気付き実装を追加する
  3. rapa にテストが無いことに気付く
  4. テストフレームワークをつくりはじめる ← 今ここ

https://github.com/r7kamura/petitest

広告を非表示にする

amakan new relic 2017-03-19

amakan books のDBスキーマを新しく設計するにあたり、性能面で問題となっているところを洗い出す活動を始めた。第三者にとっても何かの参考になるかもしれないと思い、無償版の New Relic で計測した過去24時間のデータのキャプチャを貼ってみることにする。

Overview

f:id:r7kamura:20170320231408p:plain

リクエストの少ない小規模なサービスなので、平均値や中央値で見るとまあそこそこ妥当な結果だと思う。ちなみに Docker, Puma, Rails, MySQL, Redis, t2.micro という感じの構成。DB 設計の歪さから、大量の MySQL のレコードを取得している箇所があり、しかもサボって各レコードごとに Ruby の豪華なクラスのインスタンスを割り当てているので、そこがボトルネックになっているかもしれないなという推測をしている。

Transactions

f:id:r7kamura:20170320231258p:plain

新刊リストの iCalendar のデータを返しているところがやけに遅いことが分かる。RSS は発売済みのものだけ返せば良いが、iCalendar はカレンダーなので過去未来すべての新刊データを返す必要があり、苦しいことになっている。やはり新刊リスト計算処理が簡単になるような DB 設計にしなければならない。

2017年3月19日

しょぼいデータ

amakan books、amakan anime 共に、収録している冊数、話数、シリーズ数、ユーザ数など、サイトに関する統計情報を表示してみることにした。

amakan のような個人が運営しているサービスは、基本的に信頼性に乏しく、データの透明性を向上するなどして少しでも利用者に信頼してもらえるような取り組みを行っていった方が良いだろう、というのが大きな理由である。勿論明かさないほうが結果的に良く回るデータというものも当然存在するので、考えなしに全てのデータを掲載するというのも誤った判断だと思うし、適切な情報を選択して公開していければ良いなと思う。

また別の理由として、個人で運営している小さな Web サービスの小規模なデータに価値があるなと感じていることもある。自慢できるほどに良いデータで無い限りは、サービスの統計情報というものはなかなか公表されにくい風潮にある。これは、ああ意外としょぼいんだと思われてしまうリスクがあることが理由の1つだと思う。

個人で開発している小さな Web サービスのデータなんてしょぼくて公開できないよ、という気持ちは理解できるものではあるけれど、そういう調子では、小規模・中規模・大規模なサービスへと地続きに成長していく様子がなかなか窺い知れず、個人開発者達が成長計画を描きにくい世界になりがちだと思う。なので、こういう段階でデータを公開することは個人開発者にとっても有益であるだろうと考えている。

新DB設計

amakan books のDB設計を刷新しようと画策している。amakan books にはこれまで、

  • 電子版とコミック版を同じ本としてまとめるべきなのにまとめられていない
  • 旧版と新装版をまとめるべきなのにまとめられていない
  • シリーズが誤判定されてしまっている
  • それらが浄化されていく仕組みが無い

…という悩ましい問題が存在していた。これに対して「amakan anime をつくって修行を積むことで強くなってから解決しよう」ということで1月から2月にかけて動いていて、いま相当強くなったのでようやく着手し始めたところ。とりあえず昨晩右腕を振り下ろしてみたところ、新しいDBスキーマとモデルの実装が完成したので、Amazon Product Advertising API 用のクライアントライブラリをつくっている - ✘╹◡╹✘ で紹介した新ライブラリへの移行と、旧データからの移行処理を実装している。

広告を非表示にする