2021年12月17日

slug
2021-12-17
date
Dec 17, 2021
summary
Googleのソフトウェアエンジニアリング
status
Published
tags
プログラミング
音楽
type
Post
Property
 
ビートモクソモネェカラキキナを初めて聞いたときの衝撃に近い。
 
オライリー本を形式Kindle app(Mac, iPad)で読む方法
この記事では、epubとpdfをKindle app(Mac, iPad)で読めるようにする方法を書いていきます。 各端末にKindle appがインストールされていることが前提です。 この記事では、Send to Kindleの方法は使用しません。最大50MBまで送信が可能ですが、Gmailを使用している場合は25MBまでしかファイル添付できないことと、仮に送れるようにするにしても手間が多いためです。 オライリージャパンではkindle版の発売がほぼ無く、代わりにオライリージャパンで電子書籍版を購入することができます。 購入すると、epubとpdfの形式でダウンロードすることができます。 Send to Kindleで受け付けている形式でepubがないことから、epub を Kindle app で読めるようにするためには、Kindle 形式にする必要があります。 ここでは、mobiファイルを用意します。 kindle previewerでepubをmobiへ変換する [本を開く]でepubファイルを選択 > ファイル > エクスポート > ファイル形式で[本(.mobi)]を選択し、任意の場所に保存します。 Kindle for Macでは、app内でダウンロードしたkindle書籍は、以下のディレクトリに保存されます。 $ ls -la ~/Library/Application\ Support/Kindle/My\ Kindle\ Content/ このディレクトリに先ほどダウンロードした***.mobi をコピーします。 $ cp /path/to/***.mobi ~/Library/Application\ Support/Kindle/My\ Kindle\ Content/ この状態で、Kindle for Macを落として、再起動させると、~/Library/Application\ Support/Kindle/My\ Kindle\ Content/にコピーした ***.mobiファイルを初期化して、ディレクトリが作成されます。 これで、Kindle for Macから[ダウンロード済み]を見ると、購入した電子書籍が読めるようになります。 Kindle for iPadでは、Finder経由でKindle for iPadに直接***.mobi ファイルをコピーします。 MacとiPadをケーブルで直接接続します。 Finderを開き、iPad > ファイル > Kindle を選択します。 すると、ファイルをドラッグアンドドロップできるので、***.mobiファイルをドラッグアンドドロップします。 この状態でKindle for iPadを再起動させると、LIBRARY > DOWNLOADED から購入した電子書籍が読めるようになります。 自分がオライリージャパンで買った本の中では、必ずepubとpdfは必ずダウンロードできるのですが、技術書典などで購入した本はpdfのみ配布されていることが多いです。 pdfからepub, mobi形式に変換してKindle appで読むことも可能ですが、pdf変換の際に日本語対応されておらず日本後が抜けていたり、mobi形式に変換してもメモができなかったりして、変換による情報の抜けや操作性が失われる可能性があるので、pdfのみしかファイルがない場合はそのままpdfで読むことにしています。 ライブラリ一覧画面で、ファイル > pdfをインポート で読めるようになります。 mobi形式と同じやり方で読めるようになります。
オライリー本を形式Kindle app(Mac, iPad)で読む方法
epub → mobi 形式に変換することでオライリーの電子書籍を iPad で読めるらしい。
Mac → iPad への転送方法は、こちらのメールを使う方法で行った。(正規ルート)
 
Googleのソフトウェアエンジニアリング、実践ソフトウェアエンジニアリング第9版の関係 - MassKaneko.Out
両者のソフトウェアエンジニアリングの定義は大体似ている。「規律」が共通点。規律でありながら適用が厳格でないと述べている点も一緒。「時間で積分したプログラミング」が SEatGoogle での独特な表現。 SEPA はソフトウェアエンジニアリングの全体を示している。対して SEatGoogle では全体を示しておらず、設計、プロセスモデル、品質保証といった章になりそうな領域でさえ省かれている。代わりに、SEPA におけるソフトウェア構成マネジメント(22章)が最も関係している。 SEatGoogle がそのような構成になっているのは Google 最初期のプロダクトである検索と広告が商業的に大きく成功したことによって持続可能性とスケーラビリティを追い求めてきたから SEPA は基礎を学ぶための本。SEatGoogle はその基礎に基づきつつ、Google のソフトウェアとビジネスにとって重要な領域を独自に体系化した本。それにある程度近い業界であるほど役立ちそう。「そこは第一じゃない」と異論を唱える業界もいそう。 この文章は 実践ソフトウェアエンジニアリング第9版アドベントカレンダー の8日目です。 米国の大学を中心に教科書として採用されており、40年に渡って改訂されてきたベストセラーであるという Software Engineering: A Practitioner's Approach 9th edition の訳書 "実践ソフトウェアエンジニアリング第9版" が2021年12月1日に オーム社より発刊されました。これを記念して、翻訳者による感想や解説などの本書にまつわる文章を アドベントカレンダー形式でお届けします。7日目は 複数名で進める翻訳環境と事前準備 のお話でした。 今回は、この第9版と Googleのソフトウェアエンジニアリング (原著: Software Engineering at Google) との関係を簡単に見出します。 Google のソフトウェアエンジニアリングは、その名の通り Google で行われているソフトウェアエンジニアリングについて記されており、そのページ数は体系的解説書である実践ソフトウェアエンジニアリング第9版よりも多く(640>520)、発刊時期も2021年11月下旬とほぼ同じです。 同じ分野の重い本が同時に世に出ましたので、 ECサイトや本屋で両方を目にすることがあるでしょう。 重い本にチャレンジする気概がある読者候補であっても両方を読む方は少数で、「どっちにしようか」選ぶのではないでしょうか。 また、私は第9版の共訳者で、普及の意味でこの アドベントカレンダーを書いているのですが、 「実はGoogle本の方が今時の役に立つことが書いてあるんじゃないの?」 *1 という疑問と期待を持っていました。というのが、関係を見出す動機です。 この文章では、それぞれの原著名にちなんで、実践ソフトウェアエンジニアリング第9版を SEPA と、 Googleのソフトウェアエンジニアリングを SEatGoogle と記します。 そして、両者の関係を見出す質問として以下のものを設け、これらを本文章の構成とします。 ソフトウェアエンジニアリングの定義は同じか? SEatGoogle の内容は SEPA に記された領域の多くをカバーしているか? なぜ SEatGoogle の SEPA に対する特徴がそうなっているのか? 誰が読むと役立つのか? 両者の関係を 簡単に 見出すと書いた理由は、私が SEatGoogle を全体的に浅く読んだだけであり、この文章を書くのも1日しかかけていないからです。 より深く正確に、多くの人にとって意義ある関係を見出すには時間がかかるでしょう。 また、そこに集中して労力をかける意味はそれほどなく、今後の活動の中で両者を参照していくうちにわかっていけばよいと考えています。 どちらの本も序文でその定義について触れています。共通要素はあるものの、SEatGoogle には独特な記述があります。 SEPA の "まえがき" では次の文があります。 経験をもとに失敗の真因に立ち向かうためには、設計や構築における規律(discipline)が必要である。すなわちエンジニアリングというアプローチの必要性を意味する。 ...
Googleのソフトウェアエンジニアリング、実践ソフトウェアエンジニアリング第9版の関係 - MassKaneko.Out
この二冊を読み比べながらエンジニアリングを学んでみたいが、とにかくボリュームがあるので、結構なお値段なので尻込みしてしまった。
 
Googleのソフトウェアエンジニアリング
Ebook Storeで電子版を購入:価格3,872円 Googleの現役ソフトウェアエンジニアたちが、超大規模ソフトウェアの開発と保守を長期的に支えてきたGoogle社内の多様なベストプラクティスを、文化、プロセス、ツールの側面からこの一冊に凝縮。時間と変化、規模と成長、トレードオフとコストという3つの基本原理に沿って、コードを持続可能にする方法論を紐解きます。「謙虚、尊敬、信頼」、心理的安全性、ダイバーシティとインクルージョンなど公正を重んじる文化から、コードレビューやテスト構成法など人間の行動を規定するプロセス、継続的インテグレーションや大規模変更システムなど変化への対応を支援する自動化ツールの基盤技術まで、Googleが試行錯誤を経て獲得した教訓を余すところなく紹介しています。経済学、心理学、マネジメント論などを背景にした人間への深い洞察をふまえ、データ駆動かつトレードオフから導かれる、定量的かつ定性的な決定プロセスも解説。Googleの成長力の源泉を理解でき、得られる知見は、学生から組織の意思決定者、小規模スタートアップからデジタルトランスフォーメーション(DX)を目指す大企業まで、幅広く活用できます。 関連書籍 SRE サイトリライアビリティエンジニアリング SREの探求 エンジニアのためのマネジメントキャリアパス サイトリライアビリティワークブック 監訳者まえがき 序文 はじめに 第1部 主題 1章 ソフトウェアエンジニアリングとは何か 1.1 時間と変化 1.1.1 Hyrumの法則 1.1.2 例:ハッシュの順序付け 1.1.3 「何も変化しない」状態をとにかく目指すのはどうか 1.2 スケールと効率 1.2.1 スケールしないポリシー 1.2.2 よくスケールするポリシー 1.2.3 例:コンパイラーのアップグレード 1.2.4 左への移動 1.3 トレードオフとコスト 1.3.1 例:ホワイトボードマーカー 1.3.2 意思決定への入力 1.3.3 例:分散ビルド 1.3.4 例:時間とスケールの間での決定 1.3.5 決定を再考すること、間違うこと 1.4 ソフトウェアエンジニアリング対プログラミング 1.5 結論 1.6 要約 第2部 文化 2章 チームでうまく仕事をするには 2.1 自分のコードを隠すのを手伝ってはくれないか 2.2 天才神話 2.3 隠蔽は有害とみなされる 2.3.1 早期発見 2.3.2 バス係数 2.3.3 進捗ペース 2.3.4 要するに、隠れるな 2.4 チームが全て 2.4.1 社会交流の三本柱 2.4.2 何故三本柱に意味があるのか 2.4.3 謙虚、尊敬、信頼の実践 2.4.4 非難なきポストモーテム文化 2.4.5 Google的であること 2.5 結論 2.6 要約 3章 知識共有 3.1 学びを阻む課題 3.2 哲学 3.3 舞台を整える:心理的安全性 3.3.1 メンター制度 3.3.2 大規模集団での心理的安全性 3.4 自分の知識を発展させる 3.4.1 質問を尋ねよ 3.4.2 文脈を理解せよ 3.5 質問をスケールさせる:コミュニティへの質問 3.5.1 グループチャット 3.5.2 メーリングリスト 3.5.3 YAQS:Q&Aプラットフォーム 3.6 自分の知識をスケールさせる:教えられるものは常にある 3.6.1 オフィスアワー 3.6.2 テックトークと講習 3.6.3 ドキュメンテーション 3.6.4 コード 3.7 組織の知識をスケールさせる 3.7.1 知識共有の文化を養う 3.7.2 カノニカルな情報源の確立 3.7.3 情報の輪に参加し続ける ...
Googleのソフトウェアエンジニアリング
買うはいいとして電子書籍か物理本か迷うな〜
電子書籍に決定!
買った!
 
 
 
 
 

© Yoshiyuki Hisamatsu 2021 - 2022