WEB+DB PRESS Vol.69

今号の特集概要

特集1
詳解GitHub
~はじめよう! ソーシャルコーディング
Pull Requestが織りなす効率的ソフトウェア開発~

分散バージョン管理システムGitの普及と並行して,GitHubを利用するプログラマが増えています。GitHubは単なるGitのリポジトリホスティングサービスではありません。「ソーシャルコーディング」という理念を持ち,それを実現するために数々の機能が実装されています。本特集では,GitHubに用意されている機能の使い方から,「ソーシャルコーディング」を象徴するPull Requestを使った開発フローまで丁寧に解説します。

特集2
JUnit実践入門
~テストの拡張と整理から,受け入れテストまで~

ユニットテストはプログラマにとって重要なスキルです。継続的インテグレーション,テスト駆動開発,振舞駆動開発……。これらは,ユニットテストが繰り返し効率的に実行できることを前提としています。本特集ではJavaの代表的なテスティングフレームワークであるJUnitの基本的な使い方にはじまり,拡張機能を用いたテストのカスタマイズ方法,受け入れテストへの応用としてCucumberを用いた振舞駆動開発の方法まで,JUnitを用いた効率的なテストを実現するノウハウを紹介します。

特集3
大規模コードリーディング
~動的分析・静的分析・メタ知識で読み解く~

コードリーディングは正しいコードを記述し,効率的なソフトウェアを開発するために必要な第一歩です。本特集では,大規模なコードをどう読み解いていくとよいかそのノウハウを伝授していきます。まずコードリーディングの全体像やその重要性を理解してもらい,次に主な手法である静的分析と動的分析の具体的な手順について解説を進めます。またその応用として公開APIをサンプルとして,ソフトウェアが外部に提供する機能について実践的な例を紹介していきます。

目次

特集1
詳解GitHub
はじめよう!ソーシャルコーディング
Pull Requestが織りなす効率的ソフトウェア開発

  • 第1章:ソーシャルコーディングの世界
    人が主役になる新しいプログラミングスタイル……大塚 弘記
  • 第2章:GitHubを使ってみよう!
    環境の構築と基本操作……大塚 弘記
  • 第3章:GitHubの機能を徹底解説
    ソーシャルコーディングを実現するさまざまな機能……大塚 弘記
  • 第4章:はじめてのPull Request
    変更を送る方法とリポジトリのメンテナンス……大塚 弘記
  • 第5章:Pull Requestが送られてきたら
    変更を検証して安全にマージする……大塚 弘記
  • 第6章:会社でGitHubを使おう
    コードを社外に置けない場合の選択肢……大塚 弘記
  • 第7章:GitHubと連携して活躍するプロダクト
    Travis CIで自動テスト、Coderwallで業績・達成度バッジの表示
    ……大塚 弘記

特集2
JUnit実践入門
テストの拡張と整理から、受け入れテストまで

  • 第1章:JUnit入門
    古くて新しいJavaテスティングフレームワークの定番……渡辺 修司
  • 第2章:はじめてのJUnitテスト
    環境の準備からユニットテストの実行まで……渡辺 修司
  • 第3章:アサーションの拡張
    Matcher APIとカスタムMatcherによる比較検証のカスタマイズ
    ……渡辺 修司
  • 第4章:テストコードの整理
    テストクラスの構造化とパラメータ化テストによる実践……渡辺 修司
  • 第5章:カスタムルールによるJUnitの拡張
    プロジェクト特有の処理手順を簡単に記述・管理……渡辺 修司
  • 第6章:cucumber-junitによる振舞駆動開発
    JUnitを活用した受け入れテストの自動化……渡辺 修司

特集3
大規模コードリーディング
動的解析・静的解析・メタ知識で読み解く

  • 第1章:コードリーディングの効果とは
    重要性を正しく理解しよう……井上 誠一郎
  • 第2章:大規模コードにおける動的解析
    デバッガを効果的に利用しよう……井上 誠一郎
  • 第3章:大規模コードにおける静的解析
    マクロな視点を育てていく……井上 誠一郎
  • 第4章:コードリーディングにおけるメタ知識
    ひとつ上の視点を身につける……井上 誠一郎

連載

  • 【新連載】一歩先ゆくRuby
    【第1回】Padrinoで始める「ビュッフェスタイル」開発入門
    ……Railsより柔軟で、Sinatraよりラクラク……近藤 宇智朗
  • 【新連載】Javaの底力 ―― 火消しエンジニアが明かすテクニック
    【第1回】Linux環境でのトラブルシューティング……ヒノケン
  • 【新連載】巨人の肩からPHP ── 先人たちに学ぶモダンプログラミング
    【第1回】Behatによる振舞駆動開発……後藤 秀宣
  • JavaScript活用最前線 ── 大規模開発の現場から
    【第2回】RequireJSでらくらくモジュール管理……佐藤 鉄平
  • フロントエンドWeb戦略室
    【第2回】スクロールとページングのUIを考える……mala
  • 理論で学ぶSQL再入門
    【第2回】テーブル設計におけるNULLの取り扱い方……奥野 幹也
  • Perl Hackers Hub
    【第15回】Perl meets beats ……鳴らして学ぶシンセサイザー入門
    ……伊藤 智章,Japan Perl Association[監修]

コラム

  • 【新連載】シューカツ女子ともよの会社訪問記 知りたい!あの人のはたらきかた
    【第1回】福森匠大(sora_h) ……高校に進学せず、週3でITベンチャーに通うはたらきかた……堤 智代
  • Comparators ── 比べてみればわかること
    【第2回】マークアップ vs. ツリー……森田 創
  • Software is Beautiful
    【第14回】経営者の明確なビジョンが社員のモチベーションを高める
    ……中島 聡
  • 海外テック情報局
    【第2回】GitHub、Facebook、ニューヨークのIT事情 etc.……A-Listers
  • はまちちゃんとわかばちゃんのREADER'S FORUM ―― 読者のページ
    【第20回】……はまちや2,竹原

Technology Flash

  • サイバーエージェントを支える技術者たち
    【第10回】サイバーエージェントで働く女性エンジニアの実像を探る!……川添 貴生
  • グループスのエンジニアに聞く!ソーシャルアプリ開発の裏側
    【第1回】プロプライエタリな技術が開発の生産性を上げる……編集部
  • クラウド型WAF無料トライアル版実施レポート
    Webアプリケーションへのサイバー攻撃を防ぐ!……編集部