IT技術者なら知っておきたい ストレージの原則と技術を読み終わりました

IT技術者なら知っておきたい ストレージの原則と技術を一通り読み終えたので書評です。

IT技術者なら知っておきたいストレージの原則と技術 - インプレスブックス

評価

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

サーバのストレージに関して体系的に学ぶには良い本だと思いました。

オススメできる人
  • サーバを調達する人
  • サーバ管理者
オススメできない人
  • インフラレイヤに関わらない人

知っておくべき内容もありますが、
この本に書かれていること全てを知る必要がある訳ではないように思います。

感想

元々はファイルシステム周りについて勉強したくて買ったのですが、
自分が予想している内容とは全く違いました。

それでもアーキテクトを目指す人間としては
得るものがあったので買って損はしていないなという感じです。

仕事ではあまりストレージ周りに関わらないので、
この本を読んだことによって知ったことも多く
ストレージの基礎を学ぶには最適なのではないでしょうか。

目次を見るとだいたい各章毎にEMC製品の内容がありますが、
ページ数の割合としては10%もないくらいだったので
特定の製品に依存していない内容です。

RxJavaリアクティブプログラミングを読み終わりました

RxJavaリアクティブプログラミングを一通り読み終えたので書評です。

RxJavaリアクティブプログラミング(須田智之)|翔泳社の本

評価

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

Reacitve Streamを勉強するためには良い本だと思います。

オススメできる人
  • Reactive Streamについて学びたい人
オススメできない人
  • リアクティブプログラミングの詳細を知りたい人

私にとっては非常によかったのですが、
入門者向けといったところだったので詳細な内容を求める人には
少し物足りない内容になっているのではないかなと感じました。

感想

Reactive Streamについて良くわかっていなかったので、
Reactive Streamを勉強するために購入しました。

RxJavaについては全く知らなかったのですが、
Reactive Streamの基本とRxJavaの基本的なAPIについて理解することができたと思います。

サンプルコードもわかりやすい例だったと個人的には思いました。
マーブルダイアログも記載されているのも理解を進めるポイントになったように思えます。

サンプルの内容がリスト系のデータばかりだったので、
事前に宣言した計算式が反映されるといったリアクティブプログラミングという意味では
ちょっとイメージしにくいかなと感じました。

ただ、そういったサンプルを作ろうとすると
GUIのサンプルを作ったり、状態が変換するものが必要になるので、
入門書のサンプルとしては難しいものになりそうな気がします。
そういった面を考慮するとちょうどいいバランスのサンプルかもしれません。

個人的にはReactive Streamについての基本をすることができたので、
Reactive Streamを知るための入門書としては最適だと思います。

グッド・マス ギークのための数・論理・計算機科学を読み終わりました

グッド・マス ギークのための数・論理・計算機科学を一通り読み終えたので書評です。

グッド・マス ギークのための数・論理・計算機科学 | コンピュータ・一般書,プログラミング・開発,その他 | Ohmsha

評価

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

読み物としては面白いなぁとは感じつつも
私にはちょっと内容が難しかったなという感じです。
(一部わからないなぁと思う箇所があるくらいです)

オススメできる人
  • 数学について俯瞰したい人
オススメできない人
  • 数学アレルギーの人

感想

数学と言ってもどんなものがあるのか?
というのを知るには良い本かなと思います。

エンジニアとして数学を勉強したほうがいいかなと思ってはいるものの
何を勉強すればいいかわからないのでこの本を買いました。

書いてある内容の全てを理解できわけではないですが、
「なるほど。そういうものがあるのか」というのは感じられました。

各項目は基本的な内容のみとなっていると思うので、
数学を勉強するための一歩としてどんなのものがあるのかを把握するため
には割と良いのではないでしょうか?

[改訂新版]プロのためのLinuxシステム構築・運用技術を読み終わりました

[改訂新版]プロのためのLinuxシステム構築・運用技術を一通り読み終えたので書評です。

[改訂新版]プロのためのLinuxシステム構築・運用技術:書籍案内|技術評論社

評価

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

サーバサイドの開発者であれば読むと良いと感じました。

オススメできる人
  • サーバ管理者
  • サーバサイド開発者

Linuxサーバを運用している人であれば知っておくと良い内容なのかなと思います。
サーバサイドの開発者でもLinuxサーバに関して関わりが深いので
知っておくと良いと思います。

オススメできない人

Linuxの話なのでサーバ構築・運用に関わらないのであればおすすめできません。
ただし、知識としては持っておいても良いと思います。

感想

LinuxのインストールをしてApacheの基本設定をして・・・
みたいな内容であれば調べながらでもできるので、
私としてはそういうのを求めてないなぁと思っていました。

そんな時にこの書籍を見つけて目次を見たところ、
インストールや基本から一歩進んでいて私が欲していた内容に思えて購入しました。

実際に読んで見たら
私が知識不足だなぁと思っていた箇所の説明があって
私個人としては勉強になる内容でした。

ストレージとネットワークの章に関しては
もっと深い内容が知りたいなという感じではありますが、
このページ数でもかなり良い内容だったと思います。

書籍の評価についてのメモ

自分の中で星のつけ方が一定じゃないなぁって思うので、
ちょっと文章としてまとめるためのメモです。

私の生業がWebアプリケーションなので対象としてはWebアプリケーション周辺です。
組込み系とか制御系とかそっち方面は対象となっていません。

なので、ここで指しているエンジニアはWebアプリケーション周りに携わる人になります。
特定分野と限定している場合でも
サーバサイド、クライアントサイド、スマホアプリ、DBAなどの話になります。

  • ★10:名著。全てのエンジニアは読むべき内容だと思った。
  • ★9:良書。ある分野のエンジニアは読むべき内容だと思った。
  • ★8:良書。ある分野のエンジニアにとって有益となる内容ばかり。
  • ★7:ある分野のエンジニアにとって有益となる内容が多い。
  • ★6:ある程度有益だと思えるし、他の人にも同じことがえると思う。
  • ★5:ある程度有益だと思えるが、他の人にも同じことが言えるかはわからない。
  • ★4:有益だと思える内容もあるが、もしかしたらもっと良い本があるかもしれない。
  • ★3:有益だと思える内容があるが、他の本を読んだ方が有益だと思う。
  • ★2:有益だと思える内容がほとんどなかった。
  • ★1:自分の中では読む価値を見出せなかった。

本って誰にとっても価値のないものってないと考えているので
読む価値なしって断言できないのと思います。
それはあくまで自分にとって価値がなかっただけで他の人にはあるかもしれないので。

私の場合、★3以下のものはほとんどなく、★5から★8までが多くなるんじゃないかなぁと。

「詳解 システム・パフォーマンス」を読みました

詳解 システム・パフォーマンスを一通り読み終えたので書評です。

O'Reilly Japan - 詳解 システム・パフォーマンス

評価

★★★★★★★★☆☆(8/10)

サーバサイドの開発者であれば読むと良いと感じました。
また、読まないとしてもパフォーマンスの問題が出たという時のために
チームとして一冊持っておくと良いかもしれません。

オススメできる人
  • サーバサイド開発者

書籍自体がシステム全体に適用できると思うので、
サーバサイド開発者に限定しなくても一般教養として持っておくと良いかもしれません。
ただ、一般教養として買うには分厚いですが・・・

オススメできない人
  • フロントエンド開発者

フロントエンドの場合はCPUやディスクというのは気にする部分ではなさそうな印象です。

感想

パフォーマンス問題が発生した時の調査の仕方や
各レイヤごと(CPU/メモリなど)で詳細に説明がされていて、
私としては非常に参考になりました。

特に各レイヤごとの説明はCPUやメモリの仕組みを説明した上で、
パフォーマンス問題が起きるとしたらどこなのか、
どうすればその原因を特定できるのかと行ったことが書かれています。

こういった情報が体系的にまとまっている書籍は
私が読んできた書籍の中ではなかったように思えます。

個人的にはパフォーマンス周りに関する知識のレベルアップができたなぁという実感です。
また、「評価」でも書きましたがチームとして一冊持っておいて、
パフォーマンス問題に立ち向かう時のリファレンスとしても活躍すると思います。

「現場で役立つシステム設計の原則」を読み終わりました

現場で役立つシステム設計の原則を一通り読み終えたので書評です。

現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法:書籍案内|技術評論社

購入のきっかけ

著者の方が @masuda220 さんということで購入しました。
DDDに関する資料を拝見させていただき、色々と学ぶことが多かったです。
著者の方の経験をもとに書かれたということだったので、「これは買わねば」と思い買いました。

評価

10段階評価で言えば10点満点と私は思います。

開発者必携の一冊なんじゃないかなぁと思う内容でした。
できれば、チームメンバー全員に読んでほしいと思うくらいです。

オススメできる人
  • 基本的な開発ができる人(経験年数的には3年以上といったところ)
  • エリックのDDD本を読んで難しいと感じた人
オススメできない人

個人的に開発者必携だと思っているのですが、あえてあげるとしたら下記のような人です。

  • 開発経験が浅い人(経験年数的には3年未満といったところ)

経験年数3年未満とは書きましたが、あくまで目安です。
リレーショナルモデルやWebAPI、開発プロセスといった部分があるので、
もしかしたら、ピンとこない部分があるかもしれません。

感想(ざっくり)

どうすれば変更しやすいソフトウェアを設計ができるかといった内容です。

大まかな構成としては下記のような感じだったかなぁと思います。

前半;ステップ単位でのコードの書き方
中盤:オブジェクト指向に基づいた変更しやすい設計について
後半:オブジェクト指向設計を実践するための開発手法

感想詳細(前半)

1章/2章はコードの書き方や名前の付け方など、まさにリファクタリングの内容でした。
3章は変更しやすいオブジェクト指向への道筋が見えるような内容だなと思いました。

動くコードが書けるようになった人はこの辺りを読むと非常に勉強になると思います。

感想詳細(中盤)

中盤からドメインモデルという言葉出てきて、DDDの実践的な内容になってきたなといった感じです。
ドメイン/アプリケーション/プレゼンテーション/データソースといった各レイヤの説明も出てきます。

ただ、エリックのDDD本を噛み砕いてかなりわかりやすい説明になっているので、
「DDD本を読んだけど、あんまり理解できなかった」と感じた人にも理解しやすいのではないかなと思います。
各サンプルは注文や口座など業務システムで使われそうな内容になっていて実践的です。

各レイヤごとの設計の仕方について書かれています。

第4章

ドメインモデルの見つけ方/育て方といった内容です。

おそらく実際の開発ではドメインモデルの見つけるのは難しいと思っています。
なので、ドメインモデルの見つけ方は非常に勉強になりました。

育て方も実際の開発で悩むことが多そうな部分だと思います。
getterを使って参照側で計算というのをやりがちなので、
育て方といった部分もかなり勉強になりました。

第5章

ドメインモデルを組み合わせて要件を満たすアプリケーションレイヤについてです。

アプリケーションレイヤの各サービスを組み合わせて、
シナリオクラスを作るといったところについては「なるほど」と思う内容でした。

第6章

データソースレイヤの説明ですが、
ここはリレーショナルモデル設計の面が強いと感じました。

ただ、ドメインモデルが全く関係ないかと言われるそうではなく、
ドメインモデルを設計した上でのリレーショナルモデルの設計といった感じです。

「UPDATE文は使わない」のところは個人的にはちょっと考えさせられる内容でした。
確かに正規化を進めていくと未入力状態がある場合は対象テーブルに存在しない状態になる。
というのは理解できるので、確かにDELETE -> INSERTにはなるかもなぁという想像はしています。

第7章

プレゼンテーションレイヤの説明ですが、画面設計的な話にも踏み込んでいます。
ドメインモデルと画面を連動させるという部分については「なるほど」と思いました。

感想詳細(後半)

後半はオブジェクト指向の設計からちょっと俯瞰した視点になっているような気がしました。

8章ではアプリケーション間の連携で非同期通信やWebAPIについての話です。
WebAPIのレスポンスを返すときのドメインモデルとの連携に仕方などです。
どちらかというとWebAPI設計が中心だったような気がします。

9章では開発の進め方について書かれています。
この章は開発者向けというよりはマネージャー向けといった印象を受けました。

10章では学び方と教え方だったのですが、
学び方といったところを書かれている書籍は少ないので
こういった章があるのはありがたいです。