生涯未熟

生涯未熟

プログラミングをちょこちょこと。

LGTM Generatorというサービスを作りました

GithubでPullRequestのレビュー時に付けられるLGTM画像。
その画像をGoogle画像検索→加工→ダウンロードとワンストップで作成出来るサービスを作りました。

LGTM Generator

f:id:syossan:20150801050527p:plain


最初の着想はPHP界隈で有名なuzullaさんが作ったLGTM Editorでした。
よくLGTM画像を作るのに使っていたのですが、Googleから画像をダウンロードしてからLGTM Editorで加工するという手順が凄く面倒だったので、
ならそれをワンストップで出来るサービスを作っちゃおうという感じで開発しました。

かなり参考にさせていただいたので、ソースでもかなり似てしまった部分が多いです。
syossan27/lgtm-generator · GitHub

技術的なお話

今回作成するにあたって、MEANスタック開発で行うという一つの目的がありました。
paizaさんの技術ブログで

paiza.hatenablog.com

という記事を拝見させて頂き、「JavaScriptでフロントからバックエンドまで書けるのは凄い!」と思い目的にしました。

実際にはMであるmongoDBを全く使ってないのでEANスタック開発なのですが、継続的に開発していってmongoDBを使う場面も設けたいです!


で、やってみた感想としてはAngularJSもExpressもNode.jsもほとんど触ったことがない状態で約1週間ほどで完成出来たスピード感は素晴らしかったです!
generator-angular-fullstackでテンプレートサイトが用意されており、これをちょろちょろっと弄るだけでも見れるサービスがすぐに作れます。
さらに、構成自体もベストプラクティスなもので構築されているので文句なしでした!

あと、npmを初めて覗いてみたのですがかなり充実してます。
「あっ、あれあるかな?」と思ったパッケージは大体ヒットするので、不満に思うことはないはずです。
ただし、npm searchでパッケージを探すのはクッソ時間がかかるので、公式サイトから検索をかけるのが吉です。


そしてもう一つ、npmでヒットするパッケージの中にはかなり粗悪なものもあります。
こういった粗悪なものを見分け方として、スター数を一つの基準としてみるだけでも大分違うはずです。

そういえばgenerator-angular-fullstackでは簡単にHerokuにデプロイできる点もGoodでした。
僕のHeroku童貞が今回のサービスで切られたのですが、Herokuかなりいいですね。(間違えて有料アドオンを入れて無駄な料金かかってしまいましたが・・・


ちょっとうーんと思ったのはデバッグ周りですかね。
デバッグツールを僕が知らなかっただけなのかそもそも無いのか分かりませんが、とりあえず吐かれるエラー文が分かり辛い。
書いてあることとは全然関連性の無いところでバグっていた時はキレそうになりました。

あと、AngularJSの独特のイディオムが覚えにくいというか、ややこしいというか・・・
これかな?と思ったことが尽く通用しなかったりほとほと手を焼きました。
次はVue.jsなど他のものに手を出してみようかな?

まとめ

やはり新しいことを勉強するには何かを実際に作ってみるのが一番ですね!
おかげでQiitaへの記事投稿が著しく増えましたw

サービスとしてまだまだなとこがあり過ぎるので、ちょこちょこ改善を加えながら勉強していきます!