SSブログ

書籍『入門 監視』 [本]

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン

  • 作者: Mike Julian
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2019/01/17
  • メディア: 単行本(ソフトカバー)

私自身は、backendのサービスを開発し、それが実際にデプロイされるのを経験するのはメルペイでの開発が初めてです。監視というのは以前には経験していないため、本書を読みました。

原著は、『Practical Monitoring』ですが、日本語版ではタイトルが『入門 監視』となっています。残念ながら、監視の経験不足からくるのだと思うのですが、本書の後半は、内容がピンとこない項目が多かったです。

細かな詳細は省きますが、以下の章から構成されています。
  • 1 章 監視のアンチパターン
  • 2 章 監視のデザインパターン
  • 3 章 アラート、オンコール、インシデント管理
  • 4 章 統計入門
  • 5 章 ビジネスを監視する
  • 6 章 フロントエンド監視
  • 7 章 アプリケーション監視
  • 8 章 サーバ監視
  • 9 章 ネットワーク監視
  • 10 章 セキュリティ監視
  • 11 章 監視アセスメントの実行
  • 付録A 手順書の例:Demo App
  • 付録B 可用性表
  • 付録C 実践 監視SaaS

「1 章 監視のアンチパターン」と「2 章 監視のデザインパターン」は、監視をする上で基本的に認識しておくべきことが書かれています。

残りの章は、全体的に個々の項目を深掘りしているというよりも浅く広く必要なことを述べているのですが、私自身は経験がないためかピンとこないものが多かったです。私のような全くの初心者は、監視の経験と知識がある人と一緒に読みながら、補足や解説をしてもらいながら読むと理解が深まるのではないかと思います。

コメント(0) 

『Effective Java 第3版』の翻訳作業が終わりました [本]

昨年の2月から原著『Effective Java Third Edition』の草稿のレビューが始まり、レビューが終わったのが11月で、昨年末には原著が発売されています。翻訳作業は、昨年の12月から始めて、すべての作業が今月初めに終了しました。今回も、翻訳および(索引作りも含めた)組版までLaTeXで行いました。

原著のレビューのときには気付かなかった多くの間違いは、翻訳作業を通してJoshua Bloch氏へ知らせており、原著の4th printing(第4刷)では修正されています(原著の正誤表は、こちらです)。

今回はもっと早く終わるかと思ったのですが、結局、約430時間を翻訳作業に費やしました。翻訳に先立っての原著のレビューは約42時間でした。

Amazon.co.jpでは、以下のように紹介されています。
Javaプログラマーにとって必読の定番書『Effective Java』の改訂第3版。

この第3版では、Java 8で新たに導入されたラムダとストリームに関する章が新規に追加されたほか、 オプショナル、インタフェースでのデフォルトメソッド、try-with-resources文、@SafeVarargsアノテーション、モジュールなどの機能を扱った項目を含み、第2版の78項目から90項目に増加しています。

今日ではJavaは大きく複雑になり、並列実行から、繰り返し、各種データの表現まで、多くの事柄に対して多様な抽象化を持ち合わせています。この大きさと複雑さを考えると、最新のベストプラクティスの指導書はなおさら重要です。

本書は多くのデザインパターンとイデオムを示すコード例を含んでおり、プログラミング言語Javaの正しい理解と、簡潔で明瞭で正確なソフトウェアの設計に役立つでしょう。
発売予定は10月31日です。予約注文は、Amazon.co.jpのこちらのページからできます。
コメント(0) 

『Effective Java Third Edition』が届きました [本]

ej3e.jpg
米国の出版社(Pearson)から届きました。電子版も昨年末に出版社から頂いていたのですが、紙の本もいいものです。

2001年に初版が出版されて、17年が過ぎました。2001年に初版を読んだときには、正直なところ私にとっては書かれている内容が衝撃的でした。当時、技術評論社の雑誌「Java PRESS」や「XML PRESS」にJava関連の記事を書き、『プログラミング言語Java第3版』の翻訳も行い、Javaについてはかなり分かっているつもりでした。しかし、初版の英語版を読んだときは、自分が何も分かっていなかったと自覚したのを覚えています。

幸い初版を翻訳する機会を得て、翻訳しながら様々なフィードバックを著者のJoshua Blochへ行いました。翻訳者で著者へ問い合わせをする人は少ないようです。『Effective Java』は多くの言語に翻訳されていますが、それに関してJoshua Blochは次のようにツィートしています。

スクリーンショット 2018-01-26 6.29.06.png

つまり、著者の知らないところで翻訳が行われていることがほとんどだということです。同じことを『APIデザインの極意』の著者Jaroslav Tulachも述べています(こちら)。

幸い、その後は、Joshua Blochの新たな本の草稿をレビューする機会を得られて、『Java Puzzlers』、『Effective Java Second Edition』、そして、今回の第3版もレビューしました。残念ながら草稿をレビューしているときの注意力と翻訳をしているときの注意力は異なっているようで、草稿のレビューでは気付かなかった間違いを翻訳中に気付くことがあります(たとえば、こちらの8番目の「A」)。また、草稿にはなかった内容が最終版には入っていることもあり、翻訳していて間違いに気付くこともあります(『Effective Java Third Editon』は、レビューアからのフィードバックを反映した細かな修正が多いような気がします)。

日本語版『Effective Java 第3版』については、もうしばらくお待ちください。

コメント(0) 

『Effective Java Third Edition』 [本]

Effective Java (3rd Edition)

Effective Java (3rd Edition)

  • 作者: Joshua Bloch
  • 出版社/メーカー: Addison-Wesley Professional
  • メディア: Kindle

電子版は、すでに購入可能となっています。PDF版であれば https://www.informit.com/ から購入可能となっています。紙の本は、年明けのようです。

第2版に続いて、この第3版もレビューさせてもらいました。第2章から第12章までの原稿をレビューしました。レビュー用の第2章が送られてきたのが2月7日で、最終章である第12章が送られてきたのが11月25日でした。

日本語版は、私にとって17冊目の翻訳本になりますが、しばらくお待ちください。

英語版の正誤表は、こちらです。

コメント(0) 

予約受付中『ベタープログラマ』(2) [本]

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

  • 作者: Pete Goodliffe
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2017/12/15
  • メディア: 単行本(ソフトカバー)

間もなく発売されますが、先日紹介した目次に加えて、アマゾンでは以下のように紹介されています。

プログラマとしてのキャリアをスタートすると、構文や設計を理解するだけでなく、その他の様々な事柄を理解し習得する必要があると気づきます。

本書は、優れたコードを作りだし、人々と効率的に働く生産性の高いプログラマになるための考え方とテクニックを38のテーマで紹介します。

はじめに、コード1行1行の書き方、デバッグやエラー処理、コードの改善方法など開発現場でのコーディングを取り上げます。

次にコードを単純に保つこと、コード変更やテスト、リリースなどソフトウェアを開発する際の考え方や心構えを扱います。

個人的な活動として、継続的な学習方法と停滞を避けるための課題の見つけ方など、自らを成長させる方法も紹介。

さらに組織の中で他の人とコミュニケーションを取りながら、効果的に働くための習慣を解説します。

『Code Craft』の著者Pete Goodliffeが、自らの経験を元に「優れたプログラマ」になるための考え方と習慣をまとめた本書は、プログラミングを愛し、長く続けながら、優れたプログラマになりたいと思うすべての人に必携の一冊です。

各章の終わりでは、読者が考えるべき複数の「質問」が用意されています。自分の経験を振り返りながら答えを考えてみてください。そして、「やってみる」として、みなさんに挑戦してもらいたいことが一つ提示されています。最後に、章の内容に関連したちょっとした漫画が描かれており、面白く読むことができます。

コメント(0) 

レビュー終了:『Effective Java 3rd edition』 [本]

Effective Java (3rd Edition)

Effective Java (3rd Edition)

  • 作者: Joshua Bloch
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2017/12/29
  • メディア: ペーパーバック

記事「レビューした(している)これからの新刊」で、今年レビューしている本の一冊として紹介した『Effective Java 3rd Edition』のレビューが先週終了しました。

第2章から第7章までは、「Rough Cut」としてすでに「Safari」で読めるようになっています。こちらです。第3版では章が一つ追加されており、その追加された第7章「Lambdas and Streams」もSafariで読めます。

第2版では78項目でしたが、新たな第7章の7項目も含めて第3版は89項目になっています。

コメント(0) 

予約受付中『ベタープログラマ』 [本]

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

  • 作者: Pete Goodliffe
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2017/12/15
  • メディア: 単行本(ソフトカバー)

昨年の6月から翻訳を行ってきた本です。優れたプログラマになるために、どのようなことを心がけるべきかについて、ソフトウェア開発の様々な側面について説明されいます。

目次は、以下の通りです。
1章 コードを気にかける
  コードへの正しい取り組み方と態度を身に付ける

第Ⅰ部 you.write(code)
2章 見かけのよい状態を維持する
  コードの表現:レイアウトと名前付け
3章 少ないコードを書く
  不必要なコードを書かない
4章 取り除くことでコードを改善する
  死んでいるコードを見つけて取り除く
5章 コードベースの過去の幽霊
  過去に書いたコードから学ぶ
6章 航路を航行する
  なじみのないコードへの取り組み方
7章 汚物の中で転げ回る
  不快でひどいコードを取り扱う
8章 そのエラーを無視するな!
  エラー処理に対する健全な態度
9章 予期せぬことを予期する
  あらゆる可能性を考慮して、頑強なコードを書く
10章 バグ狩り
  バグを見つけて修正する
11章 テストの時代
  開発者テスト:単体テスト、インテグレーションテスト、システムテスト
12章 複雑さに対処する
  不必要な複雑さを避けるために、コードをうまく設計する
13章 二つのシステムの物語
  優れた設計とひどい設計の顛末

第Ⅱ部 練習することで完璧になる
14章 ソフトウェア開発とは
  ソフトウェア開発とは何か
15章 規則に従って競技する
  開発チームの役割を明確にする規則を作る
16章 単純に保つ
  ソフトウェアの簡潔性を追い求める
17章 頭を使いなさい
  プログラマは頭を使うことができるし、そうするべきである
18章 変わらないものはない
  コードは不可侵ではなく変化する
19章 コードを再利用するケース
  コードを再利用するための健全な方法
20章 効果的なバージョンコントロール
  バージョンコントロールをうまく使う
21章 ゴールポストを抜ける
  QAチームと協業する
22章 凍結されたコードの数奇な人生
  コード凍結とは何か。そもそも必要か
23章 プリーズ・リリース・ミー
  ソフトウェアリリースを作成する

第Ⅲ部 個人的なこと
24章 学びを愛して生きる
  効果的な学び方
25章 試験に基づく開発者
  プログラミングと自動車運転の類似:どのように学び、どのように試験に合格するか
26章 チャレンジを楽しむ
  モチベーションを維持し、スキルを高く維持するための課題の見つけ方
27章 停滞を避ける
  プログラミングスキルの陳腐化を防ぐ
28章 倫理的なプログラマ
  開発者人生における倫理的な問題
29章 言語への愛
  多くのプログラミング言語を学び、使っている言語を愛する
30章 プログラマの姿勢
  プログラマの健康の改善:姿勢、目の疲労、元気の維持

第Ⅳ部 成し遂げる
31章 一生懸命ではなく、賢く
  効果的に働く:不要な作業を回避して、問題を解決する
32章 完了したときが完了
  プログラミングのタスクを明確にし、終わったときを正確に把握する
33章 今度こそ分かった……
  視野を狭くしない:問題を解決する最善な方法を見つける

第V部 人々の営み
34章 人々の力
  優れたプログラマと一緒に働く。チームでうまく働く方法
35章 原因は思考
  説明責任:自分自身と自らの働きを向上させる
36章 遠慮なく話す
  ソフトウェア開発者にとってのコミュニケーションスキル
37章 多くのマニフェスト
  ソフトウェアのマニフェストとは何か。なぜ必要か
38章 コードへの叙情歌
  間違ったソフトウェア管理の教訓

結び
訳者あとがき


コメント(0) 

16冊目の翻訳本 [本]

翻訳本としては私にとって16冊目となる、次の本の翻訳本を12月に出版します。

Becoming a Better Programmer: A Handbook for People Who Care About Code

Becoming a Better Programmer: A Handbook for People Who Care About Code

  • 出版社/メーカー: O'Reilly Media
  • 発売日: 2014/10/03
  • メディア: Kindle版

原著は3年前に出版されています。著者のPete Goodliffeは、次の書籍の著者です。

Code Craft エクセレントなコードを書くための実践的技法 Mynavi Advanced Library

Code Craft エクセレントなコードを書くための実践的技法 Mynavi Advanced Library

  • 出版社/メーカー: マイナビ出版
  • 発売日: 2014/09/17
  • メディア: Kindle版

『プログラミング言語Go』の翻訳作業が終わった後の、2016年6月から翻訳に着手しました。一年以上を要したことになります。

『Becoming a Better Programmer』は、優れたプログラーを目指すための人のために、様々な話題が取り上げられています。40歳から始めた技術書の翻訳ですが、翻訳を行った本から多くのことをソフトウェアエンジニアとして学んできました。この本もからも多くのことを認識し直したり、学ぶことができました。

Amazonで予約注文できるようになりましたら、改めて紹介します。

12月からは、私にとって17冊目となる本の翻訳に着手する予定です。

コメント(0) 

書籍『変革の軌跡』 [本]

変革の軌跡 【世界で戦える会社に変わる

変革の軌跡 【世界で戦える会社に変わる"アジャイル・DevOps"導入の原則】

  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/01/25
  • メディア: Kindle版

2014年9月に『A Practical Approach to Large-Scale Agile Development』を紹介した記事を書いています。

A Practical Approach to Large-Scale Agile Development: How HP Transformed LaserJet FutureSmart Firmware (Agile Software Development Series)

A Practical Approach to Large-Scale Agile Development: How HP Transformed LaserJet FutureSmart Firmware (Agile Software Development Series)

  • 作者: Gary Gruver
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2012/10/18
  • メディア: ペーパーバック

2012年に出版された『A Practical Approach to Large-Scale Agile Development』は、どちらかと言うと技術的側面から書かれています。まだ全部は読み終えていませんが、同じ著者による『変革の軌跡』は組織文化の側面から書かれています。

この二冊で書かれているのと同じような開発をしたことがないソフトウェア担当の「経営幹部」には、残念ながらどちらの本も理解されないのではないかと思います。『変革の軌跡』では、DevOpsにおけるソフトウェア担当の「経営幹部」の重要な役割が強調して書かれています。しかし、この二冊に書かれているような1,000万行を超えるレガシーコードを抱えている企業で『変革の軌跡』に書かれているような役割を果たすソフトウェア担当の経営幹部は、日本にはいないのではないかと思います。

書籍『プログラミング作法』再出版されました [本]

プログラミング作法

プログラミング作法

  • 作者: Brian W. Kernighan
  • 出版社/メーカー: KADOKAWA
  • 発売日: 2017/01/30
  • メディア: 単行本

アスキーから出版されていて絶版になった書籍『プログラミング作法』が再出版されました(Kindle版もあります)。著者は、Go言語の生みの親の一人であるRob Pike、そして、『プログラミング言語Go』の共著者であるBrian Kernighanです。

この本に関しては、2011年4月27日に次のように書いています
The Practice of Programming (Addison-Wesley Professional Computing Series)

The Practice of Programming (Addison-Wesley Professional Computing Series)

  • 作者: Brian W. Kernighan/Rob Pike
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 1999/02/04
  • メディア: ペーパーバック

1999年に若手技術者に基本的なことを学んでもらうために、当時はこの英語版を利用して第1章「Style」と第2章「Algorithms and Data Structures」の早朝勉強会を海老名プライムタワー(海老名市)、KSP(川崎市)、岩槻(さいたま市)の3拠点で私が出向いて開催しました。その時に作成したのが「勉強会ノート」です。

勉強会ノート: http://www001.upp.so-net.ne.jp/yshibata/TPOP.pdf

その後、日本語版が出版されました。

プログラミング作法

プログラミング作法

  • 作者: ブライアン カーニハン
  • 出版社/メーカー: アスキー
  • 発売日: 2000/11
  • メディア: 単行本
日本語版を使用して始めた社内教育が「プログラミング作法」教育です。当初は、以下の3部から構成される1日の教育コースでした。
  • 「ソフトウェアエンジニアの心得」
  • コードレビューの重要性とコードレビュー・ガイドの説明
  • 『プログラミング作法』の第1章「スタイル」の教育
4社※1でソフトウェア系技術者の新卒新人向け教育として行っていましたので、受講生の多くがすでに30代前後です。書籍『プログラミング作法』には多くの有益なことが書かれていますので、この教育では受講生に書籍が配布されていました。

「ソフトウェアエンジニアの心得」は、私が雑誌の記事に書いたものが付け加えられる形で内容が年々膨らんでいき、現在の「ソフトウェアエンジニアの心得」教育や講演の内容となっています。

転職後※2は、一日コースではなく、「ソフトウェアエンジニアの心得」と「プログラミング作法(スタイル)」に分離して、別々の社内教育コースとして行っています。「ソフトウェアエンジニアの心得」は、技術系新人の集合教育にお願いして入れてもらい話をしています。今年は子会社※3の集合教育にも入れてもらい、話をました。

書籍『プログラミング作法』の第1章「スタイル」は、私でなくてもできる教育なので、本当は若手エンジニアか中堅のエンジニアが行ってもらいたい内容ですが、残念ながら社内教育としてはまだ私が行っています。※4
※1 富士ゼロックス、富士ゼロックス情報システム、富士フィルム、富士フィルムソフトウェア
※2 リコー
※3 リコーITソリューションズ
※4 富士ゼロックスでは若手技術者が講師となって行ってくれているようです
1999年に勉強会で使ってから18年が経過したことになります。勉強会で使った勉強会ノートの表紙には、次のように書いています。
1 章と 2 章だけでなく、すべての章で有益なことが書かれていますので、是非全体を読んでください。初心者には分かり難い部分も多いですが、その場合には、職場の経験ある先輩に聞いてください。でも、正しく説明出来る人は多くないと思います。「The Practice of Programming」に書かれている内容がすべて説明できるようになれば、一人前のソフトウェア・エンジニアと言っても過言ではないでしょう。
2000 年 5 月 14 日 柴田 芳樹
ほとんどC言語で書かれていますが、若い人達には是非読んで学んでもらいたい内容です。

拙著『ソフトウェア開発の名著を読む【第二版】』でも紹介しています。

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

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

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