フロントエンドがざっくり出来て、なんだ割と簡単にできそうじゃん、って思ったのも束の間、バックエンドで大いにハマりました。
その一部をご紹介。
前回までの記事はこちら。
初めて一人でWebサービスを作った手順をまとめてみた(1)
初めて一人でWebサービスを作った手順をまとめてみた(2)
7. ImageMagickでハマる
PDFをアップロードしてJPGにして、それをユーザーが閲覧できる、みたいなシステムを組みたかったので、そういうのができるツールがないか探し回って見つけたのがこれ。
ググってもすぐヒットして、インストールも楽そう。なので、これでいってみよう!と気軽に試してみました。
やりたかったのは、以下のようなこと。
- アップロードファイルのPDFを1ページずつにバラして、JPG(or PNG)保存(指定サイズにリサイズ)
- 同じタイミングで最初の1ページを切り出して、DBにサムネイルとして保存
- 上記の処理をコマンドラインではなくPythonから操作したかった
やりたいことの2点目はWandのままでできたけど、一連の処理がとにかく遅い。これは今もそのままになってて、改善予定のトップにあります。Wandのせいかはわからないけど、時間とか計測していった感じ、ここなのかなと。
結局、やりたいことが完全には実現できなかった上に、情報も少なくてかなり時間がかかった。。
8. Twitterログインでハマる
当初は、自前のログインシステムではなく、Twitterアカウントでログインする形式を考えてました。https対応とかやったことなかったし、正直ちょっと興味もあったし。
以前ドットインストールでPHPのレッスン見て、いけそうだなって思ったのでやってみました。
ところが、PHPとPythonなので、使用するライブラリが違って結局いろいろ調べる羽目に。
結局ググれば見つかるんだけど、どれがベストプラクティスなのかわからなかったし、エラーが出るたびにググってた上に、自分が使ってたBottleというフレームワークはデフォルトではセッション管理機能を持ってないので、その対応に追われたりして意外と時間がかかりました。。
ただ、実装自体はそこまで苦労はしなかった印象。
9. 自前ログイン機能の構築でハマる
前項で、Twitterログインはできたんですが、悩んでました。
誰が作ったかわかんないWebアプリと、Twitterを連携させたい人なんているのか?と。
実際、私も信用できるかわからないサイトはソーシャル連携させないで、メールアドレスでユーザー登録してるし。
怪我の功名とでもいうのか、開発がずるずる長引いてる間に昨年12月頃かな?Let's Encryptというサイトで無料のSSL証明書を発行してくれるようになったので、これ幸いとばかりに申請。
その構築はググればできたんですが、今度は一度はスコープから外した自前ログイン機能が復活したので、設計・実装・テストと一通り工数がかさみました。
最終的には何とかなったので良かったです。
やっぱ嫌ですよね、Twitterアカウント使うの。。
一応Twitterログインの機能は残してるので、後々何かに活かしていければと思っています。
10. mod_wsgiでハマる
これもググれば何とかなったんですが、Bottleをmod_wsgiで動かす方法がわからないとか、ソースコード書き換えても反映されなくなるとか(gulpを使って回避しました)、いろいろハマりポイントが…
ハマったポイントは他にもsendmail周りとかいろいろあるし、ほとんどの原因が経験値不足だったので、一度ハマるたびに調べて試して身に付けて、とやってたので、面白いようにスケジュールがずれこんでいきました。
でもここまで対応したらもうだいたい動くようになってきたので、リリースを意識し始めた感じです。
続く。
次回くらいで振り返りも完結しそうな気がします。