タグ

ブックマーク / www.oreilly.co.jp (47)

  • ソフトウェアアーキテクチャメトリクス

    ソフトウェア品質をプロセスの早い段階から計測し、アーキテクチャの負債や技術的負債の蓄積を検知できるようにしておくことは、ソフトウェアの成功にとって重要です。ソフトウェアアーキテクチャに関するメトリクスを適切に導入できれば、パフォーマンスなどのリスクを軽減し、問題に対処するコストを抑えられます。 書は、経験豊かな10人のソフトウェアアーキテクトたちが、知っておくべきメトリクスについて、貴重な経験やケーススタディと共に紹介します。 アーキテクチャが目標にどれだけ合致しているかの計測、追跡すべき適切なメトリクスの選択、可観測性/テスト容易性/デプロイ可能性を向上させる方法、アーキテクチャに対する取り組みの優先順位付け、学びに満ちた適切なダッシュボードの構築を解説します。 はじめに 1章 解き放たれた4つのキーメトリクス1.1定義と計測 1.2 メンタルモデルのリファクタリング 1.2.1 最初

    ソフトウェアアーキテクチャメトリクス
  • オブジェクト設計スタイルガイド

    オブジェクト設計において、コードの読みやすさ、書きやすさ、メンテナンス性を向上させるにはどうすればよいでしょうか? 書は、より良いオブジェクト指向のコードを書くためのルールを紹介します。オブジェクトの種類に応じたオブジェクトの構築、メソッドの定義、状態の変更や公開など、設計ルールを説明します。JavaPython、C#など、あらゆるオブジェクト指向言語に適用できるテクニックを、擬似コードを使ってわかりやすく解説します。コードの品質を上げるためのルールを紹介する書は、プログラマ必携の一冊です。 まえがき 序文 書について 1章 オブジェクトを使ったプログラミング入門 1.1 クラスとオブジェクト 1.2 状態 1.3 振る舞い 1.4 依存関係 1.5 継承 1.6 ポリモフィズム 1.7 コンポジション 1.8 クラスの整理 1.9 Return文と例外 1.10 ユニットテスト

    オブジェクト設計スタイルガイド
  • ソフトウェア設計のトレードオフと誤り

    「プログラムを設計するときに行った技術的な判断や選択が、後日大きな制約となる」これはプログラマなら誰しも経験したことのあることでしょう。書は、そんなプログラミングにおける各種の設計上の選択について、トレードオフの内容やそれがどのような誤りを招きうるのかという点を踏まえて紹介する書籍です。 コードの重複、エラーや例外処理、柔軟性と複雑性のバランスのようなコードレベルの選択から、APIの設計、時刻の扱い、データローカリティのようなシステム寄りの話題、またライブラリの選択、分散システムの一貫性と原子性、バージョニングのようなより抽象度の高い内容まで、さまざまなシチュエーションにおけるトレードオフの実態と、その失敗例をとり上げます。 書は日々のプログラミングにおける解決策のヒントを得るだけでなく、より幅広い設計上の知見を広める上でも役に立つでしょう。 正誤表 ここで紹介する正誤表には、書籍発行

    ソフトウェア設計のトレードオフと誤り
  • ハッキングAPI

    Web APIは近年急速に利用が拡大しています。APIの呼び出しが全Webトラフィックの80%以上を占めるほど、Webサービスに欠かせない技術となっている一方で、Web APIに対するサイバー攻撃も急増しており、そのセキュリティ対策はあらゆる組織で重要な課題となっています。 書の目的は、Web APIの基をしっかり押さえ、脆弱性が存在しないかどうかテストする方法を示すことです。攻撃者(APIハッカー)の視点から、あらゆるAPI機能と特徴を活用するための知識を学ぶことで、これから起こり得る情報漏えいの危機を防ぐことができます。まず、WebアプリケーションやWeb API脆弱性の種類などの基礎知識を学んだのち、実際に検証用ラボを構築しながら、脆弱性の調査方法、ツール、さまざまな攻撃手法などを、実践的に解説していきます。Webアプリケーションで最も一般的なAPI形式であるREST APIのセ

    ハッキングAPI
  • 初めての自動テスト

    Webシステムの自動テストを始めたい方を対象に、自動テストの考え方やフレームワークを解説する書籍です。テストのピラミッドやユーザーインターフェイステストの概念など、基礎的な事柄から、レガシーシステムへのUIテストの追加、RESTfulなWebサービスのテスト、ブラウザ上のJavaScriptの挙動をユニットテストでテストする方法など、実践的な事柄までを豊富なイラストとサンプルを使って分かりやすく解説します。さらにテストファーストやモックの活用法、テスターに向けた自動テストのためのプログラミング基礎知識なども詳述。自動テストを書くためのノウハウを網羅した書は、自動テストをマスターしたいエンジニア必携の一冊です。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では

    初めての自動テスト
  • 詳解 インシデントレスポンス

    インシデント対応には、様々な専門分野の知識が必要です。優れたインシデント対応担当者は、ログ分析、メモリフォレンジック、ディスクフォレンジック、マルウェア解析、ネットワークセキュリティ監視、スクリプトやコマンドライン技術などに精通している必要があり、様々な分野のトレーニングを継続的に受ける必要があります。 書は、セキュリティ侵害を試みる攻撃者の活動に対し、日常的に予防・検知・対応を行う実務家によって書かれた、実務家のための書籍です。それぞれの専門分野のエッセンスを凝縮し、読者の環境ですぐに応用できるインシデント対応の効果的な技術を紹介します。侵害や情報漏洩がより速いペースで発生し、これまでとは異なる動的なアプローチを必要とする現代の脅威に合わせた最新技術を解説していきます。インシデント対応の理解を深めたいIT専門家、初めてインシデント対応を学ぶ学生、クイックリファレンスガイドを探しているセ

    詳解 インシデントレスポンス
  • 並行プログラミング入門

    複数のプログラムを同時に実行する「並行プログラミング」は、処理速度を飛躍的に向上させる手法で、タスク管理、プロセス管理、スレッド管理をはじめ、複雑な仕組みについての幅広い知識とテクニックが必要となります。書はRustとアセンブリ、そして一部Cを用い、CPUのアトミック命令、グリーンスレッド、アクターモデル、π計算、ソフトウェア・トランザクショナルメモリ、async/awaitなど、並行プログラミングに関する理論的な背景から実装までをカバー。さらに、アセンブリ実装の理解を深めるため、AArch64とx86-64アーキテクチャの説明も付録として収録。一歩一歩、着実に理解できるように、その仕組みから順を追って詳しく説明します。GitHub上で公開されているソースコードを実際に動かしながら、並行プログラミングの知識と理解を深めることができます。 関連ファイル サンプルコード 正誤表 ここで紹介す

    並行プログラミング入門
  • プログラミングC# 第8版

    C#を体系的に網羅したC#プログラマのバイブルが、C# 8.0に合わせて全面改訂。言語仕様からクラウドも考慮したWebアプリ開発、デスクトップアプリ構築まで、C# 8.0の基から高度なテクニックまでを詳しく紹介します。C# 8.0では、パターンマッチング、範囲構文、非同期メソッドの大幅拡張、null許容参照をはじめさまざまな新機能の追加と改善がされています。書はこうした新機能もしっかりとフォロー。詳細な説明と、豊富なサンプルコードを用意し、初心者はもちろん中上級者の要望にも応える一冊です。 目次 はじめに 1章 C#の基礎 1.1 なぜC#なのか 1.2 C#の主な特徴 1.2.1 マネージコードとCLR 1.2.2 専用よりも汎用を 1.3 C#標準と実装 1.3.1 多数のMicrosoft .NET(一時的なものとして) 1.3.2 .NET Standardによる複数の.NET

    プログラミングC# 第8版
  • ユニコーン企業のひみつ

    大規模な成功を収めているテック企業(ユニコーン企業)は、スタートアップで機能していたテクニックをエンタープライズ企業レベルにまでスケールさせる方法を見いだし、日々実践しています。Amazon、Facebook、Googleなどは、何万人もの従業員を抱えているにもかかわらず、スタートアップのように働いています。書はSpotifyでアジャイルコーチやエンジニアの経験を持つ著者がユニコーン企業のソフトウェアづくりと働き方を解説します。 ミッションによってチームに目的を持たせ、スクワッドに権限を与え、信頼する。カンパニーベットを通じて大規模な取り組みを調整する。このような働き方とそれを実現するための文化のあり方を解説し、複数チームが連携しながら質の高いプロダクトを早くリリースし、迅速に技術革新を行うための方法を学びます。 プロダクトのデリバリーにフォーカスする世界有数のテック企業の事例を紹介する

    ユニコーン企業のひみつ
  • データ指向アプリケーションデザイン

    監訳者まえがき はじめに 第I部データシステムの基礎 1章 信頼性、スケーラビリティ、メンテナンス性に優れたアプリケーション 1.1 データシステムに関する考察 1.2 信頼性 1.2.1 ハードウェアの障害 1.2.2 ソフトウェアのエラー 1.2.3 ヒューマンエラー 1.2.4 信頼性の重要度 1.3 スケーラビリティ 1.3.1 負荷の表現 1.3.2 パフォーマンスの表現 1.3.3 負荷への対処のアプローチ 1.4 メンテナンス性 1.4.1 運用性:運用担当者への配慮 1.4.2 単純さ:複雑さの管理 1.4.3 進化性:変更への配慮 まとめ 2章 データモデルとクエリ言語 2.1 リレーショナルモデルとドキュメントモデル 2.1.1 NoSQLの誕生 2.1.2 オブジェクトとリレーショナルのミスマッチ 2.1.3 多対一と多対多の関係 2.1.4 ドキュメントデータベース

    データ指向アプリケーションデザイン
  • Raspberry Piで学ぶコンピュータアーキテクチャ

    書は、未来のプログラマ、コンピュータ設計者のために書かれた、Raspberry Piを題材にコンピュータの「仕組み」、コンピュータサイエンスの基を学ぶ書籍です。Raspberry Pi開発者たちが、プロセッサ、メモリ、ストレージ、ネットワーク、オペレーティングシステム、プログラミング、3Dグラフィックス、オーディオ、そして入出力制御などについて、それらの歴史的な背景なども合わせて詳細に解説を行います。また、解説内容の一部は、実際にRaspberry Piで動かしながら学ぶことも可能です。 はじめに ケンブリッジ ここからが題 成長曲線の伸び悩むところ 将来に向けて 監訳者まえがき 1章 驚くべきコンピュータの姿 おいしくて果汁あふれるラズベリーの成長 SoC わくわくするクレジットカードサイズのコンピュータ Raspberry Piに何ができるか? Raspberry Piボードの紹

    Raspberry Piで学ぶコンピュータアーキテクチャ
  • Go言語でつくるインタプリタ

    書は、Go言語でプログラミング言語のインタプリタを作りながら、プログラミング言語とそのインタプリタについて学ぶ書籍です。 順を追ってコードを示し、C言語風の構文を持つ言語「Monkeyプログラミング言語」のインタプリタを組み立てていきます。字句解析器、構文解析器、評価器を作りながら、ソースコードをトークン列に、トークン列を抽象構文木に変換し、その抽象構文木を評価し実行する方法を学びます。さらに、インタプリタに新しいデータ型を導入し、組み込み関数を追加して、言語を拡張していきます。付録では構文マクロシステムについても扱います。 書では、Go言語標準のツールキット以外のサードパーティライブラリやフレームワークは使用せず、0行のコードからはじめて、完動するインタプリタができあがるところまでを体験します。その過程を通じて、プログラミング言語とインタプリタの仕組みを実践的に学ぶことができます。

    Go言語でつくるインタプリタ
  • SRE サイトリライアビリティエンジニアリング

    サイトリライアビリティエンジニアリング(SRE)とは、Googleで培われたシステム管理とサービス運用の方法論です。GoogleのSREチームの主要メンバーによって書かれた書は、ソフトウェアのライフサイクル全体にコミットすることで世界最大規模のソフトウェアシステムがどのように構築、導入、監視、維持されているのかを解説します。 はじめにリスク管理やサービスレベル目標、リリースエンジニアリングなどSREの行動の基礎となる原則について解説し、次にインシデント管理や障害の根原因分析、SRE内でのソフトウェア開発など大規模分散コンピューティングシステムを構築し運用するSREの実践について詳述します。さらにSREのトレーニングやコミュニケーションなどの管理について紹介します。 急速にスケールするサービスを高い信頼性で運用する方法を解説する書はエンジニア必携の一冊です。 書への推薦の言葉 監訳者

    SRE サイトリライアビリティエンジニアリング
  • Fluent Python

    一歩先行くパイソニスタを目指す人のためのPython解説書。Pythonはシンプルです。使い方を覚えるのも簡単で生産性を短期間で高めることができます。しかしこれは、Pythonに備わっている豊富な機能のほんの一部しか使っていないということでもあります。書では、とても有用なのにあまり使われていないPythonの特徴的な機能を活用し効果的で慣用的なPythonコードを書く方法について解説します。読者は、Pythonicな思考とコーディング手法を身につけ、コードをより短く、より速く、より読みやすくする方法を学べます。書では、どうすれば熟練のPython 3プログラマーになれるのかを徹底的に追及します。 賞賛の声 監訳者まえがき まえがき 第Ⅰ部 プロローグ 1章 Pythonのデータモデル 1.1 Pythonicなトランプ 1.2 特殊メソッドの使用方法 1.2.1 数値型のエミュレーショ

    Fluent Python
  • プロダクションレディマイクロサービス

    UberのSRE(サイト信頼性エンジニア、サイトリライアビリティエンジニア)として、マイクロサービスの番対応向上を担当していた著者が、その取り組みから得られた知見をまとめたものです。モノリス(一枚岩)を複数のマイクロサービスに分割した後に、安定性、信頼性、スケーラビリティ、耐障害性、パフォーマンス、監視、ドキュメント、大惨事対応を備えたシステムにするために必要な原則と標準に焦点を当て、番対応力のあるマイクロサービスを構築する手法を紹介します。書で採用している原則と標準は、マイクロサービスだけなく多くのサービスやアプリケーションの改善にも威力を発揮します。 はじめに 1章 マイクロサービス 1.1 モノリスからマイクロサービスへ 1.2 マイクロサービスアーキテクチャ 1.3 マイクロサービスエコシステム 1.3.1 レイヤ 1:ハードウェア 1.3.2 レイヤ 2:通信 1.3.3 

    プロダクションレディマイクロサービス
  • 退屈なことはPythonにやらせよう

    関連ファイル サンプルコード(日語版) サンプルコード(原著者) 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。 正誤表 訳者まえがき まえがき 第Ⅰ部 Pythonプログラミングの基礎 1章 Python入門 1.1 式をインタラクティブシェルに入力する 1.2 整数、浮動小数点数、文字列型 1.3 文字列の連結と複製 1.4 変数に値を格納する 1.4.1 代入文 1.4.2 変数名 1.5 最初のプログラム 1.6 プログラムを分析する 1.6.1 コメント 1.6.2 print()関数 1.6.3 input()関数

    退屈なことはPythonにやらせよう
  • 詳解 システム・パフォーマンス

    TOPICS System/Network 発行年月日 2017年02月 PRINT LENGTH 784 ISBN 978-4-87311-790-4 原書 Systems Performance FORMAT PDF EPUB 書はエンタープライズ環境とクラウド環境の両方を対象としたオペレーティングシステムおよびオペレーティングシステムのコンテキストにおけるアプリケーションのパフォーマンス分析と向上について解説します。主にLinuxとSolarisベースのオペレーティングシステムに含まれるツールとその使用例やチューニング可能パラメータの設定を通じてシステムパフォーマンスを引き出す手法を学びます。CPUやメモリ、ファイルシステムなど個別テーマごとに設けられた各章の前半では、用語、考え方、方法論について述べ、後半では実装の具体例を示しつつ、アーキテクチャ、分析ツール、チューニングなどを解

    詳解 システム・パフォーマンス
  • Docker

    書はオープンソースのコンテナ管理ソフトウェア、Dockerの基礎から応用までを網羅した総合的な解説書です。はじめに開発環境をセットアップし、シンプルなWebアプリケーションのビルドについて解説した上で、コンテナの開発、テスト、結合に加えて、デプロイの方法、実動システムの効率的なモニタリングとロギングを紹介します。そして複数のホストからなるDockerコンテナのクラスタを、安全かつ高い信頼性の下で実行するために必要な高度なテクニックやツールについて紹介します。さらにネットワークやセキュリティについても詳述。Dockerとそのエコシステムを格的に活用したい開発者、運用エンジニア、システム開発者必携の一冊です。 正誤表 ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、

    Docker
  • 実例で学ぶゲームAIプログラミング

    ゲームAIプログラミングの名著“Programming Game AI by Example”の邦訳。プレイヤーのスキルが向上し、より面白くてワクワクするようなゲームが好まれるという市場の変化に伴い、ゲームの開発現場ではAI人工知能技術を使ったインテリジェントエージェントやボットの開発が注目されるようになりました。書では、AI技術を使ったインテリジェントエージェントの構築を、実例(動くサンプル)を多用しながらステップバイステップで丁寧かつ分かりやすく解説します。 原書(英語版)のWebページ ●原書:Programming Game AI by Example ●バグフィックス ●正誤表 訳者まえがき 推薦の言葉 書に寄せて まえがき 1章 数学と物理入門 1.1 数 学 1.1.1 直交座標 1.1.2 関数と方程式 1.1.3 三角法 1.1.4 ベクトル 1.1.5 ローカル

    実例で学ぶゲームAIプログラミング
  • サイバーセキュリティプログラミング

    Pythonは情報セキュリティの世界では他よりも先んじているプログラミング言語です。書ではPythonを使った情報セキュリティにおける攻撃手法について解説します。前半ではrawソケットやScapyライブラリなどネットワーク関連の内容を扱います。後半ではCOMをPythonから扱う方法やVolatilityフレームワークなどシステム関連のトピックを扱います。読者はコーディングを通じてサンプルPythonツールの拡張、外部ツールとの連携や自動化について学習することができます。攻撃者の意図や実践手法から防御方法を導き出すというアプローチは、今後すべての情報セキュリティ技術者にとって必須のテクニックになるでしょう。 サポートページ(サンプルコードや正誤表) 訳者まえがき 序文 まえがき 1章 Python環境のセットアップ 1.1 Kali Linuxのインストール 1.2 Wing IDE 2

    サイバーセキュリティプログラミング