チーム開発実践入門を読み終わりました

チーム開発実践入門を一通り読み終えたので書評です。

チーム開発実践入門──共同作業を円滑に行うツール・メソッド:書籍案内|技術評論社

評価

★★★★★★★☆☆☆(7/10)
評価の目安はこちら

オススメできる人
  • チームでの開発経験がない人

4月から社会人になった人が配属される前に読むと良いかもしれません。

オススメできない人
  • チーム開発のやり方を模索している人

2018年現在、チーム開発のやり方を模索している人にとっては知っている知識ばかりのように思えます。

感想

チームでシステム開発を行うために必要なことの基礎が書かれています。
チケット管理やバージョン管理、CI/CDといったことに対しての説明がされています。

書籍が4年前なので今となっては当たり前のことが多いように思えます。
2018年現在ではさらに洗練されたやり方やツールなどが開発されています。
しかし、大きな流れとしては変わっていないので、書籍の内容は今でも通用するはずです。

私個人としてはGitのブランチ戦略周りの詳しい内容を知りたかったのですが、
その辺は概要程度のみとなっていたので少し残念でした。

今となっては当たり前となっている知識ばかりなので、
現在チームで開発している人にとっては得るものは少ないと思います。

ただ、改めてチーム開発の基礎を学ぶためには良い本だと思います。

プロダクションレディマイクロサービスを読み終わりました

プロダクションレディマイクロサービスを一通り読み終えたので書評です。

O'Reilly Japan - プロダクションレディマイクロサービス

評価

★★★★★★☆☆☆☆(6/10)
評価の目安はこちら

オススメできる人
  • サービス運用に関わるエンジニア
オススメできない人
  • 具体的な解決策を求めている人

具体的な方法論については書かれていないので、
何か問題を抱えていてそれを解決したいといった場合にはお勧めできません。

感想

Uberのサービスが本番で運用されるために満たすべき要素を8つの原則に分け
それぞれがどういったものか、どうやって満たしていくかといったことが書かれています。

安定性、信頼性、スケーラビリティ、パフォーマンス、耐障害性、大惨事対応、監視、ドキュメント
の8つの原則があり、それを全て満たしたものを本番対応(プロダクションレディ)と呼ばれています。

各章の内容は原則については
どういったことを考える必要があるのかといったような概要の話です。
「Xというツールを使って・・・」といったような具体的な話はありません。

メインの焦点はマイクロサービスですが
マイクロサービスではなくても考える必要がある原則ばかりだと思うので、
サービスを運営するエンジニアにとっては参考になる内容だと思います。

ただし、どういった設計をすれば原則を満たせるかというのは書かれていないので、
実現方法については自分で考える必要があります。

サービスを運用する上で必要なことの概要を学ぶには良い本だと思います。

[試して理解]Linuxのしくみを読み終わりました

[試して理解]Linuxのしくみを一通り読み終えたので書評です。

[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識:書籍案内|技術評論社

評価

★★★★★★★★☆☆(8/10)
評価の目安はこちら

Linuxがどのように動いてるかを理解するのに最適な本だと思います。

オススメできる人
  • Linuxを使ってサーバの構築/運用をしている人
オススメできない人
  • Linuxを使い始めた人

top、psコマンドなど基本的なコマンドの説明はされていないので、
Linuxを触った経験が浅い人には少し難しいかもしれません。

感想

Linuxのデバイス周りについてちゃんと勉強したいと思っていたところ、
ちょうどこの本が発売されるタイミングだったので購入してみました。
個人的な感想を最初にいうとこういう本を待っていたという感じです。

目次を見てもらうとわかるのですが、
CPUのモード、プロセス、メモリ、ファイルシステム、ストレージ
といったことが説明されています。

説明は非常にわかりやすかったと思います。
仕組みを理解するためのコードと結果が載っているので、
具体的な例を元に理解できる内容になっています。

他の書籍ではあまり説明されない箇所であり、
理解していないのでLinuxを使っている人も多いと思う(私もその一人です)ので、
Linuxのしくみ」を知るための最適な一冊だと思います。

Linuxを触っている人であれば読んだ方が良いと思います。

初めての自動テストを読み終わりました

初めての自動テストを一通り読み終えたので書評です。

O'Reilly Japan - 初めての自動テスト

評価

★★★★★☆☆☆☆☆(5/10)
評価の目安はこちら

個人的にはもっと踏み込んだ内容を期待していたので評価は低めです。
ただ、テストコードを書いたことない人にとっては★7くらいになると思います。

オススメできる人
  • テストコードを書いたことがない人
  • テストを経験して日が浅い人
オススメできない人
  • テストコードを書いたことがある人

感想

ユニットテスト/結合テスト/UIテストの自動化の基本的な考え方についてかかれています。
それぞれどのような観点でテストするのか、
どのような部分のバグは見つけられないのか、
どのようなメリット/デメリットがあるのか。
といった概論的なところは一通り押さえられていると思います。

サンプルでRuby/JavaScript/HTMLのコードが出てきますが、
事前に説明がされているのでプログラマなら理解できる内容になっています。
プログラマの人が読んでもある程度理解できそうな内容ですが、
詳細部分についてはちょっと難しいかもしれません。

自動テストをCIの一部として運用するにはどうすればいいか。
といったところについても個人的には踏み込んで欲しかったです。
ただ、そこを知りたいという人はこの書籍の対象者から外れると思います。

自動テストについて最初に読む本としては良いと思います。

SRE サイトリライアビリティエンジニアリングを読み終わりました

SRE サイトリライアビリティエンジニアリングを一通り読み終えたので書評です。

O'Reilly Japan - SRE サイトリライアビリティエンジニアリング

評価

★★★★★★★☆☆☆(7/10)
評価の目安はこちら

大規模なサービスを運用している人には良さそうと思いました。
私自身は大規模なサービスを運用したことないので想像になりますが・・・

オススメできる人
  • サービスを運用している人
オススメできない人
  • サービスの運用経験がない人

感想

説明にもある通りシステム管理とサービス運用について
Googleではどういったやり方を行なっているのか書かれています。

サービスを運用する上で考えるべきこと、
サービスを運用して発生する障害とその対応方法など
運用について必要なことが書かれていると感じました。

Googleなので大規模なサービスに特化した内容もありますが、
小さいサービスを運用している人にとっても得るものはあるかと思います。
読んでいる間にも「ここは今の運用でも課題になっている」と思うことが何回かありました。

ページ数が多いので読むのに時間はかかりますが、
サービスを運用している人にとっては得るものがある一冊だと思います。
また、チームで一冊購入し、各メンバーが気になるところだけ見るというのも良いと思います。

Javaパフォーマンスを読み終わりました

Javaパフォーマンスを一通り読み終えたので書評です。

O'Reilly Japan - Javaパフォーマンス

評価

★★★★★★★☆☆☆(7/10)
評価の目安はこちら

JVMでのパフォーマンスについての基礎が載っている本だと思います。

オススメできる人
  • JVM言語を使っている人
オススメできない人
  • JVM言語を使っていない人
  • JVM言語を使い始めてから日が浅い人

感想

JITコンパイラとスレッドでのパフォーマンスについても書かれているのですが、
主なテーマはGCだったかなという印象です。

シリアルGC、パラレルGCCMS、G1GCの基本的な仕組み、
GCパラメータによるパフォーマンスの調整など
JVMGCにおける基本的な内容が全て入っていると思います。

また、パフォーマンス改善をする上で最初に行うべき計測についても
Javaに付属している計測ツールの使い方が書かれていて
非常に勉強になる内容でした。

JVMで遭遇しそうなパフォーマンス問題について一通り書かれていると思うので、
JVMを使って開発を行っているエンジニアはおすすめできる一冊だと思います。

アプリケーションアーキテクチャ設計パターンを読み終わりました

アプリケーションアーキテクチャ設計パターンを一通り読み終えたので書評です。

アプリケーションアーキテクチャ設計パターン:書籍案内|技術評論社

評価

★★★★★★☆☆☆☆(6/10)
評価の目安はこちら

アプリケーションアーキテクチャの初歩としては良い本だと思います。

オススメできる人
  • アーキテクトを目指す人
  • Javaエンジニア
オススメできない人

感想

業務のシステムで必要なアプリケーションアーキテクチャについて
基本的な内容が一通り揃っていると思います。
トレードオフについても言及されているのも良いと思います。

サンプルコードはJava特有(主にJava EE)のものなので
Java EEをある程度経験していないと理解するのは難しいかもしれません。

過去にPoEAAを読んだことがある人やある程度アーキテクチャを勉強した人にとっては
ちょっと物足りなく感じるのではないかなと思います。

アーキテクチャ周りについて勉強したいJavaエンジニアにとっては
最初の一歩としておすすめできる内容です。