Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CleanArchitecture第5章&第6章
Search
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
89
CleanArchitecture23章&24章
ssknnm
0
280
CleanArchitecture17章&18章
ssknnm
0
210
Other Decks in Programming
See All in Programming
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
690
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
410
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
730
AIコーディングエージェント(Gemini)
kondai24
0
220
認証・認可の基本を学ぼう前編
kouyuume
0
200
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
240
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
430
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
230
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
Featured
See All Featured
Side Projects
sachag
455
43k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Context Engineering - Making Every Token Count
addyosmani
9
510
Build your cross-platform service in a week with App Engine
jlugia
234
18k
RailsConf 2023
tenderlove
30
1.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Fireside Chat
paigeccino
41
3.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Typedesign – Prime Four
hannesfritz
42
2.9k
Transcript
CleanArchitecture5章&6章
第5章オブジェクト指向プログラミング オブジェクト指向とは? カプセル化とは? 継承?ポリモーフィズム?
そもそもオブジェクト指向とは オブジェクト指向(object oriented)・・・モノ中心、モノ思考 Q.できた目的 A.ソフトウェアの保守・再利用をしやすくするため Q.どうやって実現するのか A.部品の独立性を高める(モノ思考っぽい)ことで修正が起きたときの影響範囲を最小 限にし、他のシステムでの再利用を可能にする
カプセル化 • 実装ファイルの要素にアクセスすることができない • 外側にはデータは見えないように • プライベートなデータメンバー 「しかしオブジェクト指向がカプセル化に依存していることを受け入れるのは難しい」と本 書では説明している。 モノ思考なのでデータの改竄や盗み見が起きないようにするためにカプセル化があるの
かなと思った。
継承 • スコープ内の変数と関数のグループを再度宣言したもの • クラスの共通部分を別クラスにまとめる仕組み →コード重複を排除できる 共通クラス:スーパークラス それを利用するクラス:サブクラス
ポリモーフィズム • ポリモーフィズム=いろいろな形に変わる • デバイス非依存を実現 • メッセージの送り方を共通化する インターフェイス経由で関数を呼び出している →サブルーチンの呼び出し側を共通化する (依存関係逆転p.68のところでも言及していましたが。。。)
5章まとめ OOとは? ポリモーフィズムを使用することで、システムにある全てのソースコードの依存関係を絶 対的に制御する能力 私個人的なOOの印象 • 共通化できる処理は外に出して無駄を省く • 再利用可能を実現することを目的とした考え方
第6章 関数型プログラミング • 関数型プログラミングは代入に規律を課すものである • 関数型言語の変数は変化しない 不変コンポーネント • 可変変数を使わずに純粋に関数的にタスクを行う • 変数の状態の変更を許可している1つ以上のコンポーネントと通信
関数=メソッドみたいな感じ?
感想 小さなコンポーネントで処理やクラスを切り出した方がいい 関数とメソッドの違いがよくわからないんですが誰か説明してください AlanTuringって聞いたことあると思っていたらエニグマの人だった
AlanTuring?エニグマ? • 第二次世界大戦の時にナチスドイツが暗号を送っていた→エニグマ • その暗号を解読した人がAlanTuringさん ナチスがどこに攻撃をするのか指示をするメッセージが毎日(朝とか?)暗号として送ら れていた。その暗号を解読した話ですが暗号化のロジックだったりエンジニアが聞いた ら今まさに使ってる!とびっくりするような内容です。PublicKeyの概念など昔からあるん だなと思った。