Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CleanArchitecture第5章&第6章
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ssknnm
September 23, 2020
Programming
0
100
CleanArchitecture第5章&第6章
CleanArchitecture輪読会の資料です
ssknnm
September 23, 2020
Tweet
Share
More Decks by ssknnm
See All by ssknnm
CleanArchitecture_31章_32章.pdf
ssknnm
0
91
CleanArchitecture23章&24章
ssknnm
0
280
CleanArchitecture17章&18章
ssknnm
0
220
Other Decks in Programming
See All in Programming
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
420
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
380
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
250
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.8k
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
440
SourceGeneratorのマーカー属性問題について
htkym
0
200
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
2
330
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
900
Claude Code Skill入門
mayahoney
0
380
20260315 AWSなんもわからん🥲
chiilog
2
150
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.3k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
530
Featured
See All Featured
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
Discover your Explorer Soul
emna__ayadi
2
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
120
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Being A Developer After 40
akosma
91
590k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
Balancing Empowerment & Direction
lara
5
940
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
76
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
970
Transcript
CleanArchitecture5章&6章
第5章オブジェクト指向プログラミング オブジェクト指向とは? カプセル化とは? 継承?ポリモーフィズム?
そもそもオブジェクト指向とは オブジェクト指向(object oriented)・・・モノ中心、モノ思考 Q.できた目的 A.ソフトウェアの保守・再利用をしやすくするため Q.どうやって実現するのか A.部品の独立性を高める(モノ思考っぽい)ことで修正が起きたときの影響範囲を最小 限にし、他のシステムでの再利用を可能にする
カプセル化 • 実装ファイルの要素にアクセスすることができない • 外側にはデータは見えないように • プライベートなデータメンバー 「しかしオブジェクト指向がカプセル化に依存していることを受け入れるのは難しい」と本 書では説明している。 モノ思考なのでデータの改竄や盗み見が起きないようにするためにカプセル化があるの
かなと思った。
継承 • スコープ内の変数と関数のグループを再度宣言したもの • クラスの共通部分を別クラスにまとめる仕組み →コード重複を排除できる 共通クラス:スーパークラス それを利用するクラス:サブクラス
ポリモーフィズム • ポリモーフィズム=いろいろな形に変わる • デバイス非依存を実現 • メッセージの送り方を共通化する インターフェイス経由で関数を呼び出している →サブルーチンの呼び出し側を共通化する (依存関係逆転p.68のところでも言及していましたが。。。)
5章まとめ OOとは? ポリモーフィズムを使用することで、システムにある全てのソースコードの依存関係を絶 対的に制御する能力 私個人的なOOの印象 • 共通化できる処理は外に出して無駄を省く • 再利用可能を実現することを目的とした考え方
第6章 関数型プログラミング • 関数型プログラミングは代入に規律を課すものである • 関数型言語の変数は変化しない 不変コンポーネント • 可変変数を使わずに純粋に関数的にタスクを行う • 変数の状態の変更を許可している1つ以上のコンポーネントと通信
関数=メソッドみたいな感じ?
感想 小さなコンポーネントで処理やクラスを切り出した方がいい 関数とメソッドの違いがよくわからないんですが誰か説明してください AlanTuringって聞いたことあると思っていたらエニグマの人だった
AlanTuring?エニグマ? • 第二次世界大戦の時にナチスドイツが暗号を送っていた→エニグマ • その暗号を解読した人がAlanTuringさん ナチスがどこに攻撃をするのか指示をするメッセージが毎日(朝とか?)暗号として送ら れていた。その暗号を解読した話ですが暗号化のロジックだったりエンジニアが聞いた ら今まさに使ってる!とびっくりするような内容です。PublicKeyの概念など昔からあるん だなと思った。