mainvisual

はてなのようなブログリンクカードシステムを自作したい!
そう、突然思い立ってしまいました。(一体、毎秒何リクエスト捌けばいいんやろう…)

きっかけは、これを見つけてしまったからです。

このはてなブログカードは、リンクをいい感じにデザインしつつ、見やすくしてくれる、とてもすぐれものです。なんですが、HTTPSで使うと、不具合が出てしまうという問題がある! のです。

すでに知っているかと思いますが、このサイトでは「Let’s Encrypt」を使った、SSL対策を行っています。でも、SSL化したサイトから、HTTPでリソースをダウンロードすると、このような感じで必ず不具合が起きてしまいます。

欲を言うなら、もう自由にデザイン出来る機能が欲しい!

まずは、要件定義だ!

そう、まずは要件定義を建てなければいけません!

要件定義とはシステム開発の最初の工程である。
システムやソフトウェアの開発において、実装すべき機能や満たすべき性能などのを明確にしていく作業のこと。いわゆる上流工程の一部で、実際の開発・実装作業を始める前に行う作業の一つである。
要件定義では、利用者がそのシステムなどで何がしたいのかを元に、それを実現するために実装しなければならない機能や、達成しなければならない性能などを開発者が検討して明確にしていく。

ということなのだが、開発は基本自分1人でするため、開発や実装作業の文章化など、するだけ無駄だと判断しました。重要なのは、どのような機能求められていて、その求められている機能を実現するためには、どのようなプロセスが必要なのかを階層化することだと思います。

ブログリンクカードで必要なのは、与えられたURLやパラメータを解析して、HTMLドキュメントの形式としてリンクを返す機能です。

例えば、http://bkc.hackerslog.net/?url=http://example.comというパラメータに対して、

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>Blog Link Card</title>
</head>
<body>
  <a href="http://example.com">Example Domain</a>
</body>
</html>

みたいな形式で返します。 こうすることで、iframeタグなどで埋め込んで表示することが出来るだけでなく、サイトのCSSなどでデザインが崩れる心配がなくなります。

リクエストパラメータは以下の3つを摂ることが出来るものとして設計仕様と思っています。

  • url : URL(例: http://example.com)
  • theme : テーマ(デフォルト: default)
  • format: フォーマット(json, xml, html; デフォルト: html)

みたいな感じにしようと思っています。

何はともあれ、システム設計をしなくっちゃ!

そこで、購入したのがこれ!

ちょっと読んでみたんですが、すごいんですよ! 対象としているのは、、フルスタックエンジニアになろうとしている人や、それに近い人。 つまり、1人で何でもかんでもしようとするエンジニアに向けた、 システム開発の基本を教えてくれる本なんです!

今度レビューとして、お伝えできればと思います!

データフローは?

今回のシステムでは、バックグラウンドでバッチ処理(主にスクレイピング)を連続的に行って、 HTMLやメインビジュアル、iconを解析、加工するものと、 ユーザがデザインテーマを加工することの出来るもの、二つのシステムをの同期をとったり、 スクレイピングをするサーバーに対して1秒に一回以上取得しないなどの制御をするシステムの三つを作成しようと思います。

使用するサーバーはmysqlとredis。mysqlはスクレイピングし、加工したデータやURLを格納するためのもの。redisはシステムのキャッシュや同期を取るためのものです。

ところで、このサーバー費ってどこから出すの?

^^;汗。実は、全然見通しがたってないんですよねー。 のちのちは、Google adsenseでも使って、収益を回そうと予定はしてるんですが、 それまでの資金をどうしよかなぁ〜と。思ってます。

当分はサーバー一台ですべてを回して、需要も収益も出てくればサーバ費にガツッって使いたいですね。

ちなみに、Google Adsenseだけでなくて、このような収益化の方法もあるみたいです。

でも、バックグラウンドがないといけないんで、個人じゃ難しいですね。 特に駆け出しは、ないから無理です。

どうやって、このサービスを広めていくの?

ネットサーフィンしていると、とある記事を見つけました。

これによると、Google Adsenseを使っての広告は、金額に最適値があるらしいですね。