inflearn logo
็Ÿฅ่ญ˜ๅ…ฑๆœ‰
inflearn logo

ๆœฌๅฝ“ใซ็ฐกๅ˜Go่จ€่ชžไธญ็ดš

Go่จ€่ชžใฎๅŸบ็คŽๆ–‡ๆณ•ใฏๅญฆใ‚“ใ ใŒใ€ใพใ ๅฎŸ้š›ใฎไฝฟ็”จใŒ้›ฃใ—ใๆ„Ÿใ˜ใฆใ„ใพใ™ใ‹๏ผŸใใ‚Œใจใ‚‚ๅฎŸ้š›ใซไฝฟใฃใฆใฟใŸใ‚‰ใ€ใ“ใ‚“ใชใซ้›ฃใ—ใ„ๅ•้กŒใ‚’ใŸใใ•ใ‚“็ตŒ้จ“ใ—ใพใ—ใŸใ‹๏ผŸไปŠๅ›žใฎ่ฌ›็พฉใงใฏใ€Goใฎๅคšๆง˜ใงๆœ‰็”จใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’็ดนไป‹ใ—ใ€ใ‚นใƒ”ใƒผใƒ‰ใ‚’ๆ”นๅ–„ใ™ใ‚‹ใƒŽใ‚ฆใƒใ‚ฆใ‚’ใŠๅฑŠใ‘ใ—ใพใ™ใ€‚

้›ฃๆ˜“ๅบฆ ๅˆ็ดš

ๅ—่ฌ›ๆœŸ้–“ ็„กๅˆถ้™

Go
Go
Go
Go

ๅ—่ฌ›ๅพŒใซๅพ—ใ‚‰ใ‚Œใ‚‹ใ“ใจ

  • Go ่จ€่ชžไธญ็ดš่ฌ›็พฉ

  • Go่จ€่ชžใฎๅคšๆง˜ใงไพฟๅˆฉใชใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใฎไฝฟใ„ๆ–น

Go่จ€่ชžใฏ้›ฃใ—ใ„ใงใ™ใ‹๏ผŸ
ๅˆๅฟƒ่€…ใฎ้–‹็™บ่€…ใ‚‚ไธŠๆ‰‹ใซใงใใพใ™๏ผ ๐Ÿค—

Go ่จ€่ชžไธญ็ดšใธใฎ้“ ๐Ÿ“–

Go่จ€่ชžใฎๅŸบ็คŽๆ–‡ๆณ•ใ‚’ๅญฆใณใพใ—ใŸ...

๐Ÿฅฒใพใ ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใ™ใ‚‹ใฎใฏ้›ฃใ—ใ„ใงใ™ใ€‚
๐Ÿค”ใ„ใ–ๅฎŸ้š›ใซ้ฉ็”จใ—ใ‚ˆใ†ใจใ™ใ‚‹ใจๆง˜ใ€…ใชๅ•้กŒใŒ่ตทใใพใ™ใ€‚

Go่จ€่ชžใฎๆ–‡ๆณ•ใ‚’ๅญฆใณใพใ—ใŸใŒใ€ใพใ ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใ™ใ‚‹ใฎใฏ้›ฃใ—ใใ‚ใ‚Šใพใ›ใ‚“ใ‹๏ผŸๅฎŸๅ‹™ใซ้ฉ็”จใ—ใ‚ˆใ†ใจใ—ใŸใ‚‰ใ€ใ•ใพใ–ใพใชๅ•้กŒใซ้ญ้‡ใ—ใพใ›ใ‚“ใ‹๏ผŸๅฎŸๅ‹™ใงGo่จ€่ชžใ‚’็›ดๆŽฅไฝฟ็”จใ—ใฆ็ตŒ้จ“ใ—ใŸๆง˜ใ€…ใชๅ•้กŒใฎ่งฃๆฑบ็ญ–ใ‚’ไปŠๅ›žใฎ่ฌ›็พฉใซใพใจใ‚ใฆใฟใพใ—ใŸใ€‚

โœ… Go ่จ€่ชžใฎใ‚ˆใ‚Šๅคšๆง˜ใชไพ‹

ใใ‚Œใงใ‚‚ใ€Go่จ€่ชžใŒ่ฆ‹็Ÿฅใ‚‰ใฌไบบใฎใŸใ‚ใซใ€ใ•ใพใ–ใพใชไพ‹ใงๆ…ฃใ‚Œใ‚‹ใ‚ˆใ†ใซ่จญๅฎšใ—ใพใ—ใŸใ€‚

โœ… Go ใƒ—ใƒญใ‚ฐใƒฉใƒ ้€Ÿๅบฆๆ”นๅ–„ใฎใƒŽใ‚ฆใƒใ‚ฆ

ๅฎŸๅ‹™ใซๆฌ ใ‹ใ›ใชใ„ใ€ใƒ—ใƒญใ‚ฐใƒฉใƒ ้€Ÿๅบฆๆ”นๅ–„ใƒŽใ‚ฆใƒใ‚ฆใ‚’่ฌ›็พฉใง็ดนไป‹ใ—ใพใ™ใ€‚

โœ… Go ๅค–่ฃ…ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใพใง็ดนไป‹

ๅฎŸๆˆฆใงไฝฟ็”จใ—ใฆใ„ใŸๆง˜ใ€…ใชGoๅค–้ƒจใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใ‚’ไพฟๅˆฉใซๆดป็”จใ—ใฆใฟใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚


่ฌ›็พฉใƒ—ใƒฌใƒ“ใƒฅใƒผ๐Ÿ’ก

JSONใ‹ใ‚‰็‰นๅฎšใฎใƒ‡ใƒผใ‚ฟใฎใฟใ‚’ๆŠฝๅ‡บใ™ใ‚‹
ใ‚ดใƒซใƒ†ใ‚ฃใƒณใ‚จใƒณใ‚ธใƒณ(Go Routine Engine)

Goใ€ใฉใ‚“ใช็‚นใŒใ„ใ„ใงใ™ใ‹๏ผŸ ๐Ÿ˜ฏ

Go๏ผˆGolnag๏ผ‰ใฏใ€C ++ใฎ่ค‡้›‘ใ•ใ‚’่ฃœๅฎŒใ™ใ‚‹ใ‚ˆใ†ใซ่จญ่จˆใ•ใ‚ŒใŸ่จ€่ชžใงใ™ใ€‚ GoogleใŒ้–‹็™บใ—็ฎก็†ใ™ใ‚‹ใ‚ชใƒผใƒ—ใƒณใ‚ฝใƒผใ‚นใƒ—ใƒญใ‚ฐใƒฉใƒŸใƒณใ‚ฐ่จ€่ชžใงใ™ใ€‚ๆ ธๅฟƒ25ๅ€‹ใฎใ‚ญใƒผใƒฏใƒผใƒ‰ใ‚’ไธญๅฟƒใซ็ฐกๆฝ”ใซใชใฃใŸๆ–‡ๆณ•ใฎใŠใ‹ใ’ใงๅ…ฅ้–€ใ—ใ‚„ใ™ใ„ๆ–นใงใ™ใ€‚ๅŒๆ™‚ๆ€ง๏ผˆConcurrency๏ผ‰ใจๅผทๅŠ›ใชใƒฉใ‚คใƒ–ใƒฉใƒชใพใง็ต„ใฟ่พผใพใ‚Œใฆใ„ใพใ™ใ€‚

2022ๅนด็ฌฌ3ๅ››ๅŠๆœŸๅŸบๆบ–Go่จ€่ชžใฏGithubใฎPull RequestๅŸบๆบ–4ไฝใ‚’ๅ ใ‚ใพใ—ใŸใ€‚ใใ‚Œใ ใ‘Go่จ€่ชžใŒๆดป็™บใซไฝฟใ‚ใ‚Œใฆใ„ใ‚‹ใจใ„ใ†ไบ‹ๅฎŸใ‚’็ขบ่ชใงใใพใ™ใ€‚


Q&A ๐Ÿ’ฌ

Q. ๅˆๅฟƒ่€…ใฎ้–‹็™บ่€…ใ‚‚่žใ‘ใ‚‹่ฌ›็พฉใงใ™ใ‹๏ผŸ

ใ„ใ„ใˆใ€ใ“ใฎใƒฌใƒƒใ‚นใƒณใฏGo่จ€่ชžใฎๅŸบๆœฌ็š„ใชๆ–‡ๆณ•ใ‚’็Ÿฅใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™ใ€‚ Go่จ€่ชžใŒๅˆใ‚ใฆใฎๅ ดๅˆใฏใ€ๆฌกใฎ่ฌ›็พฉใ‚’ๆœ€ๅˆใซๅ—่ฌ›ใ™ใ‚‹ใ“ใจใ‚’ใŠๅ‹งใ‚ใ—ใพใ™ใ€‚

Q. ใชใœGo่จ€่ชžใ‚’ๅญฆใถในใใงใ™ใ‹๏ผŸ

Go่จ€่ชžใฏ่ปฝใใฆ้ซ˜้€Ÿใงใ™ใ€‚่ปฝใใฆ้€Ÿใๅ‹•ไฝœใ™ใ‚‹ใ‚ˆใ†ใซ้–‹็™บใ•ใ‚ŒใŸ่จ€่ชžใ ใ‹ใ‚‰ใงใ™ใ€‚ใใ‚Œใงใ€้–‹็™บ่€…ใŒไปŠๅพŒๅญฆใณใŸใ„่จ€่ชžใงใ™ใ€‚ใกใชใฟใซ2020ๅนดStack Overflowใ‚ขใƒณใ‚ฑใƒผใƒˆ่ชฟๆŸปใฎ็ตๆžœใ€ๆœ€ใ‚‚ๆ„›ใ™ใ‚‹่จ€่ชž5ไฝใ€ๅญฆใณใŸใ„่จ€่ชž3ไฝใซไธŠใŒใ‚Šใพใ—ใŸใ€‚

Q. ๆŽˆๆฅญๅ†…ๅฎนใ‚’ใฉใฎใƒฌใƒ™ใƒซใพใงๆ‰ฑใ„ใพใ™ใ‹๏ผŸ

ๅˆๅฟƒ่€…ใฎ้–‹็™บ่€…ใ‚‚็†่งฃใงใใ‚‹ใ‚ˆใ†ใซITๅŸบ็คŽ็Ÿฅ่ญ˜ใ‚‚่ชฌๆ˜Žใ—ใชใŒใ‚‰ใ€ใงใใ‚‹ใ ใ‘่ฉณใ—ใ่ชฌๆ˜Žใ•ใ›ใฆใ„ใŸใ ใใพใ™ใ€‚ใใ‚Œใงใ‚‚ๅˆ†ใ‹ใ‚‰ใชใ„้ƒจๅˆ†ใฏไปŠๅพŒ่ณชๅ•ใ—ใฆใ„ใŸใ ใ‘ใ‚Œใฐ่ช ๅฎŸใซ็ญ”ใˆใพใ™ใ€‚

ๅฌ‰ใ—ใ„ใงใ™ใ€ใƒ–ใƒซใƒผใƒ ใƒ•ใ‚ฃใƒซใ‚ฟใƒผใฎใ‚ญใƒ ใƒปใ‚ธใƒณใƒจใƒณใงใ™๏ผ

ๆ–ฐใ—ใ„ๆŠ€่ก“ใ‚’ๅ‹‰ๅผทใ—ใฆๅฎŸ้š›ใซไฝฟใ†ใฎใŒๅฅฝใใช้–‹็™บ่€…ใƒ–ใƒซใƒผใƒ ใƒ•ใ‚ฃใƒซใ‚ฟใƒผใฎใ‚ญใƒ ใƒปใ‚ธใƒณใƒจใƒณใงใ™ใ€‚ 20ๅนด่ฟ‘ใใ‚คใƒณใ‚ฟใƒผใƒใƒƒใƒˆๅบƒๅ‘Šไผš็คพใซๅ‹คๅ‹™ใ—ใ€็พๅœจใฏใƒ•ใƒชใƒผใƒฉใƒณใ‚นใฎ้–‹็™บ่€…ใจใ—ใฆๆดปๅ‹•ใ—ใฆใ„ใพใ™ใ€‚

ใ“ใ‚“ใชๆ–นใซ
ใŠใ™ใ™ใ‚ใงใ™

ๅญฆ็ฟ’ๅฏพ่ฑกใฏ
่ชฐใงใ—ใ‚‡ใ†๏ผŸ

  • Go่จ€่ชžใซใคใ„ใฆๅŸบ็คŽๆ–‡ๆณ•ใ‚’ๅญฆใ‚“ใ ใŒใ€ใพใ ไฝฟใ„ใซใใ„ๆ–น

  • Go่จ€่ชžใ‚’ๅญฆใณใพใ—ใŸใŒใ€ๅฎŸๅ‹™ใฎ้ฉ็”จใŒ้›ฃใ—ใ„ไบบ

ๅ‰ๆ็Ÿฅ่ญ˜ใ€
ๅฟ…่ฆใงใ—ใ‚‡ใ†ใ‹๏ผŸ

  • Go ่จ€่ชžๅŸบ็คŽๆ–‡ๆณ•

ใ“ใ‚“ใซใกใฏ
bloomfilterใงใ™ใ€‚

226

ๅ—่ฌ›็”Ÿ

11

ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ

3

ๅ›ž็ญ”

5.0

่ฌ›ๅบง่ฉ•ไพก

2

่ฌ›ๅบง

็พ๏ผ‰ใƒ–ใƒซใƒผใƒ ใƒ•ใ‚ฃใƒซใ‚ฟใƒผไปฃ่กจ

ๅ…ƒ๏ผ‰ใ‚คใƒณใ‚ฟใƒผใƒใƒƒใƒˆๅบƒๅ‘Šใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ไผๆฅญใซ20ๅนดไฝ™ใ‚Šๅ‹คๅ‹™

ใ‚ซใƒชใ‚ญใƒฅใƒฉใƒ 

ๅ…จไฝ“

16ไปถ โˆ™ (4ๆ™‚้–“ 58ๅˆ†)

่ฌ›ๅบงๆŽฒ่ผ‰ๆ—ฅ: 
ๆœ€็ต‚ๆ›ดๆ–ฐๆ—ฅ: 

ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ

ๅ…จไฝ“

4ไปถ

5.0

4ไปถใฎๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ

  • jjhgwx๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    jjhgwx

    ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 806

    โˆ™

    ๅนณๅ‡่ฉ•ไพก 4.9

    5

    19% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

    ่‰ฏใ„่ฌ›็พฉใ‚’ใ‚ใ‚ŠใŒใจใ†ใ”ใ–ใ„ใพใ™๏ผ

    • redbull7493๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      redbull7493

      ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 1

      โˆ™

      ๅนณๅ‡่ฉ•ไพก 5.0

      5

      31% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

      • 18qwer5827๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        18qwer5827

        ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 1

        โˆ™

        ๅนณๅ‡่ฉ•ไพก 5.0

        5

        100% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

        • hanmuson18725๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          hanmuson18725

          ๅ—่ฌ›ใƒฌใƒ“ใƒฅใƒผ 31

          โˆ™

          ๅนณๅ‡่ฉ•ไพก 5.0

          5

          63% ๅ—่ฌ›ๅพŒใซไฝœๆˆ

          ไผผใฆใ„ใ‚‹่ฌ›ๅบง

          ๅŒใ˜ๅˆ†้‡Žใฎไป–ใฎ่ฌ›ๅบงใ‚’่ฆ‹ใฆใฟใพใ—ใ‚‡ใ†๏ผ

          ๏ฟฅ5,609