についてお探し中...

【2025年】「リファクタリング」のおすすめ 本 145選!人気ランキング

この記事では、「リファクタリング」のおすすめ 本 をランキング形式で紹介していきます。インターネット上の口コミや評判をベースに集計し独自のスコアでランク付けしています。
記事内に商品プロモーションを含む場合があります
目次
  1. リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
  2. リファクタリング(第2版): 既存のコードを安全に改善する (OBJECT TECHNOLOGY SERIES)
  3. レガシーコード改善ガイド: 保守開発のためのリファクタリング
  4. 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)
  5. 新装版 達人プログラマー 職人から名匠への道
  6. CODE COMPLETE 第2版 上 完全なプログラミングを目指して
  7. 現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法
  8. パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法
  9. Clean Code アジャイルソフトウェア達人の技
  10. 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方
他135件
No.1
100

本書は、理解しやすいコードを書くための方法を紹介しています。具体的には、名前の付け方やコメントの書き方、制御フローや論理式の単純化、コードの再構成、テストの書き方などについて、楽しいイラストを交えて説明しています。著者はボズウェルとフォシェで、須藤功平氏による日本語版解説も収録されています。

みんなのレビュー
まだレビューはありません
No.2
76

本書『リファクタリング』第2版は、ソフトウェアの内部構造を改善しつつ外部の振る舞いを保つ方法を解説するガイドブックです。リファクタリングの必要性や改善点を具体的な事例を交えて説明しており、特にリファクタリング・カタログがアップデートされています。サンプルコードはJavaからJavaScriptに変更され、現代的な内容になっています。著者は情報システム分野の専門家で構成されており、実践的なリファクタリングの価値を実感できる内容となっています。

みんなのレビュー
まだレビューはありません
No.3
66

この書籍は、システム保守における複雑なコードの分析手法や対処方法を解説しています。具体的には、コードの理解、テスト、リファクタリング、機能追加のためのテクニックを紹介。内容は、ソフトウェアの変更メカニズムや、変更作業における課題、依存関係の排除手法に分かれています。著者は、テスト駆動開発やオブジェクト指向設計に関する専門家たちです。

みんなのレビュー
まだレビューはありません
No.8
61
みんなのレビュー
まだレビューはありません
No.9
60

本書は、プログラムの洗練を進めるための判断力を養うケーススタディを提供します。内容は「クリーンコード」や「意味のある名前」など、プログラミングの重要な要素を扱い、プログラムが動作することだけではなく、質の高いコードを書くための方法論を学ぶことができます。各章では、関数、コメント、エラー処理、単体テストなど、多岐にわたるテーマを深く掘り下げています。

みんなのレビュー
まだレビューはありません
No.13
58
みんなのレビュー
まだレビューはありません
No.14
57
みんなのレビュー
まだレビューはありません
No.19
57

『デザインパターン』の23個のパターンをオブジェクト指向初心者向けに解説した書籍で、Javaのサンプルプログラムを掲載。新たに「デザインパターンQ&A」も追加されている。目次はデザインパターンの基本から、サブクラスの利用、インスタンス作成、構造管理など多岐にわたる。

みんなのレビュー
まだレビューはありません
No.22
57

本書は、オブジェクト指向ソフトウェア設計における問題解決のための23のデザインパターンをカタログ化しており、柔軟で再利用可能な設計を促進します。実際のプログラムに即適用可能で、Software Development Productivity Awardを受賞しています。目次には、概論、ドキュメントエディタの設計事例、デザインパターンのカタログ(生成、構造、振る舞いに関するパターン)、終わりにが含まれています。

みんなのレビュー
まだレビューはありません
No.23
56

Winner of the 2011 Jolt Excellence Award! Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours- sometimes even minutes-no matter what the size of a project or the complexity of its code base. Jez Humble and David Farley begin by presenting the foundations of a rapid, reliable, low-risk delivery process. Next, they introduce the "deployment pipeline," an automated process for managing all changes, from check-in to release. Finally, they discuss the "ecosystem" needed to support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks. Coverage includes * Automating all facets of building, integrating, testing, and deploying software * Implementing deployment pipelines at team and organizational levels * Improving collaboration between developers, testers, and operations * Developing features incrementally on large and distributed teams * Implementing an effective configuration management strategy * Automating acceptance testing, from analysis to implementation * Testing capacity and other non-functional requirements * Implementing continuous deployment and zero-downtime releases * Managing infrastructure, data, components and dependencies * Navigating risk management, compliance, and auditing Whether you're a developer, systems administrator, tester, or manager, this book will help your organization move from idea to release faster than ever-so you can deliver value to your business rapidly and reliably. Foreword by Martin Fowler Preface Acknowledgements About the Authors Part I Foundations 1 The Problem of Delivering Software 2 Configuration Management 3 Continuous Integration 4 Implementing a Testing Strategy Part II The Deployment Pipeline 5 Anatomy of the Deployment Pipeline 6 Build and deployment scripting 7 Commit Testing Stage 8 Automated Acceptance Testing 9 Testing Non-Functional Requirements 10 Deploying and Releasing Applications Part III The Delivery Ecosystem 11 Managing infrastructure and environments 12 Managing Data 13 Managing components and dependencies 14 Advanced version control 15 Managing Continuous Delivery Bibliography Index

みんなのレビュー
まだレビューはありません
No.25
56

本書は、ソフトウェアアーキテクチャの重要性と、効果的なアーキテクチャを設計・構築・維持するためのスキルや知識を現代的視点から解説しています。内容は、アーキテクチャの基礎、アーキテクトの役割、アーキテクチャスタイル、チームとのコラボレーションに必要なソフトスキルなど多岐にわたり、実践的な例を交えて説明されています。著者は経験豊富なアーキテクトたちで、読者がソフトウェアアーキテクトとして成長するための道筋を示しています。

みんなのレビュー
まだレビューはありません
No.28
56
みんなのレビュー
まだレビューはありません
No.29
55

本書は、TypeScriptの基礎から応用までを学べる一冊です。TypeScriptはJavaScriptに静的型付けを加えた言語で、独自の高い型システムを持ちます。内容は、基本的な文法や型、オブジェクト、関数、クラス、高度な型、モジュールシステム、非同期処理、コンパイラオプションなど多岐にわたり、各章に力試し問題が用意されています。TypeScriptの初学者やJavaScriptの知識がない人に特におすすめです。著者はLINE株式会社のフロントエンドエンジニアで、TypeScriptとReactに精通しています。

みんなのレビュー
まだレビューはありません
No.30
55

プログラミング言語 Ruby

まつもと ゆきひろ
オライリージャパン
みんなのレビュー
まだレビューはありません
No.32
55

本書『マスタリングTCP/IP 入門編 第6版』は、TCP/IPに関する解説書の決定版であり、時代の変化に対応した内容を加えて刷新されています。豊富な図版や脚注を用いたわかりやすい解説により、TCP/IPの基本や関連技術を学ぶことができます。目次にはネットワーク基礎、TCP/IPの基礎、ルーティングプロトコル、アプリケーションプロトコル、セキュリティなどが含まれています。著者はネットワンシステムズや大学の教授など、専門家たちです。

みんなのレビュー
まだレビューはありません
No.34
55

『プリンシプル オブ プログラミング』は、プログラマーが3年目までに身につけるべき101の原理原則を紹介するガイドブックです。KISSやブルックスの法則など、古今東西の知恵を集約し、質の高いプログラミングを実現するための基本的な考え方や手法をわかりやすく解説しています。初心者から脱却したいプログラマーに最適な一冊です。著者は上田勲で、キヤノンITソリューションズでの豊富な経験を持っています。

みんなのレビュー
まだレビューはありません
No.35
55
みんなのレビュー
まだレビューはありません
No.37
55

科学者たちが語る食欲

デイヴィッド・ローベンハイマー
サンマーク出版
みんなのレビュー
まだレビューはありません
No.38
55

「手を動かす前に理解に時間をかける」「準備も持ち帰りもやめる」「脳を酷使しない」……圧倒的な生産性を生む最前線のスキルとは? 頭が先、手は後。一流の仕事のカギは順序にある。――楠木建(経営学者)知的生産へのリスペクトがイノベーションの源泉だ。――落合陽一(メディアアーティスト)「怠惰であれ!」「早く失敗せよ」――米マイクロソフトの現役ソフトウェアエンジニアの著者が、超巨大クラウドの開発の最前線で学んだ思考法とは?“三流プログラマ”でもできた〈生産性爆上がり〉の技術!・試行錯誤は「悪」。“基礎の理解”に時間をかける・より少ない時間で価値を最大化する考え方とは?・「準備」と「持ち帰り」をやめて、その場で解決する・マルチタスクは生産性が最低なのでやらない・“脳の負荷を減らす”コミュニケーションの極意・コントリビュート文化で「感謝」の好循環を生む……etc.仕事と人生を「自分の手でコントロールする」最高のスキルがここに!

みんなのレビュー
まだレビューはありません
No.40
54
みんなのレビュー
まだレビューはありません
No.42
54
みんなのレビュー
まだレビューはありません
No.46
54
みんなのレビュー
まだレビューはありません
No.47
54
みんなのレビュー
まだレビューはありません
No.48
54

本書は、Webサービスの実践的な設計について解説しています。初めに、HTTP、URI、HTMLの仕様とその歴史や設計思想を紹介し、その後、望ましいURIやHTTPメソッドの使い分け、クライアントとサーバの役割分担、設計プロセスなどの設計課題とベストプラクティスを提示しています。目次はWeb概論、URI、HTTP、ハイパーメディアフォーマット、Webサービスの設計、付録で構成されています。

みんなのレビュー
まだレビューはありません
No.49
54

この本は、問題発見に焦点を当てた内容で、特に自動車用トンネルのヘッドライトの点灯に関する具体例を通じて、問題を解くよりも発見することの重要性を強調しています。著者は、実生活において問題を見つけることがいかに難しく、面白いかを述べ、特に若者にこの知識を身につけてほしいと願っています。目次では、問題の本質やその解決方法についての章が展開されており、読者に新たな視点を提供します。

みんなのレビュー

No.50
54
みんなのレビュー

コレ一冊読めばWeb技術の基本が分かる!新しいテクノロジーが登場しても基本となるWebの技術は非常に大事だし活きる!IT系の仕事に付く人はまずこの書籍を読んで基本を固めるべし!

No.51
54

基礎 データ構造 整列 探索

みんなのレビュー
まだレビューはありません
No.53
54

この書籍は、データベース設計やアプリケーション開発におけるアンチパターンを紹介し、失敗を避けるための改善策を提案しています。内容はデータベース論理設計、物理設計、クエリ、アプリケーション開発の4つのカテゴリに分かれており、複数の値を持つ属性や再帰的なツリー構造、小数値の丸め、SQLインジェクションなどの実践的な問題を扱っています。著者はソフトウェアエンジニアやデータモデリングの専門家で構成されています。

みんなのレビュー
まだレビューはありません
No.54
54

本書は、データ活用に悩む企業向けに、データ基盤の構築やデータ分析組織の立ち上げに必要なノウハウを提供します。データを集めても活用できない理由や、データ基盤が機能しない原因を解説し、適切なデータ整備や組織の構築方法を提案。著者たちはデータ活用のプロフェッショナルであり、実践的な知識を惜しみなく披露します。データ基盤を効果的に機能させたい方にとって、必読の一冊です。

みんなのレビュー
まだレビューはありません
No.58
54
みんなのレビュー
まだレビューはありません
No.59
54

『メタプログラミングRuby』の改訂版は、Ruby 2.x、Ruby 1.9、Rails4、およびJRubyに対応しています。メタプログラミングの基本概念や技術を解説し、前半では様々な手法を紹介、後半ではRailsを用いた実例を示しています。内容はほぼ全面的に刷新されており、Rubyを活用したプログラミングを習得したい開発者にとって必携の一冊です。著者は豊富な開発経験を持つパウロ・ペロッタ氏と角征典氏です。

みんなのレビュー
まだレビューはありません
No.60
54
みんなのレビュー
まだレビューはありません
No.61
54
みんなのレビュー
まだレビューはありません
No.62
54
みんなのレビュー
まだレビューはありません
No.63
54
みんなのレビュー
まだレビューはありません
No.64
54
みんなのレビュー
まだレビューはありません
No.65
54

『Effective Java』の改訂第3版は、Javaプログラマーに必須の書籍で、Java 8の新機能であるラムダやストリームに関する章が追加されています。項目数は78から90に増え、オプショナルやデフォルトメソッド、try-with-resources文なども扱っています。複雑化したJavaのベストプラクティスを示す多くのデザインパターンとコード例が含まれており、正確で明瞭なソフトウェア設計に役立つ内容です。著者はJavaの主要な機能の設計に携わった専門家です。

みんなのレビュー
まだレビューはありません
No.66
54
みんなのレビュー
まだレビューはありません
No.68
54

システム開発の上流工程の1つである、システム設計にスポットを当てた入門書です。システム設計を大きくアプリケーション設計とインフラ設計の2つに分類し、各分類における設計内容を軸に、実践のポイントや注意点などを紹介しました。関係者間で共通の認識を持って開発を進め、システムの品質を高められるようになるはずです。また、設計書の活用方法についても解説されているので、メンテナンスも効率的にできるようになるでしょう。 CHAPTER1 「システム設計」の位置付け Section 01 本書の前提とシステム「開発」の全体像 Section 02 「要件定義」とは Section 03 「設計」とは Section 04 「開発テスト」とは Section 05 「リリース」とは Section 06 「保守・運用」とは COLUMN どの工程にどれくらいリソース(工数)が必要なの? CHAPTER2 「システム設計」とは Section 07 本書における「システム設計」の整理方法 Section 08 設計書を作成する理由 Section 09 設計書の種類 Section 10 「全体設計」の概要 Section 11 「入出力設計」の概要 Section 12 「データベース設計」の概要 Section 13 「ロジック設計」の概要 Section 14 「ネットワーク設計」の概要 Section 15 「サーバ設計」の概要 COLUMN システム設計は広く、深い CHAPTER3 「システム設計」 に影響する考え Section 16 ソフトウェア設計モデル Section 17 フレームワーク Section 18 社外要因・社内要因 Section 19 オンプレミスとクラウド Section 20 仮想化技術 Section 21 ミドルウェア COLUMN ソフトウェアを作るのは勉強も必要だが、本来は楽しいもの CHAPTER4 全体設計 Section 22 全体設計の流れとポイント Section 23 システムアーキテクチャ設計 Section 24 信頼性・安全性設計(全体編) Section 25 環境設計(全体編) Section 26 性能設計(全体編) Section 27 セキュリティ設計(全体編) Section 28 運用方式設計(全体編) Section 29 外部接続方式設計(全体編) Section 30 標準化設計 Section 31 テスト方式設計(全体編) Section 32 移行方式設計(全体編) COLUMN こんなにも全体設計が必要なの? CHAPTER5 入出力設計 Section 33 設計書一覧 Section 34 画面系:画面一覧 Section 35 画面系:画面遷移図 Section 36 画面系:画面共通設計 Section 37 画面系:画面レイアウト Section 38 画面系:画面入力設計 Section 39 帳票系:帳票レイアウト Section 40 IF系:外部接続先一覧 Section 41 IF系:外部接続方式設計 Section 42 IF系:IFレイアウト Section 43 その他:送信メール設計 COLUMN 入出力設計は、システム知見に加えてコミュニケーション力が必要 CHAPTER6 データベース設計 Section 44 設計書一覧 Section 45 ボリューム一覧 Section 46 RDB:データベース設定 Section 47 RDB:ER図 Section 48 RDB:テーブルレイアウト Section 49 ファイル:ファイル設計 COLUMN データベース設計といえば、まずはRDBです CHAPTER7 ロジック設計 Section 50 設計書一覧 Section 51 ユースケース図 Section 52 アクティビティ図 Section 53 クラス図 Section 54 シーケンス図 Section 55 処理フロー図(フローチャート) Section 56 状態遷移設計 Section 57 バッチ全体設計 Section 58 処理設計(プログラム仕様書) COLUMN システム構築には「システムならではの考え方」や「業界特有の知識」が必要 CHAPTER8 ネットワーク設計 Section 59 設計書一覧 Section 60 ネットワーク全体構成図(物理構成) Section 61 ネットワーク全体構成図(論理構成) Section 62 ネットワーク提供サービス一覧 Section 63 通信要件一覧 Section 64 IPアドレス設計 Section 65 ネットワークサービス設計 Section 66 FW(ファイアーウォール)ルール設定方針書 Section 67 流量制御設計 COLUMN ネットワークの基礎はOSI参照モデルを知るのが早い CHAPTER9 サーバ設計 Section 68 設計書一覧 Section 69 サーバ仕様設計 Section 70 仮想化設計 Section 71 サーバプロダクト構成書 Section 72 サーバ稼働サービス一覧 Section 73 サーバ設定仕様書 Section 74 サーバ構築手順書(クラウド編) Section 75 サーバ運用設計 Section 76 障害対応手順書 COLUMN サーバ設計ができれば、たいていはなんとかなる CHAPTER10 設計書の活用 Section 77 設計書は開発のためだけではない Section 78 設計書は継続したメンテナンスが重要 Section 79 設計書は影響調査に使用する Section 80 設計書はシステムの品質を高めるために使用する Section 81 設計書は教育に使用する Section 82 設計書は移行の元ネタに使用する COLUMN 設計書は不要、という暴論

みんなのレビュー
まだレビューはありません
No.69
54

Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress's highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone's feedback, we selected 15 folks who've been kind enough to agree to be interviewed: * Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow * Joe Armstrong: Inventor of Erlang * Joshua Bloch: Author of the Java collections framework, now at Google * Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger * Douglas Crockford: JSON founder, JavaScript architect at Yahoo! * L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 * Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation * Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal * Dan Ingalls: Smalltalk implementor and designer * Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler * Donald Knuth: Author of The Art of Computer Programming and creator of TeX * Peter Norvig: Director of Research at Google and author of the standard text on AI * Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress * Ken Thompson: Inventor of UNIX * Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker What you'll learnHow the best programmers in the world do their jobs! Who this book is for Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers. Table of Contents * Jamie Zawinski * Brad Fitzpatrick * Douglas Crockford * Brendan Eich * Joshua Bloch * Joe Armstrong * Simon Peyton Jones * Peter Norvig * Guy Steele * Dan Ingalls * L Peter Deutsch * Ken Thompson * Fran Allen * Bernie Cosell * Donald Knuth

みんなのレビュー
まだレビューはありません
No.70
53
みんなのレビュー
まだレビューはありません
No.72
53
みんなのレビュー
まだレビューはありません
No.73
53

著者がエンジニアリングにおける課題解決のための思考整理法やメンタリング手法を解説する本です。コミュニケーションの不確実性、技術的負債、経営陣とエンジニア間の認識のずれを解消する方法について詳しく述べています。若手を育成し、成長する組織を設計・運営するための実践的なアプローチが紹介されています。著者は技術と経営の接続に関する豊富な経験を持つCTOです。

みんなのレビュー
まだレビューはありません
No.74
54
みんなのレビュー
まだレビューはありません
No.78
53

この文章は、エリック・エヴァンスの著書に関する目次と著者情報を紹介しています。目次は、ドメインモデルの機能、モデル駆動設計の要素、リファクタリングの深い洞察、戦略的設計の4部構成で、各部での主要なテーマが列挙されています。著者は、ビジネスとソフトウェア構築に関する専門家や技術コンサルタントであり、各自の経歴や専門分野も述べられています。

みんなのレビュー
まだレビューはありません
No.83
53
みんなのレビュー
まだレビューはありません
No.87
53

Fundamental Algorithms

みんなのレビュー
まだレビューはありません
No.89
53
みんなのレビュー
まだレビューはありません
No.94
53

基礎から学ぶ Vue.js

mio
シーアンドアール研究所
みんなのレビュー
まだレビューはありません
No.100
53
みんなのレビュー
まだレビューはありません
No.102
54

 デジタルフィルタの原理を理解し,応用できるように具体的な計測システムの例をあげ,ソフトウェアとハードウェアを含め解説した。 序章 デジタルフィルタとは 第1章 簡単なデジタルフィルタ 第2章 Z変換と線形フィルタ 第3章 FIRデジタルフィルタの設計 第4章 IIRフィルタの設計 第5章 デジタルフィルタのハードウェア 第6章 簡単なデジタルフィルタの応用

みんなのレビュー
まだレビューはありません
No.103
53

『新版暗号技術入門』の改訂版は、2008年の刊行以来セキュリティ関連で人気を保ち続けている書籍です。暗号技術の基本を図解と易しい文章で解説し、対称暗号や公開鍵暗号、デジタル署名などを取り上げています。第3版では、現代の暗号技術に関する最新情報や、SHA-3、SSL/TLSへの攻撃、ビットコインとの関係などが加筆されています。全ての人にとって必読の内容で、暗号の歴史から応用技術まで幅広くカバーしています。

みんなのレビュー
まだレビューはありません
No.107
53

本書はテスト駆動開発(TDD)の実践方法を解説した日本語版で、原著者Kent Beckによる内容を和田卓人が翻訳しています。TDDは単なるテスト自動化ではなく、ユニットテストとリファクタリングを組み合わせた手法で、設計の進化を促進します。書籍は多国通貨オブジェクトやxUnitの例題を通じてTDDの原理とパターンを学ぶ構成になっています。

みんなのレビュー
まだレビューはありません
No.110
53

本書は、情報システムの設計手順を体系化し、ユーザーと開発チームをつなぐ方法を明示します。各工程の目的や作業内容を示しながら、データ、業務プロセス、画面UIの設計を「概要定義から詳細定義へ」「論理設計から物理設計へ」と進める手順を説明します。特定の開発手法に依存せず、実装技術や環境変化に左右されない原理原則を実践に即して解説しています。著者はシステム設計や業務改革に携わる専門家です。

みんなのレビュー
まだレビューはありません
No.111
53

データベース・リファクタリング

スコット W アンブラー
ピアソンエデュケーション
みんなのレビュー
まだレビューはありません
No.114
53

本書は、ChatGPTのAPIとLangChainを使って、大規模言語モデル(LLM)を本番レベルのシステムに組み込むための知識をステップバイステップで学習し、手を動かしながら実践できる書籍です。 生成AIが登場し、APIやフレームワークのエコシステムが充実してきたことによって、これまで機械学習やプログラミングの十分な知識が必要だったことに対してアプリケーション開発者が挑戦しやすくなりました。LLMの性質を活かしたサービスや業務システム構築の基礎を理解し、LLMのモデルやワークフローを抽象化して取り扱ううえで、LangChainというフレームワークが非常に便利です。本書でOpenAI APIやLangChainをしっかり学ぶことで、生成AI関連の知識を体系的にイメージできるようになります。 本書ではまず、OpenAI APIとLangChainについて解説します。ChatGPTのようなしくみを業務システムなどに組み込むためには、単にLLMに1つ入力して1つ出力を得るような実装ではなく、複数のタスクを一連のワークフロー処理として実現する必要があります。また、ChatGPTが知識を持たない専門知識を答えてほしいとか、意図した形式で応答が欲しいなど、実用性を高める必要も出てきます。これらを実現するためのLangChainのつかいかたをわかりやすく解説します。 後半では、ステートレスなOpenAI APIに記憶を持たせたり、必要に応じてWeb検索などを行うエージェント処理、さらにそれらチャット形式の処理を、ステップバイステップでWebアプリやSlackアプリとして実装します。 さらに、LLMアプリを本番稼働させるうえで必要となる、ユーザー体験、セキュリティ、コンプライアンスへの準拠などのためのヒントや注意点も解説します。 ●第1章 大規模言語モデル(LLM)を使ったアプリケーションを開発したい! 1.1 ChatGPTにふれてみよう 1.2 プロンプトの工夫でできること -日々の仕事で使ってみよう 1.3 プログラミングで使ってみよう 1.4 ChatGPTを使うときに気をつけること 1.5 ChatGPTの有料プランでできること -GPT-4 -Plugins -Advanced Data Analysis -OpenAIのChatGPT以外のサービス 1.6 大規模言語モデル(LLM)のビジネスへの活用 1.7 LLMを活用したビジネスやアプリケーションの事例紹介 -株式会社サイダスの事例:CYDAS PEOPLE Copilot Chat -PingCAP株式会社の事例:Chat2Query -Alexaスキルの事例(個人開発):helloGPT -株式会社ソラコムの事例:SORACOM Harvest Data Intelligence 1.8 LLMを使ったアプリケーション開発で気をつけること 1.9 本書で扱う技術について -LangChain -クラウドサービス(とくにサーバーレス) -Slackアプリでコラボレーションを促進しよう -まとめ ●第2章 プロンプトエンジニアリング 2.1 なぜいきなりプロンプトエンジニアリング? -ChatGPTのプロンプトエンジニアリング -アプリケーション開発におけるプロンプトエンジニアリング -プロンプトエンジニアリングってあやしくない? -COLUMN ファインチューニングとプロンプトエンジニアリング 2.2 プロンプトエンジニアリングとは 2.3 プロンプトの構成要素の基本 -題材:レシピ生成AIアプリ -プロンプトのテンプレート化 -命令と入力データの分離 -文脈を与える -出力形式を指定する -プロンプトの構成要素のまとめ 2.4 Prompt Engineering Guideから:ChatGPTの無限の可能性を引き出す -Zero-shotプロンプティング -Few-shotプロンプティング -Zero-shot Chain of Thoughtプロンプティング -まとめ ●第3章 ChatGPTをAPIから利用するために 3.1 OpenAIの文書生成モデル -ChatGPTにおける「モデル」 -OpenAIのAPIで使える文書生成モデル -モデルのスナップショット 3.2 ChatGPTのAPIの基本 -Chat Completions API -Chat Completions APIの料金 -発生した料金の確認 3.3 入出力の長さの制限や課金に影響する「トークン」 -トークン -Tokenizerとtiktokenの紹介 -日本語のトークン数について 3.4 Chat Completions APIにふれる環境の準備 -Google Colabとは -Google Colabのノートブック作成 -OpenAIのAPIキーの準備 3.5 Chat Completions APIをさわってみる -OpenAIのライブラリ -Chat Completions APIの呼び出し -会話履歴を踏まえた応答を得る -ストリーミングで応答を得る -基本的なパラメータ -COLUMN Completions API 3.6 Function calling -Function callingの概要 -Function callingのサンプルコード -パラメータ「function_call」 -Function callingを応用したJSONの生成 -まとめ ●第4章  LangChainの基礎 4.1 LangChainの概要 -LangChainのユースケース -なぜLangChainを学ぶのか -LangChainのモジュール -LangChainのインストール -COLUMN langchain_experimental 4.2 Language models -LLMs -Chat models -Callbackを使ったストリーミング -Language modelsのまとめ 4.3 Prompts -PromptTemplate -ChatPromptTemplate -Example selectors -Promptsのまとめ 4.4 Output parsers -Output parsersの概要 -PydanticOutputParserを使ったPythonオブジェクトの取得 -Output parsersのまとめ 4.5 Chains -LLMChain―PromptTemplate・Language model・OutputParserをつなぐ -SimpleSequentialChain―ChainとChainをつなぐ -Chainsのまとめ -COLUMN Chainの内部の動きを確認するには 4.6 Memory -ConversationBufferMemory -さらに便利なMemory -Memoryの保存先 -Memoryのまとめ -COLUMN Chat modelsでMemoryを使う場合の注意 ●第5章 LangChainの活用 5.1 Data connection -RAG(Retrieval Augmented Generation) -Data connectionの概要 -Document loaders -Document transformers -Text embedding models -Vector stores -Retrievers -RetrievalQA(Chain) -Data connectionのまとめ -COLUMN RetrievalQAにおけるchain_type 5.2 Agents -Agentsの概要 -Agentsの使用例 -Agentsの仕組み―ReActという考え方 -Tools -Toolkits -Function callingを使うOpenAI Functions Agent -一度に複数ツールを使うOpenAI Multi Functions Agent -Agentsのまとめ -COLUMN Function callingを応用したOurputParser・Extraction・Tagging -まとめ -COLUMN Evaluation ●第6章 外部検索、履歴を踏まえた応答をするWebアプリの実装 6.1 第6章で実装するアプリケーション -実装するアプリケーションの構成 -本書での開発の仕方 -AWS Cloud9の概要 -Streamlitの概要 -完成版のソースコード 6.2 Cloud9を起動して開発環境を構築する -Cloud9環境を作成する -GitHubリポジトリを作成する -Cloud9とGitHubの連携 -Python環境を構築する 6.3 StreamlitのHello World 6.4 ユーザーの入力を受け付ける 6.5 入力内容と応答を画面に表示する 6.6 会話履歴を表示する 6.7 LangChainを使ってOpenAIのChat Completions APIを実行する 6.8 Agentを使って必要に応じて外部情報を検索させる 6.9 チャットの会話履歴をふまえて応答する 6.10 Streamlit Community Cloudにデプロイする -依存パッケージの一覧を作成 -ソースコードをGitHubにアップロードする -Streamlit Community Cloudにデプロイする -他のユーザーを招待する -まとめ ●第7章 ストリーム形式で履歴を踏まえた応答をするSlackアプリの実装 7.1 なぜSlackアプリを作るのか -どんな構成にするの? -開発環境 -GitHubリポジトリのファイル構成 7.2 環境準備 7.3 環境設定ファイルを作成する 7.4 Slackアプリを新規作成する 7.5 ソケットモードを有効化する 7.6 アプリケーションを作成する 7.7 イベントを設定する 7.8 アクションを送信して応答する 7.9 スレッド内で返信する 7.10 OpenAI APIを呼び出す 7.11 ストリーミングで応答する 7.12 会話履歴を保持する -Momento Cache とは? 7.13 LazyリスナーでSlackのリトライ前に単純応答を返す 7.14 AWS Lambdaで起動されるハンドラー関数を作成する 7.15 chat.update API制限を回避する 7.16 Slack投稿をリッチにする 7.17 デプロイする 7.18 Socket ModeからAWS Lambdaに切り替える -まとめ ●第8章 社内文書に答えるSlackアプリの実装 8.1 独自の知識をChatGPTに答えさせる -ファインチューニングとRAG(Retrieval Augmented Generation) -RAGワークフロー -回答文の生成にLLMが必要か -業務を圧迫する「何かを探している時間」 -社内データを整備する 8.2 埋め込み表現(embeddings)とは 8.3 実装するアプリケーションの概要 -完成版のソースコード 8.4 開発環境を構築する -Cloud9のディスクスペースが不足している場合の拡張方法 8.5 サンプルデータの準備 8.6 Pineconeのセットアップ -Pineconeとは -Pinecone以外のベクターデータベース -Pineconeのサインアップ 8.7 ベクターデータベース(Pinecone)にベクターデータを保存する -COLUMN Pythonのパッケージ管理ツールについて 8.8 Pineconeを検索して回答する 8.9 会話履歴も踏まえて質問できるようにする -単純に会話履歴を入れてもうまく動かないケース -会話履歴を踏まえて質問をあらためて作成する 8.10 ConversationalRetrievalChainを使う -まとめ ●第9章 LLMアプリの本番リリースに向けて 9.1 企業で生成AIを活用していくために 9.2 JDLA発行『生成AIの利用ガイドライン』をもとにした自社ガイドラインの作成 -利用する外部サービスのサービス規約をしっかり読む 9.3 サービスの企画・設計段階での課題 -プロジェクトリスクへの対応 9.4 テスト・評価について -LLM部分の評価方法 -LangSmithによる性能監視 -COLUMN コンテンツのユースケースによる温度(temperature)の推奨値 9.5 セキュリティ対策について -OWASP Top 10 for Large Language Model Applications -LangChainコアの脆弱性排除について 9.6 個人データ保護の観点 -個人情報保護法に定める本人同意と目的内での利用 -個人情報の保護に関する「決定指向」利益モデルと情報的他律からの自由について 9.7 EUが定める禁止AI・ハイリスクAIの取り扱いの動向 ●付録 Webアプリ、Slackアプリ開発の環境構築 A.1 AWSのサインアップ A.2 Cloud9の環境作成 -Cloud9の料金説明 A.3 Cloud9とGitHubの連携 -GitHubとのSSHの設定 -Gitのユーザーの設定 -GitHubでリポジトリを作成してクローン A.4 Cloud9上のPythonの環境構築 -pyenvのインストール -Python3.10のインストール -Python3.10を使うための手順 -仮想環境について A.5 Momentoのサインアップ -索引

みんなのレビュー
まだレビューはありません
No.122
53

この文章は、書籍の目次と著者情報を紹介しています。書籍は三部構成で、第一部ではアルゴリズムやプログラムの構造について、第二部ではパフォーマンスやアルゴリズムデザインのテクニックについて、第三部では具体的な問題解決の作品を扱っています。著者の小林健一郎は東京大学で物理学を学び、情報科学を専門とする教授です。

みんなのレビュー
まだレビューはありません
No.129
54
みんなのレビュー
まだレビューはありません
No.135
58
みんなのレビュー
まだレビューはありません
No.136
53

この文章は、コンサルタント会社アトランティック・システムズ・ギルド社の共同経営者であるトム・デマルコとティモシー・リスターの著書についての目次と著者情報を提供しています。目次は、人材活用、生産性向上、チーム育成などのテーマを含む6つの部に分かれています。著者たちは、システム構築の人間的側面を重視し、国際的にコンサルティングや執筆活動を行っています。また、松原友夫、山浦恒央、長尾高弘の経歴も紹介されています。

みんなのレビュー
まだレビューはありません
No.141
54

本書は、並行プログラミングの理論と実装をRust、アセンブリ、Cを用いて解説し、処理速度向上のための知識や技術を提供します。内容にはCPUのアトミック命令、グリーンスレッド、アクターモデル、async/awaitなどが含まれ、AArch64とx86-64アーキテクチャについての付録もあります。GitHub上のソースコードを通じて実践的な理解を深めることができます。著者は大阪大学の特任准教授、高野祐輝氏です。

みんなのレビュー
まだレビューはありません
search