Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CleanArchitecture第5章&第6章
Search
ssknnm
September 23, 2020
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CleanArchitecture第5章&第6章
CleanArchitecture輪読会の資料です
ssknnm
September 23, 2020
More Decks by ssknnm
See All by ssknnm
CleanArchitecture_31章_32章.pdf
ssknnm
0
110
CleanArchitecture23章&24章
ssknnm
0
290
CleanArchitecture17章&18章
ssknnm
0
240
Other Decks in Programming
See All in Programming
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.9k
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
500
Heart of Swift Concurrency
koher
0
960
Security issues being discussed on Web Platforms
petamoriken
0
1.2k
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
120
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.2k
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
4
770
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
160
Jetpack Compose メカニズム
skydoves
0
470
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.4k
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
330
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
330
Featured
See All Featured
How to make the Groovebox
asonas
2
2.4k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
4 Signs Your Business is Dying
shpigford
187
23k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Designing for humans not robots
tammielis
254
26k
Bash Introduction
62gerente
615
220k
Facilitating Awesome Meetings
lara
57
7.1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Skip the Path - Find Your Career Trail
mkilby
1
240
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Transcript
CleanArchitecture5章&6章
第5章オブジェクト指向プログラミング オブジェクト指向とは? カプセル化とは? 継承?ポリモーフィズム?
そもそもオブジェクト指向とは オブジェクト指向(object oriented)・・・モノ中心、モノ思考 Q.できた目的 A.ソフトウェアの保守・再利用をしやすくするため Q.どうやって実現するのか A.部品の独立性を高める(モノ思考っぽい)ことで修正が起きたときの影響範囲を最小 限にし、他のシステムでの再利用を可能にする
カプセル化 • 実装ファイルの要素にアクセスすることができない • 外側にはデータは見えないように • プライベートなデータメンバー 「しかしオブジェクト指向がカプセル化に依存していることを受け入れるのは難しい」と本 書では説明している。 モノ思考なのでデータの改竄や盗み見が起きないようにするためにカプセル化があるの
かなと思った。
継承 • スコープ内の変数と関数のグループを再度宣言したもの • クラスの共通部分を別クラスにまとめる仕組み →コード重複を排除できる 共通クラス:スーパークラス それを利用するクラス:サブクラス
ポリモーフィズム • ポリモーフィズム=いろいろな形に変わる • デバイス非依存を実現 • メッセージの送り方を共通化する インターフェイス経由で関数を呼び出している →サブルーチンの呼び出し側を共通化する (依存関係逆転p.68のところでも言及していましたが。。。)
5章まとめ OOとは? ポリモーフィズムを使用することで、システムにある全てのソースコードの依存関係を絶 対的に制御する能力 私個人的なOOの印象 • 共通化できる処理は外に出して無駄を省く • 再利用可能を実現することを目的とした考え方
第6章 関数型プログラミング • 関数型プログラミングは代入に規律を課すものである • 関数型言語の変数は変化しない 不変コンポーネント • 可変変数を使わずに純粋に関数的にタスクを行う • 変数の状態の変更を許可している1つ以上のコンポーネントと通信
関数=メソッドみたいな感じ?
感想 小さなコンポーネントで処理やクラスを切り出した方がいい 関数とメソッドの違いがよくわからないんですが誰か説明してください AlanTuringって聞いたことあると思っていたらエニグマの人だった
AlanTuring?エニグマ? • 第二次世界大戦の時にナチスドイツが暗号を送っていた→エニグマ • その暗号を解読した人がAlanTuringさん ナチスがどこに攻撃をするのか指示をするメッセージが毎日(朝とか?)暗号として送ら れていた。その暗号を解読した話ですが暗号化のロジックだったりエンジニアが聞いた ら今まさに使ってる!とびっくりするような内容です。PublicKeyの概念など昔からあるん だなと思った。