その他:オススメ技術書・読むべき技術書

エンジニアとして成長していくためには現場での経験が一番大事です。
しかしエンジニアが技術書を読むべき重要性は以下の点にあるかと思います。

■ 信頼性の高い情報源
- 技術書は出版前に厳しいレビューを経ており、内容の正確性や信頼性が高い
- インターネット上の記事やフォーラムと比べて、情報が古い場合もありますが、基礎や概念は普遍的で役立つものが多い

■ 深い理解を得られる
- 技術書は著者の深い経験と知見に基づいて書かれており、表面的な内容ではなく、本質的な理解を得られる情報が多い
- 特にアルゴリズム、設計パターン、アーキテクチャのような深い知識が求められる分野では、技術書が役立つ

■ 基礎知識の習得と再確認
- 技術書は基礎から応用まで体系的に整理された情報を提供している
- Web記事やブログでは断片的な情報が多いですが、技術書は一貫性のある内容で基礎を固めるのに適している
- 既に知っていることでも、改めて読むことで理解が深まり、忘れていた知識を再確認できる


ソフトウェアアーキテクチャの基礎 ―エンジニアリングに基づく体系的アプローチ

ソフトウェアアーキテクチャとは、ソフトウェアシステムの成功に欠かせない重要な土台です。そのためソフトウェア開発者には、効果的なアーキテクチャを実現するスキルが求められます。本書は、そうした効果的なアーキテクチャを設計、構築、維持するアーキテクトになるために必要なスキルや知識を、現代的な視点から整理して包括的に解説する書籍です。 ソフトウェアアーキテクチャの定義から、アーキテクトの役割、モジュールや結合、アーキテクチャスタイルといったアーキテクチャ設計の基礎、チームやステークホルダーと効果的にコラボレーションしていくために必要なソフトスキルまで、さまざまなトピックについて実践的な例とともに説明します。

エリックエヴァンスのドメイン駆動設計

ソフトウェア開発コミュニティでは、ドメインモデリングがソフトウェア設計の中心であることが広く認められてきています。ドメインモデルを通して、ソフトウェア開発者は豊富な機能を表現し、それをユーザの要求に本当の意味で応えるソフトウェアの実装に移すことができます。しかし、明らかに重要であるにもかかわらず、効果的なドメインモデリングをどのようにソフトウェア開発プロセスに組み入れるかを説明する、実用的なリソースはほとんど存在しませんでした。ドメイン駆動設計はこの要求に応えるものです。これは具体的な技術についての本ではなく、読者にドメイン駆動設計への体系的なアプローチを提示するものです。設計のベストプラクティスの応用的なセット、経験に基づくテクニック、さらに、複雑なドメインに直面するソフトウェアプロジェクトにおける開発を容易にする基本原則を紹介する一冊です。

Docker実践ガイド 第2版 impress top gearシリーズ

本書では、技術者だけでなく、IT基盤の方向性の検討や戦略の立案、意思決定を行う立場の方が、導入前の検討を実践できる内容を盛り込みました。具体的には、コンテナの特徴、導入時の検討項目、注意点などのチェックリストを設け、システム構成例などを解説図にまとめ、要点を把握しやすいようにしました。また、大規模データセンター向けのコンテナ基盤構築の経験がない技術者でも、その基礎を理解できるよう、Dockerのインストール手順、使用法などを具体的に記載しています。
 また、今回出版される第2版では、新たに商用版Docker EEの検討項目、構築手順、使用法、セキュリティ管理手法の掲載に加え、Dockerを取り巻くエコシステムについて、2019年時点での最先端のトピックを取り上げました。内容の詳細は目次を参照していただきたいのですが、コンテナの連携を行うDocker Compose、クラスタ化を実現するDocker Swarm、コンテナ向けの仮想化基盤を構築するDocker Machine、GUI管理ツール、CRIUを使ったライブマイグレーション、コンテナ専用OSのCoreOSとRancher OS、コンテナ基盤におけるネットワーキング、周辺機器の使用例、インターネットに接続しない社内コンテナ環境の構築、そして、複数コンテナによるオーケストレーションを実現する人気のKubernetesなどの解説を網羅しています。

Webを支える技術 ―― HTTP,URI,HTML,そしてREST WEB+DB PRESS plus

Webは誕生から20年で爆発的な普及を果たし,17億人のユーザと2億台のサーバを抱える巨大システムへと成長しました。Webがここまで成功した秘密は,その設計思想,いわゆるアーキテクチャにあります。Webのアーキテクチャ,そしてHTTP,URI,HTMLといったWebを支える技術は,Webがどんなに巨大化しても対応できるように設計されていたのです。
私たちが作る個々のWebサービスも,Webのアーキテクチャにのっとることで成功へとつながります。Webのアーキテクチャに正しく適応したWebサービスは,情報が整理され,ユーザの使い勝手が向上し,ほかのサービスと連携しやすくなり,将来的な拡張性が確保されるからです。

Web API The Good Parts

Web APIの設計、開発、運用についての解説書。 APIは設計次第で使いづらいものになるだけではなく、公開後の保守運用も難しくなってしまいます。 そのためAPIを美しく設計することがとても重要です。 本書では「設計の美しいAPIは、使いやすい、変更しやすい、頑強である、恥ずかしくない」という考えのもと、 APIをどのように設計し運用すればより効果的なのか、ありがちな罠や落とし穴を避けるにはどういう点に気をつけなければいけないのかを明らかにします。 ターゲットは、URIにアクセスするとXMLやJSONなどのデータが返ってくるシンプルなタイプ――XML over HTTP方式やJSON over HTTP方式――のAPIです。

Good Code, Bad Code

「よいコード」と「悪いコード」の違いは、どこにあるのでしょうか。もちろん、どんな立場で、何を作るのかなどによって、その定義は変わってきます。  本書では、プロの「ソフトウェアエンジニア」として、堅牢で信頼性が⾼く、保守しやすく、チームメンバーが理解や適応しやすいコードを作成するための概念と実用的な⼿法を、Googleでテックリードを務める著者が解説しています。  本書では、まず「高品質なコードを書く」ために、次の4つのゴールを設定しています。