俺の報告

RoomClipを運営するエンジニアの日報(多分)です。

日報 #1

僕の日報

 

本日やったこと。

 

*HTML/CSSのルール策定

HTMLとCSSのルールを策定し、リポジトリがおいてある場所にwikiとして保存した。

HTMLサイドのデザイナーと共同で開発する上で必須の項目を、最低限まとめた。

参考にしたのは、W3Cの本家( http://www.w3.org/TR/html5/ )とGoogleのスタイルガイド( http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml )だ。

目標はHTMLのベーステンプレート作成だったので、まずhttp://www.initializr.com/のようなサイトで自動作成してみた。

が、modenizerを使用することが前提だったり、X-UA-Compatibleを記載しないなど、ウチのポリシーに合わないものがあったので、

最終的に結局自作した。

html4.0やxhtml1.0時代から時は経ったようで、metaのkeywordsが無用の長物になっていたり、

インデント推奨ルールがタブ禁止のスペース二個分であったり、文化は変わっていたことに驚く。

また、OGPがかなり進んでおり、今回からobject typeの名前空間としてwebsite,article,profileを参照することにした。

このへんが分りやすい。 http://millkeyweb.com/facebook-ogp/#prefix

 

CSSに関してはSASS導入も検討に入れるため色々工夫が必要だった。

コメントアウトとかに関しては、https://github.com/necolas/idiomatic-css/tree/master/translations/ja-JP こことかを素直に踏襲。

問題はCSSの圧縮の範囲だ。

今回は、CSSのリンクは最大3つまでとなるように定めた。

1つにしなかったのは、キャッシュ利用を高めるためで、完全に共通で読み込むものは分離し、

絶対にページ固有のCSSと、「もしかしたら再利用されるかもしれない」部分も分離した。

それに伴い、CSSのディレクトリ管理も3部構成にしよう。

 

[残った疑問]

1. HTMLってシングルクォーテーションあんまり使わないの?なんで?

PHPとかシェルとかだとエスケープしないみたいな特徴があるから使い分けわからないけど、

HTMLのクォーテーションルールってどういう方針を持てばよいのかしら。

 

2. CSSのIDとCLASSの使い分け、明確なルールってあるのかな?

 

*タグデータの構造解析打ち合わせ

 

Free tag systemにおけるタグの階層化についての打ち合わせをした。

大変に興味深いデータ解析をみた。

http://www.plosone.org/article/info%3Adoi%2F10.1371%2Fjournal.pone.0084133

この辺りの論文を元にした階層化の方法論は、案外実用的かもしれないと思われる。

共起による階層化は、親子関係の性質(属性関係なのか、包含関係なのか、など)までを明らかにしないため、

どこかで関係の抽出を行う必要があるかもしれない、という視点は非常に興味深い。

 

[残った疑問]

1. free tag systemでイケてるリコメントエンジンやクラスタリングに成功しているものってあるのかな

 

*一部のバグフィックス

俺がよく衝突するバグとして「MacにおいてPHPスクリプトから呼ばれるファイル名は大文字小文字を区別しない」が「Linuxではする」っていうのがある。

ついついやってしまう。

コーディング規約をしっかりしていなからミスるところでもあるので、サーバサイドスクリプトの整理は急務だ。

 

*AmazonSQSとワーカーの連携テスト:負荷バージョン1

 

AmazonSQSに対して複数のメッセージを同時送信するバッチ処理と、

ワーカースクリプト複数受信する流れのレイテンシをテストした。

流し込んだテストケースは高々100件だったのでなんとも言えないが、全く問題なく稼働した。

ただ問題は、例えばワーカースクリプト内で時間が掛かる作業をさせた時(例えばプッシュ送信などで1秒程度かかってしまう処理など)、

大量のメッセージ同時受信によって、CPU、メモリ的には全く問題ないけど20秒かかる処理などが行われる可能性がある。

そうすると、最後に受信されたSQSのメッセージは20秒後に処理されるわけで、これはSQSサイドのメッセージ受信フラグの破棄しきい値に引っかかる可能性があることがわかった。

つまり、ワーカーが1メッセージにかけるであろう時間と、同時受信件数、メッセージ受信フラグの変数は、連動しているということを理解しないと危険だ。

 

 

以上。本日の日報です。

SQS周りについては色々と疑問が残るが、実稼働が優先であると判断。

難しいものだ。