tekitoumemo’s diary

C#、.NET系の技術ブログを書いています。みんなの洋楽ランキングを運営しています。

わりとまじめにサービスを作った

f:id:tekitoumemo:20180404002131p:plain
ずっとWEBサービスを作りたいと思っていて、時間やアイデアなどなかなか思い浮かばなくてずっとやらずにいましたがもう諦めついて

「趣味をWEBサービスにしちゃおう!」

と思いわりとまじめに作りました。それがこちらです。

mygkrnk.com

みんなの洋楽ランキングは最新の洋楽ランキングの情報を発信している。気になる曲のランキングや内容。アーティストの情報など詳しく載せている。洋楽の初心者から上級者まで楽しめる。Youtubeのランキングや再生回数などから最新洋楽ランキングを見れる

「みんなの洋楽ランキング」とは

ビルボードランキングを通じて洋楽を身近に感じるようなサービスです。洋楽の情報は散乱していて、個人のブログがメインなので、もう少しまとまっててもよいのかなぁと思いますし、日本で流れている洋楽は外国でヒットしてから半年〜1年前のものが多く、ちょっと出遅れている感が否めないのでとっつきやすくわかりやすいサイトがあると良いと思いました。今現在、Youtubeと同じぐらいに強力なメディアとされているSpotify VIRAL Top 50の日本ランキングにエド・シーランの「Shape Of You」が2位になるなど、日本国内でも洋楽はメジャーな音楽になっていることがわかります。 
spotifycharts.com

作った技術について

C# 7.0
.Net Framework 4.7(大失敗)
Azure Web Service
Azure Database
Jquery
BootStrap
API Reference  |  YouTube Data API (v3)  |  Google Developers

基本は.Net Frameworkベースの技術で、WEBサーバーなどははPaasであるAzureを選定しました。ここらへんは他の記事で深く書こうと思っているので深くは書きません。

このサービスでこだわったところ、こだわり続けたいと思っているところ

「洋楽」のキーワードを軸に

サービスを作る上で、そのサービスがどうあるべきか、どうなったらよいかを考えるのは非常に重要だと思います。このサイトは日本の洋楽情報をまとめたプラットフォームとして成り立たせることを目的としているのでこの軸は絶対にずらさないようにしたいと考えています。SEOでも、ここの軸がずれると大幅に順位を下げたりするので一番大切なことかなと思っています。

会員登録などのユーザー操作が複雑な改善は極力しない

「みんなの洋楽ランキング」はメディアサービスなので、会員登録などのフローは入れない予定でいきます。ここは僕の勝手な考えですが、会員事業というものはここ数年で流行らなくなるなっている気がします。前職で自社サービスを運用していましたが、ただでさえ流入を増やすのが難しいのにさらにメールアドレスを用意させ、登録させ、本人確認させるというフローはサービスに対して本気でなければやらないので、メディアサービスとして展開するのであれば絶対にいらない機能だと思います。以下の記事を書いた子は大学生なのに的確なことを記事にしていて納得させられました。
www.eggineer.info

更新し続けられるように仕組み

洋楽のランキングは1週間でほとんど入れ替わりがないので、比較的更新するのが楽です。外出先でも、ちゃちゃっと更新出来るような仕組みを作りました。デザインはダサい(ユーザーに見られないから問題ない)ですが、曲名はプルダウンで設定でき、ランキングの数値は自動で付与されます。ランキング自体は1分程度で更新出来ていますので、良かったかなと思います。
f:id:tekitoumemo:20180404010308p:plain
さらにこの紹介ページの文章など、通勤時間にググったことを書き溜めて登録すれば反映されるので非常に楽です。最近は書くのすらめんどくさくなっちゃったので、iPhoneのマイクを使って文章化しています。
f:id:tekitoumemo:20180404011302p:plain

めんどくさいところは究極に手を抜く

私の場合はインフラやデザインは得意でなく、好きでもないので究極に手を抜きます。プログラムの部分は時間をかけて、他はお金で解決するか仕組みを持ってきて改善するか心がけます。Azureは本当に楽で全く苦労せずにデプロイまで持ってこれました。お金はかかりますが、状況見てスケールアップするなど、かかる費用をコントロール出来るのも最高です。VPSも考えましたが、今の需要はVPS<Paasになっていますので学習コストと考えればかかる費用もそんなに気にならないと思います。貧乏暇なしというのはこういうことだったんですね。まぁそこまで高くないですよ。
f:id:tekitoumemo:20180404013200p:plain
Railsが個人サービスの記事に取り上げられている理由の一つがHerokuでGithubにデプロイしたらリリース出来るので、Web系の手軽さが良いのだと思います。

どのぐらいの期間で作ったか

思い立ってから3ヶ月ちょっと程度かかりました。実際は、仕事探したり、式の準備したり、フリーソフトの業務提携したりなどなかなか忙しい日々を過ごしていたので週に2日1時間ぐらいの時間しか取れていませんでした。Github Insightが物語ってます。
f:id:tekitoumemo:20180404014429p:plain
2月から3月頭が一番忙しかったので、ほぼいじれてないことがわかりますね。Github Insightは誰がどのぐらい貢献したかの度合いなので、偉い人は評価の1つとして見ても良いかなと思いました。前職では、一番若い女の子がダントツで一位でしたよ。

失敗したこと

Windowsでしか開発出来ない環境を作ってしまった。

.NetCoreにすればLinuxでもMacでも開発出来ますし、Ngixで動いているのでAzureじゃなくてもよいです。.NetFrameworkの選定はミスったなぁと思いました。今は一人でこもってられる時間がそんなにないので、リビングでテラスハウス見ながら開発出来る仕組みを作らなければいけないと思っています。これは5月までに改善したい。

独自ドメインSSL化が、、、

独自ドメインも買いまして、いざワイルドカードSSL化をするために「Let's Encrypt」を使って試したのですが、アクセス権のエラーに悩まされました。Azureドメインでも運用出来るので、暇があったら再度トライしようかな程度になってしまった。。ワイルドカードSSLは高いので、ちょっと買えません。
letsencrypt.org

ステージング環境とデプロイ環境の区別ができていない

Azure Web ServceのデプロイはVisualStudioからやっているので、開発してユニットテスト(XUnit)が成功したらデプロイしています。問題なさそうに見えますが、切り替えるのが面倒で開発中もAzure Databaseに接続しているのでいつか絶対事故が起こります。うまく同期を取って運用出来る仕組みを考えなきゃです。

meta ogとTwitter Cardのキャプチャ画像が同じ

どこかに添付する際に必要なogタグとTwtter Cardですが、マスタに固定で指定しているのですべて同じ画像が表示されてしまう仕様にしてしまいました。
f:id:tekitoumemo:20180404021941p:plain
全部同じ画像。。Botみたいになっている。ここは早急に改善すべきだと思っています。

これからどうしていくか

このサイトは1年間の事業投資(自分への投資)として運用していくので、目標を決めてそれが達成出来なければ閉鎖しようと考えています。予算(自分の懐)と相談し、ライターさんを雇ったり、広告を出すことも視野に入れています(ライターさんに関しては、少し動いています。)また、目標ばかりとらわれず「やらなきゃいけないこと」、「数値を増やしていくための改善」はしっかりと線引きをしていく必要があると考えています。どういうことかというと、TwitterCardの例ではキャプチャが同じなので流入が見込めないという課題は「数値を増やしていくための改善」でコンテンツを増やすための運用改善は「やらなきゃいけないこと」です。2つを比較するとTwitterCardを改善したほうが効果が出そうと考えられますが、駆け出しのサービスはまだコンテンツも少なく地盤を整える必要があるので運用の改善を早急にすすめる必要があると考えます。

最後に

「わりとまじめにサービスを作った」というタイトルなので、わりとまじめに偉そうに記事を書きましたが実際はイラストのようにお菓子食べながらYoutubeで新曲を聞きながら適当に作りました。モチベーションが一番重要なので、はじめはいい感じに気合を入れずに作っても良いかもしれませんね。
f:id:tekitoumemo:20180404024834p:plain

あ、良かったらシェアして下さい(切実)
twitter.com