SSブログ

電子版『Go言語100Tips』 [本]

8月18日に発売される『Go言語100Tips』ですが、以下の電子版も発売されます。

Kindle版

Go言語 100Tips ありがちなミスを把握し、実装を最適化する (impress top gear)

Go言語 100Tips ありがちなミスを把握し、実装を最適化する (impress top gear)

  • 出版社/メーカー: インプレス
  • 発売日: 2023/08/18
  • メディア: 単行本(ソフトカバー)

Kindle版は固定レイアウトだと思います。

PDF版

出版社のサイトからソーシャルDRM版のPDF版を購入できるようになります。
https://book.impress.co.jp/books/1122101133

コメント(0) 

Kindle版『ソフトウェア開発の名著を読む【第二版】』 [本]

出版社から連絡がなかったので、気付いていなかったのですが、『ソフトウェア開発の名著を読む【第二版】』がKindle版としてAmazonで購入できるようになりました。

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

  • 作者: 柴田 芳樹
  • 出版社/メーカー: 技術評論社
  • 発売日: 2009/10/21
  • メディア: 単行本(ソフトカバー)

紹介している書籍は、以下の通りです。
  • 『プログラミングの心理学』ジェラルド・M・ワインバーグ
  • 『人月の神話』フレデリック・P・ブルックス,Jr.
  • 『ピープルウエア』トム・デマルコ/ティモシー・リスター
  • 『デッドライン』トム・デマルコ
  • 『ソフトウェア職人気質』ピート・マクブリーン
  • 『達人プログラマー』アンドリュー・ハント/デビッド・トーマス
  • 『コードコンプリート』スティーブ・マコネル
  • 『プログラミング作法』ブライアン・W・カーニハン/ロブ・パイク
  • 『リファクタリング』マーチン・ファウラー
  • 『ビューティフルコード』ブライアン・カーニハン他

出版社に確認したところ、『プログラマー"まだまだ"現役続行』もKindle版での提供を予定しているそうです。
コメント(0) 

予約受付中:『Go 言語 100Tips』 [本]

私にとって21冊目となる技術書の翻訳本の予約受付が、Amazon.co.jpで行えるようになりました。

Go言語 100Tips ありがちなミスを把握し、実装を最適化する (impress top gear)

Go言語 100Tips ありがちなミスを把握し、実装を最適化する (impress top gear)

  • 出版社/メーカー: インプレス
  • 発売日: 2023/08/18
  • メディア: 単行本(ソフトカバー)

以下は、本書からの引用です。
推薦の言葉

Go 開発者が製品環境でコードに触れる前に必ず読むべき本です。『Effective Java』に相当するGoの本です。
— Neeraj Shah, Nutanix

わかりやすく、効果的な例題。間違いがなぜどのように起こるのかを理解することで、コスト的に高くつく手痛い失敗を避けられます。
— Giuseppe Maxia, VMware

Teiva Harsanyi は、実際に起こった問題や見逃しがちな問題を分類し、なぜそれらが起こるのかという微妙な違いがある世界まで掘り下げています。あなたが本書を持っていないのは、101個目の間違いとなるでしょう。
— Anupam Sengupta, Red Hat

悪い習慣を見極めて、よい習慣を身に付けてください。文章は魅力的で、例題は適切であり、洞察は見事です。
— Thad Meyer, LI-COR Biosciences


目次

第 1 章「Go:学習は容易、習得は難しい」
第 2 章「コードとプロジェクト構成」
第 3 章「データ型」
第 4 章「制御構造」
第 5 章「文字列」
第 6 章「関数とメソッド」
第 7 章「エラー管理」
第 8 章「並行処理:基本」
第 9 章「並行処理:実践」
第 10 章「標準ライブラリ」
第 11 章「テスト」
第 12 章「最適化」

本書について

『Go言語100Tips ありがちなミスを把握し、実装を最適化する』には、Go開発者が言語のさまざまな機 能を扱うときについやってしまいがちな100個のよくある間違いが含まれています。本書は、外部ライブラリやフレームワークではなく、Go言語そのものと標準ライブラリに大きく焦点を当てていま す。間違いについてのほとんどの議論では具体例を示しており、どのような場合にその間違いを犯しやすいかを説明しています。本書は、考えや手法を押しつけるものではありません。個々の解決策は、それが適用されるべき状況を伝えるために詳しく説明されています。


コメント(0) 

記事「実践API設計」 [本]

WEB+DB PRESS Vol.134

WEB+DB PRESS Vol.134

  • 出版社/メーカー: 技術評論社
  • 発売日: 2023/04/22
  • メディア: 単行本(ソフトカバー)

雑誌の記事を最後に執筆したのは、「Software Engineer Vol.1」(技術評論社、2007年4月)だったので、16年振りに記事を書きました。
堅牢で、保守性に優れたWebサービスの実現
仕様ファーストでいこう!
実践API設計

ウェブサービスの開発に従事するようになったのは、リコーを早期退職して、2017年9月から働き始めたソラミツからでしたが、その後、メルペイ、現在のカウシェと、バックエンドのサービス開発に従事しています。実際に本番サービスとして使われるサービスを開発したのはメルペイからです。

私自身は、1984年に就職してからのワークステーション開発、その後のデジタル複合機開発と長年ウェブサービスには関わることはありませんでした。2018年6月からメルペイでマイクロサービスの開発に従事したときに考案して、その後、さまざまなマイクロサービスの開発、および、現在のカウシェでも実践していることを記事としてまとめています。発売は、4月22日です。

5章から構成されます。
第1章 優れたAPI 仕様とは何か
    よくある問題点と、記述すべき事柄
第2章 gRPC におけるAPI 仕様の書き方
    サービスの概要、エンドポイントの説明、エラーの説明
第3章 API 仕様ファースト開発
    仕様を先に記述し、テスト駆動で開発する
第4章 E2E テストフレームワークの構築
    API 仕様ファースト開発のための独自実装
第5章 API 仕様の技術的負債の返済
    サービスの成長を支えるための改善活動

コメント(0) 

書籍『Core Java for the Impatient, Third Edition』 [本]

Core Java for the Impatient (English Edition)

Core Java for the Impatient (English Edition)

  • 作者: Horstmann, Cay S.
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2022/09/29
  • メディア: Kindle版

かなり前に注文していたのですが、先日やっと届きました。この本は、Java 17までをカバーしています。Cay S.Horstmannの著書は多くありますが、この「for the Impatient」シリーズの特徴的なのは、章末に豊富な練習問題が含まれることです。簡単な問題もありますが、難しい問題も含まれていることがあります。2014年に出版したJava 8だけを解説した次の本の練習問題と同じものも含まれています。

Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング (impress top gear)

Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング (impress top gear)

  • 出版社/メーカー: インプレス
  • 発売日: 2014/09/22
  • メディア: 単行本(ソフトカバー)

Cay S.Horstmannの本でもう一つ特徴的なのは、Acknowledgements(謝辞)に過去の書籍のレビューアも含めて名前が列挙されていることです。『Core Java, 12th Edition』とこの『Core Java for the Impatient, Third Edition』にも私の名前があります。
コメント(0) 

書籍『Building Serverless Applications with Google Cloud Run』 [本]

Building Serverless Applications With Google Cloud Run: A Real-World Guide to Building Production-Ready Services

Building Serverless Applications With Google Cloud Run: A Real-World Guide to Building Production-Ready Services

  • 作者: Venema, Wietse
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2020/12/29
  • メディア: ペーパーバック

メルペイでは、GKE(Google Kubernetes Engine)を使ってマイクロサービスを開発していました。カウシェではGoogle Cloud Runを使ってサービスを提供していますので、Cloud Runの概要を学ぶために読んでみました。

160ページと薄い本ですが、Cloud Runの基本的な事柄や注意しなければならない事柄を説明しています。また、ハンズオン形式で進めながら動作を確認できるようになっています。
コメント(0) 

書籍『The Kubernetes Book』 [本]

The Kubernetes Book: 2022 Edition (English Edition)

The Kubernetes Book: 2022 Edition (English Edition)

  • 作者: Poulton, Nigel
  • 出版社/メーカー:
  • 発売日: 2017/06/18
  • メディア: Kindle版

過去のEditionは読んでいませんが、2022 Editionとなっている2022年版を読みました。Kubernetesにに関する書籍を読んだのは、2018年6月にメルペイに入社してから読んだ『Kubernetes in Action』以来です。

Kubernetesを学ぶのが初めてではないこともあり、内容も分かりやすく、知識が深まった部分も多かったです。

この本で特筆するとしたら、セキュリティに関する章があることだと思います。「15: Threat modeling Kubernetes」「16: Real-world Kubernetes security」です。詳細に説明されているわけではありませんが、Kubernetesに関するセキュリティの概要を知ることができます。
コメント(0) 

書籍『Docker Deep Dive』 [本]

Docker Deep Dive: Zero to Docker in a single book (English Edition)

Docker Deep Dive: Zero to Docker in a single book (English Edition)

  • 作者: Poulton, Nigel
  • 出版社/メーカー:
  • 発売日: 2016/09/20
  • メディア: Kindle版

「MAY 2020」とカバーにある(おそらく最新版)を読みました。普段、Dockerを深く使いこなしてはいないので、Docker全体を知るために読んでみました。

Dockerfileやdocker-composeについてはもちろん説明はされています。それ以外にも、Docker Swarm、Docker Stacks、ネットワーキングについても解説されていますし、15章「Security In Docker」ではセキュリティに関する基本的な事柄も説明されています。

Dockerのセキュリティに関しては、ちょうど「Security Journey」で基本を学んだばかりでしたので、復習にもなりました。

Docker Swarm関連では、分散サービス用のRaft、gossipプロトコル、リーダー選出(leader election)などの用語が事前説明なしで使われています。これらも『Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築』で学んだばかりだったので、問題なく理解することができました。

本の内容は、実際に手元でDockerを動作させて確認できますし、Docker Swarmについても(全部ではないですがある程度)Play with Dockerで試すことができます。

コメント(0) 

書籍『Googleのソフトウェアエンジニアリング』 [本]

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス

  • 出版社/メーカー: オライリージャパン
  • 発売日: 2021/11/29
  • メディア: 単行本(ソフトカバー)

職種としての「ソフトウェアエンジニア」は、ソフトウェアの設計から実装まで行うものと考えられることがあると思います。しかし、そこにエンジニアリングという視点はどの程度含まれるのでしょうか。さまざまな設計手法、さまざまなレビュー、テスト駆動開発、継続的インテグレーションなどの実践は、確かにエンジニアリングではあります。しかし、実践できていない開発組織もまだまだ多いと思います。

仮に実践できているとしても、小さな組織で行っているエンジニアリングが、Googleほどの大きな組織へと拡大するためには、スケールするのかを考える必要があります。Googleほどの大きさにならなくても、ビジネスが成長しているのであれば、それを支える開発組織も大きくなっていき、今までのエンジニアリング的な実践がスケールするのかを考える必要が自然と発生していきます。

この本では、大きなソフトウェア開発組織へと成長する過程で、試行錯誤しながらGoogleが取り組んできたソフトウェアエンジニアリングについて述べられています。

私自身のウェブサービスの開発経験はメルペイで働き始めてからなので限られてはいますが、この本を読みながら、現在自分達が直面している問題、あるいは、今後直面するであろう問題を色々と考えさせられることが多い内容でした。ただ、私自身があまり馴染みがない領域に関しては内容を理解できないものもありましたが、全体としてはとても参考になることが多い本でした。

この本で紹介されているHyrumの法則というのがあります。
あるAPIに十分な数のユーザーがいるとき、APIを作った者自身が契約仕様として何を約束しているかは重要でない。作られたシステムが持つあらゆる観測可能(obserbable)な挙動に関して、それに依存するユーザーが出てくるものである。
この法則に、いかに苦しんできたかは、この本全体でいろいろなところに登場します。小さな組織であれば、API仕様をきちんと書いておくだけでおそらく十分なのでしょうが、組織が大きくなれば、Hyrumの法則が登場して、思わぬ使われ方や想定が行われるようになっていくということです。
コメント(0) 

書籍『Go言語による分散サービス』の予約注文が可能になりました [本]

書籍『Go言語による分散サービス』が、Amazon.co.jpで予約注文可能になりました。

Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築

Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築

  • 出版社/メーカー: オライリージャパン
  • 発売日: 2022/08/03
  • メディア: 単行本(ソフトカバー)

電子版(PDF)は、発売後にオライリー・ジャパン(ページはまだ用意されていません)のサイトから購入可能になります。

目次は、次の通りです
本書への推薦の言葉
はじめに

第I部 さあ始めましょう
1章 レッツGo
2章 プロトコルバッファによる構造化データ
3章 ログパッケージの作成

第II部 ネットワーク
4章 gRPCによるリクエスト処理
5章 安全なサービスの構築
6章 システムの観測

第III部 分散化
7章 サーバ間のサービスディスカバリ
8章 合意形成によるサービス連携
9章 サーバディスカバリとクライアント側ロードバランス

第IV部 デプロイ
10章 Kubernetesでローカルにアプリケーションをデプロイ
11章 アプリケーションをKubernetesでクラウドにデプロイ

訳者あとがき

コメント(0)