達人に学ぶソフトウェアの構造と設計 29,30章
by
kazuki
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
クリーンアーキテクチャ 達人に学ぶソフトウェアの構造と設計 29,30章 kazuki ijima
Slide 2
Slide 2 text
29,30章 クリーン組込みアーキテクチャ データベースは詳細
Slide 3
Slide 3 text
29章 クリーン組込みアーキテクチャ
Slide 4
Slide 4 text
ソフトウェアは消耗しないが、ファームウェアやハードウェアは時代遅れになる。 その結果、ソフトウェアの変更が必要になる。 ソフトウェアは消耗しないが、管理できていないファームウェアやハードウェアの依存関 係により、ソフトウェアが内部から破壊される可能性がある。
Slide 5
Slide 5 text
● ファームウェアは、ハードウェアの変化に対して、どれだけ依存しているかで変化し にくさが決まる ● 依存の強いコードを書く = ファームウェアを書いているようなもの
Slide 6
Slide 6 text
適性テスト ● ソフトウェアを構築する活動 ○ 動作させる ○ 正しくする(リファクタ、変更しやすく、理解しやすく ) ○ パフォーマンスを高速化する ● 適性テスト ○ アプリを動作させること ○ アプリを動作させることだけに関心を持つプログラマは、 プロダクトに不利益を与えている Apptitude Aptitude
Slide 7
Slide 7 text
ターゲットハードウェアのボトルネック ● HWは、SWやFWと同時に開発されることが多い ○ 開発中はHWに欠陥があることが多い ○ SWの開発は通常よりも遅くなる
Slide 8
Slide 8 text
ターゲットハードウェアのボトルネック ● クリーン組込みアーキテクチャ = テスト可能な組込みアーキテクチャ ● レイヤー ○ 図29-1 ■ HWは変化していく ○ 全てのコードからHWの知識の汚染を取り除くものが存在しない ○ SWとFWを混ぜるのはアンチパターン ● ハードウェアは詳細 ○ 図29-3 ○ SW - FWの境界は、HW - コードの境界ほど明確ではない ○ HAL(Hardware Abstraction Layer)
Slide 9
Slide 9 text
ハードウェアの詳細はHALのユーザに明らかにしない ● クリーン組込みアーキテクチャのSWは、 ターゲットHWをオフにしたテストが可能 ● プロセッサは詳細 ○ 全てのSWはプロセッサに依存しないようにすべき。 FWにはそれができない ○ 例 ● OSは詳細 ○ 寿命を延ばすために OSの依存関係から身を守る ○ 図29-5 ○ OSAL(OS抽象化レイヤー)
Slide 10
Slide 10 text
インターフェイスに対するプログラミングと代替可能性 ● 主なレイヤーにHALやOSALを追加するだけでなく、これまでの原則を適用するべ き ● このタイミングで説明する内容??
Slide 11
Slide 11 text
DRYな条件付きコンパイル命令 ● 代用可能性 ○ 組込みのC/C++のプログラムが複数のターゲットや OSを扱う方法 ● HALを使うといい
Slide 12
Slide 12 text
30章 データベースは詳細
Slide 13
Slide 13 text
● データベースはエンティティではなく、詳細 ○ データベースはデータモデルではない ■ データベースはソフトウェアに過ぎない ■ データアクセス機能を持つ道具に過ぎない
Slide 14
Slide 14 text
リレーショナルデータベース ● 普及した ○ 素晴らしいもの ● ただし、アーキテクチャの円の外側 ○ 単なるテクノロジーの一つに過ぎない ○ あくまで詳細
Slide 15
Slide 15 text
なぜデータベースシステムが普及しているのか? ● 素晴らしい点 ○ ディスクの進化 ■ 小ささ ■ 容量 ○ 欠点である、ディスクの遅さを軽減する方法がある ■ ファイルシステム ■ リレーショナルデータベース
Slide 16
Slide 16 text
もしもディスクがなかったら? ● ディスクはRAMに取って代わられつつある ○ ? ● ディスクが絶滅した場合 ○ ? ○ 次の節に繋がる
Slide 17
Slide 17 text
詳細 ● データベースは、ディスクとRAM間でデータを移動しているに過ぎない
Slide 18
Slide 18 text
だけど、パフォーマンスはどうなの? ● 気になるけど、下位レベルの関心ごと
Slide 19
Slide 19 text
小話