WEB+DB PRESS Vol.49

今号の特集概要

特集1
システム開発を成功させる「繰り返しの排除」原則
現場で役立つ DRYの基礎知識

「DRY」(Don't Repeat Yourself)は書籍『達人プログラマー』で解説されている,システム開発のさまざまなフェーズで「重複」を避けることの重要性を示すキーワードです。Ruby on Rails の開発ポリシーとして脚光を浴びましたが,システムの設計・開発の中でDRY を実現することで,ソフトウェアの信頼性を高める,開発やメンテナンスをシンプルで理解しやすくするといったことが可能になります。本特集では,まず開発案件レベルにおいてDRY とはいったいどんなものであるのかを捉え,さらに現場におけるDRY の実践に関するノウハウや考え方をわかりやすく解説します。ぜひ本特集を通して,DRY を肌で感じとり,「達人プログラマー」への確かなステップにしてください。

特集2
大規模サービス,リニューアルの舞台裏
[新]はてなブックマーク 構築ノウハウ大公開

2008年11月末,日本最大のソーシャルブックマークサービス「はてなブックマーク」がリニューアルしました。9ヵ月間をかけてデザイン,コード,インフラを刷新し,同時に,情報科学理論を実践に応用した新機能を追加するという大規模なリプレースです。本特集では,はてながどのようにリニューアルに取り組んだのか,そして新システムの設計やバックエンドシステムはどのようになっているのかなど,はてなブックマークリニューアルの舞台裏を余すことなくお伝えします。

特集3
サーバ/ストレージ/ネットワーク
[VMware ESXiで開発環境を楽々省スペース化]すぐわかる仮想化技術

いよいよ,仮想化技術の採用が本格化してきました。本特集では「開発環境を仮想化しよう!」をテーマに,1章で基礎知識や検討事項,2 ~ 4 章では三大仮想化であるサーバ,ストレージ,ネットワークをそれぞれカバーし,導入の流れをやさしく解説します。例として無償で使用できる仮想化ソフトウェアVMware ESXi を用い,ユーザの立場から理解しておきたい概念を押さえながら,開発環境への仮想化技術導入/システム構築方法を丁寧に紹介します。

特別企画
基本から,大規模対応,精度の追求へ
あの「オススメ」機能のしくみを探る[速習]レコメンドエンジン

昨今,ネットでは「関連記事」「この商品を買った人は...」をはじめとするレコメンデーションを,よく見かけるようになりました。しかし,さまざまな用途に合わせて,背後に持つ膨大なデータをいかに処理して,ユーザやアイテムに合わせた推薦情報をうまく提示するかについて,なかなか知る機会がなかったのではないでしょうか。本企画では,技術的な基礎知識から大規模対応,精度の追求まで,レコメンドの今と基本を丁寧に解説します。数式/数学的な解説は控えめに,広くWeb プログラマの方々へ,コードによる解説に重きを置いた特別企画をお届けします。

目次

特集1
システム開発を成功させる「繰り返しの排除」原則
現場で役立つ DRYの基礎知識

  • 第1章:DRY原則とは何か
    Railsで広まった,正しいソフトウェア開発の礎……arton
  • 第2章:コンピュータとソフト開発の歴史をDRYで捉え直す
    DRYを見抜く判断力を養う……arton
  • 第3章:二重化をいかに排除するか
    現場で生じる,DRYに反する4つのケース……arton
  • 第4章:実践DRY! Excelによる知識の集約
    開発者のもっとも身近なツールを再評価……arton
  • 第5章:DSLでコードをもっとDRYにしよう
    Rubyで実践!……桑田 誠
  • 第6章:RailsよりDRYなフレームワーク研究
    Ruby用O/RマッパーDataMapper & PythonフレームワークDjango……桑田 誠
  • 第7章:さまざまな言語でのDRYの実践
    Python,Objective-C,C言語……桑田 誠
  • コラム:テストコード間の重複は是か非か……和田 卓人

特集2
大規模サービス,リニューアルの舞台裏
[新]はてなブックマーク 構築ノウハウ大公開

  • 第1章:リニューアルの設計方針と開発体制
    旧システムの問題点をいかに解決したのか……伊藤 直也
  • 第2章:利用ソフトウェアからみる新システム
    多数のオープンソースと,独自実装の組み合わせ方……伊藤 直也
  • 第3章:バックエンドシステムと負荷分散戦略
    ハイパフォーマンス,スケーラビリティ,自動化……伊藤 直也
  • 第4章情報科学理論の実践
    大規模データの全文検索,テキスト自動分類……伊藤 直也

特集3
サーバ/ストレージ/ネットワーク
[VMware ESXiで開発環境を楽々省スペース化]すぐわかる仮想化技術

  • 第1章:仮想化技術への招待
    開発環境への導入における検討事項,仮想化技術の3つのレイヤ……西田 圭介
  • 第2章:サーバ仮想化
    ハードウェアの選定,ハイパーバイザ/仮想マシン/仮想アプライアンスの導入……西田 圭介
  • 第3章:ストレージ仮想化
    信頼性,iSCSIの階層構造,バックアップ&障害対策……西田 圭介
  • 第4章:ネットワーク仮想化
    実仮想ネットワークと物理ネットワーク,VLAN,仮想マシンとの通信方法……西田 圭介

特別企画
基本から,大規模対応,精度の追求へ
あの「オススメ」機能のしくみを探る[速習]レコメンドエンジン

  • Part 1:レコメンドエンジン入門
    ユーザ/アイテム,メタベース/コンテンツベース,協調フィルタリング,選択の指針……德永 拓之,岡野原 大輔
  • Part 2:レコメンドエンジンの作成
    レコメンドの基本,特徴ベクトル,コサイン類似度,Rubyによるサンプルアプリ……德永 拓之,岡野原 大輔
  • Part 3:大規模データを用いたレコメンデーション
    Netflix Prize,大規模データへの方策,効率化,高速化……德永 拓之,岡野原 大輔
  • Part 4:本格的なレコメンデーション技術
    SVD,RBM,PLSI,Slope One...,さまざまな手法,抱える課題……德永 拓之,岡野原 大輔

連載

  • 良いコードへの道―普通のプログラマのためのステップアップガイド
    【最終回】配列/コレクションを利用した抽象化……縣俊貴
  • 隔月刊少年Flash
    【最終回】AMFで実践RPC……大塚知洋
  • JavaScrit+ブラウザ探検
    【最終回】Webアプリケーションのアクセシビリティ,WAI-ARIA……ユーザから見て,再利用しやすいWebサイトを構築するために……nanto_vi(TOYAMA Nao)
  • RESTレシピ ―― クールなWebシステムへの道しるべ
    【最終回】リソースモデリング……山本陽平
  • Java Traveler
    【最終回】Wicket ……ステートフルフレームワーク……田中洋一郎
  • ステップアップ!PHP
    【最終回】ドキュメントを残す ……phpDocumentor,PHP_DocBlockGenerator,PHPXref……下岡秀幸
  • SQLアタマアカデミー
    【第5回】SQLで木構造を扱う ……入れ子集合モデル……ミック
  • Practical Ruby Programming!
    【第5回】標準フォーマットを駆使する ……続・アドレス帳アプリを作ろう……武者晶紀

コラム

  • BK通信 Bad Knowhow Tsushin
    【最終回】文字コードのバッドノウハウ……高林哲
  • 小飼弾のAlpha Geekに逢いたい♥
    【#17】Mahalo.com Jason Calacanis……小飼弾
  • [はまちちゃんのセキュリティ講座]ここがキミの脆弱なところ…!
    【最終回】XSSの 正体見たり 騙りタグ……はまちや2/竹原
  • 濃縮還元オレンジニュース
    【第18回】12~1月の厳選ニュース……角田直行
  • [不定期コラム]カメラスキープレス
    • 【#17】iPod touchで怠惰生活……カメラスキー

Special Report

  • Microsoft Tech Days 2009 “Best of PDC”……編集部
  • Adobe MAX Japan 2009……編集部

Solution Flash

  • 大規模化・安定稼働・開発効率化… Webシステム開発・運用を乗り切るテクニック
    【第1回】チューニング(1) 多重度・流量制御の最適化

Message from Vendors

  • 適切な負荷対策の実施
    PHPアプリケーションのパフォーマンスチューニングサービス……長江崇将