配信予定・最新刊

作品一覧

  • 現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト
    NEW

    現場のGoプログラミング 実プロジェクトで役立つイディオムとテスト

    ビジネス・実用

    -
    全1巻4,510円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 保守やテストを容易にするGoの手法を学ぶ! 複雑な抽象化を捨て去り、 単純で堅牢なGoプログラムを構築できる! なじみのある他言語のクセから脱却 本書では、過度な抽象化を避け、保守やテストが容易になる慣用的(イディオム的)なGoコードの書き方を実践的に学ぶことができます。CLIツールやHTTPクライアント・サーバーの構築など、現実的なプロジェクトをサンプルとして取り上げます。 主な対象読者は、他言語を習得済みのプログラマーやGo言語への深い理解を求めるプログラマーですが、巻末の付録ではGo言語の基礎から並行処理までを解説しており、基本事項の速習&復習コースとして利用できます。 本書ではまず、Goの基本原則とイディオムを押さえつつ、実践的なテスト技法や最適化、CLIツールの構築方法を解説。続いて、依存性注入によるテスト容易性の向上、並行パイプラインを用いた同期APIの設計、HTTP処理の効率化へとステップアップします。終盤にかけては、パッケージとサービスの構成、ミドルウェアなどのコンポジションパターン、多態的なストレージ実装を明らかにしていきます。 本書は、基礎の確認から、段階的に高度な実践へと進むことで、単なる構文の習得にとどまらず、現場で真に役立つ「Goらしい」思考法と確かな設計力が自然と身につく一冊となっています。 ※本書は、『Go by Example: Programmer's guide to idiomatic and testable code』(Manning Publications)の翻訳書です。 ■本書の構成 第1章 Goの特徴と本書の目標 第2章 イディオムとテスト 第3章 テストカバレッジと最適化 第4章 コマンドラインインタフェース 第5章 依存性注入 第6章 並行処理のための同期API 第7章 応答性と効率の高いプログラム 第8章 パッケージとサービスの構成 第9章 コンポジションパターン 第10章 ポリモーフィックなストレージ 付録A モジュールとパッケージ 付録B 変数とポインタ 付録C 配列、スライス、マップ 付録D オブジェクト指向プログラミング 付録E 並行処理プログラミング 付録F 自己参照オプション 付録G Goプログラムのクロスコンパイル
  • Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策
    値引きあり

    Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策

    ビジネス・実用

    -
    全1巻1,980円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 100の失敗から学ぶ、 堅牢で効率的なJavaコーディングの鉄則。 Java静的解析エキスパートが見てきた失敗をもとに 現場で役立つ実践知を解説! 本書は、Javaの神様と呼ばれる名著者Joshua Blochや開発者たちが評価し、本棚に置くべき一冊と推す、Java開発本の決定版です。 開発現場でJavaコードと向き合う中、些細なミスが引き起こす深刻なバグが発生すれば、時間と労力を浪費することになるでしょう。 そこで本書は、初級者からプロフェッショナルまでのすべての開発者が「犯しがちな、繰り返し起こり得るミス」に焦点を当てています。それらのミスを事前に回避して時間と労力を無駄にしない具体的なアドバイスを提供する実践的な指南集となっています。 静的解析ツールを活用して、常に優れたJavaコードを提供できるようにする方法、防御的コーディングによってコードをクリーンに保つ方法に加えて、独自のバグ対策プラグインの作成方法なども示します。 著者は、IntelliJ IDEAの開発元JetBrains社のテクニカルリードであり、Javaバイトコードの静的解析ツールの開発にも貢献するなど、静的解析の分野で10年の経験を持つ専門家です。 本書は、実際の現場で遭遇したコードから厳選した100項目の落とし穴をカバーしています。他者の失敗から学ぶことで、「真の現場力」を養うことができます。 ※本書は『100 Java Mistakes and How to Avoid Them』(Manning Publications)の翻訳書です。 ■本書の構成 第1章 コード品質の管理 第2章 式 第3章 プログラム構造 第4章 数値 第5章 代表的な例外 第6章 文字列 第7章 オブジェクトの比較 第8章 コレクションとマップ 第9章 その他のライブラリメソッド 第10章 単体テスト 付録A 静的解析用アノテーション 付録B 静的解析ツールの拡張
  • Go言語で学ぶ並行プログラミング 他言語にも適用できる原則とベストプラクティス

    Go言語で学ぶ並行プログラミング 他言語にも適用できる原則とベストプラクティス

    ビジネス・実用

    4.7
    1巻3,850円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Go言語の並行処理機能なら、直感的で把握しやすい! 複雑なテーマも多数の図と例でよりわかりやすく段階的に解説。 並行処理の原理とベストプラクティスを習得できる。 より高速なプログラムが書きたい開発者に最適の書。 並行処理を導入することで、多数のアプリケーションの パフォーマンスと応答性を向上させることができます。 【本書を読めば、次のことを理解・実践できるようになります】 ----- ◆反応性が高く高性能でスケーラブルなソフトウェアを作成できるようになる ◆並行処理の利点・制限・特性を理解できるようになる ◆メモリ共有とメッセージパッシングを区別できるようになる ◆ゴルーチン、ミューテックス、リーダー/ライターロック、ウェイトグループ、 チャネル、条件変数を利用できるようになる ◆並行処理で注意すべき典型的なエラーを特定できるようになる ◆より高度なマルチスレッディングでプログラミングのスキルアップが図れる ----- 本書では、Goの構文と機能を説明することに焦点を当てているわけではなく、 Go言語を使って並行処理の原則と技術を解説しています。 これらの技術のほとんどは他の言語にも適用することができます。 ※ 本書は『Learn Concurrent Programming with Go』(Manning Publications)の翻訳書です。 ※ 本書では何らかのプログラミング言語の使用経験があることを前提としています(Go言語かC言語系の使用経験があれば本書の理想的な読者です)。
  • Web API設計実践入門──API仕様ファーストによるテスト駆動開発

    Web API設計実践入門──API仕様ファーストによるテスト駆動開発

    ビジネス・実用

    3.5
    1巻2,860円 (税込)
    ◆長年のソフトウェア開発経験が生み出した新提案◆ 本書は、著者が約30年間経験してきたAPI仕様の作成、20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり、一般的なソフトウェア開発者が習得することが容易ではない事柄を、本書を通して学び、実践してもらうことを目的としています。 本書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の実現に必要なものであり、また、API仕様ファースト開発を実現するにはテスト駆動開発が必要です。API仕様ファースト開発とテスト駆動開発は、いわば車の両輪のような関係にあります。 ソフトウェアテストの変遷とWebサービスにおけるAPI仕様の関連を説明したうえで、API仕様とはどうあるべきか、API仕様に何を書くべきかについて説明します。具体例としてはgRPCを取り上げます。第4章で紹介するAPI仕様ファースト開発という開発プロセスは、筆者が日々実践していることですが、多くのソフトウェアエンジニアが実践できていないことです。そのために必要なE2Eテストフレームワーク、さらには、API仕様がきちんと書かれていないために生まれる技術負債の返済方法なども紹介します。 ■目次 ●第1章 ソフトウェアテストの変遷   1.1 1990年代までと2000年代のソフトウェアテスト   1.2 フィードバックループを短くする   1.3 ビッグバンインテグレーションから継続的インテグレーションへ   1.4 まとめ ●第2章 API仕様   2.1 APIとは   2.2 優れたAPI仕様とは   2.3 API仕様でよくある問題点   2.4 API仕様に書くべきこと   2.5 API仕様とE2Eテスト   2.6 まとめ ●第3章 gRPCにおけるAPI仕様の書き方   3.1 gRPCとは   3.2 API仕様をどこに書くか   3.3 サービスの概要の説明   3.4 個々のエンドポイント(RPC)の説明   3.5 エラーの説明   3.6 リストオプションの説明   3.7 まとめ ●第4章 API仕様ファースト開発   4.1 開発順序   4.2 不具合の修正順序   4.3 既存のエンドポイントの修正と新たなエンドポイントの追加   4.4 API仕様のエンドポイントを呼び出すE2Eテストの利点   4.5 まとめ ●第5章 E2Eテストフレームワークの構築   5.1 テストフレームワークの基本的な考え方   5.2 マイクロサービス構成でのテストフレームワーク   5.3 非マイクロサービス構成でのテストフレームワーク   5.4 E2Eテストフレームワークの骨格   5.5 まとめ ●第6章 API仕様の技術的負債の返済   6.1 APIの技術的負債とは   6.2 API仕様の負債の返済   6.3 返済順序のまとめ   6.4 E2Eテストのもう1つの利点:リファクタリング   6.5 E2Eテストと単体テスト   6.6 API仕様ファースト開発が定着した組織   6.7 まとめ ●第7章 Go言語によるE2Eテストフレームワークの実装   7.1 E2Eテストの基本的な流れ   7.2 courierライブラリの構成とインストール   7.3 サンプルサービスの構成と定義   7.4 E2Eテストコードの例   7.5 E2Eテストフレームワークの流れ   7.6 フェイクサービスの構築   7.7 テスト実行までの流れとテストコードの実装   7.8 テストの並列化サポート   7.9 ほかのテスト関数の例   7.10 テスト関数に合格するサーバ実装   7.11 外部サービスのフェイクサービス   7.12 E2Eテストでのデータの準備   7.13 ステージング環境や本番環境に対するE2Eテスト   7.14 まとめ ●付録A:Goのテストの並列化 ●付録B:長時間夜間ランニングテスト ●付録C:防御的プログラミング ■著者プロフィール 柴田芳樹:九州工業大学および大学院で情報工学を専攻。1984年4月に富士ゼロックスに就職し、その後さまざまな会社でソフトウェア開発に従事。2024年4月より個人事業主として活動。2018年6月に、メルペイ(メルカリ子会社)でWebサービスのバックエンドサービス開発に従事してからは、「API仕様ファースト開発」によるGoおよびTypeScriptを用いたバックエンドサービス開発に従事している。著書に『プログラマー“まだまだ”現役続行』(2010年、技術評論社)ほか多数。
  • Go言語 100Tips ありがちなミスを把握し、実装を最適化する
    値引きあり

    Go言語 100Tips ありがちなミスを把握し、実装を最適化する

    ビジネス・実用

    4.0
    1巻1,980円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Goプログラミングにありがちな間違いを網羅的に解説! 間違いに対処しておくことで、開発生産性とコード品質を高めよう。 本書では、Goアプリケーションによくある100の間違いを取り上げ、 その例を検証し、その背景にある事柄を掘り下げていきます。 さらに、間違いを回避するためのヒント、テクニックを紹介し、 実際の現場で間違いを回避できるようにします。 本書で取り上げる間違いは、バグ、不必要な複雑さ、可読性の低下、 最適ではない/慣用的ではないソフトウェア構成、APIの利便性の欠如、 最適化されていないコード、生産性の欠如です。 Go言語の文法のほか、エラー管理、並行処理、標準ライブラリ、テスト、最適化など さまざまなカテゴリーにおける間違いを見ていきます。 【推薦の言葉】 Go開発者が製品環境でコードに触れる前に必ず読むべき本。 『Effective Java』に相当するGoの本です―Neeraj Shah, Nutanix わかりやすく、効果的な例題。間違いがどのようになぜ起こるのかを理解することで、 手痛い間違いを避けられます―Giuseppe Maxia, VMware 【章構成】 第1章 Go言語―学ぶのは容易、習得は難しい 第2章 コードとプロジェクト構成 第3章 データ型 第4章 制御構造 第5章 文字列 第6章 関数とメソッド 第7章 エラー管理 第8章 並行処理:基本編 第9章 並行処理:実践編 第10章 標準ライブラリ 第11章 テスト 第12章 最適化 ◎本書を読むにはGo言語の構文について理解している必要があります。 ◎本書は『100 Go Mistakes and How to Avoid Them』の翻訳書です。
  • プログラマー”まだまだ”現役続行

    プログラマー”まだまだ”現役続行

    ビジネス・実用

    4.3
    1巻1,848円 (税込)
    ※本書は2009年に発行された書籍の電子版になります。 【管理職にならなくたっていい。】 「35歳定年説」が常識としてまかり通っている事実が示すように、我が国ではプログラミングは「若く、給料の安い人がやる仕事」とされている。しかし、世界の常識はそうではなく、40代、50代でも現役としてプログラミングを続けている技術者も少なくない。50代の現在もなお現役プログラマーとして活躍する著者が、生涯プログラマーとして活躍するための心得を説く。 ■こんな方におすすめ ・これからプログラマーになろうと考えている大学生 ・プログラマーに転職しようと考えている人 ・プログラマーになりたての人 ・プログラマーとして楽しく仕事をしていきたい人 ■目次 第1章 ソフトウェアは「人」が作る 第2章 プログラマー現役続行 第3章 論理思考力:現役続行に必要な七つの力(1) 第4章 読みやすいコードを書く力:現役続行に必要な七つの力(2) 第5章 コンピュータサイエンスの基礎力:現役続行に必要な七つの力(3) 第6章 継続学習力:現役続行に必要な七つの力(4) 第7章 朝型力:現役続行に必要な七つの力(5) 第8章 コミュニケーション力:現役続行に必要な七つの力(6) 第9章 英語力:現役続行に必要な七つの力(7) 第10章 コードレビューのすすめ 第11章 若い人たちへ 第12章 30代、40代の人たちへ ■著者プロフィール 柴田芳樹:1959 年生。九州工業大学および大学院で情報工学を専攻し、以来、ソフトウェア開発に従事する。翻訳書に『プログラミング言語Java 第4版』『Effective Java 第2版』『Java Puzzlers 罠、落とし穴、コーナーケース』『Google Web Toolkit ソリューション』(いずれもピアソン・エデュケーション)『アプレンティスシップ・パターン』(オライリー・ジャパン)、著書に『Java 2 Standard Edition 5.0Tiger』(ピアソン・エデュケーション)『ソフトウェア開発の名著を読む【第2版】』がある。
  • ソフトウェア開発の名著を読む【第二版】

    ソフトウェア開発の名著を読む【第二版】

    ビジネス・実用

    -
    1巻1,628円 (税込)
    ※本書は2009年に発行された書籍の電子版になります。 【壁を乗り越える力を名著で身につけよう!】 コンピュータが人類の歴史に登場して以来、その進化のスピードは一向に衰えることなく、21世紀の現在ではさらに加速している。その一方で、ソフトウェアは「人」が開発するという事実は不変であり、この真実をとらえた書籍は時の経過にもけっして色褪せることがない。コンピュータ産業の歴史に多大な影響を与えてきた不朽の名著から、ソフトウェア開発の「本質」を読み解く。初版の内容に新たに2冊の名著を加え、全10冊を紹介する充実の第二版。 ■こんな方におすすめ ・これからSEになろうと考えている大学生 ・SEに転職しようと考えている人 ・SEになりたての人 ・SEとして楽しく仕事をしていきたい人 ■目次 第一部 ソフトウェアは「人」がつくる ●『プログラミングの心理学』ジェラルド・M・ワインバーグ   ソフトウェア開発の人間的側面に初めて正面から取り組んだ、ワインバーグの古典的作品 ●『人月の神話』フレデリック・P・ブルックス,Jr.   見積もりとスケジューリングの単位としての「人月」の危険性を指摘した不朽の名著 ●『ピープルウエア』トム・デマルコ/ティモシー・リスター   ソフトウェア開発における人間的側面を重視し、人間中心に考えることの大切さを説く ●『デッドライン』トム・デマルコ   人間中心のプロジェクト管理について、デマルコが小説形式で表現した異色の作品 第二部 実践する開発者 ●『ソフトウェア職人気質』ピート・マクブリーン   ソフトウェア開発を「工学」ととらえることをやめて、「職人気質」という基本へ回帰せよと提唱する ●『達人プログラマー』アンドリュー・ハント/デビッド・トーマス   「割れ窓理論」「DRY原則」など、実践的なプログラマーとなるためのアドバイスを網羅 第三部 読みやすいコードを書く ●『コードコンプリート』スティーブ・マコネル   より優れたコードを書くためのガイドラインを提供する、プログラマー必読の書 ●『プログラミング作法』ブライアン・W・カーニハン/ロブ・パイク   プログラマーにとって基本的かつ不可欠な事項が述べられているが、すべてマスターしている人は意外に少ない ●『リファクタリング』マーチン・ファウラー   今ではソフトウェアエンジニアの常識となったリファクタリングを提唱する、ファウラーの代表作 ●『ビューティフルコード』ブライアン・カーニハン他   「美しいコード」について、33名の著名なプログラマーがそれぞれの想いを語る超大作 ■著者プロフィール 柴田芳樹(しばた・よしき):1959年生。九州工業大学および大学院で情報工学を専攻し、以来、ソフトウェア開発に従事する。翻訳書に『プログラミング言語Java 第4 版』『Effective Java 第2 版』『Java Puzzlers 罠、落とし穴、コーナーケース』『Google Web Toolkit ソリューション』、著書に『Java 2 Standard Edition 5.0 Tiger』(いずれもピアソン・エデュケーション)、『プログラマー現役続行』(技術評論社)。
  • スーパーユーザーなら知っておくべきLinuxシステムの仕組み
    値引きあり

    スーパーユーザーなら知っておくべきLinuxシステムの仕組み

    ビジネス・実用

    4.5
    1巻1,980円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Linuxの動作・構成・設定とその関係が理解できる! 各テーマについて背景・理論・実例を解説。<英語版はのべ5万部超のベストセラー! Linuxで実践したいことができるように内部動作を把握しよう> 取り上げる主なテーマは、システムの全体像、コマンドとディレクトリ、ディスクとファイルシステム、デバイス、カーネルやシステムの起動、プロセスと資源、ネットワークと設定、ファイル転送と共有、ユーザー環境、開発ツール・コンパイル、仮想化など。【本書「まえがき」より】この本の章を三つの基本部分にグループ分けすると、最初は入門であり、Linuxシステムの全体像を示して、Linuxを使っていく上で必要なツールを用いたハンズオン(具体的手法)を提供しています。次に、デバイス管理からネットワーク設定、そして、システム起動時の一般的な順序といったシステムの各部分の詳細を説明します。最後に、動作中のシステムを見て、基本的なスキルを学び、さらに、プログラマが使うツールについて学びます。【推薦の言葉】Linuxに興味があるのなら必読の書籍です――『LinuxInsider』。Linuxアーキテクチャのあらゆる角度から多くの情報を提供しています――『Everyday Linux User』。詳細に深入りせずに、内部で何が行われるかについて必要な理解を得られます。この本は、Linuxの書籍の中でもとても新鮮で、全面的に推薦します――Phil Bull、『Ubuntu Made Easy』の共著者、Ubuntuドキュメンテーションチーム。Linuxに基づくオペレーティングシステムの透明な深みへ飛び込んで、すべてがどのようにつなぎ合わされているのかを示しています――『DistroWatch』。必要不可欠な書籍として書棚に置かれることでしょう――『MagPiマガジン』
  • 新世代Javaプログラミングガイド[Java SE 10/11/12/13と言語拡張プロジェクト]

    新世代Javaプログラミングガイド[Java SE 10/11/12/13と言語拡張プロジェクト]

    ビジネス・実用

    -
    1巻2,860円 (税込)
    ※この商品はタブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字だけを拡大することや、文字列のハイライト、検索、辞書の参照、引用などの機能が使用できません。 Javaのテクニックをアップグレードしよう! バージョン10から最新版まで さまざまなアップデートを一挙に学べる! Java SE 10以降では、年2回のバージョンアップサイクルとなっています。 そのうちバージョン11は、長期サポート版としてリリースされました。 本書では「Java SE 10~13の新機能」と「開発中の機能」を取り上げています。 取り上げるテーマは、以下のとおりです。 型推論、アプリケーション・クラスデータ共有、 ガベージコレクタ、ラムダ式、ラムダパラメータ、enum、 データクラス、テキストブロック、パターンマッチング、など 機能の内容だけでなく、背景、使い方、ユースケースも適宜、説明しています。 本書は、機能拡張のサイクルを加速させるJava SEのアップデートを確認したい 読者にとって、最適な一冊です。
  • Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング

    Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング

    ビジネス・実用

    4.3
    1巻2,970円 (税込)
    ◆ラムダ/ストリーム/並行機能などを説明 ◆理解を深めるための問題を掲載 ◆Java 7で追加された機能も学べる >>> 本書は、従来のJavaを知っているプログラマーを対象にしており、Javaの初歩には触れていません。Java 8の数多くの新機能を中心に解説するほか、Java 7で追加された機能も説明しています。Java 8では、ラムダ式やコレクションをはじめ、プログラミング言語やライブラリの機能が大幅に追加・更新されています。本書により、Javaの新機能を楽しみ、Javaプログラマーとしてさらなる高みに踏み込んでいきましょう。※本書は『Java SE 8 for the Really Impatient』の翻訳書です。

ユーザーレビュー

  • Go言語で学ぶ並行プログラミング 他言語にも適用できる原則とベストプラクティス

    Posted by ブクログ

    テーマが難しいけど、それでもわかりやすいと思う
    デッドロック回避あたりから白目なので、完全な理解は諦めて脳内インデックス貼るに留める

    0
    2026年07月25日
  • Go言語で学ぶ並行プログラミング 他言語にも適用できる原則とベストプラクティス

    Posted by ブクログ

    本書は、Goの並行処理を「概念→実装→パターン→落とし穴」の流れで系統立てて掴める良書という印象でした。序盤はCSP思想やアムダール/グスタフソンの法則を押さえ、なぜGoがゴルーチンとチャネルを中核に据えるのかを腹落ちさせます。続く章で、OS/ユーザースレッドとM:Nスケジューリング、LRQ/GRQやワークスティーリングまで踏み込むため、ブラックボックスだった実行時の挙動が見える化され、設計判断の根拠が増えます。共有メモリの競合・ハイゼンバグから出発して、Mutex/RWMutex、Cond、セマフォ、WaitGroup/バリアと段階的に同期原語を学び、目的別にどう使い分けるべきかが明瞭です。チャネルとselectは、クローズ、方向制限、バッファ、タイムアウト、nilチャネルなど実務で必要な作法が網羅され、CSPパターン(パイプライン、ファンイン/アウト、quitチャネル、ブロードキャスト)も具体的です。さらに、分解戦略やワーカープール、フォーク/ジョイン、パイプライン最適化といったパフォーマンス志向の視点が実装に橋を架けます。デッドロックはCoffmanの4条件、RAG、銀行家のアルゴリズムまで扱い、チャネルでも循環待ちが起こるという“Goならでは”の注意点を明示。終盤のアトミックやスピンロック、Mutex内部のセマフォ実装への言及は、低レイヤの理解を補強し、いたずらな最適化や誤用を戒めます。総じて、基礎理論からランタイム、言語機能、設計パターン、アンチパターンまで縦断的に学べるため、Goで並行処理を本気で身につけたい読者に強く勧められる内容です。実装時の指針が増え、トレードオフを自分で評価する力が確実に養われます。

    0
    2025年10月06日
  • スーパーユーザーなら知っておくべきLinuxシステムの仕組み

    Posted by ブクログ

    # 1周目 読み終えた 2022-12-25
    Linuxの世界に完全に移り住んでから結構経つ。特に意識してLinuxを使うためのトレーニングをしてきたことはなく、まとまって取り組むのは今回が初めてだった。なんとなく使えてるからまあいいか、みたいな感じで使ってきていた。改めて気づいたことは、偏りがあるということ。主にプログラミング環境として共にしてきたため、システム管理やカーネルに近いところといった部分へのスキル配分ができてなかった。各章で話題が変わるごとに、やたら難しく感じたり、そうでもなかったりした。そうした偏りに気づいたことはなかなかの収穫だった。難しく感じたところに少しスキルポイントを配分していって、偏りを修正していこうと思う。この本は平均的なバランスの取れたLinuxユーザーになるための評価基準として活用できそうだ。


    ## 全体的な感想
    情報が新しい。最新のディストリビューションで実験しながら読み進めても一致しないところがなかった。加えて、古くなったもの、古くなりつつあるものにも言及がある。

    一度で理解するには詳細過ぎるところがある。初心者向けの装いをしている割に、かなり奥深くまで踏み込んでいる。軽い気持ちで手に取るとしっぺ返しを食らう。

    緩急が激しい。読者の背景にもよるが、詳細すぎて難しい章から妙に基礎的に見える章までばらつきがある。カーネルに近いところやsystemdが絡むシステムの管理を扱う3章から8章までが難解に感じた。特にデバイスというタイトルの3章は全く理解できなかった。他の章は平均的な難易度だった。


    ## 5章の残りを読んだ
    §5.4 ブートローダ から。Grubの設定、インストール、その仕組み。ちゃんとした解説を読むのは初めて。分かりやすかった。まだUEFIでの仕組みの理解は怪しい。セキュアブートについて少し書かれていた。最近PCを新調して、セキュアブートに引っかかってOSがインストールできない事態になった。オフにすればよかったのだけど、してもいいのかどうか判断がつかず、いくつか試して、Ubuntu 22.10が成功したのでそのまま使っている。その前のPCではデフォルトでオフになっていたため問題に気が付かなかった。また、BIOSはShift、UEFIはEscを長押しするとGrubのメニューに入れる、ということを知った。OSを選択できなくなるのが不便なのでタイムアウトを0にしていなかったけど、0でも問題なさそうだ。


    ## 3章の残りを読んだ
    §3.5.2 udevd
    §3.6 詳細:SCSIとLinuxカーネル

    全く意味がわからない。何の話をしているかさえわからない。この3章がこの本の中で一番とっつきにくく、難しく感じた。デバイスドライバをかじったことがないと理解できないのではないだろうか。2章からの落差がすごい。


    ## 17章を読んだ ➤ 仮想化技術
    システム仮想マシンとコンテナ。システム仮想マシンとはVirtualBoxのような形態の仮想化のことを指している。QEMU/KVMやVirtualBoxには何度もお世話になってきて、ちゃんとした訓練をしたわけではないけど、特に不便もなく使ってきていた。書いてあることも素直に読める内容だった。コンテナの代表格はもちろんDockerになる。
    ちょっと触ったことある程度で、いい加減ちゃんと使い方を覚えないといけないとは思っていた。習熟度の違いからか、なかなか理解が難しいところがあった。どうも、この本全体を通してそのような傾向がある。つまり、普段から接している領域のトピックはあまり苦労せずに理解できて、そうではないところはなかなか難しい。内容そのものに難易度のばらつきがあるためかと思っていたけど、そうではなく、実は割と均一で、読み手の方の経験に左右されているのではないかと思い始めた。この本を通して理解がしやすかったとか難しかったとかの感触から、どの程度通っているかの指標になる。もし、15章とかの内容の難易度が基準であったとするなら、この本自体がかなり基本的なところの内容ということになる。どの章に置いても理解できる程度にまではなっていなければならない基礎知識だとみなしたほうがいい。この章のコンテナについても、Dockerでしばらく遊んだあとに読み直せば、また全然違った印象になるだろうと思う。


    ## 16章を読んだ ➤ Cソースコードからのソフトウェアのコンパイル
    autoconfがメイン。何度も使ってきたconfigureスクリプトがautoconfでパッケージ化されたものだということすら知らなかった。もっと詳しくなるには自分でautoconfを利用してみる必要もありそうだ。ただ、CMakeの方がはるかに使いやすいので、わざわざautoconfを採用するちょっと動機が弱い。自身のソフトウェアを配布するために利用するよりも、広く使われている優れた既存のソフトウェアを理解するために習得しておくことが主な目的となりそうだ。


    ## 15章を読んだ ➤ 開発ツール
    最も馴染み深い内容だった。概要と注意点をまとめたもの。最初にプログラミングの経験は必要ないと書かれていたけど、本当に経験がない人が読んでもなかなか厳しいものがあるように思う。ちょうど自分が3章、6章あたりで感じたような、一体何の話をしているのだろうという感じになりそうに思える。それでも、プログラミングを完全に避けてLinuxを使い続けるのは困難なので、欠かすことのできない章だ。


    ## 14章を読んだ ➤ Linuxデスクトップと印刷の概要
    この本の良いところの一つは情報が新しいところ。XとWaylandが混在している現状がちゃんと反映されていて、実用的だ。D-BusとかWaylandって何なのという疑問が少し解消された。Xの細かなユーティリティが紹介されていて、知らないものもあった。


    ## 13章を読んだ ➤ ユーザー環境
    かなり短い章だった。主にスタートアップファイルの話。LD_LIBRARY_PATHを設定してはいけないとある。やってしまっていたので見直そう。大体デフォルトのままで、必要になったらその場しのぎの設定を追加するという典型的な未熟者の使い方をずっと続けてきた。こういうのはよくない、やたらめったらPATHを変更したりするべきではないとある。理想的なスタートアップファイルを構成するのはなかなか難しい。


    ## 12章を読んだ ➤ ネットワークでのファイル転送と共有
    rsyncは用途が広いので、積極的に使ってマスターしておくのが良い。選択肢は色々あるけど、ファイル共有という目的だけなら、SSHFSだけで事足りそうだ。


    ## 11章を読んだ ➤ シェルスクリプトの概要
    一気に難易度が下がった。新たな発見もいくつかあった。例えば LANG=C man man のようなコマンドが、サブシェルの記法を簡略化した構文だということ。基本は大体は身についているものとみなしても良いのかも。というのは浅はかかもしれない。
    タイトルは概要となっているので、まだまだ学ぶことはありそうだ。例えば、awkやsedを使うシーンは結構あるのに、まだちゃんとやったことがない。


    ## 10章を読んだ ➤ ネットワークのアプリケーションとサービス
    やっと水面下から抜け出して、地上に戻ってきた感じがする。もうここからはさほど苦労しなくても読み進められそうだ。と思っていたところ、SSHの暗号化の仕組みで混乱した。セキュリティの話題などもあって、特に興味が湧いた。ネットワークのプログラミングもやりたい。


    ## 9章を読んだ ➤ ネットワークとその設定の理解
    身近なところであるのと、関心があるためか、意識を途切れさせずに読み進めることができた。今まで読んだことのあるネットワークの解説の中では、最良の部類に入るものだった。少しでも予備知識があれば、過剰なまでに詳細であってもプラスに働くようだ。3章以降がやたら難解に感じられたのは、まだそれを読み解くだけの予備知識を持っていないからだと分かった。もし準備ができていれば、この章と同じくらいの収穫を得られたのではないかと思える。


    ## 8章を読んだ ➤ プロセスと資源利用の詳細
    topを始めとした監視のためのツールの詳解から始まる。

    top
    lsof
    strace
    ltrace
    ps m
    top -p pid
    time
    renice
    uptime
    psでページフォルトの情報を得る: ps -o pid,min_flt,maj_flt pid
    vmstat
    iostat
    iotop

    最後はcgroupで締める。実際にどうやって活用するのかイメージできず、よく分からなかった。それを除けば比較的わかりやすい章だった。


    ## 7章を読んだ ➤ システム設定:ロギング、システム時間、バッチジョブ、ユーザー
    この章は比較的わかりやすく、置いてきぼりになることはなかった。それでも、§7.9のユーザーアクセスの話題以降は難しかった。そこは高度な話題になるからスキップしてもいいと警告があったので、初見で理解できなくても仕方ない。

    journalctlはシステムに問題が起こったとき、問題の特定と解決のための強力なツールになる。このツールの存在を知れたことが、今のところ最も実利用に即した情報だったように思う。


    ## 6章を読んだ ➤ ユーザー空間の開始の仕組み
    主にsystemdの仕組み。もともと難しい上に、詳細すぎてついていけない。欲を言えば、いきなり最深部に飛び込むのではなく、まず表面をざっと解説してから中に入っていく流れにして欲しい。System V initは直感的で分かりやすい。この本は見た目に反して全く初心者向けではないと思い始めた。


    ## 5章 途中まで読んだ ➤ Linuxカーネルの起動の仕組み
    §5.3まで読んだ。§5.4からブートローダーの話になるが、遠慮なく6章に進めばいいと書いてあるのでそうする。


    ## 4章を読んだ ➤ ディスクとファイルシステム
    良かった、3章みたいについていくのがやっとというような展開ではなかった。ちゃんと順を追ってわかりやすく進めてくれている。実際にfdiskやpartedディスクをいじくり回すことで、内容が正しいことを体感できる。3章がよく分からなかったのは、デバイスに関する知識がかけていたせいだったのだろう。ずっとその状態が続くのかという不安は解消された。…と思ったけど、LVMのところでちょくちょく理解できないところがあった。§4.6は、初めて読む場合は先に次の章を読むようにと書かれていたけど一応読んでみたらやはり理解できな部分があった。


    ## 3章の途中まで読んだ ➤ デバイス
    何か言っているのはわかるのだけど、なぜその話をしているのかすら見えてこない。実際に手を動かしてみると、書いてあることと一致する結果が得られるので、何かしら分かったような感触は得られる。なんとかそれでごまかしながら読み進めた。

    §3.5.2で、次の章を読んでから戻ってくることを進められているのでそれに従って次に進むことにした。


    ## 2章を読んだ ➤ 基本コマンドとディレクトリ階層
    コンパクトにまとまっていてなかなか良い感じ。必要最小限に抑えられている。標準的なガイドで、特に変わったことはなかった。


    ## 1章を読んだ ➤ Linuxシステムの全体像
    情報の密度が高い。ぎちぎちに詰め込んである。まえがきで言っていたLinuxの経験があまりない人、例えば、GUIしか使ったことがなく、lsを一度も叩いたことのないような人でも理解できるのかどうか、はなはだ疑問だ。逆に、ここをすんなり飲み込めるようであれば、幸先の良いスタートを切れたと言える。


    ## まえがきを読んだ
    4章まで読んであったけど、時間が空いてしまって覚えていないので、最初から読み直すことにした。この本を読むのにプログラマである必要はなく、基本的なスキルすら必要としないと書かれている。GUIでファイルやフォルダが何であるか分かっているくらいで十分とのこと。以前読んだときはそれほど簡単な内容に思えなかった記憶がある。

    0
    2026年04月08日
  • Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング

    購入済み

    最新の話題

    Javaがハードウェアの多様化に対応していこうという大きな流れの中心的な話題と、いくつかの最新の話題について、踏み込んだ記述がされているようです。

    0
    2017年04月23日
  • プログラマー”まだまだ”現役続行

    Posted by ブクログ

    50代の現役プログラマーの柴田さん.
    Java界隈では上級者向けのEffective Javaの翻訳を手がけていたりする専門家です.

    ご自身の経験から新しい知識を継続して学習する重要性をメインテーマに語られています.
    管理職となられた後もご自身が習慣として身につけて来られた内容を元に語られており,誇張しないことに好感が持てます.
    コードとテスト駆動開発や,レビューの重要性とソフトウェアの根源の部分を重視した内容は特に興味深いです.

    0
    2017年07月30日

新規会員限定 70%OFFクーポン 今すぐGET