$30 off During Our Annual Pro Sale. View Details »

第2回メドレー非エンジニア向け勉強会 非エンジニアのためのプログラミング序論

Medley Inc.
December 12, 2016

第2回メドレー非エンジニア向け勉強会 非エンジニアのためのプログラミング序論

株式会社メドレー( http://www.medley.jp/ )社内で行われた、非エンジニア向けのプログラミング勉強会で使った資料です。

自己紹介
名前:徐 聖博
担当プロダクト:介護のほんね → オンライン病気事典MEDLEY( https://www.kaigonohonne.com/https://medley.life/
その他経歴等:https://yamadagenki.github.io/xushengbo/

資料内リンク
Ruby入門(dotinstall):http://dotinstall.com/lessons/basic_ruby_v3
パーフェクトRuby:http://amzn.to/2gBRBlS
Ruby on Rails 4入門:http://dotinstall.com/lessons/basic_rails_v2

Medley Inc.

December 12, 2016
Tweet

More Decks by Medley Inc.

Other Decks in Technology

Transcript

  1. ୈճඇΤϯδχΞ޲͚ษڧձ
    ඇΤϯδχΞͷͨΊͷϓϩάϥϛϯάং࿦
    ҩྍϔϧεέΞ෼໺ͷ՝୊Λղܾ͢Δ
    ঃɹ੟ത
    גࣜձࣾϝυϨʔ

    View Slide

  2. հޢͷ΄ΜͶͬͯͲ͏΍ͬͯಈ͍ͯΔͷʁ
    հޢͷ΄ΜͶͬͯͲ͏΍ͬͯಈ͍ͯΔ͔͝ଘ஌Ͱ͔͢ʁ͜͜Ͱ͸հޢ
    ͷ΄ΜͶʹΞΫηε͢ΔͱɺͲͷ͏ͳॲཧ͞ΕΔ͔֓ཁΛઆ໌͠·͢ɻ

    View Slide


  3. αʔόʔ
    ίϯϐϡʔλ
    ίϯϐϡʔλ
    հޢͷ΄ΜͶݟ͍ͨ
    σʔλͪΐ͏͍ͩ
    ͜ͷσʔλදࣔͯ͠
    දࣔͰ͖·ͨ͠
    հޢͷ΄ΜͶʹΞΫηε͢Δͱʜ
    දࣔ͞ΕΔ·Ͱʹɺ༷ʑͳॲཧ͕ಈ͍ͯ·͢ɻ

    View Slide

  4. αʔόʔ

    ʰαʔόʔʱͱҰݴͰදݱ͍ͯ͠·͕͢ʜ
    αʔόʔγεςϜ
    ༷ʑͳٕज़Λ࢖͍ɺ೔ʑ։ൃऀ͕αʔϏεΛఏڙ͍ͯ͠·͢ɻ
    Τϥʔ؂ࢹπʔϧ
    ϝʔϧγεςϜ
    ࣗಈςετɾσϓϩΠπʔϧ ϝΠϯϑϨʔϜϫʔΫ ಈతϖʔδੜ੒ϑϨʔϜϫʔΫ
    ʜʜ

    View Slide


  5. ຊ೔΍Δʰϓϩάϥϛϯάʱͱ͸ʜ
    αʔόʔ
    w ϩάΠϯͯ͠Δ͔ͳʁ
    w Ͳͷ஍ҬʹॅΜͰΔͷ͔ͳʁ
    w ৽ணͷޱίϛͲΕͩΖ͏ʁ
    w ݸ͘Β͍දࣔ͠ͳ͍ͱɻ
    w ಛूͯ͠Δࢪઃ͔͋ͬͨͳʁ
    w ಛू͸͔֬ͭ͘Β͍දࣔ͢ΔΜ͚ͩͬͳɻ
    ͱݴͬͨɺීஈ໨ʹ͢ΔҰ෦෼ʹ͍ͭͯͰ͢ɻ

    View Slide


  6. ͪΐͬͱϓϩάϥϛϯάͬΆ͘දݱ͢Δͱʜ
    αʔόʔ
    w ϩάΠϯͯ͠Δ͔ͳʁˡϩάΠϯͯ͠Δ͔Ͳ͏͔Ͱ৚݅෼ذ
    w Ͳͷ஍ҬʹॅΜͰΔͷ͔ͳʁˡॅΜͰΔ஍ҬͰ৚݅෼ذ
    w ৽ணͷޱίϛͲΕͩΖ͏ʁ
    w ݸ͘Β͍දࣔ͠ͳ͍ͱɻˡޱίϛΛͭ܁Γฦ͠දࣔ
    w ಛूͯ͠Δࢪઃ͔͋ͬͨͳʁ
    w ಛूࢪઃ͸͔֬ͭදࣔ͢ΔΜ͚ͩͬɻˡಛूࢪઃΛͭ܁Γฦ͠දࣔ
    ͯ͞ɺ͔࣍Β͍Α͍Αϓϩάϥϛϯά͍͖ͯ͠·͢

    View Slide

  7. 3VCZͰ࢝ΊΔϓϩάϥϛϯάং࿦
    ϝυϨʔͰओྲྀͳSVCZΛ࢖ͬͯ؆୯ͳϓϩάϥϛϯάͷษڧΛ͍ͯ͠
    ͖·͠ΐ͏ɻࠓճ͸ຊ౰ʹجຊతͳ͜ͱ͚ͩ΍͍͖ͬͯ·͢ɻ

    View Slide


  8. ࠓճͷֶश߲໨
    cม਺ͱ୅ೖʹ͍ͭͯ
    ɹม਺ͱ୅ೖ͘Β͍͸೉͘͠ͳ͍ͷͰɺ͔ͬ͠Γ͍͖͍ͭͯͯͩ͘͞ɻ
    c؆୯ͳܭࢉΛߦͬͯΈΑ͏Ћ
    ɹࣾձਓͳͷͰ࢛ଇԋࢉ͘Β͍༨༟Ͱ͢ΑͶʁ
    c৚݅෼ذΛͯ͠ΈΑ͏
    ɹυΞ͕͍͋ͨΒΤϨϕʔλΛ߱ΓΔɺΑ͏ͳײ֮Ͱ͢ɻ
    c܁Γฦ͠ʹֶ͍ͭͯ΅͏
    ɹಉ͜͡ͱΛԿ౓΋ॻ͘ͷ͸ΊΜͲ͍͘͞Ͱ͢ΑͶɻ·ͱΊॻ͍ͯΈ·͠ΐ͏ɻ
    cؔ਺Λ࢖͍͜ͳͯ͠ΈΑ͏
    ɹಉ͜͡ͱΛԿ౓΋΍ΔͷͬͯɺͩΜͩΜͩΔ͘ͳ͖ͬͯ·͢ΑͶɻ

    View Slide


  9. SFQMJUΛ࢖ͬͯɺखΛಈ͔͠ͳ͕ΒֶΜͰ͖·͢
    IUUQTSFQMJUMBOHVBHFTSVCZ

    View Slide


  10. ม਺ͱ୅ೖʹ͍ͭͯ
    x = 1
    ਺ֶͷม਺ͱಉ͡Ͱ͢ɻ
    YͰ΋BͰ΋ͳΜͰ΋ྑ͍Ͱ͢ɻ
    ӈଆ͕୅ೖ͞ΕΔ΋ͷɻ
    ਺ࣈɺจࣈɺ഑ྻɺϋογϡ
    ͳͲ༷ʑͳ΋ͷ͕୅ೖɻ

    View Slide


  11. ؆୯ͳ࢛ଇԋࢉΛͯ͠ΈΑ͏Ћ
    c଍͠ࢉɺҾ͖ࢉɺֻ͚ࢉɺׂΓࢉ
    ɹYZ YZ YZ YZ
    cϓϩάϥϛϯάಠಛͷׂͬͨ͋·ΓʢNPEͬͯߴߍͰ΍Γ·ͨ͠ΑͶʁʣ

    ɹYZ YΛZͰׂͬͨ͋·Γ

    cਅِ஋ͱ͍͏֓೦͕͋ΔʢUSVFPSGBMTFͱݴͬͨΓ͢Δʣ

    ɹYccZ Y·ͨ͸Z
    YZ Y͔ͭZ
    YZ YͱZ͕ಉ͔͡
    YZ YͱZ͕ҧ͏͔

    c̋৐ͱ͍͏ͷ΋؆୯ʹͰ͖ͨΓ
    ɹYZ YͷZ৐

    View Slide


  12. ৚݅෼ذΛͯ͠ΈΑ͏
    if x == 1 then
    puts x
    end
    Y͕ͩͬͨΒʜ
    ӳޠͬΆ͍

    QVUT̋̋͸ɺ
    ̋̋Λදࣔͤ͞ΔϓϩάϥϜ

    View Slide


  13. ܁Γฦ͠ʹֶ͍ͭͯ΅͏
    10.times do |x|
    puts x
    end
    lճ܁Γฦͤz
    ͱ͍͏ҙຯ
    ม਺ΛlczͰғ͏͜ͱͰ
    ͔Β·ͰΧ΢ϯτΞοϓ͢Δ

    View Slide


  14. ؔ਺Λ࢖͍͜ͳͦ͏
    def countup(n)
    n.times do |i|
    puts i
    end
    end
    EFGͱFOEͰ
    ғΜͰ͋͛Ε͹
    Ͱ͖͕͋Γ ม਺ͱ͔
    ౉ͤͨΓ͢Δ

    View Slide


  15. ͜Ε͸ͳʹʁ
    def total(n)
    answer = 0
    n.times do |i|
    answer = answer + i
    end
    puts answer
    end

    View Slide


  16. ͜Ε͸ͳʹʁ
    def total(n)
    answer = 0
    n.times do |i|
    answer = answer + i
    end
    puts answer
    end
    ͔ΒO·Ͱͷ߹ܭΛදࣔ͢Δؔ਺

    View Slide

  17. ͪΐͬͱͨ͠՝୊Λղ͍ͯΈ·͠ΐ͏
    ϓϩάϥϛϯάͬͯࢥͬͨ΄Ͳ೉͘͠ͳ͍Ͱ͢ΑͶʁ͜͜·Ͱशͬͨ
    ஌ࣝͰɺ໰୊Λղ͍ͯΈ·͠ΐ͏ɻ

    View Slide


  18. ໰୊ɿʜΛܭࢉͯ͠ΈΑ͏
    ϊʔώϯτͰͲ͏ͧ

    View Slide


  19. ໰୊ɿͷഒ਺͚ͩදࣔͤͯ͞ΈΑ͏
    (1000).times do |i|
    ɹɹ͜͜ΛຒΊΔɺ͜͜Λ
    end

    View Slide


  20. ໰୊ɿʜ O
    ΛٻΊΔؔ਺Λ࡞Ζ͏
    def square(n)
    ɹɹ͜͜ΛຒΊΔɺ͜͜Λ
    end

    View Slide

  21. ·ͱΊ

    View Slide


  22. ·ͱΊ
    cͨͩͷʮϓϩάϥϛϯάʯ͚ͩͰऴΘΒͳ͍ͨΊʹ΋
    ɹϓϩάϥϛϯά͸͜Ε͚ͩͰ͕͢ɺϓϩάϥϛϯά͚ͩͰऴΘΒͳ͍ͨΊʹ΋ɺ
    ࠓޙ΋ͬͱ೔ৗۀ຿Ͱ໾ཱͪͦ͏ͳϓϩάϥϛϯάʹ͍ͭͯͷߨ࠲Λ։͍ͯߦ͖·
    ͢ɻฃͬͯ͝ࢀՃ͍ͩ͘͞ɻ
    cʮϓϩάϥϛϯάʯ͚ͩͰݴ͏ͱ
    ɹ݁ہɺʮม਺ͷ୅ೖʯʮ࢛ଇԋࢉЋʯʮ৚݅෼ذʯʮ܁Γฦ͠ʯʮؔ਺Խʯ
    ͱ͍͏ͭͷ֓೦͚ͩ ΄΅
    ɻհޢͷ΄ΜͶͷϓϩάϥϜ΋͜ͷ֓೦ͷ૊Έ߹Θͤ
    ͰͰ͖͍ͯ·͢ɻ೉͍͠ͱࢥΘͳ͍Ͱ͍ͩ͘͞ɻ
    clΊΜͲ͍͘͞zλεΫΛ೺ѲͰ͖ͨΓ
    ɹ࣮ࡍͷ։ൃ͸ϓϩάϥϛϯά͚ͩͰ͸ͳ͘ɺαʔόʔ੔උɾ6*ͷௐ੔ͳͲຊ౰ʹ
    ʮ૯߹֨ಆٕʯͷΑ͏ͳଟذʹΘͨΔ஌͕ࣝඞཁʹͳ͖ͬͯ·͢ɻ͔͠͠ɺϓϩά
    ϥϛϯάΛগֶ͠Ϳ͚ͩͰ΋ɺz܁Γฦ͠Λ࢖͏͔Β͜Ε͸؆୯ͳλεΫͩzͱ޻਺
    ݟੵͷԹ౓ײΛ೺Ѳ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳͬͨΓ͠·͢ɻ

    View Slide

  23. ෇࿥ɿ΋ͬͱษڧ͍ͨ͠ਓ΁ͷࢀߟࢿྉ

    View Slide


  24. ߨ࠲͍Ζ͍Ζ
    c΋ͬͱ΋ͬͱ3VCZ஌Γ͍ͨਓ΁
    ɹຊͰମܕతʹ3VCZษڧͰ͖·͢ɻ͜͜·ͰདྷΔͱɺ΋͸΍ΤϯδχΞʹస৬͠
    ·͠ΐ͏ͬͯײ͡ʹͳΓ·͢ɻ
    ࢀߟɿύʔϑΣΫτ3VCZ
    c͜Μͳೖ໳ߨ࠲͡Ό଍Γͳ͍ํ΁
    ɹੈͷதʹ͸͜Μͳࣗ෼͕ղઆ͢ΔΑΓΑͬΆͲϓϩ͕ղઆͨ͠ɺಈը෇͖ͷΦϯ
    ϥΠϯֶशαΠτ͕͋Γ·͢ɻ༗ޮ׆༻͠·͠ΐ͏ɻ
    ࢀߟɿ3VCZೖ໳ EPUJOTUBMM

    c΋͏ී௨ʹ։ൃ͍ͨ͠ΜͰ͚͢Ͳ
    ɹհޢͷ΄ΜͶ͸ɺ3VCZPO3BJMTͱ͍͏ϑϨʔϜϫʔΫͰಈ͍͍ͯ·͢ɻ͜ΕΛ
    Ϛελʔ͢Ε͹ɺ͋ͳͨ΋ͦͷ೔͔Βհޢͷ΄ΜͶͰ๻ͱҰॹʹ։ൃͰ͖·͢ɻੋ
    ඇҰॹʹ։ൃ͠·͠ΐ͏
    ࢀߟɿ3VCZPO3BJMTೖ໳

    View Slide

  25. ෇࿥ɿ໰୊ͷճ౴

    View Slide


  26. ໰୊ɿʜΛܭࢉͯ͠ΈΑ͏
    total = 0
    (100).times do |i|
    # totalʹiͷ2৐Λ଍ͯ͠࠶୅ೖ͍ͯ͠Δ
    total = total + i ** 2
    end
    puts total

    View Slide


  27. ໰୊ɿͷഒ਺͚ͩදࣔͤͯ͞ΈΑ͏
    (1000).times do |i|
    # 3ͰׂΓ੾ͬͯ0ʹͳΔͳΒ͹
    if (i % 3 == 0) then
    puts i # iΛදࣔ͢Δ
    end
    end

    View Slide


  28. ໰୊ɿʜ O
    ΛٻΊΔؔ਺Λ࡞Ζ͏
    def square(n)
    total = 0
    (100).times do |i|
    # totalʹiͷ2৐Λ଍ͯ͠࠶୅ೖ͍ͯ͠Δ
    total = total + i ** 2
    end
    puts total
    end

    View Slide