Software Design 2023年7月号

今号の特集概要

第1特集
API実装の大本命
gRPCで始めるWeb API開発
HTTP/2ベースの効率的なデータ通信を実現しよう

みなさんは「gRPC」をご存じでしょうか。gRPCはGoogleが開発したRPC(Remote Procedure Call)フレームワークで,おもにマイクロサービスのサービス間通信,モバイルアプリやIoTのバックエンドとの通信で使われることが想定されています。HTTP/2ベースである点,効率的にデータを通信できる点,環境を選ばず動作する点など,現代的なWebシステムにぴったりの特徴を備えています。

本特集では,gRPCの概要とgRPCによるAPIの設計,実装まで解説します。gRPCがどれほど便利なのか,どれほど大きな可能性を秘めているのか,実感できるでしょう。

第2特集
いま注目のJavaScriptフレームワーク
はじめようSvelte
軽量で高速なJamstack開発を体験

「JavaScriptフレームワークと言えば?」と聞かれたとき,みなさんは何を思い浮かべるでしょうか。React? Vue.js? Angular? はたまたjQuery? 挙げていくときりがないですね。では,「いま勢いのあるJavaScriptフレームワークと言えば?」という質問ならどうでしょう。

本特集で紹介する「Svelte」は,関心が寄せられているフレームワークの1つです。これまでのフレームワークとは一線を画すさまざまな特徴を持っています。また,SvelteをベースとしたUIフレームワークである「SvelteKit」を使うと,効率的なWeb開発が行えます。実際に手を動かしながら,その良さを体感してみてください!

特別企画
GoFデザインパターン歴史探訪
オブジェクト指向の意味を再発見しよう

GoFデザインパターンは,オブジェクト指向に基づくソフトウェア設計における有効なノウハウを,23種類のパターンとして定義したものです。本記事では,GoFデザインパターンがなぜ必要とされ,現代までどのように利用されてきたか,原典となる書籍が発行された1990年代からのソフトウェア設計の変遷をたどりつつ振り返ります。

短期連載
ソフトウェアのセキュリティ&品質管理の新要件SBOM
【3】SBOM管理における課題と解決の手がかり

昨今一部の国で,ソフトウェア製品やサービスを提供する際に,セキュリティや品質管理の観点からSBOM(ソフトウェア部品表)の提供を求める動きが加速しています。本連載では,SBOMにまつわる議論,対策,課題などの最新事情をお伝えします。

短期連載
Denoで始める サーバサイドTypeScript開発
【5】ほかの言語の資産を活用しよう

DenoはNode.jsの問題点を解消するために作られたランタイムであり,整備された支援ツールによる開発体験や,セキュリティを意識したモダンな設計から注目を集めています。本連載で,Denoを活用した快適なTypeScriptサーバサイド開発を体験しましょう。第4回は,Denoで作成したAPIをDeno Deploy上で実際に公開していきます。最終回では応用編として,FFIやWebAssemblyを利用して,Denoからほかの言語の資産を使う方法について解説します。

目次

第1特集
API実装の大本命
gRPCで始めるWeb API開発
HTTP/2ベースの効率的なデータ通信を実現しよう

  • 第1章:gRPCの特徴と登場背景
    気鋭のRPCフレームワークの実際
    …… 福岡 秀一郎
  • 第2章:gRPCの技術要素とProtocol Buffersの基本
    スキーマ定義の仕様と書き方を押さえよう
    …… 武上 将樹
  • 第3章:gRPC利用時のAPI設計ポイント
    利便性,生産性,拡張性などを高める機能と工夫
    …… 渋川 よしき,武田 大輝,真野 隼記
  • 第4章:gRPCによるWeb APIの実装
    スキーマ起点でクライアントからサーバまで一気に開発
    …… 小谷 優空

第2特集
いま注目のJavaScriptフレームワーク
はじめようSvelte
軽量で高速なJamstack開発を体験

  • …… 池田 祐輔
  • 第1章:Svelteの概要を知る
    人気フレームワークとの比較からセットアップまで
  • 第2章:Svelteの基本構文総まとめ
    シンプルなコードでリアクティブな動作を実現
  • 第3章:簡単なJamstackサイトを構築する
    実践を通してSvelteの使い方を身につけよう

一般記事

  • [特別企画]GoFデザインパターン歴史探訪
    オブジェクト指向の意味を再発見しよう
    ……なぎせ ゆうき
  • 【最終回】[短期連載]ソフトウェアのセキュリティ&品質管理の新要件SBOM
    【3】SBOM管理における課題と解決の手がかり
    ……小保田 規生
  • 【最終回】[短期連載]Denoで始める サーバサイドTypeScript開発
    【5】ほかの言語の資産を活用しよう
    ……ゴリラ(監修:日野澤 歓也,田中 優亮)

連載

  • ITエンジニア必須の最新用語解説
    【175】Dart 3……杉山 貴章
  • 平林万能IT技術研究所 2ndシーズン
    【14】「願いをかなえる言霊カメラ」を作ってやろう――音声認識と深層学習の画像生成で現実世界を書き換える……平林 純
  • Stable Diffusionで学ぶ画像生成AIのしくみ
    【2】Stable Diffusionを試してみよう……國田 圭佑
  • ハピネスチームビルディング
    【16】みんなで楽しく成長するペアプロ/モブプロのやり方(後編)……小島 優介
  • オンラインホワイトボード「Miro」徹底活用術
    【10】チームビルディングにおける活用例……三浦 茜
  • エンジニアのためのやる気UPエクササイズ
    【11】エンジニアにこそやってほしいマインドフルネス瞑想……えくろプロテイン
  • 【新連載】新時代の分散型SNS Nostr
    【1】次世代SNSを概観する……へいほぅ
  • メールセキュリティ対策の現場
    【3】DMARCレポートのしくみと活用……中村 成陽
  • Google Cloudを軸に実践するSREプラクティス
    【4】TerraformとGitHub Actionsで構築するインフラCI……小林 裕明,(監修)小森 裕介
  • three.jsでお手軽3Dプログラミング
    【5】シェーダーの基礎……可児 亘
  • なるほど納得Go言語
    【6】Goらしいコード進行……崎原 晴香(H.Saki)
  • 【最終回】最強の開発環境 探求の道
    【7】dotfilesの管理を発展させる……中山 慶祐
  • AWS活用ジャーニー
    【10】Amazon SageMaker……武田 隆志
  • ひみつのLinux通信
    【113】**キング……くつなりょうすけ
  • 魅惑の自作シェルの世界
    【8】複合コマンドの細かい話……上田 隆一
  • [Ansible]現場を支えるPlaybook
    【8】Ansibleで秘密情報を扱うときにはAnsible Vaultを使おう……佐々木 健太郎
  • こんなときどうする? エンジニアも知っておきたい法律知識
    【23】エンジニアとChatGPT,その他大規模言語モデル(LLM)……弁護士 坂田 晃祐
  • あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~
    【139】民主主義を発展させるためのテクノロジー「Plurality」……関 治之