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

複雑さに立ち向かうためのコードリーディング入門

 複雑さに立ち向かうためのコードリーディング入門

iOSDC Japan 2023登壇資料

[email protected]

September 03, 2023
Tweet

Other Decks in Programming

Transcript

  1. 2023/09/03 iOSDC J
    a
    p
    a
    n 2023
    shiz
    ෳࡶ͞ʹཱͪ޲͔͏ͨΊͷ
    ίʔυϦʔσΟϯάೖ໳
    01
    010
    0101
    0
    01
    010
    0101
    0

    View Slide

  2. ໊લTIJ[ ͣ͠

    J04ΤϯδχΞJO෱Ԭ
    !TU[O
    TU[O
    4XJGUݴޠΨΠυ೔ຊޠ൛
    TXJGUPSH
    Amazon Amazon
    ࣗݾ঺հ

    View Slide

  3. ུྺ
    •େֶଔۀޙɺҩྍۀքͰಇ͘
    ઐ໳ྖҬ: ೝ஌ػೳʹؔΘΔ࣬ױ
    •ޙʹιϑτ΢ΣΞΤϯδχΞʹͳΔ
    ࣗݾ঺հ

    View Slide

  4. ෺ࣄΛཧղͨ͠Γɺ֮͑ͨΓɺ
    ߟ͑ͨΓ͢Δೳྗ
    ೝ஌ػೳ
    ೝ஌ػೳͱ͸ʁ

    View Slide

  5. ෺ࣄΛཧղͨ͠Γɺ֮͑ͨΓɺ
    ߟ͑ͨΓ͢Δ಄ͷಇ͖
    ೝ஌ϓϩηε
    ྫ: ಁ໌Ͱؙ͘ɺ৮Δͱྫྷ͍ͨ΋ͷ͕͋Δ
    ͦΕ͸աڈͷهԱ͔ΒණͩͱΘ͔ͬͨ
    ৮Γଓ͚Δͱख͕௧͘ͳΔͱࢥͬͨͷͰखΛ཭ͨ͠
    ࣗݾ঺հ

    View Slide

  6. ೝ஌ϓϩηεΛ׆༻ͨ͠
    ίʔυͷಡΈํ
    ࣗݾ঺հ

    View Slide

  7. ͜ͷൃදͰ͸
    ͞·͟·ͳݚڀ݁Ռʹج͍ͮͨ
    ߟ͑΍ςΫχοΫͷҰ෦Λ঺հ
    ࣗݾ঺հ

    View Slide

  8. ຊ೔ͷ಺༰
    •ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ
    •ͳͥෳࡶʹײ͡Δͷ͔ʁ
    •ෳࡶ͞΁ͷରࡦ
    •ίʔυͷॻ͖ํʹ΋׆༻͢Δ

    View Slide

  9. ίʔυͷಡΈํʹ
    য఺Λ౰ͯͨಈػ
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  10. 👨💻
    ιϑτ΢ΣΞΤϯδχΞͷ࢓ࣄ
    👩💻
    Φʔϓϯιʔε طଘίʔυϕʔε PRϨϏϡʔ
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  11. 😵💫
    Θ͔Βͳ͍ͳ͋
    ಡΜͰ΋Θ͔Βͳ͍
    Φʔϓϯιʔε طଘίʔυϕʔε PRϨϏϡʔ
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  12. ௐ΂Δ
    📖
    👀
    💦
    👀
    💦
    📃
    📝
    🖥
    📄
    👨💻
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  13. 😨 Ͱ΋͕࣌ؒ….
    ·ͩΘ͔Βͳ͍….
    ·ͩΘ͔Βͳ͍ɺ࣌ؒʹ௥ΘΕΔ
    ৽͍͠λεΫ
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  14. ΋ͬͱௐ΂Δ
    📖
    👀
    💦
    👀
    💦
    📃
    📝
    🖥
    📄
    👨💻
    👀
    💦
    👀
    💦
    📖 📃
    🖥
    👩💻
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  15. 😔
    ࣗ෼ͬͯμϝͩͳ͋….
    Θ͔ͬͨɺͰ΋ͳ͋ɺɺɺ
    🪫
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  16. •೴಺Ͱॲཧ͢΂͖৘ใ͕ଟա͗ͯɺ೴͕ർ࿑Λى͜
    ͠ɺػೳ͕௿Լ͍ͯ͠Δ͜ͱͰى͜ΔҰ࿈ͷ঱ީ
    ྫ: ࢥ͍ग़ͤͳ͍ɺܾΊΒΕͳ͍ɺཧղͰ͖ͳ͍
    ৘ใաଟγϯυϩʔϜ
    https://kenko.sawai.co.jp/healthcare/202001.html
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  17. ͜Μͳঢ়گΛଧഁ͍ͨ͠
    😔
    ࣗ෼ͬͯμϝͩͳ͋….
    🪫
    😵💫
    Θ͔Βͳ͍ͳ͋
    📖
    👀
    💦
    👀
    💦
    📃
    📝
    🖥
    📄
    👨💻
    😨
    Ͱ΋͕࣌ؒ….
    ·ͩΘ͔Βͳ͍….
    📖
    👀
    💦
    👀
    💦
    📃
    📝
    🖥
    📄
    👨💻
    👀
    💦
    👀
    💦
    🖥
    📖
    👩💻
    📃
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  18. ௐ΂ͯΈΔͱ
    •ίʔυͷಡΈํͱೝ஌ػೳ͸ؔ܎͍ͯ͠ΔΒ͍͠
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  19. ௐ΂ͯΈΔͱ
    •ίʔυͷಡΈํͱೝ஌ػೳ͸ؔ܎͍ͯ͠ΔΒ͍͠
    •ίʔυΛಡΉ࣌ؒ ॻ࣌ؒ͘ in ։ൃۀ຿
    >
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  20. ௐ΂ͯΈΔͱ
    •ίʔυͷಡΈํͱೝ஌ػೳ͸ؔ܎͍ͯ͠ΔΒ͍͠
    •ίʔυΛಡΉ࣌ؒ ॻ࣌ؒ͘ in ։ൃۀ຿
    •ҙࣝతʹίʔυͷಡΈํΛֶͿػձ͸গͳ͍
    >
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  21. ͭ·Γ
    •ίʔυͷಡΈํͱೝ஌ػೳ͸ؔ܎͍ͯ͠ΔΒ͍͠
    •ίʔυΛಡΉ࣌ؒ ॻ࣌ؒ͘ in ։ൃۀ຿
    •ҙࣝతʹίʔυͷಡΈํΛֶͿػձ͸গͳ͍
    •Մೳੑ: ίʔυΛಡΉྗ⬆
    ➡︎
    ։ൃۀ຿ͷޮ཰⬆
    >
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  22. ΍ͬͯΈͯ
    •ίʔυͷಡΈํͱೝ஌ػೳ͸ؔ܎͍ͯ͠ΔΒ͍͠
    •ίʔυΛಡΉ࣌ؒ ॻ࣌ؒ͘ in ։ൃۀ຿
    •ҙࣝతʹίʔυͷಡΈํΛֶͿػձ͸গͳ͍
    •Մೳੑ: ίʔυΛಡΉྗ⬆
    ➡︎
    ։ൃۀ຿ͷޮ཰⬆
    •࣮ࡍ: ͪΐͬͱָʹͳͬͨؾ͕͢Δ
    >
    ίʔυͷಡΈํʹয఺Λ౰ͯͨಈػ

    View Slide

  23. ͜ͷൃදͰݴ͏ʮෳࡶʯͱ͸
    •ԿΛ͍ͯ͠Δͷ͔Θ͔Βͳ͍
    •Θ͔Δ·Ͱʹ͍͕͔͔࣌ؒ͢͝Δ
    •΍Δ͜ͱ͕ଟա͗ͯ௥͍͖Εͳ͍
    ෳࡶͷఆٛ

    View Slide

  24. ͳͥෳࡶʹײ͡Δͷ͔ʁ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ

    View Slide

  25. ࢼͯ͠ΈΔ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  26. ͜͜ͰΫΠζͰ͢
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  27. ΫΠζᶃ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  28. 05
    04
    03
    02
    01
    00
    Կ͕ग़ྗ͞ΕΔʁ
    MOo MOo MOo moO MOo moO MOo moO moO MoO moO MoO moO moO MoO
    MOO MoO MoO MoO MoO MOO moO MoO MoO MoO MOO moO MoO MoO MoO
    MoO moO MOo MOo moO MoO MoO MoO mOo mOo mOo MOo moo mOo MOo
    moo mOo MoO MoO MoO moo moO moO moO Moo moO MOo MOo moO MOo
    Moo moO Moo Moo MoO moO MoO MoO MoO MoO moO MoO MoO MoO Moo
    MoO moO MOo MOo moO MOO moO MOo Moo mOo mOo moo
    00:
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  29. ԿΛ͍ͯ͠Δʁ
    MOo MOo MOo moO MOo moO MOo moO moO MoO moO MoO moO moO MoO
    MOO MoO MoO MoO MoO MOO moO MoO MoO MoO MOO moO MoO MoO MoO
    MoO moO MOo MOo moO MoO MoO MoO mOo mOo mOo MOo moo mOo MOo
    moo mOo MoO MoO MoO moo moO moO moO Moo moO MOo MOo moO MOo
    Moo moO Moo Moo MoO moO MoO MoO MoO MoO moO MoO MoO MoO Moo
    MoO moO MOo MOo moO MOO moO MOo Moo mOo mOo moo
    https://tio.run/##fY7BDcAgDANXYSHkIXhX
    fj
    J@KggpSYN4nGzFwrixi1SwGA@RdPqfmq9Y6oHLbzfr8X/7bNwWmh986Np7tYu5f77hlyuXbQGeNwOx23aTIi8
    Hello World!
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  30. ԿΛ͍ͯ͠Δʁ
    MOo MOo MOo moO MOo moO MOo moO moO MoO moO MoO moO moO MoO
    MOO MoO MoO MoO MoO MOO moO MoO MoO MoO MOO moO MoO MoO MoO
    MoO moO MOo MOo moO MoO MoO MoO mOo mOo mOo MOo moo mOo MOo
    moo mOo MoO MoO MoO moo moO moO moO Moo moO MOo MOo moO MOo
    Moo moO Moo Moo MoO moO MoO MoO MoO MoO moO MoO MoO MoO Moo
    MoO moO MOo MOo moO MOO moO MOo Moo mOo mOo moo
    https://tio.run/##fY7BDcAgDANXYSHkIXhX
    fj
    J@KggpSYN4nGzFwrixi1SwGA@RdPqfmq9Y6oHLbzfr8X/7bNwWmh986Np7tYu5f77hlyuXbQGeNwOx23aTIi8
    Hello World!
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  31. ஌ࣝෆ଍ʹΑΔෳࡶ͞
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  32. ΫΠζᶄ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  33. func doItNow() {
    let result = doSomething1()
    if result {
    doSomething2()
    } else {
    doSomething3()
    }
    }
    ԿΛ͍ͯ͠Δʁ
    05
    04
    03
    02
    01
    00
    00:
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  34. func doItNow() {
    let result = doSomething1()
    if result {
    doSomething2()
    } else {
    doSomething3()
    }
    }
    ԿΛ͍ͯ͠Δʁ
    ͜Ε͚ͩͩͱΘ͔Βͳ͍
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  35. ৘ใෆ଍͔Β͘Δෳࡶ͞
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  36. ΫΠζᶅ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  37. Կ͕ग़ྗ͞ΕΔʁ
    let asciiRange = 32...126
    var asciiValues: [UInt8] =
    [105, 79, 83, 68, 67, 32, 74, 97, 112, 97, 110, 33]
    var result = ""
    while !asciiValues.isEmpty {
    let first = asciiValues.first!
    for value in asciiRange {
    if value == first {
    result.append(Character(UnicodeScalar(value)!))
    asciiValues.removeFirst()
    }
    }
    }
    print(result)
    05
    04
    03
    02
    01
    00
    00:
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  38. Hello World!
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  39. Ͱ͸ͳ͘…
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  40. let asciiRange = 32...126
    var asciiValues: [UInt8] =
    [105, 79, 83, 68, 67, 32, 74, 97, 112, 97, 110, 33]
    var result = ""
    while !asciiValues.isEmpty {
    let first = asciiValues.first!
    for value in asciiRange {
    if value == first {
    result.append(Character(UnicodeScalar(value)!))
    asciiValues.removeFirst()
    }
    }
    }
    print(result)
    ݁Ռ͸ʁ
    iOSDC Japan!
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  41. ॲཧೳྗෆ଍͔Β͘Δෳࡶ͞
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  42. ॲཧೳྗෆ଍
    ৘ใෆ଍
    ஌ࣝෆ଍
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ΫΠζ

    View Slide

  43. ೝ஌ϓϩηε͕
    ๦͛ΒΕΔ͜ͱͰൃੜ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε

    View Slide

  44. ҟͳΔೝ஌ϓϩηε͕
    ओͳݪҼ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε

    View Slide

  45. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ࡾͭͷೝ஌ϓϩηε
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε

    View Slide

  46. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ୹ظهԱ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ୹ظهԱ

    View Slide

  47. ୹ظهԱ
    ৘ใΛҰ࣌తʹอ࣋͢Δ
    ྫ: ࠓಡΜͰ͍Δίʔυͷม਺ͷ໊લ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ୹ظهԱ

    View Slide

  48. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ϫʔΩϯάϝϞϦ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ϫʔΩϯάϝϞϦ

    View Slide

  49. ৘ใΛҰ࣌తʹอ࣋͠
    ͦͷ৘ใΛૢ࡞͢Δ
    ϫʔΩϯάϝϞϦ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ϫʔΩϯάϝϞϦ

    View Slide

  50. ৘ใΛҰ࣌తʹอ࣋͠
    ͦͷ৘ใΛૢ࡞͢Δ
    ϫʔΩϯάϝϞϦ
    ྫ: ಄ͷதͰϧʔϓॲཧΛ࣮ߦ͢Δ
    for i in 0...9 {

    print(i * 2)

    }
    i = 0 → “0”
    i = 1 → “2”

    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ϫʔΩϯάϝϞϦ

    View Slide

  51. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ௕ظهԱ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ௕ظهԱ

    View Slide

  52. ௕ظهԱ
    ৘ใΛӬଓతʹอ࣋͢Δ
    ྫ: ੲॻ͍ͨίʔυɺֶशͨ͠ϓϩάϛϯά஌ࣝ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε > ௕ظهԱ

    View Slide

  53. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ࡾͭͷೝ஌ϓϩηε
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηε

    View Slide

  54. ೝ஌ϓϩηεͱ
    ෆ଍ͷؔ܎
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍

    View Slide

  55. ೝ஌ϓϩηεͱෆ଍ͷؔ܎
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ৘ใෆ଍ ஌ࣝෆ଍
    ॲཧೳྗෆ଍
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍

    View Slide

  56. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ৘ใෆ଍ ஌ࣝෆ଍
    ॲཧೳྗෆ଍
    ୹ظهԱ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ୹ظهԱ

    View Slide

  57. •৘ใෆ଍ͱؔ࿈͍ͯ͠Δ
    ୹ظهԱͱෆ଍ͷؔ܎
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ୹ظهԱ

    View Slide

  58. •৘ใෆ଍ͱؔ࿈͍ͯ͠Δ
    •4~7ݸΛ໿30ඵอ࣋͢Δ
    ୹ظهԱͱෆ଍ͷؔ܎
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ୹ظهԱ

    View Slide

  59. •৘ใෆ଍ͱؔ࿈͍ͯ͠Δ
    •4~7ݸΛ໿30ඵอ࣋͢Δ = ݶք͕͋Δ
    ୹ظهԱͱෆ଍ͷؔ܎
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ୹ظهԱ

    View Slide

  60. •৘ใෆ଍ͱؔ࿈͍ͯ͠Δ
    •4~7ݸΛ໿30ඵอ࣋͢Δ = ݶք͕͋Δ
    •ݶքʹୡ͢Δͱ…
    ৽͍͠৘ใ͕ೖΔͨͼʹݹ͍৘ใ͕ൈ͚Δ
    ୹ظهԱͱෆ଍ͷؔ܎
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ୹ظهԱ

    View Slide

  61. •৘ใෆ଍ͱؔ࿈͍ͯ͠Δ
    •4~7ݸΛ໿30ඵอ࣋͢Δ = ݶք͕͋Δ
    •ݶքʹୡ͢Δͱ…
    ৽͍͠৘ใ͕ೖΔͨͼʹݹ͍৘ใ͕ൈ͚Δ
    ୹ظهԱͱෆ଍ͷؔ܎
    ͋Εʁ͖ͬ͞ͷͳΜ͚ͩͬʁ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ୹ظهԱ

    View Slide

  62. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ৘ใෆ଍ ஌ࣝෆ଍
    ॲཧೳྗෆ଍
    ϫʔΩϯάϝϞϦ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ϫʔΩϯάϝϞϦ

    View Slide

  63. ϫʔΩϯάϝϞϦͱෆ଍ͷؔ܎
    •ॲཧೳྗෆ଍ͱؔ࿈͍ͯ͠Δ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ϫʔΩϯάϝϞϦ

    View Slide

  64. ϫʔΩϯάϝϞϦͱෆ଍ͷؔ܎
    •ॲཧೳྗෆ଍ͱؔ࿈͍ͯ͠Δ
    •୹ظهԱΛར༻ = ݶք͕͋Δ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ϫʔΩϯάϝϞϦ

    View Slide

  65. ϫʔΩϯάϝϞϦͱෆ଍ͷؔ܎
    •ॲཧೳྗෆ଍ͱؔ࿈͍ͯ͠Δ
    •୹ظهԱΛར༻ = ݶք͕͋Δ
    •ݶքʹୡ͢Δͱ…
    •ඞཁͳ৘ใΛ๨Εͯ͠·͏
    •͏͔ͬΓϛε͕૿͑Δ
    •෺ࣄ͕֮͑ͮΒ͍
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ϫʔΩϯάϝϞϦ

    View Slide

  66. ϫʔΩϯάϝϞϦͱෆ଍ͷؔ܎
    •ॲཧೳྗෆ଍ͱؔ࿈͍ͯ͠Δ
    •୹ظهԱΛར༻ = ݶք͕͋Δ
    •ݶքʹୡ͢Δ
    •ඞཁͳ৘ใΛ๨Εͯ͠·͏
    •͏͔ͬΓϛε͕૿͑Δ
    •෺ࣄ͕֮͑ͮΒ͍
    ಄͕ճΒͳ͍…
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ϫʔΩϯάϝϞϦ

    View Slide

  67. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ৘ใෆ଍ ஌ࣝෆ଍
    ॲཧೳྗෆ଍
    ௕ظهԱ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ௕ظهԱ

    View Slide

  68. ௕ظهԱͱෆ଍ͷؔ܎
    •஌ࣝෆ଍ͱؔ࿈͍ͯ͠Δ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ௕ظهԱ

    View Slide

  69. ௕ظهԱͱෆ଍ͷؔ܎
    •஌ࣝෆ଍ͱؔ࿈͍ͯ͠Δ
    •هԱʹͳ͍ͨΊ৘ใΛऔΓग़ͤͳ͍
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ௕ظهԱ

    View Slide

  70. •஌ࣝෆ଍ͱؔ࿈͍ͯ͠Δ
    •هԱʹͳ͍ͨΊ৘ใΛऔΓग़ͤͳ͍
    ௕ظهԱͱෆ଍ͷؔ܎
    Կ΋Θ͔Βͳ͍͔Β
    ͱΓ͋͑ͣௐ΂Α͏
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍ > ௕ظهԱ

    View Slide

  71. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ৘ใෆ଍ ஌ࣝෆ଍
    ॲཧೳྗෆ଍
    ೝ஌ϓϩηεͱෆ଍ͷؔ܎
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͱෆ଍

    View Slide

  72. ೝ஌ϓϩηε͸࿈ܞ͢Δ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  73. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ

    ❶৽͍͠৘ใΛऔಘ͢Δ
    ୹ظهԱ⁵ϫʔΩϯάϝϞϦ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  74. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ


    ❷ؔ࿈৘ใΛऔΓग़ͯ͠❶ͷ৘ใͱඥ͚ͮΔ
    ❶৽͍͠৘ใΛऔಘ͢Δ
    ϫʔΩϯάϝϞϦ⁵௕ظهԱ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  75. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ❷ؔ࿈৘ใΛऔΓग़ͯ͠❶ͷ৘ใͱඥ͚ͮΔ


    ❶৽͍͠৘ใΛऔಘ͢Δ
    ❸❶ͱ❷ͷ৘ใΛجʹ࡞ۀ͢Δ

    ίʔυͷཧղ͸ϫʔΩϯάϝϞϦ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  76. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ❷ؔ࿈৘ใΛऔΓग़ͯ͠❶ͷ৘ใͱඥ͚ͮΔ


    ❶৽͍͠৘ใΛऔಘ͢Δ
    ❸❶ͱ❷ͷ৘ใΛجʹ࡞ۀ͢Δ

    ೝ஌ϓϩηε͸࿈ܞ͢Δ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  77. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    σʔλ͸͋Γ·ͤΜ
    ❷ ❶

    Ұͭͷ໰୊͕ଞͷ໰୊Λى͜͢
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  78. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    σʔλ͸͋Γ·ͤΜ
    σʔλ͍ͩ͘͞
    ❷ ❶

    Ұͭͷ໰୊͕ଞͷ໰୊Λى͜͢
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  79. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    σʔλ͸͋Γ·ͤΜ
    σʔλ͍ͩ͘͞
    ❷ ❶

    ༰ྔͷݶք
    Ұͭͷ໰୊͕ଞͷ໰୊Λى͜͢
    ֮͑ͱ͔ͳͯ͘͸…
    ͳͥෳࡶʹײ͡Δͷ͔ʁ > ೝ஌ϓϩηεͷ࿈ܞ

    View Slide

  80. ͳͥෳࡶʹײ͡Δͷ͔ʁ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ

    View Slide

  81. ೝ஌ϓϩηε͕๦͛ΒΕΔͱ
    ෳࡶʹײ͡Δ
    ͳͥෳࡶʹײ͡Δͷ͔ʁ

    View Slide

  82. ෳࡶ͞΁ͷରࡦ
    ෳࡶ͞΁ͷରࡦ

    View Slide

  83. ೝ஌ϓϩηε͕
    ๦͛ΒΕͳ͍Α͏ʹ͢Δ
    ෳࡶ͞΁ͷରࡦ

    View Slide

  84. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ೝ஌ϓϩηεʹԠͨ͡ରࡦ
    ෳࡶ͞΁ͷରࡦ

    View Slide

  85. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ୹ظهԱ΁ͷରࡦ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ

    View Slide

  86. ໰୊:
    ୹ظهԱͷ༰ྔͷݶք
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ

    View Slide

  87. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ୹ظهԱ΁ͷରࡦ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  88. νϟϯΫ
    ਓ͕ؒҰ౓ʹॲཧͰ͖Δ
    ৘ใͷ୯Ґ
    ྫ: ΞϧϑΝϕοτCͱAͱT → CAT
    09012345678 → ి࿩൪߸
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  89. νϟϯΫԽ
    ෳ਺ͷ৘ใΛҰͭͷνϟϯΫ
    ͱͯ͠άϧʔϐϯά͢Δ͜ͱ
    i O S
    D C J
    iOSDC
    Japan
    a p
    a n
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  90. •஌͍ͬͯΔจ๏(ྫ: for inɺif elseͳͲ)
    •ؔ࿈ͨ͠ม਺ͷ૊Έ߹Θͤ(ྫ: ࠲ඪͷXYͳͲ)
    •σβΠϯύλʔϯɺσʔλߏ଄
    •վߦͰ෼͔Εͨ·ͱ·Γ
    ৘ใͷνϟϯΫԽ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  91. νϟϯΫͰ͖Δ͔νΣοΫ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  92. ԋश
    ࠓ͔ΒݟΔίʔυΛ
    30ඵͰ͍֮͑ͯͩ͘͞ɻ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  93. func slowSort(_ i: Int, _ j: Int,
    _ numberList: inout [Int]) {
    guard i < j else { return }
    let m = (i+j)/2
    slowSort(i, m, &numberList)
    slowSort(m+1, j, &numberList)
    if numberList[j] < numberList[m] {
    let temp = numberList[j]
    numberList[j] = numberList[m]
    numberList[m] = temp
    }
    slowSort(i, j-1, &numberList)
    }
    30
    29
    28
    27
    26
    25
    24
    23
    22
    21
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    09
    08
    07
    06
    05
    04
    03
    02
    01
    00
    00:
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ
    ޮՌԻɿϙέοτα΢ϯυ – https://pocket-se.info/

    View Slide

  94. ऴྃ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  95. ԋश
    Ͱ͸ɺࠓݟͨίʔυΛ
    Կ΋ݟͣʹ
    30ඵͰ࠶ݱ͍ͯͩ͘͠͞ɻ
    (IDEͰ΋ࢴͰ΋ԿͰ΋OK)
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  96. 30
    29
    28
    27
    26
    25
    24
    23
    22
    21
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    09
    08
    07
    06
    05
    04
    03
    02
    01
    00
    00:
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ
    ޮՌԻɿϙέοτα΢ϯυ – https://pocket-se.info/

    View Slide

  97. ऴྃ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  98. ৼΓฦΓ
    • ؆୯ʹਖ਼͘͠࠶ݱͰ͖ͨॴ͸Ͳ͜ʁ
    • ࠶ݱͰ͸ͳͯ͘΋ਖ਼͍͠ॴ͸͋ͬͨʁ
    • ·ͬͨ͘࠶ݱͰ͖ͳ͔ͬͨॴ͸͋ͬͨʁ
    • ͦͷݪҼ͸Կʁ
    • ݟ׳Εͳ͍ϓϩάϥϛϯά֓೦͸͋ͬͨʁ
    • ݟ׳Εͳ͍ϏδωεྖҬͷ֓೦͸͋ͬͨʁ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  99. • ؆୯ʹਖ਼͘͠࠶ݱͰ͖ͨॴ͸Ͳ͜ʁ
    • ࠶ݱͰ͸ͳͯ͘΋ਖ਼͍͠ॴ͸͋ͬͨʁ
    • ·ͬͨ͘࠶ݱͰ͖ͳ͔ͬͨॴ͸͋ͬͨʁ
    • ͦͷݪҼ͸Կʁ
    • ݟ׳Εͳ͍ϓϩάϥϛϯά֓೦͸͋ͬͨʁ
    • ݟ׳Εͳ͍ϏδωεྖҬͷ֓೦͸͋ͬͨʁ
    ৼΓฦΓ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  100. ୹ظهԱ΁ͷରࡦ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > νϟϯΫԽ

    View Slide

  101. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ୹ظهԱ΁ͷରࡦ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  102. ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ❷ؔ࿈৘ใΛऔΓग़ͯ͠❶ͷ৘ใͱඥ͚ͮΔ


    ❶৽͍͠৘ใΛऔಘ͢Δ
    ❸❶ͱ❷ͷ৘ใΛجʹ࡞ۀ͢Δ

    ೝ஌ϓϩηε͸࿈ܞ͢Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  103. •௕ظهԱ͔Β৘ใΛऔಘͰ͖Δ
    → ୹ظهԱ͕༰ྔͷݶքʹୡͮ͠Β͍
    ෛՙΛ෼ࢄ͢Δ
    ୹ظهԱ
    10t
    ௕ظهԱ
    5t
    ୹ظهԱ
    5t
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  104. ௕ظهԱ͕
    ৘ใΛอ࣋͢Δ࢓૊Έ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  105. εΩʔϚ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  106. εΩʔϚ
    ࣅͨهԱಉ͕࢜ඥ෇͍ͮͨ
    ωοτϫʔΫߏ଄
    ݘ
    ̐଍าߦ
    ϫϯͱ໐͘
    ਓʹͳͭ͘

    ࣗ༝
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  107. εΩʔϚ
    ࣅͨهԱಉ͕࢜ඥ෇͍ͮͨ
    ωοτϫʔΫߏ଄
    ݘ
    ̐଍าߦ
    ϫϯͱ໐͘
    ਓʹͳͭ͘

    ࣗ༝
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ
    ݘνϟϯΫ
    ೣνϟϯΫ

    View Slide

  108. ݀Λ۷Δͷ͕޷͖
    ݘ
    ̐଍าߦ
    ϫϯͱ໐͘
    ਓʹͳͭ͘
    εΩʔϚ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ

    View Slide

  109. ௕ظهԱΛ׆༻͢Δίπ
    •ఆظతʹ৘ใʹ৮ΕΔ
    •ෳ਺ͷײ֮Λ࢖͏(ݟΔɺௌ͘ɺ৮Δ…)
    •ੵۃతͳνϟϯΫԽ(ϦετԽɺݟग़͠෇͚)
    •ͲΜͲΜਂ۷Γ͢Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  110. •ఆظతʹ৘ใʹ৮ΕΔ
    •ෳ਺ͷײ֮Λ࢖͏(ݟΔɺௌ͘ɺಡΉ)
    •ੵۃతʹνϟϯΫԽ͢Δ(ϦετԽɺݟग़͠෇͚)
    •ͲΜͲΜਂ۷Γ͢Δ
    ఆظతʹ৘ใʹ৮ΕΔ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  111. ௕ظهԱ
    ৘ใΛӬଓతʹอ࣋͢Δ…
    ͕ɺ๨ΕΔ͜ͱ΋͋Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  112. ๨٫ۂઢ
    ֮
    ͑
    ͯ
    ͍
    Δ
    ׂ
    ߹
    (%)
    ܦա࣌ؒ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide





  113. ๨٫ۂઢ
    ֮
    ͑
    ͯ
    ͍
    Δ
    ׂ
    ߹
    (%)
    ܦա࣌ؒ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  114. ܁Γฦͯ͠ఆணͤ͞Δ
    ௕ظهԱ
    ৘ใ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  115. ෳ਺ͷײ֮Λ࢖͏
    •ఆظతʹ৘ใʹ৮ΕΔ
    •ෳ਺ͷײ֮Λ࢖͏(ݟΔɺௌ͘ɺಡΉ)
    •ੵۃతʹνϟϯΫԽ͢Δ(ϦετԽɺݟग़͠෇͚)
    •ΠϝʔδԽ΍ղऍΛͯ͠طଘͷهԱͱؔ࿈෇͚Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  116. ײ֮هԱ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  117. ײ֮هԱ
    ײ֮ث׭͔ΒૹΒΕ͖ͯͨ
    ৘ใΛॠؒతʹอ࣋͢Δ
    👀 👂 ✍ 👃 👄
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  118. ֎෦৘ใˠײ֮هԱ
    ୹ظهԱ
    ײ֮هԱ

    ❶ ֎෦͔Βͷ৘ใΛ0~2ඵอ࣋͢Δ
    👀
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  119. ײ֮هԱˠ୹ظهԱ
    ײ֮هԱ ୹ظهԱ
    ❶ ֎෦͔Βͷ৘ใΛ0~2ඵอ࣋͢Δ

    ❷஫ҙΛ޲͚͍ͯΔ৘ใͷΈૹΒΕΔ

    👀
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  120. ײ֮هԱʼ୹ظهԱ
    ײ֮هԱ͸୹ظهԱҎ্ͷ
    ৘ใΛอ͍࣋ͯ͠Δ
    ײ֮هԱ ୹ظهԱ
    ❶ ֎෦͔Βͷ৘ใΛ0~2ඵอ࣋͢Δ

    ❷஫ҙΛ޲͚͍ͯΔ৘ใͷΈૹΒΕΔ

    👀
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  121. ֎෦৘ใˠײ֮هԱˠ୹ظهԱ
    ײ֮هԱ ୹ظهԱ
    ❶ ֎෦͔ΒೖΔ৘ใͷස౓͕૿͑Δ
    ❷୹ظهԱʹૹΒΕΔ৘ใͷස౓͕૿͑Δ
    👀
    👂

    ❶ ❷
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  122. ୹ظهԱˠ௕ظهԱ
    ײ֮هԱ ୹ظهԱ
    ❶ ֎෦͔ΒೖΔ৘ใͷස౓͕૿͑Δ
    ❷୹ظهԱʹૹΒΕΔ৘ใͷස౓͕૿͑Δ
    👀
    👂

    ❸ ௕ظهԱ΁৘ใ͕܁Γฦ͠ೖΔ
    ௕ظهԱ
    ϫʔΩϯάϝϞϦ

    ❶ ❷
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  123. ͜Ε͚ͩͰ͸଍Γͳ͍
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  124. ௕ظهԱͷೋͭͷڧ౓
    •อଘڧ౓
    ͲΕ͚ͩ௕͘هԱͰ͖Δ͔
    •ݕࡧڧ౓
    ͲΕ͚ͩૉૣ͘ࢥ͍ग़ͤΔ͔
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  125. อଘڧ౓
    •อଘڧ౓
    ͲΕ͚ͩ௕͘هԱͰ͖Δ͔
    •ݕࡧڧ౓
    ͲΕ͚ͩ଎͘ࢥ͍ग़ͤΔ͔
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  126. ݕࡧڧ౓
    •อଘڧ౓
    ͲΕ͚ͩ௕͘هԱͰ͖Δ͔
    •ݕࡧڧ౓
    ͲΕ͚ͩૉૣ͘ࢥ͍ग़ͤΔ͔
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  127. ܁Γฦ͢ͱอଘڧ౓͸্͕Δ
    อଘڧ౓
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  128. ͨͩ܁Γฦͯ͠΋ݕࡧڧ౓͸্͕Βͳ͍
    ݕࡧڧ౓
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  129. อଘڧ౓͸ߴ͍͕ɺݕࡧڧ౓͸௿͍
    ݕࡧڧ౓
    อଘڧ౓
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  130. อଘڧ౓͸ߴ͍͕ɺݕࡧڧ౓͸௿͍
    ݕࡧڧ౓
    อଘڧ౓
    ͋ΕɺͳΜ͚ͩͬʁ
    ͦ͏͋ΕͩΑ͋Εɻ
    ͑ʔͬͱ…ࢥ͍ग़ͤͳ͍…
    Ͱ΋ઈର஌ͬͯΔΜͩΑɻ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  131. ࢥ͍ग़͢·Ͱͷ࣌ؒ΋େࣄ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  132. ݕࡧڧ౓Λ্͛Δʹ͸
    ҙࣝతͳ࿅श͕ඞཁ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  133. ௕ظهԱΛ׆༻͢Δίπ
    •ఆظతʹ৘ใʹ৮ΕΔ
    •ෳ਺ͷײ֮Λ࢖͏(ݟΔɺௌ͘ɺ৮Δ…)
    •ੵۃతͳνϟϯΫԽ(ϦετԽɺݟग़͠෇͚)
    •ͲΜͲΜਂ۷Γ͢Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  134. ੵۃతͳνϟϯΫԽ
    •ఆظతʹ৘ใʹ৮ΕΔ
    •ෳ਺ͷײ֮Λ࢖͏(ݟΔɺௌ͘ɺ৮Δ…)
    •ੵۃతͳνϟϯΫԽ(ϦετԽɺݟग़͠෇͚)
    •ͲΜͲΜਂ۷Γ͢Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  135. •ϦετԽɺݟग़͠෇͚
    ੵۃతͳνϟϯΫԽ
    Swift Concurrency
    - async/await
    - Structured Concurrency
    - actor
    return registeredIDs
    .insert(id)
    .inserted
    IDొ࿥(ॏෳ͸NG)
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  136. ͲΜͲΜਂ۷Γ͢Δ
    •ఆظతʹ৘ใʹ৮ΕΔ
    •ෳ਺ͷײ֮Λ࢖͏(ݟΔɺௌ͘ɺ৮Δ…)
    •ੵۃతͳνϟϯΫԽ(ϦετԽɺݟग़͠෇͚)
    •ͲΜͲΜਂ۷Γ͢Δ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  137. ͲΜͲΜਂ۷Γ͢Δ
    ͜͜Ͱݴ͍͍ͨͷ͸
    ͭ·Γ͜͏͍͏͜ͱͩͳɻ
    ͜͜Ͱ͸
    ͜ͷٕज़͕࢖ΘΕ͍ͯΔͳɻ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  138. εΩʔϚͷڧԽ
    ((
    ((
    ݕࡧڧ౓
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  139. Ұ౓ཧղͨ͠ΒDone
    👩💻
    👨💻 Α͠ɺཧղͨ͠ɻDone!
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  140. ωοτͰݕࡧͯ͠Done
    👩💻
    👨💻 … Done!
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  141. ҙࣝతͳ࿅शΛ܁Γฦ͢
    อଘڧ౓
    ݕࡧڧ౓
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ > ௕ظهԱ΁ͷΠϯϓοτ > ௕ظهԱΛ׆༻͢Δίπ

    View Slide

  142. ୹ظهԱ΁ͷରࡦ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλΫϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ୹ظهԱ

    View Slide

  143. ϫʔΩϯάϝϞϦ΁ͷରࡦ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλΫϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ

    View Slide

  144. ໰୊:
    ϫʔΩϯάϝϞϦͷݶք
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ

    View Slide

  145. ೝ஌ෛՙ
    ϫʔΩϯάϝϞϦͰ
    ৘ใΛॲཧ͢Δࡍʹ͔͔Δෛՙ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ

    View Slide

  146. ࡾͭͷλΠϓͷೝ஌ෛՙ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  147. •՝୊಺ࡏੑෛՙ:
    ໰୊ຊདྷͷ೉͠͞ʹΑΔෛՙ(ྫ: ೉͍͠਺ֶͷ໰୊)
    ࡾͭͷλΠϓͷೝ஌ෛՙ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  148. •՝୊಺ࡏੑෛՙ:
    ໰୊ຊདྷͷ೉͠͞ʹΑΔෛՙ(ྫ: ೉͍͠਺ֶͷ໰୊)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ͷෳࡶ͞ͳͲ)
    ࡾͭͷλΠϓͷೝ஌ෛՙ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  149. •՝୊಺ࡏੑෛՙ:
    ໰୊ຊདྷͷ೉͠͞ʹΑΔෛՙ(ྫ: ೉͍͠਺ֶͷ໰୊)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ͷෳࡶ͞ͳͲ)
    •ֶशؔ࿈ෛՙ:
    ௕ظهԱʹ৘ใΛอ࣋͢Δࡍʹൃੜ͢Δෛՙ
    ࡾͭͷλΠϓͷೝ஌ෛՙ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  150. •՝୊಺ࡏੑෛՙ:
    ໰୊ຊདྷͷ೉͠͞ʹΑΔෛՙ(ྫ: ೉͍͠਺ֶͷ໰୊)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ͷෳࡶ͞ͳͲ)
    •ֶशؔ࿈ෛՙ:
    ௕ظهԱʹ৘ใΛอ࣋͢Δࡍʹൃੜ͢Δෛՙ
    ֶशؔ࿈ෛՙ͸ඞཁෆՄܽ
    ඞཁෆՄܽ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  151. ֶशͰ͖ͳ͍
    💦
    ՝୊಺ࡏੑෛՙ
    ՝୊֎ࡏੑෛՙ
    ֶशؔ࿈ෛՙ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  152. •՝୊಺ࡏੑෛՙ:
    ໰୊ຊདྷͷ೉͠͞ʹΑΔෛՙ(ྫ: ೉͍͠਺ֶͷ໰୊)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ͷෳࡶ͞ͳͲ)
    •ֶशؔ࿈ෛՙ:
    ௕ظهԱʹ৘ใΛอ࣋͢Δࡍʹൃੜ͢Δෛՙ
    ࢒Γೋ͕ͭ໰୊
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  153. •՝୊಺ࡏੑෛՙ:
    ໰୊ͦͷ΋ͷͷ೉͠͞ʹΑΔෛՙ(ྫ: ߴ౓ͳ਺ֶͳͲ)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ʹΑΔෳࡶ͞ͳͲ)
    •ֶशؔ࿈ෛՙ(ద੾ͳෛՙ):
    ௕ظهԱʹ৘ใΛอଘ͢Δͷʹඞཁͳෛՙ
    ಛʹ
    ͜ͷෛՙΛݮΒ͢
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ࡾͭͷλΠϓͷೝ஌ෛՙ

    View Slide

  154. ೝ஌తϦϑΝΫλϦϯά
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ༨ܭͳೝ஌ෛՙΛݮΒ͢ > ೝ஌తϦϑΝΫλϦϯά

    View Slide

  155. •ಈ࡞Λม͑ͣʹࣗ෼ͷಡΈ΍͍͢ίʔυʹॻ͖׵͑Δ
    ྫ: ϝιου΍ม਺ͷΠϯϥΠϯԽ
    map → for in ϧʔϓ
    ೝ஌తϦϑΝΫλΫϦϯά
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ༨ܭͳೝ஌ෛՙΛݮΒ͢ > ೝ஌తϦϑΝΫλϦϯά

    View Slide

  156. •ಈ࡞Λม͑ͣʹࣗ෼ͷಡΈ΍͍͢ίʔυʹॻ͖׵͑Δ
    ྫ: ϝιου΍ม਺ͷΠϯϥΠϯԽ
    map → for in ϧʔϓ
    •ཧղͷͨΊ͚ͩͳͷͰผʹಈ͔ͳͯ͘΋Α͍
    ೝ஌తϦϑΝΫλΫϦϯά
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ༨ܭͳೝ஌ෛՙΛݮΒ͢ > ೝ஌తϦϑΝΫλϦϯά

    View Slide

  157. •՝୊಺ࡏੑෛՙ:
    ໰୊ຊདྷͷ೉͠͞ʹΑΔෛՙ(ྫ: ೉͍͠਺ֶͷ໰୊)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ͷෳࡶ͞ͳͲ)
    •ֶशؔ࿈ෛՙ:
    ௕ظهԱʹ৘ใΛอ࣋͢Δࡍʹൃੜ͢Δෛՙ
    ໰୊ͦͷ΋ͷ͕೉͍͠
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ໰୊ࣗମ͕೉͍͠৔߹

    View Slide

  158. •ৗʹෳ਺ͷঢ়ଶΛهԱ͠ͳ͚Ε͹ͳΒͳ͍ॲཧ
    → ϫʔΩϯάϝϞϦͷݶքʹୡ͠΍͍͢
    ྫ: ϧʔϓॲཧͷதͰෳ਺ͷঢ়ଶͷมߋΛ௥͏
    ෳ਺ͷঢ়ଶΛಉ࣌ʹѻ͏
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ໰୊ࣗମ͕೉͍͠৔߹

    View Slide

  159. •໰୊ࣗମΛม͑Δ͜ͱ͸೉͍͠
    Ͳ͏͢Δʁ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ໰୊ࣗମ͕೉͍͠৔߹

    View Slide

  160. •໰୊ࣗମΛม͑Δ͜ͱ͸೉͍͠
    → ͜ͷ೉͠͞Λ෼ࢄ͢Δํ๏Λߟ͑Δ
    ໰୊ͷ೉͠͞Λ෼ࢄ͢Δ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ໰୊ࣗମ͕೉͍͠৔߹

    View Slide

  161. ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλΫϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ໰୊ࣗମ͕೉͍͠৔߹ > ৘ใΛ಄ͷத͔Β֎ʹग़͢

    View Slide

  162. •ม਺ͷมԽΛ௥͍ͬͯ͘
    ঢ়ଶભҠਤ
    func fibonacci(_ x: Int) -> Int {
    if x < 2 { return x }
    var first: Int = 0
    var second: Int = 1
    for _ in 0...(x - 2) {
    let temp = second
    second = first + second
    first = temp
    }
    return second
    }
    x
    f
    irst second temp
    init 4 0 1
    loop1 2 1 1
    loop2 1 3 1
    loop3 3 4 3
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ > ໰୊ࣗମ͕೉͍͠৔߹ > ৘ใΛ಄ͷத͔Β֎ʹग़͢

    View Slide

  163. ϫʔΩϯάϝϞϦ΁ͷରࡦ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ϫʔΩϯάϝϞϦ

    View Slide

  164. ௕ظهԱ΁ͷରࡦ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ

    View Slide

  165. ໰୊:
    ௕ظهԱͷޡೝࣝ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  166. •ؒҧ͍ͬͯΔ͚Ͳਖ਼͍͠ͱ֬৴͍ͯ͠Δঢ়ଶ
    → طଘͷεΩʔϚ͔ΒࣅͯඇͳΔ৘ใΛऔΓग़͢
    ޡೝࣝ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  167. •ؒҧ͍ͬͯΔ͚Ͳਖ਼͍͠ͱ֬৴͍ͯ͠Δঢ়ଶ
    → طଘͷεΩʔϚ͔ΒࣅͯඇͳΔ৘ใΛऔΓग़͢
    •ಛʹೝ஌ෛՙ͕ߴ͍ͱى͜Γ΍͍͢
    ྫ: ৽͍͠ϓϩδΣΫτʹࢀՃ
    ৽͍͠ϓϩάϥϛϯάݴޠΛֶͿ
    ޡೝࣝ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  168. ؾ෇͖·͔ͨ͠ʁ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  169. ͋Δݴ༿Λ
    ؒҧ͍͑ͯ·͢
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  170. • ಈ࡞Λมߋͤͣɺࣗ෼͕ಡΈ΍͍͢ίʔυʹॻ͖׵͑Δ͜ͱ
    ྫ: ϝιου΍ม਺ͷΠϯϥΠϯԽ
    map → for in ϧʔϓ
    • ཧղͷͨΊ͚ͩͳͷͰผʹಈ͔ͳͯ͘΋Α͍
    ೝ஌తϦϑΝΫλΫϦϯά
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  171. • ಈ࡞Λมߋͤͣɺࣗ෼͕ಡΈ΍͍͢ίʔυʹॻ͖׵͑Δ͜ͱ
    ྫ: ϝιου΍ม਺ͷΠϯϥΠϯԽ
    map → for in ϧʔϓ
    • ཧղͷͨΊ͚ͩͳͷͰผʹಈ͔ͳͯ͘΋Α͍
    ೝ஌తϦϑΝΫλΫϦϯά
    ✖︎
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  172. ޡೝ͕ࣝىͦ͜͠͏ͳ໰୊
    func increment(
    _ value: Int
    ) -> Int {
    value+1
    }
    func increment(
    _ value: Double
    ) -> Double {
    value+0.1
    }
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  173. ޡೝ͕ࣝىͦ͜͠͏ͳ໰୊
    func increment(
    _ value: Int
    ) -> Int {
    value+1
    }
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  174. ޡೝ͕ࣝىͦ͜͠͏ͳ໰୊
    var currentValue = 1.0
    if 2 != increment(currentValue) {
    assertionFailure(“ͦΜͳόΧͳ…”)
    }
    func increment(
    _ value: Int
    ) -> Int {
    value+1
    }
    func increment(
    _ value: Double
    ) -> Double {
    value+0.1
    }
    1 ͔ͳʁ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝ໰୊

    View Slide

  175. ط੒֓೦ͷ্ॻ͖
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝରࡦ > ط੒֓೦ͷ্ॻ͖

    View Slide

  176. •৽͍͠ೝࣝΛҙࣝతʹ࢖ͬͯ௕ظهԱʹ͋Δطଘͷೝ
    ࣝΛ཈͑Δ
    Ξϯϥʔχϯά
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝରࡦ > ط੒֓೦ͷ্ॻ͖

    View Slide

  177. ଞͷࢹ఺͔Βࢥ͍ࠐΈΛ֬ೝ͢Δ
    •ίʔυϨϏϡʔ
    •ϖΞϓϩάϥϛϯά
    •(ҰਓͳΒ)ϕΞϓϩάϥϛϯά
    •ςετΛॻ͘
    ෳࡶ͞΁ͷରࡦ > ௕ظهԱ > ޡೝࣝରࡦ > ط੒֓೦ͷ্ॻ͖

    View Slide

  178. ೝ஌ϓϩηεʹԠͨ͡ରࡦ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ೝ஌ϓϩηεʹԠͨ͡ରࡦ

    View Slide

  179. ରࡦͷ૬৐ޮՌ
    ୹ظهԱ
    ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    νϟϯΫԽ
    ৘ใΛ಄ͷத͔Β֎ʹग़͢
    ط੒֓೦ͷ্ॻ͖
    ೝ஌తϦϑΝΫλϦϯά
    ௕ظهԱ΁ͷΠϯϓοτ
    ෳࡶ͞΁ͷରࡦ > ೝ஌ϓϩηεʹԠͨ͡ରࡦ > ૬৐ޮՌ

    View Slide

  180. ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍
    ίʔυ಺༰ͷཧղ

    View Slide

  181. ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍
    ίʔυ಺༰ͷཧղ
    ΋͏Ұาઌͷ໰୊

    View Slide

  182. ໰୊:
    ίʔυͷҙਤ͕͔ͭΊͳ͍
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  183. ίʔυͷҙਤ
    •ίʔυશମ͔Βݟͨ໾ׂ΍ɺଞͷίʔυͱͷؔ܎
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  184. 💡
    ҙਤ͕͔ͭΊͳ͍ঢ়ଶ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  185. 💡 ʁ
    ҙਤ͕͔ͭΊͳ͍ঢ়ଶ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  186. •όάमਖ਼ɺػೳ௥ՃΛ͢ΔՕॴ͕Θ͔Βͳ͍
    ҙਤ͕͔ͭΊͳ͍ฐ֐
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  187. •όάमਖ਼ɺػೳ௥ՃΛ͢ΔՕॴ͕Θ͔Βͳ͍
    → ίʔυΛ͋ͪͪ͜୳͠ճΔ
    ҙਤ͕͔ͭΊͳ͍ฐ֐
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  188. •όάमਖ਼ɺػೳ௥ՃΛ͢ΔՕॴ͕Θ͔Βͳ͍
    → ίʔυΛ͋ͪͪ͜୳͠ճΔ
    → ୹ظهԱͷ༰ྔͷݶքʹୡ͢Δ
    ҙਤ͕͔ͭΊͳ͍ฐ֐
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ໰୊

    View Slide

  189. •࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ
    •఺͔ΒཧղΛ޿͍͛ͯ͘
    •ม਺ͷ໾ׂΛߟ͑Δ
    •จষಡղज़ΛԠ༻͢Δ
    ίʔυͷҙਤΛ͔ͭΉରࡦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ

    View Slide

  190. •࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ
    •఺͔ΒཧղΛ޿͍͛ͯ͘
    •ม਺ͷ໾ׂΛߟ͑Δ
    •จষಡղज़ΛԠ༻͢Δ
    ίʔυͷҙਤΛ͔ͭΉରࡦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ

    View Slide

  191. ·ͣಡΜͰ಺༰Λࢥ͍ग़͢
    •ର৅ͷίʔυશମΛಡΈɺ௚ޙʹ಺༰Λࢥ͍ग़͢
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ

    View Slide

  192. ײ֮هԱͷ৘ใ͔ΒΠϝʔδΛ࡞Δ
    ײ֮هԱ
    👀
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ

    View Slide

  193. ୹ظهԱ
    ײ֮هԱ
    👀 ϫʔΩϯά
    ϝϞϦ
    ײ֮هԱͷ৘ใ͔ΒΠϝʔδΛ࡞Δ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ

    View Slide

  194. ୹ظهԱ
    ײ֮هԱ
    👀 ϫʔΩϯά
    ϝϞϦ
    ௕ظهԱ
    ײ֮هԱͷ৘ใ͔ΒΠϝʔδΛ࡞Δ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ

    View Slide

  195. •࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ
    •఺͔ΒཧղΛ޿͍͛ͯ͘
    •ม਺ͷ໾ׂΛߟ͑Δ
    •ࣗવݴޠͷจষͷಡΈํΛࢀߟʹ͢Δ
    ίʔυͷҙਤΛ͔ͭΉରࡦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ఺͔ΒཧղΛ޿͍͛ͯ͘

    View Slide

  196. ఺ͱ͸
    ೖΓޱΛܾΊΔ
    ྫ: ΞϓϦͷΤϯτϦʔϙΠϯτɺΤϥʔൃੜߦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ఺͔ΒཧղΛ޿͍͛ͯ͘

    View Slide

  197. •࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ
    •఺͔ΒཧղΛ޿͍͛ͯ͘
    •ม਺ͷ໾ׂΛߟ͑Δ
    •จষಡղज़ΛԠ༻͢Δ
    ίʔυͷҙਤΛ͔ͭΉରࡦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  198. ม਺ͷ໾ׂ
    •ͦΕͧΕอ࣋͢Δ৘ใͷ໨త͕ҧ͏
    → ม਺ͷ໾ׂΛཧղ͢ΔͱɺͲ͏͍͏ίʔυͳͷ͔
    ͕ݟ͑ͯ͘Δ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  199. func max(in numbers: [Int]) -> Int? {
    guard let firstNumber = numbers.first else {
    return nil
    }
    var maxNumber = firstNumber
    for number in numbers {
    if number >= maxNumber {
    maxNumber = number
    }
    }
    return maxNumber
    }
    ෳ਺ͷཁૉΛ֨ೲ
    ෳ਺ͷཁૉΛ֨ೲ͢Δ΋ͷ
    Fundamentals of Programming: The Role of Variables
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  200. func max(in numbers: [Int]) -> Int? {
    guard let firstNumber = numbers.first else {
    return nil
    }
    var maxNumber = firstNumber
    for number in numbers {
    if number >= maxNumber {
    maxNumber = number
    }
    }
    return maxNumber
    }
    ࠷΋ॏཁͳ஋
    ࠷΋ॏཁͳ஋Λอ࣋͢Δ΋ͷ
    ෳ਺ͷཁૉΛ֨ೲ͢Δ΋ͷ
    Fundamentals of Programming: The Role of Variables
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  201. func max(in numbers: [Int]) -> Int? {
    guard let firstNumber = numbers.first else {
    return nil
    }
    var maxNumber = firstNumber
    for number in numbers {
    if number >= maxNumber {
    maxNumber = number
    }
    }
    return maxNumber
    }
    ௚ۙͷ஋Λอ࣋͢Δ
    ࠷΋ॏཁͳ஋Λอ࣋͢Δ΋ͷ
    ࠷΋௚ۙͷ஋Λอ࣋͢Δ΋ͷ
    ෳ਺ͷཁૉΛ֨ೲ͢Δ΋ͷ
    Fundamentals of Programming: The Role of Variables
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  202. func max(in numbers: [Int]) -> Int? {
    guard let firstNumber = numbers.first else {
    return nil
    }
    var maxNumber = firstNumber
    for number in numbers {
    if number >= maxNumber {
    maxNumber = number
    }
    }
    return maxNumber
    }
    ௚ۙͷ஋Λอ࣋͢Δ
    ࠷΋ॏཁͳ஋Λอ࣋͢Δ΋ͷ
    ࠷΋௚ۙͷ஋Λอ࣋͢Δ΋ͷ
    ෳ਺ͷཁૉΛ֨ೲ͢Δ΋ͷ
    Fundamentals of Programming: The Role of Variables
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  203. func max(in numbers: [Int]) -> Int? {
    guard let firstNumber = numbers.first else {
    return nil
    }
    var maxNumber = firstNumber
    for number in numbers {
    if number >= maxNumber {
    maxNumber = number
    }
    }
    return maxNumber
    }
    ͭ·Γ
    ࠷΋ॏཁͳ஋Λอ࣋͢Δ΋ͷ
    ࠷΋௚ۙͷ஋Λอ࣋͢Δ΋ͷ
    ෳ਺ͷཁૉΛ֨ೲ͢Δ΋ͷ
    ഑ྻͷ࠷େ஋Λ
    ฦ͍ͯ͠Δͷ͔ͳʁ
    Fundamentals of Programming: The Role of Variables
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  204. func max(in numbers: [Int]) -> Int? {
    guard let firstNumber = numbers.first else {
    return nil
    }
    var maxNumber = firstNumber
    for number in numbers {
    if number >= maxNumber {
    maxNumber = number
    }
    }
    return maxNumber
    }
    ม਺ͷ໾ׂΛߟ͑Δ
    ࠷΋ॏཁͳ஋Λอ࣋͢Δ΋ͷ
    ࠷΋௚ۙͷ஋Λอ࣋͢Δ΋ͷ
    ෳ਺ͷཁૉΛ֨ೲ͢Δ΋ͷ
    Fundamentals of Programming: The Role of Variables
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > ม਺ͷ໾ׂΛߟ͑Δ

    View Slide

  205. •࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ
    •఺͔ΒཧղΛ޿͍͛ͯ͘
    •ม਺ͷ໾ׂΛߟ͑Δ
    •จষಡղज़ΛԠ༻͢Δ
    ίʔυͷҙਤΛ͔ͭΉରࡦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > จষಡղज़ΛԠ༻͢Δ

    View Slide

  206. •ࣗવݴޠͷจষͱϓϩάϥϛϯάݴޠͷίʔυΛಡΉ
    ࣌ʹ࢖ΘΕΔ೴ͷ෦Ґ͸ࣅ͍ͯΔ
    จষಡղͱίʔυͷಡΈํ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > จষಡղज़ΛԠ༻͢Δ

    View Slide

  207. •ࣗવݴޠͷจষͱϓϩάϥϛϯάݴޠͷίʔυΛಡΉ
    ࣌ʹ࢖ΘΕΔ೴ͷ෦Ґ͸ࣅ͍ͯΔ
    •จষಡղज़͸ίʔυͷಡΈํʹ؆୯ʹԠ༻Ͱ͖Δ
    จষಡղज़ΛԠ༻Ͱ͖Δʁ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > จষಡղज़ΛԠ༻͢Δ

    View Slide

  208. •ࣗવݴޠͷจষͱϓϩάϥϛϯάݴޠͷίʔυΛಡΉ
    ࣌ʹ࢖ΘΕΔ೴ͷ෦Ґ͸ࣅ͍ͯΔ
    •จষಡղज़ΛίʔυͷಡΈํʹԠ༻Ͱ͖Δ
    ← ֶߍͰशͬͨ + ຖ೔࣮ફ͍ͯ͠Δ
    ɹྫ: ಡॻɺχϡʔε
    จষಡղज़ΛԠ༻Ͱ͖Δʁ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > จষಡղज़ΛԠ༻͢Δ

    View Slide

  209. จষಡղͷࣣͭͷश׳
    https://www.researchgate.net/publication/27474121_The_Seven_Habits_of_Highly_E
    ff
    ective_Readers
    จষಡղͷࣣͭͷश׳ ίʔυΛಡΉςΫχοΫ
    ༧උ஌ࣝͷ׆ੑԽ શମΛͬ͟ͱಡΉ
    த৺ͱͳΔ෺ޠͷ୳ࡧ ॏཁͩͱࢥ͏ϙΠϯτΛϦετΞοϓ͢Δ
    ਪ࿦ ࡞ΒΕͨഎܠ΍࡞ऀͷҙਤΛߟ͑Δ
    ࢹ֮Խ ঢ়ଶભҠਤΛඳ͍ͨΓɺґଘؔ܎ΛઢͰ݁Ϳ
    طଘͷ஌ࣝͱͷϦϯΫ աڈʹࣅͨΑ͏ͳίʔυΛݟͨ͜ͱͳ͍͔ࢥ͍ग़͢
    ࣗ໰ࣗ౴ ٙ໰ʹࢥͬͨ͜ͱΛϦετΞοϓͯ͠ճ౴͢Δ
    ಺༰ͷཁ໿ ιʔευΩϡϝϯτΛॻ͘
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ > จষಡղज़ΛԠ༻͢Δ

    View Slide

  210. •࠷ॳʹίʔυͷΠϝʔδΛ࡞Δ
    •఺͔ΒཧղΛ޿͍͛ͯ͘
    •ม਺ͷ໾ׂΛߟ͑Δ
    •จষಡղज़ΛԠ༻͢Δ
    ίʔυͷҙਤΛ͔ͭΉରࡦ
    ෳࡶ͞΁ͷରࡦ > ίʔυͷҙਤ͕͔ͭΊͳ͍ > ରࡦ

    View Slide

  211. ೝ஌ϓϩηεશൠʹର͢Δ
    ൚༻తͳରࡦ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ

    View Slide

  212. •ूதͰ͖Δ؀ڥͮ͘Γ
    •ׂΓࠐΈΛݮΒ͢
    •ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ
    ൚༻తͳରࡦ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ

    View Slide

  213. •ूதͰ͖Δ؀ڥͮ͘Γ
    •ׂΓࠐΈΛݮΒ͢
    •ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ
    ൚༻తͳରࡦ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ > ूதͰ͖Δ؀ڥͮ͘Γ

    View Slide

  214. •ײ֮هԱ͸ແҙࣝʹ৭ʑͱهԱ͍ͯ͠Δ
    ײ֮هԱͷಛੑ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ > ूதͰ͖Δ؀ڥͮ͘Γ
    👀
    👂
    ײ֮هԱ

    View Slide

  215. •ײ֮هԱ͸ແҙࣝʹ৭ʑͱهԱ͍ͯ͠Δ
    •༨ܭͳ৘ใ͕͋Δͱ೴ʹ༨ܭͳ৘ใ͕ೖͬͯ͘Δ
    ༨ܭͳ৘ใˠෛՙ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ > ूதͰ͖Δ؀ڥͮ͘Γ
    👀
    👂
    ײ֮هԱ
    💦

    View Slide

  216. •ײ֮هԱ͸ແҙࣝʹ৭ʑͱهԱ͍ͯ͠Δ
    •༨ܭͳ৘ใ͕͋Δͱ೴ʹ༨ܭͳ৘ใ͕ೖͬͯ͘Δ
    → ͳΔ΂͘༨ܭͳ৘ใ͕ೖΒͳ͍Α͏ʹ͢Δ
    ༨ܭͳ৘ใΛःஅ͢Δ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ > ूதͰ͖Δ؀ڥͮ͘Γ
    ✖︎
    ✖︎
    ✖︎
    👀
    👂
    ײ֮هԱ

    View Slide

  217. •૽ԻΛආ͚Δ
    •λεΫΛ2ͭҎ্ಉ࣌ʹߦΘͳ͍
    ྫ: slackνΣοΫ+ίʔσΟϯά
    •݈߁ʹؾΛ෇͚Δ(ਭ຾ɺٳܜɺӡಈ)
    ༨ܭͳ৘ใΛೖΕͳ͍ͨΊʹ
    ৘ใաଟʹ͝༻৺ʂੜ࢈ੑͷ௿ԼΛট͘ʮೝ஌తաෛՙʯ΁ͷରॲ๏ ᴷᴷ ւͷ޲͜͏͔ΒΦϐχΦϯ ͦͷ70
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ > ूதͰ͖Δ؀ڥͮ͘Γ

    View Slide

  218. •ूதͰ͖Δ؀ڥͮ͘Γ
    •ׂΓࠐΈΛݮΒ͢
    •ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ
    ൚༻తͳରࡦ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈΛݮΒ͢

    View Slide

  219. •ͨ͘͞Μ͋Δ
    Ұ౓ͷׂΓࠐΈͰඅ΍࣌ؒ͢͸ฏۉ15~20෼
    2࣌ؒͷίʔσΟϯάΛअຐ͞Εͳ͍ͷ͸1ճ/೔ͷΈ
    ࡞ۀͷதஅ͔Βίʔυͷฤूʹ໭Δͷʹ໿25෼
    ׂΓࠐΈʹؔ͢Δݚڀ݁Ռ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈΛݮΒ͢

    View Slide

  220. •Ұ౓ׂΓࠐΈ͕͋Δͱɺݩͷ࡞ۀʹ͙͢໭Εͳ͍
    ׂΓࠐΈͷσϝϦοτ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈΛݮΒ͢
    λεΫ λεΫ
    ผ࡞ۀ

    View Slide

  221. •Ұ౓ׂΓࠐΈ͕͋Δͱɺݩͷ࡞ۀʹ͙͢໭Εͳ͍
    → ݩͷ࡞ۀʹඞཁͳ৘ใΛࢥ͍ग़͢࿑ྗ͕ඞཁ
    → ಉ͡࡞ۀΛ܁Γฦ͢
    ׂΓࠐΈͷσϝϦοτ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈΛݮΒ͢
    λεΫ λεΫ
    ผ࡞ۀ

    View Slide

  222. •νϟοτͷ௨஌ΛҰఆظؒΦϑʹ͓ͯ͘͠
    •ΧϨϯμʔʹूதλΠϜΛ༧໿͓ͯ͘͠
    •ҰਓʹͳΕΔ৔ॴΛݟ͚ͭΔ
    ׂΓࠐΈΛݮΒͨ͢Ίʹ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈΛݮΒ͢
    ✖︎

    View Slide

  223. •ूதͰ͖Δ؀ڥͮ͘Γ
    •ׂΓࠐΈΛݮΒ͢
    •ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ
    ൚༻తͳରࡦ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ

    View Slide

  224. •ͬ͘͟Γͱͨ͠ίʔυͷΠϝʔδΛ಄ͷ֎ʹه࿥͓ͯ͘͠
    •ίϯύΠϧΤϥʔঢ়ଶʹ͓ͯ͘͠
    •TODOίϝϯτΛ࢒͢(ॻ͍ͨ΋ͷΛ๨Ε͕ͪͳͷͰ஫ҙ)
    •େ͖ͳ໰୊͸ࡉ͔͘෼͚ɺࢥ͍ग़͞ͳ͚Ε͹ͳΒͳ͍ྔ
    ΛݮΒ͢
    ԿΛ͍͔ͯͨ͠ࢥ͍ग़ͤΔ࢓૊Έ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ >ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ
    💡

    View Slide

  225. •ूதͰ͖Δ؀ڥͮ͘Γ
    •ׂΓࠐΈΛݮΒ͢
    •ׂΓࠐΈ͔Β෮ؼ͠΍͘͢͢Δ
    ൚༻తͳରࡦ
    ෳࡶ͞΁ͷରࡦ > ൚༻తͳରࡦ

    View Slide

  226. ෳࡶ͞΁ͷରࡦ
    ෳࡶ͞΁ͷରࡦ

    View Slide

  227. ೴ͷঢ়ଶΛ஌Γ
    ෛՙΛܰݮ͢Δ
    ෳࡶ͞΁ͷରࡦ

    View Slide

  228. ίʔυΛಡΉςΫχοΫΛ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ

    View Slide

  229. ෳࡶͳίʔυΛಡΈ΍͘͢͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ

    View Slide

  230. ಡΈ΍͍͢ίʔυΛॻ͘
    ෳࡶͳίʔυΛಡΈ΍͘͢͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ

    View Slide

  231. ಡΈ΍͍͢ίʔυΛॻ͘
    ෳࡶͳίʔυΛಡΈ΍͘͢͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ
    ίʔυΛॻ͘ࡍʹ΋
    ಉ͡ςΫχοΫΛ׆༻Ͱ͖Δ

    View Slide

  232. ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    •ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    •೴ͷ࢓૊ΈΛར༻͢Δ
    •ޡղͮ͠Β͘͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    ⚪︎
    ✖︎
    ✖︎

    View Slide

  233. ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    •ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    •೴ͷ࢓૊ΈΛར༻͢Δ
    •ޡղͮ͠Β͘͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    ⚪︎
    ✖︎
    ✖︎

    View Slide

  234. •՝୊಺ࡏੑෛՙ:
    ໰୊ͦͷ΋ͷͷ೉͠͞ʹΑΔෛՙ(ྫ: ߴ౓ͳ਺ֶͳͲ)
    •՝୊֎ࡏੑෛՙ:
    ໰୊ͱແؔ܎ͳෛՙ(ྫ: ಛఆͷ࣮૷ʹΑΔෳࡶ͞ͳͲ)
    •ֶशؔ࿈ෛՙ:
    ௕ظهԱʹ৘ใΛอଘ͢Δͷʹඞཁͳෛՙ
    ༨ܭͳෛՙ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍

    View Slide

  235. •ίʔυεϝϧ(※)Λ௥Ճ͠ͳ͍
    ྫ: ௕͗͢ΔύϥϝʔλϦετɺॏෳͨ͠ίʔυ
    ༨ܭͳෛՙͱͳΔ΋ͷ
    ※ όάͰ͸ͳ͍͕ϝϯςφϯε΍֦ுΛࠔ೉ʹ͢ΔՄೳੑΛࣔ͢ಛఆͷύλʔϯ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍

    View Slide

  236. •ίʔυεϝϧ(※)Λ௥Ճ͠ͳ͍
    ྫ: ௕͗͢ΔύϥϝʔλϦετɺॏෳͨ͠ίʔυ
    •ಛघͳγϯλοΫεΛ࢖Θͳ͍
    ྫ: ࣗ෼͚͔ͩ͠Θ͔Βͳ͍ΧελϜΦϖϨʔλ
    ༨ܭͳෛՙͱͳΔ΋ͷ
    ※ όάͰ͸ͳ͍͕ϝϯςφϯε΍֦ுΛࠔ೉ʹ͢ΔՄೳੑΛࣔ͢ಛఆͷύλʔϯ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    if aᵃ|˜˜|ᵏb { … }

    View Slide

  237. ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    •ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    •೴ͷ࢓૊ΈΛར༻͢Δ
    •ޡղͮ͠Β͘͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ೴ͷ࢓૊ΈΛར༻͢Δ
    ⚪︎
    ✖︎
    ✖︎

    View Slide

  238. •νϟϯΫԽ͠΍͍͢ߏ଄ʹ͢Δ
    •௕ظهԱ͔Β৘ใΛऔΓग़͠΍͘͢͢Δ
    هԱɺݕࡧ͠΍͘͢͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ೴ͷ࢓૊ΈΛར༻͢Δ

    View Slide

  239. •Ұ؏໋໊ͨ͠ن໿
    ྫ: ϓϩδΣΫτͷن໿ɺݴޠͷ׳ྫͳͲ
    •Ұ؏ͨ͠ίʔσΟϯάελΠϧ
    ྫ: DIͷํ๏ɺUIύλʔϯ(MVVM, MVP…)
    •σβΠϯύλʔϯ(σίϨʔλɺΦϒβʔό…)
    •ࣗಈπʔϧ(formatterɺlint)
    Ұ؏ੑΛҙࣝ͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ೴ͷ࢓૊ΈΛར༻͢Δ

    View Slide

  240. ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    •ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    •೴ͷ࢓૊ΈΛར༻͢Δ
    •ޡ༻ͮ͠Β͘͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ޡ༻ͮ͠Β͘͢Δ
    ⚪︎
    ✖︎
    ✖︎

    View Slide

  241. ਓ͸צҧ͍Λͯ͠͠·͏
    ·ͣೝ͓ࣝͯ͘͠΂͖͜ͱ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ޡ༻ͮ͠Β͘͢Δ

    View Slide

  242. צҧ͍ͷ࢓૊Έ
    աڈͷܦݧ
    ࢥߟͷบ
    ࣄ࣮ ࣄ࣮ͱ͸ҧ͏
    ղऍ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ޡ༻ͮ͠Β͘͢Δ

    View Slide

  243. ૣ͘ؾ͚ͮΔΑ͏ʹ͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ޡ༻ͮ͠Β͘͢Δ
    աڈͷܦݧ
    ࢥߟͷบ
    ࣄ࣮ ࣄ࣮ͱ͸ҧ͏
    ղऍ
    ͋Εʁ
    Կ͔ҧ͏ʁ

    View Slide

  244. •ίϯύΠϥͷྗΛआΓΔ
    ྫ: جຊܕˠ໌ࣔతͳܕɺෆཁͳΦϓγϣφϧΛආ͚Δ
    •ςετΛॻ͘
    •ݟ͑Δͱ͜ΖʹυΩϡϝϯτΛ௥Ճ͢Δ
    ૣ͘ؾͮͨ͘Ίͷ࢓૊Έ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ > ޡ༻ͮ͠Β͘͢Δ

    View Slide

  245. ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    •ಡΈखʹ༨ܭͳෛՙΛ͔͚ͳ͍
    •೴ͷ࢓૊ΈΛར༻͢Δ
    •ޡղͮ͠Β͘͢Δ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    ⚪︎
    ✖︎
    ✖︎

    View Slide

  246. •ࣗ෼͕ಡΈ΍͍͢ͱࢥͬͯ΋ଞͷਓʹͱͬͯ͸ͦ͏Ͱ
    ͸ͳ͍͔΋͠Εͳ͍
    ಡΈ΍͢͞͸ਓʹΑΔ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ
    ʁ 💡

    View Slide

  247. •ࣗ෼͕ಡΈ΍͍͢ͱࢥͬͯ΋ଞͷਓʹͱͬͯ͸ͦ͏Ͱ
    ͸ͳ͍͔΋͠Εͳ͍
    •νʔϜͰ։ൃ͍ͯ͠Δࡍ͸ڞ௨ͷཧղͱ߹ҙΛಘΔ͜
    ͱ͕େࣄ
    पΓͷཧղͱ߹ҙΛಘΔ
    ίʔυͷॻ͖ํʹ΋׆༻͢Δ > ಡΈ΍͍͢ίʔυΛॻ͘ʹ͸ʁ

    View Slide

  248. ·ͱΊ
    ·ͱΊ

    View Slide

  249. •ෳࡶ͞͸ೝ஌ϓϩηε͕๦͛ΒΕΔ͜ͱͰى͖Δ
    ࠓ೔࿩ͨ͜͠ͱ
    ·ͱΊ

    View Slide

  250. •ෳࡶ͞͸ೝ஌ϓϩηε͕๦͛ΒΕΔ͜ͱͰى͖Δ
    •೴ͷঢ়ଶΛ஌ΓෛՙΛܰݮ͢Δ
    ࠓ೔࿩ͨ͜͠ͱ
    ·ͱΊ

    View Slide

  251. •ෳࡶ͞͸ೝ஌ϓϩηε͕๦͛ΒΕΔ͜ͱͰى͖Δ
    •೴ͷঢ়ଶΛ஌ΓෛՙΛܰݮ͢Δ
    •ҙࣝతͳ࿅शΛ܁Γฦͯ͠਎ʹ෇͚Δ
    ࠓ೔࿩ͨ͜͠ͱ
    ·ͱΊ

    View Slide

  252. •͍ͭ΋ઈର͏·͍͘͘ͳΜͯ͜ͱ͸ͳ͍
    ͦΕͰ΋
    ·ͱΊ

    View Slide

  253. •ඞͣ͏·͍͘͘ͳΜͯ͜ͱ͸ͳ͍
    ͦͯ͠
    😔
    ࣗ෼ͬͯμϝͩͳ͋….
    🪫
    ·ͱΊ

    View Slide

  254. ·ͱΊ


    View Slide

  255. ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
    ϑΟʔυόοΫ͓ئ͍͠·͢ɻ
    ͓͠·͍

    View Slide

  256. ࢀߟࢿྉ
    • ϓϩάϥϚʔ೴

    ༏ΕͨϓϩάϥϚʔʹͳΔͨΊͷೝ஌Պֶʹجͮ͘Ξϓϩʔν
    • Hacking Your Head : Managing Information Overload (extended)
    • Microservices: Software that Fits in Your Head
    • Demine your codebase in 30min with Exploratory Refactoring
    • The Cognitive Load Theory in Software Development
    • The Seven Habits of Highly E
    ff
    ective Readers
    • Measuring Program Comprehension: A Large-Scale Field Study with Professionals
    • νϟϯΫԽνΣοΫͷιʔεݩ
    • ϫʔΩϯάϝϞϦͱνϟϯΫʹؔ͢Δઆ໌
    • ৘ใࣾձͷ৽ͨͳSOSɻ৘ใաଟγϯυϩʔϜͱ͸
    ࢀߟࢿྉ

    View Slide