input & output 2024/7/22-2024/7/28

O`Reilly Learning Pickup Book

Apple Vision Pro for Creators: A Beginner’s Guide to Building Immersive Experiences
https://learning.oreilly.com/library/view/apple-vision-pro/9780138360184/
Apple Vision Proアプリ開発学習

Decentralized Identity Explained
https://learning.oreilly.com/library/view/decentralized-identity-explained/9781804617632/
分散型ID、ブロックチェーン、その他のデジタルID管理技術の最先端トレンドを理解

Big Data on Kubernetes
https://learning.oreilly.com/library/view/big-data-on/9781835462140/
Spark、Airflow、Kafka、Trinoなどを活用、Kubernetes上で効率的でスケーラブルなビッグデータアーキテクチャを構築

Refactoring with C++
https://learning.oreilly.com/library/view/refactoring-with-c/9781837633777/
C++のリファクタリングテクニックとSOLID原則の実装

Thriving in Android Development Using Kotlin
https://learning.oreilly.com/library/view/thriving-in-android/9781837631292/
3つのプロジェクトを開発することでAndroid開発を学ぶ

Think Like a Software Engineering Manager
https://learning.oreilly.com/library/view/think-like-a/9781633438439/
ソフトウェアエンジニアリングマネージャーの実践的なガイドブック

Taming Your Dragon: Addressing Your Technical Debt
https://learning.oreilly.com/library/view/taming-your-dragon/9798868802645/
技術的負債管理プログラムの実施方法を紹介

Practical Lakehouse Architecture
https://learning.oreilly.com/library/view/practical-lakehouse-architecture/9781098153007/
データレイクハウスアーキテクチャを採用する方法

Programming PIC Microcontrollers with XC8: Mastering Classical Embedded Design
https://learning.oreilly.com/library/view/programming-pic-microcontrollers/9798868804670/
XC8コンパイラを使用した8ビットPICマイコンによる組込みシステムの開発方法を実践的に

Programming with GitHub Copilot
https://learning.oreilly.com/library/view/programming-with-github/9781394263370/
GitHubのAIコーディングアシスタントCopilotをハンズオン形式で解説

Pickup

目に見えるものがすべて(WYSIATI)
What You See Is All There Is

テスト駆動開発(TDD)
ふるまい駆動開発(BDD)
ドメイン駆動設計(DDD)
タイプ駆動開発
プロパティ駆動開発

技術的負債のオニオンモデル
ソフトウェア開発における技術的負債の複雑な性質を理解し、分析するためのフレームワーク
技術的負債を異なる層に分けて考えることで、問題の全体像を把握しやすくします。
中心層:技術的問題
中間層:経済的側面
外層:複雑な問題(Wicked Problems)

ソフトウェア開発ライフサイクル:SDLC(software development lifecycle)

SDLCのどこで技術的負債が発生したかを理解するのと同じように、トレードオフが何のために行われたかを理解することは、将来の負債管理プログラムにとって有益な情報を提供する。

最も一般的な2つのトレードオフ
・追加機能
・スケジュールの回復

OWASP チェックリスト
OWASP ASVS(Application Security Verification Standard)
Webアプリケーションのセキュリティ要件を定義し、セキュリティテストの基準を提供する標準です。
ASVSは14のカテゴリに分かれており、各カテゴリには具体的な検証項目が含まれています。
ASVSは3つのセキュリティレベルに分かれており、アプリケーションの重要度に応じて適用することができます。
ASVSの主要カテゴリ
・アーキテクチャ、設計、脅威モデリング(Architecture, Design, and Threat Modeling)
・認証(Authentication)
・セッション管理(Session Management)
・アクセス制御(Access Control)
・データの保護(Data Protection)
・エラー処理とロギング(Error Handling and Logging)
・データ検証(Data Validation)
・暗号化(Cryptography)
・ビジネスロジック(Business Logic)
・ファイルおよびリソース(File and Resources)
・モバイル(Mobile)
・API(API and Web Services)
・構成(Configuration)
・テスト(Testing)

アーキテクチャ トレードオフ分析法(ATAM: Architecture Tradeoff Analysis Method)
ソフトウェア開発の初期段階で使用されるリスク軽減プロセスです。
ATAMの目的
・ソフトウェアシステムに適したアーキテクチャを選択する
・トレードオフとセンシティビティポイントを発見する
・品質属性要求に対するアーキテクチャの評価を行う

ポステルの法則の定義
「入力の多様性には寛容に、出力は厳密にする」という設計原則。
TCPの初期仕様を提唱したジョン・ポステルにちなんで名付けられ、ロバストネス原則またはロバストの法則とも呼ばれています

APIDOC
https://apidocjs.com/
RESTfulなWeb APIのためのインラインドキュメント apiDocは、ソースコード内のAPIアノテーションからドキュメントを作成します。