WEB+DB PRESS Vol.51

今号の特集概要

特集1
~変化を受け入れる設計,ストレスのない実装,効率的運用~
実践投入Rails

Railsは,開発を効率化するさまざまな機能を持ちますが,その思想や機能の意味を理解しないと,真の魅力を引き出すことはできません。本特集では,実際のビジネスでRailsを活用している執筆陣により,Railsアプリケーションの設計の指針から,実装,運用まで流れに沿って,現場で培ったノウハウ満載でお届けします。

特集2
現場の知恵と経験,絞り出しました
“巧いメソッド設計”

ソフトウェア開発に関する技術情報は,プログラミング言語やフレームワーク,またUML,デザインパターンなどの設計関連をはじめ,書籍,Webやセミナーなどで豊富に提供されています。しかし,クラスの中をどう作るか,メソッドのシグニチャやメソッド分割はどうするかといった,プログラミングの中心課題については,いまだ情報が少ないのが現状です。そこで本特集では,「巧(うま)いプログラム」はどうすれば書けるのかという観点から,クラスとメソッドのプログラミングに焦点を当てて,わかりやすく解説します。

本特集の連動記事がgihyo.jpで連載中です。

特集3
~rsync/makuosan/Capistrano~
Webサーバの負荷分散環境におけるデプロイ/ファイル転送<基礎と実践>

Webサーバの負荷分散環境下,効率的なデプロイは悩みどころではないでしょうか。 本特集では,デプロイの肝であるファイル転送にとくに焦点を当て,性能重視,省力運用の2つの側面から効率的なデプロイの方法について徹底解説します。第1章では,定番のrsyncを中心に基本のファイル転送を丁寧に説明し,続く第2章,第3章では性能重視編としてmakuosan,省力運用編としてCapistranoを紹介します。一口にデプロイといえどもサイト構成や扱うコンテンツによってさまざまですが,最適なデプロイ/ファイル転送手法を見つけるための貴重なヒントを満載してお届けします。

特別企画
BigTableでシステム構築はどう変わる?
Google App Engine for Javaによるクラウド開発入門

 Google App Engine(GAE)は,Googleが提供するクラウドサービスです。従来からのPython版に加えてこの春,Java版が発表されたことで,一気にクラウド開発・運用環境としての現実的な利用が視野に入ってきました。  本特別企画では,第1章でGAEの位置付けを理解し,開発の基本を概観したあと,第2章で既存のシステム構築とは大きく異なるデータストア,BigTableにフォーカスを当て,その開発のポイントを解説します。システム構築のパラダイムを大きく変える可能性を秘めたGAE,ぜひこの機会にあなたも,実際に触ってその未来を確かめてみてください。

目次

特集1
~変化を受け入れる設計,ストレスのない実装,効率的運用~
実践投入Rails

  • 第1章:今,あらためて考えるRuby on Rails
    Railsの真価を理解する……吉見 和也,川嶋 慶介,赤松 祐希,杉本 俊幸
  • 第2章:変化を受け入れる設計
    大規模プロジェクト/既存システムとの共存……吉見 和也,川嶋 慶介,赤松 祐希,杉本 俊幸
  • 第3章:Railsでストレスなく開発するために
    環境整備/振舞駆動開発/Ruby,Railsの機能が持つ落とし穴……吉見 和也,川嶋 慶介,赤松 祐希,杉本 俊幸
  • 第4章:実システムで使えるライブラリ/プラグイン
    活用の勘所/自作プラグインのススメ……吉見 和也,川嶋 慶介,赤松 祐希,杉本 俊幸
  • 第5章:Railsアプリを効率的に運用するためのシステム構築法
    memcached/DB負荷分散と冗長化/統合監視……吉見 和也,川嶋 慶介,赤松 祐希,杉本 俊幸
  • 第6章:これからのRails
    2.3の注目機能,3.0の足音……吉見 和也,川嶋 慶介,赤松 祐希,杉本 俊幸

特集2
現場の知恵と経験,絞り出しました
“巧いメソッド設計”

  • 第1章:品質を実現する“巧い”プログラミング
    プログラミングこそ,真の設計……高橋徹
  • 第2章:クラス設計/パブリックメソッド設計の考え方
    処理分担をどう実現するか……石黒尚久
  • 第3章:プログラムの意図を読み手にいかに伝えるか
    コメント,ネーミング,コーディング標準……今井克則
  • 第4章メソッド構造化の実践知識
    実装者が心得ておくべき品質向上のための手法……石黒尚久
  • 第5章メソッドの副作用を考える
    同じ引数で呼び出しても結果が違うメソッドの扱い方……有賀一輝
  • 第6章メソッドのエラー処理を考える
    「契約による設計」を使った潜在的バグへの対処……高橋徹
  • 第7章Javadocをコード品質の向上に活用しよう
    ドキュメントツールJavadoc再入門……小棚木章直

特集3
~rsync/makuosan/Capistrano~
Webサーバの負荷分散環境におけるデプロイ/ファイル転送<基礎と実践>

  • 第1章:基本のファイル転送+rsyncの攻略
    負荷分散環境におけるデプロイの肝とは?……安井真伸
  • 第2章:makuosan<性能重視編>
    複数サーバへ高速ファイル転送……安井真伸
  • 第3章:Capistrano<省力運用重視編>
    シンプルな動作で楽々運用……舘野祐一

特別企画
BigTableでシステム構築はどう変わる?
Google App Engine for Javaによるクラウド開発入門

  • 第1章:はじめようGoogle App Engine for Java
    クラウドサービスGAEの利点と開発の基本……荒川傑
  • 第2章:BigTableを使ってみよう
    RDBMSと何が違う? 新しいパラダイムのデータストア……荒川傑

連載

  • 【新連載】JavaScript今ドキ活用術
    【第1回】一歩進んだブックマークレットの活用法……冨田慎一
  • Developer's Perspective
    【第2回】「scottberkun.com」Scott Berkun
    インタビュー編:問題解決と良いコミュニケーションのヒント
    翻訳エッセイ編:創造的思考Hacks……青木靖
  • Recent Perl World
    【第19回】スペル修正プログラムを作る ……アルゴリズム&データ構造 2……伊藤直也
  • やっぱりJavaがスキ!
    【第2回】Javaからネイティブコード呼び出し……川口耕介
  • 大規模Webサービスの裏側――inside mixi's backend
    【第2回】巨大トラフィックを支えるインフラ ……サーバ・ネットワークの標準化,トラフィック量の予測……吉野純平
  • SQLアタマアカデミー
    【第7回】性能改善の鍵,インデックスの特性を知る ……B-treeとハッシュ……ミック
  • PHPマストテクニック
    【第2回】最強のエディタVimで最速PHP開発……鶴岡直也
  • Practical Ruby Programming!
    【第7回】パズルゲームを作ろう……武者晶紀
  • WebKit Quest――ソースコードから読み解くブラウザエンジンのしくみ
    【第2回】データ,文字列,タグ,ツリー……森田創

コラム

  • バッドシグナル通信
    【第2回】相性の問題……高林哲
  • がんばれ情シス!――激動の時代をリードするために
    【第2回】組織と情報流通……羽生章洋
  • 小飼弾のAlpha Geekに逢いたい♥
    【#18】プリファードインフラストラクチャー 太田一樹,岡野原大輔,田中英行……小飼弾
  • 濃縮還元オレンジニュース
    【第20回】4~5月の厳選ニュース……角田直行
  • はまちちゃんとわかばちゃんのREADER'S FORUM――読者のページ……はまちや2/竹原

Message from Vendors

  • Rubyで作られたタスク共有ツール 9Arrows
    オープンソースプロジェクトとしてのさらなる挑戦……佐々木勉

Solution Flash

  • 大規模化・安定稼働・開発効率化… Webシステム開発・運用を乗り切るテクニック
    【第3回】トラブルシューティング①