IT・コンピュータ - 柴田芳樹作品一覧

  • Web API設計実践入門──API仕様ファーストによるテスト駆動開発
    4.0
    ◆長年のソフトウェア開発経験が生み出した新提案◆ 本書は、著者が約30年間経験してきたAPI仕様の作成、20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり、一般的なソフトウェア開発者が習得することが容易ではない事柄を、本書を通して学び、実践してもらうことを目的としています。 本書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の実現に必要なものであり、また、API仕様ファースト開発を実現するにはテスト駆動開発が必要です。API仕様ファースト開発とテスト駆動開発は、いわば車の両輪のような関係にあります。 ソフトウェアテストの変遷とWebサービスにおけるAPI仕様の関連を説明したうえで、API仕様とはどうあるべきか、API仕様に何を書くべきかについて説明します。具体例としてはgRPCを取り上げます。第4章で紹介するAPI仕様ファースト開発という開発プロセスは、筆者が日々実践していることですが、多くのソフトウェアエンジニアが実践できていないことです。そのために必要なE2Eテストフレームワーク、さらには、API仕様がきちんと書かれていないために生まれる技術負債の返済方法なども紹介します。 ■目次 ●第1章 ソフトウェアテストの変遷   1.1 1990年代までと2000年代のソフトウェアテスト   1.2 フィードバックループを短くする   1.3 ビッグバンインテグレーションから継続的インテグレーションへ   1.4 まとめ ●第2章 API仕様   2.1 APIとは   2.2 優れたAPI仕様とは   2.3 API仕様でよくある問題点   2.4 API仕様に書くべきこと   2.5 API仕様とE2Eテスト   2.6 まとめ ●第3章 gRPCにおけるAPI仕様の書き方   3.1 gRPCとは   3.2 API仕様をどこに書くか   3.3 サービスの概要の説明   3.4 個々のエンドポイント(RPC)の説明   3.5 エラーの説明   3.6 リストオプションの説明   3.7 まとめ ●第4章 API仕様ファースト開発   4.1 開発順序   4.2 不具合の修正順序   4.3 既存のエンドポイントの修正と新たなエンドポイントの追加   4.4 API仕様のエンドポイントを呼び出すE2Eテストの利点   4.5 まとめ ●第5章 E2Eテストフレームワークの構築   5.1 テストフレームワークの基本的な考え方   5.2 マイクロサービス構成でのテストフレームワーク   5.3 非マイクロサービス構成でのテストフレームワーク   5.4 E2Eテストフレームワークの骨格   5.5 まとめ ●第6章 API仕様の技術的負債の返済   6.1 APIの技術的負債とは   6.2 API仕様の負債の返済   6.3 返済順序のまとめ   6.4 E2Eテストのもう1つの利点:リファクタリング   6.5 E2Eテストと単体テスト   6.6 API仕様ファースト開発が定着した組織   6.7 まとめ ●第7章 Go言語によるE2Eテストフレームワークの実装   7.1 E2Eテストの基本的な流れ   7.2 courierライブラリの構成とインストール   7.3 サンプルサービスの構成と定義   7.4 E2Eテストコードの例   7.5 E2Eテストフレームワークの流れ   7.6 フェイクサービスの構築   7.7 テスト実行までの流れとテストコードの実装   7.8 テストの並列化サポート   7.9 ほかのテスト関数の例   7.10 テスト関数に合格するサーバ実装   7.11 外部サービスのフェイクサービス   7.12 E2Eテストでのデータの準備   7.13 ステージング環境や本番環境に対するE2Eテスト   7.14 まとめ ●付録A:Goのテストの並列化 ●付録B:長時間夜間ランニングテスト ●付録C:防御的プログラミング ■著者プロフィール 柴田芳樹:九州工業大学および大学院で情報工学を専攻。1984年4月に富士ゼロックスに就職し、その後さまざまな会社でソフトウェア開発に従事。2024年4月より個人事業主として活動。2018年6月に、メルペイ(メルカリ子会社)でWebサービスのバックエンドサービス開発に従事してからは、「API仕様ファースト開発」によるGoおよびTypeScriptを用いたバックエンドサービス開発に従事している。著書に『プログラマー“まだまだ”現役続行』(2010年、技術評論社)ほか多数。
  • Go言語 100Tips ありがちなミスを把握し、実装を最適化する
    -
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Goプログラミングにありがちな間違いを網羅的に解説! 間違いに対処しておくことで、開発生産性とコード品質を高めよう。 本書では、Goアプリケーションによくある100の間違いを取り上げ、 その例を検証し、その背景にある事柄を掘り下げていきます。 さらに、間違いを回避するためのヒント、テクニックを紹介し、 実際の現場で間違いを回避できるようにします。 本書で取り上げる間違いは、バグ、不必要な複雑さ、可読性の低下、 最適ではない/慣用的ではないソフトウェア構成、APIの利便性の欠如、 最適化されていないコード、生産性の欠如です。 Go言語の文法のほか、エラー管理、並行処理、標準ライブラリ、テスト、最適化など さまざまなカテゴリーにおける間違いを見ていきます。 【推薦の言葉】 Go開発者が製品環境でコードに触れる前に必ず読むべき本。 『Effective Java』に相当するGoの本です―Neeraj Shah, Nutanix わかりやすく、効果的な例題。間違いがどのようになぜ起こるのかを理解することで、 手痛い間違いを避けられます―Giuseppe Maxia, VMware 【章構成】 第1章 Go言語―学ぶのは容易、習得は難しい 第2章 コードとプロジェクト構成 第3章 データ型 第4章 制御構造 第5章 文字列 第6章 関数とメソッド 第7章 エラー管理 第8章 並行処理:基本編 第9章 並行処理:実践編 第10章 標準ライブラリ 第11章 テスト 第12章 最適化 ◎本書を読むにはGo言語の構文について理解している必要があります。 ◎本書は『100 Go Mistakes and How to Avoid Them』の翻訳書です。
  • 新世代Javaプログラミングガイド[Java SE 10/11/12/13と言語拡張プロジェクト]
    -
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Javaのテクニックをアップグレードしよう! バージョン10から最新版まで さまざまなアップデートを一挙に学べる! Java SE 10以降では、年2回のバージョンアップサイクルとなっています。 そのうちバージョン11は、長期サポート版としてリリースされました。 本書では「Java SE 10~13の新機能」と「開発中の機能」を取り上げています。 取り上げるテーマは、以下のとおりです。 型推論、アプリケーション・クラスデータ共有、 ガベージコレクタ、ラムダ式、ラムダパラメータ、enum、 データクラス、テキストブロック、パターンマッチング、など 機能の内容だけでなく、背景、使い方、ユースケースも適宜、説明しています。 本書は、機能拡張のサイクルを加速させるJava SEのアップデートを確認したい 読者にとって、最適な一冊です。
  • Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング
    4.3
    ◆ラムダ/ストリーム/並行機能などを説明 ◆理解を深めるための問題を掲載 ◆Java 7で追加された機能も学べる >>> 本書は、従来のJavaを知っているプログラマーを対象にしており、Javaの初歩には触れていません。Java 8の数多くの新機能を中心に解説するほか、Java 7で追加された機能も説明しています。Java 8では、ラムダ式やコレクションをはじめ、プログラミング言語やライブラリの機能が大幅に追加・更新されています。本書により、Javaの新機能を楽しみ、Javaプログラマーとしてさらなる高みに踏み込んでいきましょう。※本書は『Java SE 8 for the Really Impatient』の翻訳書です。
  • スーパーユーザーなら知っておくべきLinuxシステムの仕組み
    4.5
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Linuxの動作・構成・設定とその関係が理解できる! 各テーマについて背景・理論・実例を解説。<英語版はのべ5万部超のベストセラー! Linuxで実践したいことができるように内部動作を把握しよう> 取り上げる主なテーマは、システムの全体像、コマンドとディレクトリ、ディスクとファイルシステム、デバイス、カーネルやシステムの起動、プロセスと資源、ネットワークと設定、ファイル転送と共有、ユーザー環境、開発ツール・コンパイル、仮想化など。【本書「まえがき」より】この本の章を三つの基本部分にグループ分けすると、最初は入門であり、Linuxシステムの全体像を示して、Linuxを使っていく上で必要なツールを用いたハンズオン(具体的手法)を提供しています。次に、デバイス管理からネットワーク設定、そして、システム起動時の一般的な順序といったシステムの各部分の詳細を説明します。最後に、動作中のシステムを見て、基本的なスキルを学び、さらに、プログラマが使うツールについて学びます。【推薦の言葉】Linuxに興味があるのなら必読の書籍です――『LinuxInsider』。Linuxアーキテクチャのあらゆる角度から多くの情報を提供しています――『Everyday Linux User』。詳細に深入りせずに、内部で何が行われるかについて必要な理解を得られます。この本は、Linuxの書籍の中でもとても新鮮で、全面的に推薦します――Phil Bull、『Ubuntu Made Easy』の共著者、Ubuntuドキュメンテーションチーム。Linuxに基づくオペレーティングシステムの透明な深みへ飛び込んで、すべてがどのようにつなぎ合わされているのかを示しています――『DistroWatch』。必要不可欠な書籍として書棚に置かれることでしょう――『MagPiマガジン』
  • プログラマー”まだまだ”現役続行
    4.2
    ※本書は2009年に発行された書籍の電子版になります。 【管理職にならなくたっていい。】 「35歳定年説」が常識としてまかり通っている事実が示すように、我が国ではプログラミングは「若く、給料の安い人がやる仕事」とされている。しかし、世界の常識はそうではなく、40代、50代でも現役としてプログラミングを続けている技術者も少なくない。50代の現在もなお現役プログラマーとして活躍する著者が、生涯プログラマーとして活躍するための心得を説く。 ■こんな方におすすめ ・これからプログラマーになろうと考えている大学生 ・プログラマーに転職しようと考えている人 ・プログラマーになりたての人 ・プログラマーとして楽しく仕事をしていきたい人 ■目次 第1章 ソフトウェアは「人」が作る 第2章 プログラマー現役続行 第3章 論理思考力:現役続行に必要な七つの力(1) 第4章 読みやすいコードを書く力:現役続行に必要な七つの力(2) 第5章 コンピュータサイエンスの基礎力:現役続行に必要な七つの力(3) 第6章 継続学習力:現役続行に必要な七つの力(4) 第7章 朝型力:現役続行に必要な七つの力(5) 第8章 コミュニケーション力:現役続行に必要な七つの力(6) 第9章 英語力:現役続行に必要な七つの力(7) 第10章 コードレビューのすすめ 第11章 若い人たちへ 第12章 30代、40代の人たちへ ■著者プロフィール 柴田芳樹:1959 年生。九州工業大学および大学院で情報工学を専攻し、以来、ソフトウェア開発に従事する。翻訳書に『プログラミング言語Java 第4版』『Effective Java 第2版』『Java Puzzlers 罠、落とし穴、コーナーケース』『Google Web Toolkit ソリューション』(いずれもピアソン・エデュケーション)『アプレンティスシップ・パターン』(オライリー・ジャパン)、著書に『Java 2 Standard Edition 5.0Tiger』(ピアソン・エデュケーション)『ソフトウェア開発の名著を読む【第2版】』がある。

最近チェックした作品からのおすすめ

最近チェックした作品