Slide 1

Slide 1 text

Fukuoka.rb 2023 ೥౓׆ಈใࠂ ʙੈ͸·͞ʹ”େύʔαʔ࣌୅”ʙ FUKUOKA Engineers Day 2024 rebuild

Slide 2

Slide 2 text

෱Ԭࢢ๭۠ͷํ͔ΒࢀΓ·ͨ͠ https://fukuokarb.connpass.com/

Slide 3

Slide 3 text

ࣗݾ঺հ ໊લ: ਙ࿡ Twitterʢݱ Xʣ: jimlock GitHub: jinroq ॴଐ: גࣜձࣾ Ruby ։ൃ ίϛϡχςΟ: Fukuoka.rb

Slide 4

Slide 4 text

https://www.ruby-dev.jp/

Slide 5

Slide 5 text

https://www.kanamic.net/topics/press-release/2023/press-release0718.html

Slide 6

Slide 6 text

Fukuoka.rb ͱ͸ • ஍Ҭ Rubyist ίϛϡχςΟʔ • ຖिਫ༵೔։࠵ • جຊతʹ΋͘΋͘ճ • ΍Γ͍ͨࣄΛ΍Δ • ੒Ռൃද͸ಛʹͳ͠ • ؾ͕࣋ͪߴ·Δͱ LT େձͱ͔͢Δ

Slide 7

Slide 7 text

https://fukuokarb.connpass.com/event/306479/

Slide 8

Slide 8 text

Fukuoka.rb 2023 ೥౓࣮੷ • ߹ܭ 49 ճ։࠵ʢ#289ʙ#337ʣ • ௨ৗճ 48 ճ • Ninja Talk େձʢ#333ʣ • Χ΢ϯτର৅֎ • ෱Ԭ Rubyistձٞ 03 • Nishitetsu.rbʢ#3, #4ʣ • υϥΰϯΛ౗͠ʹߦ͜͏ʢ#1ʣ • Ruby Hack Challenge Holiday in ෱Ԭʢ#1ʣ

Slide 9

Slide 9 text

;Γ͔͑Γ • ίϩφͷӨڹͰେମΦϯϥΠϯ։࠵ • ษڧձΛΦϑϥΠϯ։࠵͢Δʹ͸ग़ࣾʢor ֎ग़ʣΛ 
 ͠ͳ͚Ε͹ͳΒͳ͍ • ݝ֎͔Β΋ࢀՃՄೳͳͷͰࢀՃਓ਺͸૿͑ͨ • ਫ༵೔Ҏ֎ͷεϐϯΦϑΠϕϯτΛ։࠵͢ΔΑ͏ʹͳͬͨ

Slide 10

Slide 10 text

;Γ͔͑Γ • ίϩφͷӨڹͰେମΦϯϥΠϯ։࠵ • ΦϑϥΠϯ։࠵Λ͢Δʹ͸ग़ࣾ΋͘͠͸֎ग़Λ͠ͳ͚Ε͹ͳΒͳ͍ • ݝ֎͔Β΋ࢀՃՄೳͳͷͰࢀՃਓ਺͸૿͑ͨ • ਫ༵೔Ҏ֎ͷεϐϯΦϑΠϕϯτΛ։࠵͢ΔΑ͏ʹͳͬͨ

Slide 11

Slide 11 text

;Γ͔͑Γ • ίϩφͷӨڹͰେମΦϯϥΠϯ։࠵ • ΦϑϥΠϯ։࠵Λ͢Δʹ͸ग़ࣾ΋͘͠͸֎ग़Λ͠ͳ͚Ε͹ͳΒͳ͍ • ΦϯϥΠϯ։࠵ͩͱݝ֎͔Β΋ࢀՃՄೳͳͷͰࢀՃਓ਺͸૿͑ͨ • ਫ༵೔Ҏ֎ͷεϐϯΦϑΠϕϯτΛ։࠵͢ΔΑ͏ʹͳͬͨ

Slide 12

Slide 12 text

;Γ͔͑Γ • ίϩφͷӨڹͰେମΦϯϥΠϯ։࠵ • ΦϑϥΠϯ։࠵Λ͢Δʹ͸ग़ࣾ΋͘͠͸֎ग़Λ͠ͳ͚Ε͹ͳΒͳ͍ • ΦϯϥΠϯ։࠵ͩͱݝ֎͔Β΋ࢀՃՄೳͳͷͰࢀՃਓ਺͸૿͑ͨ • ਫ༵೔Ҏ֎ͷεϐϯΦϑΠϕϯτΛ։࠵͢ΔΑ͏ʹͳͬͨ

Slide 13

Slide 13 text

Fukuoka.rb 2023 ೥౓࣮੷ • ߹ܭ 49 ճ։࠵ʢ#289ʙ#337ʣ • ௨ৗճ 48 ճ • Ninja Talk େձʢ#333ʣ • Χ΢ϯτର৅֎ • ෱Ԭ Rubyistձٞ 03 • Nishitetsu.rbʢ#3, #4ʣ • υϥΰϯΛ౗͠ʹߦ͜͏ʢ#1ʣ • Ruby Hack Challenge Holiday in ෱Ԭʢ#1ʣ

Slide 14

Slide 14 text

Fukuoka.rb 2023 ೥౓࣮੷ • ߹ܭ 49 ճ։࠵ʢ#289ʙ#337ʣ • ௨ৗճ 48 ճ • Ninja Talk େձʢ#333ʣ • Χ΢ϯτର৅֎ • ෱Ԭ Rubyistձٞ 03 • Nishitetsu.rbʢ#3, #4ʣ • υϥΰϯΛ౗͠ʹߦ͜͏ʢ#1ʣ • Ruby Hack Challenge Holiday in ෱Ԭʢ#1ʣ

Slide 15

Slide 15 text

https://fukuokarb.connpass.com/event/290357/

Slide 16

Slide 16 text

https://twitter.com/OssVision/status/1735433960191299602

Slide 17

Slide 17 text

https://www.ruby-lang.org/ja/news/2023/12/25/ruby-3-3-0-released/

Slide 18

Slide 18 text

https://www.ruby-lang.org/ja/news/2023/12/25/ruby-3-3-0-released/

Slide 19

Slide 19 text

Ruby Parser ͷ 1 ෼ྺ࢙ • ౰ॳ͸ Yacc Λ࢖ͬͯ Ruby ͷจ๏Λղऍ͍ͯͨ͠ • Yacc Ͱ͸͠ΜͲ͘ͳ͖ͬͯͨͷͰ Bison Λಋೖͨ͠ • Bison Ͱ΋ Ruby ͷจ๏Λࣗಈੜ੒͢Δͷ͸ͭΒ͔ͬͨ • lexer ͷ෦෼΍ parser ͷ෦෼Ͱ͋ΓΌ͜ΓΌؤுͬͨ݁Ռɺparse.y ͕ ௒ෳࡶʹͳͬͨʢRuby ೋେຐڥͷͻͱͭʣ • parse.y ΛϝϯςφϯεͰ͖Δਓ͸ۃʑΘ͔ͣͳਓ͚ͩʹͳͬͨ

Slide 20

Slide 20 text

Ruby Parser ͷ 1 ෼ྺ࢙ • ౰ॳ͸ Yacc Λ࢖ͬͯ Ruby ͷจ๏Λղऍ͍ͯͨ͠ • Yacc Ͱ͸͠ΜͲ͘ͳ͖ͬͯͨͷͰ Bison Λಋೖͨ͠ • Bison Ͱ΋ Ruby ͷจ๏Λࣗಈੜ੒͢Δͷ͸ͭΒ͔ͬͨ • lexer ͷ෦෼΍ parser ͷ෦෼Ͱ͋ΓΌ͜ΓΌؤுͬͨ݁Ռɺparse.y ͕ ௒ෳࡶʹͳͬͨʢRuby ೋେຐڥͷͻͱͭʣ • parse.y ΛϝϯςφϯεͰ͖Δਓ͸ۃʑΘ͔ͣͳਓ͚ͩʹͳͬͨ

Slide 21

Slide 21 text

Ruby Parser ͷ 1 ෼ྺ࢙ • ౰ॳ͸ Yacc Λ࢖ͬͯ Ruby ͷจ๏Λղऍ͍ͯͨ͠ • Yacc Ͱ͸͠ΜͲ͘ͳ͖ͬͯͨͷͰ Bison Λಋೖͨ͠ • Bison Ͱ΋ Ruby ͷจ๏Λࣗಈੜ੒͢Δͷ͸ͭΒ͔ͬͨ • lexer ͷ෦෼΍ parser ͷ෦෼Ͱ͋ΓΌ͜ΓΌؤுͬͨ݁Ռɺparse.y ͕ ௒ෳࡶʹͳͬͨʢRuby ೋେຐڥͷͻͱͭʣ • parse.y ΛϝϯςφϯεͰ͖Δਓ͸ۃʑΘ͔ͣͳਓ͚ͩʹͳͬͨ

Slide 22

Slide 22 text

Ruby Parser ͷ 1 ෼ྺ࢙ • ౰ॳ͸ Yacc Λ࢖ͬͯ Ruby ͷจ๏Λղऍ͍ͯͨ͠ • Yacc Ͱ͸͠ΜͲ͘ͳ͖ͬͯͨͷͰ Bison Λಋೖͨ͠ • Bison Ͱ΋ Ruby ͷจ๏Λࣗಈੜ੒͢Δͷ͸ͭΒ͔ͬͨ • lexer ͷ෦෼΍ parser ͷ෦෼Ͱ͋ΓΌ͜ΓΌؤுͬͨ݁Ռɺparse.y ͕ ௒ංେͯ͠௒ෳࡶʹͳͬͨʢRuby ೋେຐڥͷͻͱͭʣ • parse.y ΛϝϯςφϯεͰ͖Δਓ͸ۃʑΘ͔ͣͳਓ͚ͩʹͳͬͨ

Slide 23

Slide 23 text

Ruby Parser ͷ 1 ෼ྺ࢙ • ౰ॳ͸ Yacc Λ࢖ͬͯ Ruby ͷจ๏Λղऍ͍ͯͨ͠ • Yacc Ͱ͸͠ΜͲ͘ͳ͖ͬͯͨͷͰ Bison Λಋೖͨ͠ • Bison Ͱ΋ Ruby ͷจ๏Λࣗಈੜ੒͢Δͷ͸ͭΒ͔ͬͨ • lexer ͷ෦෼΍ parser ͷ෦෼Ͱ͋ΓΌ͜ΓΌؤுͬͨ݁Ռɺparse.y ͕ ௒ංେͯ͠௒ෳࡶʹͳͬͨʢRuby ೋେຐڥͷͻͱͭʣ • parse.y ΛϝϯςφϯεͰ͖Δਓ͸ۃʑΘ͔ͣͳਓ͚ͩʹͳͬͨ

Slide 24

Slide 24 text

Ruby Parser ͷඞཁੑ • Ruby ͷจ๏Λղऍ͢Δͷ͸ Ruby ΠϯλϓϦλ͚ͩͰ͸ͳ͘ͳͬͨ • Lint • LSP • Formatter

Slide 25

Slide 25 text

Ruby Parser ͷඞཁੑ • Ruby ͷจ๏Λղऍ͢Δͷ͸ Ruby ΠϯλϓϦλ͚ͩͰ͸ͳ͘ͳͬͨ • Lint • LSP • Formatter

Slide 26

Slide 26 text

LSP ͕ Ruby Parser ʹٻΊΔ΋ͷ • ߴ଎ʹ Ruby ͷจ๏Λղऍͯ͠ཉ͍͠ • ߏจΤϥʔΛ୯ͳΔ Syntax Error ʹ͠ͳ͍Ͱཉ͍͠ • “a =“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ม਺ະॳظԽͱڭ͑ͯཉ͍͠ • “a(“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ׅހ͕ด͡ΒΕ͍ͯͳ͍͜ͱΛڭ͑ͯཉ͍͠ • “a.” ͱॻ͔Ε͍ͯͨΒ a ͕ nil Ͱ͋Ε͹ະॳظԽͰ͋Δ͜ͱΛɺa ͕Կ͔͠Βͷ 
 ΠϯελϯεͰ͋Ε͹ݺͼग़͠ՄೳͳϝιουΛิ׬ͯ͠ཉ͍͠

Slide 27

Slide 27 text

LSP ͕ Ruby Parser ʹٻΊΔ΋ͷ • ߴ଎ʹ Ruby ͷจ๏Λղऍͯ͠ཉ͍͠ • ߏจΤϥʔΛ୯ͳΔ Syntax Error ʹ͠ͳ͍Ͱཉ͍͠ • “a =“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ม਺ະॳظԽͱڭ͑ͯཉ͍͠ • “a(“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ׅހ͕ด͡ΒΕ͍ͯͳ͍͜ͱΛڭ͑ͯཉ͍͠ • “a.” ͱॻ͔Ε͍ͯͨΒ a ͕ nil Ͱ͋Ε͹ະॳظԽͰ͋Δ͜ͱΛɺa ͕Կ͔͠Βͷ 
 ΠϯελϯεͰ͋Ε͹ݺͼग़͠ՄೳͳϝιουΛิ׬ͯ͠ཉ͍͠

Slide 28

Slide 28 text

LSP ͕ Ruby Parser ʹٻΊΔ΋ͷ • ߴ଎ʹ Ruby ͷจ๏Λղੳͯ͠ཉ͍͠ • ߏจΤϥʔΛ୯ͳΔ Syntax Error ʹ͠ͳ͍Ͱཉ͍͠ • “a =“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ม਺ະॳظԽͱڭ͑ͯཉ͍͠ • “a(“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ׅހ͕ด͡ΒΕ͍ͯͳ͍͜ͱΛڭ͑ͯཉ͍͠ • “a.” ͱॻ͔Ε͍ͯͨΒ a ͕ nil Ͱ͋Ε͹ະॳظԽͰ͋Δ͜ͱΛɺa ͕Կ͔͠Βͷ 
 ΠϯελϯεͰ͋Ε͹ݺͼग़͠ՄೳͳϝιουΛิ׬ͯ͠ཉ͍͠

Slide 29

Slide 29 text

LSP ͕ Ruby Parser ʹٻΊΔ΋ͷ • ߴ଎ʹ Ruby ͷจ๏Λղੳͯ͠ཉ͍͠ • ߏจΤϥʔΛ୯ͳΔ Syntax Error ʹ͠ͳ͍Ͱཉ͍͠ • “a =“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ม਺ະॳظԽͱڭ͑ͯཉ͍͠ • “a(“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ׅހ͕ด͡ΒΕ͍ͯͳ͍͜ͱΛڭ͑ͯཉ͍͠ • “a.” ͱॻ͔Ε͍ͯͨΒ a ͕ nil Ͱ͋Ε͹ະॳظԽͰ͋Δ͜ͱΛɺa ͕Կ͔͠Βͷ 
 ΠϯελϯεͰ͋Ε͹ݺͼग़͠ՄೳͳϝιουΛิ׬ͯ͠ཉ͍͠

Slide 30

Slide 30 text

LSP ͕ Ruby Parser ʹٻΊΔ΋ͷ • ߴ଎ʹ Ruby ͷจ๏Λղੳͯ͠ཉ͍͠ • ߏจΤϥʔΛ୯ͳΔ Syntax Error ʹ͠ͳ͍Ͱཉ͍͠ • “a =“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ม਺ະॳظԽͱڭ͑ͯཉ͍͠ • “a(“ ·Ͱॻ͔Ε͍ͯΔίʔυ͸ׅހ͕ด͡ΒΕ͍ͯͳ͍͜ͱΛڭ͑ͯཉ͍͠ • “a.” ͱॻ͔Ε͍ͯͨΒ a ͕ nil Ͱ͋Ε͹ະॳظԽͰ͋Δ͜ͱΛɺa ͕Կ͔͠Βͷ 
 ΠϯελϯεͰ͋Ε͹ݺͼग़͠ՄೳͳϝιουΛิ׬ͯ͠ཉ͍͠

Slide 31

Slide 31 text

Ruby Parser ͷ৽͍͠Ξϓϩʔν • Prism • खॻ͖ύʔαʔʢC ݴޠͰ࣮૷ʣ • ύʔαʔδΣωϨʔλʔΛ࢖Θͳ͍ • ݱ࣌఺Ͱ͸ඪ४ఴ෇ϥΠϒϥϦ͕ͩɺRuby ຊମͷύʔαʔͱஔ͖׵͑Δ͜ͱΛ໨ඪʹ͍ͯ͠Δ • Lrama • Ruby ੡ͷύʔαʔδΣωϨʔλʔ • ैདྷ͔Β͋Δ parse.y ΛൃలతʹΑΓॻ͖΍͘͢͢ΔΞϓϩʔν • parse.y ͕௒ෳࡶͳͷ͸ɺBNF ه๏͕ѱ͍ͷͰ͸ͳ͘ Bison ͕ΑΖ͘͠ͳ͍ͷͰ͸ʁ

Slide 32

Slide 32 text

Ruby Parser ͷ৽͍͠Ξϓϩʔν • Prism • खॻ͖ύʔαʔʢC ݴޠͰ࣮૷ʣ • ύʔαʔδΣωϨʔλʔΛ࢖Θͳ͍ • ݱ࣌఺Ͱ͸ඪ४ఴ෇ϥΠϒϥϦ͕ͩɺRuby ຊମͷύʔαʔͱஔ͖׵͑Δ͜ͱΛ໨ඪʹ͍ͯ͠Δ • Lrama • Ruby ੡ͷύʔαʔδΣωϨʔλʔ • ैདྷ͔Β͋Δ parse.y ΛൃలతʹΑΓॻ͖΍͘͢͢ΔΞϓϩʔν • parse.y ͕௒ෳࡶͳͷ͸ɺBNF ه๏͕ѱ͍ͷͰ͸ͳ͘ Bison ͕ΑΖ͘͠ͳ͍ͷͰ͸ʁ

Slide 33

Slide 33 text

Ruby Parser ͷ৽͍͠Ξϓϩʔν • Prism • खॻ͖ύʔαʔʢC ݴޠͰ࣮૷ʣ • ύʔαʔδΣωϨʔλʔΛ࢖Θͳ͍ • ݱ࣌఺Ͱ͸ඪ४ఴ෇ϥΠϒϥϦ͕ͩɺRuby ຊମͷύʔαʔͱஔ͖׵͑Δ͜ͱΛ໨ඪʹ͍ͯ͠Δ • Lrama • Ruby ੡ͷύʔαʔδΣωϨʔλʔ • ैདྷ͔Β͋Δ parse.y ΛൃలతʹΑΓॻ͖΍͘͢͢ΔΞϓϩʔν • parse.y ͕௒ෳࡶͳͷ͸ɺBNF ه๏͕ѱ͍ͷͰ͸ͳ͘ Bison ͕ΑΖ͘͠ͳ͍ͷͰ͸ʁ

Slide 34

Slide 34 text

Ruby Parser ͷࠓޙ • ϝϯςφϯεੑͷ޲্ • ࢖͍উख͕ΑΓྑ͘ͳΔ

Slide 35

Slide 35 text

͜͜·Ͱ͕લஔ͖

Slide 36

Slide 36 text

΅͘ͷΞ΢τϓοτ

Slide 37

Slide 37 text

෱Ԭ Rubyistձٞ 04 2024-09-07

Slide 38

Slide 38 text

Keynote Speakers

Slide 39

Slide 39 text

Yuichiro Kaneko Kevin Newton

Slide 40

Slide 40 text

https://twitter.com/rubycitymatsue/status/1722572218889298041

Slide 41

Slide 41 text

https://twitter.com/tagomoris/status/1722466409001971827

Slide 42

Slide 42 text

͜Μͳਓʹ͓͢͢Ί • Ruby Parser Λ΋ͬͱৄ͘͠஌Γ͍ͨ • ࣗ࡞ݴޠΛ࡞Γ͍ͨ or ࡞͍ͬͯΔ • ʮԿ͔Α͘෼͔Βͳ͍͚ͲԿ͔͍͢͝ࣄͯ͠ΔʯΛମݧ͍ͨ͠

Slide 43

Slide 43 text

͜Μͳਓʹ͓͢͢Ί • Ruby Parser Λ΋ͬͱৄ͘͠஌Γ͍ͨ • ࣗ࡞ݴޠΛ࡞Γ͍ͨ or ࡞͍ͬͯΔ • ʮԿ͔Α͘෼͔Βͳ͍͚ͲԿ͔͍͢͝ࣄͯ͠ΔʯΛମݧ͍ͨ͠

Slide 44

Slide 44 text

͜Μͳਓʹ͓͢͢Ί • Ruby Parser Λ΋ͬͱৄ͘͠஌Γ͍ͨ • ࣗ࡞ݴޠΛ࡞Γ͍ͨ or ࡞͍ͬͯΔ • ʮԿ͔Α͘෼͔Βͳ͍͚ͲԿ͔͍͢͝ࣄͯ͠ΔʯΛମݧ͍ͨ͠

Slide 45

Slide 45 text

؇ื • ෱Ԭ Rubyistձٞ 04 ͷ΢ΣϒσβΠφʔΛืूத • एׯҰ໊ • ँྱۚ͋Γʢ03 ࣮੷ɿ5 ສԁʣ • ࢀߟɿ https://regional.rubykaigi.org/fukuoka03/

Slide 46

Slide 46 text

͜Ε͔ΒͷFukuoka.rb • ࠓ·Ͱ௨Γ΋͘΋͘ճΛܧଓ • ؤுΒͳ͍ • དྷΔऀڋ·ͣڈΔऀ௥Θͣ • ͲͳͨͰ΋ؾܰʹࢀՃͯͩ͘͠ ͍͞

Slide 47

Slide 47 text

Ҏ্ Fukuoka.rb ͷ׆ಈใࠂͰͨ͠