Upgrade to Pro — share decks privately, control downloads, hide ads and more …

技術書・方法論とのお付き合い / how to learn theory

技術書・方法論とのお付き合い / how to learn theory

philomagi

July 19, 2020
Tweet

More Decks by philomagi

Other Decks in Technology

Transcript

  1. 技術書・方法論とのお付き合い
    〜技術書・方法論からどのように学び、使うか〜
    1
    @Philomagi
    2020/07/18@Webエンジニア勉強会inVR 第4回
    #WESinVR

    View full-size slide

  2. 発表者
    @Philomagi
    ● WEB系プログラマ
    ● 自称フロントエンド寄り
    ○ 最近のマイブームは SelfとSmalltalk
    ○ vanila jsも久しぶりにちょっと触りたい
    ● 設計の話とかが好きです
    ○ DDDとかクリーンアーキテクチャとか
    ○ 最近のSOLID原則の推しはI
    2

    View full-size slide

  3. 今回のテーマ
    3

    View full-size slide

  4. 初心者の頃に知っておきたかったこと
    4

    View full-size slide

  5. 技術書・方法論と
    どうお付き合いするか
    5

    View full-size slide

  6. 7
    多種多様な技術書・方法論
    ● 様々なジャンル・観点の技術書・方法論が存在する
    ○ ソフトウェアアーキテクチャ
    ■ クリーンアーキテクチャ
    ■ エンタープライズアプリケーションアーキテクチャ (PoEAA)
    ■ パターン指向ソフトウェアアーキテクチャ (POSA)
    ○ ソフトウェア設計
    ■ ドメイン駆動設計
    ■ ユースケース駆動開発
    ■ テスト駆動開発
    ■ リファクタリング
    ■ デザインパターン(GoF)
    ○ etc...

    View full-size slide

  7. どうお付き合いするか?
    8

    View full-size slide

  8. どのような姿勢で知識を得、
    どのような姿勢で活用するか?
    9

    View full-size slide

  9. 問題が起きやすいお付き合い
    10
    ● 「この本に書いてあることに従えば、今困っていることが
    解決できるはずだ!」
    ● 「この本に書いてある方法を実践することが、良いソフト
    ウェア開発なんだ!」
    ● 「この本を実践すれば、良いソフトウェアができるんだ!」

    View full-size slide

  10. ● 自分たちが直面している課題の「正解」が、外部に自立的に存在
    しているかのように認識してしまう
    ○ 結果、課題解決のために課題を深堀りするのではなく、どこかにあるはず
    の「正解」を探すための放浪に終始してしまう
    ● 目的ではなく手段への注目が、”無自覚に”発生しがち
    ○ 結果、目的に合わせて技術を選択・加工するのではなく、技術に合うように
    目的が”無自覚に”選択・加工されることになりやすい
    どんな問題が起きやすいのか?
    11

    View full-size slide

  11. 外部に「正解」を求める
    12

    View full-size slide

  12. 問題・課題の外部に「正解」を求める
    13
    問題・課題

    View full-size slide

  13. 問題・課題の外部に「正解」を求める
    14
    問題・課題 「正解」

    View full-size slide

  14. 問題・課題の外部に「正解」を求める
    問題・課題 「正解」
    15

    View full-size slide

  15. 外部から「正解」は得られるのか?
    16
    ● そもそも「正解」は実在するか?
    ● 「正解」が実在したとして、人間は「正解」を認識・理解
    できるのか?
    ● 技術書・方法論は「正解」を語っているのか?

    View full-size slide

  16. 個人的な回答
    17
    ● そもそも「正解」は実在するか?
    ○ なんとも言えない。ただ、「有るかどうか分からないもの」を前提に置くのは危険に感じ
    る。
    ● 「正解」が実在したとして、人間は「正解」を認識・理解できるのか?
    ○ 何かを「これが正解だ」と解釈はできても、「正解」そのものを正確に認識・理解はでき
    ないのでは。
    ● 技術書・方法論は「正解」を語っているのか?
    ○ これらが語るのは抽象化された理論であり思想であって、「正解」を語っているのでは
    ない。

    View full-size slide

  17. 個人的な回答
    18
    ● そもそも「正解」は実在するか?
    ○ なんとも言えない。ただ、「有るかどうか分からないもの」を前提に置くのは危険に感じ
    る。
    ● 「正解」が実在したとして、人間は「正解」を認識・理解できるのか?
    ○ 何かを「これが正解だ」と解釈はできても、「正解」そのものを正確に認識・理解はでき
    ないのでは。
    ● 技術書・方法論は「正解」を語っているのか?
    ○ これらが語るのは抽象化された理論であり思想であって、「正解」を語っているのでは
    ない。

    View full-size slide

  18. 個人的な回答
    19
    ● そもそも「正解」は実在するか?
    ○ なんとも言えない。ただ、「有るかどうか分からないもの」を前提に置くのは危険に感じ
    る。
    ● 「正解」が実在したとして、人間は「正解」を認識・理解できるのか?
    ○ 何かを「これが正解だ」と解釈はできても、「正解」そのものを正確に認識・理解はでき
    ないのでは。
    ● 技術書・方法論は「正解」を語っているのか?
    ○ これらが語るのは抽象化された理論であり思想であって、「正解」を語っているのでは
    ない。

    View full-size slide

  19. 個人的な回答
    20
    ● そもそも「正解」は実在するか?
    ○ なんとも言えない。ただ、「有るかどうか分からないもの」を前提に置くのは危険に感じ
    る。
    ● 「正解」が実在したとして、人間は「正解」を認識・理解できるのか?
    ○ 何かを「これが正解だ」と解釈はできても、「正解」そのものを正確に認識・理解はでき
    ないのでは。
    ● 技術書・方法論は「正解」を語っているのか?
    ○ これらが語るのは抽象化された理論であり「思想」であって、「正解」を語っているので
    はない。

    View full-size slide

  20. 問題・課題の外部に「正解」を求める
    問題・課題 「正解」
    21

    View full-size slide

  21. 問題・課題の外部に「正解」を求める
    問題・課題 「正解」
    22

    View full-size slide

  22. 目的ではなく手段への
    ”無自覚な”注視
    23

    View full-size slide

  23. 問題が起きやすいお付き合い(再掲)
    24
    ● 「この本に書いてあることに従えば、今困っていることが
    解決できるはずだ!」
    ● 「この本に書いてある方法を実践することが、良いソフト
    ウェア開発なんだ!」
    ● 「この本に従えば、良いソフトウェアができるんだ!」

    View full-size slide

  24. 何が起きるのか?
    ● 注目する対象が、ソフトウェアの目的・対象ではなく方法
    論・プロセスになる
    ● 「何を作るか」「何を実現するか」ではなく、「どう作るか」
    「どんな手順を踏むか」が第一になる
    ● 目的のために技術を選択するのではなく、技術のために
    目的を決定することになる
    25

    View full-size slide

  25. 目的のための知識・方法論
    26
    ○○をできるようにしたい!
    ○○を世の中に実現したい!

    View full-size slide

  26. 目的のための知識・方法論
    27
    ○○をできるようにしたい!
    ○○を世の中に実現したい!

    View full-size slide

  27. 目的のための知識・方法論
    28
    ○○をできるようにしたい!
    ○○を世の中に実現したい!

    View full-size slide

  28. 目的のための知識・方法論
    29
    ○○をできるようにしたい!
    ○○を世の中に実現したい!
    目的に技術を当てはめる
    目的を前提として技術を解釈する

    View full-size slide

  29. 知識・方法論のための目的
    30
    ○○をできるようにしたい!
    ○○を世の中に実現したい!

    View full-size slide

  30. 知識・方法論のための目的
    31
    ○○をできるようにしたい!
    ○○を世の中に実現したい!

    View full-size slide

  31. 知識・方法論のための目的
    32
    ○○をできるようにしたい!
    ○○を世の中に実現したい!

    View full-size slide

  32. 知識・方法論のための目的
    33
    ○○をできるようにしたい!
    ○○を世の中に実現したい!
    技術に目的を当てはめる
    技術を前提として目的を解釈する

    View full-size slide

  33. 目的のための知識・方法論(再掲)
    34
    ○○をできるようにしたい!
    ○○を世の中に実現したい!
    目的に技術を当てはめる
    目的を前提として技術 を解釈する

    View full-size slide

  34. 目的と手段の逆転
    ○○をできるようにしたい!
    ○○を世の中に実現したい!
    目的に技術を当てはめる
    目的を前提として技術 を解釈する
    技術に目的を当てはめる
    技術を前提として目的 を解釈する
    35

    View full-size slide

  35. 目的と手段が入れ替わる「臭い」
    36
    ● 「○○を使う/するのが良い開発方法だ!」
    ● 「○○のXXではこのようにすると書いているので、このやり方は間
    違いです」
    ● 「〇〇って、結局コードはどういうふうに書くのが正解なの?」

    View full-size slide

  36. 目的と手段が入れ替わる「臭い」
    37
    ● 「○○を使う/するのが良い開発方法だ!」
    ● 「○○のXXではこのようにすると書いているので、このやり方は間
    違いです」
    ● 「〇〇って、結局コードはどういうふうに書くのが正解なの?」
    「〜を実現したい」「〜のために」という言葉が無く、「○○を実践するに
    は〜」「〇〇では〜」という会話に終止する

    View full-size slide

  37. 手段に注目するのは「不正解」か?
    ● 手段に注目すること自体が問題、というわけではない
    ○ 新しい技術を習得する、「この手段で目的が解決できるか」を検証するなど、手段自体
    に注目するシーンもある
    38

    View full-size slide

  38. 手段に注目するのは「不正解」か?
    ● 手段に注目すること自体が問題、というわけではない
    ○ 新しい技術を習得する、「この手段で目的が解決できるか」を検証するなど、手段自体
    に注目するシーンもある
    ● 問題なのは、自分がどこを向いているのかに無自覚なまま、特定
    の何かに拘泥すること
    ○ 目的達成に指向しているなら、その達成手段は目的の内容・性質に依存する。目的の
    内容・性質を無視した手段の選択は成立し難い
    ○ 手段の実践や習得に指向しているなら、手段自体が自己目的化する。手段を適用す
    る対象は、「手段」という「目的」を達成するための道具にすぎない
    39

    View full-size slide

  39. 問題になりがちなお付き合いのまとめ
    ● 技術書・方法論を「正解」を語るものとして取り扱う
    ● 技術書・方法論の手段に”無自覚に”注目し、技術
    に合わせて目的を”無自覚に”加工する
    40

    View full-size slide

  40. 技術書・方法論と
    どうお付き合いするか
    41

    View full-size slide

  41. 個人的に目指している接し方
    ● 技術書・方法論の「手順・方法」ではなく「思想・理論」に注目する
    ○ 「どのように」ではなく「なぜ」「なんのために」
    ○ 著者が目指している方向や到達点はどこか、記述されている手順・方法が導かれた理由は何
    か、の方に注目する
    ○ これらは抽象的であるが故に、個別具体的な問題を直接は解決してくれないが、故により広い
    範囲をカバーし得る(=自分の問題を解くためのヒントになるかもしれない)
    ● 「正解」を求めてではなく、問題解決の視点を増やす
    ○ 手順・プロセスに従うというよりは、自分が物事を考えるための視点・引き出しを増やすことを目
    指す(ために、著者の思想・理論自体に注目する)
    ○ 視点・引き出しが増えれば、いざ具体的な問題にあたった時に「こういう方法が使えるのでは」
    と、その問題に即した解決方法を( webや脳内で)検索することができる
    42

    View full-size slide

  42. 個人的に目指している接し方
    ● 技術書・方法論の「手順・方法」ではなく「思想・理論」に注目する
    ○ 「どのように」ではなく「なぜ」「なんのために」
    ○ 著者が目指している方向や到達点はどこか、記述されている手順・方法が導かれた理由は何
    か、の方に注目する
    ○ これらは抽象的であるが故に、個別具体的な問題を直接は解決してくれないが、故により広い
    範囲をカバーし得る(=自分の問題を解くためのヒントになるかもしれない)
    ● 「正解」を求めてではなく、問題解決の視点を増やす
    ○ 手順・プロセスに従うというよりは、自分が物事を考えるための視点・引き出しを増やすことを目
    指す(ために、著者の思想・理論自体に注目する)
    ○ 視点・引き出しが増えれば、いざ具体的な問題にあたった時に「こういう方法が使えるのでは」
    と、その問題に即した解決方法を( webや脳内で)検索することができる
    43

    View full-size slide

  43. この発表との「接し方」
    ● 技術書・方法論の「手順・方法」ではなく「思想・理論」に注目
    する
    ● 「正解」を求めてではなく、問題解決の視点を増やす
    44

    View full-size slide

  44. この発表との「接し方」
    ● 技術書・方法論の「手順・方法」ではなく「思想・理論」に注目
    する
    ● 「正解」を求めてではなく、問題解決の視点を増やす
    この発表内容自体にも↑は適用可能
    (実際に、この発表は「正解」を提示するものではありません)
    45

    View full-size slide

  45. この発表内容との「お付き合い」
    ● 「技術書・方法論とのお付き合い」の「手順・方法」ではなく
    「思想・理論」に注目する
    ● 「技術書・方法論とのお付き合い」の「正解」を求めてではな
    く、問題解決の視点を増やす
    46

    View full-size slide

  46. まとめ
    ● 以下のような取り扱い方は問題を起こしがち
    ○ 技術書・方法論を「正解」を語るものとして取り扱う
    ○ 技術書・方法論の手段に”無自覚に”注目し、技術に合わせて目的
    を”無自覚に”加工する
    ● 個人的に取ろうと努めているスタンス
    ○ 「手順・方法」ではなく「思想・理論」に注目する
    ○ 「正解」を求めるのではなく、問題解決の視点を増やす
    47

    View full-size slide

  47. ご清聴ありがとうございました
    48

    View full-size slide