スタッフエンジニアの道
―優れた技術専門職になるためのガイド
Tanya Reilly 著
島田 浩二 訳
2024年8月26日 発売
400ページ
ISBN978-4-8144-0086-7
原書: The Staff Engineer’s Path
キャリアアップを目指すシニアソフトウェアエンジニアには、2つの異なる道があります。一つは、管理職への道。マネジメントスキルを磨き、チームや組織を導く道です。この道については、多くの研究がなされ、スキルを向上させるための書籍も数多く存在します。もう一つは、技術専門職の道。エンジニアリングのスキルを極め、専門性を深めていく道です。近年、技術専門職のキャリアパスを用意する企業は増えてきているものの、まだ明確な指針が確立されているとは言えません。
本書は、技術専門職としてのキャリア成長に必要な考え方やスキルを詳細に解説します。上級技術専門職に求められる役割、大局的な視点を持って自らの仕事に取り組む方法、大規模プロジェクトを成功に導く手法、自身の専門性を深めながらチームメンバーの成長を支援する方法を学びます。
技術専門職としてのキャリアを目指すエンジニア必携の一冊です。
Ruby on Railsパフォーマンスアポクリファ
Nate Berkopec 著
島田 浩二 訳
2024年8月8日 発売
189ページ
原書: The Ruby on Rails Performance Apocrypha
アポクリファ(名詞):教会用ラテン語に由来する。聖書の正典に含まれない、聖書またはそれに関連する書物。
この4年間、私はニュースレターで多くの記事を公開してきました。それらの記事は、ニュースレターを購読していないと読めないものでした。本書が出るまでは。本書は、ニュースレターに公開してきた記事をまとめたものです。主に扱っているのは、私が注力し続けているRuby on Railsアプリケーションの パフォーマンスやスケーリングの話題ですが、ソフトウェアパフォーマンスの一般原則や、時にはパフォーマンスとは関係ない Rubyの考え方にも触れています。私は本書を「アポクリファ」と名付けました。なぜなら、私のRailsパフォーマンス指導の「本流」、つまり正統な「聖典」は、私のRailsパフォーマンスワークショップだと考えているからです。本書はワークショップと同様の領域の多くをカバーしているものの、詳細にはそこまで触れていません。それに、あからさまに教育的な方法も取っていません。代わりに、本書は、Railsアプリケーションを高速かつスケーラブルにするためのさまざまなトピックをより雑多に、哲学的に、そして入門的に触れていきます。
ソフトウェアアーキテクチャメトリクス
―アーキテクチャ品質を改善する10のアドバイス
Christian Ciceri、Dave Farley、Neal Ford、Andrew Harmel-Law、Michael Keeling、Carola Lilienthal、João Rosa、Alexander von Zitzewitz、Rene Weiss、Eoin Woods 著
島田 浩二 訳
2024年1月24日 発売
276ページ
ISBN978-4-8144-0060-7
原書: Software Architecture Metrics
ソフトウェア品質をプロセスの早い段階から計測し、アーキテクチャの負債や技術的負債の蓄積を検知できるようにしておくことは、ソフトウェアの成功にとって重要です。ソフトウェアアーキテクチャに関するメトリクスを適切に導入できれば、パフォーマンスなどのリスクを軽減し、問題に対処するコストを抑えられます。
本書は、経験豊かな10人のソフトウェアアーキテクトたちが、知っておくべきメトリクスについて、貴重な経験やケーススタディと共に紹介します。
アーキテクチャが目標にどれだけ合致しているかの計測、追跡すべき適切なメトリクスの選択、可観測性/テスト容易性/デプロイ可能性を向上させる方法、アーキテクチャに対する取り組みの優先順位付け、学びに満ちた適切なダッシュボードの構築を解説します。
Software Design 2023年11月号
設樂 洋爾 記事執筆
2013年10月18日発売
B5判/192ページ
新時代の分散型SNS Nostr
【5】作ってわかるNostrプロトコル
ソフトウェアアーキテクチャ・ハードパーツ
―分散アーキテクチャのためのトレードオフ分析
Neal Ford、Mark Richards、Pramod Sadalage、Zhamak Dehghani 著
島田 浩二 訳
2022年10月27日 発売
472ページ
ISBN978-4-8144-0006-5
原書: Software Architecture: The Hard Parts
ソフトウェアアーキテクチャに絶対的な正解は存在しません。むしろ、さまざまな妥協点の中から選択を強いる難題、すなわち「ハードパーツ」が多く存在します。そのため、ソフトウェアアーキテクトには常にトレードオフを見極め、状況に合った選択をすることが求められます。本書は、読者が自身のアーキテクチャ上の難題に対して効果的なトレードオフ分析を行い、より良い決定ができるようにするための書籍です。
本書では、サービスの粒度やデータの所有権、コードの再利用やワークフローの調整、可用性や信頼性の実現といった現代のソフトウェアアーキテクチャの難題と、それに対するさまざまなアプローチやパターンを紹介します。そして意思決定を難しくするトレードオフについて、モノリスを分解しマイクロサービスアーキテクチャに再構築する例を通して詳しく説明します。
『ソフトウェアアーキテクチャの基礎』の著者らによる現代的なトレードオフ分析とその実践を学べる本書は、現代のソフトウェアアーキテクチャに関わるソフトウェア開発者にとって必携の一冊です。
ソフトウェアアーキテクチャの基礎
――エンジニアリングに基づく体系的アプローチ
Mark Richards、Neal Ford 著
島田 浩二 訳
2022年03月08日 発売
436ページ
ISBN978-4-87311-982-3
原書: Fundamentals of Software Architecture
ソフトウェアアーキテクチャとは、ソフトウェアシステムの成功に欠かせない重要な土台です。そのためソフトウェア開発者には、効果的なアーキテクチャを実現するスキルが求められます。本書は、そうした効果的なアーキテクチャを設計、構築、維持するアーキテクトになるために必要なスキルや知識を、現代的な視点から整理して包括的に解説する書籍です。
ソフトウェアアーキテクチャの定義から、アーキテクトの役割、モジュールや結合、アーキテクチャスタイルといったアーキテクチャ設計の基礎、チームやステークホルダーと効果的にコラボレーションしていくために必要なソフトスキルまで、さまざまなトピックについて実践的な例とともに説明します。
ユニコーン企業のひみつ
――Spotifyで学んだソフトウェアづくりと働き方
Jonathan Rasmusson 著
島田 浩二、角谷 信太郎 訳
2021年04月26日 発売
212ページ
ISBN978-4-87311-946-5
原書: Competing with Unicorns
大規模な成功を収めているテック企業(ユニコーン企業)は、スタートアップで機能していたテクニックをエンタープライズ企業レベルにまでスケールさせる方法を見いだし、日々実践しています。Amazon、Facebook、Googleなどは、何万人もの従業員を抱えているにもかかわらず、スタートアップのように働いています。本書はSpotifyでアジャイルコーチやエンジニアの経験を持つ著者がユニコーン企業のソフトウェアづくりと働き方を解説します。
ミッションによってチームに目的を持たせ、スクワッドに権限を与え、信頼する。カンパニーベットを通じて大規模な取り組みを調整する。このような働き方とそれを実現するための文化のあり方を解説し、複数チームが連携しながら質の高いプロダクトを早くリリースし、迅速に技術革新を行うための方法を学びます。
プロダクトのデリバリーにフォーカスする世界有数のテック企業の事例を紹介する本書は、デリバリープロセスやプロダクト組織自体を改善したいエンジニアやマネージャー、経営リーダー必携の一冊です。
モノリスからマイクロサービスへ
――モノリスを進化させる実践移行ガイド
Sam Newman 著
島田 浩二 訳
2020年12月 発行
276ページ
ISBN978-4-87311-931-1
原書:Monolith to Microservices
本書は、モノリスからマイクロサービスアーキテクチャへと移行するための実践的なガイドです。マイクロサービスが自分たちのシステムに適しているかを判断するところから、ビジネスを維持しながらモノリシックなシステムを少しずつマイクロサービスに切り替えていく方法、さらには、マイクロサービスアーキテクチャが成長するにつれて起こる課題への対処の仕方まで、豊富な例やシナリオを用いて解説します。また、モノリスやデータベースを分解していくのに役立つ様々なパターンやテクニックも扱います。システムのアーキテクチャ移行について具体的な方法を解説する本書は、エンジニア必携の一冊です。
Design It!
――プログラマーのためのアーキテクティング入門
Michael Keeling 著
島田 浩二 訳
2019年11月 発行
404ページ
ISBN978-4-87311-895-6
原書:Design It!
本書は、設計スキルを成長させたいプログラマーに向けたアーキテクティングの入門書です。ソフトウェアアーキテクチャの基礎とデザイン思考の考え方から始まり、ソフトウェアアーキテクトとして、チームと共に優れたソフトウェアを作り上げていく方法を包括的に解説します。本書を読むことで、適切なステークホルダーを特定してニーズを理解する方法、アーキテクチャ上重要な要求に基づいて技術やアーキテクチャを適切に選択する方法、アーキテクチャを軽量かつ効果的に評価する方法、チームのアーキテクト力を高める方法などを学べます。モダンなアーキテクチャ設計のための実践的な手法が詰まった本書は、より良いプログラマー、技術リーダー、そしてソフトウェアアーキテクトになるために必携の一冊です。平鍋健児氏による「日本語版序文」を収録。
進化的アーキテクチャ
――絶え間ない変化を支える
Neal Ford、Rebecca Parsons、Patrick Kua 著
島田 浩二 訳
2018年08月 発行
240ページ
ISBN978-4-87311-856-7
原書:Building Evolutionary Architectures
現代におけるエンタープライズアーキテクチャは、もはや静的な計画をあてにすることはできなくなっています。そしてソフトウェア開発エコシステムは、ツールやフレームワーク、技術イノベーションの流れと共に絶え間なく変化しています。こうした状況の中で、いったん構築したシステムを成長させていくには、さまざまな変化に適応しながら進化するアーキテクチャをシステムに組み込む必要があります。本書は、そうしたアーキテクチャを「進化的アーキテクチャ」と名付け、その構築に必要な考え方や技術、実践方法などについて解説するものです。ThoughtWorksの3人のスペシャリストから現代のソフトウェアアーキテクトに向けられた本書は、絶え間ない変化を支える進化的アーキテクチャを構築するために必要なすべてを提供する実践的なガイドです。
Go言語でつくるインタプリタ
Thorsten Ball 著
設樂 洋爾 訳
2018年06月 発行
316ページ
ISBN978-4-87311-822-2
原書:Writing An Interpreter In Go
本書は、Go言語でプログラミング言語のインタプリタを作りながら、プログラミング言語とそのインタプリタについて学ぶ書籍です。
順を追ってコードを示し、C言語風の構文を持つ言語「Monkeyプログラミング言語」のインタプリタを組み立てていきます。字句解析器、構文解析器、評価器を作りながら、ソースコードをトークン列に、トークン列を抽象構文木に変換し、その抽象構文木を評価し実行する方法を学びます。さらに、インタプリタに新しいデータ型を導入し、組み込み関数を追加して、言語を拡張していきます。付録では構文マクロシステムについても扱います。本書では、Go言語標準のツールキット以外のサードパーティライブラリやフレームワークは使用せず、0行のコードからはじめて、完動するインタプリタができあがるところまでを体験します。その過程を通じて、プログラミング言語とインタプリタの仕組みを実践的に学ぶことができます。
WEB+DB PRESS Vol.102
設樂 洋爾 記事執筆
2017年12月23日発売
B5判/168ページ
ISBN 978-4-7741-9433-2
17周年記念エッセイ
あのときの決断
今振り返る,選んだ選択肢,選ばなかった選択肢
第1章:個人サービスの事業化の決断
具体的なプランがないままの暗中模索……浜本 階生
第2章:決断の機会は数珠つなぎ
小さい決断の積み重ねが大きな影響力をもたらす……西尾 泰和
第3章:決断しない決断術
決断しない決断術……設樂 洋爾
エラスティックリーダーシップ
――自己組織化チームの育て方
Roy Osherove 著
島田 浩二 訳
2017年05月 発行
288ページ
ISBN978-4-87311-802-4
原書:Elastic Leadership
複雑で変化の激しい問題に取り組みながら成果を出すチームとは、学習するチームであり、自己組織化されたチームです。そうした状態へとチームを導くには、どのようなリーダーシップが求められるのでしょうか。本書は「エラスティックリーダーシップ」というリーダーシップモデルをもとに、チームを学習する力のある自己組織化された状態へと育てる方法を解説します。
リーダーシップのスタイルをどのように使い分けるべきか。チームに学習することを学ばせるための時間の使い方とは。メンバーが真のコミットメントを示すための言葉遣いとは――。チームをより良くする実践的なヒントが詰まっており、チームリーダーやマネージャーだけでなく、チームで成果に取り組むすべての人におくる一冊です。
後半にはロバート・C・マーチンやジョアンナ・ロスマンなどをはじめとするリーダーたちによるエッセイを収録。日本語版では、伊藤直也、井原正博、海野弘成、岡島幸男、柄沢聡太郎、栗林健太郎、庄司嘉織、関将俊、たなべすなお、永瀬美穂、平鍋健児、まつもとゆきひろ、吉羽龍太郎の13名によるリーダーシップについてのエッセイを収録しています。
Rubyのしくみ Ruby Under a Microscope
もっと知りたい、Rubyのしくみ
Pat Shaughnessy 著
島田浩二、角谷信太郎 共訳
2014年11月 発行
A5 408ページ
ISBN978-4-274-05065-7
原書:Elastic Leadership
VMベースのインタプリタ型言語処理系であるRubyがコードをどのように解釈し、どうやって実行するか、そのしくみを解説。Rubyについての基礎知識がなくても、図版と短いコードの実験を多用した構成により、そのしくみについて理解することができます。
実務でRubyは使えるけれど、基礎知識について自信がない人や、学びたくてもまとまった時間がとれずに悩んでいる人などもっとRubyを活用するためにRubyを知りたい人に最適。
Rubyインタプリタを題材にプログラミング言語処理系の仕組みを解説するNo Starch Press社の“Ruby Under a Microscope” の翻訳発行です。
日本語版には、Rubyの開発者であるまつもとゆきひろ氏の序文とYARVの開発者である笹田耕一氏の付録が加筆されています。
なるほどUnixプロセス ― Rubyで学ぶUnixの基礎
Jesse Storimer 著
島田 浩二、角谷 信太郎 訳
発行日:2013-04-25
ページ数:125ページ(PDF版換算)
『Working with Unix Processes』待望の完訳。並列処理やデーモン、プロセス生成、そしてシグナルといったUnixの基礎であるプロセスについてRubyで解説する、「今どきの」開発者に向けた新しいUnixプログラミングの手引きです。
WEB+DB PRESS Vol.73
設樂 洋爾 記事執筆
2013年2月23日発売
B5判/192ページ
ISBN 978-4-7741-5507-4
特集1
着想からリリースまで!たのしい開発実況中継
追体験して見つける日々の開発へのヒント
第1章:今,日々の開発と向き合うあなたへ
24時間をたのしく過ごした現場から……設樂 洋爾
第2章:作りたいものを探る
自分たちがおもしろいと感じるものを明確にする……設樂 洋爾
第3章:試しに作る
届けたいと思える実現可能なプロダクトを目指す……白土 慧
第4章:プロダクトを磨く
時間の許す限りさらに価値あるプロダクトにする……大和田 純
第5章:毎日の開発をたのしくするには
個人とチームを成長させる日々の工夫……設樂 洋爾,白土 慧,大和田 純
Ruby逆引きレシピ すぐに美味しいサンプル&テクニック
島田 浩二、設樂 洋爾、村田 賢太、前田 智樹、谷口文威 著
2009年07月24日発行
A5 / 600ページ
ISBN:9784798119885
広大なRubyの世界でもう迷わない! 開発現場で今日から使えるとっておきノウハウ集
Rubyの世界はとても広大であり、Rubyに慣れ親しんだ者でさえ道に迷ってしまうことが多々あります。多くのライブラリ、多くの実装手段が存在するため、適切な解決策へとたどり着くまでに迷ってしまうのです。そのため、Rubyを始めたばかりの人たちが適切な解決策へたどり着くことは至難の業と言えるでしょう。Rubyの入門書の多くは、このための道案内をしてはくれません。
本書は、開発の現場で直面する現実の問題をRubyで解決する方法や、そのために必要な知識やノウハウを、レシピ形式で紹介する本です。実際の現場で扱うことの多いレシピを関連するカテゴリや目的別にまとめています。技術や概念の説明は必要最低限にとどめ、「やりたいこと」を実現するために「どのようなライブラリや機能をどう使えばよいか」を、サンプルコードを交えてわかりやすく簡潔に解説しています。
本書のもう1つの目的は、Rubyコミュニティで漠然と共有されているRubyらしい考え方を学ぶことです。リファレンスやチュートリアルの形ではなく、さまざまなライブラリが実際の問題をどのように解決しているかを知ることで、Rubyプログラマの考え方とその根底にある哲学を学ぶことができます。そうした考え方さえ身に付けることができれば、あなたは自然とRubyを使いこなして自力で問題を解けるようになっていることでしょう。
本書が、Rubyによる楽しいプログラミングの一助となれば幸いです。
プロダクティブ・プログラマ
――プログラマのための生産性向上術
Neal Ford 著
島田 浩二 監訳
夏目 大 訳
2009年04月 発行
284ページ
ISBN978-4-87311-402-6
原書:The Productive Programmer
生産性の高い人はそうでない人に比べ、同じ時間でより多くの仕事をし、より多くの成果を上げることができます。本書は、ソフトウェア開発におけるプログラマの生産性についての書籍です。プログラマ個人が、どのような意識を持ち、どのようなツールを使えば、単位時間当たりの仕事量を増やすことができるかについて示します。本書は2部からなり、「I部 技法編」では、作業を自動化するためのツールや集中を維持する方法など、開発に必要な作業の生産性を向上するテクニックとツールを解説します。「II部 実践編」では、テスト駆動開発や、メタプログラミングなど、生産性を高めるために取り入れるべき考え方や習慣について学びます。 ThoughtWorks社でアーキテクト、コンサルタントをつとめる筆者が、自らの経験に基づきプログラマの生産性向上の秘訣を示す本書は、「達人プログラマ」を目指すプログラマ必携の一冊です。