技術書出版
ラムダノート株式会社

世界中の技術者と研究者の「専門知識をわかりやすく伝える」をお手伝いします。

全商品一覧はこちら。

お知らせ

大型連休中の営業につきまして

いつもご来店ありがとうございます。2025年の大型連休に伴う、紙書籍の発送およびお問い合わせ対応についてのお知らせです。 紙書籍の発送につきましては、連休中も基本的にはカレンダー通りの営業日に手配を行う予定です。そのため、5/2(金)以降にいただいたご注文につきましては、5/7(水)より順次の...
『n月刊ラムダノートVol.4 No.3』読者限定!『型システムのしくみ』割引キャンペーン

『n月刊ラムダノートVol.4 No.3』読者限定!『型システムのしくみ』割引キャンペーン

ご来店ありがとうございます。 2025年4月18日発売の『型システムのしくみ ― TypeScriptで実装しながら学ぶ型とプログラミング言語』(遠藤侑介著)は、『n月刊ラムダノート Vol.4 No.3』掲載の記事「TypeScriptではじめる型システム」が基になっています。すでに同記事を...
新刊『型システムのしくみ』の発売を4/18に予定しています

新刊『型システムのしくみ』の発売を4/18に予定しています

ご来店ありがとうございます。新刊発売予定のお知らせです。 2025年4月18日(金)、遠藤侑介著『型システムのしくみ ― TypeScriptで実装しながら学ぶ型とプログラミング言語』の発売を予定しています。なお、2025年4月16日(水)から開催されるRubyKaigi 2025会場のBO...

『型システムのしくみ』

型システムがようやくわかった!

現代の開発環境では、エディタ上でコードを書いている最中から、実行もせずにエラーが判明することがあります。コードの補完でも、文脈に適した候補が魔法のように提示されてきます。こうした機能で中心的な役割を果たすのが「型システム」です。

では、なぜ型システムはプログラムのエラーを早期に発見したり、適切な補完候補を絞り出せたりするのでしょうか? 背景となる数学の理論を教科書で学ぶ以外に、型システムで何ができるのか、どのように機能するかを知る道はないのでしょうか?

本書では、TypeScriptのサブ言語に対する型検査器を実装しながら、実用的なプログラミング言語の機能が型システムでどう実現できるかを見ていきます。AST(抽象構文木)や処理系の実装を通してプログラミングへの理解を深めるように、型検査器の実装を通して「型システムのしくみ」を覗いてみましょう!

本書は『n月刊ラムダノートVol.4, No.3(2024)』に掲載された記事「TypeScriptではじめる型システム」を基に内容を加筆して書籍として刊行したものです。

『プロフェッショナルTLS&PKI 改題第2版』

TLSとPKIの実像を理解し、サーバとアプリを安全にする

  • Ivan Ristić 著、齋藤孝道 監訳
  • 488ページ
  • B5判
  • ISBN:978-4-908686-19-1
  • 電子書籍の形式:PDF
  • 2023年12月4日 第2版第1刷 発行

現代生活を支えるインターネットでは暗号化が不可欠です。しかし実際にサーバやアプリで通信の暗号化を適切に利用するには、暗号化アルゴリズムの知識だけでなく、セキュリティプロトコルであるTLSとそのWebでの応用、さらには基盤となる信頼モデルであるPKIについての幅広い知識と経験が必要になります。

本書は、TLSとPKIの全体像を体系的かつ具体的に語った‟Bulletproof TLS and PKI 2nd Edition”(Ivan Ristić 著)の全訳です。Webセキュリティが現在の姿へと至った背景を理解し、サーバやアプリを安全にするために自分たちが何をすべきかを知るための決定版。

本書の主なトピック

  • インターネット標準のセキュリティプロトコルであるTLS(Transport Layer Security)の基礎知識
  • TLSで利用できるさまざまな暗号技術の概要
  • TLSをウェブで利用するためのHTTPS(Hypertext Transfer Protocol Secure)
  • そのための社会的な技術基盤としてのPKI(Public Key Infrastructure)
  • PKIにおける信頼モデルを支える証明書CA(Certification Authority、認証局)
  • プロトコル、PKI、実装の安全性を破る、数々の脆弱性およびインシデントの発見、それらに対抗する研究者と業界をめぐるストーリー
  • 現場でいますぐ使えるOpenSSL各種ツールの使いこなし

『実践プロパティベーステスト ― PropErとErlang/Elixirではじめよう』

テストケースはコンピューターで書くべき! でもどうやって? その答えが「プロパティベーステスト」です

従来のユニットテストでは、人間が「入力に対してコードが返すべき値」を考えて、その通りの結果が得られるかどうかをテストします。 これに対してプロパティベーステストでは、数万にも及ぶ多様なテストケースをコンピューターで自動生成し、その大量のテストを水面下で実行することによって、どんな入力に対してどんな問題が起きるかをテストします。 人間には思いもつかない入力まで網羅できることから、単に手間をかけずにテストケースを増えせるだけでなく、場合によっては仕様に潜むバグさえもあぶり出せる強力なテスト手法です。

プロパティベーステストで人間が記述するのは、「入力に対してコードが返すべき値」ではなく、「入力に対するコードの振る舞い」そのものを表す実行可能なコード(プロパティ)です。プロパティを書くためのアプローチとして、本書では次のような考え方を学びます。

  • 通常のユニットテストで人間が書くようなテストケースをランダムに自動生成する
  • より単純な機能を使った別の実装を作って比較する
  • 不変条件や対称的な操作を見つけてそれを利用する

これらのアプローチ自体は言語に依存しませんが、表現力や実行方法はさまざまな言語で実装されているプロパティベーステストのためのフレームワークに依存します。 本書では、Erlang/Elixirで利用可能なPropErというフレームワークを利用し、上記のような基本的なアプローチによるプロパティベーステストはもちろん、生成したいテストケースが互いに独立でない場合のプロパティベーステストや、状態に依存するシステムに対するプロパティベーステストなど、高度な応用事例についても紹介します。

本格的なアプリケーション開発を通して、プロパティベーステストの基礎から極北までを体験できる、唯一無二の解説書です。

研鑽Rubyプログラミング ― 実践的なコードのための原則とトレードオフ

原則を学んで腕を磨き、さらなる高みを目指す

  • Jeremy Evans 著、角谷信太郎 訳
  • 原書 Polished Ruby Programming
  • 392ページ
  • A5判
  • ISBN:978-4-908686-17-7
  • 2023年4月14日 第1版第1刷
  • β版(2023年3月まで販売)との差額で紙書籍を購入いただくことはできません

プログラミング言語の入門書では、前半でコアとなる文法が説明され、ライブラリをはじめとする周辺機能の紹介や開発手法の説明などが続きます。本書のスタート地点は、その先です。言語が備える基本的な機能(クラス、メソッド、変数など)の性能を実践で極限まで引き出すための思考、ライブラリやDSLを自分で設計するコツ、メタプログラミングやデザインパターンとの付き合い方、データベースやフレームワークに対する心構え、そしてセキュリティへの取り組み方などを扱います。

業務で毎日のようにRubyのコードを書いているというプログラマーはもちろん、ちょっとしたコードならRubyで書いたことがあるという他言語のプログラマーにとっても、プログラミングにおけるさまざまな原則とトレードオフについて繰り返し考え直すきっかけになる貴重な中級者向け解説書です。

プログラマーのためのCPU入門 ― CPUは如何にしてソフトウェアを高速に実行するか

そのプログラム、CPUの性能を引き出せますか?

ソフトウェアの価値は、ハードウェアで実行されることにより、現実のものになります。そのために不可欠なのがCPUです。したがってソフトウェアの価値は、CPUの性能、すなわち「できるだけ高速にソフトウェアを実行すること」にかかっているとも言えるでしょう。

現代のCPUの性能は、「メモリとやり取りしながら命令を実行していく」というCPUの原理的な仕組みを知るだけでは説明できません。ソフトウェアを高速に実行するためにCPUシステムが備えているパイプライン化スーパースカラ化の挙動をはじめ、アウトオブオーダー実行分岐予測キャッシュTLBといった高速化のためのハードウェア機構、さらにはI/Oシステムコールなどの例外・割り込み系がCPUの動作に及ぼす影響について、幅広く知る必要があります。

さらに、現在では広く利用されているマルチプロセッサのCPUシステムにおいては、複数のキャッシュの一貫性を制御するための仕組みがソフトウェアの実行性能に与える影響や、複数のCPUからのメモリアクセス順序を強制したり不可分操作を実現したりする仕組みをソフトウェアで明示的に利用することによる影響を考慮しなければならない場合もあります。

本書では、豊富な図説と簡潔なコードを交えながら、CPUが備える高速化のためのさまざまな仕組みとその動作を阻む要因、さらにはソフトウェアで可能な対策について、ハードウェア技術に馴染みがないプログラマーでも十分な直感を得られるように解説していきます。

本書は『n月刊ラムダノートVol.3, No.1(2021)』に掲載された記事「CPUは如何にしてソフトウェアを高速に実行するのか」を基に、同記事では概要のみ触れていた各部について掘り下げると同時に、理解を深めるためのアセンブリコードを各章に追加し、さらにマルチプロセッサに関する話題を大幅に加筆して書籍として刊行したものです。

『事業をエンジニアリングする技術者たち ― フルサイクル開発者がつくるCARTAの現場』

フルサイクルエンジニアによる「アフターDX」の世界がここにある

コードを書くだけでなく「事業」そのものをエンジニアリングする「フルサイクルエンジニア」の生々しい声を和田卓人氏が編纂し、ITエンジニア本大賞2021年技術書部門大賞に輝いた『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』。あれから2年。同書に収録された6つの事業へのインタビューはそのままに、各事業の「それから」と、新たな2つのプロジェクトをめぐるインタビューを追加した改題改訂版をお届けします。

さまざまな事業を展開するIT企業のエンジニアたちが、常に変化し続けるソフトウェア開発の潮流の中で自分たちの事業にどう向き合い、レガシーを乗り越え続けているか。本書を通して語られるのは、まさに「企業がDXを達成した後に待っている世界」です。

本書の制作にあたっては、株式会社CARTA HOLDINGSから制作費を出資いただいています。

『ピアリング戦記 ― 日本のインターネットを繋ぐ技術者たち』

「ネットワークのネットワーク」って、こういう意味だったんだ!

  • 小川晃通 著
  • 150ページ
  • A5判
  • ISBN:978-4-908686-14-6
  • 2022年7月13日 第1版第1刷 発行
  • 正誤表

いまや世界中のあらゆる社会を支えるインターネットは、特定の国家や組織が管理・運営しているわけではありません。インターネットは、TCP/IPという技術の仕様にしたがって作られた機器やプログラムであれば自由に接続できる、オープンなネットワークです。

とはいえ、だれもが勝手気ままに自分の機器やネットワークを繋ぐだけでは、世界中を相互に接続するようなインターネットは実現できません。その裏では、さまざまな組織や人により、お金を伴う競争と協調の世界が繰り広げられています。

技術的な仕様の解説だけでは語れない、人と人を繋ぐネットワーク技術だからこそ立ち現れる生々しい舞台裏を、2020年代の日本のインターネットの大規模構造に影響をもたらした当事者たちへの取材とインタビューをとおして解き明かします!

検索システム ― 実務者のための開発改善ガイドブック

「情報検索」×「データサイエンス」×「全文検索エンジン」

  • 打田智子・古澤智裕・大谷 純・加藤 遼・鈴木翔吾・河野晋策 共著
  • 360ページ
  • A5判
  • ISBN:978-4-908686-13-9
  • 2022年5月2日 第1版第1刷 発行

大量のデータから必要な情報をすばやく見つけ出したい。その要求をコンピューターで叶えるための「検索システム」を実現するためには、「情報を見つけたい」という漠然とした要求をどうやって定式化すればいいか、それに合致する情報を膨大なデータから効率的に取り出すためのデータ構造とアルゴリズム、そうして見つかった複数の情報を提示する方法や順序などなど、考慮しなければならない課題がたくさんあります。

検索システムの実現に伴うさまざまな課題に取り組む鍵は情報検索です。情報検索は、コンピューターを利用するものに限っても、すでに数十年に及ぶ理論の蓄積がある研究分野です。さらに近年では、「ユーザーが検索したいものを定式化できていない状態での検索」(探索的検索)や、検索結果を提示する際の順序決定(ランキング)において、機械学習をはじめとするいわゆるデータサイエンスの知見が強力な手段として活用されています。

本書は、情報検索とデータサイエンスを見据えつつ、主に全文検索エンジンを利用した検索システムの構築を考えている人、もしくはすでに運用している検索システムの改善を考えている人のためのガイドとなるべく書かれました。利用者はもちろんシステムを提供する側にとっても「よい検索」を実現するために必要になるさまざまな知識や考え方を整理してお伝えするものです。

Goならわかるシステムプログラミング 第2版

実はよく知らなかったコンピューターのこと全部

  • 渋川よしき 著
  • 424ページ
  • A5判
  • ISBN:978-4-908686-12-2
  • 2017年10月23日 第1版第1刷 発行
  • 2022年3月23日 第2版第1刷 発行
  • 2023年3月1日 第2版第2刷 発行

OSやメモリのこと、もう少しだけ詳しく知っておきたい!

でも何から手を付けたらいいかわからない。教科書を読んでみても、ふだん書いているコードと違いすぎていまいちピンとこない……。

そんな方々のために、アプリケーションのコードから降りていくことで俯瞰的かつ具体的に低レイヤを自分の糧にできる、たくさんのエンジニアに読まれた名著の改訂版です。

第2版では、シェルプロセスが実行されるまでといった「経験的になんとなく知っているけど……」というトピックの解説が章単位で追加されるなど、初版よりさらにボリュームが増しています。

Goで書かれた「ふつうのアプリケーションのコード」から始めることで、「身近なコードの世界」と「メモリやCPUの世界」との間の巧妙で豊かなつながりが見えてきます!

本書は、2016年9月から2017年8月にかけてアスキーjpの「プログラミング+」コーナーで連載された大好評のWebコンテンツを、さらにわかりやすく紙版の書籍として編纂した初版を改訂したものです。 

『プロフェッショナルIPv6 第2版』

IPv6対応が気になるすべてのITエンジニアのための改訂版

    • 小川晃通 著
    • 492ページ
    • B5判
    • ISBN:978-4-908686-11-5
    • 電子書籍の形式:PDF(ユーザー登録でEPUBが取得可能)
    • 2023年3月1日 第2版第2刷 発行
      • 2018年7月20日 第1版第1刷 発行
      • 2021年12月20日 第2版第1刷 発行
    • 正誤情報

      IPv4なら何となく知っているし、アドレスが長くなるだけだから、いまさら500ページ近い本を読む必要はない」という方にこそ頭から読んでみてほしい、IP層として必要な機能をすべて取り込んだ複雑で高機能なIPv6プロトコルの全体像。プライベートアドレスやNATを前提として運用されているIPv4と、それらがないIPv6の両方を深く知ることではじめて説明できる、リアルな現在のインターネットの姿。NTT NGNにおけるIPv6インターネット接続についても付録にて詳解。

      本書は2018年7月に発行した『プロフェッショナルIPv6』の改訂版です。