WEB+DB PRESS Vol.134

今号の特集概要

特集1
仕様ファーストでいこう!
実践API設計
堅牢で,保守性に優れたWebサービスの実現

本特集では,筆者自身が長年考えて実践してきたことに基づいて,「API仕様ファースト」という聞き慣れない言葉を中核として,Webサービスでのバックエンドサービスの開発方法について説明します。多くのソフトウェアエンジニアは,最初にAPI仕様をきちんと書いて,さらにテストファースト開発を行うことに慣れていません。しかし,本特集で説明することをきちんと実践することは,優れたソフトウェアエンジニアになる,あるいは優れた開発組織となってサービスの成長を支えるうえで重要です。

特集2
はじめての画像回帰テスト
Storybook&Chromaticで品質も生産性も向上!

数あるフロントエンドのテストの中でも比較的運用が簡単で費用対効果の高い,画像回帰テストを実装・運用するための方法を紹介します。フロントエンドのテストにおける画像回帰テストの立ち位置と,画像回帰テストを採用するメリットを紹介したうえで,StorybookとChromaticを使った画像回帰テストの導入方法,簡単なチュートリアル,そして,複雑なコンポーネントのテスト方法を解説します。Appendixとして,Storybookをアクセシビリティテスト,UI検証で活用する方法も紹介します。

特集3
画像生成AIのしくみ
Stable Diffusionの内部を探る

画像生成AIの一種であるStable Diffusionは,生成画像の自然さ,動作速度の高速さなどにより,登場してすぐに大きな注目を集めました。さらに衝撃的だったのは,「ソースコード」および「学習済みのAIの中身」が無償で公開されたことです。これにより,画像生成を行うだけではなく,そのしくみを詳しく知ることができます。本特集ではStable Diffusionがどのように動作しているのか,これらの情報を噛み砕きわかりやすく解説します。

目次

特集1
仕様ファーストでいこう!
実践API設計
堅牢で,保守性に優れたWebサービスの実現

  • 第1章:優れたAPI仕様とは何か
    よくある問題点と,記述すべき事柄……柴田 芳樹
  • 第2章:gRPCにおけるAPI仕様の書き方
    サービスの概要,エンドポイントの説明,エラーの説明……柴田 芳樹
  • 第3章:API仕様ファースト開発
    仕様を先に記述し,テスト駆動で開発する……柴田 芳樹
  • 第4章:E2Eテストフレームワークの構築
    API仕様ファースト開発のための独自実装……柴田 芳樹
  • 第5章:API仕様の技術的負債の返済
    サービスの成長を支えるための改善活動……柴田 芳樹

特集2
はじめての画像回帰テスト
Storybook&Chromaticで品質も生産性も向上!

  • 第1章:画像回帰テストとは
    UI表示の差分を取って不具合を検出……宮脇 駿
  • 第2章:StorybookとChromaticを使った画像回帰テストの導入
    簡単なコンポーネントで試してみよう……宮脇 駿
  • 第3章:複雑なコンポーネントのテスト
    ユーザー操作,APIのモック,モバイル画面……宮脇 駿
  • Appendix:Storybookのさらなる活用
    アクセシビリティテスト,UI検証……宮脇 駿

特集3
画像生成AIのしくみ
Stable Diffusionの内部を探る

  • 第1章:Stable Diffusionの全体像
    高品質な画像生成を支える3つのモジュール……石井 雅人
  • 第2章:テキストから意味情報を抽出する
    1つ目のモジュール「CLIPエンコーダ」の動作……石井 雅人
  • 第3章:抽出した意味情報をもとに画像の圧縮表現を生成する
    2つ目のモジュール「拡散モデル」の動作……石井 雅人
  • 第4章:生成した圧縮表現を画像に変換する
    3つ目のモジュール「デコーダ」の動作……石井 雅人
  • 第5章:テキスト以外の手段で画像生成を制御する
    さらにユーザーの意図に沿うために……石井 雅人

一般記事

  • いまさら聞けないJSON Web Token
    JOSEと秘密鍵,暗号,署名の関係 ……牧 大輔

連載

  • 実践データベースリファクタリング ── アンチパターンに立ち向かう
    【第1回】削除フラグに立ち向かう……曽根 壮大
  • 基礎力アップ! Javaプログラミング
    【第1回】データ指向プログラミングのススメ ……抽象データ型と代数的データ型,それを支える言語機能……きしだ なおき
  • 乗りこなせ! モダンフロントエンド
    【第1回】新機能でCSSの書き方が変わる? ……新たな擬似クラス,Cascade Layers,Container Queries……麦島 一
  • 現場のPython ── システム開発も! 機械学習も!
    【第18回】pandasを使った処理を遅くしないテクニック ……4つの視点でパフォーマンス改善……石上 晋
  • Ruby 3組込みライブラリ紹介
    【第12回】Stringのよく使われるメソッド ……String#sub/String#gsub/String#split/String#scan ……西山 和広
  • Perl Hackers Hub
    【第78回】Perl Webアプリケーションのリプレイスで大事なこと ……Stranglerパターンで段階的に移行する……須藤 将史,監修:牧 大輔,福本 貴之,松木 雅幸,大沢 和宏
  • PHPで複雑さに立ち向かう
    【第12回】symfony/consoleによる実用的なCLIツールの作り方 ……基本的な入出力の処理,コードの部品化,高度な出力整形……五十嵐 進士

コラム

  • 池澤春菜のSF小説の歩き方 ──エンジニアリングの未来を描く名作たち
    【第5回】現実はSFに追いつけるのか ……未来に橋を架ける……池澤 春菜
  • サバンナ便り ── ソフトウェア開発の荒野を生き抜く
    【第6回】自動テストのサイズダウン戦略 ……テストダブルを作る前に考えるべきこと……和田 卓人
  • ちょっと気になる隣の技術畑
    【第11回】プラットフォームを超えるWebAssembly ……あんどうやすしさん……日高 正博
  • はまちちゃんとわかばちゃんのREADER'S FORUM ── 読者のページ
    【第85回】……はまちや2,竹原