プログラミング


2011年4月13日

俺のコードのどこが悪い?

俺のコードのどこが悪い?―コードレビューを攻略する40のルール

コードレビューに関する分野の書籍は珍しく先月発売された新書で、書店で平積みされていたので思わず手にとって買ってしまった。実際に読んでみると、どうすればコーディングミスを減らしたり、保守性を上げられるかについて、技術的なアプローチだけでなく仕掛けづくりについても書かれており、新人が読むための教育書という位置づけだけでなく、レビュアーも参照すべき一冊である。

2010年5月31日

Content-Typeヘッダフィールドは必須か?

Webプログラミングをする場合には、必ずと言っていいほど意識しなければならないメディアタイプや文字コードではあるが、Content-Typeヘッダフィールドを制御しない場合には、MIMEタイプをWebサーバーで判断し、text/plainやtext/htmlの場合においてはデフォルト文字コード設定(ApacheでいうところのAddDefaultCharsetディレクティブ)によって出力がされる。

ただ、今日見たWebアプリケーションプログラムは、LocationヘッダフィールドによりリダイレクトしているページにおいてContent-Typeヘッダフィールドの出力なしにボディーにデータが書き込みされていたので、RFCに違反しているのかどうか調べてみた。

対応するRFCは2068(ハイパテキスト転送プロトコル HTTP/1.1)になる。
該当する項目は、7.2.1 型にある

実体本体を含むどんなHTTP/1.1メッセージも,その実体のメディア型を定義するContent-Typeヘッダフィールドを含むことが望ましい。

であり、強制されるものではないようである。したがって、受け手(ブラウザ)はContent-Typeヘッダフィールドがない場合でもメディア型を推定しようとしてよいのである。しかし、こちらも推定しなければならないわけではないので、結果的には正しく通信できない恐れがあるということを示しているようだ。

やはりContent-Typeヘッダフィールドは通信トラブルを避けるためにも「ほぼ」必須のヘッダフィールドであるといえる。

2009年11月30日

インピーダンスミスマッチ

「オブジェクト指向設計」と「リレーショナルデータベース設計」の設計思想の違いから発生するミスマッチ。そのためにO/Rマッピングが存在する。

連載:Hibernateで理解するO/Rマッピング(1)

2007年12月30日

Web Application Stress Tool

Microsoftが提供しているフリーのトラフィックジェネレータ。

ブラウザで操作したとおりにトラフィックの設定がされるので、非常に簡単。
ただ、負荷をかける対象のサーバーは設定で簡単に変更できるのに、ポート番号を変更するとなるとリクエスト単位で設定を変更しなければならないというのがおかしな仕様だと個人的に思った。

使い方は、Web Application Stress Tool を使い倒そう!がとても詳しいので参考になると思う。

ちなみに紹介サイトではダウンロード先がリンク切れしてしまっているので、こちらからダウンロードして欲しい。

2007年12月22日

Flashできれいなグラフを描画する

amChartsというツールを使ってきれいにグラフを描画することが出来るみたいだ。

詳しくはこちらを参照されたい。

2007年2月15日

HTML埋め込み型言語対決 JSP v.s. PHP v.s. ASP

HTML埋め込み型言語でよく利用されているJSP, PHP, ASPを比べてみる。

JSPPHPASP
コード宣言?<%@ %><? ?> または <?php ?><% %>
コード<% %>上に同じ上に同じ
出力<%= %><?= ?><%= %>
変数a$aa
コード区切りセミコロンセミコロン改行
コメント// または /* */// または /* */ または#'
変数定義必須必須ではない必須ではない
大文字小文字区別する区別しない区別する

2006年10月30日

AWS

Amazon Web Service 略してAWS。その肝となるBrowseNodeについて。

BrowseNodeはBrowseNode一覧からチェックできる。但し、新規サービスはここには表示されていない(インデックスが更新されていないため?)ので、以下を参照する。

スポーツ:14304371

ヘルス&ビューティー:160384011

ちなみにAmazonのタブのリンクにあるnodeパラメータをチェックすると分かります。

2006年10月 9日

画面プロトタイプの重要性

mixiの画面プロトタイプが公表されていたのですが、やはりイメージを具現化する作業がいかに重要であるかを物語るものだと思います。Webサービスはリリースする前までは動作しないケースが多いわけで、プロジェクトメンバー(場合によっては会社全体)が一丸となってその方向性に検討を加えていく上では画面のプロトタイプはもっとも創造しやすく、そしてベクトルをあわせやすいものであるということがいえると思います。

僕もエンジニアとして今後新しい提案などをしていく上でこのことは肝に銘じておきたいと思います。

2006年10月 1日

コメントの仕方いろいろ

言語ごとにコメントの方法は違うが、おおむね互換性があったりするものだ。ところがこの前スタイルシートのコメントが効いていると思っていて、実は効いていなかったと言う事があったので、ここでまとめてみる。

/* */のみサポート C, StyleSheet

<!-- -->のみサポート HTML

#のみサポート Perl

//, /* */のいずれもサポート C++

#, //, /* */のいずれもサポート PHP

2006年9月16日

Weather Hacks

Livedoorが提供するお天気情報APIです。
http://weather.livedoor.com/weather_hacks/webservice.html
ブログに簡単につけられるスクリプトコードもあります。