ちょこちょこWebアプリを書いてる

私がIT系に入って一番最初にやったバイトがインフラ系で、主にサーバの運用をしていたので、どちらかと言えばインフラ、ミドルウェア周りに興味があったし知見もあった。 そのバイトを始めとして色んな環境に身を置かせてもらっていたんだけど、ネットワーク機器とか、Infrastructure as a codeみたいな事とか、どちらかと言えばレイヤーが低めになっていった。

ただ、一応Web系に身を置いている人間として、Webアプリすら書いたことないのはどうなの、という話になり、それはその通りだと思いちまちまとWebアプリを書いている。

リポジトリはここ。使ってる技術的にはFlask(Python)+MySQL+Redisだろうか。

github.com

アプリケーションの内容的には、QiitaのAPIを叩いて検索とか出来るようにしている。Qiita Frontend Alternative?になるのかな。

本当に経験が無かったので手探り手探りでやっている。

DBとかはチューニングの為にたまにクエリを見たりしていたのでまあまあ存在価値は分かっていたんだけど、Redisはなんとなく「セッションを管理してるんだろうな」ぐらいの認識で、イマイチセッションがどう使われるのかとか分かっていなかったけど、何となくわかってきた気がする。

まだ分かってないのは、gitの扱いがちょっと怪しい。特に、「とりあえずコミットしたいんだけど秘匿情報がまだ含まれてる」とかの場合にどう扱うのかがピンと来てない。その時々で対処法が違うからここは勘を覚えるしかないのかなあ。

やったこと

  • QiitaのAPI叩いて取得する
  • タイトルとユーザIDで検索する
  • アカウントはDBで管理する
  • ログインしているユーザセッションはRedisで管理する
  • Herokuで動くようにする
  • Dockerでも動くようにする(というか開発環境は docker-composeMySQLとRedisを立ち上げている)

今後のTODO

機能

  • お気に入り機能
  • ユーザ登録機能

技術

とりあえず聞いた事があるこの辺を実装はしたいと思っている

まとめ

時間の隙間を見て実装していて、またフルフレームワーク(DjangoとかRailsみたいなやつ)を使わずにちょこちょこやっているので進捗はかなり遅いんだけど、まあ充実感は大きいので良かったかなと思っている。

あと、Pythonは割とふわっと書けるので便利。vimの機能でPEPに準拠しているかどうかをチェックする奴を自動で動かすようにもしているので、一定の水準を持ってふわっと書けるのが良いのかもしれない。

少し前にGolangでWeb書いてたら中々しんどさを感じたのでPythonにしたんだけど、まあ今の所言語を切り替える予定はない。

また何かあったら報告します。Flaskの知見ももうちょっと溜まったらアウトプットしたい。

ついでにコードのここが筋悪とかここはイケてないとかあったら教えてください。