Pro Yearly is on sale from $80 to $50! »

null安全はいいぞ。だって、型安全はいいぞ。

704056da9a4c4e075ad14479beaebab7?s=47 takasek
November 10, 2016

 null安全はいいぞ。だって、型安全はいいぞ。

コード改善 meetup #2 http://kaizen.connpass.com/event/42118/
での発表資料です

---

# 参考リンク

null安全でない言語は、もはやレガシー言語だ - Qiita
http://qiita.com/koher/items/e4835bd429b88809ab33

null安全を誤解している人達へのメッセージ - Qiita
http://qiita.com/omochimetaru/items/ee29d4c6eb0d78f02b15

PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計 / PHP Conference 2016 // Speaker Deck
https://speakerdeck.com/twada/php-conference-2016

大で小を兼ねるな // Speaker Deck
https://speakerdeck.com/takasek/da-dexiao-wojian-neruna

TDDBC | Doorkeeper
https://tddbc.doorkeeper.jp/

型安全性とは何か | プログラミング | POSTD
http://postd.cc/what-is-type-safety/

704056da9a4c4e075ad14479beaebab7?s=128

takasek

November 10, 2016
Tweet

Transcript

  1. null҆શ͸͍͍ͧɻ ͩͬͯɺ ܕ҆શ͸͍͍ͧɻ by takasek 2016/11/10 ίʔυվળ meetup #2 1

  2. ͜͜਺೔ɺ null҆શʹ͍ͭͯ όζͬͯ·͢Ͷʂ 2

  3. http://qiita.com/koher/items/e4835bd429b88809ab33 3

  4. ͦ͏͍΍ઌि͸ t-wada͞Μͷ εϥΠυ΋ όζΓ·ͨ͠Ͷ 4

  5. https://speakerdeck.com/twada/php-conference-2016 5

  6. ͜ΕΒͷهࣄɺ ࣮͸ಉ͡࿩ͯ͠Δͳ͊! ͱࢥͬͨͷͰɺ Swiftେ޷͖ͳࣗ෼ͳΓʹ ·ͱΊ·͢ 6

  7. 7

  8. 8

  9. Ͱ͸ຊ୊ 9

  10. ʮnullϨΨʯͷཁ໿ null҆શͰ͋Δ/ͳ͍ͷҧ͍͸… 4 null҆શͰͳ͍ݴޠ 4 String ʹจࣈྻ͕ೖΔ͔΋͠Εͳ͍͠ɺnull͕ೖΔ͔΋͠Εͳ ͍ 4 null

    ΁ͷૢ࡞͸࣮ߦ࣌Τϥʔ 4 null҆શͳݴޠ 4 String (non-null) ͱ String? (nullable) Λ໌֬ʹ۠ผ 4 String? ͸ɺString ʹม׵͠ͳ͍ͱ࢖͑ͳ͍ 4 ίϯύΠϧ࣌ʢಈతܕ෇ݴޠͰ͸੩తղੳ࣌ʣʹΤϥʔ 10
  11. ʮnullϨΨʯͷཁ໿ ΘͣΒΘ͍͠ʁɹੜ࢈ੑ͕Լ͕ΔʁɹNO! ͏·͘ѻ͏ͨΊͷ࢓૊Έ͕ͨ͘͞Μʂ 4 null νΣοΫͱΩϟετ 4 ! , !!

    4 ?. , ?-> 4 ?: , ?? 4 map 4 flatMap 4 do ه๏ 4 ? 4 ܕਪ࿦ 11
  12. ࣮ࡍΘͣΒΘ͘͠͸ͳ͍ null҆શͳݴޠͩͱ… 4 nullʹ͍ͭͯߟ͑ͳͯ͘ྑ͍৔߹͸ɺnon-null Ͱࣄ଍ΓΔ 4 nullΛҙࣝ͢΂͖৔߹ʹ͚ͩɺ໌֬ʹҙࣝ͢Ε ͹͍͍ 12

  13. ͯ͞ɺt-wada͞Μͷ PHP confͰͷൃද 13

  14. 14

  15. 15

  16. 16

  17. ͱ͜ΖͰ 17

  18. ࠓ೥ͷ2݄ɺTDD Boot Campͱ͍͏ ϫʔΫγϣοϓʹߦ͖ͬͯͨΜͰ͚͢Ͳ 18

  19. Test Driven Developmentͷखॱ 1. ࣦഊ͢ΔςετΛॻ͘(Red!) 2. ςετ͕௨ΔΑ͏ʹमਖ਼͢Δ(Green") 3. ϦϑΝΫλϦϯά͢Δ♻ ͷ܁Γฦ͠

    19
  20. TDDBCͰ΍ͬͨ͜ͱ 4 ࢀՃऀʹɺڞ௨ͷ՝୊͕༩͑ΒΕΔ 4 ৄ͘͠͸ http://www.slideshare.net/ setoazusa/tddbc-tokyo-201602 4 ςετϑΝʔετͰ։ൃ͍ͯ͘͠ 4

    ݴޠ͸νʔϜຖʹ޷͖ͳ΋ͷΛ࢖͏ 4 ※takasek͸SwiftνʔϜ 20
  21. ݁Ռ 21

  22. ࠔͬͨ! 22

  23. ࠷ॳͷ ʮࣦഊ͢ΔςετΛॻ͘ʯ Ͱ͍͖ͳΓ͍᪴ͨ 23

  24. ԿނͳΒɺ ςετର৅ͷʮਖ਼͘͠ͳ͍ίʔυʯ͕ ίϯύΠϧΛ௨Βͳ͍͔Β…ʂ 24

  25. ձ৔ͷνϡʔλʔ͞Μʹ ϔϧϓΛٻΊΔͱ… 25

  26. ! ʮίϯύΠϧΤϥʔ͸ Redͩͱࢥͬͯ΋Βͬͯ ߏ͍·ͤΜʯ 26

  27. !❣ 27

  28. ͜Ε͕ɺtakasek͕ ܕʹ࿀Λͨ͠ॠؒͰͨ͠… 28

  29. ͱ͜ΖͰ 29

  30. ઌ೔ɺiOSք۾ͷษڧձͰൃදͨ͠ΜͰ͚͢Ͳ https://speakerdeck.com/takasek/da-dexiao-wojian-neruna 30

  31. ཁ໿ 4 ೔෇!Λදݱ͍ͨ͠৔߹ 4 ඪ४ͷDateܕ͸ΦʔόʔεϖοΫ 4 Y,M,DΛIntͰ࣋ͭߏ଄ମ͕͋Ε͹ॆ෼ 4 ػೳ͕ଟ͍ʹ᠘͕ଟ͍ 4

    େ͕খΛ݉ͶΔͱ൵͠Έ͕ੜ·ΕΔ 31
  32. null҆શͰͳ͍ܕ ΋ಉ͡ 32

  33. ຊདྷతͳܕͷػೳͱ null͕ೖΕΒΕΔػೳ͸ ผͷػೳ 33

  34. ຊདྷతͰͳ͍ػೳΛ ܕʹ࣋ͨͤͯ͠·ͬͨ݁Ռ ൵͠Έ!ͱ 10ԯυϧͷଛ֐"͕ ੜ·Εͨ 34

  35. େࣄͳͷ͸ ਖ਼͍͠ܕઃܭ 35

  36. ग़య: ܕ҆શੑͱ͸Կ͔ | ϓϩάϥϛϯά | POSTD http://postd.cc/what-is-type-safety/ 36

  37. 37

  38. null҆શɺܕ҆શ͸ɺ ػցʹ೚ͤΔ΂͖΋ͷΛ ػցʹ೚ͤΔ࢓૊Έ 38

  39. ग़య: null҆શΛޡղ͍ͯ͠Δਓୡ΁ͷϝοηʔδ - Qiita http://qiita.com/omochimetaru/items/ee29d4c6eb0d78f02b15 39

  40. ݁࿦ 4 ܕ͸͍͍ͧ 4 ܕ͸ػց͕෼͔ΔܗͰܖ໿Λදݱ͢Δٕज़ 4 ͔ͩΒ๷ޚతϓϩάϥϛϯάΛࣗಈԽͰ͖ Δ 4 null҆શ͸

    well typedͳܕγεςϜ 4 ͔ͩΒͦ͜ɺnull҆શ͸͍͍ͧ 40
  41. ͓·͚ͷ[IMO]! null҆શͰͳ͍ݴޠͰ͋ͬͯ΋ɺnull҆શΛҙࣝ ͨ͠ܕઃܭΛಠࣗʹ࡞Δ͜ͱ΋Ͱ͖ΔͷͰ͸…ʁ null͕ൃੜͦ͠͏ͳ৔߹͸ɺಠࣗܕʹแΉӡ༻ʹ ͢Δͱ͔…ʁ …null҆શͰͳ͍ݴޠʹ͍ͭͯ͸໳֎׽ͳͷͰ… ص্ͷۭ࿦Ͱ͠ΐ͏͔Ͷ…ʁ 41

  42. ࢀߟϦϯΫ null҆શͰͳ͍ݴޠ͸ɺ΋͸΍ϨΨγʔݴޠͩ - Qiita http://qiita.com/koher/items/e4835bd429b88809ab33 null҆શΛޡղ͍ͯ͠Δਓୡ΁ͷϝοηʔδ - Qiita http://qiita.com/omochimetaru/items/ee29d4c6eb0d78f02b15 PHP7Ͱݎ࿚ͳίʔυΛॻ͘

    - ྫ֎ॲཧɺද໌ϓϩάϥϛϯάɺܖ໿ʹΑΔઃܭ / PHP Conference 2016 // Speaker Deck https://speakerdeck.com/twada/php-conference-2016 େͰখΛ݉ͶΔͳ // Speaker Deck https://speakerdeck.com/takasek/da-dexiao-wojian-neruna TDDBC | Doorkeeper https://tddbc.doorkeeper.jp/ ܕ҆શੑͱ͸Կ͔ | ϓϩάϥϛϯά | POSTD http://postd.cc/what-is-type-safety/ 42