最近良かった技術書 - 2024/12
はじめに
- ソフトウェアエンジニア2年目
- その時々にやっていた業務や興味に応じて色々と本を読んでいました。
- ここ3ヶ月ぐらいで読んで良かった書籍を挙げていきます
良いコード/悪いコードで学ぶ設計入門
本書は,より成長させやすいコードの書き方と設計を学ぶ入門書です。
システム開発では,ソフトウェアの変更が難しくなる事態が頻発します。コードの可読性が低く調査に時間がかかる,コードの影響範囲が不明で変更すると動かなくなる,新機能を追加したいがどこに実装すればいいかわからない……。
変更しづらいコードは,成長できないコードです。ビジネスの進化への追随や,機能の改善が難しくなります。
成長できないコードの問題を,設計で解決します。
- 業務よりは趣味でやっているゲーム開発起因で選んだ本です。
- コンセプト策定から設計、実装までを一人でやらざるを得ないが、オレオレコードではメンテナンスや移植時に困りそうと感じたため読みました。
- コード例はJavaで書かれていますが、エッセンスは大部分がどんな言語でも適用できるよう抽象的に言語化されており、Unity(IDE内でC#を書く)での開発でも参考になりました。
- 同時に、早期return(if文の判定条件を逆転させ、ネストさせずに関数をすぐ抜ける書き方)すらも意識しないと実践できない己に辟易してもいます
イラストでそこそこわかるネットワークプロトコル
ITエンジニアの必須知識の1つ、ネットワークプロトコル全般についての解説書です。
クラウド化が加速する現代においても、通信の仕組みとセットであるネットワークプロトコルの知識はITエンジニアにとって欠かせません。
本書では目に見えないネットワークの世界を理解するために、多くの図解イラストを
用いて解説しています。
全てのネットワークプロトコルを扱うことはできませんが、EthernetやIPv4、IPv6、
TCP/IP、HTTP、HTTPSといった基本はもちろん、SSHやSNMP、SSL/TLSなど、
技術者なら知っておくべきものに絞って解説しています。
- 業務でネットワーク関連の知識が必要不可欠なので、意外と知らないままになっているであろう基礎的な事項をインプットするために選んだ本です。
- 名前の通りイラストが多い本なのですが、それらがちゃんとわかりやすく、ちゃんと理解を助けてくれます。
- SNMP・SSHなどのよく出てくるプロトコルについても頁数は少ないながら誤魔化していない解説で、同じような業務で混乱している人がいればぜひ薦めたい本です。
入門 監視
あなたのシステムはきちんと動いていると言えますか? 本書は、システムのどの部分をどのように監視すべきか、また監視をどのように改善していくべきかについて解説する書籍です。
前半で監視のベストプラクティス、デザインパターン/アンチパターンを示して、監視の基本原則を詳しく説明し、後半でフロントエンド、アプリケーション、サーバ、ネットワーク、セキュリティの各テーマで強力な監視の基盤を設計して実装するための方法を示します。
監視対象が変化し、システムアーキテクチャが進化する中で、従来から変わらない監視の基本を示しながら、時代に合った監視の実践を解説する本書は、監視についての理解を深めたいエンジニア必携の一冊です。日本語版では、松木雅幸(@songmu)氏による監視SaaSの導入や活用方法を付録として収録しています。
- 少し前にAWS上で監視→発報システムを作ったが、その当時はPMから追加要望のあった項目を実装していったに過ぎなかった
- 改めて監視とは何をすればいいのかを学ぶために選んだ本
- 「監視項目はビジネスKPIをもとに有用な項目を選定しよう(サービスが落ちてさえいなければページロード時間や検索実行時のレイテンシは巨大でいいの?)」といった原理原則が、平易かつ具体例を省いて書いてある
- 当たり前といえば当たり前の内容だが、CloudWatchで選択できるメトリクスがどれも重要に見えていて混乱していた自分には腹落ちの連続だった
- ただし、タイトルの「入門」はあくまでも「監視業務の」入門であって、完全なる初学者や新人が読んで理解できる箇所は非常に少ないのではないかと思います。
- 当たり前といえば当たり前の内容だが、CloudWatchで選択できるメトリクスがどれも重要に見えていて混乱していた自分には腹落ちの連続だった
エンジニアのための時間管理術
……筆者が言いたいのは、システム管理が仕事ではないということです。それはライフスタイルなのです。私たちのライフスタイルを私たちの言葉で述べ、私たちの問題を解決するタイムマネジメントの本が必要なのです。(「はじめに」より)
本書はシステム管理者、ネットワーク管理者を中心にしたエンジニアのための実践的な時間管理術を紹介する書籍です。著者が考案した「サイクルシステム」と呼ばれる方法を使って、作業リスト、スケジュール、さらに仕事とプライベート双方の長期的な目標を管理する方法を解説します。長期的に行うプロジェクトとすぐに行う必要がある割り込み作業の優先順位を整理し、ストレスの少ない、充実した一日を送ることを可能にすることでしょう。上司とのコミュニケーション、文書化の進め方、作業の自動化などシステム管理者が必要としているノウハウを紹介していることも特徴です。
- 時間管理にそこまで興味はなかったが、「エンジニアのための」と銘打ってあることに惹かれて「入門 監視」のついでに購入しました。
- 対象層は現在では、情シス的な仕事がメインの人(社内でのQ&Aやインフラ周りの庶務が業務にある程度含まれる人)かと思いますが、保守・開発・その他こまごましたタスクをマルチに進めていく必要がある人ならば、もちろんソフトウェアエンジニアにも役立つ本だと思います。
- 大部分の術は「1回しかやらないことは手順書を残すべき、何回もやることは外注するか自動化するべき」といった抽象度で記述されており、内容の古さもそこまで目立たなかったです。
- 個人的には、2006年第1版の本書最終章に「管理術で余った時間を社会的正義の推進に使おう」と書いてあることに感銘を受けました。これが 「社会人」 のあるべき姿だと思います。
おわりに
番外編 昨日買った本
初学者の定番ベストセラーが、最新状況に対応してオールカラーで登場!
さまざまな社内サーバー、公開サーバーの種類や役割、セキュリティ、障害から守る仕組み、運用、クラウド、仮想化、コンテナなど、これからサーバーにかかわる人が知っておきたい知識をこの一冊で丸ごと解説!
- 客先でハードウェアの故障もスコープに入れた調査をし、その後ログを持ち帰って解析していた際、基本的なサーバの構造について知識が足りないと思い購入しました。
- 普段は読書メーターに感想を書いていますが、技術書に絞って改めて振り返りを書くのが結構面白かったため、次回に上記の書籍の感想も書きたいと思います。
Discussion