bbblogというブログシステムを作りました
実物(bbpink近況) http://sevensenses.jp/bbpink/
前々からあったんですがずっとオープンソース化したいなあと思っており、この度公開することができました。
作った動機
bbpink近況というブログは、初期の頃はMovableTypeで運用されていました。
MovableTypeはあれはあれで良かったんですが、記事が増えるにつれて全てをhtmlで書きだすオペレーション(名前忘れた)がクソ遅くなり、ちょっとしたスタイリングの変更でも全コンパイルが必要になって何時間待っても終わらなくなってしまいました。
こんなんやってられるかアホー!ということでWordPressを検討しはじめましたが、
(今は知りませんが)本当に最初の頃のWordPressはDBにMySQLを使う必要があったのです!
自宅サーバ(ノートPC:メモリ256MB)で運用されていたbbpink近況。ブログ一個のためにMySQL分のメモリを確保するのがバカらしいと判断した私はいっそ自分で軽いの作ればいいじゃんと思って開発を始めました.....
テクノロジ
- DBはSQLite
- テンプレートエンジンはTwig
- スタイリングはscssを使用、コンパイル結果オートキャッシング
- フルスクラッチオレオレフレームワーク(MVCアーキテクチャ、セキュリティロジック、フィルタリングなどなど)
俺ームワークを作って勉強になったこと
- いろんなフレームワークのソースを読んだ(ActiveRecordやCake、Javaサーブレットとかすごい参考になった)
- 安全なセッション管理とパスワード周り(ソルト、現代的でセキュアなハッシュ関数、ストレッチング)
- HTTPステータスコードを正しい意味で使用すること
- RSS/Atom標準準拠のXML作成
- リクエストパラメタのチェックの正しいやりかた
オレオレフレームワーク(笑)みたいな風潮があったりしますが絶対一回作ってみたほうが良い、マジで勉強になりました
bbblogの良いところ
正直言って自分以外の誰かが使うとは思っていませんが、念のため良いところを書くことにします。
- フォントやレイアウトにこだわっており見た目が良い!
- そこらへんにいる美女より美しいHTML(html5)、ぜひbbpink近況のソースコードを見てください
- 記事書くのも記事見るのもメチャクチャに軽い
- インストールに7操作しか必要なく異常に簡単
- 修正BSDライセンスに従えば何をしても自由
感想
社会人1年目の時に作ってたブツをリファクタリングしてgithubに置いたので懐かしいコードがあったりして感慨深いです。
今はもうほとんどPHPは使っていませんが新しい機能とかは追っていきたいですね。