【備忘録】個人的に気になったネット記事、資料をまとめる～その２～

# はじめに

この記事では以下のようなことを記載しています

- 個人的に気になって読んでみたネット記事、資料のURL
- 概要と個人的な感想
- 参考情報
    - 関連するページのURL
    - 勉強会のアーカイブ動画
    - その他もろもろ

上記はあくまで目安で、フォーマットは縛り過ぎずに書いていきます
また、まとめる頻度も週1回程度を目指しますが、あまり縛らずにゆる～く続けていこうと思っています

また、ストックしている中から適当に選んでいるので、最新記事とかではありません
ちょっと昔のネタでも、まとめておきたいなと思ったら躊躇なく記載するのでご了承ください

完全に個人的なまとめですが、もしどなたかの役に立てば光栄です

# クラウドコスト見積もりとオンプレミス環境との比較

https://aws.amazon.com/jp/blogs/news/cloud-cost-estimation-compared-with-onpremise/

- 概要
    - クラウドを使用するにあたってかかるコストの見積もり方法、クラウドとオンプレの見積もりを比較する上での注意点、について書かれているAWS公式ブログ
    - クラウドコストの見積もりツールとして以下の3つが紹介
        - AWS Price List API
        - AWS Pricing Calculator
        - AWS Migration Evaluator
    - クラウドコストを算出するにあたっての考え方のフローでは、まず全体の要件の整理から始まり、段階を踏んで詳細な設計を考えていく流れが紹介
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1471959/f4d6973a-2691-f26d-db4f-1766e16a1d45.png)
    - オンプレと比較するにあたっては、総所有コスト（TCO）を同一条件で比較するようにアドバイスが書かれている

- 感想
    - 網羅的に考え方の紹介がされていて、初心者もベテランも役に立ちそうなブログだと感じた
    - AWS Price List APIは知らなかったが、JSON形式でAWSサービスの詳細情報を取得できるとのこと。使い道がかなりありそうなので覚えておきたい。
        - https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/using-ppslong.html
    - オンプレとの比較では、「同一条件」で比較できているかどうかを考えることが本当に大事だと思った
    - クラウドに移行するにあたって、月額料金ばかりに目がいってしまい、クラウドが価値を発揮する人件費や運用費の削減を考えられなくなるのはとても勿体無いことだと思う
    - 受注側から説明するもの難しいので、こういった資料をAWSが用意してくれるのは説明もしやすくなってありがたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1471959/00222f12-993e-31a6-00bf-3e3046b4c1a9.png)


- 参考資料はブログ中にたくさんリンクがあるので割愛

# ゼロから学んだ形式手法

https://swet.dena.com/entry/2020/04/08/140500

- 概要
    - 開発で使用される「形式手法」とはなんなのか、何に役立つのか、について書かれた記事
    - 具体的な形式手法を使った方法は、ブログ中のリンクに記載がある
- 感想
    - 概念的な話が多いため完全に理解はできていないが、なんとなく理解するには良い記事だと思った
    - （誤りがあるかもですが）ざっくり言うと
        - 開発後のテストでバグを洗い出すのが定石だが、開発に着手する前にバグや仕様の問題点に気づくための手法が「形式手法」
        - 数学の証明問題のようなもので、「あらゆるケースにおいてシステムが正しく動く」と言う命題を証明するようなプロセスを踏む
        - 普通の開発後のテストは、命題に対してある特定のケースしかテストできない。しかし形式手法を使えば、「特定のケース」ではなく「あらゆるケース」におけるテストができてしまう（しかも開発前に）
    - 実際に習得するにはもっと勉強しないといけないと思うが、手戻りが許されない開発などでかなりの効果を発揮しそうな考え方だと思った
    - こういった学術的な記事を読むと、ソフトウェア工学を体系的に学んでみたくなる

- 仕様記述テクニック「Promotion」の紹介
    - 実際に形式手法の一つとして使用される記述テクニック「Promotion」の紹介記事

https://swet.dena.com/entry/2020/02/19/135334

- DeNA TechCon 2020で「仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ」という発表をしました（録画・スライドあり）
    - 仕様の問題点に事前に気が付くために形式手法を活用した事例の紹介記事

https://swet.dena.com/entry/2020/03/17/165835

# ソフトウェアはなぜバージョンアップしなければならないのか

https://qiita.com/autotaker1984/items/a3091772dbb0fb91473d

- 概要
    - タイトルの通り、「ソフトウェアはなぜバージョンアップしなければならないのか」と言う疑問に対して、バージョンアップしないといけない理由、バージョンアップが大変にならないための対策、について書かれた記事
- 感想
    - 自分もそうだが、ソフトウェアは定期的にバージョンアップすることが大事だと思っているが、理由を人に説明できないと言う方は多いのではないでしょうか
    - ざっくりまとめると
        - 定期的にバージョンアップする必要がある理由は大きく分けて3つ
            - そもそもソフトウェアはサポート期間が決まっている（2-5年ほど）
            - バージョンアップを先送りにすると、過去のバージョンとの差分が大きくなり業務影響につながりかねないため。最悪の場合、バージョンアップに失敗する
            - サポート期間が過ぎるとソフトウェアそのものがダンジョン化し、脆弱性を含むのでセキュリティ的にも非常によろしくない状態になる。なのに、誰も触れたくない（触れたくても触れられない）ソフトウェアになりかねない。
        - 対策は2つ
            - 年に一回は最低でもバージョンアップする
            - バージョンアップにかかる工数をあらかじめ把握しておく
    - こういった素朴な疑問に対する回答は、本質を掴んでいないと回答できないと思うので非常にありがたいと思う
    - 「LTSが切れるギリギリまで使い続ければいいっしょ！w」と言う方を見かけたら、さりげなくこの記事を共有してあげましょう

# 手を動かさないマネージャーを試している

https://onk.hatenablog.jp/entry/2023/08/31/235920

- 概要
    - 筆者がプロダクトをソースコードレベルまで理解して手も動かすマネージャーから、ソースコードまでは理解していないがマネジメントできるスタイルに移行するべく、思考を巡らせた内容が書かれている
- 感想
    - 「把握する」のではなく「掌握する」ことを目指す、という内容が印象的
        - 把握：独力で説明できる状態ではあるが、有事の際に判断を下すことは難しい状態
        - 掌握：影響を理解した上で、有事の際の判断も正しく下せる状態
    - 現場から引きつつも「掌握する」ことを目指すための工夫も書かれていて、とても興味深いと感じた
    - 自分はマネージャーではないし筆者ほどもレベルに達してもいないと思うが、マネージャー像の一つとして「現場を把握しているマネージャー」というのは自分の目指す姿に近いように感じた

# Pythonの「仮想環境」を完全に理解しよう

https://speakerdeck.com/os1ma/pythonno-jia-xiang-huan-jing-wowan-quan-nili-jie-siyou

- 概要
    - Pythonで使用する「仮想環境」について、実はとても簡単な処理をしているに過ぎないということを解説している資料
    - シェルスクリプトのコードを読み解くことで、仮想環境が作られるまでの処理を解明する
- 感想
    - 自分はたまにPythonを使うくらいなので、「仮想環境はすごく便利！なぜなら環境を分離できるから！」くらいの浅い理解だった
        - まさに「なにかすごい仕組みが動いてそう」と思ってました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1471959/d83d43f1-6044-c61d-fdb9-b09740757743.png)
    - ただ、実際には大した処理はいないということがよくわかり拍子抜けした
    - スライドの数もそんなに多くないので、10分もあれば読み切れるような内容
    - 10分で何かすごそうな仕組みが解明される、すごくすっきりします
    - 正直知らなくても苦労しないとは思うが、こういう仕組みを理解しようとする気持ちは大事だと個人的には思う