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
ssknnm
September 23, 2020
Programming
110
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
100
CleanArchitecture23章&24章
ssknnm
0
290
CleanArchitecture17章&18章
ssknnm
0
230
Other Decks in Programming
See All in Programming
Go 1.27 における memory allocation の高速化
andpad
0
350
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
230
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
240
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
510
ソフトウェアラスタライザ
fadis
1
730
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
3.9k
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.8k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
200
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
460
リアルな遅延を測る仕様
kota_yata
1
130
Featured
See All Featured
Done Done
chrislema
186
16k
Tell your own story through comics
letsgokoyo
1
1.1k
Prompt Engineering for Job Search
mfonobong
0
420
Mobile First: as difficult as doing things right
swwweet
225
10k
KATA
mclloyd
PRO
35
15k
Navigating Weather and Climate Data
rabernat
0
490
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
310
Typedesign – Prime Four
hannesfritz
42
3.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
880
Producing Creativity
orderedlist
PRO
348
40k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.4k
Why Our Code Smells
bkeepers
PRO
340
58k
Transcript
CleanArchitecture5章&6章
第5章オブジェクト指向プログラミング オブジェクト指向とは? カプセル化とは? 継承?ポリモーフィズム?
そもそもオブジェクト指向とは オブジェクト指向(object oriented)・・・モノ中心、モノ思考 Q.できた目的 A.ソフトウェアの保守・再利用をしやすくするため Q.どうやって実現するのか A.部品の独立性を高める(モノ思考っぽい)ことで修正が起きたときの影響範囲を最小 限にし、他のシステムでの再利用を可能にする
カプセル化 • 実装ファイルの要素にアクセスすることができない • 外側にはデータは見えないように • プライベートなデータメンバー 「しかしオブジェクト指向がカプセル化に依存していることを受け入れるのは難しい」と本 書では説明している。 モノ思考なのでデータの改竄や盗み見が起きないようにするためにカプセル化があるの
かなと思った。
継承 • スコープ内の変数と関数のグループを再度宣言したもの • クラスの共通部分を別クラスにまとめる仕組み →コード重複を排除できる 共通クラス:スーパークラス それを利用するクラス:サブクラス
ポリモーフィズム • ポリモーフィズム=いろいろな形に変わる • デバイス非依存を実現 • メッセージの送り方を共通化する インターフェイス経由で関数を呼び出している →サブルーチンの呼び出し側を共通化する (依存関係逆転p.68のところでも言及していましたが。。。)
5章まとめ OOとは? ポリモーフィズムを使用することで、システムにある全てのソースコードの依存関係を絶 対的に制御する能力 私個人的なOOの印象 • 共通化できる処理は外に出して無駄を省く • 再利用可能を実現することを目的とした考え方
第6章 関数型プログラミング • 関数型プログラミングは代入に規律を課すものである • 関数型言語の変数は変化しない 不変コンポーネント • 可変変数を使わずに純粋に関数的にタスクを行う • 変数の状態の変更を許可している1つ以上のコンポーネントと通信
関数=メソッドみたいな感じ?
感想 小さなコンポーネントで処理やクラスを切り出した方がいい 関数とメソッドの違いがよくわからないんですが誰か説明してください AlanTuringって聞いたことあると思っていたらエニグマの人だった
AlanTuring?エニグマ? • 第二次世界大戦の時にナチスドイツが暗号を送っていた→エニグマ • その暗号を解読した人がAlanTuringさん ナチスがどこに攻撃をするのか指示をするメッセージが毎日(朝とか?)暗号として送ら れていた。その暗号を解読した話ですが暗号化のロジックだったりエンジニアが聞いた ら今まさに使ってる!とびっくりするような内容です。PublicKeyの概念など昔からあるん だなと思った。